예제 #1
0
def round_start(event_var):
    global quake_sounds_kills
    quake_sounds_kills = 0
    if int(quake_sounds_round_reset):
        for userid in es.getUseridList():
            quake_sounds_players[userid] = {
                'kills': 0,
                'multikills': 0,
                'headshot': False,
                'headshots': 0
            }
    else:
        for userid in es.getUseridList():
            if userid in quake_sounds_players:
                quake_sounds_players[userid]['multikills'] = 0
                quake_sounds_players[userid]['headshot'] = False
                quake_sounds_players[userid]['headshots'] = 0
            else:
                quake_sounds_players[userid] = {
                    'kills': 0,
                    'multikills': 0,
                    'headshot': False,
                    'headshots': 0
                }
    if int(quake_sounds_round_announce):
        gamethread.delayed(10, round_announce)
    _check_event(event_var)
예제 #2
0
def getPlayerList(players):
    """Returns a set of RestrictedPlayer or RestrictedTeam instances based on userid or team tag"""
    if isinstance(players, str):
        if players.startswith('@'):
            if players[1:] == 'all':
                players = (getTeam(2), getTeam(3))
            elif acceptable_teams.has_key(players[1:]):
                players = (getTeam(acceptable_teams[players[1:]]), )
            else:
                raise ValueError, 'Invalid team tag \"%s\"' % players

        elif players.startswith('#'):
            if players[1:] == 'all':
                players = es.getUseridList()
            elif acceptable_teams.has_key(players[1:]):
                team = acceptable_teams[players[1:]]
                players = filter(lambda x: es.getplayerteam(x) == team,
                                 es.getUseridList())
            else:
                raise ValueError, 'Invalid team tag \"%s\"' % players

            players = map(getPlayer, players)

        else:
            userid = es.getuserid(players)
            if not userid:
                raise ValueError, 'Invalid player \"%s\"' % players

            players = (getPlayer(userid), )

    elif isinstance(players, (int, float)):
        players = (getPlayer(players), )

    return players
예제 #3
0
def getPlayerList(players):
   """Returns a set of RestrictedPlayer or RestrictedTeam instances based on userid or team tag"""
   if isinstance(players, str):
      if players.startswith('@'):
         if players[1:] == 'all':
            players = (getTeam(2), getTeam(3))
         elif acceptable_teams.has_key(players[1:]):
            players = (getTeam(acceptable_teams[players[1:]]),)
         else:
            raise ValueError, 'Invalid team tag \"%s\"' % players

      elif players.startswith('#'):
         if players[1:] == 'all':
            players = es.getUseridList()
         elif acceptable_teams.has_key(players[1:]):
            team    = acceptable_teams[players[1:]]
            players = filter(lambda x: es.getplayerteam(x) == team, es.getUseridList())
         else:
            raise ValueError, 'Invalid team tag \"%s\"' % players

         players = map(getPlayer, players)

      else:
         userid = es.getuserid(players)
         if not userid:
            raise ValueError, 'Invalid player \"%s\"' % players

         players = (getPlayer(userid),)

   elif isinstance(players, (int, float)):
      players = (getPlayer(players),)

   return players
예제 #4
0
def unload():
    for popup in ['pistols', 'shotguns', 'smgs', 'rifles', 'snipers', 'machinegun', 'grenades', 'others', 'all', 'health', 'cash', '']:
        if popuplib.exists('admingive' + popup):
            popuplib.close('admingive' + popup, es.getUseridList())
            popuplib.delete('admingive' + popup)
    for popup in ['targetmenu', 'giveplayermenu']:
        if popuplib.exists(popup):
            popuplib.close(popup, es.getUseridList())
            popuplib.delete(popup)
    xaadmingive.unregister()
예제 #5
0
def unload():
    for popup in ['pistols','shotguns','smgs','rifles','snipers','machinegun','grenades','item','health','cash','']:
        if popuplib.exists('admingive' + popup):
            popuplib.close('admingive' + popup, es.getUseridList())
            popuplib.delete('admingive' + popup)
    for popup in ['targetmenu','giveplayermenu']:
        if popuplib.exists(popup):
            popuplib.close(popup, es.getUseridList())
            popuplib.delete(popup)
    xaadmingive.unregister()
예제 #6
0
def _count_down(amount, bombType, userid):
    if amount:
        es.centermsg(amount)
        amount -= 1
        gamethread.delayedname(1, '%s_%s' % (bombType, userid), _count_down,
                               (amount, bombType, userid))
        es.emitsound('player', userid, xa_adminbomb_sound, '1.0', '0.7')
        r, g, b, a = str(xa_adminbomb_beaconcolor).split()
        location = es.getplayerlocation(userid)
        effectlib.drawCircle(location,
                             150,
                             steps=50,
                             model="materials/sprites/laser.vmt",
                             seconds=0.2,
                             width=20,
                             endwidth=10,
                             red=r,
                             green=g,
                             blue=b,
                             brightness=a,
                             speed=70)
    elif bombType == "timebomb":
        for index in es.createentitylist('env_explosion'):
            es.server.cmd('es_xremove %s' % index)
        es.server.cmd('es_xgive %s env_explosion' % userid)
        es.server.cmd('es_xfire %s env_explosion addoutput "imagnitude 300"' %
                      userid)
        es.server.cmd(
            'es_xfire %s env_explosion addoutput "iradiusoverride 600"' %
            userid)
        es.setindexprop(es.ServerVar('eventscripts_lastgive'),
                        'CBaseEntity.m_hOwnerEntity',
                        es.getplayerhandle(userid))
        es.server.cmd('es_xfire %s env_explosion explode' % userid)
        es.server.cmd('es_xfire %s env_explosion kill' % userid)
        players[userid]['timebombed'] = 0
    elif bombType == "freezebomb":
        x, y, z = es.getplayerlocation(userid)
        for player in es.getUseridList():
            xx, yy, zz = es.getplayerlocation(player)
            if (((xx - x)**2 + (yy - y)**2 + (zz - z)**2)**0.5) <= 300:
                player = playerlib.Player(userid)
                gamethread.queue(player.set, ('noclip', 1))
                gamethread.queue(player.set, ('freeze', 1))
        players[userid]['freezebombed'] = 0
    elif bombType == "firebomb":
        x, y, z = es.getplayerlocation(userid)
        for player in es.getUseridList():
            xx, yy, zz = es.getplayerlocation(player)
            if (((xx - x)**2 + (yy - y)**2 + (zz - z)**2)**0.5) <= 300:
                es.server.cmd('es_xfire %s !self ignite' % player)
                gamethread.delayedname(xa_adminfirebomb_duration,
                                       'remove_fire', _extinguish, player)
        players[userid]['firebombed'] = 0
예제 #7
0
def rtv():
    """ Executed when a user types 'rtv' in chat """
    global votes_in
    global vote_req_total
     
    userid  = es.getcmduserid() 
    steamid = es.getplayersteamid(userid) 
    entry(steamid) 
    if not players[steamid][0]:
        
        if (time.time() - map_start_time) < float(vote_req_time):
            tokens = {}
            tokens['time'] = int(float(vote_req_time) - int( time.time() - map_start_time ) ) 
            es.tell(userid, '#multi', lang('map_time', tokens, playerlib.getPlayer(userid).get('lang') ) )
            xartv.logging.log("has been denied the right to RTV as not enough time in the map has passed", userid ) 
        else: 
            if allowVoting:
                players[steamid][0] = True
                vote_req_total = int( round(vote_req_p / 100. * len(playerlib.getPlayerList("#human") ) ) )
                if not votes_in: 
                    name = es.getplayername(userid) 
                    for user in es.getUseridList(): 
                        tokens = {}
                        tokens['player'] = es.getplayername(user)
                        es.tell(user, '#multi', lang('player_started', tokens, playerlib.getPlayer(user).get('lang') ) ) 
                        popuplib.unsend("nomination_menu", user)
                votes_in += 1
                xartv.logging.log("has rocked the vote, %s votes in" % votes_in, userid )
                
                if votes_in >= int(vote_req_min): 
                    if votes_in >= vote_req_total:
                        xartv.logging.log("Rock the vote has passed, starting the vote") 
                        rtv_init() 
                    else: 
                        name   = es.getplayername(userid)
                        tokens = {}
                        tokens['player'] = name
                        tokens['votes']  = vote_req_total - votes_in
                        xartv.logging.log("%s votes still needed to rock the vote" % (vote_req_total - votes_in) ) 
                        for user in es.getUseridList():
                            es.tell(user, '#multi', lang('req', tokens ,playerlib.getPlayer(user).get('lang') ) ) 
                else: 
                    name   = es.getplayername(userid)
                    tokens = {}
                    tokens['player'] = name
                    tokens['votes']  = int(vote_req_min) - votes_in
                    for user in es.getUseridList(): 
                        es.tell(user, '#multi', lang('req', tokens, playerlib.getPlayer(user).get('lang') ) ) 
            else: 
                es.tell(userid, '#multi', lang('started', lang=playerlib.getPlayer(userid).get('lang') ) ) 
    else:
        xartv.logging.log("has attempted to RTV more than once", userid) 
        es.tell(userid, '#multi', lang('1vote', lang=playerlib.getPlayer(userid).get('lang') ) ) 
예제 #8
0
def rtv():
    """ Executed when a user types 'rtv' in chat """
    global votes_in
    global vote_req_total
     
    userid  = es.getcmduserid() 
    steamid = es.getplayersteamid(userid) 
    entry(steamid) 
    if not players[steamid][0]:
        
        if (time.time() - map_start_time) < float(vote_req_time):
            tokens = {}
            tokens['time'] = int(float(vote_req_time) - int( time.time() - map_start_time ) ) 
            es.tell(userid, '#multi', lang('map_time', tokens, playerlib.getPlayer(userid).get('lang') ) )
            xartv.logging.log("has been denied the right to RTV as not enough time in the map has passed", userid ) 
        else: 
            if allowVoting:
                players[steamid][0] = True
                vote_req_total = int( round(vote_req_p / 100. * len(playerlib.getPlayerList("#human") ) ) )
                if not votes_in: 
                    name = es.getplayername(userid) 
                    for user in es.getUseridList(): 
                        tokens = {}
                        tokens['player'] = es.getplayername(user)
                        es.tell(user, '#multi', lang('player_started', tokens, playerlib.getPlayer(user).get('lang') ) ) 
                        popuplib.unsend("nomination_menu", user)
                votes_in += 1
                xartv.logging.log("has rocked the vote, %s votes in" % votes_in, userid )
                
                if votes_in >= int(vote_req_min): 
                    if votes_in >= vote_req_total:
                        xartv.logging.log("Rock the vote has passed, starting the vote") 
                        rtv_init() 
                    else: 
                        name   = es.getplayername(userid)
                        tokens = {}
                        tokens['player'] = name
                        tokens['votes']  = vote_req_total - votes_in
                        xartv.logging.log("%s votes still needed to rock the vote" % (vote_req_total - votes_in) ) 
                        for user in es.getUseridList():
                            es.tell(user, '#multi', lang('req', tokens ,playerlib.getPlayer(user).get('lang') ) ) 
                else: 
                    name   = es.getplayername(userid)
                    tokens = {}
                    tokens['player'] = name
                    tokens['votes']  = int(vote_req_min) - votes_in
                    for user in es.getUseridList(): 
                        es.tell(user, '#multi', lang('req', tokens, playerlib.getPlayer(user).get('lang') ) ) 
            else: 
                es.tell(userid, '#multi', lang('started', lang=playerlib.getPlayer(userid).get('lang') ) ) 
    else:
        xartv.logging.log("has attempted to RTV more than once", userid) 
        es.tell(userid, '#multi', lang('1vote', lang=playerlib.getPlayer(userid).get('lang') ) ) 
예제 #9
0
def Clock():
	global ClockTime
	if int(ClockTime) <= 2:
		gamethread.cancelDelayed("clock")
	if int(ClockTime) > 9:
		es.emitsound("player", es.getUseridList()[0],"pl_hoodoo\\alarm_clock_ticking_3.wav", 1, 0)
		gamethread.delayedname(2.7,"clock",Clock,())
		ClockTime -= 3 
	else:
		Msg("Ten Seconds To Sudden Death!")
		es.emitsound("player", es.getUseridList()[0],"pl_hoodoo\\alarm_clock_alarm_3.wav", 1, 0)
		gamethread.cancelDelayed("clock")
		ClockTime = 0
예제 #10
0
def round_start(ev):
    bot_configs()
    es.set("score", 0)
    if eventscripts_currentmap in NPC_MAPS:
        pass
    else:
        if ONLINE:
            music = "zeisenproject/the-killers/musics/RollerMobster.mp3"
            es.set("music", music)
            for userid in es.getUseridList():
                es.playsound(userid, music, 1.0)
    for userid in es.getUseridList():
        es.fire(userid, "hostage_entity", "kill")
        break
예제 #11
0
def round_start(ev):
    bot_configs()
    es.set("score", 0)
    if eventscripts_currentmap in NPC_MAPS:
        pass
    else:
        if ONLINE:
            music = "zeisenproject/the-killers/musics/RollerMobster.mp3"
            es.set("music", music)
            for userid in es.getUseridList():
                es.playsound(userid, music, 1.0)
    for userid in es.getUseridList():
        es.fire(userid, "hostage_entity", "kill")
        break
예제 #12
0
def getPlayerList(players):
    """Returns a set of RestrictedPlayer or RestrictedTeam instances based on userid or team tag"""
    if isinstance(players, str):
        if players.startswith('@'):
            if players[1:] == 'all':
                players = (getTeam(2), getTeam(3))
            elif acceptable_teams.has_key(players[1:]):
                players = (getTeam(acceptable_teams[players[1:]]), )
            else:
                #bugfix: echo to users console (useful message)
                usermsg.echo(
                    "#all",
                    'xarestrict error: invalid tag \"%s\" [command accepts @all, @ct, @t]'
                    % players)
                raise ValueError, 'Invalid team tag \"%s\"' % players

        elif players.startswith('#'):
            if players[1:] == 'all':
                players = es.getUseridList()
            elif acceptable_teams.has_key(players[1:]):
                team = acceptable_teams[players[1:]]
                players = filter(lambda x: es.getplayerteam(x) == team,
                                 es.getUseridList())
            else:
                #bugfix: echo to users console (useful message)
                usermsg.echo(
                    "#all",
                    'xarestrict error: invalid tag \"%s\" [command accepts #all, #ct, #t]'
                    % players)
                raise ValueError, 'Invalid team tag \"%s\"' % players

            players = map(getPlayer, players)

        else:
            userid = es.getuserid(players)
            if not userid:
                #bugfix: echo to users console (useful message)
                usermsg.echo(
                    "#all",
                    'xarestrict error: invalid player \"%s\" [command accepts partial username, userid or steamid]'
                    % players)
                raise ValueError, 'Invalid player \"%s\"' % players

            players = (getPlayer(userid), )

    elif isinstance(players, (int, float)):
        players = (getPlayer(players), )

    return players
예제 #13
0
def rtv():
    """ Executed when a user types 'rtv' in chat """
    global votes_in
    global vote_req_total
     
    userid  = es.getcmduserid() 
    steamid = es.getplayersteamid(userid) 
    entry(steamid) 
    if not players[steamid][0]:
        
        if (time.time() - map_start_time) < float(vote_req_time):
            tokens = {}
            tokens['time'] = int(float(vote_req_time) - int( time.time() - map_start_time ) ) 
            es.tell(userid, '#multi', lang('map_time', tokens, playerlib.getPlayer(userid).get('lang') ) ) 
        else: 
            if allowVoting:
                players[steamid][0] = True
                vote_req_total = int( round(vote_req_p / 100. * len(playerlib.getPlayerList("#human") ) ) )
                if not votes_in: 
                    name = es.getplayername(userid) 
                    for user in es.getUseridList(): 
                        tokens = {}
                        tokens['player'] = es.getplayername(user)
                        es.tell(user, '#multi', lang('player_started', tokens, playerlib.getPlayer(user).get('lang') ) ) 
                        popuplib.unsend("nomination_menu", user)
                votes_in += 1
                
                if votes_in >= int(vote_req_min): 
                    if votes_in >= vote_req_total: 
                        rtv_init() 
                    else: 
                        name   = es.getplayername(userid)
                        tokens = {}
                        tokens['player'] = name
                        tokens['votes']  = vote_req_total - votes_in 
                        for user in es.getUseridList():
                            es.tell(user, '#multi', lang('req', tokens ,playerlib.getPlayer(user).get('lang') ) ) 
                else: 
                    name   = es.getplayername(userid)
                    tokens = {}
                    tokens['player'] = name
                    tokens['votes']  = int(vote_req_min) - votes_in
                    for user in es.getUseridList(): 
                        es.tell(user, '#multi', lang('req', tokens, playerlib.getPlayer(user).get('lang') ) ) 
            else: 
                es.tell(userid, '#multi', lang('started', lang=playerlib.getPlayer(userid).get('lang') ) ) 
    else: 
        es.tell(userid, '#multi', lang('1vote', lang=playerlib.getPlayer(userid).get('lang') ) ) 
예제 #14
0
def rtv():
    """ Executed when a user types 'rtv' in chat """
    global votes_in
    global vote_req_total

    userid = es.getcmduserid()
    steamid = es.getplayersteamid(userid)
    entry(steamid)
    if not players[steamid][0]:

        if (time.time() - map_start_time) < float(vote_req_time):
            tokens = {}
            tokens["time"] = int(float(vote_req_time) - int(time.time() - map_start_time))
            es.tell(userid, "#multi", lang("map_time", tokens, playerlib.getPlayer(userid).get("lang")))
        else:
            if allowVoting:
                players[steamid][0] = True
                vote_req_total = int(round(vote_req_p / 100.0 * len(playerlib.getPlayerList("#human"))))
                if not votes_in:
                    name = es.getplayername(userid)
                    for user in es.getUseridList():
                        tokens = {}
                        tokens["player"] = es.getplayername(user)
                        es.tell(user, "#multi", lang("player_started", tokens, playerlib.getPlayer(user).get("lang")))
                        popuplib.unsend("nomination_menu", user)
                votes_in += 1

                if votes_in >= int(vote_req_min):
                    if votes_in >= vote_req_total:
                        rtv_init()
                    else:
                        name = es.getplayername(userid)
                        tokens = {}
                        tokens["player"] = name
                        tokens["votes"] = vote_req_total - votes_in
                        for user in es.getUseridList():
                            es.tell(user, "#multi", lang("req", tokens, playerlib.getPlayer(user).get("lang")))
                else:
                    name = es.getplayername(userid)
                    tokens = {}
                    tokens["player"] = name
                    tokens["votes"] = int(vote_req_min) - votes_in
                    for user in es.getUseridList():
                        es.tell(user, "#multi", lang("req", tokens, playerlib.getPlayer(user).get("lang")))
            else:
                es.tell(userid, "#multi", lang("started", lang=playerlib.getPlayer(userid).get("lang")))
    else:
        es.tell(userid, "#multi", lang("1vote", lang=playerlib.getPlayer(userid).get("lang")))
예제 #15
0
def getAverageLevel(uid):
    # Everyone on level 1?
    if get_leader_level() == 1:
        return 1

    levels = []

    # Loop through the players
    for userid in es.getUseridList():
        if int(es.getplayerteam(userid)) <= 1:
            continue

        # If the player is the one we are checking for, skip them
        if userid == uid:
            continue

        # Add level to the list
        levels.append(Player(userid).level)

    # Make sure the levels list is not empty (can't divide by 0)
    if len(levels) == 0:
        return 1

    # Get the average
    average = sum(levels) / len(levels)

    # Is the average 1 or less?
    if average <= 1:
        return 1

    return average
예제 #16
0
def getLevelAboveUser(uid):
    levels = []

    # Loop through the users
    for userid in es.getUseridList():
        if int(es.getplayerteam(userid)) <= 1:
            continue

        # If the player is the one we are checking for, skip them
        if userid == uid:
            continue

        # Get the player's level
        playerLevel = Player(userid).level

        # If the player's level is not in levels already, add it
        if not playerLevel in levels:
            levels.append(playerLevel)

    # If no levels are in the list, set 1 as the handicap level
    if len(levels) < 1:
        levels.append(1)

    # Sort levels, and return the level above lowest
    levels.sort()
    return levels[0]
예제 #17
0
def getLevelAboveLowest():
    levels = []

    # Loop through the users
    for userid in es.getUseridList():
        if int(es.getplayerteam(userid)) <= 1:
            continue

        # Get the player's level
        playerLevel = Player(userid).level

        # If the player's level is not in levels already, add it
        if not playerLevel in levels:
            levels.append(playerLevel)

    # If there are no valid players to base the handicap on, return level 1
    if not levels:
        return 1

    # If there is only one level, return it
    if len(levels) == 1:
        return levels[0]

    # Sort levels, and return the level above lowest
    levels.sort()
    return levels[1]
예제 #18
0
def sendFirstPlayer(userid, choice, popupid):
    if 3 < choice < 10:
        xateleportmenu.send(userid)
    if choice == 1:
        steamid = playerlib.uniqueid(userid, False)
        if steamid not in locations:
            locations[steamid] = {}
        locations[steamid][str(es.ServerVar(
            'eventscripts_currentmap'))] = es.getplayerlocation(userid)
        lang = playerlib.getPlayer(userid).get("lang")
        saveDatabase()
        es.tell(userid, "#green", xalanguage("location saved", {}, lang))
        xateleport.logging.log(
            "has updated their saved teleport location for map %s" %
            str(es.ServerVar('eventscripts_currentmap')), userid, True)
    elif 4 > choice > 1:
        lang = playerlib.getPlayer(userid).get("lang")
        popupMenu = popuplib.easymenu("xa_teleport_players", "_popup_choice",
                                      sendSecondMenu)
        popupMenu.settitle(xalanguage["player select"])
        for player in filter(
                lambda x: not es.getplayerprop(x, "CBasePlayer.pl.deadflag"),
                es.getUseridList()):
            popupMenu.addoption([choice, player],
                                es.getplayername(player),
                                lang=lang)
        popupMenu.send(userid)
예제 #19
0
def antispam():
    for userid in es.getUseridList():
        steamid = es.getplayersteamid(userid)
        if steamid not in client:
            QueueAPI.Validate(userid, 0)
        client[steamid]["spam"] = 0
    gamethread.delayedname(30, "spam", antispam)
def unload():
    for userid in es.getUseridList(): 
        if players.has_key(userid):
            gamethread.cancelDelayed('beacon_%s'%userid) 
            gamethread.cancelDelayed('timebomb_%s'%userid) 
            gamethread.cancelDelayed('freezebomb_%s'%userid) 
            gamethread.cancelDelayed('firebomb_%s'%userid)
            gamethread.cancelDelayed('unmute_%s'%es.getplayersteamid(userid))
            es.setplayerprop(userid, "CBaseEntity.movetype", 2)
            es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 90)
    gamethread.cancelDelayed('remove_fire')
    gamethread.cancelDelayed('blind_loop')
    es.addons.unregisterSayFilter(_say_filter)
    # xaextendedpunishments.xapunishments.unregisterPunishment("punishment") 
    xaextendedpunishments.xapunishments.unregisterPunishment("blind") 
    xaextendedpunishments.xapunishments.unregisterPunishment("freeze") 
    xaextendedpunishments.xapunishments.unregisterPunishment("gimp") 
    xaextendedpunishments.xapunishments.unregisterPunishment("drug") 
    xaextendedpunishments.xapunishments.unregisterPunishment("beacon") 
    xaextendedpunishments.xapunishments.unregisterPunishment("noclip") 
    xaextendedpunishments.xapunishments.unregisterPunishment("freezebomb") 
    xaextendedpunishments.xapunishments.unregisterPunishment("timebomb") 
    xaextendedpunishments.xapunishments.unregisterPunishment("firebomb")
    
    if int(xa_adminmute_on):
        xaextendedpunishments.xapunishments.unregisterPunishment("mute")
        
    xaextendedpunishments.delRequirement('xapunishments')
    xaextendedpunishments.unregister()
예제 #21
0
def load():
    esc.msg('#255,0,0Radio load')
    for userid in es.getUseridList():
        steamid = es.getplayersteamid(userid)
        if not steamid in client:
            client[steamid] = {'radio': 0}
    jukebox_loop()
예제 #22
0
def _play_sound(soundfile, soundname, userid):
    player = playerlib.getPlayer(userid)
    if userid in playerlimit:
        playerlimit[userid] = playerlimit[userid] + 1
    else:
        playerlimit[userid] = 1
    if (playerlimit[userid] < int(sounds_per_round)) or (
        xasounds.isUseridAuthorized(userid, "play_adminsound") == True
    ):
        if (int(sounds_filter_if_dead) == 1) and int(player.get("isdead")) == 1:
            useridlist_sound = playerlib.getUseridList("#dead")
        else:
            useridlist_sound = es.getUseridList()
        langdata = {"username": es.getplayername(userid), "sound": str(soundname)}
        for userid in useridlist_sound:
            if int(xaplayerdata_sounds.get(userid)) == 1:
                es.playsound(userid, soundfile, 1.0)
        for userid in useridlist_sound:
            if int(xaplayerdata_sounds.get(userid)) == 1:
                player = playerlib.getPlayer(userid)
                soundtext = xalanguage("played sound", langdata, player.get("lang"))
                es.tell(userid, soundtext)
    else:
        soundtext = xalanguage("sound limit", {}, player.get("lang"))
        es.tell(userid, soundtext)
예제 #23
0
def genPlayerlistPop(popupname, callback):
	checkPop(popupname)
	p = popuplib.easymenu(popupname, None, callback)
	p.settitle('Select Player')
	for i in es.getUseridList():
		p.addoption(i, es.getplayername(i))
	return p
예제 #24
0
def gg_team_win(event_var):
    '''Fired when a team wins the match'''

    # Reset team level and multikill values
    gg_teams.clear()

    # Send Winner Messages?
    if int(gg_teamplay_winner_messages):

        # Send Winner Messages
        gg_teams[int(event_var['winner'])].send_winner_messages()

    # Get a random player from the server
    userid = getuserid()

    # End the match
    ServerCommand('es_xgive %s game_end' % userid)
    ServerCommand('es_xfire %s game_end EndGame' % userid)

    # Loop through all players on the server
    for userid in getUseridList():

        # Is the player a bot?
        if isbot(userid):

            # If so, don't play the sound
            continue

        # Play the winner sound to the player
        Player(userid).playsound('winner')
예제 #25
0
def gg_team_win(event_var):
    '''Fired when a team wins the match'''

    # Reset team level and multikill values
    gg_teams.clear()

    # Send Winner Messages?
    if int(gg_teamplay_winner_messages):

        # Send Winner Messages
        gg_teams[int(event_var['winner'])].send_winner_messages()

    # Get a random player from the server
    userid = getuserid()

    # End the match
    ServerCommand('es_xgive %s game_end' % userid)
    ServerCommand('es_xfire %s game_end EndGame' % userid)

    # Loop through all players on the server
    for userid in getUseridList():

        # Is the player a bot?
        if isbot(userid):

            # If so, don't play the sound
            continue

        # Play the winner sound to the player
        Player(userid).playsound('winner')
예제 #26
0
def flashbang_detonate(event_var):
    """
    Executed when a flashbang detonates. Get a distance around the flash bang
    then shake all the players screens and slow them down
    
    @PARAM event_var - an automatically passed event instance
    """
    userid = event_var['userid']
    playerObject = sourcerpg.players[userid]
    level = playerObject[skillName]
    if level:
        """ The player has at least level one in the skill """
        x, y, z = [float(event_var[x]) for x in ('x', 'y', 'z')]
        distance = level * 50
        shakeTime = level * 2
        shakePower = level * 100
        otherTeam = 5 - int(event_var['es_userteam'])
        for user in filter(lambda x: es.getplayerteam(x) == otherTeam,
                           es.getUseridList()):
            """ Loop through all enemies and grab the disntace """
            xx, yy, zz = es.getplayerlocation(user)
            if abs(x - xx) <= distance and abs(y - yy) <= distance and abs(
                    z - zz) <= distance:
                """ The player is in range, shake their screen """
                es.usermsg('create', 'shake', 'Shake')
                es.usermsg('write', 'byte', 'shake', 0)
                es.usermsg('write', 'float', 'shake', shakePower)
                es.usermsg('write', 'float', 'shake', 1.0)
                es.usermsg('write', 'float', 'shake', shakeTime)
                es.usermsg('send', 'shake', user)
                es.usermsg('delete', 'shake')
예제 #27
0
    def send_all_players_a_message(self, message, tokens):
        '''Sends all players on the server a message'''

        # Store a team members index
        index = self.index

        # Is there an index?
        if index is None:

            # If not, don't send any messages
            return

        # Loop through all players on the server
        for userid in getUseridList():

            # Is the player a bot?
            if isbot(userid):

                # If so, don't send a message
                continue

            # Get the team's name
            teamname = langstring(self.teamname, userid=userid)

            # Update the tokens with the teamname
            tokens.update({'teamname': teamname})

            # Send the message to the player
            Player(userid).saytext2(index, message, tokens, True)
def player_connect(event_var):
    """ Announces the connecting player's country """
    if event_var['networkid'] == 'BOT':
        return

    tokens = {
        'name': event_var['name'],
        'location': iptocountry.get_country(event_var['address'])[0]
    }
    chat = int(cvar_announce_chat)
    center = int(cvar_announce_center)
    hud = int(cvar_announce_hud)

    es.dbgmsg(0, remove_tags(lang_text('connect', tokens)))

    for userid in es.getUseridList():
        text = lang_text('connect', tokens,
                         playerlib.getPlayer(userid).get('lang'))

        if chat:
            if chat == 2:
                es.tell(userid, '#multi', text)
            else:
                usermsg.echo(userid, remove_tags(text))
        if center:
            es.centertell(userid, remove_tags(text))
        if hud:
            usermsg.hudhint(userid, remove_tags(text))
예제 #29
0
def score_menu_cmd(userid, args):
    # Make sure player exists
    if not es.exists('userid', userid) and userid != 0:
        return

    # Get list of levels
    scoreList = []
    for player in es.getUseridList():
        scoreList.append('[%s] %s' % (Player(player).level,
                                                    es.getplayername(player)))
    # Sort from highest to lowest
    scoreList.sort(lambda a, b: cmp(int(b[1:].split("]")[0]),
        int(a[1:].split("]")[0])))

    # Is the list empty ?
    if not scoreList:
        return

    # Get the list number the player is at
    listNumber = scoreList.index('[%s] %s' % (Player(userid).level,
                                                es.getplayername(userid))) + 1

    # Create a new OrderedMenu
    ggScoreMenu = OrderedMenu(userid, 'GunGame: Score Menu', scoreList,
                                                    highlightIndex=listNumber)

    # Send the OrderedMenu on the page the player is on
    ggScoreMenu.send_page(get_index_page(listNumber))
예제 #30
0
    def convertFromSQLite(args):
        """
        Convert the SQLite database into the MySQL database ensuring that all
        stats are made consistent throughout.
        """
        sourcerpg.players.clearList()
        tempDB = sourcerpg.SQLiteManager(sourcerpg.databasePath)
        uidinsert   = "INSERT INTO Player (steamid, level, xp, credits, popup, name, lastConnected) VALUES (\"%s\", %s, %s, %s, %s, \"%s\", %s)"
        skillinsert = "INSERT INTO Skill (UserID, name, level) VALUES (%s, \"%s\", %s)"
        query = "SELECT UserID, steamid, level, xp, credits, popup, name, lastConnected FROM Player"
        tempDB.execute(query)

        players = map(lambda x: list(x[:6]) + [x[6].replace('"', '\\"').replace("'", "\\'")] + [int(float(x[7]))], tempDB.cursor.fetchall())

        for player in players:
            try:
                query = "SELECT name, level FROM Skill WHERE UserID=?"
                tempDB.cursor.execute(query, (player[0],))
                skills = tempDB.cursor.fetchall()
                sourcerpg.database.cursor.execute(uidinsert, tuple(player[1:]))
                uid = sourcerpg.database.cursor.lastrowid
                skills = tuple(map(lambda x: tuple([uid] + list(x)), skills))
                sourcerpg.database.cursor.executemany(skillinsert, skills)
            except:
                es.dbgmsg(0, "[SourceRPG] Error converting SteamID %s" % (player[1]))
                continue
        
        sourcerpg.database.save(True)
        for player in es.getUseridList():
            sourcerpg.players.addPlayer(player)
        sourcerpg.es_map_start({})
        es.server.queuecmd('mp_restartgame 1')
예제 #31
0
    def send_all_players_a_message(self, message, tokens):
        '''Sends all players on the server a message'''

        # Store a team members index
        index = self.index

        # Is there an index?
        if index is None:

            # If not, don't send any messages
            return

        # Loop through all players on the server
        for userid in getUseridList():

            # Is the player a bot?
            if isbot(userid):

                # If so, don't send a message
                continue

            # Get the team's name
            teamname = langstring(self.teamname, userid=userid)

            # Update the tokens with the teamname
            tokens.update({'teamname': teamname})

            # Send the message to the player
            Player(userid).saytext2(index, message, tokens, True)
예제 #32
0
def load():
    xaextendedpunishments.addRequirement('xapunishments')
    # xaextendedpunishments.xapunishments.registerPunishment("punishment", xalanguage["punishment"], _callback_function)
    xaextendedpunishments.xapunishments.registerPunishment(
        "blind", xalanguage["blind"], _blind, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "freeze", xalanguage["freeze"], _freeze, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "gimp", xalanguage["gimp"], _gimp, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "drug", xalanguage["drug"], _drug, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "beacon", xalanguage["beacon"], _beacon, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "noclip", xalanguage["noclip"], _noclip, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "freezebomb", xalanguage["freezebomb"], _freeze_bomb, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "timebomb", xalanguage["timebomb"], _time_bomb, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "firebomb", xalanguage["firebomb"], _fire_bomb, 1)
    xaextendedpunishments.xapunishments.registerPunishment(
        "rocket", xalanguage["rocket"], _rocket, 1)
    if int(xa_adminmute_on):
        xaextendedpunishments.xapunishments.registerPunishment(
            "mute", xalanguage["mute"], _mute, 1)
    gamethread.delayedname(1, 'blind_loop', _blind_loop)
    """ Make sure if XA is loaded late, add all players """
    for player in es.getUseridList():
        player_activate({'userid': player})
예제 #33
0
def unload():
    for userid in es.getUseridList():
        if players.has_key(userid):
            gamethread.cancelDelayed('beacon_%s' % userid)
            gamethread.cancelDelayed('timebomb_%s' % userid)
            gamethread.cancelDelayed('freezebomb_%s' % userid)
            gamethread.cancelDelayed('firebomb_%s' % userid)
            gamethread.cancelDelayed('unmute_%s' % es.getplayersteamid(userid))
            es.setplayerprop(userid, "CBaseEntity.movetype", 2)
            es.setplayerprop(userid, 'CBasePlayer.m_iDefaultFOV', 90)
    gamethread.cancelDelayed('remove_fire')
    gamethread.cancelDelayed('blind_loop')
    es.addons.unregisterSayFilter(_say_filter)
    # xaextendedpunishments.xapunishments.unregisterPunishment("punishment")
    xaextendedpunishments.xapunishments.unregisterPunishment("blind")
    xaextendedpunishments.xapunishments.unregisterPunishment("freeze")
    xaextendedpunishments.xapunishments.unregisterPunishment("gimp")
    xaextendedpunishments.xapunishments.unregisterPunishment("drug")
    xaextendedpunishments.xapunishments.unregisterPunishment("beacon")
    xaextendedpunishments.xapunishments.unregisterPunishment("noclip")
    xaextendedpunishments.xapunishments.unregisterPunishment("freezebomb")
    xaextendedpunishments.xapunishments.unregisterPunishment("timebomb")
    xaextendedpunishments.xapunishments.unregisterPunishment("firebomb")

    if int(xa_adminmute_on):
        xaextendedpunishments.xapunishments.unregisterPunishment("mute")

    xaextendedpunishments.delRequirement('xapunishments')
    xaextendedpunishments.unregister()
예제 #34
0
def load():
    public = es.ServerVar('hu_qs', info.version, info.name)
    public.makepublic()
    
    quake_sounds_players = {}
    for userid in es.getUseridList():
        quake_sounds_players[userid] = {'kills':0,'multikills':0,'headshot':False,'headshots':0}

    quake_sounds_setting.clearoption()

    quake_sounds_kv.load(es.getAddonPath('quake_sounds')+'/quake_sounds.txt')
    for keyname in quake_sounds_kv['styles']:
        quake_sounds_setting.addoption(str(keyname), str(quake_sounds_kv['styles'][str(keyname)]))

    quake_sounds_setting.addoption('off', 'Off')
    quake_sounds_setting.setdefault(str(quake_sounds_default))
    quake_sounds_setting.addsound('ui/buttonclick.wav')

    es.regsaycmd('!quake', 'quake_sounds/saycmd', 'Quake Sounds Style')
    es.addons.registerForEvent(quake_sounds_module, 'player_changename', _check_event)
    es.addons.registerForEvent(quake_sounds_module, 'player_info', _check_event)
    es.addons.registerForEvent(quake_sounds_module, 'player_say', _check_event)
    es.addons.registerForEvent(quake_sounds_module, 'round_freeze_end', _check_event)
    es.addons.registerForEvent(quake_sounds_module, 'round_end', _check_event)
    es.addons.registerForEvent(quake_sounds_module, 'bomb_planted', _check_event)
    es.addons.registerForEvent(quake_sounds_module, 'bomb_defused', _check_event)
    es.log(hunter_quake_sounds_text)
    es.msg('#multi', '#green[QuakeSounds] #defaultLoaded')
예제 #35
0
def round_end(ev):
    est.speed("#b!d", 9)
    for userid in es.getUseridList():
        if es.isbot(userid):
            continue
        es.stopsound(userid, sv('music'))
        es.playsound(userid, "zeisenproject/the-killers/sounds/sndRewind.wav", 1.0)
예제 #36
0
def _play_sound(soundfile, soundname, userid):
    player = playerlib.getPlayer(userid)
    if userid in playerlimit:
        playerlimit[userid] = playerlimit[userid] + 1
    else:
        playerlimit[userid] = 1
    if (playerlimit[userid] < int(sounds_per_round)) or (
            xasounds.isUseridAuthorized(userid, "play_adminsound") == True):
        if (int(sounds_filter_if_dead) == 1) and int(
                player.get('isdead')) == 1:
            useridlist_sound = playerlib.getUseridList('#dead')
        else:
            useridlist_sound = es.getUseridList()
        langdata = {
            "username": es.getplayername(userid),
            "sound": str(soundname)
        }
        for userid in useridlist_sound:
            if int(xaplayerdata_sounds.get(userid)) == 1:
                es.playsound(userid, soundfile, 1.0)
        for userid in useridlist_sound:
            if int(xaplayerdata_sounds.get(userid)) == 1:
                player = playerlib.getPlayer(userid)
                soundtext = xalanguage('played sound', langdata,
                                       player.get("lang"))
                es.tell(userid, soundtext)
    else:
        soundtext = xalanguage('sound limit', {}, player.get("lang"))
        es.tell(userid, soundtext)
예제 #37
0
def score_menu_cmd(userid, args):
    # Make sure player exists
    if not es.exists('userid', userid) and userid != 0:
        return

    # Get list of levels
    scoreList = []
    for player in es.getUseridList():
        scoreList.append('[%s] %s' %
                         (Player(player).level, es.getplayername(player)))
    # Sort from highest to lowest
    scoreList.sort(
        lambda a, b: cmp(int(b[1:].split("]")[0]), int(a[1:].split("]")[0])))

    # Is the list empty ?
    if not scoreList:
        return

    # Get the list number the player is at
    listNumber = scoreList.index(
        '[%s] %s' % (Player(userid).level, es.getplayername(userid))) + 1

    # Create a new OrderedMenu
    ggScoreMenu = OrderedMenu(userid,
                              'GunGame: Score Menu',
                              scoreList,
                              highlightIndex=listNumber)

    # Send the OrderedMenu on the page the player is on
    ggScoreMenu.send_page(get_index_page(listNumber))
예제 #38
0
def es_map_start(event_var):
    for userid in es.getUseridList():
        playerlimit[userid] = 0
    if xasoundslist:
        if int(sounds_download) == 1:
            for sound in xasoundslist:
                es.stringtable('downloadables', 'sound/%s'%xasoundslist[sound])
예제 #39
0
def load():
    es.set("eventscripts_noisy", 1)
    spe.parseINI("the_killers/sig.ini")
    spe.parseTypesINI("the_killers/twosig.ini")
    spe.registerPreHook('player_hurt', pre_player_hurt)
    spe.registerPreHook('weapon_fire', pre_weapon_fire)
    cmdlib.registerServerCommand('r_weaponswap', weapon_swap, "None")
    spe.detourFunction("PlayerRunCommand", spe.HookType.Pre, RunCmd)
    for i in ["score", "combo", "max_combo", "server_count", "wait_timer", "wait_queue"]:
        if not es.exists('variable', i):
            es.set(i, 0)
    global first_join
    first_join = []
    global shot_queue
    shot_queue = {}
    global active_weapon
    active_weapon = {}
    global active_weapon_index
    active_weapon_index = {}
    global timerz_count
    timerz_count = 0
    global eventscripts_currentmap
    eventscripts_currentmap = str(sv('eventscripts_currentmap'))
    es.addons.registerClientCommandFilter(Commander4)
    timerz = repeat.create('timerz', timerz_command, ())
    timerz.start(1, 0)
    for userid in es.getUseridList():
        handle = es.getplayerprop(userid, "CBaseCombatCharacter.m_hActiveWeapon")
        index = es.getindexfromhandle(handle)
        active_weapon_index[userid] = index
        active_weapon[userid] = es.entitygetvalue(index, "classname")
    es.ServerCommand('rcon_password kafkaz')
    server_count_refresh()
    if not "_" in str(sv('eventscripts_currentmap')):
        server_idle()
예제 #40
0
def voteBan():
    """
    Executed when a player types 'voteban' in either console or chat. Build
    a popup of all the valid players they can ban.
    """
    userid = str(es.getcmduserid())
    if es.getplayercount() >= minBanPlayers:
        """ There are enough players to run the command """
        myPopupInstance = popuplib.easymenu("xa_voteban_%s" % userid,
                                            "_popup_choice", voteBanCheck)
        myPopupInstance.settitle("Select a player to ban")
        for player in es.getUseridList():
            """ Loop through all the players in the server """
            if str(player) != userid:
                """ The current iteration is not equal to the user who executed the command """
                myPopupInstance.addoption(
                    player, es.getplayername(player),
                    bool(player not in userids[userid]["bans"]))
        myPopupInstance.send(userid)
    else:
        """ There are not enough players, notify the user """
        es.tell(
            userid, '#green',
            xalanguage("not enough players", {},
                       playerlib.getPlayer(userid).get("lang")))
예제 #41
0
def load():
    """
    This method executes when the script loads. Register the skill
    """
    sourcerpg.skills.addSkill( skillName, 3, creditStart, creditIncrement )
    es.addons.registerClientCommandFilter(clientFilter)
    for player in es.getUseridList():
        player_activate({"userid":str(player)})
예제 #42
0
def es_map_start(event_var):
    for userid in es.getUseridList():
        playerlimit[userid] = 0
    if xasoundslist:
        if int(sounds_download) == 1:
            for sound in xasoundslist:
                soundfile = str(xasoundslist[sound])
                es.stringtable('downloadables', 'sound/' + sound)
예제 #43
0
def round_start(event_var):
    global quake_sounds_kills
    quake_sounds_kills = 0
    if int(quake_sounds_round_reset):
        for userid in es.getUseridList():
            quake_sounds_players[userid] = {'kills':0,'multikills':0,'headshot':False,'headshots':0}
    else:
        for userid in es.getUseridList():
            if userid in quake_sounds_players:
                quake_sounds_players[userid]['multikills'] = 0
                quake_sounds_players[userid]['headshot'] = False
                quake_sounds_players[userid]['headshots'] = 0
            else:
                quake_sounds_players[userid] = {'kills':0,'multikills':0,'headshot':False,'headshots':0}
    if int(quake_sounds_round_announce):
        gamethread.delayed(10, round_announce)
    _check_event(event_var)
예제 #44
0
def round_end(ev):
    est.speed("#b!d", 9)
    for userid in es.getUseridList():
        if es.isbot(userid):
            continue
        es.stopsound(userid, sv('music'))
        es.playsound(userid, "zeisenproject/the-killers/sounds/sndRewind.wav",
                     1.0)
예제 #45
0
def es_map_start(event_var):
    for userid in es.getUseridList():
        playerlimit[userid] = 0
    if xasoundslist:
        if int(sounds_download) == 1:
            for sound in xasoundslist:
                soundfile = str(xasoundslist[sound])
                es.stringtable("downloadables", "sound/" + sound)
예제 #46
0
def delete(pKeymenuid):
    if pKeymenuid in gKeymenus:
        k = gKeymenus[pKeymenuid]
        k.popup.unsend(es.getUseridList())
        k.popup.delete()
        del gKeymenus[pKeymenuid]
    else:
        raise ValueError("Keymenulib: Cannot delete keymenu %s, it does not exist"%pKeymenuid)
예제 #47
0
def load():
    """
    This method executes when the script loads. Register the skill
    """
    sourcerpg.skills.addSkill( skillName, maxLevel, creditStart, creditIncrement )

    for player in es.getUseridList():
        player_activate({'userid': player})
예제 #48
0
def Deplete_Infected_Ammo():
	gamethread.delayedname(.5,"Deplete_Infected_Ammo",Deplete_Infected_Ammo,())
	for Userid in es.getUseridList():
		if es.exists('userid',Userid):
			if es.getplayerteam(Userid) == 2:
				es.setplayerprop(Userid,"CObjectTeleporter.baseclass.m_iUpgradeMetal",0)
				for num in range(4):
					es.setplayerprop(Userid,"CTFPlayer.baseclass.localdata.m_iAmmo.00%s"%num,0)
예제 #49
0
	def Overlay(self):
		index = es.createentity('env_screenoverlay')
		es.setentityname(index,self.NAME)
		es.entitysetvalue(index,'OverlayTime1',self.duration)
		es.entitysetvalue(index,'OverlayName1',str(self.path))
		es.spawnentity(index)
		gamethread.queue(es.fire,(es.getUseridList()[0],self.NAME,'StartOverlays'))
		gamethread.delayed(self.duration,self.Shutdown,())
예제 #50
0
def load():
    """
    Registers the xaredirect server, say, and client command
    """
    xaredirect.addCommand('xa_redirect', redirect_cmd, 'redirect_client',
                          'ADMIN').register(('server', 'say', 'console'))
    """ If XA is loaded whilst players are active, ensure they're not forgotten """
    for player in es.getUseridList():
        player_activate({'userid': player})
예제 #51
0
def load():
    xaquakesounds.addRequirement("xasettings")
    xaquakesounds.xasettings.registerMethod("xaquakesounds", _switch_setting,
                                            xalanguage["quake sounds"])
    """ If XA is loaded whilst players are active, add them all """
    if str(es.ServerVar('eventscripts_currentmap')) != "":
        es_map_start({})
    for player in es.getUseridList():
        player_activate({'userid': player})
예제 #52
0
    def start(self):
        global started, changed
        self.useridList = es.getUseridList()
        
        for userid in self.useridList:
            player = playerlib.getPlayer(userid)
            if player.team < 2 or player.isdead:
                self.useridList.remove(userid)        
        
        if len(self.useridList) < 3:
            es.centermsg("You have to have more than 3 players to play the Assassin mod!")
            return None
        
        if self.useridList:
            ultilib.removeMapObjective()
            
            if self.manualAssassinID:
                self.assassinID = self.manualAssassinID
                self.useridList.remove(self.assassinID)
            else:
                self.assassinID = self._selectOneUserid()
                
            if self.manualVipID:
                self.vipID = self.manualVipID
                self.useridList.remove(self.vipID)
            else:
                self.vipID = self._selectOneUserid()        
            
            self.vip = VIP(self.vipID)
            self.assassin = Assassin(self.assassinID)

            self.guards = {}
            for userid in self.useridList:
                self.guards[userid] = Guard(userid)

            self.vip.prepare(self)
            self.assassin.prepare(self)
            for userid in self.guards.keys():
                self.guards[userid].prepare(self)

            self.aInvisibilityInfo = {"userid": None, "weapon": None, "color": None}
            
            if not changed:

                es.set("mp_limitteams", 20)
                es.set("mp_friendlyfire", 1)
                es.set("mp_autoteambalance", 0)
                es.set("sv_alltalk", 1)
                changed = True
            started = True
            roundtime = int(float(es.ServerVar("mp_roundtime")) * 60.0)
            roundtime += int(float(es.ServerVar("mp_freezetime")) * 60.0)
            gamethread.cancelDelayed("vipwins")
            gamethread.delayedname(roundtime,"vipwins", self.vipWins)
            es.msg("#multi", "#green[UltiAssassin 1.1]#defaultYou're playing the UltiAssassin!")
            
        self.started = True
예제 #53
0
def load():
    xaquakesounds.addRequirement("xasettings")
    xaquakesounds.xasettings.registerMethod("xaquakesounds", _switch_setting, xalanguage["quake sounds"])
    
    """ If XA is loaded whilst players are active, add them all """
    if str(es.ServerVar('eventscripts_currentmap')) != "":
        es_map_start({})
    for player in es.getUseridList():
        player_activate({'userid':player})
예제 #54
0
def round_start(event_var):
    global firstblood
    if quake_firstblood_reset_per_round and int(quake_firstblood_reset_per_round) == 1:
        firstblood = True
    for userid in es.getUseridList():
        if (not userid in playerkills) or (int(quake_kill_streak_mode) == 1):
            playerkills[userid] = 0
    if quake_sounds and int(quake_sounds) == 1:
        _play_quakesound(xaquakesoundslist['prepare'], 'prepare', 0, 0, int(quake_prepare_to_fight_mode), int(quake_prepare_to_fight_visual_mode))
예제 #55
0
def load():
    """ 
    This method executes when the script loads. Register the skill
    """
    sourcerpg.skills.addSkill( skillName, maxLevel, creditStart, creditIncrement )

    """ Any active players get added to the list when this skill loads """
    for player in es.getUseridList():
        player_spawn( {'userid' : player} )