# XA Imports from xa import xa # ============================================================================== # ADDON REGISTRATION # ============================================================================== # Register with EventScripts info = es.AddonInfo() info.name = 'Advert' info.version = '1.1' info.author = 'Rio' info.basename = 'xaadvert' # Register with XA xaadvert = xa.register(info.basename) adverts = xaadvert.setting.createVariable('adverts', 1, 'Turns adverts on or off') time_between_advert = xaadvert.setting.createVariable('time_between_advert', 120, 'Time between adverts displayed') adverts_chat_area = xaadvert.setting.createVariable('adverts_chat_area', 1, 'Allow adverts in chat area of screen') adverts_top_left = xaadvert.setting.createVariable('adverts_top_left', 1, 'Allow adverts in top left corner of screen') advert_col_red = xaadvert.setting.createVariable('advert_col_red', 0, 'Red component colour of adverts (255 = max)') advert_col_green = xaadvert.setting.createVariable('advert_col_green', 0, 'Green component colour of adverts (255 = max)') advert_col_blue = xaadvert.setting.createVariable('advert_col_blue', 255, 'Blue component colour of adverts (255 = max)') advert_dead_only = xaadvert.setting.createVariable('advert_dead_only', 0, 'Specify if all players or only dead players can see adverts') adverts_bottom_area = xaadvert.setting.createVariable('adverts_bottom_area', 0, 'Show adverts in the hint text area') if xa.isManiMode(): xaadvertlist = xaadvert.configparser.getList('cfg/mani_admin_plugin/adverts.txt', True) else: xaadvertlist = xaadvert.configparser.getList('adverts.txt') if not xaadvertlist:
import playerlib from xa import xa playertimes = {} playerkills = {} playerheads = {} firstblood = False #plugin information info = es.AddonInfo() info.name = "Quake Sounds" info.version = "0.2" info.author = "Hunter" info.basename = "xaquakesounds" xaquakesounds = xa.register(info.basename) xalanguage = xaquakesounds.language.getLanguage() xaplayerdata_quakesounds = xaquakesounds.playerdata.createUserSetting('quakesounds') if xa.isManiMode(): xaquakesoundslist = xaquakesounds.configparser.getAliasList('cfg/mani_admin_plugin/quakesoundlist.txt', True) else: xaquakesoundslist = xaquakesounds.configparser.getAliasList('quakesoundlist.txt') quake_sounds = xaquakesounds.setting.createVariable('quake_sounds', '1', '0 = off, 1 = enable Quake Sounds') quake_sounds_download = xaquakesounds.setting.createVariable('quake_auto_download', '0', '0 = Don\'t auto download files to client, 1 = automatically download files to client') quake_sounds_settings = xaquakesounds.setting.createVariable('player_settings_quake', '1', '0 = player settings default to off, 1 = player settings default to on') quake_kill_streak_mode = xaquakesounds.setting.createVariable('quake_kill_streak_mode', '0', 'Reset kill streaks per round 1 = per round/death, 0 = per death') quake_humiliation_mode = xaquakesounds.setting.createVariable('quake_humiliation_mode', '1', '0 = off, 1 = all players hear it, 2 = players involved hear it, 3 = attacker hears it, 4 = victim hears it') quake_humiliation_visual_mode = xaquakesounds.setting.createVariable('quake_humiliation_visual_mode', '1', '0 = off, 1 = all players see it, 2 = players involved see it, 3 = attacker sees it, 4 = victim sees it') quake_humiliation_weapon = xaquakesounds.setting.createVariable('quake_humiliation_weapon', 'knife', 'Weapon that triggers the humiliation sound')
import es import usermsg import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = "Most Destructive" info.version = "1.0" info.author = "SumGuy14" info.basename = "xamostdestructive" gPlayerInfo = {} # Make a global dictionary to track things in # register module with XA xamostdestructive = xa.register('xamostdestructive') xalanguage = xamostdestructive.language.getLanguage() def unload(): xamostdestructive.unregister() def round_start(event_var): gPlayerInfo.clear() players = playerlib.getUseridList("#all") for userid in players: gPlayerInfo[userid] = [0,0] #################### # [0] = Damage done # [1] = Kills #################### def player_hurt(event_var): attacker = event_var['attacker'] CheckPlayer(attacker) # Create a spot in memory for player if he doesnt have one if event_var['es_attackerteam'] != event_var['es_userteam'] and attacker != event_var['userid'] and es.exists('userid',attacker):
import es import repeat import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = 'High Ping Kicker' info.version = '1.2a' info.author = 'SumGuy14' info.basename = 'xahighpingkick' gUserid = {} # register module with XA xahighpingkick = xa.register(info.basename) # Localization helper: text = xahighpingkick.language.getLanguage() # make config vars maxping = xahighpingkick.setting.createVariable('ping_maxping', 300, 'Maximum ping of a player before they are kicked') check = xahighpingkick.setting.createVariable('ping_check', 10, 'How many total times to check the players ping over a period of time before they are kicked') interval = xahighpingkick.setting.createVariable('ping_interval', 5, 'How often the players ping is checked, in seconds') exceedlimit = xahighpingkick.setting.createVariable('ping_exceedlimit', 3, 'If the players ping is above the max when checked this many times, player will be kicked') def load(): """ Make sure all people on the server when this is loaded are not forgotten """ for userid in playerlib.getUseridList('#human'): player_activate({'userid': userid})
1.3.1 | [FULL] | 16/02/2008 | Fixed a bunch of minor errors in player_team, commented out global variable 1.3.2 | [FULL] | 13/05/2008 | Fixed typo in player_team method/event 1.3.1 | [FULL] | 22/02/2009 | Fixed a chance where a key error could happen when a player would be checked before added to the dictionary. --Future-- # | Status | Desc 1.5 | [UNSTARTED] | Add other features, provide admin notification / features, add further config options ''' # the dictionary to track blinded players blinded = {} # same idea but for spectators spec_blinded = {} # Register the module ghosting = xa.register(info.basename) # Grab the languages file using the XA langlib wrapper text = ghosting.language.getLanguage() # Public variable for version #es.ServerVar("xa_blind_ip_ghosters_ver",str(info.version), "Blind IP Ghosters, version").makepublic() ''' Internal classes ''' class Player(playerlib.Player): ''' Extends playerlib.Player to provide special functions ''' def blind(self):
import es import playerlib import popuplib import gamethread from xa import xa info = es.AddonInfo() info.name = 'Victim Stats' info.version = '4.2' info.author = 'Satoon101' info.basename = 'xavictimstats' xavictimstats = xa.register(info.basename) xavictimstats.addRequirement('xasettings') victimstats_setting = xavictimstats.playerdata.createUserSetting('victimstats_setting') victimstats_timeout_death = xavictimstats.setting.createVariable('victimstats_timeout_death', 15, 'Time till gui closes with inaction after player_death') victimstats_timeout_round = xavictimstats.setting.createVariable('victimstats_timeout_round', 10, 'Time till gui closes with inaction after round_end or when using victimstats_command command') victimstats_distance = xavictimstats.setting.createVariable('victimstats_distance', 3, 'When displaying distance, which system to use \n// 1 = Imperial (Feet), 2 = Metric (Meters), 3 = Both / Off is not an option') victimstats_default = xavictimstats.setting.createVariable('victimstats_default', 5, 'Stats Display user default\n// 0 = Off, 1 = Text:Hitbox, 2 = Text:No Hitbox, 3 = GUI:Hitbox, 4 = GUI:No Hitbox, 5 = GUI: Menu') victimstats_command = xavictimstats.setting.createVariable('victimstats_command', '', 'Set to command for displaying current stats while alive (LEAVE BLANK to disable)') xalang = xavictimstats.language.getLanguage() xavictimstats_menu = {0:'Off',1:'Text: Hitgroups',2:'Text: No Hitgroups',3:'GUI: Hitgroups',4:'GUI: No Hitgroups',5:'GUI: Menu'} hitgroups = {1:'Head',2:'Chest',3:'Stomach',4:'Left Arm',5:'Right Arm',6:'Left Leg',7:'Right Leg'} PlayerList = {} class Player: def __init__(self, userid): self.userid = str(userid)
import es import langlib import os import playerlib import time from xa import xa #plugin information info = es.AddonInfo() info.name = "Flood Control" info.version = "0.2" info.author = "Venjax" info.basename = "xafloodcontrol" xafloodcontrol = xa.register(info.basename) lang_text = xafloodcontrol.language.getLanguage() chat_flood_time = xafloodcontrol.setting.createVariable('chat_flood_time', '1.5', "The amount of time (in seconds) that after a player speaks they are restricted from speaking again") timer = {} def floodcontrol(userid, message, teamonly): #floodcontrol function. Eats spam according to time set in config options. global timer try: if not userid in timer.keys(): timer[userid] = time.time() return userid, message, teamonly else: if time.time() - float(chat_flood_time) < timer[userid]: es.tell(userid, lang_text('chat flood', {}, playerlib.getPlayer(userid).get('lang'))) xafloodcontrol.logging.log("has been stopped from talking due to flooding, %.2f seconds from last message" % (time.time() - timer[userid] ), userid ) timer[userid] = time.time()
import playerlib from xa import xa playertimes = {} playerkills = {} playerheads = {} firstblood = False #plugin information info = es.AddonInfo() info.name = "Quake Sounds" info.version = "0.2" info.author = "Hunter" info.basename = "xaquakesounds" xaquakesounds = xa.register(info.basename) xalanguage = xaquakesounds.language.getLanguage() xaplayerdata_quakesounds = xaquakesounds.playerdata.createUserSetting('quakesounds') if xa.isManiMode(): xaquakesoundslist = xaquakesounds.configparser.getAliasList('cfg/mani_admin_plugin/quakesoundlist.txt', True) else: xaquakesoundslist = xaquakesounds.configparser.getAliasList('quakesoundlist.txt') if not xaquakesoundslist: raise ImportError('No quakesoundslist.txt found!') quake_sounds = xaquakesounds.setting.createVariable('quake_sounds', '1', '0 = off, 1 = enable Quake Sounds') quake_sounds_download = xaquakesounds.setting.createVariable('quake_auto_download', '0', '0 = Don\'t auto download files to client, 1 = automatically download files to client') quake_sounds_settings = xaquakesounds.setting.createVariable('player_settings_quake', '1', '0 = player settings default to off, 1 = player settings default to on') quake_kill_streak_mode = xaquakesounds.setting.createVariable('quake_kill_streak_mode', '0', 'Reset kill streaks per round 1 = per round/death, 0 = per death') quake_humiliation_mode = xaquakesounds.setting.createVariable('quake_humiliation_mode', '1', '0 = off, 1 = all players hear it, 2 = players involved hear it, 3 = attacker hears it, 4 = victim hears it')
'Retrieved latest version information from %s' % self.url) logging.log('xaupdate', 'Latest version is %s' % self.remote_version) if xa.info.version != self.remote_version: logging.log('xaupdate', 'There is a newer version of XA available') else: logging.log('xaupdate', 'XA is up to date') except HTTPError: # error logging.log('xaupdate', 'Unable to download version information') check = Check() xamodule = xa.register(info.basename) xalanguage = xamodule.language.getLanguage() def load(): # if we are loading xaupdate at the same time as server boot then we can safely run a check if es.ServerVar('eventscripts_currentmap') != "": es_map_start({}) else: # otherwise just create a dummy menu create_menu() xamodule.addMenu('xaupdate_menu', xalanguage['xaupdate'], 'xaupdate_menu', 'xaupdate_menu', 'ADMIN') def es_map_start():
# ./xa/modules/xathetime/xathetime.py import es import time from xa import xa #plugin information info = es.AddonInfo() info.name = "The Time" info.version = "1.0" info.author = "Unknown" info.basename = "xathetime" xathetime = xa.register(info.basename) adjust_time = xathetime.setting.createVariable( 'adjust_time', 0, 'Minutes to add to server clock') military_time = xathetime.setting.createVariable( 'military_time', 0, '0 = use 12hr format, 1 = use 24hr format') thetime_player_only = xathetime.setting.createVariable( 'thetime_player_only', 1, '0 = time is sent to all players on request, 1 = time is only sent to the requesting player' ) thetime_timezone = xathetime.setting.createVariable( 'thetime_timezone', 'GMT', 'Timezone to display -- DOES NOT AFFECT TIME DISPLAYED') def load(): """ """ xathetime.addCommand('thetime', show_time, 'display_thetime', 'UNRESTRICTED').register(('console', 'say'))
import playerlib import usermsg from xa import xa #plugin information info = es.AddonInfo() info.name = "Rates" info.version = "1.0" info.author = "Unknown" info.basename = "xarates" ####################################### # MODULE SETUP # Register the module # this is a global reference to your module xarates = xa.register(info.basename) def load(): xarates.addCommand('xa_rates', xarates_cmd, 'display_rates', 'UNRESTRICTED').register('console') def unload(): xarates.unregister() def xarates_cmd(): int_userid = es.getcmduserid() xarates.logging.log('requested xarates', int_userid) dict_rates = {}
import es import playerlib import popuplib import gamethread from xa import xa #plugin information info = es.AddonInfo() info.name = "Player Management" info.version = "0.2" info.author = "Hunter" info.basename = "xaplayers" manage_choice = {} manage_method = {} manage_display = {} manage_target = {} manage_targetlist = {} manage_pmenus = {} manage_argc = {} manage_cross_ref = {} xaplayers = xa.register(info.basename) xalanguage = xaplayers.language.getLanguage() xa_adminkick_anonymous = xaplayers.setting.createVariable( 'adminkick_anonymous', 0, "When an admin kicks a player, will no text be sent?") xa_adminban_anonymous = xaplayers.setting.createVariable( 'adminban_anonymous', 0, "When an admin bans a player, will no text be sent?") xa_ban_time = xaplayers.setting.createVariable( 'ban_time', 0, "The amount of time (in minutes) to ban a player for (0 = forever)")
import random from xa import xa #plugin information info = es.AddonInfo() info.name = "Observe" info.version = "1.1" info.author = "Unknown" info.basename = "xaobserve" ####################################### # MODULE SETUP # Register the module # this is a global reference to our module xaobserve = xa.register('xaobserve') ####################################### # SERVER VARIABLES # The list of our server variables allow_chase = xaobserve.setting.createVariable( 'observe_allow_chase', 1, 'xaobserve: 0 = only allow first-person view for dead players, 1 = allow frist-person or chase-cam view for dead players' ) spec_delay = xaobserve.setting.createVariable( 'observe_spec_delay', 3, 'xaobserve: Number of seconds after death a player can be spectated') ####################################### # GLOBALS
import gamethread import playerlib import msglib import usermsg import time from xa import xa #plugin information info = es.AddonInfo() info.name = 'Advert' info.version = '1.0' info.author = 'Rio' info.basename = 'xaadvert' # register module with XA xaadvert = xa.register(info.basename) next_advert = 0 colors = { '{RED}': '255 0 0 255', '{BLUE}': '0 0 255 255', '{GREEN}': '0 255 0 255', '{MAGENTA}': '139 0 139 255', '{BROWN}': '128 42 42 255', '{GREY}': '128 128 128', '{CYAN}': '0 204 204 255', '{YELLOW}': '255 255 0 255', '{ORANGE}': '255 127 0 255', '{WHITE}': '255 255 255 255', '{PINK}': '255 0 204 255' }
import es import popuplib import playerlib import cPickle import os from xa import xa info = es.AddonInfo() info.basename = "xateleport" info.name = "Telport" info.version = "1.0.1" xateleport = xa.register(info.basename) xalanguage = xateleport.language.getLanguage() xa_anonymous = xateleport.setting.createVariable('teleport_anonymous', 0, "When an admin teleports a player, is it anonymous?") def load(): global locations strPath = os.path.join(es.getAddonPath("xa"), "data", "locations.db") if not os.path.isfile(strPath): fStream = open(strPath, "w") cPickle.dump({}, fStream) fStream.close() fStream = open(strPath, "r") locations = cPickle.load(fStream) fStream.close() """ Popup register """
import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = "Redirect Users" info.version = "1.1" info.author = "Unknown" info.basename = "xaredirect" ####################################### # MODULE SETUP # Register the module # this is a global reference to our module xaredirect = xa.register(info.basename) ####################################### # SERVER VARIABLES # The list of our server variables var_ip = xaredirect.setting.createVariable('redirect_ip', '127.0.0.1:27015', 'IP players will be redirected to') var_delay = xaredirect.setting.createVariable('redirect_delay', 15, 'Number of seconds to show redirect prompt') var_kick = xaredirect.setting.createVariable('redirect_kick', 0, '0 = do nothing when players choose not to be redirected, 1 = kick players who choose not to be redirected') var_count = xaredirect.setting.createVariable('redirect_count', 0, 'Number of connected players required to automatically send redirect prompt, 0 = never automatically send redirect prompt') ####################################### # GLOBALS # Initialize our general global data here.
self.remote_version = u.read() self.last = time.time() logging.log("xaupdate", "Retrieved latest version information from %s" % self.url) logging.log("xaupdate", "Latest version is %s" % self.remote_version) if xa.info.version != self.remote_version: logging.log("xaupdate", "There is a newer version of XA available") else: logging.log("xaupdate", "XA is up to date") except HTTPError: # error logging.log("xaupdate", "Unable to download version information") check = Check() xamodule = xa.register(info.basename) xalanguage = xamodule.language.getLanguage() def load(): # if we are loading xaupdate at the same time as server boot then we can safely run a check if es.ServerVar("eventscripts_currentmap") != "": es_map_start({}) else: # otherwise just create a dummy menu create_menu() xamodule.addMenu("xaupdate_menu", xalanguage["xaupdate"], "xaupdate_menu", "xaupdate_menu", "ADMIN") def es_map_start(): if check.last or (time.time() - last_check) > update_every:
self.con = sqlite.connect(path) self.cur = self.con.cursor() def execute(self, sql): self.cur.execute(sql) self.con.commit() def query(self, sql): self.cur.execute(sql) return self.cur.fetchall() def close(self): self.con.close() xaauthmanage = xa.register(info.basename) lang = xaauthmanage.language.getLanguage() auth = services.use('auth') authaddon = auth.name if authaddon not in ('group_auth', 'basic_auth'): raise ImportError('Unsupported Auth Provider!') prefix = '#green[AuthManage]#default' ################################################### # EVENTS def load(): es.dbgmsg(1, '*****authmanage load')
import es import popuplib import random from xa import xa info = es.AddonInfo() info.name = "Config" info.version = "0.1" info.author = "Hunter" info.basename = "xaconfig" xaconfig = xa.register(info.basename) lang = xaconfig.language.getLanguage() menulist = [] def load(): global menulist,mainmenu xacmd = xaconfig.addCommand('xa_config', _sendmain, 'change_config', 'ROOT') xacmd.register('say') xaclientcmd = xaconfig.addCommand('setconfig', _inputbox_handle, 'change_config', 'ROOT', 'Set config') xaclientcmd.register('console') mainmenu = popuplib.easymenu('xamainconfigmenu',None,_mainmenu_select) mainmenu.settitle(lang['main config']) mainmenu.addoption('core', lang['core config']) mainmenu.addoption('module', lang['module config']) menulist.append(mainmenu) xaconfig.addMenu('xamainconfigmenu',lang['xa menu choice'],'xamainconfigmenu','change_config','ROOT') def unload():
import es import popuplib import random from xa import xa info = es.AddonInfo() info.name = "Config" info.version = "0.1" info.author = "Hunter" info.basename = "xaconfig" xaconfig = xa.register(info.basename) lang = xaconfig.language.getLanguage() menulist = [] def load(): global menulist, mainmenu xacmd = xaconfig.addCommand('xa_config', _sendmain, 'change_config', 'ROOT') xacmd.register('say') xaclientcmd = xaconfig.addCommand('setconfig', _inputbox_handle, 'change_config', 'ROOT', 'Set config') xaclientcmd.register('console') mainmenu = popuplib.easymenu('xamainconfigmenu', None, _mainmenu_select) mainmenu.settitle(lang['main config']) mainmenu.addoption('core', lang['core config']) mainmenu.addoption('module', lang['module config']) menulist.append(mainmenu)
import es from playerlib import getPlayerList from xa import xa info = es.AddonInfo() info.name = "Objectives" info.version = "0.1" info.author = "Wonder" info.basename = "xaobjectives" xaobjectives = xa.register(info.basename) def load(): global slay, text slay = xaobjectives.setting.createVariable("css_objectives", "1", "If 1, losing team will be slain.") text = xaobjectives.language.getLanguage() if es.getgame() != "Counter-Strike: Source": raise AttributeError, "Counter-Strike: Source" def unload(): xaobjectives.unregister() def round_end(eventVar): if int(slay): if eventVar["winner"] == "2" and es.getlivingplayercount(3): cts, ts = getPlayerList("#ct"), getPlayerList("#t") for i in cts: i.kill() es.tell(int(i), "#multi", text("lost"))
import es import playerlib import random import gamethread import os import effectlib from xa import xa info = es.AddonInfo() info.name = "Extended Punishments" info.version = "0.4s" info.author = "freddukes" info.basename = "xaextendedpunishments" xaextendedpunishments = xa.register(info.basename) xalanguage = xaextendedpunishments.language.getLanguage() ####################### # Variables xa_adminblind_anonymous = xaextendedpunishments.setting.createVariable( 'adminblind_anonymous', 0, "When an admin blinds a player, will a message be sent? 1 = no, 0 = yes") xa_adminfreeze_anonymous = xaextendedpunishments.setting.createVariable( 'adminfreeze_anonymous', 0, "When an admin freezes a player, will a message be sent? 1 = no, 0 = yes") xa_admingimp_anonymous = xaextendedpunishments.setting.createVariable( 'admingimp_anonymous', 0, "When an admin gimps a player, will a message be sent? 1 = no, 0 = yes") xa_admindrug_anonymous = xaextendedpunishments.setting.createVariable( 'admindrug_anonymous', 0, "When an admin drugs a player, will a message be sent? 1 = no, 0 = yes")
import es import os import cfglib import popuplib import playerlib import langlib import random from xa import xa info = es.AddonInfo() info.name = "Language Management" info.version = "0.1" info.author = "Hunter" info.basename = "xalanguage" xalanguage = xa.register(info.basename) xalang = xalanguage.language.getLanguage() langlist = {} menulist = [] def load(): global menulist,mainmenu xaclientcmd = xalanguage.addCommand('setlanguage', _inputbox_handle, 'change_language', 'ROOT', 'Set language') xaclientcmd.register('console') mainmenu = popuplib.easymenu('xamainlanguagemenu',None,_mainmenu_select) mainmenu.settitle(xalang['main language']) mainmenu.addoption('module', xalang['module language']) menulist.append(mainmenu) xalanguage.addMenu('xamainlanguagemenu',xalang['xa menu choice'],'xamainlanguagemenu','change_language','ROOT')
import es import os import cfglib import popuplib import playerlib import langlib import random from xa import xa info = es.AddonInfo() info.name = "Language Management" info.version = "0.1" info.author = "Hunter" info.basename = "xalanguage" xalanguage = xa.register(info.basename) xalang = xalanguage.language.getLanguage() langlist = {} menulist = [] def load(): global menulist, mainmenu xaclientcmd = xalanguage.addCommand('setlanguage', _inputbox_handle, 'change_language', 'ROOT', 'Set language') xaclientcmd.register('console') mainmenu = popuplib.easymenu('xamainlanguagemenu', None, _mainmenu_select) mainmenu.settitle(xalang['main language']) mainmenu.addoption('module', xalang['module language'])
- [FIX] bug fixes (module was still registering as xateamwound) == 1.0.1 == - [FIX] Problem where the player_team code tried to re-add players that had disconnected == 1.0.0 == - Released publicly - Name change to XAProtect - [+] Team kill protection - [FIX] Changed the protection levels from 5000 to 1124 == OY1 == - [+] Added basic spawn protection (raised health) - [+] Added the ability to kill people who spawn kill - [+] Added reflect damage ability against team wounders ''' # register module with XA xaprotect = xa.register(info.basename) # Localization helper: #text = xaprotect.language.getLanguage() # make config vars protect_wound = xaprotect.setting.createVariable('protect_wound', 1, '1 = ON, 0 = OFF') protect_spawn_protection_time = xaprotect.setting.createVariable('protect_spawn_protection_time', 3, 'The number of seconds to make people invulnerable at spawn (0 = OFF)') protect_spawn_protection_mode = xaprotect.setting.createVariable('protect_spawn_protection_mode', 0, '(1 = Anytime players spawn, 0 = Only at round start)') protect_reflect_damage = xaprotect.setting.createVariable('protect_reflect_damage', 0, '(0 = OFF, 1 = Reflect all damage, 2 = reflect some damage)') protect_reflect_damage_percentage = xaprotect.setting.createVariable('protect_reflect_damage_percentage', 10, '(0 to 10: the percentage of damage to reflect)') protect_spawn_slay = xaprotect.setting.createVariable('protect_spawn_slay', 0, 'Slay spawn attackers(0=OFF, 1=ON)') protect_spawn_slay_time = xaprotect.setting.createVariable('protect_spawn_slay_time', 3, '# of seconds after spawning an attacker is slayed for team attacking') protect_teamkill_slay = xaprotect.setting.createVariable('protect_teamkill_slay', 0, 'Slay team killers(0=OFF, 1=ON)') protect_teamattack_slay = xaprotect.setting.createVariable('protect_teamattack_slay', 0, 'Slay team attackers(0=OFF, 1=ON)')
- [FIX] bug fixes (module was still registering as xateamwound) == 1.0.1 == - [FIX] Problem where the player_team code tried to re-add players that had disconnected == 1.0.0 == - Released publicly - Name change to XAProtect - [+] Team kill protection - [FIX] Changed the protection levels from 5000 to 1124 == OY1 == - [+] Added basic spawn protection (raised health) - [+] Added the ability to kill people who spawn kill - [+] Added reflect damage ability against team wounders ''' # register module with XA xaprotect = xa.register(info.basename) # Localization helper: #text = xaprotect.language.getLanguage() # make config vars protect_wound = xaprotect.setting.createVariable('protect_wound', 1, '1 = ON, 0 = OFF') protect_spawn_protection_time = xaprotect.setting.createVariable( 'protect_spawn_protection_time', 3, 'The number of seconds to make people invulnerable at spawn (0 = OFF)') protect_spawn_protection_mode = xaprotect.setting.createVariable( 'protect_spawn_protection_mode', 0, '(1 = Anytime players spawn, 0 = Only at round start)') protect_reflect_damage = xaprotect.setting.createVariable( 'protect_reflect_damage', 0,
import es import repeat import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = 'High Ping Kicker' info.version = '1.2a' info.author = 'SumGuy14' info.basename = 'xahighpingkick' gUserid = {} # register module with XA xahighpingkick = xa.register(info.basename) # Localization helper: text = xahighpingkick.language.getLanguage() # make config vars maxping = xahighpingkick.setting.createVariable( 'ping_maxping', 300, 'Maximum ping of a player before they are kicked') check = xahighpingkick.setting.createVariable( 'ping_check', 10, 'How many total times to check the players ping over a period of time before they are kicked' ) interval = xahighpingkick.setting.createVariable( 'ping_interval', 5, 'How often the players ping is checked, in seconds') exceedlimit = xahighpingkick.setting.createVariable( 'ping_exceedlimit', 3,
import es import popuplib import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = "Bot Management" info.version = "0.1.1" info.author = "GODJonez" info.basename = "xabotmanagement" xabotmanagement = xa.register(info.basename) xalanguage = xabotmanagement.language.getLanguage() xabmmenu = None menu_display = { 'state': False, 'displays': {}, } menu_actions = {} def load(): ''' Load Function for Bot Management in XA Called automatically when loading this script ''' global xabmmenu xabmmenu = popuplib.easymenu("xabotmanagementmenu", None, _select_action) xabmmenu.settitle(xalanguage["bot management"]) xabotmanagement.addMenu("xabotmanagementmenu", xalanguage["manage bots"], "xabotmanagementmenu", "manage_bots", "ADMIN")
1.3.1 | [FULL] | 16/02/2008 | Fixed a bunch of minor errors in player_team, commented out global variable 1.3.2 | [FULL] | 13/05/2008 | Fixed typo in player_team method/event 1.3.1 | [FULL] | 22/02/2009 | Fixed a chance where a key error could happen when a player would be checked before added to the dictionary. --Future-- # | Status | Desc 1.5 | [UNSTARTED] | Add other features, provide admin notification / features, add further config options ''' # the dictionary to track blinded players blinded = {} # same idea but for spectators spec_blinded = {} # Register the module ghosting = xa.register(info.basename) # Grab the languages file using the XA langlib wrapper text = ghosting.language.getLanguage() # Public variable for version #es.ServerVar("xa_blind_ip_ghosters_ver",str(info.version), "Blind IP Ghosters, version").makepublic() ''' Internal classes ''' class Player(playerlib.Player): ''' Extends playerlib.Player to provide special functions '''
import es import playerlib import popuplib from xa import xa #plugin information info = es.AddonInfo() info.name = "Settings" info.version = "0.1" info.author = "Hunter" info.basename = "xasettings" setting_object = {} xasettings = xa.register(info.basename) xalanguage = xasettings.language.getLanguage() def load(): #Load Function for Player Settings for XA. xasettingmenu = popuplib.easymenu("xasettingmenu", "_tempcore", _select_setting) xasettingmenu.settitle(xalanguage["player settings"]) xasettings.addMenu("xasettingmenu", xalanguage["player settings"], "xasettingmenu", "change_playersetting", "UNRESTRICTED") xacommand = xasettings.addCommand("settings", _send_menu, "change_playersetting", "UNRESTRICTED") xacommand.register(["console","say"]) def unload(): popuplib.delete("xasettingmenu") xasettings.unregister() def _send_menu(): userid = es.getcmduserid()
'reserved_ct', 'misc' ] skinlist = {} playermenu = {} skins_downloadable = 1 if xa.isManiMode(): xaskins_skinfiles_path = xa.gamedir() + "/cfg/mani_admin_plugin/skins/" else: xaskins_skinfiles_path = xa.gamedir() + "/cfg/xa/skins/" ############### ### GLOBALS ### ############### xaskins = xa.register(info.basename) xalanguage = xaskins.language.getLanguage() players = {} players['exists'] = xaskins.playerdata.createUserSetting("exists") players['admin_t'] = xaskins.playerdata.createUserSetting("admin_t") players['admin_ct'] = xaskins.playerdata.createUserSetting("admin_ct") players['reserved_t'] = xaskins.playerdata.createUserSetting("reserved_t") players['reserved_ct'] = xaskins.playerdata.createUserSetting("reserved_ct") players['public_t'] = xaskins.playerdata.createUserSetting("public_t") players['public_ct'] = xaskins.playerdata.createUserSetting("public_ct") skins = {} skins['admin_t_skin'] = xaskins.playerdata.createUserSetting("admin_t_skin") skins['admin_ct_skin'] = xaskins.playerdata.createUserSetting("admin_ct_skin") skins['reserved_t_skin'] = xaskins.playerdata.createUserSetting(
import os import popuplib import playerlib import langlib from xa import xa playerlimit = {} #plugin information info = es.AddonInfo() info.name = "Sounds" info.version = "0.2" info.author = "Hunter" info.basename = "xasounds" xasounds = xa.register(info.basename) xalanguage = xasounds.language.getLanguage() xaplayerdata_sounds = xasounds.playerdata.createUserSetting('sounds') if xa.isManiMode(): xasoundslist = xasounds.configparser.getAliasList('cfg/mani_admin_plugin/soundlist.txt', True) else: xasoundslist = xasounds.configparser.getAliasList('soundlist.txt') sounds_per_round = xasounds.setting.createVariable('sounds_per_round', '0', 'Number of sounds a regulary player can play in the course of a round') sounds_filter_if_dead = xasounds.setting.createVariable('sounds_filter_if_dead', '0', '1 = If a player is dead then only other dead players will hear it') sounds_download = xasounds.setting.createVariable('sounds_auto_download', '0', '0 = Don\'t auto download files to client, 1 = automatically download files to client') sounds_settings = xasounds.setting.createVariable('player_settings_sounds', '1', '0 = player settings default to off, 1 = player settings default to on') def load(): global mainmenu
""" Executes ./cfg/xa/xaprefixexec/<map prefix>.cfg every map """ #plugin information info = es.AddonInfo() info.name = "Map Prefix cfg" info.version = "1.1" info.author = "Unknown" info.basename = "xaprefixexec" ####################################### # MODULE SETUP # Register the module # this is a global reference to our module xaprefixexec = xa.register(info.basename) ####################################### # GLOBALS # Initialize our general global data here. str_dir = None # Directory of the .cfg files ####################################### # LOAD AND UNLOAD # Formal system registration and unregistration def load(): """ Ensures the .cfg directories exist
-- OY4 -- * [FIX] silly bug (my fault) where a text sting in the mani cfg was stripped of spaces.. duh! -- OY3 -- * [FIX] reserved slot failing when a player joined * [FIX] a missing bracket * [TEST] getting it working some more -- OY2 -- * [FIX] a load of dbg msgs * [+] cleaned the code slightly -- OY1 -- OY * [+] released ''' # Register the module xareserveslots = xa.register(info.basename) # Get the lang file text = xareserveslots.language.getLanguage() # load the list of reserved players if xa.isManiMode(): xaReservedList = xareserveslots.configparser.getList("cfg/mani_admin_plugin/reserveslots.txt", True) else: xaReservedList = None if not xaReservedList: xaReservedList = xareserveslots.configparser.getList("reserved_slots_list.txt") else: xaReservedList.extend(xareserveslots.configparser.getList("reserved_slots_list.txt"))
import playerlib import random from xa import xa # plugin information info = es.AddonInfo() info.name = "Restrict Weapons" info.version = "1.3" info.author = "Unknown" info.basename = "xarestrict" ####################################### # MODULE SETUP # Register the module # this is a global reference to our module xarestrict = xa.register(info.basename) ####################################### # SERVER VARIABLES # The list of our server variables repickup = xarestrict.setting.createVariable( "restrict_restrict_repickup", "2", "Number of seconds a weapon will be unavaible for pickup after a restricted player attempts to pick the weapon up", ) removebanned = xarestrict.setting.createVariable( "restrict_restrict_removebanned", 1, "0 = no change, 1 = when a player picks up a weapon both team are restricted from the weapon is removed",
import es import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = "Grenade Spam Prevention" info.version = "1.2" info.author = "Unknown" info.basename = "xanadespam" ####################################### # MODULE SETUP # Register the module # this is a global reference to our module xanadespam = xa.register(info.basename) ####################################### # SERVER VARIABLES # The list of our server variables punish_strip = xanadespam.setting.createVariable('nadespam_punishment_strip', 0, '0 = do not strip weapons as punishment, 1 = strip weapons as punishment') punish_cash = xanadespam.setting.createVariable('nadespam_punishment_cash', 0, '0 = do not remove cash as punishment, 1 = remove cash as punishment') punish_slay = xanadespam.setting.createVariable('nadespam_punishment_slay', 0, '0 = do not slay as punishment, 1 = slay as punishment') punish_kick = xanadespam.setting.createVariable('nadespam_punishment_kick', 0, '0 = do not kick as punishment, 1 = kick as punishment') dict_grenade_limits = {'hegrenade':xanadespam.setting.createVariable('nadespam_limit_he', 1, 'Maximum number of HE grenades players may purchase per round'), 'flashbang':xanadespam.setting.createVariable('nadespam_limit_flashbang', 2, 'Maximum number of flashbangs players may purchase per round'), 'smokegrenade':xanadespam.setting.createVariable('nadespam_limit_smoke', 1, 'Maximum number of smoke grenades players may purchase per round')} #######################################
import os import popuplib import playerlib import langlib from xa import xa playerlimit = {} #plugin information info = es.AddonInfo() info.name = "Sounds" info.version = "0.2" info.author = "Hunter" info.basename = "xasounds" xasounds = xa.register(info.basename) xalanguage = xasounds.language.getLanguage() xaplayerdata_sounds = xasounds.playerdata.createUserSetting('sounds') if xa.isManiMode(): xasoundslist = xasounds.configparser.getAliasList( 'cfg/mani_admin_plugin/soundlist.txt', True) else: xasoundslist = xasounds.configparser.getAliasList('soundlist.txt') sounds_per_round = xasounds.setting.createVariable( 'sounds_per_round', '0', 'Number of sounds a regulary player can play in the course of a round') sounds_filter_if_dead = xasounds.setting.createVariable( 'sounds_filter_if_dead', '0', '1 = If a player is dead then only other dead players will hear it')
skinmenu = ['Admin T', 'Admin CT', 'Public T', 'Public CT', 'Reserved T', 'Reserved CT', 'Misc'] skinnames = ['admin_t', 'admin_ct', 'public_t', 'public_ct', 'reserved_t', 'reserved_ct', 'misc'] skinlist = {} playermenu = {} skins_downloadable = 1 if xa.isManiMode(): xaskins_skinfiles_path = xa.gamedir() + "/cfg/mani_admin_plugin/skins/" else: xaskins_skinfiles_path = xa.gamedir() + "/cfg/xa/skins/" ############### ### GLOBALS ### ############### xaskins = xa.register(info.basename) xalanguage = xaskins.language.getLanguage() players = {} players['exists'] = xaskins.playerdata.createUserSetting("exists") players['admin_t'] = xaskins.playerdata.createUserSetting("admin_t") players['admin_ct'] = xaskins.playerdata.createUserSetting("admin_ct") players['reserved_t'] = xaskins.playerdata.createUserSetting("reserved_t") players['reserved_ct'] = xaskins.playerdata.createUserSetting("reserved_ct") players['public_t'] = xaskins.playerdata.createUserSetting("public_t") players['public_ct'] = xaskins.playerdata.createUserSetting("public_ct") skins = {} skins['admin_t_skin'] = xaskins.playerdata.createUserSetting("admin_t_skin") skins['admin_ct_skin'] = xaskins.playerdata.createUserSetting("admin_ct_skin") skins['reserved_t_skin'] = xaskins.playerdata.createUserSetting("reserved_t_skin")
import es import popuplib import playerlib import cfglib from xa import xa import os #plugin information info = es.AddonInfo() info.name = "XA CFG Loader" info.version = "1" info.author = "Errant" info.basename = "xacfgloader" xacfgl = xa.register(info.basename) xalanguage = xacfgl.language.getLanguage() cfg_dir = "%s/cfg" % es.ServerVar("eventscripts_gamedir") def load(): menu = _create_menu() xacfgl.addMenu('xacfgloader_menu', xalanguage['cfgloader_title'], 'xacfgloader_menu', 'xa_cfgloader', 'ADMIN') def _create_menu(): if popuplib.exists('xacfgloader_menu'): popuplib.delete('xacfgloader_menu') menu = popuplib.easymenu("xacfgloader_menu", "_unused", _select_cfg)
# ./xa/modules/xathetime/xathetime.py import es import time from xa import xa #plugin information info = es.AddonInfo() info.name = "The Time" info.version = "1.0" info.author = "Unknown" info.basename = "xathetime" xathetime = xa.register(info.basename) adjust_time = xathetime.setting.createVariable('adjust_time', 0, 'Minutes to add to server clock') military_time = xathetime.setting.createVariable('military_time', 0, '0 = use 12hr format, 1 = use 24hr format') thetime_player_only = xathetime.setting.createVariable('thetime_player_only', 1, '0 = time is sent to all players on request, 1 = time is only sent to the requesting player') thetime_timezone = xathetime.setting.createVariable('thetime_timezone', 'GMT', 'Timezone to display -- DOES NOT AFFECT TIME DISPLAYED') def load(): """ """ xathetime.addCommand('thetime', show_time, 'display_thetime', 'UNRESTRICTED').register(('console', 'say')) def unload(): """ """ xathetime.unregister() def show_time():
# XA Imports from xa import xa # ============================================================================== # ADDON REGISTRATION # ============================================================================== # Register with EventScripts info = es.AddonInfo() info.name = 'Admin Give' info.version = '1.1' info.author = 'freddukes' info.basename = 'xaadmingive' # Register with XA xaadmingive = xa.register('xaadmingive') xalanguage = xaadmingive.language.getLanguage() admingive_anonymous = xaadmingive.setting.createVariable('admingive_anonymous' , 0, 'Whether or not giving a player a weapon is anonymous... 1 = Anonymous, 0 = Global') admingive_stripfirst = xaadmingive.setting.createVariable("admingive_stripfirst", 1, 'Whether or not the target is striped of their weapon before being gave another.\n // Will only strip the same slot as their being given.') # ============================================================================== # GLOBALS # ============================================================================== weapons = {} weapons['pistols'] = set(weaponlib.getWeaponNameList('#pistol')) weapons['shotguns'] = set(weaponlib.getWeaponNameList('#shotgun')) weapons['smgs'] = set(weaponlib.getWeaponNameList('#smg')) weapons['snipers'] = set(weaponlib.getWeaponNameList('#sniper')) weapons['rifles'] = set(weaponlib.getWeaponNameList('#rifle')) weapons['rifles'] = weapons['rifles'].difference(weapons['snipers']) weapons['grenades'] = set(weaponlib.getWeaponNameList('#grenade'))
import es from xa import xa #plugin information info = es.AddonInfo() info.name = "Admin rcon" info.version = "1.0" info.author = "McFly" info.basename = "xarcon" ####################################### # MODULE SETUP # Register the module # this is a global reference to our module xarcon = xa.register(info.basename) ####################################### # GLOBALS # We initialize our general global data here. list_round_rcon = [] list_map_rcon = [] ####################################### # LOAD AND UNLOAD # Formal system registration and unregistration def load(): """Registers the xarcon commands"""
info = es.AddonInfo() info.name = "Player Punishments" info.version = "0.2" info.author = "Hunter" info.basename = "xapunishments" punishment_choice = {} punishment_method = {} punishment_display = {} punishment_target = {} punishment_targetlist = {} punishment_pmenus = {} punishment_argc = {} punishment_cross_ref = {} xapunishments = xa.register(info.basename) xalanguage = xapunishments.language.getLanguage() xa_adminburn_anonymous = xapunishments.setting.createVariable('adminburn_anonymous', 0, "When an admin burns a player, will the text be cut out from chat?") xa_adminslap_anonymous = xapunishments.setting.createVariable('adminslap_anonymous', 0, "When an admin slaps a player, will the text be cut out from chat?") xa_adminslay_anonymous = xapunishments.setting.createVariable('adminslay_anonymous', 0, "When an admin slays a player, will the text be cut out from chat?") xa_admin_burn_time = xapunishments.setting.createVariable('admin_burn_time', 20, "The amount of time (in seconds) to burna player for") xa_slap_to_damage = xapunishments.setting.createVariable('slap_to_damage', 10, "How much health to slap a player to") def load(): #Load Function for Player Settings for XA. xapunishmentmenu = popuplib.easymenu("xapunishmentmenu", "_tempcore", _select_punishment) xapunishmentmenu.settitle(xalanguage["choose punishment"]) xapunishments.addMenu("xapunishmentmenu", xalanguage["punish players"], "xapunishmentmenu", "punish_player", "ADMIN") xapunishtargetmenu = popuplib.easymenu("xapunishtargetmenu", "_tempcore", _select_target) xapunishtargetmenu.settitle(xalanguage["choose target"])
import es import gamethread import popuplib import playerlib from xa import xa import psyco psyco.full() info = es.AddonInfo() info.name = 'Admin Give' info.version = '1.0.4' info.basename = 'xaadmingive' xaadmingive = xa.register('xaadmingive') xalanguage = xaadmingive.language.getLanguage() admingive_anonymous = xaadmingive.setting.createVariable('admingive_anonymous' , 0, 'Whether or not giving a player a weapon is anonymous... 1 = Anonymous, 0 = Global') admingive_stripfirst = xaadmingive.setting.createVariable("admingive_stripfirst", 1, 'Whether or not the target is striped of their weapon before being gave another.\n // Will only strip the same slot as their being given.') pistols = ('usp','glock','p228','deagle','elite','fiveseven') shotguns = ('m3','xm1014') smgs = ('tmp','mac10','mp5navy','ump45','p90') rifles = ('famas','galil','ak47','m4a1','sg552','aug') snipers = ('scout','sg550','g3sg1','awp') grenades = ('hegrenade','smokegrenade','flashbang') items = ('vest','vesthelm','nvgs','c4','defuser') admins = {} gamename = str(es.ServerVar('eventscripts_gamedir')).replace('\\', '/').split('/')[~0] ####################
import es import playerlib from xa import xa info = es.AddonInfo() info.name = "Extended Admin Say" info.version = "0.2" info.author = "freddukes" info.basename = "xaextendedsay" xaextendedsay = xa.register(info.basename) xalanguage = xaextendedsay.language.getLanguage() def load(): xaextendedsay.addRequirement("xasay") xaextendedsay.xasay.registerSayPrefix("@@" , _admin_say_tell, "admin_tell", "ADMIN") xaextendedsay.xasay.registerSayPrefix("@@@", _admin_say_center, "admin_say", "ADMIN") def unload(): xaextendedsay.delRequirement("xasay") xaextendedsay.unregister() def _admin_say_tell(adminid, message, teamonly): position = 0 tokens = {} username = '' messagetokens = message.split() if not messagetokens: return if messagetokens[0].startswith('"') and message.count('"') >= 2: for part in messagetokens:
import es import playerlib import popuplib from xa import xa #plugin information info = es.AddonInfo() info.name = "Settings" info.version = "0.1" info.author = "Hunter" info.basename = "xasettings" setting_object = {} xasettings = xa.register(info.basename) xalanguage = xasettings.language.getLanguage() def load(): #Load Function for Player Settings for XA. xasettingmenu = popuplib.easymenu("xasettingmenu", "_tempcore", _select_setting) xasettingmenu.settitle(xalanguage["player settings"]) xasettings.addMenu("xasettingmenu", xalanguage["player settings"], "xasettingmenu", "change_playersetting", "UNRESTRICTED") xacommand = xasettings.addCommand("settings", _send_menu, "change_playersetting", "UNRESTRICTED") xacommand.register(["console", "say"]) def unload():
####################################### # ADDON INFORMATION # This describes the XA module info = es.AddonInfo() info.name = "Say" info.version = "0.2" info.author = "Mattie" info.basename = "xasay" ####################################### # MODULE SETUP # Register the module # this is a global reference to your module xasay = xa.register(info.basename) ####################################### # SERVER VARIABLES # The list of our my server variables say_admin_prefix = xasay.setting.createVariable('say_admin_prefix', '@', "Prefix for admin chat") say_admin_soundfile = xasay.setting.createVariable('say_admin_soundfile', 'ui/buttonclick.wav', "Determines the sound played with an admin say.") # normal admin say # normal ####################################### # GLOBALS # Initialize our general global data here. # Localization helper: text = xasay.language.getLanguage()
ToDo: -Add option in admin menu to cancel RTV -Option & command for refreshing variables -Admin & Server command to cancel RTV -Output to server console (logging excluded) -mapchange protection -find a better way to open the mapfiles -german translation of strings.ini (0.02) Notes: ''' xartv = xa.register(info.basename) vote_req_time = xartv.setting.createVariable('vote_time_before_rock_the_vote', 120, "Time before rockthevote can be started after a new map starts in seconds") vote_maps = xartv.setting.createVariable('vote_rock_the_vote_number_of_maps', 6, "Number of random maps chosen from the votelist after nominations have been taken into account.") vote_req_p = xartv.setting.createVariable('vote_vote_rock_the_vote_threshold_percent', 60, "Percentage of players on server required to type rockthevote before it starts (min 1, max 100)") vote_req_min = xartv.setting.createVariable('vote_rock_the_vote_threshold_minimum', 4, "Minimum number of players required to type rockthevote before it starts") if int(vote_req_min) < 1: vote_req_min = 4 if not 1 < int(vote_req_p) < 100: vote_req_p = 60 if int(vote_maps) < 1: vote_maps = 6
class connection(object): def __init__(self,path): self.con = sqlite.connect(path) self.cur = self.con.cursor() def execute(self,sql): self.cur.execute(sql) self.con.commit() def query(self,sql): self.cur.execute(sql) return self.cur.fetchall() def close(self): self.con.close() xaauthmanage = xa.register(info.basename) lang = xaauthmanage.language.getLanguage() auth = services.use('auth') authaddon = auth.name if authaddon not in ('group_auth','basic_auth'): raise ImportError('Unsupported Auth Provider!') prefix = '#green[AuthManage]#default' ################################################### # EVENTS def load(): es.dbgmsg(1,'*****authmanage load') xaauthcmd = xaauthmanage.addCommand('xa_auth', _sendmain, 'manage_auth', 'ADMIN')
"cs_office", "de_aztec", "de_cbble", "de_chateau", "de_dust", "de_dust2", "de_inferno", "de_nuke", "de_piranesi", "de_port", "de_prodigy", "de_tides", "de_train", ) xamapmanagement = xa.register("xamapmanagement") xalanguage = xamapmanagement.language.getLanguage() xa_announce_setnextmap = xamapmanagement.setting.createVariable( "announce_setnextmap", 1, "Announce that a new map has been set in chat to all players?" ) nextmapvar = es.ServerVar("eventscripts_nextmapoverride") def load(): xamapmainmenu = popuplib.easymenu("xamapmainmenu", None, xamapmainmenu_handler) xamapmainmenu.settitle(xalanguage["map management"]) xamapmainmenu.addoption("changemap", xalanguage["change map"]) xamapmainmenu.addoption("setnextmap", xalanguage["set map"]) xamapmanagement.addMenu("xamapmainmenu", xalanguage["map management"], "xamapmainmenu", "manage_maps", "ADMIN") xamapmanagement.addCommand("nextmap", show_nextmap, "use_nextmap", "UNRESTRICTED").register(("console", "say"))
import es import time from xa import xa #plugin information info = es.AddonInfo() info.name = "Timeleft" info.version = "1.2" info.author = "Unknown" info.basename = "xatimeleft" ####################################### # MODULE SETUP # Register the module # this is a global reference to your module xatimeleft = xa.register(info.basename) startTime = 0 playersConnected = False reset = True def load(): """ Initialize and register the module with XA Core """ xatimeleft.addCommand('timeleft', timeleft_cmd, 'display_timeleft', 'UNRESTRICTED').register(('console', 'say')) """ If XA loads late, then send es_map_start event to load the start time """ if str(es.ServerVar('eventscripts_currentmap')) != "": es_map_start({})
import es import usermsg import playerlib from xa import xa #plugin information info = es.AddonInfo() info.name = "Most Destructive" info.version = "1.0" info.author = "SumGuy14" info.basename = "xamostdestructive" gPlayerInfo = {} # Make a global dictionary to track things in # register module with XA xamostdestructive = xa.register('xamostdestructive') xalanguage = xamostdestructive.language.getLanguage() def unload(): xamostdestructive.unregister() def round_start(event_var): gPlayerInfo.clear() players = playerlib.getUseridList("#all") for userid in players: gPlayerInfo[userid] = [0, 0] #################### # [0] = Damage done # [1] = Kills #################### def player_hurt(event_var):