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.')
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)
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, ))
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))
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))
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, ))
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))
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))
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))