Показать сообщение отдельно
Непрочитано 05.11.2023, 19:01   #1
Пользователь

Автор темы (Топик Стартер) Проблема с квестами "Письма Кекропуса"

Всем привет. Обнаружил ошибку в скриптах по квестам "Письма Кекропуса" в сборке Grand Crusade от L2J Mobius.

Каждый квест имеет 2 состояния:
1 - когда нужно достичь минимального уровня;
2 - когда персонаж получает свиток телепорта к финальному НПС и должен получить у него награду.

Из-за того, что в файле LetterQuest.java есть такой участок кода:

if ((qs != null) && qs.isCond(1))
{
qs.setCond(2, true);
}

квест получает статус 2 сразу же после получения статуса 1. Из-за этого сбивается последовательность диалога с первым НПЦ, не отрабатывает красная ветка, а сразу идем в синюю (на примере квеста № 10397):

if (qs.isStarted())
{
if (qs.isCond(1) && (npc.getId() == MOUEN))
{
htmltext = "30196-01.html";
}

else if (qs.isCond(2))
{
htmltext = npc.getId() == MOUEN ? "30196-04.html" : "33845-01.html";
}

}

Проблема лечится путем удаления проблемного участка из файла LetterQuest.java, однако остается вторая проблема: после получения свитка телепорта к финальному НПС, не обновляется текущий прогресс квеста и персонажу не ставится задача - поговорить с финальным НПС. Персонаж по-прежнему видит на экране активную задачу - разговор с первым НПС.
Кто знает, как вылечить вторую проблему? Буду благодарен за рецепт.
Metallurg1985 вне форума Ответить с цитированием