def onAttack(self, npc, player, damage, isPet): npcId = npc.getNpcId() if npcId in HSMOBS: if (Rnd.get(2) == 1): if (Rnd.get(2) == 1): if player.getFirstEffect(int(4552)): holera = player.getFirstEffect(int(4552)).getLevel() if (Rnd.get(100) < 30): if holera < 10: newholera = int(holera + 1) npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo( 4552, newholera)) else: npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo(4552, 1)) else: if player.getFirstEffect(int(4554)): malaria = player.getFirstEffect(int(4554)).getLevel() if (Rnd.get(100) < 15): if malaria < 10: newmalaria = int(malaria + 1) npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo( 4554, newmalaria)) else: npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo(4554, 1)) return
def onAdvEvent (self,event,npc,player) : htmltext = event st = player.getQuestState(qn) if not st: return Alevel = player.getAllianceWithVarkaKetra() if str(event) in BUFF.keys() : skillId,level,seeds=BUFF[event] if st.getQuestItemsCount(Seed) >= seeds : st.takeItems(Seed,seeds) npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo(skillId,level)) npc.setCurrentHpMp(npc.getMaxHp(), npc.getMaxMp()) htmltext = "31379-4.htm" elif event == "Withdraw" : if player.getWarehouse().getSize() == 0 : htmltext = "31381-0.htm" else : player.sendPacket(ActionFailed()) player.setActiveWarehouse(player.getWarehouse()) player.sendPacket(WareHouseWithdrawalList(player, 1)) elif event == "Teleport" : if Alevel == -4 : htmltext = "31383-4.htm" elif Alevel == -5 : htmltext = "31383-5.htm" return htmltext
def onAttack(self, npc, player, damage, isPet): st = player.getQuestState(qn) if not st: return if st.getState() != STARTED: return chance = st.getRandom(100) if chance < 3: count = 0 for item in range(5875, 5879): if st.getQuestItemsCount(item): count += 1 st.takeItems(item, -1) if count: st.giveItems(5880, 1) elif chance < 7: for item in range(5875, 5879): if st.getQuestItemsCount(item): npc.doCast(SkillTable.getInstance().getInfo(4072, 4)) st.takeItems(item, -1) st.giveItems(item + 1, 1) if item < 5878: st.playSound("ItemSound.quest_itemget") elif item == 5878: st.playSound("ItemSound.quest_middle") st.set("cond", "2") break return
def onKill(self,npc,player,isPet): st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == FR_GARDENER : self.startQuestTimer("buff",1,npc,player) if npcId == FR_SERVANT : player.setTarget(self.IQ) player.useMagic(SkillTable.getInstance().getInfo(4480,1),True,True) if npcId == FR_DOG : player.setTarget(self.IQ) player.useMagic(SkillTable.getInstance().getInfo(4481,1),True,True) if npcId == ICE_CAPTAIN : player.setTarget(self.IQ) player.useMagic(SkillTable.getInstance().getInfo(4482,1),True,True) if npcId == ICE_QUEEEN : self.cancelQuestTimer("vkrovatku",npc,None) return
def onAdvEvent (self,event,npc,player): if event == "prosnuca" : self.IQ = self.addSpawn(ICE_QUEEEN,102727,-125655,-2846,0,False,0) self.startQuestTimer("vkrovatku",1800000,self.IQ,None) self.cancelQuestTimer("prosnuca",npc,None) elif event == "captain" : npc = self.addSpawn(ICE_CAPTAIN,105804,-127721,-2769,0,False,0) self.startQuestTimer("sleepcap",1800000,npc,None) self.cancelQuestTimer("prosnuca",npc,None) elif event == "resist" : npc = self.addSpawn(FR_GARDENER,111375,-126645,-2991,0,False,0) self.startQuestTimer("sleepres",1800000,npc,None) self.cancelQuestTimer("resist",npc,None) elif event == "mdef" : npc = self.addSpawn(FR_SERVANT,108885,-129124,-3218,0,False,0) self.startQuestTimer("sleepmdef",1800000,npc,None) self.cancelQuestTimer("mdef",npc,None) elif event == "pdef" : npc = self.addSpawn(FR_DOG,109784,-125793,-3142,0,False,0) self.startQuestTimer("sleeppdef",1800000,npc,None) self.cancelQuestTimer("pdef",npc,None) elif event == "vkrovatku": npc.deleteMe() self.cancelQuestTimer("vkrovatku",npc,None) elif event == "sleepcap": npc.deleteMe() self.cancelQuestTimer("sleepcap",npc,None) elif event == "sleepres": npc.deleteMe() self.cancelQuestTimer("sleepres",npc,None) elif event == "sleepmdef": npc.deleteMe() self.cancelQuestTimer("sleepmdef",npc,None) elif event == "sleeppdef": npc.deleteMe() self.cancelQuestTimer("sleeppdef",npc,None) elif event == "open" : self.deleteGlobalQuestVar("closed") self.deleteGlobalQuestVar("first") self.cancelQuestTimer("open",npc,None) elif event == "buff" : npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo(4479,1)) return elif event == "teleout" : if player: player.teleToLocation(115525,-125724,-3439) return "<html><body><font color=LEVEL>Time out...</font></body></html>" self.cancelQuestTimer("teleout",None,player) return
def onAdvEvent(self, event, npc, player): st = player.getQuestState(qn) if not st: return htmltext = event cond = st.getInt("cond") if htmltext == "31554-03a.htm": #Giving 100 Splinter Stakato Chitins. Getting Recruit mark if st.getQuestItemsCount(CHITIN) >= count and cond == 1: st.set("cond", "2") st.takeItems(CHITIN, -1) st.giveItems(RECRUIT, 1) htmltext = "31554-04.htm" elif event == "31554-07.htm": #Cancelling the quest st.exitQuest(1) st.playSound("ItemSound.quest_giveup") elif event in BUFF.keys() and cond == 3: #Asking for buff skillId, level, coins = BUFF[event] if st.getQuestItemsCount(GOLDEN_RAM_COIN) >= coins: st.takeItems(GOLDEN_RAM_COIN, coins) npc.setTarget(player) npc.doCast(SkillTable.getInstance().getInfo(skillId, level)) htmltext = "31556-1.htm" else: htmltext = "You don't have required items" return htmltext
def onEvent(self, event, st): htmltext = event count = st.getQuestItemsCount(ADENA_ID) if count < 1000 or st.getPlayer().getLevel() < 0: htmltext = "<html><head><body>You dont have enought Adena.</body></html>" else: st.takeItems(ADENA_ID, 0) st.getPlayer().setTarget(st.getPlayer()) #nob if event == "70": st.takeItems SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) return "1.htm" st.setState(State.COMPLETED) #MP-HP if event == "6": st.takeItems st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) #Wind Walk if event == "7": st.takeItems SkillTable.getInstance().getInfo(1204, 2).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Shield if event == "9": st.takeItems SkillTable.getInstance().getInfo(1040, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Might if event == "10": st.takeItems SkillTable.getInstance().getInfo(1068, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Mental Shield if event == "11": st.takeItems SkillTable.getInstance().getInfo(1035, 4).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Blessed Body if event == "12": st.takeItems SkillTable.getInstance().getInfo(1045, 6).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Blessed Soul if event == "13": st.takeItems SkillTable.getInstance().getInfo(1048, 6).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) st.setState(COMPLETED) #Magic Barrier if event == "14": st.takeItems SkillTable.getInstance().getInfo(1036, 2).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Resist Shock if event == "15": st.takeItems SkillTable.getInstance().getInfo(1259, 4).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Concentration if event == "16": st.takeItems SkillTable.getInstance().getInfo(1078, 6).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Berserker Spirit if event == "17": st.takeItems SkillTable.getInstance().getInfo(1062, 2).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Bless Shield if event == "18": st.takeItems SkillTable.getInstance().getInfo(1243, 6).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Vampiric Rage if event == "19": st.takeItems SkillTable.getInstance().getInfo(1268, 4).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Acumen if event == "20": st.takeItems SkillTable.getInstance().getInfo(1085, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Empower if event == "21": st.takeItems SkillTable.getInstance().getInfo(1059, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Haste if event == "22": st.takeItems SkillTable.getInstance().getInfo(1086, 2).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Guidance if event == "23": st.takeItems SkillTable.getInstance().getInfo(1240, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Focus if event == "24": st.takeItems SkillTable.getInstance().getInfo(1077, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Death Whisper if event == "25": st.takeItems SkillTable.getInstance().getInfo(1242, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Dance of Aqua Guard if event == "26": st.takeItems SkillTable.getInstance().getInfo(271, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Concentration if event == "27": st.takeItems SkillTable.getInstance().getInfo(272, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Earth Guard if event == "28": st.takeItems SkillTable.getInstance().getInfo(273, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Fire if event == "29": st.takeItems SkillTable.getInstance().getInfo(274, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Fury if event == "30": st.takeItems SkillTable.getInstance().getInfo(275, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Inspiration if event == "31": st.takeItems SkillTable.getInstance().getInfo(276, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Light if event == "32": st.takeItems SkillTable.getInstance().getInfo(277, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of the Mystic if event == "33": st.takeItems SkillTable.getInstance().getInfo(307, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Protection if event == "34": st.takeItems SkillTable.getInstance().getInfo(309, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Siren's Dance if event == "35": st.takeItems SkillTable.getInstance().getInfo(310, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of the Vampire if event == "36": st.takeItems SkillTable.getInstance().getInfo(311, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of the Warrior if event == "37": st.takeItems SkillTable.getInstance().getInfo(366, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Song of Champion if event == "38": st.takeItems SkillTable.getInstance().getInfo(365, 1).getEffects( st.getPlayer(), st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Song of Earth if event == "39": st.takeItems SkillTable.getInstance().getInfo(264, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Flame Guard if event == "40": st.takeItems SkillTable.getInstance().getInfo(265, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Hunter if event == "41": st.takeItems SkillTable.getInstance().getInfo(266, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Invocation if event == "42": st.takeItems SkillTable.getInstance().getInfo(267, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Life if event == "43": st.takeItems SkillTable.getInstance().getInfo(268, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Meditation if event == "44": st.takeItems SkillTable.getInstance().getInfo(269, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Renewal if event == "45": st.takeItems SkillTable.getInstance().getInfo(270, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Storm Guard if event == "46": st.takeItems SkillTable.getInstance().getInfo(304, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Vengeance if event == "47": st.takeItems SkillTable.getInstance().getInfo(305, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Vitality if event == "48": st.takeItems SkillTable.getInstance().getInfo(306, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Warding if event == "49": st.takeItems SkillTable.getInstance().getInfo(308, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Water if event == "50": st.takeItems SkillTable.getInstance().getInfo(363, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Wind if event == "51": st.takeItems SkillTable.getInstance().getInfo(364, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Greater Might if event == "52": st.takeItems SkillTable.getInstance().getInfo(349, 1).getEffects( st.getPlayer(), st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Greater Shield if event == "53": st.takeItems SkillTable.getInstance().getInfo(1007, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Chant of Victory if event == "54": st.takeItems SkillTable.getInstance().getInfo(1009, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Prophecy of Fire if event == "55": st.takeItems SkillTable.getInstance().getInfo(1006, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Prophecy of Water if event == "56": st.takeItems SkillTable.getInstance().getInfo(1002, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "57": st.takeItems SkillTable.getInstance().getInfo(1229, 18).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "58": st.takeItems SkillTable.getInstance().getInfo(1251, 2).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Chant of Magnus if event == "59": st.takeItems SkillTable.getInstance().getInfo(1252, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Wild Magic if event == "60": st.takeItems SkillTable.getInstance().getInfo(1253, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Blesing Of Queen if event == "61": st.takeItems SkillTable.getInstance().getInfo(1284, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Gift Of Queen if event == "62": st.takeItems SkillTable.getInstance().getInfo(1310, 4).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Blessing Of Seraphim if event == "98": st.takeItems SkillTable.getInstance().getInfo(1309, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Song of Storm Guard if event == "65": st.takeItems SkillTable.getInstance().getInfo(1362, 1).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Song of Vengeance if event == "66": st.takeItems SkillTable.getInstance().getInfo(1363, 1).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Song of Vitality if event == "67": st.takeItems SkillTable.getInstance().getInfo(1413, 1).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Song of Warding if event == "68": st.takeItems SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) return "1.htm" st.setState(State.COMPLETED) #Song of Water if event == "71": st.takeItems SkillTable.getInstance().getInfo(1388, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Song of Wind if event == "72": st.takeItems SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Greater Might if event == "73": st.takeItems SkillTable.getInstance().getInfo(1303, 2).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Greater Shield if event == "74": st.takeItems SkillTable.getInstance().getInfo(1352, 1).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Chant of Victory if event == "75": st.takeItems SkillTable.getInstance().getInfo(1356, 1).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Prophecy of Fire if event == "76": st.takeItems SkillTable.getInstance().getInfo(1357, 1).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Prophecy of Water if event == "77": st.takeItems SkillTable.getInstance().getInfo(1355, 1).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "78": st.takeItems SkillTable.getInstance().getInfo(1191, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "79": st.takeItems SkillTable.getInstance().getInfo(1033, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) if event == "80": st.takeItems SkillTable.getInstance().getInfo(1182, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Song of Vengeance if event == "81": st.takeItems SkillTable.getInstance().getInfo(1189, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Song of Vitality if event == "82": st.takeItems SkillTable.getInstance().getInfo(1392, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Song of Warding if event == "83": st.takeItems SkillTable.getInstance().getInfo(1393, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Song of Water if event == "84": st.takeItems SkillTable.getInstance().getInfo(1354, 1).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Song of Wind if event == "85": st.takeItems SkillTable.getInstance().getInfo(1353, 1).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Greater Might if event == "86": st.takeItems SkillTable.getInstance().getInfo(1032, 3).getEffects( st.getPlayer(), st.getPlayer()) return "7.htm" st.setState(State.COMPLETED) #Greater Shield if event == "87": st.takeItems SkillTable.getInstance().getInfo(1390, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Chant of Victory if event == "88": st.takeItems SkillTable.getInstance().getInfo(1391, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Blessing of Queen if event == "89": st.takeItems SkillTable.getInstance().getInfo(4699, 13).getEffects( st.getPlayer(), st.getPlayer()) return "6.htm" st.setState(State.COMPLETED) #Prophecy of Water if event == "90": st.takeItems SkillTable.getInstance().getInfo(4700, 13).getEffects( st.getPlayer(), st.getPlayer()) return "6.htm" st.setState(State.COMPLETED) #Blessing of Seraphim if event == "91": st.takeItems SkillTable.getInstance().getInfo(4702, 13).getEffects( st.getPlayer(), st.getPlayer()) return "6.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "92": st.takeItems SkillTable.getInstance().getInfo(4703, 13).getEffects( st.getPlayer(), st.getPlayer()) return "6.htm" st.setState(State.COMPLETED) #Prophecy of Fire if event == "93": st.takeItems SkillTable.getInstance().getInfo(1304, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Prophecy of Water if event == "94": st.takeItems SkillTable.getInstance().getInfo(1397, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "95": st.takeItems SkillTable.getInstance().getInfo(1044, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "96": st.takeItems SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "64": st.takeItems SkillTable.getInstance().getInfo(1308, 3).getEffects( st.getPlayer(), st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Cancellation if event == "99": st.takeItems SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) st.getPlayer().stopAllEffects() return "1.htm" st.setState(State.COMPLETED) #CPHEAL if event == "69": st.takeItems(ADENA_ID, 1000) st.getPlayer().restoreCP() return "1.htm" st.setState(COMPLETED) if event == "100": st.getPlayer().stopAllEffects() SkillTable.getInstance().getInfo(1204, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4344, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4346, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4349, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1243, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4347, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4348, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4355, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4356, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4352, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1303, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1397, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4351, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1044, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(264, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(266, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(268, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(267, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(269, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(304, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(273, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(276, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(365, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1413, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4699, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4702, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4703, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) if event == "200": st.getPlayer().stopAllEffects() SkillTable.getInstance().getInfo(4344, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4346, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4349, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4345, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4347, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4348, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4354, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4360, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4358, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4357, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4359, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1032, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4342, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1397, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(264, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(266, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(267, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(268, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(269, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(304, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(271, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(274, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(275, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(310, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1363, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4700, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4703, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) if event == "300": st.getPlayer().stopAllEffects() SkillTable.getInstance().getInfo(4344, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4346, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4349, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1243, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4347, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4348, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4355, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4356, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4352, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1303, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1397, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4351, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1044, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(264, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(266, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(268, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(267, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(269, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(304, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(273, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(276, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(365, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1413, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4699, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4702, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4703, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) if event == "400": st.getPlayer().stopAllEffects() SkillTable.getInstance().getInfo(4344, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4346, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4349, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4345, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4347, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4348, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4352, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4354, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4360, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4358, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4357, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4359, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1032, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4342, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1397, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(264, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(266, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(267, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(268, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(269, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(304, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(271, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(274, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(275, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(310, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1363, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4700, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4703, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1388, 3).getEffects( st.getPlayer(), st.getPlayer()) st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) if event == "500": st.getPlayer().stopAllEffects() SkillTable.getInstance().getInfo(4344, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4346, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4349, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4345, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4347, 6).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4352, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4354, 4).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1087, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4360, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4358, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4357, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4359, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1032, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4342, 2).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1397, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(264, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(266, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(267, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(268, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(269, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(304, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(271, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(274, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(275, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(310, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1363, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4700, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(4703, 3).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) SkillTable.getInstance().getInfo(1389, 3).getEffects( st.getPlayer(), st.getPlayer()) st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) #Nobles if event == "122": SkillTable.getInstance().getInfo(1323, 1).getEffects( st.getPlayer(), st.getPlayer()) return "1.htm" st.setState(COMPLETED) if htmltext != event: st.setState(COMPLETED) st.exitQuest(1) return htmltext
def onAdvEvent(self, event, npc, player): leaderst = 0 st = 0 if player.isClanLeader(): leaderst = player.getQuestState(qn) else: # non-leaders doing this quest need both their own quest state and the leader's st = player.getQuestState(qn) if not st: return leaderst = leader(player) if not leaderst: return htmltext = event ##### Leaders area ###### if event == "30756-03.htm": leaderst.setState(PART2) leaderst.set("cond", "1") leaderst.playSound("ItemSound.quest_accept") elif event == "30759-03.htm": leaderst.setState(PART3) leaderst.set("cond", "2") leaderst.set("dead_list", " ") elif event == "30759-07.htm": for i in range(3): leaderst.takeItems(SYMBOL_OF_LOYALTY, 1) leaderst.giveItems(ANTIDOTE_RECIPE, 1) leaderst.setState(PART4) leaderst.set("cond", "3") leaderst.set("ingredients", "0 0 0") leaderst.set("chest_count", "0") leaderst.set("chest_game", "0") leaderst.set("chest_try", "0") leaderst.startQuestTimer("poison_timer", 3600000) skill = SkillTable.getInstance().getInfo(4082, 1) npc.setTarget(player) npc.broadcastPacket( MagicSkillUser(npc, player, skill.getDisplayId(), 1, skill.getSkillTime(), 0)) npc.callSkill(skill, [player]) leaderst.addNotifyOfDeath(player) elif event == "poison_timer": members_finnish(leaderst) leaderst.exitQuest(1) htmltext = "30759-09.htm" elif event == "chest_timer": htmltext = "" self.chest_game(leaderst, "stop") if DEBUG: htmltext = "DEBUG MESSAGE: chest timer event sent." ##### Members area ###### elif event == "30757-04.htm": deadlist = leaderst.get("dead_list").split() deadlist.append(player.getName()) leaderst.set("dead_list", " ".join(deadlist)) player.reduceCurrentHp(player.getCurrentHp(), player) st.giveItems(SYMBOL_OF_LOYALTY, 1) st.playSound("ItemSound.quest_accept") elif event == "30757-05.htm": st.exitQuest(1) elif event == "30758-03.htm": self.chest_game(leaderst, "start") elif event == "30758-07.htm": if st.getQuestItemsCount(RETRY_ITEMS) < RETRY_PRICE: htmltext = "30758-06.htm" else: st.takeItems(RETRY_ITEMS, RETRY_PRICE) return htmltext
def onAttack(self, npc, player, damage, isPet): player.setTarget(player) player.doCast(SkillTable.getInstance().getInfo(5088, 1)) return
def onTalk(self, npc, player): htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>" st = player.getQuestState(qn) if not st: return htmltext cond = st.getInt("cond") npcId = npc.getNpcId() if npcId == MUSHIKA: first = player.getQuestState("124_MeetingTheElroki") if st.getState() == COMPLETED: htmltext = "<html><body>This quest has already been completed.</body></html>" elif first and first.getState().getName( ) == 'Completed' and st.getState( ) == CREATED and player.getLevel() >= 76: htmltext = "32114-01.htm" elif cond == 0: htmltext = "32114-00.htm" elif cond == 1: htmltext = "32114-07.htm" elif cond == 2: htmltext = "32114-10.htm" elif cond >= 3 and cond < 8: htmltext = "32114-11.htm" elif cond == 8: st.addExpAndSp(859195, 86603) st.unset("cond") st.unset("pilar1") st.unset("pilar2") st.unset("pilar3") st.setState(COMPLETED) st.exitQuest(False) st.playSound("ItemSound.quest_finish") htmltext = "32114-12.htm" elif npcId == KARAKAWEI: if cond == 2: htmltext = "32117-01.htm" elif cond == 3: htmltext = "32117-09.htm" elif cond == 4: st.takeItems(ORNITHOMIMUS_CLAW, -1) st.takeItems(DEINONYCHUS_BONE, -1) st.playSound("ItemSound.quest_middle") htmltext = "32117-10.htm" elif cond == 5: htmltext = "32117-15.htm" elif cond == 6 or cond == 7: htmltext = "32117-16.htm" elif cond == 8: htmltext = "32117-17.htm" elif npcId == ULU_KAIMU: if cond == 5: npc.doCast(SkillTable.getInstance().getInfo(5089, 1)) htmltext = "32119-01.htm" elif cond == 6: htmltext = "32119-14.htm" elif npcId == BALU_KAIMU: if cond == 6: npc.doCast(SkillTable.getInstance().getInfo(5089, 1)) htmltext = "32120-01.htm" elif cond == 7: htmltext = "32120-16.htm" elif npcId == CHUTA_KAIMU: if cond == 7: npc.doCast(SkillTable.getInstance().getInfo(5089, 1)) htmltext = "32121-01.htm" elif cond == 8: htmltext = "32121-17.htm" return htmltext