Example #1
0
def ExitRoom(clientid):
    """ Leave the current room. """
    player = objmgr.GetPlayerByClientId(clientid)
    room = objmgr.GetObject(player.currentRoom)
    if room:
        room.ExitRoom(player)
        return Response(clientid, 'You have left %s' % (room.name, ))
    else:
        return Response(clientid, 'You are not in a room.')
Example #2
0
def ShowInventory(clientid):
    """ Display your inventory. """
    player = objmgr.GetPlayerByClientId(clientid)
    itemstr = 'You have:' + os.linesep
    for itemid in player.inventory:
        item = objmgr.GetObject(itemid)
        itemstr += '%s%s' % (item.name, os.linesep)

    return Response(clientid, itemstr)
Example #3
0
def Logout(clientid):
    """ Remove the Player from the game.  """
    player = objmgr.GetPlayerByClientId(clientid)
    objmgr.UnregisterPlayer(clientid, player.id)
    objmgr.RemoveObject(player)

    deferred.Call(gameserver.ID_SERVER, 'pre_close_client', (clientid, ))

    return Response(clientid,
                    'Goodbye, %s. Hope you had fun!' % (player.name, ))
Example #4
0
def Attack(clientid, targetname):
    """ Attack a player."""
    target = objmgr.GetPlayerByName(targetname)
    if target is None:
        return Response(clientid,
                        '%s is not in the game.%s' % (targetname, os.linesep))

    player = objmgr.GetPlayerByClientId(clientid)
    player._Attack(target.id)

    return Response(clientid, 'You attacked %s.%s' % (targetname, os.linesep))
Example #5
0
def Wave(clientid, targetname):
    """ Wave at a player."""
    target = objmgr.GetPlayerByName(targetname)
    if target is None:
        return Response(clientid,
                        '%s is not in the game.%s' % (targetname, os.linesep))

    player = objmgr.GetPlayerByClientId(clientid)
    player._Wave(target.id)

    return Response(clientid, 'You waved at %s.%s' % (targetname, os.linesep))
Example #6
0
def EnterRoom(clientid, roomname):
    """ Enter the room identified by name. """
    try:
        room = objmgr.GetRoomByName(roomname)
    except KeyError:
        return Response(clientid, 'Invalid room name: %s' % (roomname, ))

    player = objmgr.GetPlayerByClientId(clientid)
    room.EnterRoom(player)

    return Response(clientid, 'You are now in %s' % (room.name, ))
Example #7
0
def Put(clientid, itemname):
    """ Put an item identified by its name. """
    item = objmgr.GetObjectByName(itemname)
    if item is None:
        return Response(clientid,
                        '%s is not in the game.%s' % (itemname, os.linesep))

    player = objmgr.GetPlayerByClientId(clientid)
    if not player._ReleaseItem(item):
        return Response(clientid,
                        'You do not have %s.%s' % (itemname, os.linesep))

    return Response(clientid, 'You returned %s.%s' % (itemname, os.linesep))
Example #8
0
def Take(clientid, itemname):
    """ Take an item identified by its name. """
    item = objmgr.GetObjectByName(itemname)
    if item is None:
        return Response(clientid,
                        '%s is not in the game.%s' % (itemname, os.linesep))

    player = objmgr.GetPlayerByClientId(clientid)
    if not player._AcquireItem(item):
        return Response(clientid,
                        '%s is not in this room.%s' % (itemname, os.linesep))

    return Response(clientid, 'You took %s.%s' % (itemname, os.linesep))
Example #9
0
def Equip(clientid, itemname):
    """ Arm yourself with the weapon identified by its name. """
    item = objmgr.GetObjectByName(itemname)
    if item is None:
        return Response(clientid,
                        '%s is not in the game.%s' % (itemname, os.linesep))

    player = objmgr.GetPlayerByClientId(clientid)
    if not isinstance(item, gameobs.Weapon):
        return Response(clientid,
                        '%s is not a weapon.%s' % (itemname, os.linesep))

    if not player._EquipWeapon(item):
        return Response(
            clientid,
            '%s is not in your inventory.%s' % (itemname, os.linesep))

    return Response(clientid, 'You equipped a %s.%s' % (itemname, os.linesep))