def dissolveRagdoll(userid): # Get dissolver effect effect = int(gg_dissolver) # Just remove the ragdoll? if effect == 1: es.delayed(2, 'es_xfire %s cs_ragdoll Kill' % userid) return # Check to see what effect to use and set up the command if effect == 6: cmd = ( 'es_xfire %s env_entity_dissolver AddOutput "dissolvetype %s"' % (userid, random.randint(0, 3))) else: cmd = ( 'es_xfire %s env_entity_dissolver AddOutput "dissolvetype %s"' % (userid, int(effect) - 2)) # Run the command es.server.queuecmd(cmd) # Dissolve the ragdoll then kill the dissolver es.delayed('0.01', 'es_xfire %s env_entity_dissolver Dissolve' % userid)
def es_map_start(event_var): '''Method to be ran on es_map_start event''' # Make the sounds downloadable make_downloadable() # Load custom GunGame events gg_resource_file.load() # Execute GunGame's server.cfg file es.delayed(1, 'exec gungame51/gg_server.cfg') # Reset all players reset_players() # Reset current leaders LeaderManager().reset() # Prune the Database prune_winners_db() # Loop through all human players for userid in getUseridList('#human'): # Update players in winner's database Player(userid).database_update() # Is the weapon order sort type set to #random? if str(gg_weapon_order_sort_type) == '#random': # Re-randomize the weapon order get_weapon_order().randomize() # Check to see if gg_start needs fired after everything is loaded delayed(2, check_gg_start)
def give(self, entity_classname): """Give the player an entity by it's classname. Arguments: entity_classname - the full keyvalue name of the weapon as it appears in es.createentityindexlist. """ es.delayed(0, "es_xgive %s %s" % (self.user_ID, entity_classname))
def give(self, entity_classname): """Give the player an entity by it's classname. Arguments: entity_classname - the full keyvalue name of the weapon as it appears in es.createentityindexlist. """ es.delayed(0, "es_xgive %s %s" %(self.user_ID, entity_classname))
def spendskills_handler(userid, choice, popupname): if es.exists("key", "wcsuserdata", userid): allowed = 0 race = es.keygetvalue("wcsuserdata", userid, "race") unused = int(es.keygetvalue("wcsuserdata", userid, "unused")) level = int(es.keygetvalue("wcsuserdata", userid, "level")) ultimatelevel = es.getInt("wcs_ultimatelevel") numoflevels = int(es.keygetvalue("wcsraces", race, "numberoflevels")) numofskills = int(es.keygetvalue("wcsraces", race, "numberofskills")) skillnames = es.keygetvalue("wcsraces", race, "skillnames").split("|") if choice != 10: if unused > 0: if choice <= numofskills: skill = "skill_%s" % choice skilllevel = int( es.keygetvalue("wcsuserdata", userid, skill)) if skilllevel < numoflevels: if choice == numofskills: if level >= ultimatelevel: allowed = 1 else: allowed = 1 if allowed == 1: skilllevel += 1 unused -= 1 es.keysetvalue("wcsuserdata", userid, skill, skilllevel) es.keysetvalue("wcsuserdata", userid, "unused", unused) skillname = skillnames[choice - 1] if skilllevel == 1: es.tell( userid, "#multi", "#lightgreenCongratulations, your new skill#green %s#lightgreen, is now level#green %s#lightgreen. Some skills are activated#green next round." % (skillname, skilllevel)) else: es.tell( userid, "#multi", "#lightgreenYour skill#green %s#lightgreen, is now level#green %s#lightgreen." % (skillname, skilllevel)) es.keysetvalue("wcsuserdata", userid, "skillcheck", 1) else: es.tell(userid, "#multi", "#lightgreenYou have no free#green Skill Points") if unused > 0: es.delayed(0.1, "wcs_spendskillsmenu %s" % userid)
def giveObject(adminid, userid): command = admins[adminid]['command'] if command.startswith(('health_', 'cash_')): prop = 'CBasePlayer.m_iHealth' if command.startswith('health_') else 'CCSPlayer.m_iAccount' amount = int(command.replace('health_', '').replace('cash_', '')) currentAmount = es.getplayerprop(userid, prop) es.setplayerprop(userid, prop, currentAmount + amount) # issue #70 :: value formatting error strInt = str(amount) thousands = [] while strInt: thousands.append(strInt[-3:]) strInt = strInt[:-3] formattedAmount = ",".join(reversed(thousands)) tokens = {} tokens['admin'] = es.getplayername(adminid) tokens['user'] = es.getplayername(userid) tokens['item'] = '#green%s #lightgreen%s' % (formattedAmount, 'cash' if command.startswith('cash_') else 'health') for tellplayer in playerlib.getPlayerList('#human'): es.tell(int(tellplayer), '#multi', xalanguage('admin give', tokens, tellplayer.get("lang"))) xaadmingive.logging.log("has given player %s %s" % (tokens['user'], tokens['item']), adminid, True) else: weaponName = _remove_prefix(command) fullName = _prepend_prefix(command) if int(admingive_stripfirst) == 1: if fullName in weaponlib.getWeaponNameList('#secondary'): weapon = playerlib.getPlayer(userid).get('secondary') else: weapon = playerlib.getPlayer(userid).get('primary') if weapon: _remove_weapon(userid, weapon) es.delayed(0.1, 'es_xgive %s %s' % (userid, fullName)) if str(admingive_anonymous) == '0': tokens = {} tokens['admin'] = es.getplayername(adminid) tokens['user'] = es.getplayername(userid) for tellplayer in playerlib.getPlayerList('#human'): tokens['item'] = '#greena #lightgreen%s' % weaponName es.tell(int(tellplayer), '#multi', xalanguage('admin give', tokens, tellplayer.get("lang"))) xaadmingive.logging.log("has given player %s %s" % (tokens['user'], tokens['item']), adminid, True)
def dissolveRagdoll(userid): # Get dissolver effect effect = int(gg_dissolver) # Just remove the ragdoll? if effect == 1: es.delayed(2, 'es_xfire %s cs_ragdoll Kill' % userid) return # Check to see what effect to use and set up the command if effect == 6: cmd = ('es_xfire %s env_entity_dissolver AddOutput "dissolvetype %s"' % (userid, random.randint(0, 3))) else: cmd = ('es_xfire %s env_entity_dissolver AddOutput "dissolvetype %s"' % (userid, int(effect) - 2)) # Run the command es.server.queuecmd(cmd) # Dissolve the ragdoll then kill the dissolver es.delayed('0.01', 'es_xfire %s env_entity_dissolver Dissolve' % userid)
def setfx(args): if len(args) == 5: type = args[0] if not type in 'freeze|jetpack|god|noblock|burn|speed|health|armor|cash|gravity|ulti_immunity|disguiser|1stclip|2ndclip|longjump|lj|invisp|location|blind|evade': logging.log('wcs_setfx: '+type+' is not a valid type.') type = 0 uid = args[1] op = args[2] if not op in '=|+|-': op = "=" value = float(args[3]) time = float(args[4]) player = playerlib.getPlayer(uid) if type == 'freeze': if op == '=': speed = float(player.getSpeed()) wcsgroup.setUser(uid, 'speed', speed) if value >= 1: player.setSpeed(0) if time > 0: gamethread.delayed(time, player.setSpeed, speed, 0) else: logging.log('wcs_setfx: '+type+' can only use values 1 or 0.') if type == 'god': if op == '=': player.godmode(int(value)) if time > 0: gamethread.delayed(time, player.godmode, 0, 0) else: logging.log('wcs_setfx: '+type+' can only use values 1 or 0.') if type == 'ulti_immunity': if op == '=': wcsgroup.setUser(uid, 'ulti_immunity', value) if time > 0: if value == 1: value = 0 if value == 0: value = 1 wcsgroup.setUser(uid, 'ulti_immunity', value) else: logging.log('wcs_setfx: '+type+' can only use values 1 or 0.') if type == 'jetpack': if op == '=': player.jetpack(int(value)) if time > 0: gamethread.delayed(time, player.jetpack, 0, 0) else: logging.log('wcs_setfx: '+type+' can only use values 1 or 0.') if type == 'noblock': if op == '=': player.noblock(int(value)) if time > 0: gamethread.delayed(time, player.noblock, 0, 0) else: logging.log('wcs_setfx: '+type+' can only use values 1 or 0.') if type == 'burn': if op == '=': if value == 1: es.set('wcs_uid', uid) es.set('wcs_time', time) es.server.queuecmd('es wcs fire server_var(wcs_uid) server_var(wcs_time)') es.delayed(time, 'es wcs extinguish server_var(wcs_uid)') if value == 0: es.set('wcs_uid', uid) es.server.queuecmd('es wcs extinguish server_var(wcs_uid)') else: logging.log('wcs_setfx: '+type+' can only use values 1 or 0.') if type == 'speed': speed = float(player.getSpeed()) if op == '=': player.setSpeed(value) if time > 0: gamethread.delayed(time, player.setSpeed, speed, 0) if op == '+': player.setSpeed(value+speed) if time > 0: gamethread.delayed(time, player.setSpeed, speed, 0) if op == '-': player.setSpeed(speed-value) if time > 0: gamethread.delayed(time, player.setSpeed, speed, 0) if type == 'health': health = float(player.getHealth()) if op == '=': player.setHealth(value) if time > 0: gamethread.delayed(time, player.setHealth, health, 0) if op == '+': player.setHealth(value+health) if time > 0: gamethread.delayed(time, player.setHealth, health, 0) if op == '-': player.setHealth(health-value) if time > 0: gamethread.delayed(time, player.setHealth, health, 0) if type == 'armor': armor = float(player.getArmor()) if op == '=': player.setArmor(value) if time > 0: gamethread.delayed(time, player.setArmor, armor, 0) if op == '+': player.setArmor(value+armor) if time > 0: gamethread.delayed(time, player.setArmor, armor, 0) if op == '-': player.setArmor(armor-value) if time > 0: gamethread.delayed(time, player.setArmor, armor, 0) if type == 'cash': cash = float(player.getCash()) if op == '=': player.setCash(value) if time > 0: gamethread.delayed(time, player.setCash, cash, 0) if op == '+': player.setCash(value+cash) if time > 0: gamethread.delayed(time, player.setCash, cash, 0) if op == '-': player.setCash(cash-value) if time > 0: gamethread.delayed(time, player.setCash, cash, 0) if type == 'disguiser': team = player.teamid() if team == 2: if es.ServerVar('wcs_game') == cstrike: player.setModel('player/ct_urban') if time > 0: gamethread.delayed(time, player.setModel, 'player/t_pheonix', 0) if es.ServerVar('wcs_game') == dod: player.setModel('player/american_assault') if time > 0: gamethread.delayed(time, player.setModel, 'player/american_assault', 0) if team == 3: if es.ServerVar('wcs_game') == cstrike: player.setModel('player/t_phoenix') if time > 0: gamethread.delayed(time, player.setModel, 'player/ct_urban', 0) if es.ServerVar('wcs_game') == dod: player.setModel('player/german_assault') if es.ServerVar('wcs_game') == dod: player.setModel('player/american_assault') if time > 0: gamethread.delayed(time, player.setModel, 'player/german_assault', 0) if type == '1stclip': weapon = player.getPrimary() clip = float(player.getClip(weapon)) if op == '=': player.setClip(weapon, value) if time > 0: gamethread.delayed(time, player.setClip, (weapon,clip), 0) if op == '+': player.setClip(weapon, value+clip) if time > 0: gamethread.delayed(time, player.setClip, (weapon,clip), 0) if op == '-': player.setClip(weapon, clip-value) if time > 0: gamethread.delayed(time, player.setClip, (weapon,clip), 0) if type == '2ndclip': weapon = player.getSecondary() clip = float(player.getClip(weapon)) if op == '=': player.setClip(weapon, value) if time > 0: gamethread.delayed(time, player.setClip, (weapon,clip), 0) if op == '+': player.setClip(weapon, value+clip) if time > 0: gamethread.delayed(time, player.setClip, (weapon,clip), 0) if op == '-': player.setClip(weapon, clip-value) if time > 0: gamethread.delayed(time, player.setClip, (weapon,clip), 0) if type == 'gravity': if wcsgroup.getUser(uid, 'gravity') != None: gravity = float(wcsgroup.getUser(uid, 'gravity')) else: gravity = 1.0 if op == '=': expand.gravity(uid, value) wcsgroup.setUser(uid, 'gravity', value) if time > 0: gamethread.delayed(time, expand.gravity, (uid, gravity), 0) if op == '+': expand.gravity(uid, value+gravity) wcsgroup.setUser(uid, 'gravity', value+gravity) if time > 0: gamethread.delayed(time, expand.gravity, (uid, gravity), 0) if op == '-': expand.gravity(uid, gravity-value) wcsgroup.setUser(uid, 'gravity', gravity-value) if time > 0: gamethread.delayed(time, expand.gravity, (uid, gravity), 0) if type == 'invisp': try: invisp = int(wcsgroup.getUser(uid, 'invisp')) except: invisp = 255 if value > 100: value = 100 value2 = ((value - 100) * -2.55) if op == '=': player.setColor(255, 255, 255, value2) wcsgroup.setUser(uid, 'invisp', value2) if time > 0: gamethread.delayed(time, player.setColor, (255, 255, 255, invisp), 0) if op == '+': player.setColor(255, 255, 255, value2+invisp) wcsgroup.setUser(uid, 'invisp', value2+invisp) if time > 0: gamethread.delayed(time, player.setColor, (255, 255, 255, invisp), 0) if op == '-': player.setColor(255, 255, 255, invisp-value2) wcsgroup.setUser(uid, 'invisp', invisp-value2) if time > 0: gamethread.delayed(time, player.setColor, (255, 255, 255, invisp), 0) if type == 'longjump': longjump = float(wcsgroup.getUser(uid, 'longjump')) if op == '=': wcsgroup.setUser(uid, 'longjump', value) if time > 0: gamethread.delayed(time, wcsgroup.setUser, (uid, 'longjump', longjump), 0) if op == '+': wcsgroup.setUser(uid, 'longjump', value+longjump) if time > 0: gamethread.delayed(time, wcsgroup.setUser, (uid, 'longjump', longjump), 0) if op == '-': wcsgroup.setUser(uid, 'longjump', longjump-value) if time > 0: gamethread.delayed(time, wcsgroup.setUser, (uid, 'longjump', longjump), 0) if type == 'location': location = float(player.getLocation()) vector = es.createvectorstring(location) if op != '=': logging.log('wcs_setfx: Location uses = only as an operator.') if op == '=': player.setLocation(value) if time > 0: gamethread.delayed(time, player.setLocation, vector) if type == 'blind': if value > 100: value = 100 value2 = ((value - 100) * -2.55) if op == '=': player.blind(value2, time) else: logging.log('wcs_setfx: Blind uses = only as an operator.') if type == 'evade': evade = float(wcsgroup.getUser(uid, 'evade')) if op == '=': wcsgroup.setUser(uid, 'evade', value) if time > 0: gamethread.delayed(time, wcsgroup.setUser, (uid, 'evade', evade), 0) if op == '+': wcsgroup.setUser(uid, 'evade', value+evade) if time > 0: gamethread.delayed(time, wcsgroup.setUser, (uid, 'evade', evade), 0) if op == '-': wcsgroup.setUser(uid, 'evade', evade-value) if time > 0: gamethread.delayed(time, wcsgroup.setUser, (uid, 'evade', evade), 0)
def power(): userid = str(es.getcmduserid()) player = playerlib.getPlayer(userid) if not playerlib.getPlayer(userid).isdead: if int(time.time()) >= int(gusers[userid]['nc_cooldown']): es.server.queuecmd( 'es_xsetplayerprop %s "CBaseEntity.movetype" 8' % userid) if not 'speed' in gusers[userid]: gusers[userid]['speed'] = 1.0 player.set("speed", 1.0) gusers[userid]['nc_cooldown'] = int(time.time()) + 10 es.centertell(userid, 'Noclip activated, do not get Stuck!') es.tell( userid, '#multi', '#green[SH]#lightgreen Nightcrawler is partially blinded. You now are aswell.' ) gusers[userid]['crawl'] = 1 fade(userid, 1, 0.5, 2.8, 0, 0, 0, 254) speed_set(userid) #es.server.cmd('ezrestrict %s #all' % userid) #es.server.cmd('ezrestrict_removeidle #all') #es.server.cmd('ezunrestrict %s knife' % userid) gamethread.delayed(0.1, es.server.queuecmd, 'es_xgive %s weapon_knife' % userid) es.delayed(1, 'es_centertell %s 6 seconds left...' % userid) es.delayed(2, 'es_centertell %s 5 seconds left...' % userid) es.delayed(3, 'es_centertell %s 4 seconds left...' % userid) es.delayed(4, 'es_centertell %s 3 seconds left...' % userid) es.delayed(5, 'es_centertell %s 2 seconds left...' % userid) es.delayed(6, 'es_centertell %s 1 seconds left...' % userid) gamethread.delayed(7, undo, (player)) else: es.tell( userid, '#multi', '#green[SH]#lightgreen Cannot activate Nightcrawler #green', int(gusers[userid]['nc_cooldown']) - int(time.time()), '#lightgreenseconds left')
def startLoop(): deadPlayerList = playerlib.getPlayerList('#dead') for deadPlayer in deadPlayerList: drawGhost(deadPlayer) es.delayed(0.2, 'es_xdoblock ip_spirits/startLoop')
def wum_playerinfo_handler(userid,choice,popupid): if choice == 8: checkPop(popupid) es.delayed(0.0001, "es wcs_usersmenu %s"%userid) elif choice == 10: checkPop(popupid)
def strip(self): """Strip the player of all their weapons.""" strip_entity = "player_weaponstrip" self.give(strip_entity) es.delayed(0, "es_xfire %s %s strip" % (self.user_ID, strip_entity))
def strip(self): """Strip the player of all their weapons.""" strip_entity = "player_weaponstrip" self.give(strip_entity) es.delayed(0, "es_xfire %s %s strip" %(self.user_ID, strip_entity))
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')