# Made by disKret 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 #NPC LADD = 30721 CARADINE = 31740 OSSIAN = 31741 #QUEST ITEM CARADINE_LETTER = 7678 CARADINE_LETTER_LAST = 7679 WATERBINDER = 7591 EVERGREEN = 7592 RAIN_SONG = 7593 RELIC_BOX = 7594 #MOBS PILGRIM_OF_SPLENDOR = 21541 JUDGE_OF_SPLENDOR = 21544 BARAKIEL = 25325 #CHANCE FOR DROP CHANCE_FOR_DROP = 5 class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : htmltext = event cond = st.getInt("cond") if event == "31740-4.htm" : if cond == 0 : st.setState(STARTED) st.takeItems(CARADINE_LETTER,1) st.set("cond","1") st.playSound("ItemSound.quest_accept") if event == "31741-2.htm" : if cond == 1 : st.set("cond","2") st.playSound("ItemSound.quest_middle") if event == "31741-5.htm" : if cond == 3 : st.set("cond","4") st.takeItems(WATERBINDER,1) st.takeItems(EVERGREEN,1) st.playSound("ItemSound.quest_middle") if event == "31741-9.htm" : if cond == 5 : st.set("cond","6") st.takeItems(RAIN_SONG,1) st.giveItems(RELIC_BOX,1) st.playSound("ItemSound.quest_middle") if event == "30721-2.htm" : if cond == 6 : st.set("cond","0") st.takeItems(RELIC_BOX,1) st.giveItems(CARADINE_LETTER_LAST,1) st.playSound("ItemSound.quest_finish") st.setState(COMPLETED) return htmltext def onTalk (Self,npc,st): htmltext = "I have nothing to say you" cond = st.getInt("cond") npcId = npc.getNpcId() id = st.getState() if id == CREATED : st.set("cond","0") if st.getPlayer().isSubClassActive() : if npcId == CARADINE and cond == 0 and st.getQuestItemsCount(CARADINE_LETTER) == 1 : if id == COMPLETED : htmltext = "This quest have already been completed." elif st.getPlayer().getLevel() < 65 : htmltext = "31740-2.htm" st.exitQuest(1) elif st.getPlayer().getLevel() >= 65 : htmltext = "31740-1.htm" if npcId == CARADINE and cond == 1 : htmltext = "31740-5.htm" if npcId == OSSIAN and cond == 1 : htmltext = "31741-1.htm" if npcId == OSSIAN and cond == 2 : htmltext = "31741-4.htm" if npcId == OSSIAN and cond == 3 and st.getQuestItemsCount(WATERBINDER) == 1 and st.getQuestItemsCount(EVERGREEN) == 1 : htmltext = "31741-3.htm" if npcId == OSSIAN and cond == 4 : htmltext = "31741-8.htm" if npcId == OSSIAN and cond == 5 and st.getQuestItemsCount(RAIN_SONG) == 1 : htmltext = "31741-7.htm" if npcId == OSSIAN and cond == 6 and st.getQuestItemsCount(RELIC_BOX) == 1 : htmltext = "31741-11.htm" if npcId == LADD and cond == 6 : htmltext = "30721-1.htm" return htmltext def onKill (self,npc,st): npcId = npc.getNpcId() chance = st.getRandom(100) cond = st.getInt("cond") if npcId == PILGRIM_OF_SPLENDOR : if cond == 2 and st.getQuestItemsCount(WATERBINDER) < 1 : if chance < CHANCE_FOR_DROP : st.giveItems(WATERBINDER,1) if st.getQuestItemsCount(EVERGREEN) < 1 : st.playSound("ItemSound.quest_itemget") else: st.playSound("ItemSound.quest_middle") st.set("cond","3") if npcId == JUDGE_OF_SPLENDOR : if cond == 2 and st.getQuestItemsCount(EVERGREEN) < 1 : if chance < CHANCE_FOR_DROP : st.giveItems(EVERGREEN,1) if st.getQuestItemsCount(WATERBINDER) < 1 : st.playSound("ItemSound.quest_itemget") else: st.playSound("ItemSound.quest_middle") st.set("cond","3") if npcId == BARAKIEL : if cond == 4 and st.getQuestItemsCount(RAIN_SONG) < 1 : st.giveItems(RAIN_SONG,1) st.playSound("ItemSound.quest_middle") st.set("cond","5") return QUEST = Quest(246,"246_PossessorOfAPreciousSoul_3","Possessor Of A Precious Soul - 3") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST,True) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(CARADINE) CREATED.addTalkId(CARADINE) STARTED.addTalkId(CARADINE) STARTED.addTalkId(OSSIAN) STARTED.addTalkId(LADD) STARTED.addKillId(PILGRIM_OF_SPLENDOR) STARTED.addKillId(JUDGE_OF_SPLENDOR) STARTED.addKillId(BARAKIEL) STARTED.addQuestDrop(CARADINE,CARADINE_LETTER_LAST,1) STARTED.addQuestDrop(CARADINE,WATERBINDER,1) STARTED.addQuestDrop(CARADINE,EVERGREEN,1) STARTED.addQuestDrop(CARADINE,RAIN_SONG,1) STARTED.addQuestDrop(CARADINE,RELIC_BOX,1) print "importing quests: 246: Possessor Of A Precious Soul - 3"