def invisible(connection, player=None): protocol = connection.protocol if player is not None: player = get_player(protocol, player) elif connection in protocol.players: player = connection else: raise ValueError() player.invisible = not player.invisible player.filter_visibility_data = player.invisible player.god = player.invisible player.god_build = False player.killing = not player.invisible if player.invisible: player.send_chat("You're now invisible") protocol.irc_say('* %s became invisible' % player.name) kill_action = KillAction() kill_action.kill_type = choice([GRENADE_KILL, FALL_KILL]) kill_action.player_id = kill_action.killer_id = player.player_id reactor.callLater(1.0 / NETWORK_FPS, protocol.send_contained, kill_action, sender=player) else: player.send_chat("You return to visibility") protocol.irc_say('* %s became visible' % player.name) x, y, z = player.world_object.position.get() create_player.player_id = player.player_id create_player.name = player.name create_player.x = x create_player.y = y create_player.z = z create_player.weapon = player.weapon create_player.team = player.team.id world_object = player.world_object input_data.player_id = player.player_id input_data.up = world_object.up input_data.down = world_object.down input_data.left = world_object.left input_data.right = world_object.right input_data.jump = world_object.jump input_data.crouch = world_object.crouch input_data.sneak = world_object.sneak input_data.sprint = world_object.sprint set_tool.player_id = player.player_id set_tool.value = player.tool set_color.player_id = player.player_id set_color.value = make_color(*player.color) weapon_input.primary = world_object.primary_fire weapon_input.secondary = world_object.secondary_fire protocol.send_contained(create_player, sender=player, save=True) protocol.send_contained(set_tool, sender=player) protocol.send_contained(set_color, sender=player, save=True) protocol.send_contained(input_data, sender=player) protocol.send_contained(weapon_input, sender=player) if connection is not player and connection in protocol.players: if player.invisible: return '%s is now invisible' % player.name else: return '%s is now visible' % player.name
def invisible(connection, player = None): protocol = connection.protocol if player is not None: player = get_player(protocol, player) elif connection in protocol.players: player = connection else: raise ValueError() player.invisible = not player.invisible player.filter_visibility_data = player.invisible player.god = player.invisible player.god_build = False player.killing = not player.invisible if player.invisible: player.send_chat("You're now invisible") protocol.irc_say('* %s became invisible' % player.name) kill_action = KillAction() kill_action.kill_type = choice([GRENADE_KILL, FALL_KILL]) kill_action.player_id = kill_action.killer_id = player.player_id reactor.callLater(1.0 / NETWORK_FPS, protocol.send_contained, kill_action, sender = player) else: player.send_chat("You return to visibility") protocol.irc_say('* %s became visible' % player.name) x, y, z = player.world_object.position.get() create_player.player_id = player.player_id create_player.name = player.name create_player.x = x create_player.y = y create_player.z = z create_player.weapon = player.weapon create_player.team = player.team.id world_object = player.world_object input_data.player_id = player.player_id input_data.up = world_object.up input_data.down = world_object.down input_data.left = world_object.left input_data.right = world_object.right input_data.jump = world_object.jump input_data.crouch = world_object.crouch input_data.sneak = world_object.sneak input_data.sprint = world_object.sprint set_tool.player_id = player.player_id set_tool.value = player.tool set_color.player_id = player.player_id set_color.value = make_color(*player.color) weapon_input.primary = world_object.primary_fire weapon_input.secondary = world_object.secondary_fire protocol.send_contained(create_player, sender = player, save = True) protocol.send_contained(set_tool, sender = player) protocol.send_contained(set_color, sender = player, save = True) protocol.send_contained(input_data, sender = player) protocol.send_contained(weapon_input, sender = player) if connection is not player and connection in protocol.players: if player.invisible: return '%s is now invisible' % player.name else: return '%s is now visible' % player.name
def givePoints(self, amount): cp = CreatePlayer() cp.x = 0 cp.y = 0 cp.z = 0 cp.weapon = 0 cp.player_id = 31 cp.name = "TAG POINTS" cp.team = self.team.other.id self.protocol.broadcast_contained(cp, save=True) ka = KillAction() ka.player_id = 31 ka.killer_id = self.player_id self.kill_type = 0 self.respawn_time = 0 for i in range(amount): self.protocol.broadcast_contained(ka, save=True) pl = PlayerLeft() pl.player_id = 31 self.protocol.broadcast_contained(pl, save=True)
def invisible(connection, player): """ Turn invisible /invisible [player] """ protocol = connection.protocol # TODO: move this logic to a more suitable place player.invisible = not player.invisible player.filter_visibility_data = player.invisible player.god = player.invisible player.god_build = False player.killing = not player.invisible if player.invisible: player.send_chat("You're now invisible") protocol.irc_say('* %s became invisible' % player.name) kill_action = KillAction() kill_action.kill_type = choice([GRENADE_KILL, FALL_KILL]) kill_action.player_id = kill_action.killer_id = player.player_id reactor.callLater(1.0 / NETWORK_FPS, protocol.broadcast_contained, kill_action, sender=player) else: player.send_chat("You return to visibility") protocol.irc_say('* %s became visible' % player.name) x, y, z = player.world_object.position.get() create_player = CreatePlayer() create_player.player_id = player.player_id create_player.name = player.name create_player.x = x create_player.y = y create_player.z = z create_player.weapon = player.weapon create_player.team = player.team.id world_object = player.world_object input_data = InputData() input_data.player_id = player.player_id input_data.up = world_object.up input_data.down = world_object.down input_data.left = world_object.left input_data.right = world_object.right input_data.jump = world_object.jump input_data.crouch = world_object.crouch input_data.sneak = world_object.sneak input_data.sprint = world_object.sprint set_tool = SetTool() set_tool.player_id = player.player_id set_tool.value = player.tool set_color = SetColor() set_color.player_id = player.player_id set_color.value = make_color(*player.color) weapon_input = WeaponInput() weapon_input.primary = world_object.primary_fire weapon_input.secondary = world_object.secondary_fire protocol.broadcast_contained(create_player, sender=player, save=True) protocol.broadcast_contained(set_tool, sender=player) protocol.broadcast_contained(set_color, sender=player, save=True) protocol.broadcast_contained(input_data, sender=player) protocol.broadcast_contained(weapon_input, sender=player) if connection is not player and connection in protocol.players.values(): if player.invisible: return '%s is now invisible' % player.name else: return '%s is now visible' % player.name
from random import choice from twisted.internet import reactor from pyspades.contained import KillAction, InputData, SetColor, WeaponInput from pyspades.player import create_player, set_tool from pyspades.constants import (GRENADE_KILL, FALL_KILL, NETWORK_FPS) from pyspades.common import (prettify_timespan, make_color) from piqueserver.commands import command, CommandError, get_player, join_arguments # aparently, we need to send packets in this file. For now, I give in. kill_action = KillAction() input_data = InputData() set_color = SetColor() weapon_input = WeaponInput() def get_ban_arguments(connection, arg): duration = None if len(arg): try: duration = int(arg[0]) arg = arg[1:] except (IndexError, ValueError): pass if duration is None: if len(arg) > 0 and arg[0] == "perma": arg = arg[1:] else: duration = connection.protocol.default_ban_time reason = join_arguments(arg) return duration, reason