Files
IL-GSC/IW/PC/ALL/scripts/mp/killstreaks/_remoteuav.gsc
2023-10-27 03:49:01 -04:00

1622 lines
36 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_remoteuav.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 59
* Decompile Time: 2954 ms
* Timestamp: 10/27/2023 12:29:35 AM
*******************************************************************/
//Function Number: 1
init()
{
level.var_DF98["hit"] = loadfx("vfx/core/impacts/large_metal_painted_hit");
level.var_DF98["smoke"] = loadfx("vfx/core/smktrail/remote_heli_damage_smoke_runner");
level.var_DF98["explode"] = loadfx("vfx/core/expl/bouncing_betty_explosion");
level.var_DF98["missile_explode"] = loadfx("vfx/core/expl/stinger_explosion");
level.var_DF91["launch"][0] = "ac130_plt_yeahcleared";
level.var_DF91["launch"][1] = "ac130_plt_rollinin";
level.var_DF91["launch"][2] = "ac130_plt_scanrange";
level.var_DF91["out_of_range"][0] = "ac130_plt_cleanup";
level.var_DF91["out_of_range"][1] = "ac130_plt_targetreset";
level.var_DF91["track"][0] = "ac130_fco_moreenemy";
level.var_DF91["track"][1] = "ac130_fco_getthatguy";
level.var_DF91["track"][2] = "ac130_fco_guymovin";
level.var_DF91["track"][3] = "ac130_fco_getperson";
level.var_DF91["track"][4] = "ac130_fco_guyrunnin";
level.var_DF91["track"][5] = "ac130_fco_gotarunner";
level.var_DF91["track"][6] = "ac130_fco_backonthose";
level.var_DF91["track"][7] = "ac130_fco_gonnagethim";
level.var_DF91["track"][8] = "ac130_fco_personnelthere";
level.var_DF91["track"][9] = "ac130_fco_rightthere";
level.var_DF91["track"][10] = "ac130_fco_tracking";
level.var_DF91["tag"][0] = "ac130_fco_nice";
level.var_DF91["tag"][1] = "ac130_fco_yougothim";
level.var_DF91["tag"][2] = "ac130_fco_yougothim2";
level.var_DF91["tag"][3] = "ac130_fco_okyougothim";
level.var_DF91["assist"][0] = "ac130_fco_goodkill";
level.var_DF91["assist"][1] = "ac130_fco_thatsahit";
level.var_DF91["assist"][2] = "ac130_fco_directhit";
level.var_DF91["assist"][3] = "ac130_fco_rightontarget";
level.var_DF9D = 0;
level.var_DFA2 = getentarray("no_vehicles","targetname");
scripts\mp\killstreaks\_killstreaks::func_DEFB("remote_uav",::func_130CC);
level.var_DF74 = [];
}
//Function Number: 2
func_130CC(param_00,param_01)
{
return func_12900(param_00,"remote_uav");
}
//Function Number: 3
func_68C4(param_00)
{
if(level.gametype == "dm")
{
if(isdefined(level.var_DF74[param_00]) || isdefined(level.var_DF74[level.var_C74B[param_00]]))
{
return 1;
}
return 0;
}
if(isdefined(level.var_DF74[param_00]))
{
return 1;
}
return 0;
}
//Function Number: 4
func_12900(param_00,param_01)
{
scripts\common\utility::func_1C6E(0);
if(scripts\mp\_utility::func_9FC6() || self isusingturret() || isdefined(level.var_C1C4))
{
scripts\common\utility::func_1C6E(1);
return 0;
}
var_02 = 1;
if(func_68C4(self.team) || level.var_AD8B.size >= 4)
{
self iprintlnbold(&"KILLSTREAKS_AIR_SPACE_TOO_CROWDED");
scripts\common\utility::func_1C6E(1);
return 0;
}
else if(scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA + var_02 >= scripts\mp\_utility::func_B4D2())
{
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
scripts\common\utility::func_1C6E(1);
return 0;
}
self setplayerdata("reconDroneState","staticAlpha",0);
self setplayerdata("reconDroneState","incomingMissile",0);
scripts\mp\_utility::func_93FA();
var_03 = func_8355(param_00,param_01);
if(var_03)
{
scripts\mp\_matchdata::func_AFC9(param_01,self.origin);
thread scripts\mp\_utility::func_115DE("used_remote_uav",self);
}
else
{
scripts\mp\_utility::func_4FC1();
}
self.var_9D81 = 0;
return var_03;
}
//Function Number: 5
func_8355(param_00,param_01)
{
var_02 = func_4994(param_01,self);
scripts\mp\_utility::func_141E("killstreak_uav_mp");
scripts\mp\_utility::func_12C6("killstreak_remote_uav_mp");
scripts\mp\_utility::_switchtoweaponimmediate("killstreak_remote_uav_mp");
func_F686(var_02);
if(isalive(self) && isdefined(var_02))
{
var_03 = var_02.origin;
var_04 = self.angles;
var_02.var_10478 delete();
var_02 delete();
var_05 = func_10DEA(param_00,param_01,var_03,var_04);
}
else
{
var_05 = 0;
if(isalive(self))
{
scripts\mp\_utility::func_141E("killstreak_remote_uav_mp");
scripts\mp\_utility::func_12C6("killstreak_uav_mp");
}
}
return var_05;
}
//Function Number: 6
func_4994(param_00,param_01)
{
var_02 = param_01.origin + anglestoforward(param_01.angles) * 4 + anglestoup(param_01.angles) * 50;
var_03 = spawnturret("misc_turret",var_02,"sentry_minigun_mp");
var_03.origin = var_02;
var_03.angles = param_01.angles;
var_03.var_F26E = "sentry_minigun";
var_03.var_3872 = 1;
var_03 method_835B(1);
var_03 method_830F("sentry_offline");
var_03 makeunusable();
var_03 method_81F5();
var_03.var_222 = param_01;
var_03 method_8336(var_03.var_222);
var_03.var_EB9C = 3;
var_03.var_94D1 = 0;
var_03 thread func_3AFE();
var_03.var_DCD0 = getent("remote_uav_range","targetname");
if(!isdefined(var_03.var_DCD0))
{
var_04 = getent("airstrikeheight","targetname");
var_03.var_B4A3 = var_04.origin[2];
var_03.var_B492 = 3600;
}
var_03.var_10478 = spawn("script_origin",var_03.origin);
var_03.var_10478.angles = var_03.angles;
var_03.var_10478.origin = var_03.origin;
var_03.var_10478 linkto(var_03);
var_03.var_10478 playloopsound("recondrone_idle_high");
return var_03;
}
//Function Number: 7
func_F686(param_00)
{
param_00 thread func_3AFF(self);
self notifyonplayercommand("place_carryRemoteUAV","+attack");
self notifyonplayercommand("place_carryRemoteUAV","+attack_akimbo_accessible");
self notifyonplayercommand("cancel_carryRemoteUAV","+actionslot 4");
if(!level.console)
{
self notifyonplayercommand("cancel_carryRemoteUAV","+actionslot 5");
self notifyonplayercommand("cancel_carryRemoteUAV","+actionslot 6");
self notifyonplayercommand("cancel_carryRemoteUAV","+actionslot 7");
}
for(;;)
{
var_01 = func_AEBE("place_carryRemoteUAV","cancel_carryRemoteUAV","weapon_switch_started","force_cancel_placement","death","disconnect");
self method_80F3();
if(var_01 != "place_carryRemoteUAV")
{
func_3AFD(param_00);
break;
}
if(!param_00.var_3872)
{
if(self.team != "spectator")
{
self method_80F4(&"KILLSTREAKS_REMOTE_UAV_CANNOT_PLACE");
}
continue;
}
if(func_68C4(self.team) || scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA >= scripts\mp\_utility::func_B4D2())
{
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
func_3AFD(param_00);
break;
}
self.var_9D81 = 0;
param_00.var_3A9D = undefined;
param_00 playsound("sentry_gun_plant");
param_00 notify("placed");
break;
}
}
//Function Number: 8
func_AEBE(param_00,param_01,param_02,param_03,param_04,param_05)
{
if((!isdefined(param_00) || param_00 != "death") && !isdefined(param_01) || param_01 != "death" && !isdefined(param_02) || param_02 != "death" && !isdefined(param_03) || param_03 != "death" && !isdefined(param_04) || param_04 != "death")
{
self endon("death");
}
var_06 = spawnstruct();
if(isdefined(param_00))
{
thread scripts\common\utility::func_13806(param_00,var_06);
}
if(isdefined(param_01))
{
thread scripts\common\utility::func_13806(param_01,var_06);
}
if(isdefined(param_02))
{
thread scripts\common\utility::func_13806(param_02,var_06);
}
if(isdefined(param_03))
{
thread scripts\common\utility::func_13806(param_03,var_06);
}
if(isdefined(param_04))
{
thread scripts\common\utility::func_13806(param_04,var_06);
}
if(isdefined(param_05))
{
thread scripts\common\utility::func_13806(param_05,var_06);
}
var_06 waittill("returned",var_07);
var_06 notify("die");
return var_07;
}
//Function Number: 9
func_3AFF(param_00)
{
self setcandamage(0);
self method_8335(param_00);
self method_82C7(0);
self.var_3A9D = param_00;
param_00.var_9D81 = 1;
param_00 thread func_12E70(self);
self notify("carried");
}
//Function Number: 10
func_3AFD(param_00)
{
self.var_9D81 = 0;
if(isdefined(param_00))
{
if(isdefined(param_00.var_10478))
{
param_00.var_10478 delete();
}
param_00 delete();
}
}
//Function Number: 11
func_9E4F()
{
if(isdefined(level.var_DFA2) && level.var_DFA2.size)
{
foreach(var_01 in level.var_DFA2)
{
if(self istouching(var_01))
{
return 1;
}
}
}
return 0;
}
//Function Number: 12
func_12E70(param_00)
{
self endon("death");
self endon("disconnect");
level endon("game_ended");
param_00 endon("placed");
param_00 endon("death");
param_00.var_3872 = 1;
var_01 = -1;
scripts\common\utility::func_1C6E(1);
for(;;)
{
var_02 = 18;
switch(self getstance())
{
case "stand":
var_02 = 40;
break;
case "crouch":
var_02 = 25;
break;
case "prone":
var_02 = 10;
break;
}
var_03 = self canplayerplacetank(22,22,50,var_02,0,0);
param_00.origin = var_03["origin"] + anglestoup(self.angles) * 27;
param_00.angles = var_03["angles"];
param_00.var_3872 = self isonground() && var_03["result"] && param_00 func_DF9C() && !param_00 func_9E4F();
if(param_00.var_3872 != var_01)
{
if(param_00.var_3872)
{
if(self.team != "spectator")
{
self method_80F4(&"KILLSTREAKS_REMOTE_UAV_PLACE");
}
if(self attackbuttonpressed())
{
self notify("place_carryRemoteUAV");
}
}
else if(self.team != "spectator")
{
self method_80F4(&"KILLSTREAKS_REMOTE_UAV_CANNOT_PLACE");
}
}
var_01 = param_00.var_3872;
wait(0.05);
}
}
//Function Number: 13
func_3AFE()
{
level endon("game_ended");
self.var_222 endon("place_carryRemoteUAV");
self.var_222 endon("cancel_carryRemoteUAV");
self.var_222 scripts\common\utility::waittill_any_3("death","disconnect","joined_team","joined_spectators");
if(isdefined(self))
{
if(isdefined(self.var_10478))
{
self.var_10478 delete();
}
self delete();
}
}
//Function Number: 14
func_E162()
{
level endon("game_ended");
self endon("disconnect");
wait(0.7);
}
//Function Number: 15
func_10DEA(param_00,param_01,param_02,param_03)
{
func_AF31();
scripts\mp\_utility::func_FB09(param_01);
scripts\mp\_utility::func_12C6("uav_remote_mp");
scripts\mp\_utility::_switchtoweaponimmediate("uav_remote_mp");
self visionsetnakedforplayer("black_bw",0);
var_04 = scripts\mp\killstreaks\_killstreaks::func_98C2("remote_uav");
if(var_04 != "success")
{
if(var_04 != "disconnect")
{
self notify("remoteuav_unlock");
scripts\mp\_utility::func_141E("uav_remote_mp");
scripts\mp\_utility::func_41E9();
}
return 0;
}
if(func_68C4(self.team) || scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA >= scripts\mp\_utility::func_B4D2())
{
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
self notify("remoteuav_unlock");
scripts\mp\_utility::func_141E("uav_remote_mp");
scripts\mp\_utility::func_41E9();
return 0;
}
self notify("remoteuav_unlock");
var_05 = func_4A07(param_00,self,param_01,param_02,param_03);
if(isdefined(var_05))
{
thread func_DFA7(param_00,var_05,param_01);
return 1;
}
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
scripts\mp\_utility::func_141E("uav_remote_mp");
scripts\mp\_utility::func_41E9();
return 0;
}
//Function Number: 16
func_AF31()
{
var_00 = spawn("script_origin",self.origin);
var_00 hide();
self playerlinkto(var_00);
thread func_41CD(var_00);
}
//Function Number: 17
func_41CD(param_00)
{
level endon("game_ended");
var_01 = scripts\common\utility::func_13734("disconnect","death","remoteuav_unlock");
if(var_01 != "disconnect")
{
self unlink();
}
param_00 delete();
}
//Function Number: 18
func_4A07(param_00,param_01,param_02,param_03,param_04)
{
if(level.console)
{
var_05 = spawnhelicopter(param_01,param_03,param_04,"remote_uav_mp","vehicle_remote_uav");
}
else
{
var_05 = spawnhelicopter(param_02,param_04,var_05,"remote_uav_mp_pc","vehicle_remote_uav");
}
if(!isdefined(var_05))
{
return undefined;
}
var_05 scripts\mp\killstreaks\_helicopter::func_1852();
var_05 thread scripts\mp\killstreaks\_helicopter::func_E111();
var_05 method_81FC(18,-9,18);
var_05.var_AC68 = param_00;
var_05.team = param_01.team;
var_05.pers["team"] = param_01.team;
var_05.var_222 = param_01;
var_05 method_831F(param_01);
var_05 scripts\mp\sentientpoolmanager::registersentient("Killstreak_Air",param_01);
var_05.maxhealth = 250;
var_05.var_EC9C = spawn("script_model",param_03);
var_05.var_EC9C linkto(var_05,"tag_origin",(0,0,-160),(0,0,0));
var_05.var_EC9C method_81F4(param_01);
var_05.var_1037E = 0;
var_05.var_94D1 = 0;
var_05.var_8DD9 = "remote_uav";
var_05.var_B372 = [];
var_05 thread func_DFA0();
var_05 thread func_DF95();
var_05 thread func_DF93();
var_05 thread func_DF94();
var_05 thread func_DF8D();
var_05 thread func_DF9F();
var_05 thread func_DFAD();
var_05 thread func_DFAE();
var_05 thread func_DF99();
var_05.var_C22B = 2;
var_05.var_8C01 = 0;
var_05.var_93DB = [];
var_05 thread func_DF8E();
var_05 thread func_DF9B();
var_05 thread func_DF9A();
level.var_DF74[var_05.team] = var_05;
return var_05;
}
//Function Number: 19
func_DFA7(param_00,param_01,param_02)
{
param_01.var_D3D3 = 1;
self.var_E2D7 = self.angles;
if(getdvarint("camera_thirdPerson"))
{
scripts\mp\_utility::setthirdpersondof(0);
}
self cameralinkto(param_01,"tag_origin");
self method_825C(param_01);
thread func_DFA4(param_01);
thread func_DFAA(param_01);
thread func_DF96(param_01);
self.var_DF75 = param_00;
self.var_DF8A = param_01;
thread func_DF90(param_01);
self visionsetnakedforplayer("black_bw",0);
scripts\mp\_utility::func_E2D8(1);
}
//Function Number: 20
func_DF90(param_00)
{
level endon("game_ended");
self endon("disconnect");
param_00 endon("death");
param_00 endon("end_remote");
param_00 endon("end_launch_dialog");
wait(3);
func_DF91("launch");
}
//Function Number: 21
func_DF92(param_00)
{
if(isdefined(param_00))
{
param_00.var_D3D3 = 0;
param_00 notify("end_remote");
scripts\mp\_utility::func_41E9();
if(getdvarint("camera_thirdPerson"))
{
scripts\mp\_utility::setthirdpersondof(1);
}
self cameraunlink(param_00);
self method_825D(param_00);
self thermalvisionoff();
self setplayerangles(self.var_E2D7);
var_01 = scripts\common\utility::getlastweapon();
if(!self hasweapon(var_01))
{
var_01 = scripts\mp\killstreaks\_utility::func_7EB7();
}
scripts\mp\_utility::_switchtoweapon(var_01);
scripts\mp\_utility::func_141E("uav_remote_mp");
thread func_DF97();
}
self.var_DF8A = undefined;
}
//Function Number: 22
func_DF97()
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
scripts\mp\_utility::func_7385(1);
wait(0.5);
scripts\mp\_utility::func_7385(0);
}
//Function Number: 23
func_DFA4(param_00)
{
level endon("game_ended");
self endon("disconnect");
param_00 endon("death");
param_00 endon("end_remote");
wait(2);
for(;;)
{
var_01 = 0;
while(self usebuttonpressed())
{
var_01 = var_01 + 0.05;
if(var_01 > 0.75)
{
param_00 thread func_DF9E();
return;
}
wait(0.05);
}
wait(0.05);
}
}
//Function Number: 24
func_DFAA(param_00)
{
level endon("game_ended");
self endon("disconnect");
param_00 endon("death");
param_00 endon("end_remote");
param_00.var_AA34 = 0;
self.var_AEFB = undefined;
self weaponlockfree();
wait(1);
for(;;)
{
var_01 = param_00 gettagorigin("tag_turret");
var_02 = anglestoforward(self getplayerangles());
var_03 = var_01 + var_02 * 1024;
var_04 = bullettrace(var_01,var_03,1,param_00);
if(isdefined(var_04["position"]))
{
var_05 = var_04["position"];
}
else
{
var_05 = var_03;
var_04["endpos"] = var_03;
}
param_00.var_11A7B = var_04;
var_06 = func_DFAB(param_00,level.players,var_05);
var_07 = func_DFAB(param_00,level.var_12A83,var_05);
var_08 = undefined;
if(level.multiteambased)
{
var_09 = [];
foreach(var_0B in level.teamnamelist)
{
if(var_0B != self.team)
{
foreach(var_0D in level.var_12AF3[var_0B])
{
var_09[var_09.size] = var_0D;
}
}
}
var_08 = func_DFAB(param_00,var_09,var_05);
}
else if(level.teambased)
{
var_08 = func_DFAB(param_00,level.var_12AF3[level.var_C74B[self.team]],var_05);
}
else
{
var_08 = func_DFAB(param_00,level.var_12AF3,var_05);
}
var_10 = undefined;
if(isdefined(var_06))
{
var_10 = var_06;
}
else if(isdefined(var_07))
{
var_10 = var_07;
}
else if(isdefined(var_08))
{
var_10 = var_08;
}
if(isdefined(var_10))
{
if(!isdefined(self.var_AEFB) || isdefined(self.var_AEFB) && self.var_AEFB != var_10)
{
self method_8402(var_10);
self.var_AEFB = var_10;
if(isdefined(var_06))
{
param_00 notify("end_launch_dialog");
func_DF91("track");
}
}
}
else
{
self weaponlockfree();
self.var_AEFB = undefined;
}
wait(0.05);
}
}
//Function Number: 25
func_DFAB(param_00,param_01,param_02)
{
level endon("game_ended");
var_03 = undefined;
foreach(var_05 in param_01)
{
if(level.teambased && !isdefined(var_05.team) || var_05.team == self.team)
{
continue;
}
if(isplayer(var_05))
{
if(!scripts\mp\_utility::func_9F19(var_05))
{
continue;
}
if(var_05 == self)
{
continue;
}
var_06 = var_05.var_86BD;
}
else
{
var_06 = var_05.var_64;
}
if(isdefined(var_05.var_F26E) || isdefined(var_05.var_12A9A))
{
var_07 = (0,0,32);
var_08 = "hud_fofbox_hostile_vehicle";
}
else if(isdefined(var_05.var_12AFA))
{
var_07 = (0,0,-52);
var_08 = "hud_fofbox_hostile_vehicle";
}
else
{
var_07 = (0,0,26);
var_08 = "veh_hud_target_unmarked";
}
if(isdefined(var_05.var_12AF4))
{
if(!isdefined(param_00.var_B372[var_06]))
{
param_00.var_B372[var_06] = [];
param_00.var_B372[var_06]["player"] = var_05;
param_00.var_B372[var_06]["icon"] = var_05 scripts\mp\_entityheadicons::func_F73D(self,"veh_hud_target_marked",var_07,10,10,0,0.05,0,0,0,0);
param_00.var_B372[var_06]["icon"].shader = "veh_hud_target_marked";
if(!isdefined(var_05.var_F26E) || !isdefined(var_05.var_12A9A))
{
param_00.var_B372[var_06]["icon"] settargetent(var_05);
}
}
else if(isdefined(param_00.var_B372[var_06]) && isdefined(param_00.var_B372[var_06]["icon"]) && isdefined(param_00.var_B372[var_06]["icon"].shader) && param_00.var_B372[var_06]["icon"].shader != "veh_hud_target_marked")
{
param_00.var_B372[var_06]["icon"].shader = "veh_hud_target_marked";
param_00.var_B372[var_06]["icon"] setshader("veh_hud_target_marked",10,10);
param_00.var_B372[var_06]["icon"] setwaypoint(0,0,0,0);
}
continue;
}
if(isplayer(var_05))
{
var_09 = isdefined(var_05.var_10916) && gettime() - var_05.var_10916 / 1000 <= 5;
var_0A = var_05 scripts\mp\_utility::_hasperk("specialty_blindeye");
var_0B = 0;
var_0C = 0;
}
else
{
var_09 = 0;
var_0A = 0;
var_0B = isdefined(var_07.var_3A9D);
var_0C = isdefined(var_06.var_9E78) && var_06.var_9E78 == 1;
}
if(!isdefined(param_00.var_B372[var_06]) && !var_09 && !var_0A && !var_0B && !var_0C)
{
param_00.var_B372[var_06] = [];
param_00.var_B372[var_06]["player"] = var_05;
param_00.var_B372[var_06]["icon"] = var_05 scripts\mp\_entityheadicons::func_F73D(self,var_08,var_07,10,10,0,0.05,0,0,0,0);
param_00.var_B372[var_06]["icon"].shader = var_08;
if(!isdefined(var_05.var_F26E) || !isdefined(var_05.var_12A9A))
{
param_00.var_B372[var_06]["icon"] settargetent(var_05);
}
}
if(((!isdefined(var_03) || var_03 != var_05) && isdefined(param_00.var_11A7B["entity"]) && param_00.var_11A7B["entity"] == var_05 && !var_0B && !var_0C) || distance(var_05.origin,param_02) < 200 * param_00.var_11A7B["fraction"] && !var_09 && !var_0B && !var_0C || !var_0C && func_DF8B(param_00,var_05))
{
var_0D = bullettrace(param_00.origin,var_05.origin + (0,0,32),1,param_00);
if((isdefined(var_0D["entity"]) && var_0D["entity"] == var_05) || var_0D["fraction"] == 1)
{
self playlocalsound("recondrone_lockon");
var_03 = var_05;
}
}
}
return var_03;
}
//Function Number: 26
func_DF8B(param_00,param_01)
{
if(isdefined(param_01.var_12AFA))
{
var_02 = anglestoforward(self getplayerangles());
var_03 = vectornormalize(param_01.origin - param_00 gettagorigin("tag_turret"));
var_04 = vectordot(var_02,var_03);
if(var_04 > 0.985)
{
return 1;
}
}
return 0;
}
//Function Number: 27
func_DF96(param_00)
{
self endon("disconnect");
param_00 endon("death");
level endon("game_ended");
param_00 endon("end_remote");
wait(1);
self notifyonplayercommand("remoteUAV_tag","+attack");
self notifyonplayercommand("remoteUAV_tag","+attack_akimbo_accessible");
for(;;)
{
self waittill("remoteUAV_tag");
if(isdefined(self.var_AEFB))
{
self playlocalsound("recondrone_tag");
scripts\mp\_damagefeedback::func_12E84("");
thread func_DFA1(self.var_AEFB);
thread func_DFA8(param_00,3);
wait(0.25);
continue;
}
wait(0.05);
}
}
//Function Number: 28
func_DFA8(param_00,param_01)
{
self endon("disconnect");
param_00 endon("death");
level endon("game_ended");
param_00 endon("end_remote");
param_00 notify("end_rumble");
param_00 endon("end_rumble");
for(var_02 = 0;var_02 < param_01;var_02++)
{
self playrumbleonentity("damage_heavy");
wait(0.05);
}
}
//Function Number: 29
func_DFA1(param_00)
{
level endon("game_ended");
param_00.var_12AF4 = self;
if(isplayer(param_00) && !param_00 scripts\mp\_utility::func_9FC6())
{
param_00 playlocalsound("player_hit_while_ads_hurt");
param_00 thread scripts\mp\_flashgrenades::func_20CA(2,1);
param_00 thread scripts\mp\_rank::func_EC2D("marked_by_remote_uav");
}
else if(isdefined(param_00.var_12AFA))
{
param_00.var_2B0C = param_00.var_64;
}
else if(isdefined(param_00.var_222) && isalive(param_00.var_222))
{
param_00.var_222 thread scripts\mp\_rank::func_EC2D("turret_marked_by_remote_uav");
}
func_DF91("tag");
if(level.gametype != "dm")
{
if(isplayer(param_00))
{
thread scripts\mp\_utility::func_83B4("kill");
}
}
if(isplayer(param_00))
{
param_00 method_8320("specialty_radarblip",1);
}
else
{
if(isdefined(param_00.var_12AFA))
{
var_01 = "compassping_enemy_uav";
}
else
{
var_01 = "compassping_sentry_enemy";
}
if(level.teambased)
{
var_02 = scripts\mp\objidpoolmanager::requestminimapid(1);
if(var_02 != -1)
{
scripts\mp\objidpoolmanager::minimap_objective_add(var_02,"invisible",(0,0,0));
scripts\mp\objidpoolmanager::minimap_objective_onentity(var_02,param_00);
scripts\mp\objidpoolmanager::minimap_objective_state(var_02,"active");
scripts\mp\objidpoolmanager::minimap_objective_team(var_02,self.team);
scripts\mp\objidpoolmanager::minimap_objective_icon(var_02,var_01);
}
param_00.var_DFAF = var_02;
}
else
{
var_02 = scripts\mp\objidpoolmanager::requestminimapid(1);
if(var_02 != -1)
{
scripts\mp\objidpoolmanager::minimap_objective_add(var_02,"invisible",(0,0,0));
scripts\mp\objidpoolmanager::minimap_objective_onentity(var_02,param_00);
scripts\mp\objidpoolmanager::minimap_objective_state(var_02,"active");
scripts\mp\objidpoolmanager::minimap_objective_team(var_02,level.var_C74B[self.team]);
scripts\mp\objidpoolmanager::minimap_objective_icon(var_02,var_01);
}
param_00.var_DFB0 = var_02;
var_02 = scripts\mp\objidpoolmanager::requestminimapid(1);
if(var_02 != -1)
{
scripts\mp\objidpoolmanager::minimap_objective_add(var_02,"invisible",(0,0,0));
scripts\mp\objidpoolmanager::minimap_objective_onentity(var_02,param_00);
scripts\mp\objidpoolmanager::minimap_objective_state(var_02,"active");
scripts\mp\objidpoolmanager::minimap_objective_team(var_02,self.team);
scripts\mp\objidpoolmanager::minimap_objective_icon(var_02,var_01);
}
param_00.var_DFB1 = var_02;
}
}
param_00 thread func_DFAC(self.var_DF8A);
}
//Function Number: 30
func_DFA5(param_00)
{
func_DF91("assist");
if(level.gametype != "dm")
{
self.var_113FF = 1;
if(isdefined(param_00))
{
thread scripts\mp\_gamescore::func_D98C(param_00);
return;
}
thread scripts\mp\_utility::func_83B4("assist");
}
}
//Function Number: 31
func_DFAC(param_00)
{
level endon("game_ended");
var_01 = scripts\common\utility::func_13734("death","disconnect","carried","leaving");
if(var_01 == "leaving" || !isdefined(self.var_12AFA))
{
self.var_12AF4 = undefined;
}
if(isdefined(param_00))
{
if(isplayer(self))
{
var_02 = self.var_86BD;
}
else if(isdefined(self.var_64))
{
var_02 = self.var_64;
}
else
{
var_02 = self.var_2B0C;
}
if(var_01 == "carried" || var_01 == "leaving")
{
param_00.var_B372[var_02]["icon"] destroy();
param_00.var_B372[var_02]["icon"] = undefined;
}
if(isdefined(var_02) && isdefined(param_00.var_B372[var_02]))
{
param_00.var_B372[var_02] = undefined;
param_00.var_B372 = scripts\common\utility::func_22BC(param_00.var_B372);
}
}
if(isplayer(self))
{
self method_83CC("specialty_radarblip",1);
return;
}
if(isdefined(self.var_DFAF))
{
scripts\mp\objidpoolmanager::returnminimapid(self.var_DFAF);
}
if(isdefined(self.var_DFB0))
{
scripts\mp\objidpoolmanager::returnminimapid(self.var_DFB0);
}
if(isdefined(self.var_DFB1))
{
scripts\mp\objidpoolmanager::returnminimapid(self.var_DFB1);
}
}
//Function Number: 32
func_DF8F()
{
foreach(var_01 in self.var_B372)
{
if(isdefined(var_01["icon"]))
{
var_01["icon"] destroy();
var_01["icon"] = undefined;
}
}
self.var_B372 = undefined;
}
//Function Number: 33
func_DFA3(param_00)
{
self endon("disconnect");
param_00 endon("death");
level endon("game_ended");
param_00 endon("end_remote");
for(;;)
{
self playrumbleonentity("damage_light");
wait(0.5);
}
}
//Function Number: 34
func_DFAD()
{
self endon("death");
self.var_DCD0 = getent("remote_uav_range","targetname");
if(!isdefined(self.var_DCD0))
{
var_00 = getent("airstrikeheight","targetname");
self.var_B4A3 = var_00.origin[2];
self.var_B492 = 12800;
}
self.var_3BB7 = spawn("script_model",level.var_B32E);
var_01 = self.origin;
self.var_DCCE = 0;
for(;;)
{
if(!func_DF9C())
{
var_02 = 0;
while(!func_DF9C())
{
self.var_222 func_DF91("out_of_range");
if(!self.var_DCCE)
{
self.var_DCCE = 1;
thread func_DFA6();
}
if(isdefined(self.var_8DBD))
{
var_03 = distance(self.origin,self.var_8DBD.origin);
var_02 = 1 - var_03 - 150 / 150;
}
else
{
var_03 = distance(self.origin,var_01);
var_02 = min(1,var_03 / 200);
}
self.var_222 setplayerdata("reconDroneState","staticAlpha",var_02);
wait(0.05);
}
self notify("in_range");
self.var_DCCE = 0;
thread func_DFA9(var_02);
}
var_01 = self.origin;
wait(0.05);
}
}
//Function Number: 35
func_DF9C()
{
if(isdefined(self.var_DCD0))
{
if(!self istouching(self.var_DCD0) && !self.var_94D1)
{
return 1;
}
}
else if(distance2d(self.origin,level.var_B32E) < self.var_B492 && self.origin[2] < self.var_B4A3 && !self.var_94D1)
{
return 1;
}
return 0;
}
//Function Number: 36
func_DFA9(param_00)
{
self endon("death");
while(func_DF9C())
{
param_00 = param_00 - 0.05;
if(param_00 < 0)
{
self.var_222 setplayerdata("reconDroneState","staticAlpha",0);
break;
}
self.var_222 setplayerdata("reconDroneState","staticAlpha",param_00);
wait(0.05);
}
}
//Function Number: 37
func_DFA6()
{
self endon("death");
self endon("in_range");
if(isdefined(self.var_8DBD))
{
var_00 = 3;
}
else
{
var_00 = 6;
}
scripts\mp\_hostmigration::func_13708(var_00);
self notify("death");
}
//Function Number: 38
func_DF95()
{
self endon("death");
self.var_222 waittill("disconnect");
self notify("death");
}
//Function Number: 39
func_DF93()
{
self endon("death");
self.var_222 scripts\common\utility::waittill_any_3("joined_team","joined_spectators");
self notify("death");
}
//Function Number: 40
func_DF8D()
{
self endon("death");
level waittill("game_ended");
func_DF8F();
}
//Function Number: 41
func_DF9F()
{
self endon("death");
var_00 = 60;
scripts\mp\_hostmigration::func_13708(var_00);
thread func_DF9E();
}
//Function Number: 42
func_DF9E()
{
level endon("game_ended");
self endon("death");
self notify("leaving");
self.var_222 func_DF92(self);
self notify("death");
}
//Function Number: 43
func_DF94()
{
level endon("game_ended");
self waittill("death");
self playsound("recondrone_destroyed");
playfx(level.var_DF98["explode"],self.origin);
func_DF8C();
}
//Function Number: 44
func_DF8C()
{
if(self.var_D3D3 == 1 && isdefined(self.var_222))
{
self.var_222 func_DF92(self);
}
if(isdefined(self.var_EC9C))
{
self.var_EC9C delete();
}
if(isdefined(self.var_3BB7))
{
self.var_3BB7 delete();
}
func_DF8F();
stopfxontag(level.var_DF98["smoke"],self,"tag_origin");
level.var_DF74[self.team] = undefined;
scripts\mp\_utility::func_4FC1();
self delete();
}
//Function Number: 45
func_DFA0()
{
playfxontag(level.var_3F19["light"]["belly"],self,"tag_light_nose");
wait(0.05);
playfxontag(level.var_3F19["light"]["tail"],self,"tag_light_tail1");
}
//Function Number: 46
func_DF91(param_00)
{
if(param_00 == "tag")
{
var_01 = 1000;
}
else
{
var_01 = 5000;
}
if(gettime() - level.var_DF9D < var_01)
{
return;
}
level.var_DF9D = gettime();
var_02 = randomint(level.var_DF91[param_00].size);
var_03 = level.var_DF91[param_00][var_02];
var_04 = scripts\mp\_teams::func_81BC(self.team) + var_03;
self playlocalsound(var_04);
}
//Function Number: 47
func_DF9B()
{
level endon("game_ended");
self endon("death");
self endon("end_remote");
for(;;)
{
level waittill("stinger_fired",var_00,var_01,var_02);
if(!isdefined(var_01) || !isdefined(var_02) || var_02 != self)
{
continue;
}
self.var_222 playlocalsound("javelin_clu_lock");
self.var_222 setplayerdata("reconDroneState","incomingMissile",1);
self.var_8C01 = 1;
self.var_93DB[self.var_93DB.size] = var_01;
var_01.var_222 = var_00;
var_01 thread func_13B5F(var_02);
}
}
//Function Number: 48
func_DF9A()
{
level endon("game_ended");
self endon("death");
self endon("end_remote");
for(;;)
{
level waittill("sam_fired",var_00,var_01,var_02);
if(!isdefined(var_02) || var_02 != self)
{
continue;
}
var_03 = 0;
foreach(var_05 in var_01)
{
if(isdefined(var_05))
{
self.var_93DB[self.var_93DB.size] = var_05;
var_05.var_222 = var_00;
var_03++;
}
}
if(var_03)
{
self.var_222 playlocalsound("javelin_clu_lock");
self.var_222 setplayerdata("reconDroneState","incomingMissile",1);
self.var_8C01 = 1;
level thread func_13B30(var_02,var_01);
}
}
}
//Function Number: 49
func_13B5F(param_00)
{
level endon("game_ended");
self endon("death");
self missile_settargetent(param_00);
var_01 = vectornormalize(param_00.origin - self.origin);
while(isdefined(param_00))
{
var_02 = param_00 method_8159(0,0,0);
var_03 = distance(self.origin,var_02);
if(param_00.var_C22B > 0 && var_03 < 4000)
{
var_04 = param_00 func_5231();
self missile_settargetent(var_04);
return;
}
else
{
var_04 = vectornormalize(var_01.origin - self.origin);
if(vectordot(var_04,var_02) < 0)
{
self playsound("exp_stinger_armor_destroy");
playfx(level.var_DF98["missile_explode"],self.origin);
if(isdefined(self.var_222))
{
radiusdamage(self.origin,400,1000,1000,self.var_222,"MOD_EXPLOSIVE","stinger_mp");
}
else
{
radiusdamage(self.origin,400,1000,1000,undefined,"MOD_EXPLOSIVE","stinger_mp");
}
self hide();
wait(0.05);
self delete();
continue;
}
var_02 = var_04;
}
wait(0.05);
}
}
//Function Number: 50
func_13B30(param_00,param_01)
{
level endon("game_ended");
param_00 endon("death");
foreach(var_03 in param_01)
{
if(isdefined(var_03))
{
var_03 missile_settargetent(param_00);
var_03.var_AA41 = vectornormalize(param_00.origin - var_03.origin);
}
}
while(param_01.size && isdefined(param_00))
{
var_05 = param_00 method_8159(0,0,0);
foreach(var_0D, var_03 in param_01)
{
if(isdefined(var_03))
{
if(isdefined(self.var_B37B))
{
self delete();
continue;
}
if(param_00.var_C22B > 0)
{
var_07 = distance(var_03.origin,var_05);
if(var_07 < 4000)
{
var_08 = param_00 func_5231();
foreach(var_0A in param_01)
{
if(isdefined(var_0A))
{
var_0A missile_settargetent(var_08);
}
}
return;
}
continue;
}
var_0C = vectornormalize(var_04.origin - var_0D.origin);
if(vectordot(var_0C,var_0D.var_AA41) < 0)
{
var_0D playsound("exp_stinger_armor_destroy");
playfx(level.var_DF98["missile_explode"],var_0D.origin);
if(isdefined(var_0D.var_222))
{
radiusdamage(var_0D.origin,400,1000,1000,var_0D.var_222,"MOD_EXPLOSIVE","stinger_mp");
}
else
{
radiusdamage(var_0D.origin,400,1000,1000,undefined,"MOD_EXPLOSIVE","stinger_mp");
}
var_0D hide();
var_0D.var_B37B = 1;
}
else
{
var_0D.var_AA41 = var_0C;
}
}
}
var_05 = scripts\common\utility::func_22BC(var_05);
wait(0.05);
}
}
//Function Number: 51
func_5231()
{
self.var_C22B--;
self.var_222 thread func_DFA8(self,6);
self playsound("WEAP_SHOTGUNATTACH_FIRE_NPC");
thread func_D47A();
var_00 = self.origin + (0,0,-100);
var_01 = spawn("script_origin",var_00);
var_01.angles = self.angles;
var_01 movegravity((0,0,-1),5);
var_01 thread func_51A6(5);
return var_01;
}
//Function Number: 52
func_D47A()
{
for(var_00 = 0;var_00 < 5;var_00++)
{
if(!isdefined(self))
{
return;
}
playfxontag(level._effect["vehicle_flares"],self,"TAG_FLARE");
wait(0.15);
}
}
//Function Number: 53
func_51A6(param_00)
{
wait(param_00);
self delete();
}
//Function Number: 54
func_DF8E()
{
level endon("game_ended");
self endon("death");
self endon("end_remote");
for(;;)
{
var_00 = 0;
for(var_01 = 0;var_01 < self.var_93DB.size;var_01++)
{
if(isdefined(self.var_93DB[var_01]) && func_B80A(self.var_93DB[var_01],self))
{
var_00++;
}
}
if(self.var_8C01 && !var_00)
{
self.var_8C01 = 0;
self.var_222 setplayerdata("reconDroneState","incomingMissile",0);
}
self.var_93DB = scripts\common\utility::func_22BC(self.var_93DB);
wait(0.05);
}
}
//Function Number: 55
func_B80A(param_00,param_01)
{
var_02 = vectornormalize(param_01.origin - param_00.origin);
var_03 = anglestoforward(param_00.angles);
return vectordot(var_02,var_03) > 0;
}
//Function Number: 56
func_DFAE()
{
level endon("game_ended");
self endon("death");
self endon("end_remote");
for(;;)
{
var_00 = 0;
foreach(var_02 in level.var_8DD3)
{
if(distance(var_02.origin,self.origin) < 300)
{
var_00 = 1;
self.var_8DBD = var_02;
}
}
foreach(var_05 in level.var_AD8B)
{
if(var_05 != self && !isdefined(var_05.var_8DD9) || var_05.var_8DD9 != "remote_uav" && distance(var_05.origin,self.origin) < 300)
{
var_00 = 1;
self.var_8DBD = var_05;
}
}
if(!self.var_94D1 && var_00)
{
self.var_94D1 = 1;
}
else if(self.var_94D1 && !var_00)
{
self.var_94D1 = 0;
self.var_8DBD = undefined;
}
wait(0.05);
}
}
//Function Number: 57
func_DF99()
{
self endon("end_remote");
scripts\mp\_damage::func_B9C6(self.maxhealth,"remote_uav",::func_898F,::func_B938,1);
}
//Function Number: 58
func_B938(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_03;
var_05 = scripts\mp\_damage::func_8999(param_01,param_02,var_05);
var_05 = scripts\mp\_damage::func_89C6(param_01,param_02,var_05);
var_05 = scripts\mp\_damage::func_8975(param_01,param_02,var_05);
playfxontagforclients(level.var_DF98["hit"],self,"tag_origin",self.var_222);
self playsound("recondrone_damaged");
if(self.var_1037E == 0 && self.var_E1 >= self.maxhealth / 2)
{
self.var_1037E = 1;
playfxontag(level.var_DF98["smoke"],self,"tag_origin");
}
return var_05;
}
//Function Number: 59
func_898F(param_00,param_01,param_02,param_03)
{
scripts\mp\_damage::func_C548("remote_uav",param_00,param_01,param_02,param_03,"destroyed_remote_uav",undefined,"callout_destroyed_remote_uav");
}