Написание квестов
Первое что нужно сделать, это добавить необходимые Java классы в квест. (net.sf.l2j.gameserver.model.quest).
Код:
import sys Класс State используется для того, что бы описать информацию о состоянии квеста. Класс QuestState применяется непосредственно для отслеживания состояния игрока, о ходе выполнения квеста или части квеста. Затем необходимо добавить несколько констант, что сделает квест удобочитаемым. Если этого не сделать, то могут возникнуть сложности с редактированием квеста в будущем. Константы нашего квеста – это ID NCP и итемов. Код:
KELTIR_NPC_ID = 12082 Функция для получения количества квестовых предметов (keltir fangs) у игрока. (st должна быть в QuestState): Код:
def getCount(st) : Код:
def completed(st) : И наконец вспомогательная функция для проверки необходимого количества клыков у игрока для завершения квеста. (st должна быть в QuestState): Код:
def check(st) : Код:
class Quest (JQuest): Метод init – это конструктор Jython класса, который вызывает конструктор Java класса. Конструктор имеет параметры: • self – ссылка на себя. • id – численный идентификатор квеста для клиента. • name – имя квеста, которое будет опубликовано непосредственно с самом сервере. • descr – имя описания квеста, показываемое игроку, когда берет квест у NCP, у которого можно взять, кроме этого квеста, еще и другой. Метод onEvent вызывается от Явы. Осуществляет начало квеста. Имеет параметры: • self – ссылка непосредственно на Tutorial Quest • event – строка для идентификации эвента для Явы. • st – ссылка на QuestState, для отслеживания текущего состояния игрока. В первой строке идет проверка на текущее состояние квеста непосредственно для игрока и состояние запивается в переменную ‘id’. Если квест только взят, то объявляем начало квеста (if id == CREATED : st.setState(STARTED)). Если квест уже выполнен, то ничего не делаем elif id == COMPLETED: pass) Если квест уже начат (STARTED), то вызывается функция проверки (check(), определенная выше) количества клыков у персонажа для завершения квеста. Мы не проверяем переменную ‘event’, т.к. в нашем примере (Tutorial quest) все события происходят от разговоров с NCP. Метод onEvent вызывается, если поговорить с NCP. И наконец, когда скелет квеста определен, мы создаем сам квест (и определяем его в самом сервере) и объявляем его. Код:
QUEST = Quest(201,"Tutorial", "Tutorial quest") Так же мы должны определить начальное состояние квеста, когда игрок его только взял, и так же стартового NCP. Код:
QUEST.setInitialState(CREATED) Код:
<a action="bypass -h npc_%objectId%_Quest"> |
Ответ: Написание квестов
Спасибо,мануал полезен.
Цитата:
|
Ответ: Написание квестов
Цитата:
|
Ответ: Написание квестов
Цитата:
|
Ответ: Написание квестов
lvs, зачем цитировать весь мануал?
|
Ответ: Написание квестов
Цитата:
|
Ответ: Написание квестов
Цитата:
|
Ответ: Написание квестов
Цитата:
|
Ответ: Написание квестов
Ich!go, напиши пожалуйста фулл результат...а то я запутался...что, после чего должно стоять)
|
Ответ: Написание квестов
Подскажите пожалуйста где описывается текст в этапах квеста игрока на вкладке квесты и где описаны координаты поинта радара (точка куда бежать по квесту).
Добавлено через 16 часов 49 минут По первой части вопроса разобрался, это всё описано в клиенте насколько я понял в это файле questname-e.dat, а вот где описаны координаты поинта на карте всё ещё нужна помощь! |
Текущее время: 09:54. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot