def onKill(self, npc, player, isPet): leaderst = leader(player) if not leaderst: return if not leaderst.getState() == State.STARTED: if DEBUG: print "onKill says leader needs to start quest" return "Need to start quest!" return part = leaderst.getInt("part") npcId = npc.getNpcId() if npcId in CHESTS and part == 4: wins = leaderst.getInt("chest_wins") if (self.chests - wins) == 12 or (wins < 4 and not leaderst.getRandom(4)): wins += 1 leaderst.set("chest_wins", str(wins)) npc.broadcastPacket( NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "###### BINGO! ######")) self.chests += 1 elif npcId in MOBS.keys(): st = player.getQuestState(qn) if not st: st = self.newQuestState(player) if st == leaderst: return if part >= 3 and part < 6: if not st.getRandom(10): st.giveItems(MOBS[npcId], 1) st.playSound("ItemSound.quest_itemget") elif DEBUG: print "onKill says leader is not correct state" + str(part) return "leader is not correct state" return
def onKill(self, npc, player, isPet): st = player.getQuestState(qn) if not st: return if st.getState() != State.STARTED: return if st.getInt("cond") == 7: st.playSound("ItemSound.quest_itemget") st.set("cond", "8") npc.broadcastPacket( NpcSay( npc.getObjectId(), 0, npc.getNpcId(), "You've ended my immortal life! You've protected by the feudal lord, aren't you?" )) st.giveItems(TotemDoll, 1) st.set("step", "2") return
def onAdvEvent (self,event,npc,player) : st = player.getQuestState(qn) htmltext = event if event == "31328-02.htm": # call 31328-03.htm st.giveItems(MapForestofDeadman,1) st.giveItems(SilverKey,1) st.set("cond","1") st.playSound("ItemSound.quest_accept") st.setState(State.STARTED) elif event == "31328-03.htm": # call 31328-05.htm and 31328-06.htm st.set("cond","2") st.playSound("ItemSound.quest_middle") elif event == "31526-05.htm": # called by 31526-03.htm for hairpin if st.getQuestItemsCount(LidiaHairPin) == 0: st.giveItems(LidiaHairPin,1) # give hairpin if st.getQuestItemsCount(LidiaDiary) != 0: # if has diary cond = 4 st.set("cond","4") st.playSound("ItemSound.quest_middle") elif event == "31526-11.htm": # called by 31526-07 for diary if st.getQuestItemsCount(LidiaDiary) == 0: st.giveItems(LidiaDiary,1) if st.getQuestItemsCount(LidiaHairPin) != 0: # if has hairpin cond = 4 st.set("cond","4") st.playSound("ItemSound.quest_middle") elif event == "31328-19.htm": # end of questions loop go to ghost st.set("cond","6") st.playSound("ItemSound.quest_middle") elif event == "31524-04.htm":# sends you to the tombstone to dig st.set("cond","7") st.playSound("ItemSound.quest_middle") st.takeItems(LidiaDiary,-1) elif event == "31523-02.htm": st.playSound("SkillSound5.horror_02") ghost = st.addSpawn(31524,51432,-54570,-3136,1800000) ghost.broadcastPacket(NpcSay(ghost.getObjectId(),0,ghost.getNpcId(),"Who awoke me?")) elif event == "31523-05.htm": st.startQuestTimer("ghost_timer",10000) elif event == "ghost_timer": st.set("cond","8") htmltext = "31523-06.htm" st.giveItems(SilverKey,1) elif event == "31530-02.htm":# box gives spear takes key st.set("cond","10") st.playSound("ItemSound.quest_middle") st.takeItems(SilverKey,-1) st.giveItems(SilverSpear,1) return htmltext
def onKill(self,npc,player,isPet): # all kill events triggered by the leader occur automatically. # However, kill events that were triggered by members occur via the leader and # only if the leader is online and within a certain distance! leader_st = 0 if player.isClanLeader() : leader_st = player.getQuestState(qn) else : clan = player.getClan() if clan: c_leader=clan.getLeader() if c_leader: leader=c_leader.getPlayerInstance() if leader : if player.isInsideRadius(leader, 1600, 1, 0) : leader_st = leader.getQuestState(qn) if leader_st : if leader_st.getState() != State.STARTED : return npcId=npc.getNpcId() condition,maxcount,chance,itemList = DROPLIST[npcId] random = leader_st.getRandom(100) cond = leader_st.getInt("cond") if cond == condition and random < chance: if len(itemList) > 1: stoneRandom = leader_st.getRandom(3) if stoneRandom == 0 : if leader_st.getInt("Kurtz") < 4: return else: maxcount*=4 giveItem(itemList[stoneRandom],maxcount,leader_st) elif len(itemList) : giveItem(itemList[0],maxcount,leader_st) else: if npcId == 27181: # Imperial Gravekeeper spawnedNpc=leader_st.addSpawn(30765,120000) npc.broadcastPacket(NpcSay(spawnedNpc.getObjectId(),0,spawnedNpc.getNpcId(),"Curse of the gods on the one that defiles the property of the empire!")) leader_st.set("ImpGraveKeeper","3") self.ImpGraveKepperStat = 1 else: leader_st.addSpawn(27179) return
def onAttack(self, npc, player, damage, isPet, skill): st = player.getQuestState(qn) if not st: return npcId = npc.getNpcId() for pc, mobId, in self.killedTrees: if pc == player and mobId == npcId: return if isPet and st.getInt("id") < 16: pet = player.getPet() if st.getRandom(100) <= 2 and st.getQuestItemsCount(FT_LEAF) >= 0: st.takeItems(FT_LEAF, 1) st.playSound("ItemSound.quest_middle") npc.broadcastPacket( NpcSay(npc.getNpcId(), 0, npcId, "gives me spirit leaf...!")) self.killedTrees.append([player, npcId]) if st.getQuestItemsCount(FT_LEAF) == 0: st.set("id", "15") st.set("cond", "3") return
def AutoChat(npc, text): chars = npc.getKnownList().getKnownPlayers().values().toArray() if chars != None: for pc in chars: sm = NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text) pc.sendPacket(sm)
def onKill(self, npc, player, isPet): st = player.getQuestState(qn) if not st: return if st.getState() != State.STARTED: return npcId = npc.getNpcId() if npcId == 20479: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( FIRE_CHARM ) == 1 and st.getQuestItemsCount(KASHA_BEAR_PELT) < 1: if st.getQuestItemsCount( KASHA_BEAR_PELT) + st.getQuestItemsCount( KASHA_BSPIDER_HUSK) + st.getQuestItemsCount( FIERY_EGG1) == 2: st.giveItems(KASHA_BEAR_PELT, 1) st.playSound("ItemSound.quest_middle") st.set("cond", "2") else: st.giveItems(KASHA_BEAR_PELT, 1) st.playSound("ItemSound.quest_itemget") elif npcId == 27319: if st.getInt("cond") == 14: st.set("cond", "15") st.playSound("ItemSound.quest_middle") npc.broadcastPacket( NpcSay( npc.getObjectId(), 0, npc.getNpcId(), "My dear friend of " + player.getName() + ", who has gone on ahead of me!")) elif st.getInt("cond") == 16: st.set("cond", "17") st.playSound("ItemSound.quest_middle") npc.broadcastPacket( NpcSay( npc.getObjectId(), 0, npc.getNpcId(), "Listen to Tejakar Gandi, young Oroka! The spirit of the slain leopard is calling you, " + player.getName() + "!")) elif st.getInt("cond") == 18: st.set("cond", "19") st.playSound("ItemSound.quest_middle") elif npcId == 20478: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( FIRE_CHARM ) == 1 and st.getQuestItemsCount(KASHA_BSPIDER_HUSK) < 1: if st.getQuestItemsCount( KASHA_BEAR_PELT) + st.getQuestItemsCount( KASHA_BSPIDER_HUSK) + st.getQuestItemsCount( FIERY_EGG1) == 2: st.giveItems(KASHA_BSPIDER_HUSK, 1) st.playSound("ItemSound.quest_middle") st.set("cond", "2") else: st.giveItems(KASHA_BSPIDER_HUSK, 1) st.playSound("ItemSound.quest_itemget") elif npcId == 20415: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( FIRE_CHARM) == 1 and st.getQuestItemsCount(FIERY_EGG1) < 1: if st.getQuestItemsCount( KASHA_BEAR_PELT) + st.getQuestItemsCount( KASHA_BSPIDER_HUSK) + st.getQuestItemsCount( FIERY_EGG1) == 2: st.giveItems(FIERY_EGG1, 1) st.playSound("ItemSound.quest_middle") st.set("cond", "2") else: st.giveItems(FIERY_EGG1, 1) st.playSound("ItemSound.quest_itemget") elif npcId == 20335: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( FLAME_CHARM ) == 1 and st.getQuestItemsCount(GRIZZLY_BLOOD) < 3: if st.getQuestItemsCount(GRIZZLY_BLOOD) == 2: st.giveItems(GRIZZLY_BLOOD, 1) st.playSound("ItemSound.quest_middle") st.set("cond", "7") else: st.giveItems(GRIZZLY_BLOOD, 1) st.playSound("ItemSound.quest_itemget") elif npcId == 20038: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( SPIRIT_NET) == 1 and st.getQuestItemsCount( BOUND_DURKA_SPIRIT ) == 0 and st.getQuestItemsCount(DURKA_PARASITE) < 8: n = st.getRandom(10) if st.getQuestItemsCount(DURKA_PARASITE) == 5 and n < 1: st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.addSpawn(27056) st.playSound("ItemSound.quest_itemget") elif st.getQuestItemsCount(DURKA_PARASITE) == 6 and n < 2: st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.playSound("ItemSound.quest_itemget") st.addSpawn(27056) elif st.getQuestItemsCount(DURKA_PARASITE) == 7 and n < 2: st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.playSound("ItemSound.quest_itemget") st.addSpawn(27056) elif st.getQuestItemsCount(DURKA_PARASITE) >= 7: st.addSpawn(27056) st.playSound("ItemSound.quest_itemget") st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) else: st.giveItems(DURKA_PARASITE, 1) st.playSound("ItemSound.quest_itemget") elif npcId == 20043: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( SPIRIT_NET) == 1 and st.getQuestItemsCount( BOUND_DURKA_SPIRIT ) == 0 and st.getQuestItemsCount(DURKA_PARASITE) < 8: n = st.getRandom(10) if st.getQuestItemsCount(DURKA_PARASITE) == 5 and n < 1: st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.addSpawn(27056) st.playSound("ItemSound.quest_itemget") elif st.getQuestItemsCount(DURKA_PARASITE) == 6 and n < 2: st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.playSound("ItemSound.quest_itemget") st.addSpawn(27056) elif st.getQuestItemsCount(DURKA_PARASITE) == 7 and n < 2: st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.playSound("ItemSound.quest_itemget") st.addSpawn(27056) elif st.getQuestItemsCount(DURKA_PARASITE) >= 7: st.addSpawn(27056) st.playSound("ItemSound.quest_itemget") st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) else: st.giveItems(DURKA_PARASITE, 1) st.playSound("ItemSound.quest_itemget") elif npcId == 27056: st.set("id", "0") if st.getInt("cond") and st.getQuestItemsCount( SPIRIT_NET) == 1 and st.getQuestItemsCount( BOUND_DURKA_SPIRIT) == 0: st.giveItems(BOUND_DURKA_SPIRIT, 1) st.takeItems(SPIRIT_NET, 1) st.takeItems(DURKA_PARASITE, st.getQuestItemsCount(DURKA_PARASITE)) st.playSound("ItemSound.quest_middle") st.set("cond", "10") return
def onAdvEvent(self, event, npc, player): st = player.getQuestState(qn) if not st: return htmltext = event if event == "32018-04.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "7") st.takeItems(Letter2, 1) elif event == "32020-02.htm": st.setState(State.STARTED) st.playSound("ItemSound.quest_accept") st.set("cond", "1") elif event == "32020-05.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "3") st.takeItems(Letter, 1) elif event in ["32020-06.htm", "32020-08a.htm"]: st.exitQuest(1) st.playSound("ItemSound.quest_finish") elif event in ["32020-08.htm", "32020-07a.htm"]: st.playSound("ItemSound.quest_middle") st.set("cond", "4") elif event == "32020-12.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "5") elif event == "32020-16.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "10") st.takeItems(Report, 1) elif event == "32020-18.htm": if st.getQuestItemsCount(Tablet) == 0: st.playSound("ItemSound.quest_middle") st.set("cond", "11") htmltext = "32020-19.htm" else: st.exitQuest(False) st.playSound("ItemSound.quest_finish") st.rewardItems(57, 115673) st.addExpAndSp(493595, 40442) elif event == "32020-19.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "11") elif event == "32022-02.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "9") man = st.addSpawn(Suspicious, 104562, -107598, -3688, 0, False, 4000) man.broadcastPacket( NpcSay(man.getObjectId(), 0, man.getNpcId(), "We meet again.")) self.startQuestTimer("2", 3700, man, player) st.giveItems(Report, 1) elif event == "Sculpture-04.htm": st.set("talk", "1") htmltext = "Sculpture-05.htm" st.set(str(npc.getNpcId()), "1") elif event == "Sculpture-04a.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "8") man = st.addSpawn(Suspicious, 117890, -126478, -2584, 0, False, 4000) man.broadcastPacket( NpcSay(man.getObjectId(), 0, man.getNpcId(), "This looks like the right place...")) self.startQuestTimer("1", 3700, man, player) htmltext = "Sculpture-04.htm" if st.getInt(str(Sculpture1)) == 0 and st.getInt( str(Sculpture2)) == 0: st.giveItems(Tablet, 1) elif event == "Sculpture-05.htm": st.set(str(npc.getNpcId()), "1") elif event == "1": npc.broadcastPacket( NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "I see someone. Is this fate?")) elif event == "2": npc.broadcastPacket( NpcSay( npc.getObjectId(), 0, npc.getNpcId(), "Don't bother trying to find out more about me. Follow your own destiny." )) return htmltext
def onAdvEvent(self, event, npc, player): st = player.getQuestState(qn) if not st: return htmltext = event if event == "31522-02.htm": st.setState(State.STARTED) st.playSound("ItemSound.quest_accept") st.set("cond", "1") elif event == "31328-05.htm": st.set("cond", "0") st.set("onlyone", "1") st.unset("AGRIPEL") st.unset("DOMINIC") st.unset("BENEDICT") st.exitQuest(False) st.takeItems(7140, -1) if st.getQuestItemsCount(7141) == 0: st.giveItems(7141, 1) st.addExpAndSp(131228, 11978) st.playSound("ItemSound.quest_finish") htmltext = "31328-05.htm" elif event == "31523-03.htm": st.playSound("SkillSound5.horror_02") st.set("cond", "2") ghost = st.addSpawn(31524, 51432, -54570, -3136, 180000) ghost.broadcastPacket( NpcSay(ghost.getObjectId(), 0, ghost.getNpcId(), "Who awoke me?")) elif event == "31524-06.htm": st.set("cond", "3") st.playSound("ItemSound.quest_middle") ghost = self.addSpawn(31525, npc) ghost.broadcastPacket( NpcSay( ghost.getObjectId(), 0, ghost.getNpcId(), "My master has instructed me to be your guide, " + player.getName())) self.startQuestTimer("1", 1, ghost, player) self.startQuestTimer("despawn", 180000, ghost, player) elif event == "31526-03.htm": st.playSound("ItemSound.item_drop_equip_armor_cloth") elif event == "31526-08.htm": st.playSound("AmdSound.ed_chimes_05") st.set("cond", "5") st.playSound("ItemSound.quest_middle") elif event == "31526-14.htm": st.giveItems(7140, 1) st.set("cond", "6") st.playSound("ItemSound.quest_middle") elif event == "despawn": npc.deleteMe() return elif event.isdigit(): loc = int(event) x, y, z, heading = ROUTES[loc] if event == "1": npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, Location(x, y, z, heading)) self.startQuestTimer("2", 5000, npc, player) elif event == "2": npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, Location(x, y, z, heading)) self.startQuestTimer("3", 12000, npc, player) elif event == "3": npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, Location(x, y, z, heading)) self.startQuestTimer("4", 15000, npc, player) elif event == "4": npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, Location(x, y, z, heading)) self.startQuestTimer("5", 5000, npc, player) elif event == "5": npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, Location(x, y, z, heading)) return return htmltext
def onEvent (self,event,st) : htmltext = event # Events Gustaf if event == "30760-08.htm" : st.giveItems(G_Let_Martien,1) for var in STATS: st.set(var,"1") st.setState(State.STARTED) elif event == "30760-12.htm" : st.giveItems(G_Let_Balthazar,1) st.set("cond","4") elif event == "30760-16.htm" : st.giveItems(G_Let_Rodemai,1) st.set("cond","7") elif event == "30760-20.htm" : exit503(1,st) elif event == "30760-22.htm" : st.set("cond","13") elif event == "30760-23.htm" : exit503(1,st) # Events Martien elif event == "30645-03.htm": st.takeItems(G_Let_Martien,-1) st.set("cond","2") suscribe_members(st) try: members = st.getPlayer().getClan().getOnlineMembers(0)[0] for i in members: pst = QuestManager.getInstance().getQuest(qn).newQuestState(st.getPlayer().getClan().getClanMember(int(i)).getPlayerInstance()) pst.setState(State.STARTED) except: return htmltext # Events Kurtz elif event == "30763-03.htm": if st.getInt("Kurtz") == 1: htmltext = "30763-02.htm" st.giveItems(Mi_Drake_Eggs,6) st.giveItems(Brooch,1) st.set("Kurtz","2") # Events Lutz elif event == "30762-03.htm": lutz = st.getInt("Lutz") if lutz == 1: htmltext = "30762-02.htm" st.giveItems(Mi_Drake_Eggs,4) st.giveItems(Bl_Wyrm_Eggs,3) st.set("Lutz","2") st.addSpawn(27178,112268,112761,-2770,120000) st.addSpawn(27178,112234,112705,-2770,120000) # Events Fritz elif event == "30761-03.htm": fritz = st.getInt("Fritz") if fritz == 1: htmltext = "30761-02.htm" st.giveItems(Bl_Wyrm_Eggs,3) st.set("Fritz","2") st.addSpawn(27178,103841,116809,-3025,120000) st.addSpawn(27178,103848,116910,-3020,120000) # Events Kusto elif event == "30512-03.htm": st.takeItems(Brooch,-1) st.giveItems(Bl_Anvil_Coin,1) st.set("Kurtz","3") # Events Balthazar elif event == "30764-03.htm": st.takeItems(G_Let_Balthazar,-1) st.set("cond","5") st.set("Kurtz","3") elif event == "30764-05.htm": st.takeItems(G_Let_Balthazar,-1) st.set("cond","5") elif event == "30764-06.htm": st.takeItems(Bl_Anvil_Coin,-1) st.set("Kurtz","4") st.giveItems(Recipe_Power_Stone,1) # Events Rodemai elif event == "30868-04.htm": st.takeItems(G_Let_Rodemai,-1) st.set("cond","8") elif event == "30868-06a.htm": st.set("cond","10") elif event == "30868-10.htm": st.set("cond","12") # Events Cleo elif event == "30766-04.htm": st.set("cond","9") spawnedNpc=st.addSpawn(30766,160622,21230,-3710,90000) spawnedNpc.broadcastPacket(NpcSay(spawnedNpc.getObjectId(),0,spawnedNpc.getNpcId(),"Blood and Honour.")) spawnedNpc=st.addSpawn(30759,160665,21209,-3710,90000) spawnedNpc.broadcastPacket(NpcSay(spawnedNpc.getObjectId(),0,spawnedNpc.getNpcId(),"Ambition and Power")) spawnedNpc=st.addSpawn(30758,160665,21291,-3710,90000) spawnedNpc.broadcastPacket(NpcSay(spawnedNpc.getObjectId(),0,spawnedNpc.getNpcId(),"War and Death")) elif event == "30766-08.htm": st.takeItems(Scepter_Judgement,-1) exit503(0,st) return htmltext
def autochat(npc, text): if npc: npc.broadcastPacket(NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text)) return
def onAdvEvent(self, event, npc, player): st = player.getQuestState(qn) if not st: return htmltext = event if event == "31349-02.htm": st.playSound("ItemSound.quest_accept") st.set("cond", "1") st.setState(State.STARTED) elif event == "31349-03.htm": if st.getQuestItemsCount(SuspiciousTotem): htmltext = "31349-05.htm" else: st.playSound("ItemSound.quest_middle") st.set("cond", "2") elif event == "31349-10.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "4") elif event == "31348-02.htm": st.takeItems(SuspiciousTotem, -1) elif event == "31348-07.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "5") st.giveItems(GemstoneKey, 1) elif event == "31522-04.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "6") elif event == "31535-03.htm": if st.getInt("step") == 0: st.set("step", "1") triol = st.addSpawn(Triol, 59712, -47568, -2712, 0, 0, 300000, 1) time.sleep(1) triol.broadcastPacket( NpcSay( triol.getObjectId(), 0, triol.getNpcId(), "That box was sealed by my master. Don't touch it!")) triol.setRunning() triol.addDamageHate(player, 0, 999) triol.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player) st.playSound("ItemSound.quest_middle") st.set("cond", "7") elif st.getInt("step") == 2: htmltext = "31535-04.htm" elif event == "31535-05.htm": st.giveItems(Contract, 1) st.takeItems(GemstoneKey, -1) st.playSound("ItemSound.quest_middle") st.set("cond", "9") elif event == "31532-02.htm": st.takeItems(Contract, -1) elif event == "31532-06.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "11") elif event == "31531-02.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "12") st.addSpawn(Coffin, 60104, -35820, -664, 0, 0, 20000, 1) elif event == "31532-18.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "15") elif event == "31522-12.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "16") elif event == "31348-10.htm": st.takeItems(TotemDoll, -1) elif event == "31348-15.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "17") elif event == "31348-16.htm": st.playSound("ItemSound.quest_middle") st.set("cond", "18") elif event == "31532-20.htm": st.giveItems(905, 2) st.giveItems(874, 1) st.takeItems(7063, -1) st.addExpAndSp(572277, 53750) st.unset("cond") st.exitQuest(False) st.playSound("ItemSound.quest_finish") elif event == "31522-15.htm": st.giveItems(936, 1) st.giveItems(874, 1) st.takeItems(7063, -1) st.addExpAndSp(572277, 53750) st.unset("cond") st.exitQuest(False) st.playSound("ItemSound.quest_finish") return htmltext