Пример #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")
Пример #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()
Пример #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
Пример #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)
Пример #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)
Пример #6
0
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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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')
Пример #13
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")))
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))
Пример #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)
Пример #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)
Пример #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()
Пример #19
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()
Пример #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)
Пример #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
Пример #22
0
 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")
Пример #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)
Пример #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)
Пример #26
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')))
Пример #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')
Пример #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)
Пример #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');
Пример #30
0
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)))
Пример #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
Пример #32
0
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)
Пример #33
0
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'
    )
Пример #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)
Пример #35
0
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
Пример #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
Пример #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)
Пример #38
0
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  
Пример #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)
Пример #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()
Пример #41
0
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)))
Пример #42
0
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
Пример #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")))
Пример #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'))))
Пример #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")))
Пример #46
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]
Пример #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") ) )
Пример #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')))
Пример #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')))
Пример #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'])
Пример #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')))
Пример #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
Пример #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
Пример #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)
Пример #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)))
Пример #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]
Пример #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'])
Пример #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') ) )