st.giveItems(WORLD_MAP_ITEM_ID,1)( Z. Y9 n8 h8 v7 A
st.exitQuest(False) 5 a/ T8 O: ~ A1 V0 s
return
Скопировать код
Тут объявляем квест выполненным, сбрасываем квестовый дроп, забираем все клыки у игрока и даем ему награду. Затем сообщаем серверу, что квест завершен и больше не повторяется. (st.exitQuest(False)) i& R: [. w% [' C* s( _/ x+ [
! @5 ], t; y( d* x/ O
% w* Z' t6 G$ Q& O) I/ i6 ~
* _) R% r1 {% C
И наконец вспомогательная функция для проверки необходимого количества клыков у игрока для завершения квеста. (st должна быть в QuestState):0 v4 L( `3 w* d/ j
- f8 x+ B, l) c$ I! ~ h( F* m+ ?
def check(st) : ' E( g: W; {& W2 p) p& T9 _5 q
if getCount(st) >= 4 : 1 S# c: X9 \. P. T. Q X1 _
completed(st) & G% a' B& n- m4 g+ B) `. p# f: d
return
Скопировать код
Затем мы объявляем непосредственно сам класс quest. Quest – класс python, который расширяет java класс net.sf.l2j.gameserver.model.quest.jython.QuestJython. Затем мы объявляем метод onEvent, который вызывается Явой, если квест кто то начал.6 W0 x+ L4 r$ [' K6 r
* z+ A! b. E8 d
class Quest (JQuest):) [ D2 p$ v+ e% A! ]* G" k( z6 O
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)5 m0 h- O- P1 s b# |; a) s
def onEvent (self,event,st): 1 H' d% q/ b v9 I; P' @
id = st.getState()" W! G* m/ p9 D! Y/ W* e
if id == CREATED : st.setState(STARTED) * R% z% W7 k) @# i
elif id == COMPLETED: pass ! q7 j" | B* @) a& M
elif id == STARTED : check(st)* K7 O7 M0 q3 N; L9 f5 i' f
return
Скопировать код
QUEST.setInitialState(CREATED)( g# n8 {" p5 `; m$ y, H
QUEST.addStartNpc(7056)
Скопировать код
3 Q* X+ y# A1 p2 I8 }3 u0 @7 z; _. Y$ g) T0 n
Добро пожаловать artace.ru - творческий сектор (https://www.artace.ru/)