def enterInstance(self,player,template,teleto): instanceId = 0 if not self.checkCondition(player): return instanceId members = self.getMembers(player) # Check for existing instances of party members or channel members for member in members : if member.getInstanceId()!= 0 and member.getInstanceId() != player.getInstanceId(): instanceId = member.getInstanceId() # Existing instance if instanceId != 0: foundworld = False for worldid in self.world_ids: if worldid == instanceId: foundworld = True if not foundworld: self.sendString(player,self.MEMBERS_IN_OTHER_INSTANCE) return 0 teleto.instanceId = instanceId self.teleportPlayer(player, teleto) return instanceId else: instanceId = InstanceManager.getInstance().createDynamicInstance(template) if not self.worlds.has_key(instanceId): # create new world world = self.setupWorld(instanceId) self.worlds[instanceId]=world self.world_ids.append(instanceId) self._log.info(self.name + " started, Template: " + template + " InstanceId: " +str(instanceId) + " created by: " + str(player.getName())) # Teleports player teleto.instanceId = instanceId self.teleportPlayer(player,teleto) return instanceId return instanceId
def openDoor(self,doorId,world): for door in InstanceManager.getInstance().getInstance(world.instanceId).getDoors(): if door.getDoorId() == doorId: door.openMe()
def closeAllDoors(self,world): for door in InstanceManager.getInstance().getInstance(world.instanceId).getDoors(): door.closeMe()
def getAllPlayers(self,world): return InstanceManager.getInstance().getInstance(world.instanceId).getPlayers()