示例#1
0
    def perspective_onZoneTrigger(self,simObject,zoneLink):#,zoneIn):
        if simObject not in self.simObjects:
            traceback.print_stack()
            print "AssertionError: simObject is not in SimAvatars simObject list!"
            return
        if not self.playerLookup.has_key(simObject):
            traceback.print_stack()
            print "AssertionError: simObject is not in SimAvatars playerLookup list!"
            return


        from zone import Zone,ZoneLink

        zlink = ZoneLink.byName(zoneLink)
        
        player = self.playerLookup[simObject]
        if player.zone:
            z = Zone.byName(zlink.dstZoneName)
            czone = player.zone.zone
            
            if czone == z:
                #good
                #we just need to respawn player, whew
                player.zone.respawnPlayer(player,zlink.dstZoneTransform)
                return


        #we want to present the player with a choice of active zones 
        #and/or to launch their own zone instance (if they are allowed to)
        self.world.onZoneTrigger(self.playerLookup[simObject],zlink)
def CmdTP(mob,args):
    player = mob.player
    zname = args[0]
    
    if zname.lower() == 'bindstone':
        if player.darkness:
            z = player.darknessBindZone
            trans = player.darknessBindTransform
        elif player.monster:
            z = player.monsterBindZone
            trans = player.monsterBindTransform
        else:
            z = player.bindZone
            trans = player.bindTransform
        dst = ' '.join(str(i) for i in trans)
    else:
        try:
            z = Zone.byName(zname)
            dst = z.immTransform
        except:
            mob.player.sendGameText(RPG_MSG_GAME_DENIED,"Unknown zone or zone not setup for immortal command %s.\\n"%zname)
            return
    
    #are we in the same zone?
    if player.zone.zone == z:
        #good
        #we just need to respawn player, whew
        player.zone.respawnPlayer(player,dst)
    else:
        from zone import TempZoneLink
        zlink = TempZoneLink(zname,dst)
        player.world.onZoneTrigger(player,zlink)
def CmdTP(mob, args):
    player = mob.player
    zname = args[0]

    if zname.lower() == 'bindstone':
        if player.darkness:
            z = player.darknessBindZone
            trans = player.darknessBindTransform
        elif player.monster:
            z = player.monsterBindZone
            trans = player.monsterBindTransform
        else:
            z = player.bindZone
            trans = player.bindTransform
        dst = ' '.join(str(i) for i in trans)
    else:
        try:
            z = Zone.byName(zname)
            dst = z.immTransform
        except:
            mob.player.sendGameText(
                RPG_MSG_GAME_DENIED,
                "Unknown zone or zone not setup for immortal command %s.\\n" %
                zname)
            return

    #are we in the same zone?
    if player.zone.zone == z:
        #good
        #we just need to respawn player, whew
        player.zone.respawnPlayer(player, dst)
    else:
        from zone import TempZoneLink
        zlink = TempZoneLink(zname, dst)
        player.world.onZoneTrigger(player, zlink)