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 CHANCE = 30 CHANCE2 = 100 HARIT_LIZARDMAN = 640 LAKIN = 604 TIMAK_ORC = 583 TIMAK_ORC_SOLDIER = 585 TIMAK_ORC_ARCHER = 584 PUNISHMENT_OF_UNDEAD = 678 FORMOR = 568 FORMOR_ELDER = 569 VANOR_SILENOS_SHAMAN = 685 OL_MAHUM = 161 OL_MAHUM_WARRIOR = 575 TARIK_BUGBEAR_HIGH_WARRIOR = 572 TIMAK_ORC_SHAMAN = 587 HATAR_HANISHEE = 663 ROYAL_CAVE_SERVANT = 240 ROYAL_CAVE_SERVANT2 = 276 SHACKLE = 235 SHACKLE2 = 279 MALRUK_SUCCUBUS_TUREN = 245 MALRUK_SUCCUBUS_TUREN2 = 284 HEADLESS_KNIGHT = 146 HEADLESS_KNIGHT2 = 280 COIN_DIAGRAM = 3811 KALDIS_COIN = 3812 COIN_COLLECTOR_LVL1 = 3813 COIN_COLLECTOR_LVL2 = 3814 COIN_COLLECTOR_LVL3 = 3815 BLOOD_MEDUSA = 3472 SILVER_UNICORN = 3490 GOLDEN_WYVERN = 3482 BLOOD_WEREWOLF = 3473 BLOOD_DRE_VANUL = 3475 GOLD_DRAKE = 3485 GOLD_KNIGHT = 3483 SILVER_FAIRY = 3491 SILVER_GOLEM = 3494 SILVER_DRYAD = 3492 SILVER_UNDINE = 3495 BLOOD_BASILISK = 3474 BLOOD_SUCCUBUS = 3476 GOLD_GIANT = 3484 GOLD_WYRM = 3486 NIAS_MEDUSA_BLOOD = 3480 NIAS_GOLD_WYVERN = 3489 NIAS_SILVER_FAIRY = 3498 MANAKS_SILVER_DRYAD = 3497 MANAKS_BLOOD_WEREWOLF = 3479 MANAKS_GOLD_GIANT = 3488 BELETHS_BLOOD_DRAGON = 3478 BELETHS_GOLD_DRAGON = 3487 BELETHS_SILVER_DRAGON = 3496 BLOOD_DRAGON = 3477 SILVER_DRAGON = 3493 GOLD_DRAGON = 3481 WAREHOUSE_SORINT = 7232 PRESIDENT_BERNARD = 7702 MAGISTER_PAGE = 7696 RESEARCHER_LORAIN = 7673 WAREHOUSE_HAGGER = 7183 GUARD_STAN = 7200 RALFORD = 7165 BLACKSMITH_FERIS = 7847 WAREHOUSE_COLLOB = 7092 GROCER_PANO = 7078 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 : htmltext = "7232-03.htm" if event == 2 : htmltext = "7232-05.htm" st.set("cond","1") st.setState(STARTED) st.giveItems(COIN_DIAGRAM,1) st.playSound("ItemSound.quest_accept") if event == 3 : htmltext = "7232-04.htm" st.unset("step") st.exitQuest(1) if event == 4 : htmltext = "7702-02.htm" if event == 5 : htmltext = "7702-02a.htm" st.set("step","1") st.playSound("ItemSound.quest_middle") if event == 6 : htmltext = "7703-03.htm" st.set("step","1") st.playSound("ItemSound.quest_middle") if event == 7 : htmltext = "7703-06.htm" if event == 8 : htmltext = "7703-08.htm" if event == 9 : htmltext = "7232-09.htm" if event == 18 : htmltext = "7232-18.htm" if event == 19 : htmltext = "7232-18a.htm" st.takeItems(COIN_COLLECTOR_LVL3,-1) st.takeItems(COIN_COLLECTOR_LVL2,-1) st.takeItems(COIN_COLLECTOR_LVL1,-1) st.exitQuest(1) if event == 104 : if st.getQuestItemsCount(COIN_COLLECTOR_LVL3) : event = 13 if st.getQuestItemsCount(COIN_COLLECTOR_LVL2) : event = 14 if st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : event = 15 if event == 13 : htmltext = "7232-13.htm" if npcId == WAREHOUSE_SORINT and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) == 1 and st.getQuestItemsCount(BLOOD_WEREWOLF) == 1 and st.getQuestItemsCount(BLOOD_DRE_VANUL) == 1 and st.getQuestItemsCount(GOLD_DRAKE) == 1 and st.getQuestItemsCount(GOLD_KNIGHT) == 1 and st.getQuestItemsCount(SILVER_FAIRY) == 1 and st.getQuestItemsCount(SILVER_GOLEM) == 1 : st.takeItems(COIN_COLLECTOR_LVL3,1) st.takeItems(BLOOD_WEREWOLF,1) st.takeItems(BLOOD_DRE_VANUL,1) st.takeItems(GOLD_DRAKE,1) st.takeItems(GOLD_KNIGHT,1) st.takeItems(SILVER_FAIRY,1) st.takeItems(SILVER_GOLEM,1) st.giveItems(COIN_COLLECTOR_LVL2,1) st.playSound("ItemSound.quest_middle") htmltext = "7232-16.htm" if event == 14 : htmltext = "7232-14.htm" if npcId == WAREHOUSE_SORINT and st.getQuestItemsCount(COIN_COLLECTOR_LVL2) == 1 and st.getQuestItemsCount(BLOOD_BASILISK) == 1 and st.getQuestItemsCount(BLOOD_SUCCUBUS) == 1 and st.getQuestItemsCount(GOLD_GIANT) == 1 and st.getQuestItemsCount(GOLD_WYRM) == 1 and st.getQuestItemsCount(SILVER_DRYAD) == 1 and st.getQuestItemsCount(SILVER_UNDINE) == 1 : st.takeItems(COIN_COLLECTOR_LVL2,1) st.takeItems(BLOOD_BASILISK,1) st.takeItems(BLOOD_SUCCUBUS,1) st.takeItems(GOLD_GIANT,1) st.takeItems(GOLD_WYRM,1) st.takeItems(SILVER_DRYAD,1) st.takeItems(SILVER_UNDINE,1) st.giveItems(COIN_COLLECTOR_LVL1,1) st.playSound("ItemSound.quest_middle") htmltext = "7232-17.htm" if event == 15 : htmltext = "7232-15.htm" if event == 22 : htmltext = "7232-22.htm" if event == 23 : htmltext = "7232-23.htm" if event == 103 and int(st.get("cond")) == 1 and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" if event == 102 and int(st.get("cond")) == 1 and st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" if event == 101 and int(st.get("cond")) == 1 and st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" return htmltext #onTalk vrode sdelal def onTalk (Self,npc,st): npcId = npc.getNpcId() htmltext = "I have nothing to say you" id = st.getState() if id == CREATED : st.set("step","0") st.set("cond","0") if npcId == WAREHOUSE_SORINT and int(st.get("cond")) == 0 : if st.getPlayer().getLevel() >= 40 : htmltext = "7232-02.htm" else: htmltext = "7232-01.htm" st.unset("step") st.exitQuest(1) if npcId == PRESIDENT_BERNARD and int(st.get("cond")) == 1 and int(st.get("step")) == 0 : htmltext = "7702-01.htm" elif npcId == PRESIDENT_BERNARD and int(st.get("cond")) == 0 : htmltext = "I have nothing to say you" elif npcId == PRESIDENT_BERNARD and int(st.get("cond")) == 1 and int(st.get("step")) == 1 : htmltext = "7702-05.htm" elif npcId == PRESIDENT_BERNARD and int(st.get("step")) > 1 : htmltext = "7702-05.htm" if npcId == WAREHOUSE_SORINT and int(st.get("step")) == 0 and int(st.get("cond")) == 1 : htmltext = "7232-06.htm" if npcId == WAREHOUSE_SORINT and int(st.get("step")) == 1 and st.getQuestItemsCount(KALDIS_COIN) == 1 : htmltext = "7232-07.htm" st.takeItems(KALDIS_COIN,-1) st.giveItems(COIN_COLLECTOR_LVL3,1) st.set("step","2") st.playSound("ItemSound.quest_middle") elif npcId == WAREHOUSE_SORINT and int(st.get("step")) == 1 and st.getQuestItemsCount(KALDIS_COIN) == 0 : htmltext = "7232-06.htm" elif npcId == WAREHOUSE_SORINT and int(st.get("step")) == 0 and int(st.get("cond")) == 1 : htmltext = "7232-06.htm" if npcId == WAREHOUSE_SORINT and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) == 1 : htmltext = "7232-10.htm" if npcId == WAREHOUSE_SORINT and st.getQuestItemsCount(COIN_COLLECTOR_LVL2) == 1 : htmltext = "7232-11.htm" if npcId == WAREHOUSE_SORINT and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) == 1 : htmltext = "7232-12.htm" if npcId == MAGISTER_PAGE and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == MAGISTER_PAGE : htmltext = "I have nothing to say you" if npcId == RESEARCHER_LORAIN and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == RESEARCHER_LORAIN : htmltext = "I have nothing to say you" if npcId == WAREHOUSE_HAGGER and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == WAREHOUSE_HAGGER : htmltext = "I have nothing to say you" if npcId == GUARD_STAN and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == GUARD_STAN : htmltext = "I have nothing to say you" if npcId == RALFORD and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL2) or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == RALFORD : htmltext = "I have nothing to say you" if npcId == BLACKSMITH_FERIS and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == BLACKSMITH_FERIS : htmltext = "I have nothing to say you" if npcId == WAREHOUSE_COLLOB and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == WAREHOUSE_COLLOB : htmltext = "I have nothing to say you" if npcId == GROCER_PANO and int(st.get("cond")) and st.getQuestItemsCount(COIN_COLLECTOR_LVL1) : htmltext = ".htm" elif npcId == GROCER_PANO : htmltext = "I have nothing to say you" return htmltext def onKill (self,npc,st): npcId = npc.getNpcId() if npcId == HARIT_LIZARDMAN and int(st.get("step")) == 1 and st.getQuestItemsCount(KALDIS_COIN) == 0 : if st.getRandom(100) <= CHANCE : st.giveItems(KALDIS_COIN,1) st.playSound("ItemSound.quest_itemget") if npcId == LAKIN or npcId == TIMAK_ORC or npcId == TIMAK_ORC_SOLDIER or npcId == TIMAK_ORC_ARCHER or npcId == PUNISHMENT_OF_DEAD and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) == 1 or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) == 1 or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) == 1 : if st.getRandom(100) <= CHANCE2 : st.giveItems(BLOOD_MEDUSA,1) st.playSound("ItemSound.quest_itemget") if npcId == FORMOR or npcId == FORMOR_ELDER or npcId == VANOR_SILENOS_SHAMAN or npcId == OL_MAHUM or npcId == OL_MAHUM_WARIOR or npcId == TARIK_BUGBEAR_HIGH_WARRIOR and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) == 1 or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) == 1 or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) == 1 : if st.getRandom(100) <= CHANCE2 : st.giveItems(SILVER_UNICORN,1) st.playSound("ItemSound.quest_itemget") if npcId == TIMAK_ORC_SHAMAN or npcId == HATAR_HANISHEE or npcId == ROYAL_CAVE_SERVANT or npcId == ROYAL_CAVE_SERVANT2 or npcId == SHACKLE or npcId == SHACKLE2 or npcId == MARLUK_SUCCUBUS_TUREN or npcId == MARLUK_SUCCUBUS_TUREN2 or npcId == HEADLESS_KNIGHT or npcId == HEADLESS_KNIGHT2 and st.getQuestItemsCount(COIN_COLLECTOR_LVL3) == 1 or st.getQuestItemsCount(COIN_COLLECTOR_LVL2) == 1 or st.getQuestItemsCount(COIN_COLLECTOR_LVL1) == 1 : if st.getRandom(100) <= CHANCE2 : st.giveItems(GOLDEN_WYVERN,1) st.playSound("ItemSound.quest_itemget") return QUEST = Quest(336,"336_CoinOfMagic","Coin Of Magic") CREATED = State('Start', QUEST) STARTING = State('Starting', QUEST) STARTED = State('Started', QUEST) COMPLETED = State('Completed', QUEST) QUEST.setInitialState(CREATED) QUEST.addStartNpc(WAREHOUSE_SORINT) CREATED.addTalkId(WAREHOUSE_SORINT) STARTING.addTalkId(WAREHOUSE_SORINT) STARTED.addTalkId(WAREHOUSE_SORINT) STARTED.addTalkId(PRESIDENT_BERNARD) STARTED.addTalkId(MAGISTER_PAGE) STARTED.addTalkId(RESEARCHER_LORAIN) STARTED.addTalkId(WAREHOUSE_HAGGER) STARTED.addTalkId(GUARD_STAN) STARTED.addTalkId(RALFORD) STARTED.addTalkId(BLACKSMITH_FERIS) STARTED.addTalkId(WAREHOUSE_COLLOB) STARTED.addTalkId(GROCER_PANO) STARTED.addKillId(HARIT_LIZARDMAN) STARTED.addKillId(LAKIN) STARTED.addKillId(TIMAK_ORC) STARTED.addKillId(TIMAK_ORC_SOLDIER) STARTED.addKillId(TIMAK_ORC_ARCHER) STARTED.addKillId(PUNISHMENT_OF_UNDEAD) STARTED.addKillId(OL_MAHUM) STARTED.addKillId(OL_MAHUM_WARRIOR) STARTED.addKillId(TARIK_BUGBEAR_HIGH_WARRIOR) STARTED.addKillId(TIMAK_ORC_SHAMAN) STARTED.addKillId(HATAR_HANISHEE) STARTED.addKillId(ROYAL_CAVE_SERVANT) STARTED.addKillId(SHACKLE) STARTED.addKillId(MARLUK_SUCCUBUS_TUREN) STARTED.addKillId(HEADLESS_KNIGHT) STARTED.addQuestDrop(HARIT_LIZARDMAN,KADIS_COIN,1) STARTED.addQuestDrop(LAKIN,BLOOD_MEDUSA,1) STARTED.addQuestDrop(TIMAK_ORC,BLOOD_MEDUSA,1) STARTED.addQuestDrop(TIMAK_ORC_SOLDIER,BLOOD_MEDUSA,1) STARTED.addQuestDrop(TIMAK_ORC_ARCHER,BLOOD_MEDUSA,1) STARTED.addQuestDrop(PUNISHMENT_OF_UNDEAD,BLOOD_MEDUSA,1) STARTED.addQuestDrop(FORMOR,SILVER_UNICORN,1) STARTED.addQuestDrop(FORMOR_ELDER,SILVER_UNICORN,1) STARTED.addQuestDrop(VANOR_SILENOS_SHAMAN,SILVER_UNICORN,1) STARTED.addQuestDrop(OL_MAHUM,SILVER_UNICORN,1) STARTED.addQuestDrop(OL_MAHUM_WARRIOR,SILVER_UNICORN,1) STARTED.addQuestDrop(TARIK_BUGBEAR_HIGH_WARRIOR,SILVER_UNICORN,1) STARTED.addQuestDrop(TIMAK_ORC_SHAMAN,GOLDEN_WYVERN,1) STARTED.addQuestDrop(HATAR_HANISHEE,GOLDEN_WYVERN,1) STARTED.addQuestDrop(SHACKLE,GOLDEN_WYVERN,1) STARTED.addQuestDrop(MALRUK_SUCCUBUS_TUREN,GOLDEN_WYVERN,1) STARTED.addQuestDrop(ROYAL_CAVE_SERVANT,GOLDEN_WYVERN,1) STARTED.addQuestDrop(HEADLESS_KNIGHT,GOLDEN_WYVERN,1) print "importing quests: 336: Coin Of Magic"