Название: Создаём собственные квесты (часть 1) [Версия для печати] Автор: admin Время: 2024-9-17 18:39 Название: Создаём собственные квесты (часть 1) Хроники Interlude U5 |5 n; K$ w- PСборка L2j 7 i; N1 K7 g# T& D+ q/ RПример основан на сборке L2J.5 r9 Q6 X! Y! @$ Z' A& t9 R
+ G' |# h B8 `
Первое что нужно сделать, это добавить необходимые Java классы в квест. 4 ^( B. c) }4 p J$ a" u
st.takeItems(FANGS_ITEM_ID,-1) , q% u6 T- H* w) f: c
st.giveItems(WORLD_MAP_ITEM_ID,1)+ u) d- S4 Y' [( G8 Q) k
st.exitQuest(False): A$ \" _+ Q: ~+ \/ b% d
return
Скопировать код
Тут объявляем квест выполненным, сбрасываем квестовый дроп, забираем все клыки у игрока и даем ему награду. Затем сообщаем серверу, что квест завершен и больше не повторяется. (st.exitQuest(False))+ i7 J, C/ @6 }& \
5 N V9 P' L( w& n/ h, H" B; U
" t- l6 Q4 E2 T" _ : R5 e! }- p5 B' j' M- _И наконец вспомогательная функция для проверки необходимого количества клыков у игрока для завершения квеста. (st должна быть в QuestState): 2 f* q' N1 u+ i , T6 g5 \5 O: J) z) p" R
def check(st) : + r! {) f0 B' g
if getCount(st) >= 4 :" z; P* p; \) }; X/ d" g! J
completed(st). c9 W& q4 p! c0 @. O; W* R
return
Скопировать код
Затем мы объявляем непосредственно сам класс quest. Quest – класс python, который расширяет java класс net.sf.l2j.gameserver.model.quest.jython.QuestJython. Затем мы объявляем метод onEvent, который вызывается Явой, если квест кто то начал.1 S9 q7 m t3 v4 Q; c6 P3 e
8 [8 J5 K ~. C! I: T
class Quest (JQuest):5 G8 J9 ^5 S* K9 M: g: K) y
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)* \, A L d) ]+ ~# f0 v" Y