/******************************************************************* * 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"); }