示例#1
0
    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()
示例#2
0
 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()
示例#3
0
    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()
示例#4
0
 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()
示例#5
0
    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()
示例#6
0
 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()