import es, playerlib, popuplib, gamethread, random, usermsg ### Start Config ### admins = ('STEAM_0:0:11228704', 'STEAM_0:0:15965938', 'STEAM_ID_LAN', 'STEAM_0:0:11089864', 'STEAM_0:1:5774407', 'STEAM_0:1:12114951') # Admins here bomb_range = 1000 # How many game units the bomb stretches ### End COnfig info = es.AddonInfo() info['name'] = "SuperMods" info['version'] = "3.5" info['author'] = "Bonbon AKA: Bonbon367" info['url'] = "http://www.notimplementedyet.com" info['description'] = "An admin punish menu/abuse menu with lots of features" uhg = [] usg = [] ufb = [] class commands: def nearcoord(self, x_origin, y_origin, z_origin, x_range, y_range, z_range, block, team, initiator): for userid in playerlib.getUseridList(team): loc = es.getplayerlocation(userid) if abs(loc[0] - x_origin) <= x_range and abs(loc[1] - y_origin) <= y_range and abs(loc[2] - z_origin) <= z_range: block(userid, initiator) def lightning(self, x_origin, y_origin, z_origin, lightning_range, lightning_time, attacker, team): loc = (x_origin, y_origin, z_origin) effect_time = 0 effect_loop(loc, lightning_time, lightning_range, attacker, effect_time, team) def effect_loop(loc, lightning_time, lightning_range, userid, effect_time, team): if effect_time <= lightning_time: random1 = random.randint(lightning_range * -1, lightning_range) random2 = random.randint(lightning_range * -1, lightning_range) es.server.queuecmd('est_effect 3 #all 0 sprites/lgtning.vmt %s %s %s %s %s %s 1 10 20 40 250 255 255'%(loc[0] + random1, loc[1] + random2, loc[2], loc[0] + random1, loc[1] + random2, loc[2] + 120)) effect_time += 0.03 commands().nearcoord(loc[0] + random1, loc[1] + random2, loc[2], 45, 45, 45, lightning_damage, team, userid) gamethread.delayedname(0.03, 'effect_%s'%userid, effect_loop, args=(loc, lightning_time, lightning_range, userid, effect_time, team)) def lightning_damage(userid, attacker): random_number = (random.randint(1, 6) * random.randint(1, 6)) - random.randint(1, 10) random_number2 = (random.randint(1, 7) * random.randint(1, 7)) - random.randint(1, 10) random_number3 = (random.randint(1, 7) * random.randint(1, 7)) - random.randint(1, 10) if random_number > 0: es.server.queuecmd('damage %s %s 32 %s'%(userid, random_number3, attacker)) es.tell(attacker, '#multi', '#greenYou have dealt #lightgreen%s #greendamage to #lightgreen%s'%(random_number, playerlib.getPlayer(userid).attributes['name'])) else: if random_number2 > 0: es.server.queuecmd('damage %s %s 32 %s'%(userid, random_number3, attacker)) es.tell(attacker, '#multi', '#greenYou have dealt #lightgreen%s #greendamage to #lightgreen%s'%(random_number2, playerlib.getPlayer(userid).attributes['name'])) else: es.server.queuecmd('damage %s %s 32 %s'%(userid, random_number3, attacker)) es.tell(attacker, '#multi', '#greenYou have dealt #lightgreen%s #greendamage to #lightgreen%s'%(random_number3, playerlib.getPlayer(userid).attributes['name'])) es.ServerVar('sm_version', info['version'], 'SuperMods made by Bonbon AKA Bonbon367').makepublic() def load2(): if not es.exists('saycommand', '!sm'): es.regsaycmd('!sm', 'sm/showmenu', 'I\'m too lazy') smmm = popuplib.easymenu('Main Menu', '_popup_choice', smmm_menuselect) bhm = popuplib.easymenu('Black Hole', '_popup_choice', bhm_menuselect) rm = popuplib.easymenu('Rocket', '_popup_choice', rm_menuselect) swm = popuplib.easymenu('Strip Player', '_popup_choice', swm_menuselect) pm = popuplib.easymenu('Plant', '_popup_choice', pm_menuselect) sm = popuplib.easymenu('Shake', '_popup_choice', sm_menuselect) dm = popuplib.easymenu('Drug', '_popup_choice', dm_menuselect) em = popuplib.easymenu('Explosion', '_popup_choice', em_menuselect) bm = popuplib.easymenu('Burn', '_popup_choice', bm_menuselect) fm = popuplib.easymenu('Freeze', '_popup_choice', fm_menuselect) mm = popuplib.easymenu('Mine', '_popup_choice', mm_menuselect) slm = popuplib.easymenu('Slap', '_popup_choice', slm_menuselect) eem = popuplib.easymenu('Entity Explosion', '_popup_choice', eem_menuselect) pem = popuplib.easymenu('Player Explosion', '_popup_choice', pem_menuselect) pum = popuplib.easymenu('Push Player', '_popup_choice', pum_menuselect) pdm = popuplib.easymenu('Prop Destroy', '_popup_choice', pdm_menuselect) ssm = popuplib.easymenu('Super Slap', '_popup_choice', ss_menuselect) dp = popuplib.easymenu('Destroy All Props', '_popup_choice', dp_menuselect) lm = popuplib.easymenu('Lightning Strike', '_popup_choice', lightning) beacon = popuplib.easymenu('Beacon Menu', '_popup_choice', beacon_select) propspin = popuplib.easymenu('Prop Spinner', '_popup_choice', prop_spinner) drunk = popuplib.easymenu('Drunk', '_popup_choice', drunk2) burym = popuplib.easymenu('Bury', '_popup_choice', bury) step = popuplib.easymenu('Step Sizes', '_popup_choice', big_steps) flash = popuplib.easymenu('Flash Player', '_popup_choice', flash_player) slow = popuplib.easymenu('Slow Player', '_popup_choice', slow_player) grav = popuplib.easymenu('High Grav', '_popup_choice', high_grav) slay = popuplib.easymenu('Slay Player', '_popup_choice', slay_player) smoke = popuplib.easymenu('Unlimited Smoke', '_popup_choice', smoke_player) flash = popuplib.easymenu('Unlimited Flash', '_popup_choice', flashbang_player) he = popuplib.easymenu('Unlimited HE', '_popup_choice', hegrenade_player) blind = popuplib.easymenu('Blind', '_popup_choice', blind_player) firebomb = popuplib.easymenu('Fire Bomb', '_popup_choice', firebomb_player) freezebomb = popuplib.easymenu('Freeze Bomb', '_popup_choice', freezebomb_player) timebomb = popuplib.easymenu('Time Bomb', '_popup_choice', timebomb_player) for cow_go_moo in ('Black Hole', 'Rocket', 'Strip Player', 'Plant', 'Shake', 'Drug', 'Explosion', 'Burn', 'Freeze', 'Mine', 'Slap', 'Entity Explosion', 'Player Explosion', 'Push Player', 'Super Slap', 'Destroy All Props', 'Lightning Strike', 'Beacon Menu', 'Prop Spinner', 'Drunk', 'Bury', 'Step Sizes', 'Flash Player', 'Slow Player', 'High Grav', 'Slay Player', 'Unlimited Smoke', 'Unlimited Flash', 'Unlimited HE', 'Blind', 'Fire Bomb', 'Freeze Bomb', 'Time Bomb' ): smmm.addoption(cow_go_moo, cow_go_moo) em.addoption('point', 'Point and Boom') em.addoption('loc', 'Boom at your feet') em.submenu(0, 'Main Menu') mm.addoption('mine', 'Create a mine') mm.submenu(0, 'Main Menu') eem.addoption('point', 'Point and Boom') eem.addoption('loc', 'Boom at your feet') eem.submenu(0, 'Main Menu') dp.addoption('continue', 'Destroy All Props') dp.submenu(0, 'Main Menu') pdm.addoption('destroy', 'Point and Destroy') pdm.submenu(0, 'Main Menu') propspin.addoption('x', 'x') propspin.addoption('y', 'y') propspin.addoption('z', 'z') propspin.submenu(0, 'Main Menu') def unload(): if es.exists('saycommand', '!sm'): es.unregsaycmd('!sm') for a in ('Fire Bomb', 'Freeze Bomb', 'Time Bomb', 'Blind', 'Unlimited Flash', 'Unlimited HE', 'Unlimited Smoke', 'Slay Player', 'High Grav', 'Slow Player', 'Main Menu', 'Black Hole', 'Rocket', 'Strip Player', 'Plant', 'Shake', 'Explosion', 'Burn', 'Freeze', 'Mine', 'Slap', 'Entity Explosion', 'Player Explosion', 'Push Player', 'Prop Destroy', 'Beacon Menu', 'Super Slap', 'Destroy All Props', 'Lightning Strike', 'Prop Spinner', 'Drunk', 'Bury', 'Step Sizes', 'Flash Player'): popuplib.delete(a) def showmenu(): userid = es.getcmduserid() if playerlib.getPlayer(userid).attributes['steamid'] in admins: popuplib.send('Main Menu', userid) else: es.tell(userid, '#multi', '#green[SuperMods]:#default Sorry, you are not authorized to run this command!') def smmm_menuselect(userid, choice, popupid): bhm = popuplib.easymenu('Black Hole', '_popup_choice', bhm_menuselect) rm = popuplib.easymenu('Rocket', '_popup_choice', rm_menuselect) swm = popuplib.easymenu('Strip Player', '_popup_choice', swm_menuselect) pm = popuplib.easymenu('Plant', '_popup_choice', pm_menuselect) sm = popuplib.easymenu('Shake', '_popup_choice', sm_menuselect) dm = popuplib.easymenu('Drug', '_popup_choice', dm_menuselect) bm = popuplib.easymenu('Burn', '_popup_choice', bm_menuselect) fm = popuplib.easymenu('Freeze', '_popup_choice', fm_menuselect) slm = popuplib.easymenu('Slap', '_popup_choice', slm_menuselect) pum = popuplib.easymenu('Push Player', '_popup_choice', pum_menuselect) pem = popuplib.easymenu('Player Explosion', '_popup_choice', pem_menuselect) ssm = popuplib.easymenu('Super Slap', '_popup_choice', ss_menuselect) lm = popuplib.easymenu('Lightning Strike', '_popup_choice', lightning) beacon = popuplib.easymenu('Beacon Menu', '_popup_choice', beacon_select) drunk = popuplib.easymenu('Drunk', '_popup_choice', drunk2) burym = popuplib.easymenu('Bury', '_popup_choice', bury) step = popuplib.easymenu('Step Sizes', '_popup_choice', big_steps) flash = popuplib.easymenu('Flash Player', '_popup_choice', flash_player) slow = popuplib.easymenu('Slow Player', '_popup_choice', slow_player) grav = popuplib.easymenu('High Grav', '_popup_choice', high_grav) slay = popuplib.easymenu('Slay Player', '_popup_choice', slay_player) smoke = popuplib.easymenu('Unlimited Smoke', '_popup_choice', smoke_player) flash = popuplib.easymenu('Unlimited Flash', '_popup_choice', flashbang_player) he = popuplib.easymenu('Unlimited HE', '_popup_choice', hegrenade_player) blind = popuplib.easymenu('Blind', '_popup_choice', blind_player) firebomb = popuplib.easymenu('Fire Bomb', '_popup_choice', firebomb_player) freezebomb = popuplib.easymenu('Freeze Bomb', '_popup_choice', freezebomb_player) timebomb = popuplib.easymenu('Time Bomb', '_popup_choice', timebomb_player) for x in (bhm, rm, swm, pm, sm, dm, bm, fm, slm, pum, pem, ssm, lm, beacon, drunk, burym, step, flash, slow, grav, slay, smoke, flash, he, blind, firebomb, freezebomb, timebomb): x.submenu(0, 'Main Menu') for player in playerlib.getPlayerList(): p_userid = int(player) p_name = player.get('name') for xyzzy in (bhm, rm, swm, pm, sm, dm, bm, fm, slm, pum, pem, ssm, lm, beacon, drunk, burym, step, flash, slow, grav, slay, smoke, flash, he, blind, firebomb, freezebomb, timebomb): xyzzy.addoption(p_userid, p_name) popuplib.send(choice, userid) def bhm_menuselect(userid, choice, popupid): (x, y, z) = es.getplayerlocation(choice) es.server.queuecmd('est_blackhole %s %s %s 5'%(x, y, z)) es.tell(userid, '#multi', '#green[SuperMods]:#default You have turned %s into a blackhole!'%playerlib.getPlayer(choice).get('name')) def rm_menuselect(userid, choice, popupid): es.server.queuecmd('est_rocket %s'%choice) es.tell(userid, '#multi', '#green[SuperMods]:#default You have rocketed %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Rocket', userid) def swm_menuselect(userid, choice, popupid): es.server.queuecmd('es_give %s player_weaponstrip'%choice) es.server.queuecmd('es_xfire %s player_weaponstrip StripWeaponsAndSuit'%choice) es.tell(userid, '#multi', '#green[SuperMods]:#default You have stripped %s\'s weapons!'%playerlib.getPlayer(choice).get('name')) popuplib.send('Strip Player', userid) def pm_menuselect(userid, choice, popupid): player = playerlib.getPlayer(choice) if player.get('freeze') == '0': player.set('model', 'props/cs_office/plant01') es.server.queuecmd('es_give %s player_weaponstrip'%choice) es.server.queuecmd('es_xfire %s player_weaponstrip StripWeaponsAndSuit'%choice) es.tell(userid, '#multi', '#green[SuperMods]:#default You have plantified %s'%playerlib.getPlayer(choice).get('name')) player.set('freeze', '1') else: player.set('noclip', '0') es.server.queuecmd('es_xgive %s weapon_m4a1'%choice) es.tell(userid, '#multi', '#green[SuperMods]:#default You have un-plantified %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Plant', userid) def sm_menuselect(userid, choice, popupid): usermsg.shake(choice, 75, 5) es.tell(userid, '#multi', '#green[SuperMods]:#default You have shook %s\'s screen'%playerlib.getPlayer(choice).get('name')) popuplib.send('Shake', userid) def dm_menuselect(userid, choice, popupid): es.cexec(choice, 'r_screenoverlay effects/tp_eyefx/tp_eyefx.vmt') gamethread.delayed(10, es.cexec, args=(choice, 'r_screenoverlay ""')) es.tell(userid, '#multi', '#green[SuperMods]:#default You have drugged %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Drug', userid) def em_menuselect(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have created an explosion!') if choice == 'point': es.server.queuecmd('es_entcreate %s env_explosion'%userid) gamethread.delayed(0.1, explode, args=(userid)) elif choice == 'loc': es.server.queuecmd('es_give %s env_explosion'%userid) gamethread.delayed(0.1, explode, args=(userid)) popuplib.send('Explosion', userid) def explode(userid): waffles = es.createentitylist('env_explosion') for syrup in waffles: es.setindexprop(syrup, "CBaseEntity.m_hOwnerEntity", es.getplayerhandle(userid)) es.server.queuecmd('es_xfire %s env_explosion addoutput "iMagnitude 400"'%userid) es.server.queuecmd('es_xfire %s env_explosion addoutput "iRadiusoverride 500"'%userid) es.server.queuecmd('es_xfire %s env_explosion explode'%userid) def bm_menuselect(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have burned %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Burn', userid) es.server.queuecmd('es_fire %s !self ignite'%choice) es.cexec(choice, 'r_screenoverlay effects/tp_refract.vmt') gamethread.delayed(10, extinguish, (choice)) gamethread.delayed(10, es.cexec, args=(choice, 'r_screenoverlay ""')) def extinguish(userid): napalmlist = es.createentitylist('entityflame') handle = es.getplayerhandle(userid) for flame_entity in napalmlist: string = es.getindexprop(flame_entity, 'CEntityFlame.m_hEntAttached') if string == handle: es.setindexprop(flame_entity, 'CEntityFlame.m_flLifetime', 0) es.cexec(userid, 'r_screenoverlay ""') es.server.queuecmd('es_xfire %s !self DispatchEffect WaterSurfaceExplosion'%userid) break def fm_menuselect(userid, choice, popupid): if playerlib.getPlayer(choice).get('freeze'): es.tell(userid, '#multi', '#green[SuperMods]:#default You have unfrozen %s'%playerlib.getPlayer(choice).get('name')) playerlib.getPlayer(choice).set('noclip', '0') else: es.tell(userid, '#multi', '#green[SuperMods]:#default You have frozen %s'%playerlib.getPlayer(choice).get('name')) playerlib.getPlayer(choice).set('freeze', '1') popuplib.send('Freeze', userid) def mm_menuselect(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have made a mine! Better move fast!') es.server.queuecmd('es_give %s env_explosion'%userid) es.server.queuecmd('es_xfire %s env_explosion addoutput "iMagnitude 300"'%userid) es.server.queuecmd('es_xfire %s env_explosion addoutput "iRadiusoverride 225"'%userid) es.server.queuecmd('es_prop_dynamic_create %s roller_spikes'%userid) gamethread.delayed(0, mine_placement, userid) es.ServerVar('exploded').set(0) es.ServerVar('notneeded').set(0) popuplib.send('Mine', userid) def mine_placement(userid): (x, y, z) = es.getplayerlocation(userid) loc = es.getplayerlocation(userid) index = int(es.ServerVar('eventscripts_lastgive')) es.setindexprop(int(es.ServerVar('eventscripts_lastgive')), 'CBaseEntity.m_vecOrigin', '%s,%s,%s'%(loc[0], loc[1], loc[2] - 100)) gamethread.delayed(5, es.setindexprop, (index, 'CBaseEntity.m_vecOrigin', '%s,%s,%s'%(loc[0], loc[1], loc[2]))) gamethread.delayed(5, mine_explode, args=(userid, x, y, z, index)) def slm_menuselect(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have slapped %s'%playerlib.getPlayer(choice).get('name')) es.setplayerprop(choice, 'CCSPlayer.baseclass.localdata.m_vecBaseVelocity', '%s,%s,%s'%(random.randint(-255, 255), random.randint(-255, 255), random.randint(-100, 255))) popuplib.send('Slap', userid) def mine_explode(userid, x, y, z, index): if es.ServerVar('exploded') == 0: es.server.queuecmd('nearcoord notneeded #all %s %s %s 100 100 100 "es_fire %s env_explosion explode;es_xset exploded 1;damage %s %s 32 %s"'%(x, y, z, userid, userid, random.randint(1, 100), userid)) gamethread.delayed(0.1, mine_explode, args=(userid, x, y, z, index)) else: for a in es.createentitylist(): if index == a and not es.createentitylist()[a]['classname'] == 'worldspawn': es.server.queuecmd('es_xremove %s'%index) def eem_menuselect(userid, choice, popupid): if choice == 'point': es.server.queuecmd('es_entcreate %s env_physexplosion'%userid) es.server.queuecmd('es_fire %s env_physexplosion addoutput "magnitude 100"'%userid) es.server.queuecmd('es_fire %s env_physexplosion addoutput "radius 100"'%userid) es.server.queuecmd('es_fire %s env_physexplosion explode'%userid) elif choice == 'loc': es.server.queuecmd('es_give %s env_physexplosion'%userid) es.server.queuecmd('es_fire %s env_physexplosion addoutput "magnitude 100"'%userid) es.server.queuecmd('es_fire %s env_physexplosion addoutput "radius 100"'%userid) es.server.queuecmd('es_fire %s env_physexplosion explode'%userid) popuplib.send('Entity Explosion', userid) def pem_menuselect(userid, choice, popupid): es.server.queuecmd('es_give %s env_explosion'%choice) es.server.queuecmd('es_xfire %s env_explosion setparent !activator'%choice) es.server.queuecmd('es_xfire %s env_explosion addoutput "iMagnitude 400"'%choice) es.server.queuecmd('es_xfire %s env_explosion addoutput "iRadiusoverride 200"'%choice) es.server.queuecmd('es_xfire %s env_explosion explode'%choice) es.tell(userid, '#multi', '#green[SuperMods]:#default You have exploded %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Player Explosion', userid) def pum_menuselect(userid, choice, popupid): (x, y, z) = es.getplayerlocation(userid) (x2, y2, z2) = es.getplayerlocation(choice) vector1 = es.createvectorstring(x, y, z) vector2 = es.createvectorstring(x2, y2, z2) pointvector = es.createvectorfrompoints(vector1, vector2) (x, y, z) = es.splitvectorstring(pointvector) x = x * 50 y = y * 50 es.setplayerprop(choice, 'CCSPlayer.baseclass.localdata.m_vecBaseVelocity', '%s,%s,%s'%(x, y, z)) es.tell(userid, '#multi', '#green[SuperMods]:#default You have pushed %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Push Player', userid) def pdm_menuselect(userid, choice, popupid): #es.server.queuecmd('es_xfire %s !picker kill'%userid) es.tell(userid, '#multi', '#green[SuperMods]: #defaultPlease, be very careful with this command, as it has crashed many servers') es.tell(userid, '#multi', '#green[SuperMods]: #defaultonly use it on moving objects such as boats!') es.ServerVar('prop').set(0) es.server.queuecmd('est_getviewprop %s prop'%userid) gamethread.delayed(0, prop_destroy_moo, (userid)) def prop_destroy_moo(userid): prop = es.ServerVar('prop') for a in es.createentitylist(): if prop == a and not es.createentitylist()[a]['classname'] == 'worldspawn': es.server.queuecmd('es_remove %s'%prop) popuplib.send('Prop Destroy', userid) def ss_menuselect(userid, choice, popupid): slap_time = 0 gamethread.delayedname(0.1, 'mega_slap_%s'%choice, mega_slap_loop, args=(choice, slap_time)) es.tell(userid, '#multi', '#green[SuperMods]: #defaultYou have Super Slapped %s'%playerlib.getPlayer(userid).get('name')) popuplib.send('Super Slap', userid) def mega_slap_loop(choice, slap_time): if slap_time <= 5: es.setplayerprop(choice, 'CBasePlayer.localdata.m_vecBaseVelocity', '%s,%s,%s'%(random.randint(-155, 155), random.randint(-155, 155), random.randint(0, 200))) slap_time += 0.1 gamethread.delayedname(0.1, 'mega_slap_%s'%choice, mega_slap_loop, args=(choice, slap_time)) def dp_menuselect(userid, choice, popupid): for a in es.createentitylist('prop_physics_multiplayer'): if a: es.server.queuecmd('es_xremove %s'%a) def es_client_command(event_var): if event_var['command'] == '!supermod': if event_var['es_steamid'] in admins: popuplib.send('Main Menu', event_var['userid']) def lightning(userid, choice, popupid): loc = es.getplayerlocation(choice) if playerlib.getPlayer(userid).attributes['teamid'] == 2: commands().lightning(loc[0], loc[1], loc[2], 300, 3, userid, '#ct,#alive') elif playerlib.getPlayer(userid).attributes['teamid'] == 3: commands().lightning(loc[0], loc[1], loc[2], 300, 3, userid, '#t,#alive') popuplib.send('Lightning Strike', userid) def beacon_select(userid, choice, popupid): beacon_loop(userid, choice) es.tell(userid, '#multi', '#green[SuperMods]: #default you have beaconed %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Beacon Menu', userid) def beacon_loop(userid, userid2): if not playerlib.getPlayer(userid2).get('isdead'): x, y, z = es.getplayerlocation(userid2) es.server.queuecmd('est_effect 10 %s 0 "sprites/lgtning.vmt" %s %s %s 20 300 0.2 20 10 0 255 0 0 255 30'%(userid, x, y, z)) es.server.queuecmd('est_effect 10 %s 0.1 "sprites/lgtning.vmt" %s %s %s 20 300 0.3 15 10 0 255 150 150 255 30'%(userid, x, y, z)) gamethread.delayedname(1, 'beacon_%s'%userid2, beacon_loop, args=(userid, userid2)) prop_index = None #prop_angs = None def get_view_prop(userid): ''' for index in es.createentitylist(): if int(es.getindexprop(index, "CBaseEntity.m_clrRender")) == -4056: global prop_index es.cexec(userid, 'echo You are looking at prop #%s'%index) es.setindexprop(index, "CBaseEntity.m_clrRender", -1) prop_index = index prop_angs = es.getindexprop(index, 'CPhysicsPropMultiplayer.baseclass.baseclass.baseclass.baseclass.m_angRotation') ''' global prop_index prop_index = int(es.ServerVar('prop')) def prop_spinner(userid, choice, popupid): #es.server.queuecmd('es_xfire %s !picker color "40 240 255"'%userid) #gamethread.delayed(0.4, prop_spin_loop, (choice, prop_index, 5, prop_angs)) popuplib.send('Prop Spinner', userid) es.ServerVar('prop').set(0) es.server.queuecmd('est_getviewprop %s prop'%userid) gamethread.delayed(0, get_view_prop, (userid)) gamethread.delayed(0.1, prop_spin_loop, (choice, prop_index, 5, None)) def prop_spin_loop(choice, index, time, angs): if time == 5: index = prop_index angs = es.getindexprop(index, 'CPhysicsPropMultiplayer.baseclass.baseclass.baseclass.baseclass.m_angRotation') if time >= 0: time -= 0.1 x, y, z = es.getindexprop(index, 'CPhysicsPropMultiplayer.baseclass.baseclass.baseclass.baseclass.m_angRotation').split(',') if choice == 'x': x = int(float(x)) + random.randint(1, 100) elif choice == 'y': y = int(float(y)) + random.randint(1, 100) elif choice == 'z': z = int(float(z)) + random.randint(1, 100) es.setindexprop(index, 'CPhysicsPropMultiplayer.baseclass.baseclass.baseclass.baseclass.m_angRotation', '%s,%s,%s'%(x, y, z)) gamethread.delayedname(0.1, 'spin_%s'%index, prop_spin_loop, (choice, index, time, angs)) else: es.setindexprop(index, 'CPhysicsPropMultiplayer.baseclass.baseclass.baseclass.baseclass.m_angRotation', angs) def drunk2(userid, choice, popupid): angs = playerlib.getPlayer(choice).get('viewangle') es.server.queuecmd('es_xsetang %s %s %s %s'%(choice, angs[0], angs[1], random.randint(-60, 60))) time = 5 gamethread.delayed(0.5, drunk_loop, args=(choice, time)) es.tell(userid, '#multi', '#green[SuperMods]:#default You have Drunked %s'%playerlib.getPlayer(choice).get('name')) def drunk_loop(userid, time): angs = playerlib.getPlayer(userid).get('viewangle') if time >= 0: time -= 0.5 es.server.queuecmd('es_xsetang %s %s %s %s'%(userid, angs[0], angs[1], random.randint(-66, 66))) gamethread.delayedname(0.5, 'drunk_loop_%s'%userid, drunk_loop, args=(userid, time)) else: es.server.queuecmd('es_xsetang %s %s %s %s'%(userid, angs[0], angs[1], 0)) def bury(userid, choice, popupid): es.server.queuecmd('es_xsetpos %s %s %s %s'%(choice, es.getplayerlocation(choice)[0], es.getplayerlocation(choice)[1], int(es.getplayerlocation(choice)[2]) - 60)) popuplib.send('Bury', userid) es.tell(userid, '#multi', '#green[SuperMods]:#default You have burried %s'%playerlib.getPlayer(choice).get('name')) def big_steps(userid, choice, popupid): menu2 = popuplib.easymenu('Chose Amount', '_popup_choice', big_steps2) for a in (18, 25, 50, 100, 150, 200, 250, 300, 400, 500, 700, 800, 1000, 1200, 1400, 1600, 1800, 2000, 2250, 2500, 2750, 3000, 3500, 4000, 5000, 7000, 10000): menu2.addoption((choice, a), a) menu2.submenu(0, 'Step Sizes') popuplib.send('Chose Amount', userid) def big_steps2(userid, choice, popupid): es.setplayerprop(choice[0], 'CCSPlayer.baseclass.localdata.m_Local.m_flStepSize', choice[1]) popuplib.send('Step Sizes', userid) es.tell(userid, '#multi', '#green[SuperMods]:#default You have Changed %s\'s step sizes to %s'%(playerlib.getPlayer(choice[0]).get('name'), choice[1])) def flash_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have flashed %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Flash Player', userid) es.server.queuecmd('playerset flash %s 255 3'%choice) def slow_player(userid, choice, popupid): if playerlib.getPlayer(choice).get('speed') < 1: playerlib.getPlayer(choice).set('speed', '1') es.tell(userid, '#multi', '#green[SuperMods]:#default You have un-slowed %s'%playerlib.getPlayer(choice).get('name')) else: playerlib.getPlayer(choice).set('speed', '0.2') es.tell(userid, '#multi', '#green[SuperMods]:#default You have slown %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Slow Player', userid) def high_grav(userid, choice, popupid): es.server.queuecmd('es_xfire %s !self addoutput "gravity 99999"'%choice) es.tell(userid, '#multi', '#green[SuperMods]:#default You have made %s\'s gravity really high!'%(playerlib.getPlayer(choice).get('name'))) popuplib.send('High Grav', userid) gamethread.delayed(5, es.server.queuecmd, 'es_xfire %s !self addoutput "gravity 1"'%choice) def slay_player(userid, choice, popupid): playerlib.getPlayer(choice).set('health', '1') es.server.queuecmd('damage %s 1 32 %s'%(choice, choice)) es.tell(userid, '#multi', '#green[SuperMods]:#default You have slayed %s'%playerlib.getPlayer(choice).get('name')) popuplib.send('Slay Player', userid) def player_disconnect(ev): gamethread.cancelDelayed('beacon_%s'%ev['userid']) def smoke_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have given %s unlimited smoke grenades!'%playerlib.getPlayer(choice).get('name')) es.server.queuecmd('es_xgive %s weapon_smokegrenade'%choice) global usg if not choice in usg: usg.append(str(choice)) popuplib.send('Unlimited Smoke', userid) def hegrenade_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have given %s unlimited HE Grenades!'%playerlib.getPlayer(choice).get('name')) es.server.queuecmd('es_xgive %s weapon_hegrenade'%choice) global uhg if not choice in uhg: uhg.append(str(choice)) popuplib.send('Unlimited HE', userid) def flashbang_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]:#default You have given %s unlimited Flash Bangs!'%playerlib.getPlayer(choice).get('name')) es.server.queuecmd('es_xgive %s weapon_flashbang'%choice) global ufb if not choice in ufb: ufb.append(str(choice)) popuplib.send('Unlimited Flash', userid) def round_start(ev): global uhg, usg, ufb ufb = [] uhg = [] usg = [] def hegrenade_detonate(ev): if ev['userid'] in uhg: es.server.queuecmd('es_xgive %s weapon_hegrenade'%ev['userid']) def flashbang_detonate(ev): if ev['userid'] in ufb: es.server.queuecmd('es_xgive %s weapon_flashbang'%ev['userid']) def smokegrenade_detonate(ev): if ev['userid'] in usg: es.server.queuecmd('es_xgive %s weapon_smokegrenade'%ev['userid']) def blind_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]: #defaultYou have blinded %s!'%playerlib.getPlayer(choice).get('name')) usermsg.fade(choice, 0, 1000, 1000, 0, 0, 0, 255) popuplib.send('Blind', userid) def timebomb_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]: #defaultYou have turned %s into a Time Bomb!'%playerlib.getPlayer(choice).get('name')) bomb_loop(choice, 'Time Bomb', 10) popuplib.send('Time Bomb', userid) def freezebomb_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]: #defaultYou have turned %s into a Time Bomb!'%playerlib.getPlayer(choice).get('name')) bomb_loop(choice, 'Freeze Bomb', 10) popuplib.send('Freeze Bomb', userid) def firebomb_player(userid, choice, popupid): es.tell(userid, '#multi', '#green[SuperMods]: #defaultYou have turned %s into a Time Bomb!'%playerlib.getPlayer(choice).get('name')) bomb_loop(choice, 'Fire Bomb', 10) popuplib.send('Fire Bomb', userid) bomb_colors = {'Fire Bomb': {'1': '255 0 0', '2': '255 150 150'}, 'Freeze Bomb': {'1': '0 0 255', '2': '40 240 255'}, 'Time Bomb': {'1': '255 0 0', '2': '0 0 255'}} def bomb_loop(userid, type, time): x, y, z = es.getplayerlocation(userid) if time == 10: es.centermsg(time) time -= 1 gamethread.delayedname(1, '%s_%s'%(type.replace(' Bomb', ''), userid), bomb_loop, (userid, type, time)) es.tell(userid, '#green', 'You have been turned into a %s!'%type) elif time >= 0: es.centermsg(time) time -= 1 gamethread.delayedname(1, '%s_%s'%(type.replace(' Bomb', ''), userid), bomb_loop, (userid, type, time)) es.server.queuecmd('est_effect 10 #a 0 "sprites/lgtning.vmt" %s %s %s 20 300 0.2 20 10 0 %s 255 30'%(x, y, z, bomb_colors[type]['1'])) es.server.queuecmd('est_effect 10 #a 0.1 "sprites/lgtning.vmt" %s %s %s 20 300 0.3 15 10 0 %s 255 30'%(x, y, z, bomb_colors[type]['2'])) es.emitsound('player', userid, 'buttons/blip2.wav', 1.0, 0.5) else: es.emitsound('player', userid, 'ambient/energy/zap6.wav', 1.0, 0.5) if not type == 'Time Bomb': for userid2 in playerlib.getUseridList('#all'): loc = es.getplayerlocation(userid2) if abs(loc[0] - x) <= bomb_range and abs(loc[1] - y) <= bomb_range and abs(loc[2] - z) <= bomb_range: bomb_explode(userid2, type) else: es.server.queuecmd('es_give %s env_explosion'%userid) es.server.queuecmd('es_xfire %s env_explosion addoutput "iMagnitude 400"'%userid) es.server.queuecmd('es_xfire %s env_explosion addoutput "iRadiusoverride %s"'%(userid, bomb_range)) es.server.queuecmd('es_xfire %s env_explosion explode'%userid) playerlib.getPlayer(userid).set('health', '1') es.server.queuecmd('damage %s 1 32 %s'%(userid, userid)) es.server.queuecmd('es_xfire %s !self ignite'%userid) def bomb_explode(userid, type): if type == 'Freeze Bomb': playerlib.getPlayer(userid).set('freeze', '1') elif type == 'Fire Bomb': es.server.queuecmd('es_xfire %s !self ignite'%userid) gamethread.delayed(0, load2, ())