doCamera()
{
self notifyOnPlayerCommand("N", "+actionslot 1");
self.camon = false;
self.cam = undefined;
self.cam.owner = self.name;
self.camloc = undefined;
self.cammode = 0;
for(;
{
self waittill("N");
loc = GetCursorPos();
if(distance(loc, self.origin) < 150)
{
self playLocalSound( "missile_locking" );
self.menu[1] setText(self.menus["spycam"][0]);
self.cam = spawn("script_model", loc);
self.cam setModel("c130_zoomrig");
self.camloc = self.cam.origin;
self.camon = true;
self thread deleteOnDeath(self.cam);
self.MIP = false;
}
else
self iPrintlnBold("^1Invalid spy camera location!");
if(self.camon == true)
break;
}
self thread doViewCam();
}
deleteonDeath( model )
{
self waittill("death");
model delete();
}
staticEffect( duration )
{
self endon ( "disconnect" );
staticBG = newClientHudElem( self );
staticBG.horzAlign = "fullscreen";
staticBG.vertAlign = "fullscreen";
staticBG setShader( "white", 640, 480 );
staticBG.archive = true;
staticBG.sort = 10;
static = newClientHudElem( self );
static.horzAlign = "fullscreen";
static.vertAlign = "fullscreen";
static setShader( "ac130_overlay_grain", 640, 480 );
static.archive = true;
static.sort = 20;
for(i=duration;i>0;i--)
{
if(self.cammode != 1)
{
static destroy();
staticBG destroy();
}
wait 1;
}
static destroy();
staticBG destroy();
}
doViewCam()
{
self endon("death");
self endon("disconnect");
for(;
{
self waittill("N");
if(isDefined(self.cam) && self.incustmen != true)
{
self.curwep = self getCurrentWeapon();
self _giveWeapon("killstreak_predator_missile_mp", 9, false);
self switchToWeapon("killstreak_predator_missile_mp");
if(self getCurrentWeapon() != "none")
wait 2.2;
else
wait 1.5;
self thread doIcons();
self.menu[1] setText(self.menus["spycam"][1]);
self.cammode = 1;
self ThermalVisionOn();
self CameraLinkTo( self.cam, "tag_origin" );
self ControlsLinkTo( self.cam );
self.cam ThermalVisionFOFOverlayOn();
self waittill("N");
self.cammode = 0;
self CameraUnlink();
self ControlsUnlink();
self ThermalVisionOff();
self.menu[1] setText(self.menus["spycam"][0]);
self.menu[0].alpha = 1;
self.recIcon destroy();
self.recText destroy();
wait 0.3;
self switchToWeapon(self.curwep);
wait 0.5;
self takeWeapon("killstreak_predator_missile_mp");
}
else if(!isDefined(self.cam) && self.incustmen != true)
{
self.curwep = self getCurrentWeapon();
self _giveWeapon("killstreak_predator_missile_mp", 9, false);
self switchToWeapon("killstreak_predator_missile_mp");
if(self getCurrentWeapon() != "none")
wait 2.2;
else
wait 1.5;
self thread doIcons();
self.menu[1] setText(self.menus["spycam"][1]);
self.cammode = 1;
self thread doCheck();
self waittill("N");
self.cammode = 0;
self.menu[1] setText(self.menus["spycam"][0]);
self.menu[0].alpha = 1;
self.recIcon destroy();
self.recText destroy();
wait 0.3;
self switchToWeapon(self.curwep);
wait 0.5;
self takeWeapon("killstreak_predator_missile_mp");
}
}
}
doCheck()
{
if(self.camloc == undefined && self.cammode == 1)
{
self thread staticEffect(3);
wait 3;
if(self.cammode == 1)
self notify("N");
}
}
doIcons()
{
self.recIcon destroy();
self.recIcon = createIcon( "specialty_grenadepulldeath", 6, 6 );
self.recIcon.alignX = "right";
self.recIcon.alignY = "top";
self.recIcon.horzAlign = "right";
self.recIcon.vertAlign = "top";
self.recIcon.foreground = true;
self.recIcon.alpha = 1;
self.recIcon.color = (3, 0, 0);
self.recText destroy();
self.recText = self createFontString( "default", 1.1 );
self.recText setPoint( "RIGHT", "TOP", -10, -5 );
self.recText setText("^1REC");
self.recText.alignX = "right";
self.recText.alignY = "top";
self.recText.horzAlign = "right";
self.recText.vertAlign = "top";
}
vector_scal(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
getCursorPos()
{
forward = self getTagOrigin("j_head");
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
Crosshair = BulletTrace( forward, end, 0, self )[ "position" ];
return Crosshair;
}
doCamera()
{
self notifyOnPlayerCommand("N", "+actionslot 1");
self.camon = false;
self.cam = undefined;
self.cam.owner = self.name;
self.camloc = undefined;
self.cammode = 0;
for(;
{
self waittill("N");
loc = GetCursorPos();
if(distance(loc, self.origin) < 150)
{
self playLocalSound( "missile_locking" );
self.menu[1] setText(self.menus["spycam"][0]);
self.cam = spawn("script_model", loc);
self.cam setModel("c130_zoomrig");
self.camloc = self.cam.origin;
self.camon = true;
self thread deleteOnDeath(self.cam);
self.MIP = false;
}
else
self iPrintlnBold("^1Invalid spy camera location!");
if(self.camon == true)
break;
}
self thread doViewCam();
}
deleteonDeath( model )
{
self waittill("death");
model delete();
}
staticEffect( duration )
{
self endon ( "disconnect" );
staticBG = newClientHudElem( self );
staticBG.horzAlign = "fullscreen";
staticBG.vertAlign = "fullscreen";
staticBG setShader( "white", 640, 480 );
staticBG.archive = true;
staticBG.sort = 10;
static = newClientHudElem( self );
static.horzAlign = "fullscreen";
static.vertAlign = "fullscreen";
static setShader( "ac130_overlay_grain", 640, 480 );
static.archive = true;
static.sort = 20;
for(i=duration;i>0;i--)
{
if(self.cammode != 1)
{
static destroy();
staticBG destroy();
}
wait 1;
}
static destroy();
staticBG destroy();
}
doViewCam()
{
self endon("death");
self endon("disconnect");
for(;
{
self waittill("N");
if(isDefined(self.cam) && self.incustmen != true)
{
self.curwep = self getCurrentWeapon();
self _giveWeapon("killstreak_predator_missile_mp", 9, false);
self switchToWeapon("killstreak_predator_missile_mp");
if(self getCurrentWeapon() != "none")
wait 2.2;
else
wait 1.5;
self thread doIcons();
self.menu[1] setText(self.menus["spycam"][1]);
self.cammode = 1;
self ThermalVisionOn();
self CameraLinkTo( self.cam, "tag_origin" );
self ControlsLinkTo( self.cam );
self.cam ThermalVisionFOFOverlayOn();
self waittill("N");
self.cammode = 0;
self CameraUnlink();
self ControlsUnlink();
self ThermalVisionOff();
self.menu[1] setText(self.menus["spycam"][0]);
self.menu[0].alpha = 1;
self.recIcon destroy();
self.recText destroy();
wait 0.3;
self switchToWeapon(self.curwep);
wait 0.5;
self takeWeapon("killstreak_predator_missile_mp");
}
else if(!isDefined(self.cam) && self.incustmen != true)
{
self.curwep = self getCurrentWeapon();
self _giveWeapon("killstreak_predator_missile_mp", 9, false);
self switchToWeapon("killstreak_predator_missile_mp");
if(self getCurrentWeapon() != "none")
wait 2.2;
else
wait 1.5;
self thread doIcons();
self.menu[1] setText(self.menus["spycam"][1]);
self.cammode = 1;
self thread doCheck();
self waittill("N");
self.cammode = 0;
self.menu[1] setText(self.menus["spycam"][0]);
self.menu[0].alpha = 1;
self.recIcon destroy();
self.recText destroy();
wait 0.3;
self switchToWeapon(self.curwep);
wait 0.5;
self takeWeapon("killstreak_predator_missile_mp");
}
}
}
doCheck()
{
if(self.camloc == undefined && self.cammode == 1)
{
self thread staticEffect(3);
wait 3;
if(self.cammode == 1)
self notify("N");
}
}
doIcons()
{
self.recIcon destroy();
self.recIcon = createIcon( "specialty_grenadepulldeath", 6, 6 );
self.recIcon.alignX = "right";
self.recIcon.alignY = "top";
self.recIcon.horzAlign = "right";
self.recIcon.vertAlign = "top";
self.recIcon.foreground = true;
self.recIcon.alpha = 1;
self.recIcon.color = (3, 0, 0);
self.recText destroy();
self.recText = self createFontString( "default", 1.1 );
self.recText setPoint( "RIGHT", "TOP", -10, -5 );
self.recText setText("^1REC");
self.recText.alignX = "right";
self.recText.alignY = "top";
self.recText.horzAlign = "right";
self.recText.vertAlign = "top";
}
vector_scal(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
getCursorPos()
{
forward = self getTagOrigin("j_head");
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
Crosshair = BulletTrace( forward, end, 0, self )[ "position" ];
return Crosshair;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.