コード例 #1
0
ファイル: functions.py プロジェクト: ckode/ArenaMUD2
def doCombatRound(combatqueue):
    """
    Calls doAttack for each player
    in the combat queue.
    """
    
    for attacker in combatqueue.getCombatQueue():
        if attacker not in AllPlayers.keys():
            combatqueue.removeAttack(attacker)
        else:
            player = AllPlayers[attacker]
            if not player.attacking:
                continue
            if player.attacking.name not in AllPlayers.keys():
                endCombat(player)
            else:
                victim = player.attacking
                if player.room == victim.room:
                    doAttack(player, victim)
                else:
                    endCombat(player)
コード例 #2
0
ファイル: login.py プロジェクト: ckode/ArenaMUD2
def getUsername(player, line):
    """
    getUsername()
    
    Check for username or new and work.
    """
    
    # not blank, 15 characters or less and all characters are alpha or numberic
    if line == "" or len(line) > 15 or not line.isalnum():
        player.sendLine("Invalid name, please try again.")
        askUsername(player)
        return  
    
    if player.status is LOGIN:
        # If "new", create new player. TODO: Setup the new character creation functionality 
        if line.lower() == "new":
            player.status = CREATEPLAYER
            createPlayer(player)
            return
    
    from character.players import AllPlayers               

    # Check to see if the player's name is already connected.
    for name in AllPlayers.keys():
        if line.lower() in name.lower():
            player.sendLine("User is already connected, please try again.")
            askUsername(player)
            return
    
    # See if player exists in database.
    if player.status is LOGIN:
        if utils.gameutils.userCheck(line):
            player.name = line
            player.loadPlayer()
            player.status = GETPASSWORD
            player.transport.write("Enter your password: "******"Username entered does not exist, please try again.")
            askUsername(player)
            return
        
    elif player.status is GETNEWUSERNAME:
        # name can't be "new"
        if line.lower() == "new":
            player.sendLine("Invalid name, please try again.")
            player.status = LOGIN
            askUsername(player)
            return  
             
        if not utils.gameutils.userCheck(line):
            player.name = line[:1].upper() + line[1:]
            player.status = GETNEWPASSWORD
            # Disable local echo to not show passwords being typed.
            #player.transport._dont(ECHO)
            askPlayerPassword(player)
            return
        else:
            character.communicate.sendToPlayer(player, "Username already exist, please try again.")
            player.status = LOGIN
            askUsername(player)
            return
       
    logger.gamelogger.logger.log.info( "{0} just logged in.".format(player) )
    player.status = GETCLASS
    askClass(player)