import es import random import playerlib import gamethread info = es.AddonInfo() info.name = 'RedRover' info.version = '1.01' info.url = 'www.ninjaserve.org' info.basename = 'redrover' info.author = '7355608' rr_spawnlist = {} rr_weaponlist = {} rr_pistol = ['glock', 'usp', 'p228', 'deagle', 'elite', 'fiveseven'] rr_primary = ['awp', 'g3sg1', 'sg550', 'galil', 'ak47', 'scout', 'sg552', 'famas', 'm4a1', 'aug', 'm3', 'xm1014', 'mac10', 'tmp', 'mp5navy', 'ump45', 'p90', 'm249'] def load(): es.server.cmd('es_xset redrover_version 1.01') es.server.cmd('es_makepublic redrover_version') es.ServerVar('mp_limitteams').set('0') es.ServerVar('mp_autoteambalance').set('0') def unload(): es.server.cmd('es_xset redrover_version 0') def item_pickup(event_var): global rr_weaponlist if rr_weaponlist[event_var['userid']]['spawn'] == 1 and event_var['item'] in rr_pistol: rr_weaponlist[event_var['userid']]['spawn'] = 0 else: if event_var['item'] in rr_primary: rr_weaponlist[event_var['userid']]['primary'] = 'weapon_' + event_var['item'] elif event_var['item'] in rr_pistol: rr_weaponlist[event_var['userid']]['pistol'] = 'weapon_' + event_var['item'] def player_death(event_var): global rr_weaponlist if rr_weaponlist.has_key(event_var['userid']): rr_weaponlist[event_var['userid']]['spawn'] = 1 rr_tmp_t = len(playerlib.getUseridList('#t')) rr_tmp_ct = len(playerlib.getUseridList('#ct')) es.server.cmd('es_fire ' + event_var['userid'] + ' cs_ragdoll kill') es.server.cmd('est_RemoveIdle weapon') if event_var['es_userteam'] == '2': if rr_tmp_t > 1: rr_tpos = es.getplayerprop(event_var['userid'],'CCSPlayer.baseclass.baseclass.baseclass.baseclass.baseclass.baseclass.m_vecOrigin') rr_tdir = es.getplayerprop(event_var['userid'],'CBasePlayer.baseclass.baseclass.baseclass.baseclass.baseclass.m_angRotation') rr_pos = es.splitvectorstring(rr_tpos) rr_dir = es.splitvectorstring(rr_tdir) es.server.cmd('est_team ' + event_var['userid'] + ' 3') es.server.cmd('est_spawn ' + event_var['userid'] + ' 1') es.setpos(event_var['userid'],rr_pos[0],rr_pos[1],rr_pos[2] - 35.0) es.setang(event_var['userid'],rr_dir[0],rr_dir[1],rr_dir[2]) else: es.server.cmd('est_god #alive 1') rr_random_team() else: if rr_tmp_ct > 1: rr_tpos = es.getplayerprop(event_var['userid'],'CCSPlayer.baseclass.baseclass.baseclass.baseclass.baseclass.baseclass.m_vecOrigin') rr_tdir = es.getplayerprop(event_var['userid'],'CBasePlayer.baseclass.baseclass.baseclass.baseclass.baseclass.m_angRotation') rr_pos = es.splitvectorstring(rr_tpos) rr_dir = es.splitvectorstring(rr_tdir) es.server.cmd('est_team ' + event_var['userid'] + ' 2') es.server.cmd('est_spawn ' + event_var['userid'] + ' 1') es.setpos(event_var['userid'],rr_pos[0],rr_pos[1],rr_pos[2] - 35.0) es.setang(event_var['userid'],rr_dir[0],rr_dir[1],rr_dir[2]) else: es.server.cmd('est_god #alive 1') rr_random_team() def player_spawn(event_var): global rr_spawnlist if not rr_spawnlist.has_key(event_var['userid']): rr_spawnlist[event_var['userid']] = event_var['es_userteam'] if len(rr_spawnlist) == 1: rr_handlespawn(event_var['userid']) def rr_handlespawn(userid): global rr_spawnlist, rr_weaponlist if rr_weaponlist.has_key(userid): if rr_weaponlist[userid]['pistol'] != None: es.server.cmd('est_RemoveWeapon ' + userid + ' 2') es.server.queuecmd('es_give ' + userid + ' ' + rr_weaponlist[userid]['pistol']) es.server.queuecmd('es_sexec ' + userid + ' use ' + rr_weaponlist[userid]['pistol']) if rr_weaponlist[userid]['primary'] != None: es.server.cmd('est_RemoveWeapon ' + userid + ' 1') es.server.queuecmd('es_give ' + userid + ' ' + rr_weaponlist[userid]['primary']) es.server.queuecmd('es_sexec ' + userid + ' use ' + rr_weaponlist[userid]['primary']) else: if rr_spawnlist[userid] == '3': rr_weaponlist[userid] = {'primary': None, 'pistol': 'weapon_usp', 'spawn': 0} else: rr_weaponlist[userid] = {'primary': None, 'pistol': 'weapon_glock', 'spawn': 0} del rr_spawnlist[userid] rr_nextspawn() def rr_nextspawn(): for tmp in rr_spawnlist: rr_handlespawn(tmp) return 0 def round_start(event_var): es.server.cmd('est_god #alive 0') rr_tmplist = es.createentitylist('cs_gamerules') for tmp in rr_tmplist: es.setindexprop(tmp,'CCSGameRulesProxy.cs_gamerules_data.m_bMapHasRescueZone','0') es.setindexprop(tmp,'CCSGameRulesProxy.cs_gamerules_data.m_bMapHasBombTarget','0') es.server.cmd('es_fire ' + str(es.getuserid()) + ' func_bomb_target kill') es.server.cmd('es_fire ' + str(es.getuserid()) + ' hostage_entity kill') es.server.cmd('es_fire ' + str(es.getuserid()) + ' weapon_c4 kill') def rr_random_team(): rr_tmp_t = len(playerlib.getUseridList('#t')) rr_tmp_ct = len(playerlib.getUseridList('#ct')) if rr_tmp_t == 1: rr_tmp = playerlib.getUseridList('#ct') rr_count = int(rr_tmp_ct / 2) rr_list = random.sample(rr_tmp, rr_count) for rr_int in rr_list: es.server.cmd('est_team ' + str(rr_int) + ' 2') else: rr_tmp = playerlib.getUseridList('#t') rr_count = int(rr_tmp_t / 2) rr_list = random.sample(rr_tmp, rr_count) for rr_int in rr_list: es.server.cmd('est_team ' + str(rr_int) + ' 3')