示例#1
0
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)
示例#2
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))
示例#3
0
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())
示例#4
0
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)
示例#5
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)
示例#6
0
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))
示例#7
0
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())
示例#8
0
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'])
示例#9
0
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)
示例#10
0
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)
示例#11
0
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)
示例#12
0
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])
示例#13
0
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)
示例#14
0
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)
示例#15
0
def wcs_decimal_command(command_info, var:ConVar, value:float):
    var.set_int(int(round(value)))
示例#16
0
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)