//------------------------------------------------------------------------------------------ // G-Cam version 2.0 // By Don // // Description: // Allows you to set a spy camera at your current view and go back to it whenever // you want. Allows you to get a smoke grenade which will deploy a camera // 5 feet above the point that it detonates. You can switch back and forth // between the 2 cameras. // // Requirements: ES 1.1.1 // ES Tools .415+ // // Install instructions: // Put this file in cstrike/addons/eventscripts/gcam as es_gcam.txt // // In console only: // Type "!gcam" to get a menu. Different menus if cam off or on // Type "!setcam" to set your camera to your current view // Type "!viewcam" to view from the camera you created // Type "!camoff" to go back to your normal view // Type "!sg" to get a camera enabled smoke grenade // Hit !viewcam while viewing and the view rotates 90 degrees // Hit !setcam while viewing and the view rotates 22.5 degrees // Hit !camoff while NOT viewing to switch between the cameras // //------------------------------------------------------------------------------------------ block load { // Set this to 1 if you want the players cameras reset at round end. es_xsetinfo reset_round_end 0 // No need to edit below this line. //------------------------------------------------------------------------------------------ es_xsetinfo ax 0 es_xsetinfo ay 0 es_xsetinfo az 0 es_xsetinfo bx 0 es_xsetinfo by 0 es_xsetinfo bz 0 es_xsetinfo fa 0 es_xsetinfo fb 0 es_xsetinfo ga 0 es_xsetinfo gb 0 es_xsetinfo whichcam 0 es_xsetinfo sgindex 0 es_xsetinfo sgowner 0 es_xsetinfo hassg 0 es_xsetinfo sgcon 0 es_xsetinfo sgcloaded 0 es_xsetinfo gcamid 0 es_xsetinfo gcamon 0 es_xsetinfo mykey 0 es_xsetinfo myindex 0 es_xsetinfo tempvar 0 es_xsetinfo origin 0 es_xsetinfo angle 0 es_xsetinfo rotatedegrees 0 es_setinfo gcamonpop "Select an Action\n->1. Rotate Left 90\n->2. Rotate Right 90\n->3. Rotate Left 22.5\n->4. Rotate Right 22.5\n->5. Tilt Up 15\n->6 Tilt Down 15\n->7. Select Other Cam\n->8. Turn Off Cam\n->0. Exit Menu" es_setinfo gcamoffpop "Select an Action\n->1. Set Personal Cam\n->2. View Personal Cam\n->3. View Grenade Cam\n->5. Get Smoke Grenade\n->0. Exit Menu" es_keygroupcreate gcam } block unload { es_keygroupdelete gcam } event es_map_start { es_keygroupdelete gcam es_keygroupcreate gcam } event player_spawn { es_setinfo gcamid event_var(userid) if (event_var(es_steamid) != BOT) do { es_tell event_var(userid) #multi #lightgreen[#green[#defaultG-Cam#green]#lightgreen]#default is loaded. #lightgreenType #green"!setcam"#lightgreen in console to grab your curent view. } } event round_end { if (server_var(reset_round_end) == 1) do { es_foreachkey gcamid in gcam "es_doblock gcam/resetview" es_keygroupdelete gcam es_keygroupcreate gcam } } event player_death { es_setinfo gcamid event_var(userid) es_exists mykey key gcam event_var(userid) if (server_var(mykey) == 1) do { es_keygetvalue gcamon gcam event_var(userid) gcamon if (server_var(gcamon) == 1) do { es est_getindex myindex event_var(userid) es_setview event_var(userid) server_var(myindex) } } } event es_client_command { es_setinfo gcamid event_var(userid) es_exists mykey key gcam event_var(userid) if (server_var(mykey) == 0) then es_keycreate gcam event_var(userid) { if (event_var(command) equalto menuselect) do { es_keygetvalue gcamon gcam event_var(userid) gcamon if (server_var(gcamon) == 0) do { es_doblock gcam/gcamoffmenu } else do { es_doblock gcam/gcamonmenu } } if (event_var(command) == "!setcam") do { es_keygetvalue gcamon gcam event_var(userid) gcamon if (server_var(gcamon) == 0) do { es_doblock gcam/setpc } else do { if (server_var(whichcam) == 1) do { es_keygetvalue tempvar gcam event_var(userid) pcdeployed if (server_var(tempvar) == 1) do { es_setinfo gcamid event_var(userid) es_xsetinfo rotatedegrees 22.5 es_doblock gcam/rotatepc } } else do { es_keygetvalue tempvar gcam event_var(userid) sgdeployed if (server_var(tempvar) == 1) do { es_setinfo gcamid event_var(userid) es_xsetinfo rotatedegrees 22.5 es_doblock gcam/rotatesg } } } } if (event_var(command) == "!viewcam") do { es_keygetvalue whichcam gcam event_var(userid) whichcam es_keygetvalue gcamon gcam event_var(userid) gcamon if (server_var(gcamon) == 0) do { if (server_var(whichcam) == 1) do { es_keygetvalue tempvar gcam event_var(userid) pcdeployed if (server_var(tempvar) == 1) do { es_keysetvalue gcam event_var(userid) gcamon 1 es_doblock gcam/viewpc } else do { es_tell event_var(userid) #multi #greenPersonal Cam #defaultNot Deployed! } } else do { es_keygetvalue tempvar gcam event_var(userid) sgdeployed if (server_var(tempvar) == 1) do { es_keysetvalue gcam event_var(userid) gcamon 1 es_doblock gcam/viewsg } else do { es_tell event_var(userid) #multi #greenGrenade Cam #defaultNot Deployed! } } } else do { if (server_var(whichcam) == 1) do { es_keygetvalue tempvar gcam event_var(userid) pcdeployed if (server_var(tempvar) == 1) do { es_setinfo gcamid event_var(userid) es_xsetinfo rotatedegrees 90 es_doblock gcam/rotatepc } } else do { es_keygetvalue tempvar gcam event_var(userid) sgdeployed if (server_var(tempvar) == 1) do { es_setinfo gcamid event_var(userid) es_xsetinfo rotatedegrees 90 es_doblock gcam/rotatesg } } } } if (event_var(command) == "!sg") do { es est_GetSG hassg event_var(userid) if (server_var(hassg) == 0) do { es_give event_var(userid) weapon_smokegrenade } es_keysetvalue gcam event_var(userid) sgcloaded 1 } if (event_var(command) == "!camoff") do { es_keygetvalue tempvar gcam event_var(userid) menuon if (server_var(tempvar) > 0) do { es_menu 1 event_var(userid) "Exiting Menu.." es_keysetvalue gcam event_var(userid) menuon 0 } es_keygetvalue gcamon gcam event_var(userid) gcamon if (server_var(gcamon) == 0) do { es_keygetvalue whichcam gcam event_var(userid) whichcam if (server_var(whichcam) == 1) do { es_keysetvalue gcam event_var(userid) whichcam 0 es_tell event_var(userid) #multi #greenGrenade Cam Selected } else do { es_keysetvalue gcam event_var(userid) whichcam 1 es_tell event_var(userid) #multi #greenPersonal Cam Selected } } else do { es_keysetvalue gcam event_var(userid) gcamon 0 es est_getindex myindex event_var(userid) es_setview event_var(userid) server_var(myindex) } es_cexec event_var(userid) "0" } if (event_var(command) == "!gcam") do { es_keygetvalue gcamon gcam event_var(userid) gcamon if (server_var(gcamon) == 0) do { es_menu 0 event_var(userid) server_var(gcamoffpop) es_keysetvalue gcam event_var(userid) menuon 1 } else do { es_menu 0 event_var(userid) server_var(gcamonpop) es_keysetvalue gcam event_var(userid) menuon 1 } } } } event smokegrenade_detonate { es_setinfo gcamid event_var(userid) es_keygetvalue sgcloaded gcam event_var(userid) sgcloaded if (server_var(sgcloaded) == 1) do { es_keygetvalue tempvar gcam event_var(userid) sgindex es est_remove server_var(tempvar) es_keysetvalue gcam event_var(userid) sgdeployed 1 es_setinfo az event_var(z) es_math az + 64 es est_give event_var(userid) point_viewcontrol sgindex es_keysetvalue gcam event_var(userid) sgindex server_var(sgindex) es_format origin "origin %1 %2 %3" event_var(x) event_var(y) server_var(az) es_createvectorstring ga event_var(x) event_var(y) server_var(az) es_createvectorstring gb 0 0 0 es_keysetvalue gcam event_var(userid) ga server_var(ga) es_keysetvalue gcam event_var(userid) gb server_var(gb) es_keysetvalue gcam event_var(userid) whichcam 0 es_fire event_var(userid) point_viewcontrol addoutput server_var(origin) es_fire event_var(userid) point_viewcontrol addoutput "angles 0 0 0" es_fire event_var(userid) point_viewcontrol addoutput "spawnflags 8" es_fire event_var(userid) point_viewcontrol enable es_keysetvalue gcam event_var(userid) gcamon 0 es est_getindex myindex event_var(userid) es_delayed .2 es_setview event_var(userid) server_var(myindex) es_delayed .4 es_foreachkey gcamid in gcam "es_doblock gcam/otherson" es_delayed .3 es_cexec event_var(userid) "invnext" es_delayed .5 es_cexec event_var(userid) "invprev" es_tell event_var(userid) #multi #lightgreenCamera Set! Type #green!viewcam #lightgreento use it. } } block resetview { es est_getindex myindex server_var(gcamid) es_setview server_var(gcamid) server_var(myindex) } block setpc { es_getplayerprop fa event_var(userid) "CBaseEntity.m_vecOrigin" es_splitvectorstring ax ay az server_var(fa) es_math az + 64 es_createvectorstring fa server_var(ax) server_var(ay) server_var(az) es_getplayerprop fb event_var(userid) "CBaseEntity.m_angRotation" es_splitvectorstring bx by bz server_var(fb) es_keygetvalue tempvar gcam event_var(userid) viewindex es est_remove server_var(tempvar) es_foreachkey gcamid in gcam "es_doblock gcam/alloff" es est_give event_var(userid) point_viewcontrol tempvar es_keysetvalue gcam event_var(userid) viewindex server_var(tempvar) es_format origin "origin %1 %2 %3" server_var(ax) server_var(ay) server_var(az) es_format angle "angles %1 %2 %3" server_var(bx) server_var(by) server_var(bz) es_fire event_var(userid) point_viewcontrol addoutput server_var(origin) es_fire event_var(userid) point_viewcontrol addoutput server_var(angle) es_fire event_var(userid) point_viewcontrol addoutput "spawnflags 8" es_fire event_var(userid) point_viewcontrol enable es_keysetvalue gcam event_var(userid) fa server_var(fa) es_keysetvalue gcam event_var(userid) fb server_var(fb) es_keysetvalue gcam event_var(userid) whichcam 1 es_keysetvalue gcam event_var(userid) gcamon 0 es_keysetvalue gcam event_var(userid) pcdeployed 1 es est_getindex myindex event_var(userid) es_delayed .2 es_setview event_var(userid) server_var(myindex) es_delayed .4 es_foreachkey gcamid in gcam "es_doblock gcam/otherson" es_cexec event_var(userid) "invnext" es_delayed .2 es_cexec event_var(userid) "invprev" es_tell event_var(userid) #multi #lightgreenCamera Set! Type #green!viewcam #lightgreento use it. } block gcamonmenu { es_setinfo gcamid event_var(userid) es_keygetvalue whichcam gcam server_var(gcamid) whichcam if (event_var(commandstring) == 1) do { es_xsetinfo rotatedegrees 90 if (server_var(whichcam) == 0) do { es_doblock gcam/rotatesg } else do { es_doblock gcam/rotatepc } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 2) do { es_xsetinfo rotatedegrees -90 if (server_var(whichcam) == 0) do { es_doblock gcam/rotatesg } else do { es_doblock gcam/rotatepc } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 3) do { es_xsetinfo rotatedegrees 22.5 if (server_var(whichcam) == 0) do { es_doblock gcam/rotatesg } else do { es_doblock gcam/rotatepc } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 4) do { es_xsetinfo rotatedegrees -22.5 if (server_var(whichcam) == 0) do { es_doblock gcam/rotatesg } else do { es_doblock gcam/rotatepc } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 5) do { es_xsetinfo rotatedegrees -15 if (server_var(whichcam) == 0) do { es_doblock gcam/tiltsg } else do { es_doblock gcam/tiltpc } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 6) do { es_xsetinfo rotatedegrees 15 if (server_var(whichcam) == 0) do { es_doblock gcam/tiltsg } else do { es_doblock gcam/tiltpc } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 7) do { es_keygetvalue tempvar gcam event_var(userid) pcdeployed if (server_var(tempvar) == 1) do { es_keygetvalue tempvar gcam event_var(userid) sgdeployed if (server_var(tempvar) == 1) do { if (server_var(whichcam) == 0) do { es_doblock gcam/viewpc es_keysetvalue gcam server_var(gcamid) whichcam 1 } else do { es_doblock gcam/viewsg es_keysetvalue gcam server_var(gcamid) whichcam 0 } } } es_menu 0 event_var(userid) server_var(gcamonpop) } if (event_var(commandstring) == 8) do { es_keysetvalue gcam server_var(gcamid) gcamon 0 es_keysetvalue gcam event_var(userid) menuon 0 es est_getindex myindex server_var(gcamid) es_setview server_var(gcamid) server_var(myindex) } if (event_var(commandstring) == 0) do { es_keysetvalue gcam event_var(userid) menuon 0 } } block gcamoffmenu { es_setinfo gcamid event_var(userid) es_keygetvalue whichcam gcam server_var(gcamid) whichcam if (event_var(commandstring) == 1) do { es_doblock gcam/setpc } if (event_var(commandstring) == 2) do { es_keygetvalue tempvar gcam event_var(userid) pcdeployed if (server_var(tempvar) == 1) do { es_keysetvalue gcam event_var(userid) gcamon 1 es_doblock gcam/viewpc } else do { es_tell event_var(userid) #multi #greenPersonal Cam #defaultNot Deployed! } } if (event_var(commandstring) == 3) do { es_keygetvalue tempvar gcam event_var(userid) sgdeployed if (server_var(tempvar) == 1) do { es_keysetvalue gcam event_var(userid) gcamon 1 es_doblock gcam/viewsg } else do { es_tell event_var(userid) #multi #greenGrenade Cam #defaultNot Deployed! } } if (event_var(commandstring) == 4) do { } if (event_var(commandstring) == 5) do { es est_GetSG hassg server_var(gcamid) if (server_var(hassg) == 0) do { es_give server_var(gcamid) weapon_smokegrenade } es_keysetvalue gcam server_var(gcamid) sgcloaded 1 } if (event_var(commandstring) == 6) do { } if (event_var(commandstring) == 7) do { } if (event_var(commandstring) == 8) do { } if (event_var(commandstring) == 0) do { } es_keysetvalue gcam event_var(userid) menuon 0 } block viewpc { es_keygetvalue tempvar gcam server_var(gcamid) viewindex es_keygetvalue fa gcam server_var(gcamid) fa es_keygetvalue fb gcam server_var(gcamid) fb es_setindexprop server_var(tempvar) "CBaseEntity.m_vecOrigin" server_var(fa) es_setindexprop server_var(tempvar) "CBaseEntity.m_angRotation" server_var(fb) es_setview server_var(gcamid) server_var(tempvar) es_tell server_var(gcamid) #multi #lightgreenPersonal Cam - Type #green!camoff #lightgreento stop viewing cam. } block viewsg { es_keygetvalue tempvar gcam server_var(gcamid) sgindex es_keygetvalue ga gcam server_var(gcamid) ga es_keygetvalue gb gcam server_var(gcamid) gb es_setindexprop server_var(tempvar) "CBaseEntity.m_vecOrigin" server_var(ga) es_setindexprop server_var(tempvar) "CBaseEntity.m_angRotation" server_var(gb) es_setview server_var(gcamid) server_var(tempvar) es_tell server_var(gcamid) #multi #lightgreenGrenade Cam - Type #green!camoff #lightgreento stop viewing cam. } block rotatepc { es_keygetvalue fb gcam server_var(gcamid) fb es_splitvectorstring bx by bz server_var(fb) es_math by + server_var(rotatedegrees) if (server_var(by) > 360) then es_math by - 360 if (server_var(by) > 0) then es_math by + 360 es_createvectorstring fb server_var(bx) server_var(by) server_var(bz) es_keygetvalue tempvar gcam server_var(gcamid) viewindex es_keysetvalue gcam server_var(gcamid) fb server_var(fb) es_setindexprop server_var(tempvar) "CBaseEntity.m_angRotation" server_var(fb) } block tiltpc { es_keygetvalue fb gcam server_var(gcamid) fb es_splitvectorstring bx by bz server_var(fb) es_math bx + server_var(rotatedegrees) if (server_var(bx) > 360) then es_math bx - 360 if (server_var(bx) > 0) then es_math bx + 360 es_createvectorstring fb server_var(bx) server_var(by) server_var(bz) es_keygetvalue tempvar gcam server_var(gcamid) viewindex es_keysetvalue gcam server_var(gcamid) fb server_var(fb) es_setindexprop server_var(tempvar) "CBaseEntity.m_angRotation" server_var(fb) } block rotatesg { es_keygetvalue gb gcam server_var(gcamid) gb es_splitvectorstring bx by bz server_var(gb) es_math by + server_var(rotatedegrees) if (server_var(by) > 360) then es_math by - 360 if (server_var(by) > 0) then es_math by + 360 es_createvectorstring gb server_var(bx) server_var(by) server_var(bz) es_keygetvalue tempvar gcam server_var(gcamid) sgindex es_keysetvalue gcam server_var(gcamid) gb server_var(gb) es_setindexprop server_var(tempvar) "CBaseEntity.m_angRotation" server_var(gb) } block tiltsg { es_keygetvalue gb gcam server_var(gcamid) gb es_splitvectorstring bx by bz server_var(gb) es_math bx + server_var(rotatedegrees) if (server_var(bx) > 360) then es_math bx - 360 if (server_var(bx) > 0) then es_math bx + 360 es_createvectorstring gb server_var(bx) server_var(by) server_var(bz) es_keygetvalue tempvar gcam server_var(gcamid) sgindex es_keysetvalue gcam server_var(gcamid) gb server_var(gb) es_setindexprop server_var(tempvar) "CBaseEntity.m_angRotation" server_var(gb) } block alloff { es_keygetvalue gcamon gcam server_var(gcamid) gcamon if (server_var(gcamon) == 1) do { es est_getindex myindex server_var(gcamid) es_setview server_var(gcamid) server_var(myindex) } } block otherson { if (server_var(gcamid) != event_var(userid)) do { es_keygetvalue gcamon gcam server_var(gcamid) gcamon if (server_var(gcamon) == 1) do { es_keygetvalue whichcam gcam server_var(gcamid) whichcam if (server_var(whichcam) == 1) do { es_doblock gcam/viewpc } else do { es_doblock gcam/viewsg } } } }