import es import playerlib import gamethread import popuplib teamI = None teamV = None victimmenu = None viclist = ['Stealthy', 'Quick', 'Tough'] Players = {} def load(): es.server.cmd('echo CSS Freeze Tag By: J3ff Loaded.') global victimmenu victimmenu = popuplib.easymenu('victimmenu', '_popup_choice', menuselect) victimmenu.settitle('Please choose what type of victim you would like to play as:') for i in viclist: victimmenu.addoption(i, i) def menuselect(userid, choice, popupid): global Players if choice == 'Stealthy': Players[userid]['type'] = 'Stealthy' es.server.cmd('est_setplayercolor %i 255 255 255 25 1'%userid) es.tell(userid, '#lightgreen', 'You are stealth for this round! You are harder to see!') elif choice == 'Quick': Players[userid]['type'] = 'Quick' es.server.cmd('est_speed %i 1.5'%userid) es.tell(userid, '#lightgreen', 'You are quick for this round! You move fast!') elif choice == 'Tough': Players[userid]['type'] = 'Tough' Players[userid]['hits'] = 5 es.tell(userid, '#lightgreen', 'You are tough! You take 5 hits to freeze!') def es_map_start(event_var): global teamI global teamV if 'de_' in event_var['mapname']: teamI = '3' teamV = '2' es.ServerVar('bot_join_team').set('t') es.ServerVar('mp_c4timer').set(15) elif 'cs_' in event_var['mapname']: teamI = '2' teamV = '3' es.ServerVar('bot_join_team').set('ct') es.ServerVar('mp_limitteams').set(0) es.ServerVar('mp_autoteambalance').set(0) def player_activate(event_var): global Players userid = int(event_var['userid']) if not Players.has_key(userid): Players[userid] = {} Players[userid]['it'] = 0 Players[userid]['frozen'] = 0 Players[userid]['ammo pending'] = 0 Players[userid]['type'] = 0 def player_team(event_var): global Players if Players.has_key(int(event_var['userid'])): Userkey = Players[int(event_var['userid'])] itset = 0 if event_var['team'] == teamI: if teamI == '2': loopteam = '#t' elif teamI == '3': loopteam = '#ct' playercount = 0 for user in playerlib.getUseridList(loopteam): playercount += 1 if playercount == 1: Userkey['it'] = 1 else: es.changeteam(event_var['userid'], teamV) es.tell(event_var['userid'], '#lightgreen', 'There is already someone who is it! You have been moved to the victim team.') def player_spawn(event_var): id = playerlib.getPlayer(event_var['userid']) c4 = int(id.get('c4')) es.server.cmd('est_stripplayer %s 1'%(event_var['userid'])) if c4: es.server.cmd('es_xgive %s weapon_c4'%event_var['userid']) if event_var['es_userteam'] == teamI: Players[int(event_var['userid'])]['type'] = 0 es.server.cmd('es_xgive %s weapon_usp'%event_var['userid']) es.tell(event_var['userid'], '#lightgreen', 'You are it! Tag all the players with your pistol to win the round!') id.set('ammo', ['secondary', 100]) id.set('clip', ['secondary', 12]) elif event_var['es_userteam'] == teamV: global Players userid = int(event_var['userid']) if Players.has_key(userid): if 'BOT' in event_var['es_steamid']: Players[userid]['type'] = 'Tough' Players[userid]['hits'] = 5 else: Players[userid]['type'] = 0 victimmenu.send(event_var['userid']) es.tell(event_var['userid'], '#lightgreen', 'You are one of the victim team. Complete your objective to win the round. Attack frozen teammates to get them moving again.') es.server.cmd('es_xgive %s weapon_knife'%event_var['userid']) id.set('cash', 0) id.set('health', 1025) def weapon_fire_on_empty(event_var): id = playerlib.getPlayer(event_var['userid']) id.set('ammo', ['secondary', 100]) id.set('clip', ['secondary', 12]) def hostage_follows(event_var): playerlib.getPlayer(event_var['userid']).set('cash', 0) def bomb_begindefuse(event_var): es.server.cmd('ent_remove_all planted_c4') es.server.queuecmd('es_xgive %s weapon_c4'%random.choice(playerlib.getUseridList('#t'))) es.msg('#lightgreen', 'The IT player has stopped the bomb from going off! Try to get it planted again!') def bomb_exploded(event_var): for p in playerlib.getUseridList('#ct'): es.server.cmd('est_team %i %s'%(p, teamV)) es.server.cmd('est_team %s %s'%(event_var['userid'], teamI)) es.tell(event_var['userid'], '#lightgreen', 'The bomb you plant has exploded! You get to be it now.') def hostage_rescued_all(event_var): vcount = int(es.getplayercount(3)) randplayer = random.randrange(vcount) + 1 userlist = playerlib.getUseridList('#ct') id = userlist[randplayer] for p in playerlib.getUseridList('#t'): es.server.cmd('est_team %i %s'%(p, teamV)) es.server.cmd('est_team %s %s'%(id, teamI)) def round_end(event_var): global Players for id in playerlib.getUseridList('#all'): Players[id]['frozen'] = 0 def player_hurt(event_var): global Players if event_var['attacker'] != '0': Attackerkey = Players[int(event_var['attacker'])] Victimkey = Players[int(event_var['userid'])] playerlib.getPlayer(event_var['userid']).set('health', 1025) if event_var['es_attackerteam'] == event_var['es_userteam'] and event_var['es_userteam'] == teamV: frozen = Victimkey['frozen'] if frozen: if Victimkey['type'] == 'Tough': Victimkey['hits'] = 5 elif Victimkey['type'] == 'Stealthy': es.server.cmd('est_setplayercolor %s 255 255 255 25 1'%event_var['userid']) Victimkey['frozen'] = 0 es.server.cmd('est_freeze %s 0'%event_var['userid']) es.tell(event_var['userid'], '#lightgreen', 'You have been unfrozen by your teammate!') elif event_var['es_attackerteam'] == teamI and event_var['es_userteam'] == teamV: it = Attackerkey['it'] if it: hits = 0 if Victimkey['type'] == 'Tough': Victimkey['hits'] -= 1 hits = Victimkey['hits'] elif Victimkey['type'] == 'Stealthy': es.server.cmd('est_setplayercolor %s 255 255 255 255 1'%event_var['userid']) if not hits: Victimkey['frozen'] = 1 es.server.cmd('est_freeze %s 1'%event_var['userid']) es.tell(event_var['userid'], '#lightgreen', 'You have been tagged and are frozen! Wait for a teammate to unfreeze you.') pcount = 0 if teamI == '2': loopteam = '#ct' elif teamI == '3': loopteam = '#t' for userid in playerlib.getUseridList(loopteam): frozen = Players[userid]['frozen'] if not frozen or playerlib.getPlayer(userid).get('isdead') == '0': pcount += 1 if pcount: es.tell(event_var['attacker'], '#lightgreen', 'You have just frozen a player! Only %i more players left still moving.'%pcount) else: es.msg('#lightgreen', '%s has frozen the entire opposing team and has won the round!'%event_var['es_attackername']) es.server.cmd('est_team %s %s'%(event_var['userid'], teamI)) es.server.cmd('est_team %s %s'%(event_var['attacker'], teamV)) es.ServerVar('sv_cheats').set(1) es.server.cmd('endround') es.ServerVar('sv_cheats').set(0)