def onKill(self, npc, player, isPet): npcId = npc.getNpcId() if self.worlds.has_key(npc.getInstanceId()): world = self.worlds[npc.getInstanceId()] if world.status == 0: if npcId == 22494: newNpc = self.addSpawn(KamaBoss1[0], -49649, -174887, -10459, 0, False, 0, False, world.instanceId) # Boss world.startRoom.npclist[newNpc] = False if npcId == 25619: newNpc = self.addSpawn(KamaBoss[0], -53418, -174887, -10015, 0, False, 0, False, world.instanceId) # Boss world.startRoom.npclist[newNpc] = False if npcId == 29138: instanceObj = InstanceManager.getInstance().getInstance( self.currentWorld) player.sendPacket( SystemMessage.sendString( "從現在起將會限制進入即時地區:「欲界 (深淵迷宮)」。下一次的進場時間可透過「/即時地區」指令來查詢。" )) instanceObj.setDuration(300000) instanceObj.removeNpcs() party = player.getParty() if party != None: for partyMember in party.getPartyMembers().toArray(): partyMember.sendPacket( SystemMessage.sendString( "從現在起將會限制進入即時地區:「欲界 (深淵迷宮)」。下一次的進場時間可透過「/即時地區」指令來查詢。" )) return
def onKill(self, npc, player, isPet): npcId = npc.getNpcId() if self.worlds.has_key(npc.getInstanceId()): world = self.worlds[npc.getInstanceId()] if world.status == 0: if npcId == 22503: newNpc = self.addSpawn( KamaBoss1[0], 15829, -174885, -10395, 0, False, 0, False, world.instanceId ) # Boss world.startRoom.npclist[newNpc] = False if npcId == 25622: newNpc = self.addSpawn( KamaBoss[0], 12050, -174887, -9951, 0, False, 0, False, world.instanceId ) # Boss world.startRoom.npclist[newNpc] = False if npcId == 29147: instanceObj = InstanceManager.getInstance().getInstance(self.currentWorld) instanceObj.setDuration(300000) instanceObj.removeNpcs() party = player.getParty() if party != None: for partyMember in party.getPartyMembers().toArray(): partyMember.sendPacket( SystemMessage.sendString("從現在起將會限制進入即時地區:「欲界 (深淵迷宮)」。下一次的進場時間可透過「/即時地區」指令來查詢。") ) return
def onTalk(self, npc, player): if not checkPrimaryConditions(player): return tele = PyObject() dataIndex = getKamaIndex(KamalokaLevel) tele.x = KamaPorts[dataIndex][0] tele.y = KamaPorts[dataIndex][1] tele.z = KamaPorts[dataIndex][2] instanceId = getExistingInstanceId(player) if instanceId == 0: #brand new instance if not checkNewInstanceConditions(player): return instanceId = InstanceManager.getInstance().createDynamicInstance( KamaTemplate[dataIndex]) if not self.worlds.has_key(instanceId): world = PyObject() world.rewarded = [] world.instanceId = instanceId self.worlds[instanceId] = world self.world_ids.append(instanceId) self.currentWorld = instanceId instanceObj = InstanceManager.getInstance().getInstance( instanceId) instanceObj.setAllowSummon(False) instanceObj.setReturnTeleport(ReturnPort[dataIndex][0], ReturnPort[dataIndex][1], ReturnPort[dataIndex][2]) print "欲界-深淵之廳:使用 " + InstanceTemplate + " 即時地區:" + str( instanceId) + " 創造玩家:" + str(player.getName()) runStartRoom(self, world) tele.instanceId = instanceId player.setKamaDate(1) player.removeActiveBuffForKama() teleportPlayer(self, player, tele) party = player.getParty() if party != None: for partyMember in party.getPartyMembers().toArray(): partyMember.setKamaDate(1) partyMember.removeActiveBuffForKama() teleportPlayer(self, partyMember, tele) else: #party already in Kamaloka foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return instanceObj = InstanceManager.getInstance().getInstance(instanceId) if instanceObj.getCountPlayers() >= KamaPartySize[dataIndex]: player.sendPacket( SystemMessage( SystemMessageId.PARTY_EXCEEDED_THE_LIMIT_CANT_ENTER)) return tele.instanceId = instanceId player.removeActiveBuffForKama() teleportPlayer(self, player, tele) return
def enterInstance(self, player, template, teleto): instanceId = 0 if not checkCondition(player): return 0 party = player.getParty() # Check for existing instances of party members for partyMember in party.getPartyMembers().toArray(): if partyMember.getInstanceId() != 0: instanceId = partyMember.getInstanceId() if debug: print "Emerald/Steam: found party member in instance:" + str( instanceId) # Existing instance if instanceId != 0: foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return 0 teleto.instanceId = instanceId teleportplayer(self, player, teleto, True) return instanceId # New instance else: instanceId = InstanceManager.getInstance().createDynamicInstance( template) if not self.worlds.has_key(instanceId): world = PyObject() world.instanceId = instanceId world.bosses = 5 self.worlds[instanceId] = world self.world_ids.append(instanceId) if debug: print "Emerald/Steam Instance: " + str( instanceId) + " created by player: " + str( player.getName()) # Close all doors for door in InstanceManager.getInstance().getInstance( instanceId).getDoors(): door.closeMe() # Start the first room runEmeraldAndSteamFirstRoom(self, world) # Teleports player for partyMember in party.getPartyMembers().toArray(): st = partyMember.getQuestState(qn) if not st: st = self.newQuestState(partyMember) st.takeItems(9694, -1) st.takeItems(9698, -1) st.takeItems(9699, -1) teleto.instanceId = instanceId teleportplayer(self, partyMember, teleto, True) return instanceId return instanceId
def onTalk(self, npc, player): if not checkPrimaryConditions(player): return tele = PyObject() dataIndex = getKamaIndex(KamalokaLevel) tele.x = KamaPorts[dataIndex][0] tele.y = KamaPorts[dataIndex][1] tele.z = KamaPorts[dataIndex][2] instanceId = getExistingInstanceId(player) if instanceId == 0: # brand new instance if not checkNewInstanceConditions(player): return instanceId = InstanceManager.getInstance().createDynamicInstance(KamaTemplate[dataIndex]) if not self.worlds.has_key(instanceId): world = PyObject() world.rewarded = [] world.instanceId = instanceId self.worlds[instanceId] = world self.world_ids.append(instanceId) self.currentWorld = instanceId instanceObj = InstanceManager.getInstance().getInstance(instanceId) instanceObj.setAllowSummon(False) instanceObj.setReturnTeleport( ReturnPort[dataIndex][0], ReturnPort[dataIndex][1], ReturnPort[dataIndex][2] ) print "近緣欲界-深淵之廳:使用 " + InstanceTemplate + " 即時地區:" + str(instanceId) + " 創造玩家:" + str(player.getName()) runStartRoom(self, world) tele.instanceId = instanceId player.setKamaDate(1) player.removeActiveBuffForKama() teleportPlayer(self, player, tele) party = player.getParty() if party != None: for partyMember in party.getPartyMembers().toArray(): partyMember.setKamaDate(1) partyMember.removeActiveBuffForKama() teleportPlayer(self, partyMember, tele) else: # party already in Kamaloka foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return instanceObj = InstanceManager.getInstance().getInstance(instanceId) if instanceObj.getCountPlayers() >= KamaPartySize[dataIndex]: player.sendPacket(SystemMessage(SystemMessageId.PARTY_EXCEEDED_THE_LIMIT_CANT_ENTER)) return tele.instanceId = instanceId player.removeActiveBuffForKama() teleportPlayer(self, player, tele) return
def enterInstance(self,player,template,teleto): instanceId = 0 if not checkCondition(player): return 0 party = player.getParty() # Check for existing instances of party members for partyMember in party.getPartyMembers().toArray(): if partyMember.getInstanceId()!=0: instanceId = partyMember.getInstanceId() if debug: print "Emerald/Steam: found party member in instance:"+str(instanceId) # Existing instance if instanceId != 0: foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return 0 teleto.instanceId = instanceId teleportplayer(self,player,teleto,True) return instanceId # New instance else: instanceId = InstanceManager.getInstance().createDynamicInstance(template) if not self.worlds.has_key(instanceId): world = PyObject() world.instanceId = instanceId world.bosses = 5 self.worlds[instanceId]=world self.world_ids.append(instanceId) if debug: print "Emerald/Steam Instance: " +str(instanceId) + " created by player: " + str(player.getName()) # Close all doors for door in InstanceManager.getInstance().getInstance(instanceId).getDoors(): door.closeMe() # Start the first room runEmeraldAndSteamFirstRoom(self,world) # Teleports player for partyMember in party.getPartyMembers().toArray() : st = partyMember.getQuestState(qn) if not st : st = self.newQuestState(partyMember) st.takeItems(9694,-1) st.takeItems(9698,-1) st.takeItems(9699,-1) teleto.instanceId = instanceId teleportplayer(self,partyMember,teleto,True) return instanceId return instanceId
def enterInstance(self, player, template, tele): if not checkPrimaryConditions(player): return tele = PyObject() dataIndex = getDcmIndex(DcmLevel) tele.x = DcmPorts[dataIndex][0] tele.y = DcmPorts[dataIndex][1] tele.z = DcmPorts[dataIndex][2] instanceId = getExistingInstanceId(player) if instanceId == 0: #brand new instance if not checkNewInstanceConditions(player): return instanceId = InstanceManager.getInstance().createDynamicInstance( DcmTemplate[dataIndex]) if not self.worlds.has_key(instanceId): world = PyObject() world.rewarded = [] world.instanceId = instanceId self.worlds[instanceId] = world self.world_ids.append(instanceId) self.currentWorld = instanceId instanceObj = InstanceManager.getInstance().getInstance(instanceId) instanceObj.setAllowSummon(False) instanceObj.setReturnTeleport(ReturnPort[dataIndex][0], ReturnPort[dataIndex][1], ReturnPort[dataIndex][2]) print "暗雲宅邸:使用 " + InstanceTemplate + " 即時地區:" + str( instanceId) + " 創造玩家:" + str(player.getName()) runStartRoom(self, world) tele.instanceId = instanceId teleportPlayer(self, player, tele) party = player.getParty() if party != None: for partyMember in party.getPartyMembers().toArray(): teleportPlayer(self, partyMember, tele) else: foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return tele.instanceId = instanceId teleportPlayer(self, player, tele) return
def enterInstance(self, player, template, tele) : if not checkPrimaryConditions(player) : return tele = PyObject() dataIndex = getDcmIndex(DcmLevel) tele.x = DcmPorts[dataIndex][0] tele.y = DcmPorts[dataIndex][1] tele.z = DcmPorts[dataIndex][2] instanceId = getExistingInstanceId(player) if instanceId == 0 : #brand new instance if not checkNewInstanceConditions(player) : return instanceId = InstanceManager.getInstance().createDynamicInstance(DcmTemplate[dataIndex]) if not self.worlds.has_key(instanceId) : world = PyObject() world.rewarded = [] world.instanceId = instanceId self.worlds[instanceId] = world self.world_ids.append(instanceId) self.currentWorld = instanceId instanceObj = InstanceManager.getInstance().getInstance(instanceId) instanceObj.setAllowSummon(False) instanceObj.setReturnTeleport(ReturnPort[dataIndex][0],ReturnPort[dataIndex][1],ReturnPort[dataIndex][2]) print "暗雲宅邸:使用 " + InstanceTemplate + " 即時地區:" + str(instanceId) + " 創造玩家:" + str(player.getName()) runStartRoom(self, world) tele.instanceId = instanceId teleportPlayer(self, player, tele) party = player.getParty() if party != None : for partyMember in party.getPartyMembers().toArray() : teleportPlayer(self, partyMember, tele) else: foundworld = False for worldid in self.world_ids : if worldid == instanceId : foundworld = True if not foundworld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return tele.instanceId = instanceId teleportPlayer(self, player, tele) return
def enterInstance(self, player, template, teleto): instanceId = 0 if not checkCondition(player): return 0 party = player.getParty() # Check for existing instances of party members for partyMember in party.getPartyMembers().toArray(): if partyMember.getInstanceId() != 0: instanceId = partyMember.getInstanceId() # Existing instance if instanceId != 0: foundWorld = False for worldid in self.world_ids: if worldid == instanceId: foundWorld = True if not foundWorld: player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return teleto.instanceId = instanceId teleportPlayer(self, player, teleto) return instanceId # New instance else: instanceId = InstanceManager.getInstance().createDynamicInstance( template) if not self.worlds.has_key(instanceId): world = PyObject() world.instanceId = instanceId self.worlds[instanceId] = world self.world_ids.append(instanceId) print "Tower of Infinity: started " + template + " Instance: " + str( instanceId) + " created by player: " + str(player.getName()) runFloor(self, world, 0) # teleports player for partyMember in party.getPartyMembers().toArray(): st = partyMember.getQuestState(qn) if not st: st = self.newQuestState(partyMember) teleto.instanceId = instanceId teleportPlayer(self, partyMember, teleto) return instanceId return instanceId
def enterInstance(self, player, template, teleto) : instanceId = 0 if not checkCondition(player) : return 0 party = player.getParty() # Check for existing instances of party members for partyMember in party.getPartyMembers().toArray() : if partyMember.getInstanceId() != 0 : instanceId = partyMember.getInstanceId() # Existing instance if instanceId != 0 : foundWorld = False for worldid in self.world_ids : if worldid == instanceId : foundWorld = True if not foundWorld : player.sendPacket(SystemMessage.sendString("你的隊員已進入其它的即時地區。")) return teleto.instanceId = instanceId teleportPlayer(self, player, teleto) return instanceId # New instance else : instanceId = InstanceManager.getInstance().createDynamicInstance(template) if not self.worlds.has_key(instanceId) : world = PyObject() world.instanceId = instanceId self.worlds[instanceId] = world self.world_ids.append(instanceId) print "Tower of Infinity: started " + template + " Instance: " +str(instanceId) + " created by player: " + str(player.getName()) runFloor(self, world, 0) # teleports player for partyMember in party.getPartyMembers().toArray() : st = partyMember.getQuestState(qn) if not st : st = self.newQuestState(partyMember) teleto.instanceId = instanceId teleportPlayer(self, partyMember, teleto) return instanceId return instanceId
def checkCondition(player): party = player.getParty() if party: player.sendPacket(SystemMessage.sendString("菲拉卡只能由單人挑戰。")) return False return True