#
# Created by DraX on 2005.10.13
# NOTE: This is ONLY for Testing!
#
import sys
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
# Quest Npc´s
SIR_KRISTOF_RODEMAI = 7756
STATUE_OF_OFFERING = 7757
WITCH_ATHREA = 7758
WITCH_KALIS = 7759
# Quest Item´s
HERB_OF_HARIT_ID = 3832
HERB_OF_VANOR_ID = 3833
HERB_OF_OEL_MAHUM_ID = 3834
BLOOD_OF_EVA_ID = 3835
ATHREAS_COIN_ID = 3836
SYMBOL_OF_LOYALTY_ID = 3837
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent (self,event,st):
htmltext = event
if event == "7756-02.htm": htmltext = "7756-02.htm"
elif event == "7756-04.htm":
st.setState(COMPLETED)
st.exitQuest(1)
htmltext = "7756-04.htm"
elif event == "7756-03.htm":
st.setState(PART2)
st.set("cond","1")
st.playSound("ItemSound.quest_accept")
htmltext = "7756-03.htm"
elif event == "7759-02.htm": htmltext = "7759-02.htm"
elif event == "7759-03.htm":
st.setState(PART3)
st.set("cond","2")
htmltext = "7759-03.htm"
elif event == "7759-04.htm": htmltext = "7759-04.htm"
elif event == "7759-07.htm":
st.setState(PART4)
st.set("cond","3")
#
# cast poisen effect on clanleader //TODO
#
# reduce clanleaders HP with 50hp/sec
# clanleader should not walkable at this point
#
htmltext = "7759-07.htm"
return htmltext
def onTalk (Self,npcId,st):
if npcId == SIR_KRISTOF_RODEMAI:
if st.getPlayer().getClan() == None or st.getPlayer().isClanLeader() == 0:
st.exitQuest(1)
return "7756-10.htm"
else:
if st.getPlayer().getClan().getLevel() <= 2: # clanlevel is under 3!
st.exitQuest(1)
return "7756-08.htm"
elif st.getPlayer().getClan().getLevel() >= 4: # clanlevel is too high!
st.exitQuest(1)
return "7756-09.htm"
elif st.getState() == PART2 or st.getState() == PART3: # talk to witch kalis, and not me!
return "7756-back_without_.htm"
else: # all ok, lets start.
st.setState(STARTED)
st.set("cond","0")
return "7756-01.htm"
if npcId == WITCH_KALIS:
st.getPlayer.addSkill(7029)
if st.getPlayer().getClan() == None: # player is not in a clan right now!
st.exitQuest(1)
return "no_quest.htm"
else:
if st.getPlayer().isClanLeader() == 1: # player is clanleader!
if st.getState() == PART2: # part1 are already done.
return "7759-01.htm"
elif st.getState() == PART3:
if (items in inventory) == 1:
return "7759-06.htm" #back with symbols
else:
return "fehlt was"
elif st.getState() == PART4:
if st.getQuestItemsCount(HERB_OF_HARIT_ID) == 0 or st.getQuestItemsCount(HERB_OF_VANOR_ID) == 0 or st.getQuestItemsCount(HERB_OF_OEL_MAHUM_ID) == 0 or st.getQuestItemsCount(BLOOD_OF_EVA_ID) == 0:
return "7759-10.htm" #back without ingredients and blood of eva
#elif clanleader died ... (we should test, if poisen effect there!)
# st.setState(PART3)
# st.set("cond","2")
# return "7759-09.htm"
else:
#
# disable poisen effect on clanleader //TODO
#
# clanleader should normal walk at this point
#
#st.giveItems(XXX,1)
return "7759-08.htm"
else: # clanleader must talk to sir_kristof_rodemai before!
st.exitQuest(1)
return "no_quest.htm"
if npcId == STATUE_OF_OFFERING:
if st.getPlayer().getClan() == None: # player is not in a clan right now!
st.exitQuest(1)
return "7757-06.htm"
else: # player is in a clan.
if st.getPlayer().isClanLeader() == 1: # player is clanleader!
if st.getState() == PART3: # part2 are already done.
return "7757-only_clan_mates.htm"
else:
st.exitQuest(1)
return "no_quest.htm"
else: # player is in a clan but no clanleader!
if st.getPlayer().getLevel() <= 39: # player is too low, to give his live
st.exitQuest(1)
return "7757-02.htm"
else:
return #fake for now
QUEST = Quest(501,"501_ProofOfClanAlliance","Proof Of Clan Alliance")
CREATED = State('Start', QUEST)
STARTED = State('Started', QUEST)
PART2 = State('Part2', QUEST)
PART3 = State('Part3', QUEST)
COMPLETED = State('Completed', QUEST)
QUEST.setInitialState(CREATED)
QUEST.addStartNpc(SIR_KRISTOF_RODEMAI)
QUEST.addStartNpc(WITCH_KALIS)
QUEST.addStartNpc(STATUE_OF_OFFERING)
STARTED.addTalkId(SIR_KRISTOF_RODEMAI)
STARTED.addTalkId(WITCH_KALIS)
STARTED.addTalkId(STATUE_OF_OFFERING)
PART3.addQuestDrop(STATUE_OF_OFFERING,SYMBOL_OF_LOYALTY_ID,1)
print "importing TEST: 501 ProofOfClanAlliance ...done"