Функция для завершения квеста (st должна быть в QuestState): ! S* \* u9 I- V) ~% Z/ Q' m- k' L# p7 {( L
def completed(st) : 9 M! N" N9 j0 \! W- L
st.setState(COMPLETED)! [: r, z8 \3 e/ P) @
st.clearQuestDrops()- r, E' I2 f0 _3 K' Q9 H- E% _, u; L& D! m
st.takeItems(FANGS_ITEM_ID,-1) , O" v9 y7 _ O, ^
st.giveItems(WORLD_MAP_ITEM_ID,1)7 F% [; w. f( K. t5 f. r6 p
st.exitQuest(False) 7 N4 B0 n7 g0 \) d4 F
return
Скопировать код
Тут объявляем квест выполненным, сбрасываем квестовый дроп, забираем все клыки у игрока и даем ему награду. Затем сообщаем серверу, что квест завершен и больше не повторяется. (st.exitQuest(False))' m2 y' y4 U5 X! q. Y. m2 S
( f! `. b! v0 c" w4 O. F J: y d& ]$ D' m0 D* D8 A x5 I
6 ^7 Z& Q7 F& }3 YИ наконец вспомогательная функция для проверки необходимого количества клыков у игрока для завершения квеста. (st должна быть в QuestState): 8 u9 c/ F; A% ]2 E9 t+ X9 W; |4 x0 L
def check(st) : 3 A" C: [7 T8 N% e! }1 u
if getCount(st) >= 4 : 7 e; o* _2 R7 ]
completed(st) & `$ E/ a- e; n( h& @
return
Скопировать код
Затем мы объявляем непосредственно сам класс quest. Quest – класс python, который расширяет java класс net.sf.l2j.gameserver.model.quest.jython.QuestJython. Затем мы объявляем метод onEvent, который вызывается Явой, если квест кто то начал. ) o" [/ P6 C* z2 F) D$ F. ^" m2 P% H