st.giveItems(WORLD_MAP_ITEM_ID,1), U- x0 e9 k/ H' |0 e/ m \
st.exitQuest(False)* S, [8 f r: T) {
return
Скопировать код
Тут объявляем квест выполненным, сбрасываем квестовый дроп, забираем все клыки у игрока и даем ему награду. Затем сообщаем серверу, что квест завершен и больше не повторяется. (st.exitQuest(False)) 6 N3 Z) N9 k4 @- O " L% n b, I% H2 p+ L; } ' ~& a& R( o3 K5 L* Q3 S/ C' v 2 _7 M0 m. ?/ h* C( P# BИ наконец вспомогательная функция для проверки необходимого количества клыков у игрока для завершения квеста. (st должна быть в QuestState): - [# S6 Y5 d$ |" u$ d7 Z0 V y9 G( S' ]; z, o% x) c
def check(st) :# s' Y% P, K6 j) j, q/ z& u
if getCount(st) >= 4 : * Y% h" t2 F5 h0 K, F
completed(st): v7 P5 G+ V; C. z3 Y3 u
return
Скопировать код
Затем мы объявляем непосредственно сам класс quest. Quest – класс python, который расширяет java класс net.sf.l2j.gameserver.model.quest.jython.QuestJython. Затем мы объявляем метод onEvent, который вызывается Явой, если квест кто то начал. m* j3 L$ I# l1 m' J7 R' D6 I+ l3 q; j4 x0 J
class Quest (JQuest):# Q/ i i( E1 z; T
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) ) J8 s' V e2 @0 u9 r& Q
def onEvent (self,event,st):9 Q: ?: a* U. w6 A
id = st.getState(); o$ _) J* t+ l$ j. X
if id == CREATED : st.setState(STARTED) ' E+ ~# Z8 U n. F: x
elif id == COMPLETED: pass / t' X3 w+ t( d' _+ ]$ N
elif id == STARTED : check(st)3 _5 s; w* f1 r& w; Z1 V, a. @
return
Скопировать код
QUEST.setInitialState(CREATED) - Y' c( `$ C8 U5 M3 J* X _, ~4 F9 K
QUEST.addStartNpc(7056)
Скопировать код
$ e" H! o1 y1 p0 O' b , M6 t, _& x, v! i
Добро пожаловать artace.ru - творческий сектор (https://www.artace.ru/)