Разбор полетов по Quest - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 05.05.2012, 00:29   #1
Аватар для GOODPower
Герой

Автор темы (Топик Стартер) Разбор полетов по 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)
__________________
GOODPower вне форума Ответить с цитированием
Непрочитано 05.05.2012, 00:36   #2
Аватар для izen

По умолчанию Re: Разбор полетов по Quest

Дык у вас при любом разговоре с npcId == Klein происходит
Код:
st.exitCurrentQuest(false);
htmltext = "31540-04.htm";
мб это в блоке cond == 2 должно быть?
eg
Код:
...
                        else if(cond == 2)
                        {
                                st.getPlayer().addExpAndSp((5672), (446), false, false);
                                st.exitCurrentQuest(false);
                                htmltext = "31540-04.htm";
                          } else  htmltext = "Не верные условия";
...
?
izen вне форума Ответить с цитированием
Непрочитано 05.05.2012, 00:39   #3
Аватар для GOODPower
Герой

Автор темы (Топик Стартер) Re: Разбор полетов по Quest

izen, Сейчас попробую.
А как тогда сделать, что бы не было постоянного вызова else if ?
Для начала разобраться с else и if - это понятно, и так этим занимаюсь щас

Пытаюсь сделать так, что бы было
Диалог 1 (проверку на уровень прошел) =>
Диалог 2 (молодец, ты взял квест) => Получи награду
__________________
GOODPower вне форума Ответить с цитированием
Непрочитано 05.05.2012, 00:41   #4
Аватар для izen

По умолчанию Re: Разбор полетов по Quest

GOODPower, вопрос не понял. не хотите if .. elsif, берите switch ... case, но ИМХО лучше сначала язык выучите.
izen вне форума Ответить с цитированием
Непрочитано 05.05.2012, 00:43   #5
Аватар для GOODPower
Герой

Автор темы (Топик Стартер) Re: Разбор полетов по Quest

Цитата:
GOODPower, вопрос не понял. не хотите if .. elsif, берите switch ... case, но ИМХО лучше сначала язык выучите.
Вот на примерах и учу сразу.
__________________
GOODPower вне форума Ответить с цитированием
Непрочитано 05.05.2012, 00:45   #6
Аватар для Drizzy

По умолчанию Re: Разбор полетов по Quest

Смотри, при взятии квеста у тебя выставляет конд = 1 и стейт квест как STARTED. Тут всё верно, но дальше в обработке разговора с нпс, ты указываешь cond == 0, что уже не может быть. А первоначальный диалог с нпс, обрабатывается не по конду, а по стейту CREATED =)
Вот как примерно должно выглядить:
Свернуть ↑Развернуть ↓

Только не пойму одного, как он получит награду если cond нигде не меняется на 2ой?
__________________
open-team.ru
Drizzy вне форума Отправить сообщение для Drizzy с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 05.05.2012, 00:57   #7
Аватар для GOODPower
Герой

Автор темы (Топик Стартер) Re: Разбор полетов по Quest

Так
NPC > Quest >>
Выдает диалог *-01
Код:
Прошел проверку и идем дальше setCond(2) / if (cond ==2)
<a action="bypass -h Quest _11111_TestQuest 31540-02.htm">Принимаю квест</a>
Я на стадии START
> "Принимаю квест" Идет 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)
Пошел развивать эту тему ^^,
__________________

Последний раз редактировалось GOODPower; 05.05.2012 в 00:59. Причина: Добавлено сообщение
GOODPower вне форума Ответить с цитированием
Непрочитано 05.05.2012, 01:02   #8
Аватар для coldy

По умолчанию 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. Нпц уже выдает другой диалог.
coldy вне форума Ответить с цитированием
Непрочитано 05.05.2012, 01:28   #9
Аватар для GOODPower
Герой

Автор темы (Топик Стартер) Re: Разбор полетов по Quest

В некоторых квестах замечаю особенность, что return идет не по htmltext, а по event.
event значит автоматов вернет следующий диалог ?

Добавлено через 9 часов 44 минуты
По какому принципу работает
Цитата:
public _11111_TestQuest()
{
super(false);
addStartNpc(Klein);
addTalkId(Klein);
Каждый шаг разговора надо отписывать ?

И что обозначает (super(false)) ?
__________________

Последний раз редактировалось GOODPower; 05.05.2012 в 11:12. Причина: Добавлено сообщение
GOODPower вне форума Ответить с цитированием
Непрочитано 05.05.2012, 20:34   #10
Аватар для L2CCCP

По умолчанию Re: Разбор полетов по Quest

Цитата:
Сообщение от GOODPower Посмотреть сообщение
В некоторых квестах замечаю особенность, что return идет не по htmltext, а по event.
event значит автоматов вернет следующий диалог ?

Добавлено через 9 часов 44 минуты
По какому принципу работает

Каждый шаг разговора надо отписывать ?

И что обозначает (super(false)) ?
super() - Квест выполняется патей или нет, то есть если поставить (true) = Квест\Итемы или сам cond, зачтется всей пати (У кого есть данный кв)
(flase) = Одиночный, только для добившего.

Добавлено через 5 минут
Также можно писать
super(PARTY_ONE); = Cлучайно по пати
super(PARTY_ALL); = Всей пати
super(PARTY_NONE); = По ластхиту (Кто добил цель последний)

Последний раз редактировалось L2CCCP; 05.05.2012 в 20:42. Причина: Добавлено сообщение
L2CCCP вне форума Отправить сообщение для L2CCCP с помощью ICQ Отправить сообщение для L2CCCP с помощью MSN Отправить сообщение для L2CCCP с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка l2.ini, разбор, исправление, объяснение, подключение клиента к серверу kpuk Игровой клиент 75 25.02.2017 19:15
Разбор текста Effas Курилка / Yak floor 0 07.12.2011 18:10
[Куплю] Разбор флеш файла Ihgap Рынок / Marketplace 8 27.04.2011 15:40
array mob's in quest weTr1k Работа со скриптами 11 10.03.2011 18:32
Quest'Ы эпик рб Machine Lineage II 4 06.06.2010 14:24


© 2007–2022 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 10:32. Часовой пояс GMT +3.

Вверх