Не работает квест H5

Статус
В этой теме нельзя размещать новые ответы.

Низ

Айвазовский
Меценат
Участник Новогоднего Фонда 2023
Главный тролль
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Победитель в номинации 2020
Победитель в номинации 2019
Боевая финансовая поддержка
Знаток графики и верстки
Сообщения
698
Розыгрыши
0
Решения
1
Репутация
599
Реакции
518
Баллы
1 613
Хроники
  1. Chaotic Throne: High Five
Исходники
Отсутствуют
Сборка
Mobius
Доброго времени суток ув. форумчане. Очень нуждаюсь в вашей помощи, тк самостоятельно не смог решить.
Не работает квест (не могу его взять): "Волшебная монета Кайла". Все условия для взятия квеста соблюдены: у меня 60 ур. и я выполнил предыдущий квест: "Станьте почетным членом".
Как выглядит сама ошибка: когда подхожу к кузнецу и нажимаю квест, высвечивается первое диалоговое окно, при нажатии на продолжить собственно ничего не происходит.
Смотрел сам код с этим местом, но ничего не увидел:
Код:
@Override
    public String onTalk(Npc npc, PlayerInstance talker)
    {
        final QuestState qs = getQuestState(talker, true);
        String htmltext = getNoQuestMsg(talker);
        if (qs.isCreated())
        {
            htmltext = ((talker.getLevel() >= MIN_LEVEL) && hasQuestItems(talker, ROYAL_MEMBERSHIP)) ? "30687-02.htm" : "30687-01.htm";
        }
        else if (qs.isStarted())
        {
            htmltext = "30687-04.htm";
        }
        return htmltext;
    }

А вот собственно Htm 30687-02 которую выдает
Код:
I'm honored to finally meet royalty!<br>
The heavens at last have smiled upon me!<br>
As a royal, you must have many rare coins, am I right?<br>
You know, I have many rare items, too. Would you be interested in trading with me? All my products are guaranteed top-notch.<br>
<a action="bypass -h Quest Q00382_KailsMagicCoin 30687-03.htm">"I will trade with you."</a>
 
Последнее редактирование:
Решение
@Низ, выдает 30687-02.htm так как все условия выполнены. После клика на кнопку в втором диалоге должно перекинуть на 3
Обработка происходит в:
Java:
    @Override
    public String onAdvEvent(String event, Npc npc, PlayerInstance player)
    {
        final QuestState qs = getQuestState(player, false);
        String htmltext = null;
        if (qs == null)
        {
            return htmltext;
        }
        
        switch (event)
        {
            case "30386-03.htm":
            {
                if (qs.isCreated())
                {
                    qs.startQuest();
                    htmltext = event;
                }
                break;
            }
            case "30386-05.htm":
            case...
Код:
    @Override
    public String onTalk(final L2Npc npc, final L2PcInstance talker) {
        final QuestState qs = getQuestState(talker, true);
        String htmltext = getNoQuestMsg(talker);
        if (qs.isCreated()) {
            htmltext = (((talker.getLevel() >= MIN_LVL) && hasQuestItems(talker, ROYAL_MEMBERSHIP)) ? "30687-02.htm"
                    : "30687-01.htm");
        } else if (qs.isStarted()) {
            htmltext = "30687-04.htm";
        }
        return htmltext;
    }

Не проверял, но на лыже так
 
Код:
    @Override
    public String onTalk(final L2Npc npc, final L2PcInstance talker) {
        final QuestState qs = getQuestState(talker, true);
        String htmltext = getNoQuestMsg(talker);
        if (qs.isCreated()) {
            htmltext = (((talker.getLevel() >= MIN_LVL) && hasQuestItems(talker, ROYAL_MEMBERSHIP)) ? "30687-02.htm"
                    : "30687-01.htm");
        } else if (qs.isStarted()) {
            htmltext = "30687-04.htm";
        }
        return htmltext;
    }

Не проверял, но на лыже так
Так у мобиуса весь дп от лыжи, лол.
 
@Низ, выдает 30687-02.htm так как все условия выполнены. После клика на кнопку в втором диалоге должно перекинуть на 3
Обработка происходит в:
Java:
    @Override
    public String onAdvEvent(String event, Npc npc, PlayerInstance player)
    {
        final QuestState qs = getQuestState(player, false);
        String htmltext = null;
        if (qs == null)
        {
            return htmltext;
        }
        
        switch (event)
        {
            case "30386-03.htm":
            {
                if (qs.isCreated())
                {
                    qs.startQuest();
                    htmltext = event;
                }
                break;
            }
            case "30386-05.htm":
            case "30386-06.htm":
            {
                if (qs.isStarted())
                {
                    htmltext = event;
                }
                break;
            }
        }
        return htmltext;
    }

обрати внимание на ид нпс (диалогов)
 
Решение
@4ipolino, извините за глупый вопрос, но я не знаю синтаксиса Java, и по этому не понимаю до конца логики кода. Вот в этой строчке
Код:
htmltext = ((talker.getLevel() >= MIN_LEVEL) && hasQuestItems(talker, ROYAL_MEMBERSHIP)) ? "30687-02.htm" : "30687-01.htm";
Я правильно понимаю, что сначала идет проверка на уровень и на наличие предмета в инвентаре, а далее идет htm диалог 30687-02.htm? Но, абсолютно не понятно, при каких условиях срабатывает 30687-01.htm. Тем более, что в 30687-02.htm идет байпас на 3 диалог.

@Psycho, кстати да,символ в символ с тем, что скинул @JimmieStrimell,
 
@Низ,
перевожу человеческим языком
если talker.getLevel() >= MIN_LEVEL и hasQuestItems(talker, ROYAL_MEMBERSHIP) выполнены открываем 30687-02.htm, в противном случае 30687-01.htm
но баг не в данном месте
выше в посту писал, обратить внимание на метод public String onAdvEvent(
case "30386-03.htm": а должен быть ид 30387
 
  • Мне нравится
Реакции: Низ и Psycho

    Низ

    Баллов: 7
    За решение сложной задачи
@4ipolino, извините за глупый вопрос, но я не знаю синтаксиса Java, и по этому не понимаю до конца логики кода. Вот в этой строчке
Код:
htmltext = ((talker.getLevel() >= MIN_LEVEL) && hasQuestItems(talker, ROYAL_MEMBERSHIP)) ? "30687-02.htm" : "30687-01.htm";
Я правильно понимаю, что сначала идет проверка на уровень и на наличие предмета в инвентаре, а далее идет htm диалог 30687-02.htm? Но, абсолютно не понятно, при каких условиях срабатывает 30687-01.htm. Тем более, что в 30687-02.htm идет байпас на 3 диалог.

@Psycho, кстати да,символ в символ с тем, что скинул @JimmieStrimell,
condition : true ? false
 
@4ipolino, Спасибо огромное, что подсказали, рад что ошибка так легко решалась. Я потом догадался, что нужно выставить правда 30687 тк. это и айди всех htm которые в квесте и id самого квест гивера, что довольно логично. Рад, что сам Обиус учит людей быть внимательнее и работать головой. Спасибо ему за это.
 
Хочу принести свои извинения перед добрым и хорошим человеком ник которого постоянно путаю с Мобиусом. Дядь @obius, не переименовывайтесь. Вы в нашем сердце как Оби
 
То чувство когда вроде бы только ты его так называешь, а тут и Низ приписался)))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу