Название: Создаём собственные квесты (часть 1) [Версия для печати] Автор: admin Время: 2024-9-17 18:39 Название: Создаём собственные квесты (часть 1) Хроники Interlude ) @& ]6 x4 E. }' K6 TСборка L2j2 r- b# r3 o5 x3 r. K3 ?5 A Пример основан на сборке L2J. 8 f1 g: |7 ^1 m7 L. p 6 V$ z; i$ J) K4 w! u1 L1 fПервое что нужно сделать, это добавить необходимые Java классы в квест. 3 w: `: R; |& a+ Q
st.takeItems(FANGS_ITEM_ID,-1) - N. _" V1 a1 P& g" s+ X
st.giveItems(WORLD_MAP_ITEM_ID,1) / b( \/ \3 B0 h) n
st.exitQuest(False)) C7 t R8 P. s
return
Скопировать код
Тут объявляем квест выполненным, сбрасываем квестовый дроп, забираем все клыки у игрока и даем ему награду. Затем сообщаем серверу, что квест завершен и больше не повторяется. (st.exitQuest(False)) 0 x: u' U* V( \' N, U3 M u0 Y% q1 y3 n# G* h# E
3 X$ y+ n, n4 L6 z( S4 c3 H, l0 ?4 D1 R _$ ?1 C
И наконец вспомогательная функция для проверки необходимого количества клыков у игрока для завершения квеста. (st должна быть в QuestState): 7 P8 j( t$ r8 g2 u) R$ g1 Z+ R7 F+ T: t+ z$ \, l& a
def check(st) :0 s0 H& z' J9 ?. ?( b$ }
if getCount(st) >= 4 :3 s4 l6 B: F1 K. \! S! Q$ r( |
completed(st)" c5 D. g t8 _
return
Скопировать код
Затем мы объявляем непосредственно сам класс quest. Quest – класс python, который расширяет java класс net.sf.l2j.gameserver.model.quest.jython.QuestJython. Затем мы объявляем метод onEvent, который вызывается Явой, если квест кто то начал. - T6 C1 H1 V$ ~' K/ h1 V; p% \5 x x' h9 g( N% E6 l
class Quest (JQuest):1 V9 F! d- Q( K: {8 w/ A
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) 1 G! @+ o9 r8 f* x
def onEvent (self,event,st): 2 e5 J1 u1 s4 R g. I
id = st.getState() & J f& V3 f1 K
if id == CREATED : st.setState(STARTED); v( L1 @0 o' H2 G! H. O& k( a) L
elif id == COMPLETED: pass6 A/ |. ]5 v" _
elif id == STARTED : check(st) . @' J7 x \' E1 o4 u6 ]9 S9 _
return
Скопировать код
QUEST.setInitialState(CREATED)7 N* U; d1 p. C; e5 V- J4 u
QUEST.addStartNpc(7056)
Скопировать код
" w* Z! j2 V8 O* G* a
7 ^8 D p0 Z& b y) C
Добро пожаловать artace.ru - творческий сектор (https://artace.ru/)