def onAdvEvent(self, event, npc, player): htmltext = event st = player.getQuestState(qn) if not st: return if event == "32013-04.htm": if st.getQuestItemsCount(SOE): st.set("cond", "1") st.setState(STARTED) st.playSound("ItemSound.quest_accept") st.takeItems(SOE, 1) htmltext = "32013-03.htm" npc.broadcastPacket(MagicSkillUser(npc, npc, 2013, 1, 20000, 0)) st.startQuestTimer("suki_timer", 20000, npc) elif event == "32013-04a.htm": st.exitQuest(1) st.playSound("ItemSound.quest_giveup") elif event == "suki_timer": npc.deleteMe() htmltext = None 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 Cast(self, npc, target, skillId, level): target.broadcastPacket( MagicSkillUser(target, target, skillId, level, 6000, 1)) target.broadcastPacket( MagicSkillUser(npc, npc, skillId, level, 6000, 1))
def onAdvEvent(self, event, npc, player): if event == "chest_timer": self.athrea = 0 return if player.isClanLeader(): leaderst = st = 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: if DEBUG: debug = "Event can't find leader" print debug return debug return debug = "" htmltext = event if player.isClanLeader(): if event == "30756-07.htm": st.playSound("ItemSound.quest_accept") st.set("cond", "1") st.setState(STARTED) st.set("part", "1") elif event == "30759-03.htm": st.set("part", "2") st.set("cond", "2") st.set("dead_list", " ") elif event == "30759-07.htm": st.takeItems( SYMBOL_OF_LOYALTY, 1 ) #Item is not stackable, thus need to do this for each item st.takeItems(SYMBOL_OF_LOYALTY, 1) st.takeItems(SYMBOL_OF_LOYALTY, 1) st.giveItems(ANTIDOTE_RECIPE, 1) st.set("part", "3") st.set("cond", "3") st.startQuestTimer("poison_timer", 3600000) st.addNotifyOfDeath(player) skill = SkillTable.getInstance().getInfo(4082, 1) npc.setTarget(player) npc.broadcastPacket( MagicSkillUser(npc, player, skill.getDisplayId(), 1, skill.getHitTime(), 0)) npc.callSkill(skill, [player]) elif event == "poison_timer": st.exitQuest(1) if DEBUG: debug = "Times Up! Quest failed!" print debug return debug return elif event == "30757-05.htm": if player.isClanLeader(): return "Only Clan Members can sacrifice themselves!" if st.getRandom(10) > 5: htmltext = "30757-06.htm" st.giveItems(SYMBOL_OF_LOYALTY, 1) deadlist = leaderst.get("dead_list").split() deadlist.append(player.getName()) leaderst.set("dead_list", " ".join(deadlist)) else: skill = SkillTable.getInstance().getInfo(4083, 1) npc.setTarget(player) npc.broadcastPacket( MagicSkillUser(npc, player, skill.getDisplayId(), 1, skill.getHitTime(), 0)) npc.callSkill(skill, [player]) self.startQuestTimer(player.getName(), 4000, npc, player) elif event == player.getName(): if player.isDead(): st.giveItems(SYMBOL_OF_LOYALTY, 1) deadlist = leaderst.get("dead_list").split() deadlist.append(player.getName()) leaderst.set("dead_list", " ".join(deadlist)) elif DEBUG: debug = "player " + player.getName() + " didn't die!" print debug return debug return elif event == "30758-03.htm": if not self.athrea: self.athrea = 1 self.chests = 0 leaderst.set("part", "4") leaderst.set("chest_wins", "0") for x, y, z in CHEST_LOCS: rand = st.getRandom(5) self.addSpawn(27173 + rand, x, y, z, 0, 0, 300000) self.startQuestTimer("chest_timer", 300000, npc, player) else: htmltext = "30758-04.htm" elif event == "30758-07.htm": if st.getQuestItemsCount(57) >= 10000 and not self.athrea: htmltext = "30758-08.htm" st.takeItems(57, 10000) if DEBUG and debug: print debug return debug return htmltext
def onAdvEvent(self, event, npc, player): st = player.getQuestState(qn) if not st: return htmltext = event if event == "32041-03.htm": st.set("cond", "3") st.playSound("ItemSound.quest_middle") elif event == "32041-04.htm": st.set("cond", "4") st.playSound("ItemSound.quest_middle") elif event == "32041-12.htm": st.set("cond", "8") st.playSound("ItemSound.quest_middle") elif event == "32041-16.htm": st.set("cond", "16") st.giveItems(Enigma, 1) st.playSound("ItemSound.quest_middle") elif event == "32041-22.htm": st.set("cond", "17") st.takeItems(Enigma, 1) st.playSound("ItemSound.quest_middle") elif event == "32041-32.htm": st.takeItems(Necklace, 1) st.giveItems(EarBinding, 1) st.exitQuest(False) st.playSound("ItemSound.quest_finish") elif event == "32042-06.htm": if st.getInt("cond") == 10: if st.getInt("talk") + st.getInt("talk1") == 2: st.set("cond", "11") st.set("talk", "0") st.set("talk1", "0") st.playSound("ItemSound.quest_middle") else: htmltext = "32042-03.htm" elif event == "32042-10.htm": if st.getInt("talk") + st.getInt("talk1") + st.getInt( "talk2") == 3: htmltext = "32042-14.htm" elif event == "32042-11.htm": if st.getInt("talk") == 0: st.set("talk", "1") elif event == "32042-12.htm": if st.getInt("talk1") == 0: st.set("talk1", "1") elif event == "32042-13.htm": if st.getInt("talk2") == 0: st.set("talk2", "1") elif event == "32042-15.htm": st.set("cond", "12") st.set("talk", "0") st.set("talk1", "0") st.set("talk2", "0") st.playSound("ItemSound.quest_middle") elif event == "32043-06.htm": if st.getInt("cond") == 17: if st.getInt("talk") + st.getInt("talk1") == 2: st.set("cond", "18") st.set("talk", "0") st.set("talk1", "0") st.playSound("ItemSound.quest_middle") else: htmltext = "32043-03.htm" elif event == "32043-15.htm": if st.getInt("talk") + st.getInt("talk1") == 2: htmltext = "32043-29.htm" elif event == "32043-18.htm": if st.getInt("talk") == 1: htmltext = "32043-21.htm" elif event == "32043-20.htm": st.set("talk", "1") st.playSound("AmbSound.ed_drone_02") elif event == "32043-28.htm": st.set("talk1", "1") elif event == "32043-30.htm": st.set("cond", "19") st.set("talk", "0") st.set("talk1", "0") elif event == "32044-06.htm": if st.getInt("cond") == 20: if st.getInt("talk") + st.getInt("talk1") == 2: st.set("cond", "21") st.set("talk", "0") st.set("talk1", "0") st.playSound("ItemSound.quest_middle") else: htmltext = "32044-03.htm" elif event == "32044-08.htm": if st.getInt("talk") + st.getInt("talk1") == 2: htmltext = "32044-11.htm" elif event == "32044-09.htm": if st.getInt("talk") == 0: st.set("talk", "1") elif event == "32044-10.htm": if st.getInt("talk1") == 0: st.set("talk1", "1") elif event == "32044-17.htm": st.set("cond", "22") st.set("talk", "0") st.set("talk1", "0") st.playSound("ItemSound.quest_middle") elif event == "32045-02.htm": st.set("cond", "15") st.playSound("ItemSound.quest_middle") st.giveItems(Report, 1) npc.broadcastPacket( MagicSkillUser(npc, st.getPlayer(), 5073, 5, 1500, 0)) elif event in ["32046-04.htm", "32046-05.htm"]: st.exitQuest(1) elif event == "32046-06.htm": if st.getPlayer().getLevel() >= 50: st.setState(STARTED) st.playSound("ItemSound.quest_accept") st.set("cond", "1") else: htmltext = "32046-00.htm" st.exitQuest(1) elif event == "32046-08.htm": st.set("cond", "2") st.playSound("ItemSound.quest_middle") elif event == "32046-12.htm": st.set("cond", "6") st.playSound("ItemSound.quest_middle") st.giveItems(Flower, 1) elif event == "32046-22.htm": st.set("cond", "10") st.playSound("ItemSound.quest_middle") elif event == "32046-29.htm": st.set("cond", "13") st.playSound("ItemSound.quest_middle") elif event == "32046-35.htm": st.set("cond", "20") st.playSound("ItemSound.quest_middle") elif event == "32046-38.htm": st.set("cond", "23") st.playSound("ItemSound.quest_middle") st.giveItems(Heart, 1) elif event == "32047-06.htm": st.set("cond", "5") st.playSound("ItemSound.quest_middle") elif event == "32047-10.htm": st.set("cond", "7") st.playSound("ItemSound.quest_middle") st.takeItems(Flower, 1) elif event == "32047-15.htm": st.set("cond", "9") st.playSound("ItemSound.quest_middle") elif event == "32047-18.htm": st.set("cond", "14") st.playSound("ItemSound.quest_middle") elif event == "32047-26.htm": st.set("cond", "24") st.playSound("ItemSound.quest_middle") st.takeItems(Heart, 1) elif event == "32047-32.htm": st.set("cond", "25") st.playSound("ItemSound.quest_middle") st.giveItems(Necklace, 1) elif event == "w1_1": st.set("talk", "1") htmltext = "32042-04.htm" elif event == "w1_2": st.set("talk1", "1") htmltext = "32042-05.htm" elif event == "w2_1": st.set("talk", "1") htmltext = "32043-04.htm" elif event == "w2_2": st.set("talk1", "1") htmltext = "32043-05.htm" elif event == "w3_1": st.set("talk", "1") htmltext = "32044-04.htm" elif event == "w3_2": st.set("talk1", "1") htmltext = "32044-05.htm" return htmltext