Разбор полетов по Quest
http://pastebin.com/TqZm2i22
Квест который модернизирую. Каждый разговор всегда почему-то вылетает на диалог который указываю в 72 строке. Беру квест : http://screenshot.ru/screen/05.05.12...9_dda7727f.png Выдает диалог из 72 строки : http://screenshot.ru/screen/05.05.12...0_71fb4276.png Квест уже (выполнен) : http://screenshot.ru/screen/05.05.12...9_c38a4552.png В Актион/Квест : http://screenshot.ru/screen/05.05.12...7_53b07704.png Что сделал не так с cond`ами ? Запутался с ними. cond == 0 - Это идут проверки, верно ? Если проверки прошел, то сразу дает cond == 1 , верно ? Какой квест можно взять за начальное изучение с одним НПЦ ? (пока без класса onKill) |
Re: Разбор полетов по Quest
Дык у вас при любом разговоре с npcId == Klein происходит
Код:
st.exitCurrentQuest(false); eg Код:
... |
Re: Разбор полетов по Quest
izen, Сейчас попробую.
А как тогда сделать, что бы не было постоянного вызова else if ? Для начала разобраться с else и if - это понятно, и так этим занимаюсь щас :) Пытаюсь сделать так, что бы было Диалог 1 (проверку на уровень прошел) => Диалог 2 (молодец, ты взял квест) => Получи награду |
Re: Разбор полетов по Quest
GOODPower, вопрос не понял. не хотите if .. elsif, берите switch ... case, но ИМХО лучше сначала язык выучите.
|
Re: Разбор полетов по Quest
Цитата:
|
Re: Разбор полетов по Quest
Смотри, при взятии квеста у тебя выставляет конд = 1 и стейт квест как STARTED. Тут всё верно, но дальше в обработке разговора с нпс, ты указываешь cond == 0, что уже не может быть. А первоначальный диалог с нпс, обрабатывается не по конду, а по стейту CREATED =)
Вот как примерно должно выглядить:Развернуть ↓Только не пойму одного, как он получит награду если cond нигде не меняется на 2ой? :) |
Re: Разбор полетов по Quest
Так
NPC > Quest >> Выдает диалог *-01 Код:
Прошел проверку и идем дальше setCond(2) / if (cond ==2) > "Принимаю квест" Идет returnhtml ( но я не понял, почему он возвращает Аля "Вы не подходите по требованиям к этому НПЦ ) Мой cond==1 Выдает хтмл Код:
htmltext = "31540-03.htm"; else if(cond == 1) htmltext = "31540-03.htm"; Добавить setCond(2) - верно ? Далее более подробно разобрать returnhtml, что бы выдавал следующий ХТМЛ сразу, верно ? Добавлено через 2 минуты Код:
else if(id == STARTED) и Код:
if(id == CREATED) |
Re: Разбор полетов по Quest
В чем вопрос то?
Зачем вообще проверять на cond == 0? Если квест не взят, то нужно if (st.getState() == CREATED). Лично мне удобнее стейты, в больших квестах с большим количеством нпц обрабатывать через case switch. htmltext = "31540-03.htm"; // Какого-то Х... тут дают начало диалога, onTalk обрабатывается после нажатия на Quest. Нпц нужно понимать что ему отвечать. если квест взяли, поставили cond == 1, то выдаем эту хтмлку. Например, поговорили с нпц. Согласились делать квест. Выставляем State.STARTED, cond == 1. Согласились на квест, но не выполнили задание (cond == 1) то нпц снова посылает бить мобов. Убили мобов, поставили cond == 2. Нпц уже выдает другой диалог. |
Re: Разбор полетов по Quest
В некоторых квестах замечаю особенность, что return идет не по htmltext, а по event.
event значит автоматов вернет следующий диалог ? Добавлено через 9 часов 44 минуты По какому принципу работает Цитата:
И что обозначает (super(false)) ? |
Re: Разбор полетов по Quest
Цитата:
(flase) = Одиночный, только для добившего. Добавлено через 5 минут Также можно писать super(PARTY_ONE); = Cлучайно по пати super(PARTY_ALL); = Всей пати super(PARTY_NONE); = По ластхиту (Кто добил цель последний) |
Текущее время: 06:08. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot