def assemble(self, player, characters): self.player = player alldead = True for x, c in enumerate(characters): char = Character.byName(c) if not char.dead: alldead = False char.charInfo = CharacterInfo(char) if char.player != player: #cheater!!! traceback.print_stack() print "AssertionError: %s plays a non-owned character!" % player.name return #create the mob m = Mob(char.spawn, player.zone, player, char) m.charIndex = x char.mob = m self.members.append(char) self.charInfos[x] = char.charInfo for item in char.items: if item.slot == RPG_SLOT_CURSOR: player.cursorItem = item # catch any items in character cursor_slot break index = 0 for c in self.members: if c.name == player.avatarCharName: player.modelChar = c player.modelIndex = index break index += 1 else: player.avatarCharName = self.members[0].name player.modelChar = self.members[0] player.modelIndex = 0 if alldead: for c in self.members: c.dead = False c.mob.health = 1 c.mob.mana = 1 player.curChar = self.members[0] # Assign cursor item to current character to avoid # confusion and any item handling problems. if player.cursorItem: player.cursorItem.setCharacter(player.curChar) player.updateCursorItem(None) player.restoreTradeItems()
def assemble(self,player,characters): self.player = player alldead = True for x,c in enumerate(characters): char = Character.byName(c) if not char.dead: alldead = False char.charInfo = CharacterInfo(char) if char.player != player: #cheater!!! traceback.print_stack() print "AssertionError: %s plays a non-owned character!"%player.name return #create the mob m = Mob(char.spawn,player.zone,player,char) m.charIndex = x char.mob = m self.members.append(char) self.charInfos[x] = char.charInfo for item in char.items: if item.slot == RPG_SLOT_CURSOR: player.cursorItem = item # catch any items in character cursor_slot break index = 0 for c in self.members: if c.name == player.avatarCharName: player.modelChar = c player.modelIndex = index break index += 1 else: player.avatarCharName = self.members[0].name player.modelChar = self.members[0] player.modelIndex = 0 if alldead: for c in self.members: c.dead = False c.mob.health = 1 c.mob.mana = 1 player.curChar = self.members[0] # Assign cursor item to current character to avoid # confusion and any item handling problems. if player.cursorItem: player.cursorItem.setCharacter(player.curChar) player.updateCursorItem(None) player.restoreTradeItems()
def reassemble(self): player = self.player for x, c in enumerate(self.members): m = Mob(c.spawn, player.zone, player, c) m.charIndex = x c.mob = m c.charInfo = CharacterInfo(c) self.charInfos[x] = c.charInfo player.curChar = self.members[0] # Assign cursor item to current character to avoid # confusion and any item handling problems. if player.cursorItem: player.cursorItem.setCharacter(player.curChar) player.updateCursorItem(None) player.restoreTradeItems()
def reassemble(self): player = self.player for x,c in enumerate(self.members): m = Mob(c.spawn,player.zone,player,c) m.charIndex = x c.mob = m c.charInfo = CharacterInfo(c) self.charInfos[x] = c.charInfo player.curChar = self.members[0] # Assign cursor item to current character to avoid # confusion and any item handling problems. if player.cursorItem: player.cursorItem.setCharacter(player.curChar) player.updateCursorItem(None) player.restoreTradeItems()
def addCharacter(self, char): player = self.player char.charInfo = CharacterInfo(char) m = Mob(char.spawn, player.zone, player, char) m.simObject = player.simObject m.charIndex = len(self.members) char.mob = m self.members.append(char) self.charInfos[m.charIndex] = char.charInfo for item in char.items: if item.slot == RPG_SLOT_CURSOR: player.cursorItem = item # catch any items in character cursor_slot # Assign cursor item to current character to avoid # confusion and any item handling problems. player.cursorItem.setCharacter(player.curChar) player.updateCursorItem(None) break player.zone.simAvatar.mind.callRemote("addPlayerMobInfo", player.simObject.id, m.mobInfo, char.spawn.getSpawnInfo()) player.zone.activeMobs.append(m) if char.dead: player.zone.detachMob(m) player.restoreTradeItems() player.rootInfo = RootInfo(player, self.charInfos) player.mind.callRemote("setRootInfo", player.rootInfo) player.updateKOS()
def addCharacter(self,char): player = self.player char.charInfo = CharacterInfo(char) m = Mob(char.spawn,player.zone,player,char) m.simObject = player.simObject m.charIndex = len(self.members) char.mob = m self.members.append(char) self.charInfos[m.charIndex] = char.charInfo for item in char.items: if item.slot == RPG_SLOT_CURSOR: player.cursorItem = item # catch any items in character cursor_slot # Assign cursor item to current character to avoid # confusion and any item handling problems. player.cursorItem.setCharacter(player.curChar) player.updateCursorItem(None) break player.zone.simAvatar.mind.callRemote("addPlayerMobInfo",player.simObject.id,m.mobInfo,char.spawn.getSpawnInfo()) player.zone.activeMobs.append(m) if char.dead: player.zone.detachMob(m) player.restoreTradeItems() player.rootInfo = RootInfo(player,self.charInfos) player.mind.callRemote("setRootInfo",player.rootInfo) player.updateKOS()