Example #1
0
def changerace_successful(userid, race):
    if es.getplayerprop(userid, "CCSPlayer.baseclass.pl.deadflag") == 0:
        es.server.queuecmd("es wcs_dealdamage %s %s 9999" % (userid, userid))
    es.server.queuecmd("es wcs_saveplayer %s" % userid)
    player_race = es.keygetvalue("wcsuserdata", userid, "race")
    command_buffer = es.keygetvalue("wcsraces", player_race, "onchange")
    es.server.queuecmd("es_xset wcs_userid %s" % userid)
    es.server.queuecmd(command_buffer)
    es.server.queuecmd("es_keysetvalue \"wcsuserdata\" %s \"race\" %s" %
                       (userid, race))
    es.server.queuecmd("es wcs_keysetvalue  \"%s\" \"race\" %s" %
                       (es.getplayersteamid(userid), race))
    es.server.queuecmd("es_xset wcs_id \"%s\"" % es.getplayersteamid(userid))
    es.server.queuecmd("es_xdoblock wcs/wcsfunctions/wcs_playercheck")
    es.server.queuecmd("es wcs_getplayer %s" % userid)
    es.server.queuecmd(
        "es_keysetvalue \"wcsuserdata\" %s \"skillcheck\" \"1\"" % userid)
    es.tell(
        userid, "#multi", "#lightgreenYou changed your race to#green " +
        es.keygetvalue("wcsraces", race, "name"))
    old_name = es.keygetvalue("wcsraces", player_race, "name")
    new_name = es.keygetvalue("wcsraces", race, "name")
    es.event('initialize', "wcs_changerace")
    es.event('setint', "wcs_changerace", "userid", int(userid))
    es.event('setstring', "wcs_changerace", "oldrace", str(old_name))
    es.event('setstring', "wcs_changerace", "newrace", str(new_namead))
    es.event('fire', "wcs_changerace")
Example #2
0
def ztricks_trigger(e):
    global players

    try:
	userid = int(e['userid'])
	id = int(e['trigger_id'])
	name = e['trigger_name']
	vel = float(e['player_velocity'])
	mph = float(e['player_mph'])
	ang = e['player_angle']
	x = float(e['player_x'])
	y = float(e['player_y'])
	z = float(e['player_z'])

	# Store these coordinates
    	players[userid]['line_path'].append([x,y,z])

	if players[userid]['show_debug'] == 1:
	    es.tell(userid,"touched trigger name=%s id=%s mph=%.0f ang=%s" % (name, id, mph, ang))
	
	# Draw this line to last
	if players[userid]['show_line'] == 1:
	    path = players[userid]['line_path']
	    if len(path) > 1: drawline(path[-1], path[-2])

    except:
	print_exception()
Example #3
0
def restrict(userid, args):
    if args[0].lower() == "buy":
        attemptBuy = args[1].lower()
        if attemptBuy in restrictedList:
            es.tell(userid, "#multi","#green[UltiRestrict] #default%s is restricted!" % attemptBuy)
            return False
    return True
Example #4
0
def item_pickup(event_var):
    pickingup = event_var["item"]
    if str(pickingup) in restrictedList:
        weapon = "weapon_%s" % pickingup
        es.sexec(event_var["userid"], "drop")
        es.server.queuecmd("es_xremove %s" % weapon)
        es.tell(event_var["userid"], "#multi", "#green[UltiRestrict] #default%s is restricted!" % pickingup)
Example #5
0
 def _Message(self, userid, votename, optionid, option):
     tokens = {} 
     tokens['username'] = es.getplayername(userid) 
     tokens['option']   = str(option) 
     for player in playerlib.getPlayerList(): 
         es.tell(int(player),'#multi', xalanguage("vote message", tokens, player.get("lang")))
     self.display.ChangeDict(option, 1)
def power():
    global hero
    userid = es.getcmduserid()
    if not superhero.hasHero(userid, hero['name']):
        return

    ts = time.time()
    if not userid in hero['last_used']:
        hero['last_used'][userid] = (ts - hero['cooldown'])

    if not ts > hero['last_used'][userid]:
        cts = (hero['last_used'][userid] - ts + 1)
        if cts > 2:
            ext = 's'
        else:
            ext = ''
        es.tell(userid, '#green',
                '[%s] Cooldown: %d second%s left.' % (hero['name'], cts, ext))
        return

    es.tell(userid, '#green', '[%s] Power: Activated.' % (hero['name']))
    hero['last_used'][userid] = (ts + hero['cooldown'])
    hero['target'][userid] = vecmath.Vector(getViewCoords(userid))

    TRPLoop(userid)
Example #7
0
def voteBanCheck(userid, choice, popupid):
    """
    Executed when a player has chosen another to vote ban. Get the steamid
    of the victim, and check for the amount of bans needed. Ban the player
    if their are enough votes
    """
    userid = str(userid)
    if not es.exists('userid', choice):
        """ Something went wrong, the user no longer exists, return early """
        return
    steamid = es.getplayersteamid(choice)
    if userid not in userids or steamid not in targets:
        """ One of the instances weren't avaiable, return early """
        return
        
    xavotekickban.logging.log("has voted to ban user %s [%s]" % (es.getplayername(choice), es.getplayersteamid(choice) ), userid )
    userids[userid]["bans"].append(choice)
    targets[steamid]["bans"] += 1
    bansRemaining = getBansRemaining(steamid)
    if bansRemaining == 0:
        """ There has been enough kicks passed, kick the player. """
        removePlayer(steamid)
        es.server.queuecmd('banid %s %s;writeid;kickid %s "You have been banned"' % (banTime, choice, choice) )
        tokens = {}
        tokens['name'] = es.getplayername(choice)
        for player in playerlib.getPlayerList('#all'):
            es.tell(int(player), '#multi', xalanguage('player banned', tokens, player.get("lang") ) )
        xavotekickban.logging.log("has been vote banned", choice)
    else:
        tokens = {}
        tokens['name']   = es.getplayername(choice)
        tokens['amount'] = bansRemaining
        for player in playerlib.getPlayerList("#all"):
            es.tell( int(player), '#multi', xalanguage('player votes banned', tokens, player.get("lang") ) )
        xavotekickban.logging.log("needs %s more votes till they are banned" % bansRemaining, choice)
Example #8
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)
Example #9
0
def _groupsmain_select(userid,choice,popupid):
    es.dbgmsg(1,'*****_groupsmain_select')
    global groupslist
    if choice != 3:
        groups = db.query("SELECT GroupName FROM Groups WHERE GroupName!='UnidentifiedPlayers' and GroupName!='IdentifiedPlayers';")
        if groups:
            if choice == 1:
                groupslist = popuplib.easymenu('groupslist', None, _groupusers_list)
                for group in groups:
                    es.dbgmsg(1,'*****group=%s' %group)
                    group = utfcode(group[0])
                    groupslist.addoption(group,group)
                groupslist.settitle(lang['select for users'])   
            if choice == 2:
                groupslist = popuplib.easymenu('groupslist', None, _groupcaps_list)
                for group in groups:
                    es.dbgmsg(1,'*****group=%s' %group)
                    group = utfcode(group[0])
                    groupslist.addoption(group,group)
                groupslist.settitle(lang['select for caps'])
            if choice == 4:
                groupslist = popuplib.easymenu('groupslist', None, _remove_group)
                for group in groups:
                    es.dbgmsg(1,'*****group=%s' %group)
                    group = utfcode(group[0])
                    groupslist.addoption(group,group)
                groupslist.settitle(lang['select remove group'])
            groupslist.send(userid)
        else:
            es.tell(userid, '#multi', prefix + lang('no groups'))    
    if choice == 3:
        _newgroup_handle(userid)
Example #10
0
def teleportPlayerToPlayer(userid, choice, popupid):
    target, recipient = choice
    if es.getplayerprop(target, 'CBasePlayer.pl.deadflag') or es.getplayerprop(
            recipient, 'CBasePlayer.pl.deadflag'):
        es.tell(
            userid,
            xalanguage('one player died', {},
                       playerlib.getPlayer(userid).get("lang")))
        return

    if not es.exists('userid', target) or not es.exists('userid', recipient):
        """ One of the player's doesn't exists... Return early and break the function """
        return
    x, y, z = es.getplayerlocation(recipient)
    z += 100
    es.server.queuecmd('es_xsetpos %s %s %s %s' % (target, x, y, z))
    if not int(xa_anonymous):
        args = {}
        args["admin"] = es.getplayername(userid)
        args["target"] = es.getplayername(target)
        args["recipient"] = es.getplayername(recipient)
        for player in playerlib.getPlayerList("#all"):
            es.tell(
                int(player),
                xalanguage("player sent to player", args, player.get("lang")))
    xateleport.logging.log(
        "has teleported user %s [%s] to user %s [%s]" %
        (es.getplayername(target), es.getplayersteamid(target),
         es.getplayername(recipient), es.getplayersteamid(recipient)), userid,
        True)
Example #11
0
def display_feedback(int_cmd_userid, str_text, dict_tokens):
    """Displays command feedback to the player or console"""
    if int_cmd_userid:
        es.tell(int_cmd_userid, func_lang_text(str_text, dict_tokens, playerlib.getPlayer(int_cmd_userid).get('lang')))

    else:
        es.dbgmsg(0, func_lang_text(str_text, dict_tokens))
def power():
    userid = str(es.getcmduserid())
    player = playerlib.getPlayer(userid)
    if not playerlib.getPlayer(userid).isdead:
        if int(time.time()) >= int(gusers[userid]['nc_cooldown']):
            es.server.queuecmd('es_xsetplayerprop %s "CBaseEntity.movetype" 8' % userid)
            if not 'speed' in gusers[userid]: 
                gusers[userid]['speed'] = 1.0
            player.set("speed", 1.0)
            gusers[userid]['nc_cooldown'] = int(time.time()) + 10
            es.centertell(userid,'Noclip activated, do not get Stuck!')
            es.tell(userid,'#multi','#green[SH]#lightgreen Nightcrawler is partially blinded. You now are aswell.')
            gusers[userid]['crawl'] = 1
            fade(userid, 1, 0.5, 2.8, 0, 0, 0, 254)
            speed_set(userid)
            #es.server.cmd('ezrestrict %s #all' % userid)
            #es.server.cmd('ezrestrict_removeidle #all')
            #es.server.cmd('ezunrestrict %s knife' % userid)
            gamethread.delayed(0.1, es.server.queuecmd, 'es_xgive %s weapon_knife' % userid)
            es.delayed(1,'es_centertell %s 6 seconds left...' % userid)
            es.delayed(2,'es_centertell %s 5 seconds left...' % userid)
            es.delayed(3,'es_centertell %s 4 seconds left...' % userid)
            es.delayed(4,'es_centertell %s 3 seconds left...' % userid)
            es.delayed(5,'es_centertell %s 2 seconds left...' % userid)
            es.delayed(6,'es_centertell %s 1 seconds left...' % userid)
            gamethread.delayed(7,undo,(player))
        else:
            es.tell(userid,'#multi','#green[SH]#lightgreen Cannot activate Nightcrawler #green',int(gusers[userid]['nc_cooldown'])-int(time.time()),'#lightgreenseconds left')
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")))
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))
def getRank(es_player=None):
    # Tell Player their Current Rank
    if not es_player:
        es_player = es.getcmduserid()
    steamid = es.getplayersteamid(es_player)
    steam_64 = str(convertSteamIDToCommunityID(steamid))
    es.tell(es_player, leetcoin_client.getPlayerRank(steam_64))
Example #16
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)
Example #17
0
def whisper(user_ID, text, index=None):
    """Send an individual player a message that only they can see.

    Arguments:
    user_ID - The user ID to send the text to.
    text - The text to whisper.
    index (Keyword Default - None) - The index to use to get the player's
    teamcolour (if relevant). In this instance, if no index is passed, it will
    be dynamically obtained using the user_ID.

    """
    formatted_text = _format_text(text)
    if len(_format_text(text, {_TEAMCOLOUR: ""})) != len(text):
        # In which case, use usermsg's SayText2.
        name = "_whisper"
        es.usermsg("create", name, "SayText2")
        if index is None:
            index = players.Player(user_ID).index
        es.usermsg("write", "byte", name, index)
        es.usermsg("write", "byte", name, 0)
        es.usermsg("write", "string", name, formatted_text)
        es.usermsg("send", name, user_ID)
        es.usermsg("delete", name)
    else:
        es.tell(user_ID, formatted_text)
Example #18
0
def sh_givexp(userid, amount, reason):
    userid = str(userid)
    steamid = es.getplayersteamid(userid)
    if steamid == 'BOT':
        return
    reason = str(reason)
    amount = int(amount)
    pid, plevel, pxp = cursor.execute(
        'SELECT id, level, xp FROM users WHERE id=?', (steamid, )).fetchone()
    if plevel < int(es.ServerVar('max_level')):
        xp_next_level = int(es.ServerVar('xp_next_level'))
        xp_multi = float(es.ServerVar('xp_multi'))
        #xp_grenze = ((plevel + 1)*xp_next_level)*xp_multi
        xp_grenze = int((plevel * plevel) * xp_next_level * xp_multi)
        xp = amount + int(pxp)
        if int(xp) >= int(xp_grenze):
            # The player is above max xp
            cursor.execute('UPDATE users SET xp=? WHERE id=?',
                           ((xp), getID(userid)))
            sh_levelup(userid, 1)
        else:
            cursor.execute('UPDATE users SET xp=? WHERE id=?',
                           ((xp), getID(userid)))
        # Show the player's current level XP
        xp_msg = langlib.Strings(
            es.getAddonPath('superhero') + '/languages/xp_msg.ini')
        global popup_language
        tokens = {}
        tokens['amount'] = amount
        es.tell(userid, '#multi',
                xp_msg('xp_gain', tokens, lang=str(popup_language)), reason)
        es.server.cmd('es_xsexec %s say /showxp' % userid)
        connection.commit()
def sh_givexp(userid,amount,reason):
    userid = str(userid)
    steamid = es.getplayersteamid(userid)
    if steamid == 'BOT':
        return
    reason = str(reason)
    amount = int(amount)
    pid, plevel, pxp = cursor.execute('SELECT id, level, xp FROM users WHERE id=?', (steamid,)).fetchone()
    if plevel < int(es.ServerVar('max_level')):
        xp_next_level = int(es.ServerVar('xp_next_level'))
        xp_multi = float(es.ServerVar('xp_multi'))
        #xp_grenze = ((plevel + 1)*xp_next_level)*xp_multi
        xp_grenze = int((plevel*plevel)*xp_next_level*xp_multi)
        xp = amount + int(pxp)
        if int(xp) >= int(xp_grenze):
            # The player is above max xp
            cursor.execute('UPDATE users SET xp=? WHERE id=?', ((xp), getID(userid)))
            sh_levelup(userid,1)
        else:
            cursor.execute('UPDATE users SET xp=? WHERE id=?', ((xp), getID(userid)))
        # Show the player's current level XP
        xp_msg = langlib.Strings(es.getAddonPath('superhero') + '/languages/xp_msg.ini')
        global popup_language
        tokens = {}
        tokens['amount'] = amount
        es.tell(userid,'#multi',xp_msg('xp_gain',tokens,lang=str(popup_language)),reason)
        es.server.cmd('es_xsexec %s say /showxp' % userid)
        connection.commit()
Example #20
0
   def execute(self, args):
      """
      When told to execute the function we need to pass the userid of the player who used the command
      as well as the command's arguments. We also need to determine if the player is authorized to
      use the command.
      """
      userid = es.getcmduserid()
      # No auth? No fuss.
      if not self.auth_capability is None:
         # Check whether the userid is authorized
         is_authed = services.use('auth').isUseridAuthorized(userid, self.auth_capability)
         if not is_authed:
            # If a callback has been specified for auth failure then execute that function
            if self.auth_fail_callback:
               if callable(self.auth_fail_callback):
                  self.auth_fail_callback(userid, args)
               else:
                  es.doblock(self.auth_fail_callback)
            # We have yet to inform the player they aren't authorized so we need to do it
            else:
               es.tell(userid, 'You are not authorized to use the ' + self.name + ' command.')
            return

      if callable(self.callback):
         self.callback(userid, args)
      else:
         es.server.queuecmd('es_xdoblock ' + self.callback)
Example #21
0
def tell(userid, message, options = {}, tellMessage = True):
	""" Just a simple wrapper to send a multi language text or return it if tellMessage is False """
	message = text(message, options, playerlib.getPlayer(userid).get("lang") )
	if tellMessage:
		es.tell(userid, '#multi', '#green[Surf Timer] #default- #lightgreen%s' % message)
	else:
		return message
 def mute(self, userid, adminid, args=None):
     userid = int(userid)
     steamid = es.getplayersteamid(userid)
     if userid in self.muted:
         self.muted.remove(userid)
         self.steamids.remove(steamid)
         status = 'unmuted'
         if not bool(self.muted):
             es.addons.unregisterTickListener(self._tickListener)
             self.tickStatus = self.UNREGISTERED
     else:
         if not bool(self.muted):
             es.addons.registerTickListener(self._tickListener)
             self.tickStatus = self.REGISTERED
         self.steamids.add(steamid)
         self.muted.add(userid)
         status = 'muted'
     if str(xa_adminmute_anonymous) == '0':
         tokens = {}
         tokens['admin'] = es.getplayername(adminid)
         tokens['user'] = es.getplayername(userid)
         for player in playerlib.getPlayerList('#human'):
             tokens['state'] = xalanguage(status, lang=player.get("lang"))
             es.tell(int(player), '#multi',
                     xalanguage('admin state', tokens, player.get("lang")))
def help(es_player=None):
    # Tell Player the help options
    if not es_player:
        es_player = es.getcmduserid()
    steamid = es.getplayersteamid(es_player)
    steam_64 = str(convertSteamIDToCommunityID(steamid))
    es.tell(es_player, "Available commands are:  /balance /rank")
Example #24
0
   def execute(self, args):
      """
      When told to execute the function we need to pass the userid of the player who used the command
      as well as the command's arguments. We also need to determine if the player is authorized to
      use the command.
      """
      userid = es.getcmduserid()
      # No auth? No fuss.
      if not self.auth_capability is None:
         # Check whether the userid is authorized
         is_authed = services.use('auth').isUseridAuthorized(userid, self.auth_capability)
         if not is_authed:
            # If a callback has been specified for auth failure then execute that function
            if self.auth_fail_callback:
               if isinstance(self.auth_fail_callback, collections.Callable):
                  self.auth_fail_callback(userid, args)
               else:
                  es.doblock(self.auth_fail_callback)
            # We have yet to inform the player they aren't authorized so we need to do it
            else:
               es.tell(userid, 'You are not authorized to use the ' + self.name + ' command.')
            return

      if isinstance(self.callback, collections.Callable):
         self.callback(userid, args)
      else:
         es.server.queuecmd('es_xdoblock ' + self.callback)
Example #25
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)
def show_nextmap():
    userid = es.getcmduserid()
    if str(nextmapvar) != '':
        nextmap = str(nextmapvar)
    else:
        nextmap = gMapCycle[gCurrentMap+1]
    es.tell(userid,'#multi','#green[XA] #default',xalanguage('show next map',{'mapname':nextmap},playerlib.getPlayer(userid).get('lang')))
Example #27
0
def player_death(event_var):
  if not es.isbot(event_var['userid']):
    if teachAdmins == 1:
      # This tells admins every time they die how to ban a player
      # This is to help them learn the command
      if isMember(event_var['es_steamid']):
        es.tell(event_var['userid'], '#multi', '#greenType the following in say to ban: #default!banmenu')
Example #28
0
def _run_bomb(tick):
    if tick.isdigit():
        soundtext = '%s sec'%tick
    elif tick == 'P':
        soundtext = 'Bomb Planted'
    elif tick == 'D':
        soundtext = 'Bomb Defused'
    elif tick == 'E':
        soundtext = 'Bomb Exploded'
    if 'command_%s'%tick in bomb_timer_language.keys():
        for commandname in bomb_timer_language['command_%s'%tick].keys():
            es.server.queuecmd(bomb_timer_language['command_%s'%tick][commandname].strip())
    for userid in playerlib.getUseridList('#human'):
        if bomb_timer_setting.get('display', userid):
            if int(bomb_timer_middle_screen) == 1:
                usermsg.hudhint(userid, soundtext)
            elif int(bomb_timer_middle_screen) == 2:
                usermsg.centermsg(userid, soundtext)
        if bomb_timer_setting.get('text', userid):
            if 'text_%s'%tick in bomb_timer_language.keys():
                es.tell(userid, '#multi', bomb_timer_language('text_%s'%tick, {}, playerlib.getPlayer(userid).get('lang')))
        if bomb_timer_setting.get('sound', userid):
            if int(es.getplayerteam(userid)) < 2:
                keyname = 'spec'
            elif int(es.getplayerteam(userid)) == 2:
                keyname = 't'
            elif int(es.getplayerteam(userid)) == 3:
                keyname = 'ct'
            if 'sound_%s'%tick in bomb_timer_language.keys():
                es.playsound(userid, bomb_timer_language['sound_%s'%tick][keyname], 1.0)
Example #29
0
def banReasonList():
  global badAccess
  # Get the userid of the person calling this menu
  playerid = es.getcmduserid()
  
  if es.exists('keygroup', 'playerlist'):
    es.server.queuecmd('es_xkeygroupdelete playerlist')
  es.server.queuecmd('es_xcreateplayerlist playerlist')
  
  # Member check only needs to be performed on this menu
  if isMember(es.getplayersteamid(playerid)):
    if es.exists('keygroup', 'GlobalBan_Reason'):
      # Open the keygroup that contains all reason codes
      es.keygroupdelete('GlobalBan_Reason')
    es.keygroupload('GlobalBan_Reason', '|GlobalBan')

    # Create keymenu called banReasonMenu for user to select from
    banReasonMenu = keymenulib.create("banReasonMenu", "selectedBanReason", banLengthList, "GlobalBan_Reason", "#keyvalue reasonText", "#key", "Ban Reason List")
    banReasonMenu.send(playerid)
  else:
    es.tell(playerid, '#green', 'You are not an admin!')
    # Increment the number of attempts
    badAccess[es.getplayersteamid(playerid)] = int(badAccess[es.getplayersteamid(playerid)]) + 1
    if int(badAccess[es.getplayersteamid(playerid)]) > 4:
      # Remove the player from the badAccess dictionary
      if badAccess.has_key(event_var['es_steamid']):
        del badAccess[es.getplayersteamid(playerid)]
      # Kick the player
      es.server.queuecmd('kickid ' + str(playerid) + ' You were kicked for attempting to use an admin command');
def clearpowers(userid, args):
    userid = str(userid)
    steamid = es.getplayersteamid(userid)
    global popup_language
    drop_msg = langlib.Strings(es.getAddonPath("superhero/languages/drop_msg.ini"))
    if int(es.ServerVar('drop_alive')) == 0:
        if int(playerlib.getPlayer(userid).isdead) == 0:
            es.tell(userid,'#multi',drop_msg('drop_alive',lang=str(popup_language)))
            return
    pid, punspent, pheroes, ppower1, ppower2, ppower3 = cursor.execute('SELECT id, unspent, heroes, power1, power2, power3 FROM users WHERE id=?', (steamid,)).fetchone()
    heroes = pheroes
    heroes = heroes.split(',')
    counter = 0
    for hero in heroes:
        if hero != '0':
            cursor.execute('UPDATE users SET unspent=(unspent + 1) WHERE id=?', (steamid,))
            if ppower1 == hero:
                cursor.execute('UPDATE users SET power1=\'0\' WHERE id=?', (steamid,))
            if ppower2 == hero:
                cursor.execute('UPDATE users SET power2=\'0\' WHERE id=?', (steamid,))
            if ppower3 == hero:
                cursor.execute('UPDATE users SET power3=\'0\' WHERE id=?', (steamid,))
            counter += 1
    cursor.execute('UPDATE users SET heroes=\'0\', powerx=\'0\' WHERE id=?', (steamid,))
    connection.commit()
    other_msg = langlib.Strings(es.getAddonPath("superhero") + "/languages/other_msg.ini")
    tokens = {}
    tokens['counter'] = counter
    es.tell(userid,'#multi',other_msg('other_cleared',tokens,lang=str(popup_language)))
Example #31
0
def _cc_filter(userid, args):
    """Eats the client command if the player tries to buy more grenades than allowed."""
    global dict_players
    if not args:
        return True
    if args[0].lower() == 'buy' and len(args) > 1:
        item = args[1].lower().replace('weapon_', '')
        if dict_grenade_limits.has_key(item):
            count = dict_players[userid][item] = dict_players[userid][item] + 1
            if count > dict_grenade_limits[item] and not xanadespam.isUseridAuthorized(userid, 'immune_nadespam'):
                player = playerlib.getPlayer(userid)
                player_lang = player.get('lang')
                es.tell(userid, func_lang_text('limit %s' % item, {}, player_lang))

                if int(punish_strip):
                    es.server.queuecmd('es_xfire %s player_weaponstrip kill' % int_userid)
                    es.server.queuecmd('es_xgive %s player_weaponstrip' % int_userid)
                    es.server.queuecmd('es_xfire %s player_weaponstrip strip' % int_userid)

                if int(punish_cash):
                    player.set('cash', 0)

                if int(punish_slay):
                    player.kill()

                if int(punish_kick):
                    player.kick(func_lang_text('kick', {}, player_lang))

                return False
    return True
def _user_groups(userid, choice, popupid):
    es.dbgmsg(1, '*****_user_groups')
    guser = utfcode(es.ServerVar('_puser'))
    if int(choice) == 1:
        groups = db.query(
            "SELECT GroupName FROM vwPlayersGroups  WHERE Name='%s'" % guser)
        if groups:
            usergroups = popuplib.easymenu('usergroups', None,
                                           _groupuser_remove)
            for group in groups:
                usergroups.addoption((guser, group[0]), group[0])
            usergroups.settitle(lang('drop user from group'))
        else:
            es.tell(
                userid, '#multi', prefix + '#lightgreen' + guser + '#default' +
                lang('not in groups'))
    elif int(choice) == 2:
        es.dbgmsg(1, '*****add user to group')
        groups = db.query(
            "SELECT GroupName FROM Groups WHERE GId NOT IN (SELECT GId FROM PlayersGroups WHERE UId=(SELECT Uid FROM Players WHERE Name='%s') AND (SELECT GId FROM Groups WHERE GId IN (SELECT GId FROM PlayersGroups))) AND GroupName!='UnidentifiedPlayers' AND GroupName!='IdentifiedPlayers'"
            % guser)
        if groups:
            usergroups = popuplib.easymenu('usergroups', None, _groupuser_add)
            for group in groups:
                usergroups.addoption((guser, group[0]), group[0])
            usergroups.settitle(lang('add user to group'))
        else:
            es.tell(
                userid, '#multi', prefix + '#lightgreen' + guser + '#default' +
                lang('in all groups'))
    if groups:
        usergroups.send(userid)
def Unblind(userid):
    userid = str(userid)
    jub[userid] = 0
    es.tell(
        userid, '#multi',
        '#green[SH]#lightgreen Jubilee protection has ended, now you are vulnerable to flashes'
    )
Example #34
0
 def _Message(self, userid, votename, optionid, option):
     tokens = {}
     tokens['username'] = es.getplayername(userid)
     tokens['option'] = str(option)
     for player in playerlib.getPlayerList():
         es.tell(int(player), '#multi',
                 xalanguage("vote message", tokens, player.get("lang")))
     self.display.ChangeDict(option, 1)
def shfilter(userid, args):
    userid = str(userid)
    if args[0].lower() == 'buy':
        if args[1].lower() == 'vesthelm':
            if superhero.hasHero(userid, 'Superman'):
                es.tell(userid, '#multi', '#green You already have armor!')
                return False
    return True
Example #36
0
def tell(userid, message, options={}, tellMessage=True):
    """ Just a simple wrapper to send a multi language text or return it if tellMessage is False """
    message = text(message, options, playerlib.getPlayer(userid).get("lang"))
    if tellMessage:
        es.tell(userid, '#multi',
                '#green[Surf Timer] #default- #lightgreen%s' % message)
    else:
        return message
Example #37
0
def select(userid, choice, popupid):
    type = xavictimstats_menu[choice]
    player = PlayerList[str(userid)]
    userlang = player.lang
    msg = 'Changed to' if choice != player.setting else 'Left as'
    es.tell(userid,'#multi',xalang(msg,{'setting':type},userlang))
    if choice != player.setting:
        player.set(choice)
def shfilter(userid, args):
    userid = str(userid) 
    if args[0].lower() == 'buy':
        if args[1].lower() == 'vesthelm':
            if superhero.hasHero(userid,'Superman'):
                es.tell(userid,'#multi','#green You already have armor!')
                return False 
    return True  
Example #39
0
def select(userid, choice, popupid):
    type = xavictimstats_menu[choice]
    player = PlayerList[str(userid)]
    userlang = player.lang
    msg = 'Changed to' if choice != player.setting else 'Left as'
    es.tell(userid, '#multi', xalang(msg, {'setting': type}, userlang))
    if choice != player.setting:
        player.set(choice)
Example #40
0
def _punishment_slay(userid, adminid, args, force):
    if str(xa_adminslay_anonymous) == '0' and not force:
        tokens = {}
        tokens['admin']   = es.getplayername(adminid)
        tokens['user']    = es.getplayername(userid)
        for user in playerlib.getPlayerList():
            es.tell(int(userid), xalanguage("admin slay", tokens, user.get("lang")))
    player = playerlib.getPlayer(userid)
    player.kill()
def showxp(userid, args): # Cmdlib syntax
    # Get the player's level and XP
    plevel, pxp = cursor.execute('SELECT level, xp FROM users WHERE id=?', (getID(userid),)).fetchone()
    # XP required for next level
    xp_next_level = int(es.ServerVar('xp_next_level'))
    xp_multi = float(es.ServerVar('xp_multi'))
    next_level_xp = int((plevel*plevel)*xp_next_level*xp_multi)
    # Send text
    es.tell(userid, '#multi', '#green[SH] Level #lightgreen%s - %s / %s XP' % (plevel, int(pxp), int(next_level_xp)))
def power():
    userid = str(es.getcmduserid())
    player = playerlib.getPlayer(userid)
    if not playerlib.getPlayer(userid).isdead:
        if jub[userid] < MAX_POW:
            es.tell(userid, '#multi', '#green[SH]#lightgreen Jubilee pink shades now protect you from flashbangs')
            fade(userid, 0, 5, 5, 64, 0, 64, 130)
            gamethread.delayed(12, Unblind, userid)
            jub[userid] += 1
Example #43
0
def _switch_setting(userid):
    if int(xaplayerdata_quakesounds.get(userid)) == 1:
        xaplayerdata_quakesounds.set(userid, 0)
        player = playerlib.getPlayer(userid)
        es.tell(userid, xalanguage('turn off', {}, player.get("lang")))
    else:
        xaplayerdata_quakesounds.set(userid, 1)
        player = playerlib.getPlayer(userid)
        es.tell(userid, xalanguage('turn on', {}, player.get("lang")))
Example #44
0
 def announceRestrictedPickup(self, weapon, lastgive=-1):
    """
    Announces to the player the weapon is restricted
    """
    announce = int(cvar_announce)
    if announce == 2:
       es.tell(self.userid, '#multi', lang_text('restricted pick up', {'weapon':weapon}, playerlib.getPlayer(self.userid).get('lang')))
    elif announce:
       es.cexec(self.userid, 'echo ' + self.__removeTags(lang_text('restricted pick up', {'weapon':weapon}, playerlib.getPlayer(self.userid).get('lang'))))
Example #45
0
def _switch_setting(userid):
    if int(xaplayerdata_quakesounds.get(userid)) == 1:
        xaplayerdata_quakesounds.set(userid, 0)
        player = playerlib.getPlayer(userid)
        es.tell(userid, xalanguage('turn off', {}, player.get("lang")))
    else:
        xaplayerdata_quakesounds.set(userid, 1)
        player = playerlib.getPlayer(userid)
        es.tell(userid, xalanguage('turn on', {}, player.get("lang")))
def mapmenu_handler(userid, choice, popupname):
    if gActions[userid] == "changemap":
        es.server.cmd("changelevel " + choice)
    elif gActions[userid] == "setnextmap":
        nextmapvar.set(choice)
        if str(xa_announce_setnextmap) == "1":
            for player in playerlib.getPlayerList():
                es.tell(player.userid, xalanguage("new next map", {"mapname": choice}, player.get("lang")))
    del gActions[userid]
Example #47
0
 def _Win(self, popupid, optionid, choice, winner_votes, winner_percent, total_votes, was_tied, was_canceled):
     self.display.Stop()
     es.cexec_all('playgamesound', str(vote_end_sound) )
     if not was_tied or was_canceled:
         if choice != "0" and winner_votes:
             if self.option and self.options[choice]['winner']:
                 if isinstance(self.option, str):
                     es.server.cmd(self.option)
                 elif callable(self.option):
                     self.params = {}
                     self.params['winner']      = choice
                     self.params['votes']       = winner_votes
                     self.params['percent']     = winner_percent
                     self.params['total votes'] = total_votes
                     self.option(self.params)
             tokens = {}
             tokens['winner']     = choice 
             tokens['votes']      = winner_votes 
             tokens['totalvotes'] = total_votes
             tokens['percent']    = winner_percent
             
             for player in playerlib.getPlayerList("#human"): 
                 es.tell(int(player),'#multi',xalanguage("vote win",tokens, player.get("lang")))
         else:
             for player in playerlib.getPlayerList("#human"): 
                 es.tell(int(player),'#green',xalanguage("vote no voters", {}, player.get("lang")))
          
     elif was_tied and not was_canceled:
         for player in playerlib.getPlayerList("#human"): 
             es.tell(int(player),'#green',xalanguage("vote tie", player.get("lang")))
         possibilities = []
         maxAmount = 0
         for possibility in self.display.SortDict():
             amount = self.display.votes[possibility]['votes'] 
             if amount < maxAmount:
                 break
             maxAmount = amount
             possibilities.append(possibility)
         winner = random.choice(possibilities)
         tokens = {}
         tokens['winner'] = winner
         for player in playerlib.getPlayerList("#human"): 
             es.tell(int(player),'#multi',xalanguage("random win", tokens, player.get("lang")))
         if self.option and self.options[winner]['winner']:
             if isinstance(self.option, str):
                 es.server.cmd(self.option)
             elif callable(self.option):
                 self.params = {}
                 self.params['winner']      = winner
                 self.params['votes']       = winner_votes
                 self.params['percent']     = winner_percent
                 self.params['total votes'] = total_votes
                 self.option(self.params)
     else: 
         for player in playerlib.getPlayerList("#human"): 
             es.tell(int(player), '#green', xalanguage("vote canceled", player.get("lang") ) )
Example #48
0
def show_nextmap():
    userid = es.getcmduserid()
    if str(nextmapvar) != '':
        nextmap = str(nextmapvar)
    else:
        nextmap = gMapCycle[gCurrentMap + 1]
    es.tell(
        userid, '#multi', '#green[XA] #default',
        xalanguage('show next map', {'mapname': nextmap},
                   playerlib.getPlayer(userid).get('lang')))
Example #49
0
def _setconfig_handle(userid, module, key, lang, parent):
    if xalanguage.isUseridAuthorized(userid, 'change_language'):
        keylist = langlist[str(module)]
        es.escinputbox(
            30, userid, "Change '" + str(keylist(key, lang)) + "' string",
            'Type in the new string:', 'setlanguage ' + str(parent) + ' ' +
            str(module) + ' ' + str(lang) + ' ' + str(key).replace(' ', '+'))
        es.tell(userid, '#green',
                xalang('press esc',
                       playerlib.getPlayer(userid).get('lang')))
Example #50
0
def player_hurt(ev):
    userid = ev['userid']
    attacker = ev['attacker']
    weapon = ev['weapon']
    if weapon == 'knife':
        if not superhero.hasHero(attacker,'Chucky'):
            return
        if userid != attacker:
            es.server.queuecmd('damage %s 40 1024 %s' % (userid,attacker))
            es.tell(attacker,'#multi','#green[SH]#lightgreen Chucky did extra Damage to#green',ev['es_username'])
Example #51
0
def cluster_rockets():
    player = Player.from_userid(int(es.ServerVar('wcs_userid')))
    if player.team >= 2:
        nade_repeat = Repeat(create_nade,
                             (player, int(es.ServerVar('wcs_dmg'))))
        nade_repeat.start(0.2, int(es.ServerVar('wcs_rockets')), True)
        es.tell(
            player.userid, '#multi',
            '#green[WCS] #lightgreenYou fired #green%s Cluster Rockets!' %
            int(es.ServerVar('wcs_rockets')))
Example #52
0
 def announce(self, userid):
     global active
     if es.getlivingplayercount(3) <= cts:
         if len(bombsitesNum) >= 1:
             active = 1
             if playerlib.getPlayer(userid).attributes['teamid'] == 2:
                 es.tell(
                     userid, '#multi',
                     '#green[#lightgreenBombsite#green-#lightgreenLimiter#lightgreen]#default Due to the low number of CT\'s this round, you must #lightgreenonly plant at site #green%s#lightgreen!'
                     % self.defaultSiteLetter)
                 gamethread.delayed(1, es.tell, (
                     userid, '#multi',
                     '#green[#lightgreenBombsite#green-#lightgreenLimiter#lightgreen]#default Due to the low number of CT\'s this round, you must #lightgreenonly plant at site #green%s#lightgreen!'
                     % self.defaultSiteLetter))
                 es.centertell(
                     userid, 'You must only plant at %s site!' %
                     self.defaultSiteLetter)
                 gamethread.delayed(
                     1, es.centertell,
                     (userid, 'You must only plant at %s site!' %
                      self.defaultSiteLetter))
                 gamethread.delayed(
                     2, es.centertell,
                     (userid, 'You must only plant at %s site!' %
                      self.defaultSiteLetter))
                 gamethread.delayed(
                     3, es.centertell,
                     (userid, 'You must only plant at %s site!' %
                      self.defaultSiteLetter))
             elif playerlib.getPlayer(userid).attributes['teamid'] == 3:
                 es.tell(
                     userid, '#multi',
                     '#green[#lightgreenBombsite#green-#lightgreenLimiter#lightgreen]#default Due to the low number of CT\'s this round, you must #lightgreenonly protect site #green%s#lightgreen!'
                     % self.defaultSiteLetter)
                 gamethread.delayed(1, es.tell, (
                     userid, '#multi',
                     '#green[#lightgreenBombsite#green-#lightgreenLimiter#lightgreen]#default Due to the low number of CT\'s this round, you must #lightgreenonly protect site #green%s#lightgreen!'
                     % self.defaultSiteLetter))
                 es.centertell(
                     userid, 'You must only protect %s site!' %
                     self.defaultSiteLetter)
                 gamethread.delayed(
                     1, es.centertell,
                     (userid, 'You must only protect %s site!' %
                      self.defaultSiteLetter))
                 gamethread.delayed(
                     2, es.centertell,
                     (userid, 'You must only protect %s site!' %
                      self.defaultSiteLetter))
                 gamethread.delayed(
                     3, es.centertell,
                     (userid, 'You must only protect %s site!' %
                      self.defaultSiteLetter))
     else:
         active = 0
Example #53
0
def player_hurt(ev):
    userid = ev['userid']
    attacker = int(ev['attacker'])
    if attacker and superhero.hasHero(attacker, 'Poison Ivy') and poison[attacker] < MAX_POISON:
        dice = randint(1,8)
        if dice == 1 or ev['weapon'] == 'knife':
            venom = randint(10, 30)
            es.tell(attacker, '#multi', '#green[SH]#lightgreen You have poisoned %s' % ev['es_username'])
            VenomCycle(userid, venom, attacker)
            es.tell(userid, '#multi', '#green[SH]#lightgreen #green%s #lightgreenhas poisoned you' % ev['es_attackername'])
            poison[attacker] += 1
Example #54
0
 def _Message(self, userid, votename, optionid, option):
     tokens = {}
     tokens['username'] = es.getplayername(userid)
     tokens['option'] = str(option)
     for player in playerlib.getPlayerList():
         es.tell(int(player), '#multi',
                 xalanguage("vote message", tokens, player.get("lang")))
     self.display.ChangeDict(option, 1)
     xavote.logging.log(
         "has submited option %s for vote %s" % (option, self.shortName),
         userid)
Example #55
0
def buyxp(userid, args):
    userid = str(es.getcmduserid())
    buyxp_msg = langlib.Strings(
        es.getAddonPath("superhero") + "/languages/buyxp_msg.ini")
    global popup_language
    tokens = {}
    if int(es.ServerVar('buyxp')) != 0:
        playerList = playerlib.getPlayerList('#human,#all')
        if len(playerList) >= int(es.ServerVar('buyxp_players')):
            amount = es.getargs()
            if amount != None:
                player = playerlib.getPlayer(userid)
                cash = int(player.getCash())
                if str(amount) == 'all':
                    xp = cash * float(es.ServerVar('xp_dollar'))
                    string = 'Used ' + str(amount) + '$'
                    sh_givexp(userid, int(xp), string)
                    player.setCash(0)
                    return
                elif str(amount) == '#all':
                    xp = cash * float(es.ServerVar('xp_dollar'))
                    string = 'Used ' + str(amount) + '$'
                    sh_givexp(userid, int(xp), string)
                    player.setCash(0)
                    return
                amount = int(amount)
                if amount >= 100:
                    if amount <= cash:
                        xp = amount * float(es.ServerVar('xp_dollar'))
                        string = 'Used ' + str(amount) + '$'
                        sh_givexp(userid, int(xp), string)
                        player.setCash(cash - amount)
                    else:
                        tokens['amount'] = amount
                        es.tell(
                            userid, '#multi',
                            buyxp_msg('buyxp_notamount',
                                      tokens,
                                      lang=str(popup_language)))
                else:
                    es.tell(
                        userid, '#multi',
                        buyxp_msg('buyxp_notenough', lang=str(popup_language)))
            else:
                es.tell(userid, '#multi',
                        buyxp_msg('buyxp_none', lang=str(popup_language)))
        else:
            tokens['players'] = es.ServerVar('buyxp_players')
            es.tell(
                userid, '#multi',
                buyxp_msg('buyxp_players', tokens, lang=str(popup_language)))
    else:
        es.tell(userid, '#multi',
                buyxp_msg('buyxp_disabled', lang=str(popup_language)))
Example #56
0
def mapmenu_handler(userid, choice, popupname):
    if gActions[userid] == 'changemap':
        es.server.cmd('changelevel ' + choice)
    elif gActions[userid] == 'setnextmap':
        nextmapvar.set(choice)
        if str(xa_announce_setnextmap) == '1':
            for player in playerlib.getPlayerList():
                es.tell(
                    player.userid,
                    xalanguage('new next map', {'mapname': choice},
                               player.get('lang')))
    del gActions[userid]
Example #57
0
def player_hurt(ev):
    userid = ev['userid']
    attacker = ev['attacker']
    weapon = ev['weapon']
    if weapon == 'knife':
        if not superhero.hasHero(attacker, 'Chucky'):
            return
        if userid != attacker:
            es.server.queuecmd('damage %s 40 1024 %s' % (userid, attacker))
            es.tell(attacker, '#multi',
                    '#green[SH]#lightgreen Chucky did extra Damage to#green',
                    ev['es_username'])
Example #58
0
def nominate():
    """ Executed when a user types 'nominate' in chat """
    userid = es.getcmduserid() 
    if allowVoting: 
        steamid = es.getplayersteamid(userid) 
        entry(steamid) 
        if not players[steamid][1]: 
            popuplib.send("nomination_menu", userid) 
        else:
            es.tell(userid, '#multi', lang('1nominate', lang=playerlib.getPlayer(userid).get('lang') ) )
    else:
        es.tell(userid, '#multi', lang('no_nominate', lang=playerlib.getPlayer(userid).get('lang') ) )