def onAdvEvent (self,event,npc,pc) : if event == "Close_Door1" : DoorTable.getInstance().getDoor(19160001).closeMe() elif event == "Close_Door2" : DoorTable.getInstance().getDoor(19160010).closeMe() DoorTable.getInstance().getDoor(19160011).closeMe() return
def onAdvEvent(self, event, npc, pc): if event == "Close_Door1": DoorTable.getInstance().getDoor(19160001).closeMe() elif event == "Close_Door2": DoorTable.getInstance().getDoor(19160010).closeMe() DoorTable.getInstance().getDoor(19160011).closeMe() return
def onTalk(self, npc, player): npcId = npc.getNpcId() htmltext = "" if npcId == 13001: #heart of warding if self.antharasAI: status = GrandBossManager.getInstance().getBossStatus(29019) statusW = GrandBossManager.getInstance().getBossStatus(29066) statusN = GrandBossManager.getInstance().getBossStatus(29067) statusS = GrandBossManager.getInstance().getBossStatus(29068) if status == 2 or statusW == 2 or statusN == 2 or statusS == 2: htmltext = "13001-02.htm" elif status == 3 or statusW == 3 or statusN == 3 or statusS == 3: htmltext = "13001-01.htm" elif status == 0 or status == 1: #If entrance to see Antharas is unlocked (he is Dormant or Waiting) st = player.getQuestState(qn) if st.getQuestItemsCount(3865) > 0: st.takeItems(3865, 1) zone = GrandBossManager.getInstance().getZone( 179700, 113800, -7709) if zone: zone.allowPlayerEntry(player, 30) x = 179700 + Rnd.get(700) y = 113800 + Rnd.get(2100) player.teleToLocation(x, y, -7709) if status == 0: self.antharasAI.setAntharasSpawnTask() return else: htmltext = "13001-03.htm" elif npcId == 31859: #antharas teleport cube x = 79800 + Rnd.get(600) y = 151200 + Rnd.get(1100) player.teleToLocation(x, y, -3534) return elif npcId == 31385: #heart of volcano htmltext = "31385-01.htm" if self.valakasAI: status = GrandBossManager.getInstance().getBossStatus(29028) if status == 0 or status == 1: #If entrance to see Valakas is unlocked (he is Dormant or Waiting) st = player.getQuestState(qn) if self.count >= 200: htmltext = "31385-03.htm" elif st.getInt("allowEnter") == 1: st.unset("allowEnter") zone = GrandBossManager.getInstance().getZone( 212852, -114842, -1632) if zone: zone.allowPlayerEntry(player, 30) x = 204328 + Rnd.get(600) y = -111874 + Rnd.get(600) player.teleToLocation(x, y, 70) self.count = self.count + 1 if status == 0: valakas = GrandBossManager.getInstance().getBoss( 29028) self.valakasAI.startQuestTimer( "1001", Config.Valakas_Wait_Time, valakas, None) GrandBossManager.getInstance().setBossStatus( 29028, 1) return else: #player cheated, wasn't ported via npc Klein htmltext = "31385-04.htm" elif status == 2: htmltext = "31385-02.htm" else: htmltext = "31385-01.htm" else: htmltext = "31385-01.htm" elif npcId == 31384: #Gatekeeper of Fire Dragon DoorTable.getInstance().getDoor(24210004).openMe() return elif npcId == 31686: #Gatekeeper of Fire Dragon DoorTable.getInstance().getDoor(24210006).openMe() return elif npcId == 31687: #Gatekeeper of Fire Dragon DoorTable.getInstance().getDoor(24210005).openMe() return elif npcId == 31540: #Watcher of Valakas Klein st = player.getQuestState(qn) if self.count < 50: htmltext = "31540-01.htm" elif self.count < 100: htmltext = "31540-02.htm" elif self.count < 150: htmltext = "31540-03.htm" elif self.count < 200: htmltext = "31540-04.htm" else: htmltext = "31540-05.htm" elif npcId == 31759: #valakas teleport cube x = 150037 + Rnd.get(500) y = -57720 + Rnd.get(500) player.teleToLocation(x, y, -2976) return return htmltext
def onKill(self, npc, player, isPet): id = npc.getNpcId() if id == Captain: HellboundManager.getInstance().changeLevel(9) DoorTable.getInstance().getDoor(20250001).openMe()
def onTalk(self, npc, player): st = player.getQuestState(qn) npcId = npc.getNpcId() htmltext = None if npcId == 32034: if st.getQuestItemsCount(8064) == 0 and st.getQuestItemsCount( 8065) == 0 and st.getQuestItemsCount(8067) == 0: return "<html><body>The Temple Gatekeeper:<br>You have nothing that would cover the holes.<br>(You must have a Visitor's Mark, a Faded Visitor's Mark, or a Pagan's Mark in order to open this door.)</body></html>" htmltext = "FadedMark.htm" DoorTable.getInstance().getDoor(19160001).openMe() self.startQuestTimer("Close_Door1", 10000, None, None) elif npcId == 32035: DoorTable.getInstance().getDoor(19160001).openMe() self.startQuestTimer("Close_Door1", 10000, None, None) htmltext = "FadedMark.htm" elif npcId == 32036: if not st.getQuestItemsCount(8067): htmltext = "<html><body>The Temple Gatekeeper:<br>Show your Mark or be gone from my sight!<br>Only those who possess the Pagan's Mark may pass through this gate!</body></html>" else: htmltext = "<html><body>The Temple Gatekeeper:<br>On seeing the Pagan's Mark, the statue's probing eyes go blank.<br>With the quiet whir of an engine, the gate swings open...</body></html>" self.startQuestTimer("Close_Door2", 10000, None, None) DoorTable.getInstance().getDoor(19160010).openMe() DoorTable.getInstance().getDoor(19160011).openMe() elif npcId == 32037: DoorTable.getInstance().getDoor(19160010).openMe() DoorTable.getInstance().getDoor(19160011).openMe() self.startQuestTimer("Close_Door2", 10000, None, None) htmltext = "FadedMark.htm" st.exitQuest(1) return htmltext
def beleth_unlock(self, arg): GrandBossManager.getInstance().setBossStatus(29118, 0) DoorTable.getInstance().getDoor(20240001).openMe()
def onAdvEvent(self, event, npc, player): if npc: npcId = npc.getNpcId() npcObjId = npc.getObjectId() if event == "keltasRespawn": if self.hellboundLevel >= 5: return self.keltasloc = [] xx, yy, zz = KeltasSpawn newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0) self.keltasloc.append(newKeltas) self.keltasmin = [] self.Keltas = 0 for i in range(31): xx, yy, zz = KeltasMinionsSpawns[i] RndMobSpawn = KeltasMinions[Rnd.get(len(KeltasMinions))] newKeltasMinion = self.addSpawn(RndMobSpawn, xx, yy, zz, 0, False, 0) self.keltasmin.append(newKeltasMinion) if event == "LevelCheck": HellboundManager.getInstance().checkHellboundLevel() newLevel = HellboundManager.getInstance().getLevel() self.hellboundTrust = HellboundManager.getInstance().getTrust() if newLevel > self.hellboundLevel: self.hellboundLevel = newLevel print "---- Hellbound achieved Level " + str( self.hellboundLevel) announce = "地獄邊界已經達到的階段: " + str(self.hellboundLevel) Announcements.getInstance().announceToAll(announce) if newLevel == 1: for i in self.Warpgateloc: i.deleteMe() for i in self.Warpgate1loc: i.deleteMe() newWarpgate6 = self.addSpawn(32319, 112080, 219568, -3664, 0, False, 0) newWarpgate6 = self.addSpawn(32319, -16899, 209827, -3640, 0, False, 0) if newLevel == 2: newFalk = self.addSpawn(32297, -19904, 250016, -3240, 12288, False, 0) # 福爾克 if newLevel == 3: xx, yy, zz = KeltasSpawn newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0) self.keltasloc.append(newKeltas) self.Keltas = 0 self.keltasmin = [] for i in range(31): xx, yy, zz = KeltasMinionsSpawns[i] RndMobSpawn = KeltasMinions[Rnd.get( len(KeltasMinions))] newKeltasMinion = self.addSpawn( RndMobSpawn, xx, yy, zz, 0, False, 0) self.keltasmin.append(newKeltasMinion) if newLevel == 4: newDerek = self.addSpawn(ghostofderek, -28058, 256885, -1934, 0, False, 0) if newLevel == 5: for i in self.buronloc: i.deleteMe() for i in self.kiefloc: i.deleteMe() for i in self.keltasloc: i.deleteMe() for i in self.keltasmin: i.deleteMe() newSolomon = self.addSpawn(Solomon, -28916, 249381, -3472, 0, False, 0) newTraitor = self.addSpawn(Traitor, -27352, 252387, -3520, 5416, False, 0) newKief = self.addSpawn(Kief, -28357, 248993, -3472, 16384, False, 0) newBuron = self.addSpawn(Buron, -28567, 248994, -3472, 16384, False, 0) if newLevel == 6: changeBoxesSpawnState(1) if newLevel == 7: changeChimeraSpawnState(1) LOC = LOCS[Rnd.get(len(LOCS))] CeltrespTime = (18 + Rnd.get(36)) * 100 #between 30m and 1h newCeltus = HellboundManager.getInstance().addSpawn( celtus, LOC[0], LOC[1], LOC[2], 0, CeltrespTime) if newLevel == 8: newCaptain = HellboundManager.getInstance().addSpawn( Captain, 4766, 243995, -1928, 36561, 0) if self.hellboundLevel >= 5: DoorTable.getInstance().getDoor(19250001).openMe() DoorTable.getInstance().getDoor(19250002).openMe() if self.hellboundLevel < 7: DoorTable.getInstance().getDoor(20250002).closeMe() if self.hellboundLevel >= 7: DoorTable.getInstance().getDoor(20250002).openMe() if self.hellboundLevel < 9: DoorTable.getInstance().getDoor(20250001).closeMe() if self.hellboundLevel >= 9: DoorTable.getInstance().getDoor(20250001).openMe()
def onTalk (self,npc,player): npcId = npc.getNpcId() htmltext = "" if npcId == 13001 : #heart of warding if self.antharasAI : status = GrandBossManager.getInstance().getBossStatus(29019) statusW = GrandBossManager.getInstance().getBossStatus(29066) statusN = GrandBossManager.getInstance().getBossStatus(29067) statusS = GrandBossManager.getInstance().getBossStatus(29068) if status == 2 or statusW == 2 or statusN == 2 or statusS == 2: htmltext = "13001-02.htm" elif status == 3 or statusW == 3 or statusN == 3 or statusS == 3: htmltext = "13001-01.htm" elif status == 0 or status == 1 : #If entrance to see Antharas is unlocked (he is Dormant or Waiting) st = player.getQuestState(qn) if st.getQuestItemsCount(3865) > 0 : st.takeItems(3865,1) zone = GrandBossManager.getInstance().getZone(181323,114850,-7618) #Update by rocknow if zone : zone.allowPlayerEntry(player,30) x = 174170 + Rnd.get(260) #Update by rocknow y = 113983 + Rnd.get(1500) #Update by rocknow player.teleToLocation(x,y,-7709) if status == 0 : self.antharasAI.startQuestTimer("waiting",0, npc, None) #Update by rocknow return else : htmltext = "13001-03.htm" elif npcId == 31859 : #antharas teleport cube x = 79800 + Rnd.get(600) y = 151200 + Rnd.get(1100) player.teleToLocation(x,y,-3534) return elif npcId == 31385 : #heart of volcano htmltext = "31385-01.htm" if self.valakasAI : status = GrandBossManager.getInstance().getBossStatus(29028) if status == 0 or status == 1 : #If entrance to see Valakas is unlocked (he is Dormant or Waiting) st = player.getQuestState(qn) if self.count >= 200 : htmltext = "31385-03.htm" elif st.getInt("allowEnter") == 1: st.unset("allowEnter") zone = GrandBossManager.getInstance().getZone(212852,-114842,-1632) if zone : zone.allowPlayerEntry(player,30) x = 204328 + Rnd.get(600) y = -111874 + Rnd.get(600) player.teleToLocation(x,y,70) self.count = self.count+1 if status == 0 : valakas = GrandBossManager.getInstance().getBoss(29028) self.valakasAI.startQuestTimer("1001",Config.Valakas_Wait_Time, valakas, None) GrandBossManager.getInstance().setBossStatus(29028,1) return #Update by rocknow-Start elif st.getQuestItemsCount(7267) > 0 : st.takeItems(7267,1) zone = GrandBossManager.getInstance().getZone(212852,-114842,-1632) if zone : zone.allowPlayerEntry(player,30) x = 204328 + Rnd.get(600) y = -111874 + Rnd.get(600) player.teleToLocation(x,y,70) self.count = self.count+1 if status == 0 : valakas = GrandBossManager.getInstance().getBoss(29028) self.valakasAI.startQuestTimer("1001",Config.Valakas_Wait_Time, valakas, None) GrandBossManager.getInstance().setBossStatus(29028,1) return #Update by rocknow-End else: #player cheated, wasn't ported via npc Klein htmltext = "31385-04.htm" elif status == 2 : htmltext = "31385-02.htm" else : htmltext = "31385-01.htm" else : htmltext = "31385-01.htm" elif npcId == 31384 : #Gatekeeper of Fire Dragon DoorTable.getInstance().getDoor(24210004).openMe() return elif npcId == 31686 : #Gatekeeper of Fire Dragon DoorTable.getInstance().getDoor(24210006).openMe() return elif npcId == 31687 : #Gatekeeper of Fire Dragon DoorTable.getInstance().getDoor(24210005).openMe() return elif npcId == 31540 : #Watcher of Valakas Klein st = player.getQuestState(qn) if self.count < 50 : htmltext = "31540-01.htm" elif self.count < 100 : htmltext = "31540-02.htm" elif self.count < 150 : htmltext = "31540-03.htm" elif self.count < 200 : htmltext = "31540-04.htm" else: htmltext = "31540-05.htm" elif npcId == 31759 : #valakas teleport cube x = 150037 + Rnd.get(500) y = -57720 + Rnd.get(500) player.teleToLocation(x,y,-2976) return return htmltext
def onAdvEvent (self, event, npc, player) : if npc: npcId = npc.getNpcId() npcObjId = npc.getObjectId() if event == "keltasRespawn": if self.hellboundLevel >= 5: return self.keltasloc = [] xx, yy, zz = KeltasSpawn newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0) self.keltasloc.append(newKeltas) self.keltasmin = [] self.Keltas = 0 for i in range(31): xx, yy, zz = KeltasMinionsSpawns[i] RndMobSpawn = KeltasMinions[Rnd.get(len(KeltasMinions))] newKeltasMinion = self.addSpawn(RndMobSpawn, xx, yy, zz, 0, False, 0) self.keltasmin.append(newKeltasMinion) if event == "LevelCheck": HellboundManager.getInstance().checkHellboundLevel() newLevel = HellboundManager.getInstance().getLevel() self.hellboundTrust = HellboundManager.getInstance().getTrust() if newLevel > self.hellboundLevel: self.hellboundLevel = newLevel print "---- Hellbound achieved Level " + str(self.hellboundLevel) announce = "地獄邊界已經達到的等級: " + str(self.hellboundLevel) Announcements.getInstance().announceToAll(announce) if newLevel == 1: for i in self.Warpgateloc : i.deleteMe() for i in self.Warpgate1loc : i.deleteMe() newWarpgate6 = self.addSpawn(32319, 112080, 219568, -3664, 0, False, 0) newWarpgate6 = self.addSpawn(32319, -16899, 209827, -3640, 0, False, 0) if newLevel == 2: newFalk = self.addSpawn(32297, -19904, 250016, -3240, 12288, False, 0) # 福爾克 if newLevel == 3: xx, yy, zz = KeltasSpawn newKeltas = self.addSpawn(Keltas, xx, yy, zz, 0, False, 0) self.keltasloc.append(newKeltas) self.Keltas = 0 self.keltasmin = [] for i in range(31): xx, yy, zz = KeltasMinionsSpawns[i] RndMobSpawn = KeltasMinions[Rnd.get(len(KeltasMinions))] newKeltasMinion = self.addSpawn(RndMobSpawn, xx, yy, zz, 0, False, 0) self.keltasmin.append(newKeltasMinion) if newLevel == 4: newDerek = self.addSpawn(ghostofderek, -28058, 256885, -1934, 0, False, 0) if newLevel == 5: for i in self.buronloc : i.deleteMe() for i in self.kiefloc : i.deleteMe() for i in self.keltasloc : i.deleteMe() for i in self.keltasmin : i.deleteMe() newSolomon = self.addSpawn(Solomon, -28916, 249381, -3472, 0, False, 0) newTraitor = self.addSpawn(Traitor, -27352, 252387, -3520, 5416, False, 0) newKief = self.addSpawn(Kief, -28357, 248993, -3472, 16384, False, 0) newBuron = self.addSpawn(Buron, -28567, 248994, -3472, 16384, False, 0) if newLevel == 6: changeBoxesSpawnState(1) if newLevel == 7: changeChimeraSpawnState(1) LOC = LOCS[Rnd.get(len(LOCS))] CeltrespTime = (18 + Rnd.get(36)) * 100 #between 30m and 1h newCeltus = HellboundManager.getInstance().addSpawn(celtus, LOC[0], LOC[1], LOC[2], 0, CeltrespTime) if newLevel == 8: newCaptain = HellboundManager.getInstance().addSpawn(Captain, 4766, 243995, -1928, 36561, 0) if newLevel == 9: newWarpgate = self.addSpawn(32319, 112080, 219568, -3664, 0, False, 0) newWarpgate = self.addSpawn(32319, -16899, 209827, -3640, 0, False, 0) if self.hellboundLevel >= 5: DoorTable.getInstance().getDoor(19250001).openMe() DoorTable.getInstance().getDoor(19250002).openMe() if self.hellboundLevel < 7: DoorTable.getInstance().getDoor(20250002).closeMe() if self.hellboundLevel >= 7: DoorTable.getInstance().getDoor(20250002).openMe() if self.hellboundLevel < 9: DoorTable.getInstance().getDoor(20250001).closeMe() if self.hellboundLevel >= 9: DoorTable.getInstance().getDoor(20250001).openMe()
def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() htmltext = None if npcId == 32034 : if st.getQuestItemsCount(8064) == 0 and st.getQuestItemsCount(8065) == 0 and st.getQuestItemsCount(8067) == 0: return "<html><body>The Temple Gatekeeper:<br>You have nothing that would cover the holes.<br>(You must have a Visitor's Mark, a Faded Visitor's Mark, or a Pagan's Mark in order to open this door.)</body></html>" htmltext = "FadedMark.htm" DoorTable.getInstance().getDoor(19160001).openMe() self.startQuestTimer("Close_Door1",10000,None,None) elif npcId == 32035: DoorTable.getInstance().getDoor(19160001).openMe() self.startQuestTimer("Close_Door1",10000,None,None) htmltext = "FadedMark.htm" elif npcId == 32036: if not st.getQuestItemsCount(8067) : htmltext = "<html><body>The Temple Gatekeeper:<br>Show your Mark or be gone from my sight!<br>Only those who possess the Pagan's Mark may pass through this gate!</body></html>" else: htmltext = "<html><body>The Temple Gatekeeper:<br>On seeing the Pagan's Mark, the statue's probing eyes go blank.<br>With the quiet whir of an engine, the gate swings open...</body></html>" self.startQuestTimer("Close_Door2",10000,None,None) DoorTable.getInstance().getDoor(19160010).openMe() DoorTable.getInstance().getDoor(19160011).openMe() elif npcId == 32037: DoorTable.getInstance().getDoor(19160010).openMe() DoorTable.getInstance().getDoor(19160011).openMe() self.startQuestTimer("Close_Door2",10000,None,None) htmltext = "FadedMark.htm" st.exitQuest(1) return htmltext
def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() htmltext = None if npcId == 32034 : if st.getQuestItemsCount(8064) == 0 and st.getQuestItemsCount(8065) == 0 and st.getQuestItemsCount(8067) == 0: return "<html><body>神殿守門人:<br>沒有東西可出示給守門人看。<br>(只有手持見習生標章、變色的見習生標章或主教標章的人才可以打開這扇門。)</body></html>" if st.getQuestItemsCount(8064) : st.takeItems(8064,1) # TODO: this part must happen when u walk through doors >.< st.giveItems(8065,1) htmltext = "<html><body>神殿守門人:<br>將標章一插入插槽,隨著疑似機關啟動的聲音,門也同時開了起來。</body></html>" DoorTable.getInstance().getDoor(19160001).openMe() self.startQuestTimer("Close_Door1",10000,None,None) elif npcId == 32035: DoorTable.getInstance().getDoor(19160001).openMe() self.startQuestTimer("Close_Door1",10000,None,None) htmltext = "FadedMark.htm" elif npcId == 32036: if not st.getQuestItemsCount(8067) : htmltext = "<html><body>神殿守門人:<br>沒有東西可出示給守門人看。<br>(只有手持主教標章的人才可以打開這扇門。)</body></html>" else: htmltext = "<html><body>神殿守門人:<br>出示主教標章後,那東西表示確認過似的眼睛重新回到了原位。<br>傳來像是機關啟動的聲音之後,門就打開了。</body></html>" self.startQuestTimer("Close_Door2",10000,None,None) DoorTable.getInstance().getDoor(19160010).openMe() DoorTable.getInstance().getDoor(19160011).openMe() elif npcId == 32037: DoorTable.getInstance().getDoor(19160010).openMe() DoorTable.getInstance().getDoor(19160011).openMe() self.startQuestTimer("Close_Door2",10000,None,None) htmltext = "FadedMark.htm" st.exitQuest(1) return htmltext