mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 10:27:55 -05:00
552 lines
11 KiB
Plaintext
552 lines
11 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\mp\_laserguidedlauncher.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 23
|
|
* Decompile Time: 895 ms
|
|
* Timestamp: 10/27/2023 12:20:45 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_AC0B(param_00,param_01)
|
|
{
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_AC1A(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("faux_spawn");
|
|
thread func_AC13();
|
|
var_02 = self getcurrentweapon();
|
|
for(;;)
|
|
{
|
|
while(var_02 != param_00)
|
|
{
|
|
self waittill("weapon_change",var_02);
|
|
}
|
|
|
|
childthread func_AC08(var_02,param_01);
|
|
self waittill("weapon_change",var_02);
|
|
func_AC07();
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_AC13()
|
|
{
|
|
self endon("LGM_player_endMonitorFire");
|
|
scripts\common\utility::waittill_any_3("death","disconnect");
|
|
if(isdefined(self))
|
|
{
|
|
func_AC04();
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_AC07()
|
|
{
|
|
func_AC04();
|
|
self notify("LGM_player_endMonitorFire");
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_AC08(param_00,param_01,param_02)
|
|
{
|
|
self endon("LGM_player_endMonitorFire");
|
|
func_AC05();
|
|
var_03 = undefined;
|
|
for(;;)
|
|
{
|
|
var_04 = undefined;
|
|
self waittill("missile_fire",var_04,var_05);
|
|
if(isdefined(var_04.var_9E8F) && var_04.var_9E8F)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_05 != param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = func_AC17(self);
|
|
}
|
|
|
|
thread func_AC06(param_00,param_01,param_02,0.35,0.1,var_04,var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_AC06(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
|
{
|
|
self notify("monitor_laserGuidedMissile_delaySpawnChildren");
|
|
self endon("monitor_laserGuidedMissile_delaySpawnChildren");
|
|
self endon("death");
|
|
self endon("LGM_player_endMonitorFire");
|
|
func_AC12(param_06);
|
|
wait(param_03);
|
|
if(!isvalidmissile(param_05))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_07 = param_05.origin;
|
|
var_08 = anglestoforward(param_05.angles);
|
|
var_09 = anglestoup(param_05.angles);
|
|
var_0A = anglestoright(param_05.angles);
|
|
param_05 delete();
|
|
playfx(level._effect["laser_guided_launcher_missile_split"],var_07,var_08,var_09);
|
|
var_0B = [];
|
|
for(var_0C = 0;var_0C < 2;var_0C++)
|
|
{
|
|
var_0D = 20;
|
|
var_0E = 0;
|
|
if(var_0C == 0)
|
|
{
|
|
var_0E = 20;
|
|
}
|
|
else if(var_0C == 1)
|
|
{
|
|
var_0E = -20;
|
|
}
|
|
else if(var_0C == 2)
|
|
{
|
|
}
|
|
|
|
var_0F = rotatepointaroundvector(var_0A,var_08,var_0D);
|
|
var_0F = rotatepointaroundvector(var_09,var_0F,var_0E);
|
|
var_10 = scripts\mp\_utility::func_1309(param_01,var_07,var_07 + var_0F * 180,self);
|
|
var_10.var_9E8F = 1;
|
|
var_0B[var_0B.size] = var_10;
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
wait(param_04);
|
|
var_0B = func_AC16(var_0B);
|
|
if(var_0B.size > 0)
|
|
{
|
|
foreach(var_12 in var_0B)
|
|
{
|
|
param_06.var_B8AC[param_06.var_B8AC.size] = var_12;
|
|
var_12 missile_settargetent(param_06);
|
|
thread func_AC15(param_06,var_12);
|
|
}
|
|
|
|
thread func_AC09(param_06,param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_AC15(param_00,param_01)
|
|
{
|
|
param_01 scripts\common\utility::waittill_any_3("death","missile_pairedWithFlare","LGM_missile_abandoned");
|
|
if(isdefined(param_00.var_B8AC) && param_00.var_B8AC.size > 0)
|
|
{
|
|
param_00.var_B8AC = scripts\common\utility::func_22A9(param_00.var_B8AC,param_01);
|
|
param_00.var_B8AC = func_AC16(param_00.var_B8AC);
|
|
}
|
|
|
|
if(!isdefined(param_00.var_B8AC) || param_00.var_B8AC.size == 0)
|
|
{
|
|
self notify("LGM_player_allMissilesDestroyed");
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_AC09(param_00,param_01)
|
|
{
|
|
self notify("LGM_player_newMissilesFired");
|
|
self endon("LGM_player_newMissilesFired");
|
|
self endon("LGM_player_allMissilesDestroyed");
|
|
self endon("LGM_player_endMonitorFire");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
var_05 = 0;
|
|
var_06 = gettime() + 400;
|
|
while(isdefined(param_00.var_B8AC) && param_00.var_B8AC.size > 0)
|
|
{
|
|
var_07 = func_AC18();
|
|
if(!isdefined(var_07))
|
|
{
|
|
if(isdefined(var_03))
|
|
{
|
|
self notify("LGM_player_targetLost");
|
|
var_03 = undefined;
|
|
foreach(var_09 in param_00.var_B8AC)
|
|
{
|
|
var_09 notify("missile_targetChanged");
|
|
}
|
|
}
|
|
|
|
var_04 = undefined;
|
|
var_05 = 0;
|
|
var_0B = scripts\common\utility::func_116D7(gettime() > var_06,8000,800);
|
|
var_0C = anglestoforward(self getplayerangles());
|
|
var_0D = self geteye() + var_0C * 12;
|
|
var_0E = bullettrace(var_0D,var_0D + var_0C * var_0B,1,self,0,0,0);
|
|
var_02 = var_0E["position"];
|
|
}
|
|
else
|
|
{
|
|
var_02 = var_07.origin;
|
|
var_0F = !isdefined(var_03) || var_07 != var_03;
|
|
var_03 = var_07;
|
|
if(var_0F || !isdefined(var_04))
|
|
{
|
|
var_04 = gettime() + 1500;
|
|
level thread func_AC11(var_03,self);
|
|
}
|
|
else if(gettime() >= var_04)
|
|
{
|
|
var_05 = 1;
|
|
self notify("LGM_player_lockedOn");
|
|
}
|
|
|
|
if(var_05)
|
|
{
|
|
waittillframeend;
|
|
if(param_00.var_B8AC.size > 0)
|
|
{
|
|
var_10 = [];
|
|
foreach(var_09 in param_00.var_B8AC)
|
|
{
|
|
if(!isvalidmissile(var_09))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_10[var_10.size] = var_09.origin;
|
|
var_09 notify("missile_targetChanged");
|
|
var_09 notify("LGM_missile_abandoned");
|
|
var_09 delete();
|
|
}
|
|
|
|
if(var_10.size > 0)
|
|
{
|
|
level thread func_AC0E(var_03,self,param_01,var_10);
|
|
}
|
|
|
|
param_00.var_B8AC = [];
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
else if(var_0F)
|
|
{
|
|
func_AC19(var_03,self,param_00.var_B8AC);
|
|
}
|
|
}
|
|
|
|
param_00.origin = var_02;
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_AC17(param_00)
|
|
{
|
|
if(!isdefined(level.var_A875))
|
|
{
|
|
level.var_A875 = [];
|
|
}
|
|
|
|
if(!isdefined(level.var_A876))
|
|
{
|
|
level.var_A876 = [];
|
|
}
|
|
|
|
var_01 = undefined;
|
|
if(level.var_A876.size)
|
|
{
|
|
var_01 = level.var_A876[0];
|
|
level.var_A876 = scripts\common\utility::func_22A9(level.var_A876,var_01);
|
|
}
|
|
else
|
|
{
|
|
var_01 = spawn("script_origin",param_00.origin);
|
|
}
|
|
|
|
level.var_A875[level.var_A875.size] = var_01;
|
|
level thread func_AC14(var_01,param_00);
|
|
var_01.var_B8AC = [];
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_AC14(param_00,param_01)
|
|
{
|
|
param_01 scripts\common\utility::waittill_any_3("death","disconnect","LGM_player_endMonitorFire");
|
|
foreach(var_03 in param_00.var_B8AC)
|
|
{
|
|
if(isvalidmissile(var_03))
|
|
{
|
|
var_03 missile_cleartarget();
|
|
}
|
|
}
|
|
|
|
param_00.var_B8AC = undefined;
|
|
level.var_A875 = scripts\common\utility::func_22A9(level.var_A875,param_00);
|
|
if(level.var_A876.size + level.var_A875.size < 4)
|
|
{
|
|
level.var_A876[level.var_A876.size] = param_00;
|
|
return;
|
|
}
|
|
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_AC11(param_00,param_01)
|
|
{
|
|
var_02 = scripts\mp\_utility::func_C794(param_00,"orange",param_01,1,0,"killstreak_personal");
|
|
level thread func_AC0F(param_01,"maaws_reticle_tracking",1.5,"LGM_player_lockingDone");
|
|
level thread func_AC10(param_00,param_01);
|
|
param_01 scripts\common\utility::waittill_any_3("death","disconnect","LGM_player_endMonitorFire","LGM_player_newMissilesFired","LGM_player_targetLost","LGM_player_lockedOn","LGM_player_allMissilesDestroyed","LGM_player_targetDied");
|
|
if(isdefined(param_00))
|
|
{
|
|
scripts\mp\_utility::func_C78F(var_02,param_00);
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
param_01 notify("LGM_player_lockingDone");
|
|
param_01 stoplocalsound("maaws_reticle_tracking");
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_AC0C(param_00,param_01,param_02)
|
|
{
|
|
param_01 endon("death");
|
|
param_00 waittill("death");
|
|
param_01.var_AC03[param_02] = scripts\common\utility::func_22A9(param_01.var_AC03[param_02],param_00);
|
|
if(param_01.var_AC03[param_02].size == 0)
|
|
{
|
|
param_01.var_AC03[param_02] = undefined;
|
|
param_01 notify("LGM_target_lockedMissilesDestroyed");
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_AC10(param_00,param_01)
|
|
{
|
|
param_01 endon("death");
|
|
param_01 endon("disconnect");
|
|
param_01 endon("LGM_player_lockingDone");
|
|
param_00 waittill("death");
|
|
param_01 notify("LGM_player_targetDied");
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_AC0F(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_00 endon("death");
|
|
param_00 endon("disconnect");
|
|
param_00 endon(param_03);
|
|
for(;;)
|
|
{
|
|
param_00 playlocalsound(param_01);
|
|
wait(param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_AC0D(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_00 endon("death");
|
|
param_01 endon("death");
|
|
param_01 endon("disconnect");
|
|
var_04 = [];
|
|
for(var_05 = 0;var_05 < param_03.size;var_05++)
|
|
{
|
|
var_06 = scripts\mp\_utility::func_1309(param_02,param_03[var_05],param_00.origin,param_01);
|
|
var_06.var_9E8F = 1;
|
|
var_04[var_04.size] = var_06;
|
|
playfx(level._effect["laser_guided_launcher_missile_spawn_homing"],var_06.origin,anglestoforward(var_06.angles),anglestoup(var_06.angles));
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_AC0E(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(param_03.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = func_AC0D(param_00,param_01,param_02,param_03);
|
|
if(!isdefined(var_04))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = func_AC16(var_04);
|
|
if(var_04.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_01 playlocalsound("maaws_reticle_locked");
|
|
var_05 = scripts\mp\_utility::func_C794(param_00,"red",param_01,0,0,"killstreak_personal");
|
|
var_06 = func_AC0A(param_00);
|
|
foreach(var_08 in var_04)
|
|
{
|
|
var_08 scripts\common\utility::func_B82F(param_00,"direct",var_06);
|
|
func_AC19(param_00,param_01,var_04);
|
|
}
|
|
|
|
if(!isdefined(param_00.var_AC03))
|
|
{
|
|
param_00.var_AC03 = [];
|
|
}
|
|
|
|
param_00.var_AC03[var_05] = var_04;
|
|
foreach(var_0B in var_04)
|
|
{
|
|
level thread func_AC0C(var_0B,param_00,var_05);
|
|
}
|
|
|
|
var_0D = 1;
|
|
while(var_0D)
|
|
{
|
|
var_0E = param_00 scripts\common\utility::func_13734("death","LGM_target_lockedMissilesDestroyed");
|
|
if(var_0E == "death")
|
|
{
|
|
var_0D = 0;
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00.var_AC03[var_05] = undefined;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_0E == "LGM_target_lockedMissilesDestroyed")
|
|
{
|
|
waittillframeend;
|
|
if(!isdefined(param_00.var_AC03[var_05]) || param_00.var_AC03[var_05].size == 0)
|
|
{
|
|
var_0D = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_00))
|
|
{
|
|
scripts\mp\_utility::func_C78F(var_05,param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_AC18()
|
|
{
|
|
var_00 = scripts\mp\_weapons::func_AF2B();
|
|
var_00 = sortbydistance(var_00,self.origin);
|
|
var_01 = undefined;
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(self method_8409(var_03.origin,65,75))
|
|
{
|
|
var_01 = var_03;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_AC05()
|
|
{
|
|
if(!isdefined(self.var_A874) || self.var_A874 == 0)
|
|
{
|
|
self.var_A874 = 1;
|
|
scripts\mp\_utility::func_6282();
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_AC04()
|
|
{
|
|
if(isdefined(self.var_A874) && self.var_A874 == 1)
|
|
{
|
|
scripts\mp\_utility::func_561C();
|
|
}
|
|
|
|
self.var_A874 = undefined;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_AC16(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
if(isvalidmissile(var_03))
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_AC19(param_00,param_01,param_02)
|
|
{
|
|
level notify("laserGuidedMissiles_incoming",param_01,param_02,param_00);
|
|
param_00 notify("targeted_by_incoming_missile",param_02);
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_AC0A(param_00)
|
|
{
|
|
var_01 = undefined;
|
|
if(param_00.model != "vehicle_av8b_harrier_jet_mp")
|
|
{
|
|
var_01 = param_00 gettagorigin("tag_missile_target");
|
|
}
|
|
else
|
|
{
|
|
var_01 = param_00 gettagorigin("tag_body");
|
|
}
|
|
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = param_00 method_8159(0,0,0);
|
|
}
|
|
|
|
return var_01 - param_00.origin;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_AC12(param_00)
|
|
{
|
|
if(isdefined(param_00.var_B8AC) && param_00.var_B8AC.size > 0)
|
|
{
|
|
foreach(var_02 in param_00.var_B8AC)
|
|
{
|
|
if(isvalidmissile(var_02))
|
|
{
|
|
var_02 notify("missile_targetChanged");
|
|
var_02 notify("LGM_missile_abandoned");
|
|
var_02 missile_cleartarget();
|
|
}
|
|
}
|
|
}
|
|
|
|
param_00.var_B8AC = [];
|
|
} |