Не работает квест на сборке фрозен
Вот скрипт
import sys
from com.l2jfrozen import Config
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
qn = "q902_FeatherGathering"
## нпц
NPC = 77777
## Мобы
MOBS = [22126,22124,22123]
#босс
BOSS = 70020
## Дроп
#id перьев с мобов в мос
FEATHER = 9983
#сколько нужно?
FEATHER_NEED = 300
#шанс дропа, %
FEATHER_CHANCE = 50
#id итема с босса
BOSS_ITEM = 9984
##Награда
#id крыльев
WINGS = 9996
class Quest (JQuest) :
def __init__(self,id,name,descr) : JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st) :
htmltext = event
if event == "accept.htm":
st.setState(State.STARTED)
st.playSound("ItemSound.quest_accept")
st.set("cond","1")
elif event == "finish.htm":
if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1:
st.takeItems(FEATHER, -1)
st.takeItems(BOSS_ITEM, -1)
st.giveItems(WINGS, 1)
st.set("cond","0")
st.playSound("ItemSound.quest_finish")
st.setState(State.COMPLETED)
else:
htmltext = "mobs.htm"
return htmltext
def onTalk (self,npc,player):
st = player.getQuestState(qn)
if not st:
return "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
npcId = npc.getNpcId()
idd = st.getState()
cond = st.getInt("cond")
if npcId == NPC:
if idd == State.COMPLETED :
htmltext = "completed.htm"
if idd == State.CREATED :
htmltext = "hello1.htm"
elif cond == 1:
if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1:
htmltext = "mobs2.htm"
else:
htmltext = "mobs.htm"
return htmltext
def onKill(self,npc,player,isPet):
st = player.getQuestState(qn)
if not st or st.getInt("cond") != 1:
return
npcId = npc.getNpcId()
reward = 0
limit = 1
chance = 100
if npcId in MOBS:
reward = FEATHER
limit = FEATHER_NEED
chance = FEATHER_CHANCE
if npcId == BOSS:
reward = BOSS_ITEM
limit = 1
if reward > 0:
party = player.getParty()
if party:
for member in party.getPartyMembers():
if not member.isAlikeDead():
st = member.getQuestState("q902_FeatherGathering")
if st and st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
st.giveItems(reward, 1)
st.playSound("ItemSound.quest_itemget")
if st.getQuestItemsCount(reward) >= limit:
st.playSound("ItemSound.quest_middle")
else:
if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
st.giveItems(reward, 1)
st.playSound("ItemSound.quest_itemget")
return
QUEST = Quest(902, qn, "Feather Gathering")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addKillId(BOSS)
for m in MOBS:
QUEST.addKillId(m)
Вот ошибка
E:\L2JFroZeNN\gameserver\data\scripts\quests\q902_FeatherGathering\__init__.py
Traceback (innermost last):
File "__init__.py", line 61, in onTalk
AttributeError: class 'com.l2jfrozen.gameserver.model.quest.State' has no attrib
ute 'COMPLETED'
at org.python.core.Py.AttributeError(Unknown Source)
at org.python.core.PyObject.noAttributeError(Unknown Source)
at org.python.core.PyObject.__getattr__(Unknown Source)
at org.python.pycode._pyx406.onTalk$4(__init__.py:61)
at org.python.pycode._pyx406.call_function(__init__.py)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyFunction.__call__(Unknown Source)
at org.python.core.PyMethod.__call__(Unknown Source)
at org.python.core.PyObject.__call__(Unknown Source)
at org.python.core.PyObject._jcallexc(Unknown Source)
at org.python.core.PyObject._jcall(Unknown Source)
at org.python.proxies.main$Quest$404.onTalk(Unknown Source)
at com.l2jfrozen.gameserver.model.quest.Quest.notifyTalk(Quest.java:519)
at com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance.showQuest
Window(L2NpcInstance.java:2028)
at com.l2jfrozen.gameserver.model.actor.instance.L2NpcInstance.onBypassF
eedback(L2NpcInstance.java:1273)
at com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer.
runImpl(RequestBypassToServer.java:234)
at com.l2jfrozen.gameserver.network.clientpackets.L2GameClientPacket.run
(L2GameClientPacket.java:75)
at com.l2jfrozen.gameserver.network.L2GameClient.run(L2GameClient.java:1
203)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)