import sys
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 = "918_DonateList" #
NPC = 300300 #
#=====================#
#=====================#
# Общая настройка #
#=====================#
Adena = 4037 #
#=====================#
#================================#
# Apella Set's #
#================================#
ApellaHeavy1 = 7860 # Шлем #
ApellaHeavy2 = 7861 # Армор #
ApellaHeavy3 = 7862 # Перчатки #
ApellaHeavy4 = 7863 # Ботинки #
ApellaHEnchant = 0 # Заточена + #
ApellaHCount = 45 # Цена #
#================================#
ApellaLight1 = 7860 # Шлем #
ApellaLight2 = 7864 # Армор #
ApellaLight3 = 7865 # Перчатки #
ApellaLight4 = 7866 # Ботинки #
ApellaLEnchant = 0 # Заточена + #
ApellaLCount = 45 # Цена #
#================================#
ApellaRobe1 = 7860 # Шлем #
ApellaRobe2 = 7867 # Армор #
ApellaRobe3 = 7868 # Перчатки #
ApellaRobe4 = 7869 # Ботинки #
ApellaREnchant = 0 # Заточена + #
ApellaRCount = 45 # Цена #
#================================#
#================================#
# Dusk Shield #
#================================#
DuskShield = 5799 # Щит #
DuskSEnchant = 0 # Заточен + #
DuskSCount = 45 # Цена #
#================================#
#================================#
# RB Jewels #
#================================#
Baium = 6658 # Баиум #
BaiumEnchant = 0 # Заточен + #
BaiumCount = 50 # Цена #
#================================#
Valakas = 6657 # Валакас #
ValakasEnchant = 0 # Заточен + #
ValakasCount = 70 # Цена #
#================================#
Zaken = 6659 # Закен #
ZakenEnchant = 0 # Заточен + #
ZakenCount = 40 # Цена #
#================================#
Antharas = 6656 # Антарас #
AntharasEnchant = 0 # Заточен + #
AntharasCount = 60 # Цена #
#================================#
AntQueen = 6660 # Ант квин #
AntQueenEnchant = 0 # Заточен + #
AntQueenCount = 30 # Цена #
#================================#
FullSetEnchant = 0 # Заточен + #
FullSetCount = 180 # Цена #
#================================#
#================================#
# Other #
#================================#
Wyvern = 8663 # Виверн #
WyvernCount = 50 # Цена #
#================================#
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st) :
htmltext = event
if event == "1":
count=st.getQuestItemsCount(Adena)
if count < ApellaHCount :
return "noadena.htm"
else:
st.takeItems(Adena,ApellaHCount)
st.giveItems(ApellaHeavy1,1,ApellaHEnchant)
st.giveItems(ApellaHeavy2,1,ApellaHEnchant)
st.giveItems(ApellaHeavy3,1,ApellaHEnchant)
st.giveItems(ApellaHeavy4,1,ApellaHEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "2":
count=st.getQuestItemsCount(Adena)
if count < ApellaLCount :
return "noadena.htm"
else:
st.takeItems(Adena,ApellaLCount)
st.giveItems(ApellaLight1,1,ApellaLEnchant)
st.giveItems(ApellaLight2,1,ApellaLEnchant)
st.giveItems(ApellaLight3,1,ApellaLEnchant)
st.giveItems(ApellaLight4,1,ApellaLEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "3":
count=st.getQuestItemsCount(Adena)
if count < ApellaRCount :
return "noadena.htm"
else:
st.takeItems(Adena,ApellaRCount)
st.giveItems(ApellaRobe1,1,ApellaREnchant)
st.giveItems(ApellaRobe2,1,ApellaREnchant)
st.giveItems(ApellaRobe3,1,ApellaREnchant)
st.giveItems(ApellaRobe4,1,ApellaREnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "4":
count=st.getQuestItemsCount(Adena)
if count < DuskSCount :
return "noadena.htm"
else:
st.takeItems(Adena,DuskSCount)
st.giveItems(DuskShield,1,DuskSEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "5":
count=st.getQuestItemsCount(Adena)
if count < BaiumCount :
return "noadena.htm"
else:
st.takeItems(Adena,BaiumCount)
st.giveItems(Baium,1,BaiumEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "6":
count=st.getQuestItemsCount(Adena)
if count < ValakasCount :
return "noadena.htm"
else:
st.takeItems(Adena,ValakasCount)
st.giveItems(Valakas,1,ValakasEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "7":
count=st.getQuestItemsCount(Adena)
if count < ZakenCount :
return "noadena.htm"
else:
st.takeItems(Adena,ZakenCount)
st.giveItems(Zaken,1,ZakenEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "8":
count=st.getQuestItemsCount(Adena)
if count < AntharasCount :
return "noadena.htm"
else:
st.takeItems(Adena,AntharasCount)
st.giveItems(Antharas,1,AntharasEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "9":
count=st.getQuestItemsCount(Adena)
if count < AntQueenCount :
return "noadena.htm"
else:
st.takeItems(Adena,AntQueenCount)
st.giveItems(AntQueen,1,AntQueenEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "10":
count=st.getQuestItemsCount(Adena)
if count < FullSetCount :
return "noadena.htm"
else:
st.takeItems(Adena,FullSetCount)
st.giveItems(Baium,1,FullSetEnchant)
st.giveItems(Valakas,1,FullSetEnchant)
st.giveItems(Zaken,1,FullSetEnchant)
st.giveItems(Antharas,1,FullSetEnchant)
st.giveItems(AntQueen,1,FullSetEnchant)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if event == "11":
count=st.getQuestItemsCount(Adena)
if count < WyvernCount :
return "noadena.htm"
else:
st.takeItems(Adena,WyvernCount)
st.giveItems(Wyvern,1)
st.playSound("ItemSound.quest_itemget")
return "main.htm"
st.setState(State.COMPLETED)
if htmltext != event:
st.setState(State.COMPLETED)
st.exitQuest(1)
return htmltext
def onTalk (self,npc,player) :
st = player.getQuestState(qn)
npcId = npc.getNpcId()
htmltext = "<html><head><body>I have nothing to say to you</body></html>"
if not st : return htmltext
if npcId == NPC:
htmltext = "main.htm"
return htmltext
QUEST = Quest(918,qn,"custom")
CREATED = State('Start', QUEST)
STARTING = State('Starting', QUEST)
STARTED = State('Started', QUEST)
COMPLETED = State('Completed', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)