203 lines
5.1 KiB
Plaintext
203 lines
5.1 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init()
|
|
{
|
|
precacheitem( "aamissile_projectile_mp" );
|
|
precacheshader( "ac130_overlay_grain" );
|
|
level.aamissilelaunchvert = 14000;
|
|
level.aamissilelaunchhorz = 30000;
|
|
level.aamissilelaunchtargetdist = 1500;
|
|
level.rockets = [];
|
|
level.killstreakfuncs["aamissile"] = ::tryuseaamissile;
|
|
}
|
|
|
|
tryuseaamissile( var_0, var_1 )
|
|
{
|
|
maps\mp\_utility::setusingremote( "aamissile" );
|
|
var_2 = maps\mp\killstreaks\_killstreaks::initridekillstreak();
|
|
|
|
if ( var_2 != "success" )
|
|
{
|
|
if ( var_2 != "disconnect" )
|
|
maps\mp\_utility::clearusingremote();
|
|
|
|
return 0;
|
|
}
|
|
|
|
level thread aa_missile_fire( var_0, self );
|
|
return 1;
|
|
}
|
|
|
|
gettargets()
|
|
{
|
|
var_0 = [];
|
|
var_1 = [];
|
|
|
|
if ( isdefined( level.littlebirds ) && level.littlebirds.size )
|
|
{
|
|
foreach ( var_3 in level.littlebirds )
|
|
{
|
|
if ( var_3.team != self.team )
|
|
var_0[var_0.size] = var_3;
|
|
}
|
|
}
|
|
|
|
if ( isdefined( level.helis ) && level.helis.size )
|
|
{
|
|
foreach ( var_6 in level.helis )
|
|
{
|
|
if ( var_6.team != self.team )
|
|
var_1[var_1.size] = var_6;
|
|
}
|
|
}
|
|
|
|
if ( isdefined( var_1 ) && var_1.size )
|
|
return var_1[0];
|
|
else if ( isdefined( var_0 ) && var_0.size )
|
|
return var_0[0];
|
|
}
|
|
|
|
aa_missile_fire( var_0, var_1 )
|
|
{
|
|
var_2 = undefined;
|
|
var_3 = ( 0, 0, level.aamissilelaunchvert );
|
|
var_4 = level.aamissilelaunchhorz;
|
|
var_5 = level.aammissilelaunchtargetdist;
|
|
var_6 = var_1 gettargets();
|
|
|
|
if ( !isdefined( var_6 ) )
|
|
var_7 = ( 0, 0, 0 );
|
|
else
|
|
{
|
|
var_7 = var_6.origin;
|
|
var_3 = ( 0, 0, 1 ) * var_7 + ( 0, 0, 1000 );
|
|
}
|
|
|
|
var_8 = anglestoforward( var_1.angles );
|
|
var_9 = var_1.origin + var_3 + var_8 * var_4 * -1;
|
|
var_10 = magicbullet( "aamissile_projectile_mp", var_9, var_7, var_1 );
|
|
|
|
if ( !isdefined( var_10 ) )
|
|
{
|
|
var_1 maps\mp\_utility::clearusingremote();
|
|
return;
|
|
}
|
|
|
|
var_10.lifeid = var_0;
|
|
var_10.type = "remote";
|
|
missileeyes( var_1, var_10 );
|
|
}
|
|
|
|
missileeyes( var_0, var_1 )
|
|
{
|
|
var_0 endon( "joined_team" );
|
|
var_0 endon( "joined_spectators" );
|
|
var_1 thread rocket_cleanupondeath();
|
|
var_0 thread player_cleanupongameended( var_1 );
|
|
var_0 thread player_cleanuponteamchange( var_1 );
|
|
var_0 visionsetmissilecamforplayer( "black_bw", 0 );
|
|
var_0 endon( "disconnect" );
|
|
|
|
if ( isdefined( var_1 ) )
|
|
{
|
|
var_0 visionsetmissilecamforplayer( game["thermal_vision"], 1.0 );
|
|
var_0 thread delayedfofoverlay();
|
|
var_0 cameralinkto( var_1, "tag_origin" );
|
|
var_0 controlslinkto( var_1 );
|
|
|
|
if ( getdvarint( "camera_thirdPerson" ) )
|
|
var_0 maps\mp\_utility::setthirdpersondof( 0 );
|
|
|
|
var_1 waittill( "death" );
|
|
|
|
if ( isdefined( var_1 ) )
|
|
var_0 maps\mp\_matchdata::logkillstreakevent( "predator_missile", var_1.origin );
|
|
|
|
var_0 controlsunlink();
|
|
var_0 maps\mp\_utility::freezecontrolswrapper( 1 );
|
|
|
|
if ( !level.gameended || isdefined( var_0.finalkill ) )
|
|
var_0 thread staticeffect( 0.5 );
|
|
|
|
wait 0.5;
|
|
var_0 thermalvisionfofoverlayoff();
|
|
var_0 cameraunlink();
|
|
|
|
if ( getdvarint( "camera_thirdPerson" ) )
|
|
var_0 maps\mp\_utility::setthirdpersondof( 1 );
|
|
}
|
|
|
|
var_0 maps\mp\_utility::clearusingremote();
|
|
}
|
|
|
|
delayedfofoverlay()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
level endon( "game_ended" );
|
|
wait 0.15;
|
|
self thermalvisionfofoverlayon();
|
|
}
|
|
|
|
staticeffect( var_0 )
|
|
{
|
|
self endon( "disconnect" );
|
|
var_1 = newclienthudelem( self );
|
|
var_1.horzalign = "fullscreen";
|
|
var_1.vertalign = "fullscreen";
|
|
var_1 setshader( "white", 640, 480 );
|
|
var_1.archive = 1;
|
|
var_1.sort = 10;
|
|
var_2 = newclienthudelem( self );
|
|
var_2.horzalign = "fullscreen";
|
|
var_2.vertalign = "fullscreen";
|
|
var_2 setshader( "ac130_overlay_grain", 640, 480 );
|
|
var_2.archive = 1;
|
|
var_2.sort = 20;
|
|
wait( var_0 );
|
|
var_2 destroy();
|
|
var_1 destroy();
|
|
}
|
|
|
|
player_cleanuponteamchange( var_0 )
|
|
{
|
|
var_0 endon( "death" );
|
|
self endon( "disconnect" );
|
|
common_scripts\utility::waittill_any( "joined_team", "joined_spectators" );
|
|
|
|
if ( self.team != "spectator" )
|
|
{
|
|
self thermalvisionfofoverlayoff();
|
|
self controlsunlink();
|
|
self cameraunlink();
|
|
|
|
if ( getdvarint( "camera_thirdPerson" ) )
|
|
maps\mp\_utility::setthirdpersondof( 1 );
|
|
}
|
|
|
|
maps\mp\_utility::clearusingremote();
|
|
level.remotemissileinprogress = undefined;
|
|
}
|
|
|
|
rocket_cleanupondeath()
|
|
{
|
|
var_0 = self getentitynumber();
|
|
level.rockets[var_0] = self;
|
|
self waittill( "death" );
|
|
level.rockets[var_0] = undefined;
|
|
}
|
|
|
|
player_cleanupongameended( var_0 )
|
|
{
|
|
var_0 endon( "death" );
|
|
self endon( "death" );
|
|
level waittill( "game_ended" );
|
|
self thermalvisionfofoverlayoff();
|
|
self controlsunlink();
|
|
self cameraunlink();
|
|
|
|
if ( getdvarint( "camera_thirdPerson" ) )
|
|
maps\mp\_utility::setthirdpersondof( 1 );
|
|
}
|