def wcs_randplayer_command(command_info, var:ConVar, players:convert_identifier_to_players): players = list(players) if players: var.set_int(choice(players).userid) else: var.set_int(0)
def wcsx_get_command(command_info, key:str, var:ConVar, userid:valid_userid): if userid is None: var.set_int(-1) return player = getPlayer(userid) if not hasattr(player, key): var.set_int(-1) return value = getattr(player, key) if callable(value): value = value() if hasattr(value, '__iter__'): if hasattr(value[0], '__iter__'): if len(value[0]) == 1: value = value[0][0] else: value = ','.join([str(x) for x in value[0]]) else: value = value[0] var.set_string(str(value))
def get_wall_between_command(command_info, var:ConVar, x:float, y:float, z:float, x2:float, y2:float, z2:float): vector = Vector(x, y, z) vector2 = Vector(x, y, z) trace = GameTrace() ray = Ray(vector, vector2) engine_trace.trace_ray(ray, ContentMasks.ALL, None, trace) var.set_int(trace.did_hit_world())
def wcs_getrandomrace_command(command_info, wcsplayer:convert_userid_to_wcsplayer, var:ConVar): if wcsplayer is None: var.set_int(0) return available_races = list(wcsplayer.available_races) if available_races: var.set_string(choice(available_races)) else: var.set_int(0)
def wcs_get_cooldown_command(command_info, wcsplayer: convert_userid_to_wcsplayer, var: ConVar): active_race = wcsplayer.active_race for skill in active_race.skills.values(): if 'player_ultimate' in skill.config['event']: var.set_float(max(skill.cooldown - time(), 0)) break else: var.set_int(-1)
def wcsgroup_get_command(command_info, key:str, var:ConVar, userid:valid_userid_and_team): if userid is None: var.set_int(0) return if isinstance(userid, str): value = team_data[{'T':2, 'CT':3}[userid]].get(key, '0') else: wcsplayer = WCSPlayer.from_userid(userid) value = wcsplayer.data.get(key, '0') var.set_string(str(value))
def wcs_getwallbetween_command(command_info, var:ConVar, player:convert_userid_to_player, target:convert_userid_to_player): if player is None or target is None: var.set_int(-1) return vector = player.origin vector2 = target.origin trace = GameTrace() ray = Ray(vector, vector2) engine_trace.trace_ray(ray, ContentMasks.ALL, None, trace) var.set_int(trace.did_hit_world())
def wcs_getinfo_command(command_info, wcsplayer: convert_userid_to_wcsplayer, var: ConVar, attribute: str, key: str): if wcsplayer is None: var.set_int(0) return if key == 'race': if attribute == 'realname': var.set_string(wcsplayer.active_race.name) elif attribute == 'name': var.set_string(wcsplayer.active_race.settings.strings['name']) elif key == 'player': if attribute == 'realcurrace': var.set_string(wcsplayer.active_race.name) elif attribute == 'currace': var.set_string(wcsplayer.active_race.settings.strings['name'])
def wcs_getcolors_command(command_info, player:convert_userid_to_player, red:ConVar, green:ConVar, blue:ConVar, alpha:ConVar): if player is None: return color = player.color red.set_int(color.r) green.set_int(color.g) blue.set_int(color.b) alpha.set_int(color.a)
def wcs_sub_getviewentity_command(command_info, player:convert_userid_to_player, var:ConVar): if player is None: var.set_int(-1) return target = player.view_entity if target is None: var.set_int(-1) return var.set_int(target.entity)
def wcs_getviewplayer_command(command_info, player:convert_userid_to_player, var:ConVar): if player is None: var.set_int(-1) return target = player.view_player if target is None: var.set_int(-1) return var.set_int(target.userid)
def wcs_getviewcoords_command(command_info, player:convert_userid_to_player, x:ConVar, y:ConVar, z:ConVar): if player is None: x.set_int(0) y.set_int(0) z.set_int(0) return view_coordinates = player.view_coordinates x.set_float(view_coordinates[0]) y.set_float(view_coordinates[1]) z.set_float(view_coordinates[2])
def wcs_get_skill_level_command(command_info, wcsplayer:convert_userid_to_wcsplayer, var:ConVar, index:int): if wcsplayer is None: var.set_int(0) return active_race = wcsplayer.active_race skills = [*active_race.settings.config['skills']] if index >= len(skills): var.set_int(0) return var.set_int(active_race.skills[skills[index]].level)
def wcs_getplayerindex_command(command_info, player:convert_userid_to_player, var:ConVar): if player is None: var.set_int(-1) return var.set_int(player.index)
def wcs_decimal_command(command_info, var:ConVar, value:float): var.set_int(int(round(value)))
def health_get_command(command_info, var:ConVar, player:convert_userid_to_player): if player is None: var.set_int(0) return var.set_int(player.health)