import es import cfglib import cmdlib import popuplib import usermsg import playerlib import gamethread config = cfglib.AddonCFG(es.getAddonPath('plug') + '/settings.ini') config.text("*----------------------------------------------------------------------*") config.text(" SETTINGS") config.text("*----------------------------------------------------------------------*") config.text(" ") config.text("If you need help, add me on steam: http://steamcommunity.com/profiles/76561198145719920/") admin_cvar = config.cvar("Admins", 'STEAM_ID', 'Seperate the STEAMIDs with a ;') admins = str(admin_cvar).split(';') usual = config.cvar("Usual Text Color", "#default", "Example: #green, #lightgreen, default") highlight = config.cvar("Highlighting Text Color", "#lightgreen", "Example: #green, #lightgreen, default") prefix = config.cvar("Prefix", "#green[ #defaultTrikz #green] " + usual, "[ Trikz ]") config.write() config.execute() def tell(userid, text): es.tell(userid, '#multi', prefix + text) def load(): global userDict userDict = {} cmdlib.registerSayCommand('!trikz', trikzCmd, "Trikz Menu Command") cmdlib.registerSayCommand('!trikzmenu', trikzCmd, "Trikz Menu Command") cmdlib.registerSayCommand('!t', trikzCmd, "Trikz Menu Command") cmdlib.registerSayCommand('t', trikzCmd, "Trikz Menu Command") es.set('eventscripts_noisy', 1) for x in es.getUseridList(): uid = es.getplayersteamid(x) if uid not in userDict: userDict[uid] = {} userDict[uid]['flash'] = 0 userDict[uid]['ghost'] = 0 userDict[uid]['ghost'] = 1 userDict[uid]['switch'] = 0 def unload(): global userDict cmdlib.unregisterSayCommand('!trikz') cmdlib.unregisterSayCommand('!trikzmenu') cmdlib.unregisterSayCommand('!t') cmdlib.unregisterSayCommand('t') es.set('eventscripts_noisy', 0) def player_activate(ev): global userDict userid = int(ev['userid']) uid = es.getplayersteamid(userid) if uid not in userDict: userDict[uid] = {} userDict[uid]['flash'] = 1 userDict[uid]['ghost'] = 0 userDict[uid]['ghost'] = 1 userDict[uid]['switch'] = 1 tell(userid, 'To open your TrikzMenu type %s!trikz %sin the chat!' %(highlight, usual)) def player_spawn(ev): userid = int(ev['userid']) uid = es.getplayersteamid(userid) player = playerlib.getPlayer(userid) if userDict[uid]['ghost'] == 1: player.setColor(255, 255, 255, 100) es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 2) es.setplayerprop(userid, "CBasePlayer.m_iHealth", 1337) def player_hurt(ev): es.setplayerprop(ev['userid'], "CBasePlayer.m_iHealth", 1337) def weapon_fire(ev): uid = es.getplayersteamid(ev['userid']) if ev['weapon'] == 'flashbang': if userDict[uid]['flash'] == 1: es.server.queuecmd('es_xgive %s weapon_flashbang' % ev['userid']) es.delayed(1.45, 'es_xremove flashbang_projectile') if userDict[uid]['switch']: gamethread.delayedname(0.2,'switchf',autos,ev['userid']) def flashbang_detonate(ev): for x in es.getUseridList(): es.setplayerprop(x, "CCSPlayer.m_flFlashDuration", (0, 8)) def autos(userid): es.server.queuecmd('es_sexec %s use weapon_knife' %userid) es.server.queuecmd('es_sexec %s use weapon_flashbang' %userid) def trikzCmd(userid, args): name = es.getplayername(userid) uid = es.getplayersteamid(userid) menu = popuplib.create('user_menu') menu.addline(' TrikzMenu') menu.addline(' ') menu.addline('->1. Give Flashbang') menu.addline('->2. AutoFlash') menu.addline('->3. Block on/off') menu.addline('->4. Autoswitch') if uid in admins: menu.addline(' ') menu.addline('->5. TrikzAdmin') menu.addline(' ') menu.addline('0. Close') menu.unsend(userid) menu.send(userid) menu.delete() menu.menuselect = mainSelect def mainSelect(userid, choice, popupid): global userDict player = playerlib.getPlayer(userid) uid = es.getplayersteamid(userid) dead = es.getplayerprop(userid, 'CBasePlayer.pl.deadflag') team = es.getplayerteam(userid) if not dead and choice == 1: if player.getFB() in (0, 1): es.server.queuecmd('es_xgive %s weapon_flashbang' % userid) tell(userid, 'You received a %sFlashbang%s.' %(highlight, usual)) else: tell(userid, 'You have the maximum amount of Flashbangs.') elif choice == 2: if userDict[uid]['flash'] == 0: userDict[uid]['flash'] = 1 tell(userid, 'Auto-Flash is now %sOn%s.'%(highlight, usual)) else: userDict[uid]['flash'] = 0 tell(userid, 'Auto-Flash is now %sOff%s.'%(highlight, usual)) elif choice == 3: if userDict[uid]['ghost'] == 1: userDict[uid]['ghost'] = 0 es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 5) player.setColor(255, 255, 255, 255) tell(userid, 'You are now %sBlocking%s.'%(highlight, usual)) else: userDict[uid]['ghost'] = 1 es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 2) player.setColor(255, 255, 255, 100) tell(userid, 'You are now %sGhost%s.'%(highlight, usual)) elif choice == 4: fbswitch(userid) elif choice == 5: if uid in admins: adminCmd(userid, None) if choice in (1, 2, 3, 4, 6, 7, 9): trikzCmd(userid, None) def adminCmd(userid, args): adm = popuplib.create('adms') adm.addline('Trikz Admin Menu') adm.addline(' ') adm.addline('->1. Block/Unblock a player') adm.addline('->2. Teleport to a player') adm.addline(' ') adm.addline('->8. Back') adm.addline('0. close') adm.unsend(userid) adm.send(userid) adm.delete() adm.menuselect = admSelect def admSelect(userid, choice, popupid): if choice == 1: global ghost_player ghost_player = popuplib.construct('ghost_player', 'players', '#alive', ghost_player_select) ghost_player.settitle("Block/Unblock a player:") popuplib.send('ghost_player', userid) elif choice == 2: global teleto_player teleto_player = popuplib.construct('teleto_player', 'players', '#alive', teleto_player_select) teleto_player.settitle('Teleport to player:') popuplib.send('teleto_player', userid) elif choice == 8: trikzCmd(userid, None) elif choice in (3, 4, 5, 6, 7, 8, 9): adminCmd(userid, None) def fbswitch(userid): sid = es.getplayersteamid(userid) if int(es.getplayerteam(userid)) > 1: if not userDict[sid]['switch']: userDict[sid]['switch'] = 1 tell(userid, 'AutoSwitch is now %sOn%s.'%(highlight, usual)) else: userDict[sid]['switch'] = 0 tell(userid, 'AutoSwitch is now %sOff%s.'%(highlight, usual)) def switchCmd(userid, args): uid = es.getplayersteamid(userid) player = playerlib.getPlayer(userid) if userDict[uid]['ghost'] == 1: userDict[uid]['ghost'] = 0 es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 5) player.setColor(255, 255, 255, 255) tell(userid, 'Block is now On.') else: userDict[uid]['ghost'] = 1 es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 2) player.setColor(255, 255, 255, 100) tell(userid, 'Block is now Off.') def ghost_player_select(userid, choice , popupid): playertarget = playerlib.getPlayer(choice) uid = es.getplayersteamid(userid) whodid = es.getplayername(userid) target = es.getuserid(choice) targetname = es.getplayername(choice) if userDict[uid]['ghost'] == 1: userDict[uid]['ghost'] = 0 es.setplayerprop(target, 'CBaseEntity.m_CollisionGroup', 5) playertarget.setColor(255, 255, 255, 255) tell(userid, 'Block of %s is now On.' % (targetname)) tell(target, 'Your block was changed to On because of the Admin %s.' % (whodid)) else: userDict[uid]['ghost'] = 1 es.setplayerprop(target, 'CBaseEntity.m_CollisionGroup', 2) playertarget.setColor(255, 255, 255, 100) tell(userid, 'Block of %s is now Off.' % (targetname)) tell(target, 'Your block was changed to Off because of the Admin %s.' % (whodid)) ghost_player.send(userid) if choice == 0: adminCmd(userid, None) def teleto_player_select(userid, choice, popupid): whodid = es.getplayername(userid) target = es.getuserid(choice) targetname = es.getplayername(choice) es.server.queuecmd('es_setpos %s %s %s %s' % (userid, es.getplayerlocation(target)[0], es.getplayerlocation(target)[1], es.getplayerlocation(target)[2] +75)) teleto_player.send(userid) if choice == 0: adminCmd(userid, None)