# # 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"