L2-scripts Форум

L2-scripts Форум (http://l2-scripts.ru/forum/index.php)
-   Archive Lindvior, Ertheia, Odyssey, Undergeround, Helios, Grand Crusade (http://l2-scripts.ru/forum/forumdisplay.php?f=103)
-   -   Квесты (http://l2-scripts.ru/forum/showthread.php?t=2033)

IIyxMASTER 01.11.2012 20:37

Квесты
 
29 августа мною была создана тема про нерабочие квесты.
Вот она, в архиве -> http://forum.l2-scripts.ru/showthread.php?t=1678
Цитата:

_10324_FindingMagisterGallint

Код:

@Override
        public boolean checkStartCondition(Player player)
        {
                QuestState qs = player.getQuestState(_10323_GoingIntoARealWar.class);
                return player.getLevel() <= 20 && qs != null && qs.getState() == COMPLETED;
        }


Этих долбаных 6 строчек нету досихпор, квест не берется, приходится каждую обнову вставлять вручную.
Далее, квест _10325_SearchingForNewPower
Код:

if(cond == 0 && !talkerAdded)
                {
                        talkerAdded = true;
                        if(race == Race.DARKELF)
                                addTalkId(BLACK);
                        else if(race == Race.DWARF)
                                addTalkId(KINCAID);
                        else if(race == Race.ELF)
                                addTalkId(CINDET);
                        else if(race == Race.HUMAN)
                                addTalkId(TALBOT);
                        else if(race == Race.KAMAEL)
                                addTalkId(XONIA);
                        else if(race == Race.ORC)
                                addTalkId(HERZ);
                       
                        addTalkId(GALLINT);
                }

Эта конструкция работает очень криво. После каждого ребута у 1-2 рас квест отказывается работать. Причем всегда у разных. То у гномов, то у камаэлей, то у темных. Тупо вся расса не может продолжить квест. Возможно обламывается раса, представитель которой подошел к нпс последним.
Решение - addTalkId() для всех этих нпс в самом начале, и при диалогах уже проверять принадлежность к оркам или гномам, а не добавлять нпс по ходу дела. Так же были притензии к работе последующих квестов, но это уже завтра проверю и выложу, хотя так, на вскидку -
У BOOK (17575) и ASSASIN(23121) были нулевая ширина и высота, их не возможно было выделить. Кроме того сервак никак не реагировал на onSkillUse(), и на onSocialActionUse().
Завтра уже проверю и скажу точно, работает или нет.

iqman 02.11.2012 17:20

Не понял проблему?

IIyxMASTER 03.11.2012 08:24

Цитата:

Сообщение от iqman (Сообщение 5504)
Не понял проблему?

Окей.
Квест _10324_FindingMagisterGallint.
Он не берется на таути. Пишет что игрок не соответствует требованиям. При проверке квеста оказалось, что в нем отсутствует нормальная проверка на лв и завершение предыдущего квеста.
http://forum.l2-scripts.ru/showthread.php?t=1948 - > вот тут тоже писали про этот квест.
Решение - добавить проверку на условия
Код:

@Override
        public boolean checkStartCondition(Player player)
        {
                QuestState qs = player.getQuestState(_10323_GoingIntoARealWar.class);
                return player.getLevel() <= 20 && qs != null && qs.getState() == COMPLETED;
        }

Квест _10325_SearchingForNewPower
При проверки в несколько игроков сервак работал нормально. Но! Когда пошел более массированный тест выяснилось, что представители камаэлей и светлых эльфов взять его не могут. После ребута он отвалился у орков и гномов, зато камаэли и эльфы начали его проходить. После следующего ребута он не работал только у темных эльфов.
Я грешил на вот эту херню
Код:

if(cond == 0 && !talkerAdded)
                {
                        talkerAdded = true;
                        if(race == Race.DARKELF)
                                addTalkId(BLACK);
                        else if(race == Race.DWARF)
                                addTalkId(KINCAID);
                        else if(race == Race.ELF)
                                addTalkId(CINDET);
                        else if(race == Race.HUMAN)
                                addTalkId(TALBOT);
                        else if(race == Race.KAMAEL)
                                addTalkId(XONIA);
                        else if(race == Race.ORC)
                                addTalkId(HERZ);
                       
                        addTalkId(GALLINT);
                }

Вы добавляете квестового нпс динамически. Вместо этого я воткнул их в самое началоpublic
Код:

_10325_SearchingForNewPower()
        {
                super(false);
               
                talkerAdded = false;
                addStartNpc(GALLINT);
               
                addTalkId(TALBOT);
                addTalkId(CINDET);
                addTalkId(BLACK);
                addTalkId(HERZ);
                addTalkId(KINCAID);
                addTalkId(XONIA);
        }

Ну и проверки, чтоб они ток со своей рассой говорили. Квест начал работать стабильно у всех.

iqman 06.11.2012 21:37

Я проходил эти все квесты лично, мб на тот момент еще синха не было, в обновленной версии уж точно все сможете сдать.


Часовой пояс GMT +4, время: 19:15.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot