/******************************************************************* * Decompiled By: Bog * Decompiled File: scripts\mp\killstreaks\_autosentry.gsc * Game: Call of Duty: Infinite Warfare * Platform: PC * Function Count: 88 * Decompile Time: 3928 ms * Timestamp: 10/27/2023 12:28:12 AM *******************************************************************/ //Function Number: 1 init() { level.var_F26E = []; level.var_F26E["sentry_minigun"] = "sentry"; level.var_F26E["sam_turret"] = "sam_turret"; level.var_F26E["super_trophy"] = "super_trophy"; level.var_F26E["sentry_shock"] = "sentry_shock"; scripts\mp\killstreaks\_killstreaks::func_DEFB("sentry_shock",::func_12902); scripts\mp\_killstreak_loot::func_DF07("sentry_shock",["passive_extra_health","passive_increased_duration"]); level.var_F26B = []; level.var_F26B["super_trophy"] = spawnstruct(); level.var_F26B["super_trophy"].health = 999999; level.var_F26B["super_trophy"].maxhealth = 100; level.var_F26B["super_trophy"].var_F269 = "sentry"; level.var_F26B["super_trophy"].var_F268 = "sentry_offline"; level.var_F26B["super_trophy"].var_39B = "sentry_laser_mp"; level.var_F26B["super_trophy"].var_B91A = "super_trophy_mp"; level.var_F26B["super_trophy"].var_B920 = "super_trophy_mp_placement"; level.var_F26B["super_trophy"].var_B919 = "super_trophy_mp_placement_fail"; level.var_F26B["super_trophy"].var_B91D = "super_trophy_mp"; level.var_F26B["super_trophy"].var_17B = &"SENTRY_PICKUP"; level.var_F26B["super_trophy"].var_16F = 1; level.var_F26B["super_trophy"].var_115EB = "used_super_trophy"; level.var_F26B["super_trophy"].var_10085 = 0; level.var_F26B["super_trophy"].var_ACB6 = "tag_fx"; level.var_F26B["sentry_shock"] = spawnstruct(); level.var_F26B["sentry_shock"].health = 999999; level.var_F26B["sentry_shock"].maxhealth = 670; level.var_F26B["sentry_shock"].var_32C1 = 20; level.var_F26B["sentry_shock"].var_32C0 = 120; level.var_F26B["sentry_shock"].var_C9D3 = 0.15; level.var_F26B["sentry_shock"].var_C9D1 = 0.35; level.var_F26B["sentry_shock"].var_F269 = "sentry"; level.var_F26B["sentry_shock"].var_F268 = "sentry_offline"; level.var_F26B["sentry_shock"].var_11901 = 90; level.var_F26B["sentry_shock"].var_10A13 = 0.05; level.var_F26B["sentry_shock"].var_C7FB = 8; level.var_F26B["sentry_shock"].var_461D = 0.1; level.var_F26B["sentry_shock"].var_7645 = 0.3; level.var_F26B["sentry_shock"].var_110EA = "sentry_shock"; level.var_F26B["sentry_shock"].var_39B = "sentry_shock_mp"; level.var_F26B["sentry_shock"].var_289 = "ks_shock_sentry_mp"; level.var_F26B["sentry_shock"].var_B91A = "shock_sentry_gun_wm"; level.var_F26B["sentry_shock"].var_B920 = "shock_sentry_gun_wm_obj"; level.var_F26B["sentry_shock"].var_B919 = "shock_sentry_gun_wm_obj_red"; level.var_F26B["sentry_shock"].var_B91D = "shock_sentry_gun_wm_destroyed"; level.var_F26B["sentry_shock"].var_17B = &"SENTRY_PICKUP"; level.var_F26B["sentry_shock"].var_16F = 1; level.var_F26B["sentry_shock"].var_115EB = "used_shock_sentry"; level.var_F26B["sentry_shock"].destroyedsplash = "callout_destroyed_sentry_shock"; level.var_F26B["sentry_shock"].var_10085 = 1; level.var_F26B["sentry_shock"].var_13554 = "sentry_shock_timeout"; level.var_F26B["sentry_shock"].var_13523 = "sentry_shock_destroy"; level.var_F26B["sentry_shock"].var_EC44 = "destroyed_sentry"; level.var_F26B["sentry_shock"].var_ACB6 = "tag_fx"; level.var_F26B["sentry_shock"].var_9E63 = 1; level.var_F26B["sentry_shock"].var_8C7A = (0,0,75); level._effect["sentry_overheat_mp"] = loadfx("vfx/core/mp/killstreaks/vfx_sg_overheat_smoke"); level._effect["sentry_explode_mp"] = loadfx("vfx/iw7/_requests/mp/vfx_generic_equipment_exp_lg.vfx"); level._effect["sentry_sparks_mp"] = loadfx("vfx/core/mp/killstreaks/vfx_sentry_gun_explosion"); level._effect["sentry_smoke_mp"] = loadfx("vfx/iw7/_requests/mp/vfx_gen_equip_dam_spark_runner.vfx"); level._effect["sentry_shock_charge"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_charge_up.vfx"); level._effect["sentry_shock_screen"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_screen"); level._effect["sentry_shock_base"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_base"); level._effect["sentry_shock_radius"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_radius"); level._effect["sentry_shock_explosion"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_end.vfx"); level._effect["sentry_shock_trail"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_proj_trail.vfx"); level._effect["sentry_shock_arc"] = loadfx("vfx/iw7/_requests/mp/vfx_sentry_shock_arc.vfx"); var_00 = ["passive_fast_sweep","passive_decreased_health","passive_sam_turret","passive_no_shock","passive_mini_explosives","passive_slow_turret"]; scripts\mp\_killstreak_loot::func_DF07("sentry_shock",var_00); } //Function Number: 2 func_128D9(param_00,param_01) { var_02 = func_83A3("sentry_minigun"); if(var_02) { scripts\mp\_matchdata::func_AFC9(level.var_F26B["sentry_minigun"].var_110EA,self.origin); } return var_02; } //Function Number: 3 func_12901(param_00,param_01) { var_02 = func_83A3("sam_turret"); if(var_02) { scripts\mp\_matchdata::func_AFC9(level.var_F26B["sam_turret"].var_110EA,self.origin); } return var_02; } //Function Number: 4 func_12902(param_00) { var_01 = func_83A3("sentry_shock",undefined,param_00); if(var_01) { scripts\mp\_matchdata::func_AFC9(param_00.var_110EA,self.origin); } else { scripts\common\utility::func_136F7(); } return var_01; } //Function Number: 5 func_83A3(param_00,param_01,param_02) { self.var_A904 = param_00; if(!isdefined(self.var_CC14)) { self.var_CC14 = []; } if(!isdefined(self.var_CC14[param_00])) { self.var_CC14[param_00] = []; } var_03 = 1; if(isdefined(param_01)) { var_03 = param_01; } var_04 = func_4A11(param_00,self,var_03,param_02); if(isdefined(param_02)) { param_02.var_F265 = var_04; } func_E152(); self.var_3AA5 = var_04; var_05 = func_F688(var_04,1,var_03); self.var_3AA5 = undefined; thread func_1370F(); self.var_9D81 = 0; if(isdefined(var_04)) { return 1; } return 0; } //Function Number: 6 func_F688(param_00,param_01,param_02,param_03) { self endon("death"); self endon("disconnect"); param_00 func_F255(self,param_02,param_03); scripts\common\utility::func_1C6E(0); func_1CB4(0); scripts\common\utility::func_1C53(0); if(!isai(self)) { self notifyonplayercommand("place_sentry","+attack"); self notifyonplayercommand("place_sentry","+attack_akimbo_accessible"); self notifyonplayercommand("cancel_sentry","+actionslot 4"); if(!level.console) { self notifyonplayercommand("cancel_sentry","+actionslot 5"); self notifyonplayercommand("cancel_sentry","+actionslot 6"); self notifyonplayercommand("cancel_sentry","+actionslot 7"); } } for(;;) { var_04 = scripts\common\utility::func_13734("place_sentry","cancel_sentry","force_cancel_placement","apply_player_emp"); if(!isdefined(param_00)) { func_1CB4(1); scripts\common\utility::func_1C6E(1); thread func_6270(); return 1; } if(var_04 == "cancel_sentry" || var_04 == "force_cancel_placement" || var_04 == "apply_player_emp") { if(!param_01 && var_04 == "cancel_sentry" || var_04 == "apply_player_emp") { continue; } param_00 func_F253(var_04 == "force_cancel_placement" && !isdefined(param_00.var_6DEC)); return 0; } if(!param_00.var_3872) { continue; } param_00 func_F259(param_02); return 1; } } //Function Number: 7 func_6270() { self endon("death"); self endon("disconnect"); wait(0.25); scripts\common\utility::func_1C53(1); } //Function Number: 8 func_E18E() { if(self hasweapon("iw6_riotshield_mp")) { self.var_E2E6 = "iw6_riotshield_mp"; scripts\mp\_utility::func_141E("iw6_riotshield_mp"); } } //Function Number: 9 func_E152() { if(scripts\mp\_utility::_hasperk("specialty_explosivebullets")) { self.var_E2DF = "specialty_explosivebullets"; scripts\mp\_utility::func_E150("specialty_explosivebullets"); } } //Function Number: 10 func_E2E8() { if(isdefined(self.var_E2E6)) { scripts\mp\_utility::func_12C6(self.var_E2E6); self.var_E2E6 = undefined; } } //Function Number: 11 func_E2E0() { if(isdefined(self.var_E2DF)) { scripts\mp\_utility::func_8387(self.var_E2DF); self.var_E2DF = undefined; } } //Function Number: 12 func_1370F() { self endon("death"); self endon("disconnect"); level endon("game_ended"); wait(0.05); func_E2E0(); } //Function Number: 13 func_4A11(param_00,param_01,param_02,param_03) { var_04 = level.var_F26B[param_00].var_39B; if(scripts\mp\killstreaks\_utility::func_A69F(param_03,"passive_fast_sweep")) { var_04 = "sentry_shock_fast_mp"; } var_05 = spawnturret("misc_turret",param_01.origin,var_04); var_05.angles = param_01.angles; var_05.var_110E8 = param_03; var_05 func_F246(param_00,param_01,param_02); var_05 thread sentry_destroyongameend(); return var_05; } //Function Number: 14 func_F246(param_00,param_01,param_02,param_03) { if(!isdefined(param_03)) { param_03 = 1; } self.var_F26E = param_00; self.var_3872 = 1; self setmodel(level.var_F26B[param_00].var_B91A); self method_8318(1); self method_8317(1); if(level.var_F26B[param_00].var_10085) { self.var_10085 = 1; } else { self.var_10085 = 0; } self.var_6DEC = 1; self setcandamage(1); switch(param_00) { case "gl_turret_4": case "gl_turret_3": case "gl_turret_2": case "gl_turret_1": case "gl_turret": case "minigun_turret_4": case "minigun_turret_3": case "minigun_turret_2": case "minigun_turret_1": case "minigun_turret": self method_82FB(80); self method_8330(80); self method_82B6(50); self method_82D1(0); self.var_C731 = param_01; break; case "scramble_turret": case "sam_turret": self method_81F5(); self method_82FB(180); self method_8330(180); self method_8353(80); self method_82D1(-89); self.var_A86B = 0; var_04 = spawn("script_model",self gettagorigin("tag_laser")); var_04 linkto(self); self.var_A63A = var_04; self.var_A63A setscriptmoverkillcam("explosive"); break; case "sentry_shock": self method_81F5(); var_05 = anglestoforward(self.angles); var_06 = self gettagorigin("tag_laser") + (0,0,10); var_06 = var_06 - var_05 * 20; var_04 = spawn("script_model",var_06); var_04 linkto(self); self.var_A63A = var_04; break; default: self method_81F5(); self method_82D1(-89); break; } self method_835B(1); func_F257(); func_F258(param_01); if(param_03) { thread func_F261(); } switch(param_00) { case "minigun_turret_4": case "minigun_turret_3": case "minigun_turret_2": case "minigun_turret_1": case "minigun_turret": self.var_B941 = 0; self.var_8CDE = 0; self.var_C7F9 = 0; thread func_F245(); break; case "gl_turret_4": case "gl_turret_3": case "gl_turret_2": case "gl_turret_1": case "gl_turret": self.var_B941 = 0; self.var_8CDE = 0; self.var_4621 = 0; self.var_C7F9 = 0; thread func_12A00(); thread func_129D7(); break; case "scramble_turret": case "sam_turret": case "sentry_shock": self.var_B941 = 0; thread func_F244(param_02); thread func_F23A(); break; case "super_trophy": thread func_F244(0); thread func_F23A(); break; default: thread func_F244(param_02); thread func_F239(); thread func_F23A(); break; } } //Function Number: 15 func_F23E(param_00) { if(isdefined(level.var_F26B[param_00].var_B91C)) { var_01 = spawn("script_model",self.origin); var_01.angles = self.angles; var_01 hide(); var_01 thread scripts\mp\_weapons::func_2C69(self.var_222); var_01 setmodel(level.var_F26B[param_00].var_B91C); var_01 linkto(self); var_01 method_82C7(0); self.var_2C68 = var_01; self waittill("death"); if(isdefined(var_01)) { var_01 delete(); } } } //Function Number: 16 sentry_setteamheadicon() { var_00 = level.var_F26B[self.var_F26E].var_8C7A; if(!isdefined(var_00)) { return; } if(!isdefined(self.var_222)) { return; } var_01 = self.var_222; var_02 = var_01.team; if(level.teambased && !scripts\mp\_utility::func_9FB3(self.var_115D1)) { scripts\mp\_entityheadicons::func_F877(var_02,var_00); self.var_115D1 = 1; return; } if(!scripts\mp\_utility::func_9FB3(self.var_D3AA)) { scripts\mp\_entityheadicons::func_F7F2(var_01,var_00); self.var_D3AA = 1; } } //Function Number: 17 sentry_clearteamheadicon() { var_00 = level.var_F26B[self.var_F26E].var_8C7A; if(!isdefined(var_00)) { return; } if(scripts\mp\_utility::func_9FB3(self.var_115D1)) { scripts\mp\_entityheadicons::func_F877("none",(0,0,0)); self.var_115D1 = undefined; } if(scripts\mp\_utility::func_9FB3(self.var_D3AA)) { scripts\mp\_entityheadicons::func_F7F2(undefined,(0,0,0)); self.var_D3AA = undefined; } } //Function Number: 18 sentry_destroyongameend() { self endon("death"); level scripts\common\utility::waittill_any_3("bro_shot_start","game_ended"); self notify("death"); } //Function Number: 19 func_F241() { self endon("carried"); var_00 = level.var_F26B[self.var_F26E].maxhealth; if(scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_fast_sweep")) { var_00 = int(var_00 / 1.25); } var_01 = 0; if(self.var_222 scripts\mp\_utility::_hasperk("specialty_rugged_eqp")) { var_02 = self.var_13C2E; if(isdefined(var_02)) { switch(var_02) { default: break; } } } var_00 = var_00 + int(var_01); scripts\mp\_damage::func_B9C6(var_00,"sentry",::func_F266,::func_F26A,1); } //Function Number: 20 func_F26A(param_00,param_01,param_02,param_03,param_04) { var_05 = param_03; if(param_02 == "MOD_MELEE") { var_05 = self.maxhealth * 0.34; } var_05 = scripts\mp\killstreaks\_utility::func_7FBD(param_00,param_01,param_02,var_05,self.maxhealth,2,3,4); if(isdefined(param_00) && isplayer(param_00) && lib_0DF8::func_9DDF(param_00)) { var_05 = 0; } return var_05; } //Function Number: 21 func_F266(param_00,param_01,param_02,param_03) { var_04 = level.var_F26B[self.var_F26E]; if(var_04.var_9E63) { if(isdefined(param_01) && param_01 == "concussion_grenade_mp") { if(scripts\mp\_utility::func_9FB3(scripts\mp\_utility::playersareenemies(self.var_222,param_00))) { param_00 scripts\mp\_missions::func_D991("ch_tactical_emp_eqp"); } } var_05 = var_04.destroyedsplash; var_06 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_110E8.var_1318B); if(var_06 != "") { var_05 = var_05 + "_" + var_06; } var_07 = scripts\mp\_damage::func_C548(var_04.var_110EA,param_00,param_01,param_02,param_03,var_04.var_EC44,var_04.var_13523,var_05); if(var_07) { param_00 notify("destroyed_equipment"); return; } return; } var_08 = undefined; var_09 = param_00; if(isdefined(var_09) && isdefined(self.var_222)) { if(isdefined(param_00.var_222) && isplayer(param_00.var_222)) { var_09 = param_00.var_222; } if(self.var_222 scripts\mp\_utility::func_9DD6(var_09)) { var_08 = var_09; } } if(isdefined(var_08)) { var_08 thread scripts\mp\_events::func_11265(self.var_222); var_08 notify("destroyed_equipment"); } self notify("death"); } //Function Number: 22 func_F263() { self endon("carried"); self endon("death"); level endon("game_ended"); for(;;) { self waittill("emp_damage",var_00,var_01,var_02,var_03,var_04); scripts\mp\killstreaks\_utility::dodamagetokillstreak(100,var_00,var_00,self.team,var_02,var_04,var_03); if(!scripts\mp\_utility::func_9FB3(self.var_55BA)) { thread disablesentry(var_01); } } } //Function Number: 23 disablesentry(param_00) { self endon("carried"); self endon("death"); level endon("game_ended"); self.var_55BA = 1; scripts\mp\_weapons::func_11061(); self method_82D1(40); self method_830F(level.var_F26B[self.var_F26E].var_F268); self method_807E(); self setscriptablepartstate("coil","neutral"); self setscriptablepartstate("muzzle","neutral",0); self setscriptablepartstate("stunned","active"); sentry_clearteamheadicon(); scripts\mp\_hostmigration::func_13708(param_00); self method_82D1(-89); self method_830F(level.var_F26B[self.var_F26E].var_F269); thread scripts\mp\_weapons::func_57EB(level.var_F26B[self.var_F26E].var_ACB6); self setscriptablepartstate("coil","idle"); self setscriptablepartstate("stunned","neutral"); sentry_setteamheadicon(); self.var_55BA = undefined; } //Function Number: 24 func_F242() { self endon("carried"); self waittill("death"); if(isdefined(self.var_222)) { self.var_222.var_CC14[self.var_F26E] = scripts\common\utility::func_22A9(self.var_222.var_CC14[self.var_F26E],self); } if(!isdefined(self)) { return; } self method_807E(); self method_81D8(); self setmodel(level.var_F26B[self.var_F26E].var_B91D); if(isdefined(self.var_7627) && self.var_7627.size > 0) { foreach(var_01 in self.var_7627) { if(isdefined(var_01)) { var_01 delete(); } } self.var_7627 = undefined; } func_F257(); self method_82D1(40); self method_8336(undefined); if(isdefined(self.var_9B05)) { self useby(self.var_9B05); } self method_835A(0); if(isdefined(self.var_C840)) { self.var_C840 delete(); } self playsound("mp_equip_destroyed"); switch(self.var_F26E) { case "gl_turret": case "minigun_turret": self.var_72B5 = 1; self method_83C6(); break; default: break; } if(isdefined(self.var_9B05)) { playfxontag(scripts\common\utility::getfx("sentry_explode_mp"),self,"tag_origin"); playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim"); self.var_9B05.var_12A1A scripts\mp\_hud_util::destroyelem(); self.var_9B05 func_E2E0(); self.var_9B05 func_E2E8(); self notify("deleting"); wait(1); stopfxontag(scripts\common\utility::getfx("sentry_explode_mp"),self,"tag_origin"); stopfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim"); } else { self playsound("sentry_explode_smoke"); self setscriptablepartstate("destroyed","sparks"); wait(5); playfx(scripts\common\utility::getfx("sentry_explode_mp"),self.origin + (0,0,10)); self notify("deleting"); } scripts\mp\_weapons::func_66A8(); if(isdefined(self.var_A63A)) { self.var_A63A delete(); } if(isdefined(self.airlookatent)) { self.airlookatent delete(); } scripts\mp\_utility::func_D915("killstreak ended - shock_sentry",self.var_222); self delete(); } //Function Number: 25 func_F244(param_00) { self endon("death"); level endon("game_ended"); for(;;) { self waittill("trigger",var_01); if(!scripts\mp\_utility::func_9F19(var_01)) { continue; } if(self.var_F26E == "sam_turret" || self.var_F26E == "scramble_turret" || self.var_F26E == "sentry_shock" && scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_sam_turret")) { self method_830F(level.var_F26B[self.var_F26E].var_F268); } var_01.var_CC14[self.var_F26E] = scripts\common\utility::func_22A9(var_01.var_CC14[self.var_F26E],self); var_01 func_F688(self,0,param_00); } } //Function Number: 26 func_129FD(param_00) { self endon("disconnect"); level endon("game_ended"); param_00 endon("death"); if(!isdefined(param_00.var_C840)) { return; } var_01 = 0; for(;;) { if(isalive(self) && self istouching(param_00.var_C840) && !isdefined(param_00.var_9B05) && !isdefined(param_00.var_3A9D) && self isonground()) { if(self usebuttonpressed()) { if(isdefined(self.var_13107) && self.var_13107) { continue; } var_01 = 0; while(self usebuttonpressed()) { var_01 = var_01 + 0.05; wait(0.05); } if(var_01 >= 0.5) { continue; } var_01 = 0; while(!self usebuttonpressed() && var_01 < 0.5) { var_01 = var_01 + 0.05; wait(0.05); } if(var_01 >= 0.5) { continue; } if(!scripts\mp\_utility::func_9F19(self)) { continue; } if(isdefined(self.var_13107) && self.var_13107) { continue; } param_00 method_830F(level.var_F26B[param_00.var_F26E].var_F268); thread func_F688(param_00,0); param_00.var_C840 delete(); return; } } wait(0.05); } } //Function Number: 27 func_129FF() { self notify("turret_handluse"); self endon("turret_handleuse"); self endon("deleting"); level endon("game_ended"); self.var_72B5 = 0; var_00 = (1,0.9,0.7); var_01 = (1,0.65,0); var_02 = (1,0.25,0); for(;;) { self waittill("trigger",var_03); if(isdefined(self.var_3A9D)) { continue; } if(isdefined(self.var_9B05)) { continue; } if(!scripts\mp\_utility::func_9F19(var_03)) { continue; } var_03 func_E152(); var_03 func_E18E(); self.var_9B05 = var_03; self method_830F(level.var_F26B[self.var_F26E].var_F268); func_F258(var_03); self method_830F(level.var_F26B[self.var_F26E].var_F269); var_03 thread func_12A31(self); var_03.var_12A1A = var_03 scripts\mp\_hud_util::createbar(var_00,100,6); var_03.var_12A1A scripts\mp\_hud_util::setpoint("CENTER","BOTTOM",0,-70); var_03.var_12A1A.alpha = 0.65; var_03.var_12A1A.bar.alpha = 0.65; var_04 = 0; for(;;) { if(!scripts\mp\_utility::func_9F19(var_03)) { self.var_9B05 = undefined; var_03.var_12A1A scripts\mp\_hud_util::destroyelem(); break; } if(!var_03 isusingturret()) { self notify("player_dismount"); self.var_9B05 = undefined; var_03.var_12A1A scripts\mp\_hud_util::destroyelem(); var_03 func_E2E0(); var_03 func_E2E8(); self sethintstring(level.var_F26B[self.var_F26E].var_17B); self method_830F(level.var_F26B[self.var_F26E].var_F268); func_F258(self.var_C731); self method_830F(level.var_F26B[self.var_F26E].var_F269); break; } if(self.var_8CDE >= level.var_F26B[self.var_F26E].var_C7FB) { var_05 = 1; } else { var_05 = self.var_8CDE / level.var_F26B[self.var_F26E].var_C7FB; } var_03.var_12A1A scripts\mp\_hud_util::updatebar(var_05); if(scripts\common\utility::string_starts_with(self.var_F26E,"minigun_turret")) { var_06 = "minigun_turret"; } if(self.var_72B5 || self.var_C7F9) { self method_83C6(); var_03.var_12A1A.bar.color = var_02; var_04 = 0; } else if(self.var_8CDE > level.var_F26B[self.var_F26E].var_C7FB * 0.75 && scripts\common\utility::string_starts_with(self.var_F26E,"minigun_turret")) { var_03.var_12A1A.bar.color = var_01; if(randomintrange(0,10) < 6) { self method_83C7(); } else { self method_83C6(); } if(!var_04) { var_04 = 1; thread func_D497(); } } else { var_03.var_12A1A.bar.color = var_00; self method_83C7(); var_04 = 0; self notify("not_overheated"); } wait(0.05); } self method_82D1(0); } } //Function Number: 28 func_F243() { self endon("death"); level endon("game_ended"); self notify("sentry_handleOwner"); self endon("sentry_handleOwner"); self.var_222 waittill("killstreak_disowned"); self notify("death"); } //Function Number: 29 func_F258(param_00) { self.var_222 = param_00; self method_8336(self.var_222); self method_835A(1,self.var_F26E); if(level.teambased) { self.team = self.var_222.team; self method_835E(self.team); } thread func_F243(); } //Function Number: 30 func_F24B(param_00) { self notify("death"); } //Function Number: 31 func_F259(param_00) { if(isdefined(self.var_222)) { var_01 = self.var_222.var_CC14[self.var_F26E].size; self.var_222.var_CC14[self.var_F26E][var_01] = self; if(var_01 + 1 > 2) { self.var_222.var_CC14[self.var_F26E][0] notify("death"); } self.var_222 func_1CB4(1); self.var_222 scripts\common\utility::func_1C6E(1); self.var_222 thread func_6270(); self.var_222 method_85BD(1); } var_02 = level.var_F26B[self.var_F26E].var_B91A; var_03 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_110E8.var_1318B); if(var_03 != "") { var_02 = var_02 + "_" + var_03; } self setmodel(var_02); if(self method_813D() == "manual") { self method_830F(level.var_F26B[self.var_F26E].var_F268); } if(self.var_F26E == "sentry_shock") { self setscriptablepartstate("coil","idle"); } thread func_F241(); thread func_F242(); self method_8335(undefined); self setcandamage(1); switch(self.var_F26E) { case "gl_turret_4": case "gl_turret_3": case "gl_turret_2": case "gl_turret_1": case "gl_turret": case "minigun_turret_4": case "minigun_turret_3": case "minigun_turret_2": case "minigun_turret_1": case "minigun_turret": if(param_00) { self.angles = self.var_3A9D.angles; if(isalive(self.var_C731)) { self.var_C731 scripts\mp\_utility::setlowermessage("pickup_hint",level.var_F26B[self.var_F26E].var_C837,3,undefined,undefined,undefined,undefined,undefined,1); } self.var_C840 = spawn("trigger_radius",self.origin + (0,0,1),0,105,64); self.var_C840 enablelinkto(); self.var_C840 linkto(self); self.var_C731 thread func_129FD(self); thread func_129FF(); } break; default: break; } func_F24A(); if(isdefined(self.var_2C68)) { self.var_2C68 show(); level notify("update_bombsquad"); } self.var_3A9D method_80F3(); self.var_3A9D = undefined; self.var_6DEC = undefined; if(isdefined(self.var_222)) { self.var_222.var_9D81 = 0; self.var_222 notify("new_sentry",self); } func_F252(param_00); var_04 = spawnstruct(); if(isdefined(self.var_BD3B)) { var_04.var_AD39 = self.var_BD3B; } var_04.var_6371 = "carried"; var_04.var_4E53 = ::func_F24B; thread scripts\mp\_movers::func_892F(var_04); if(self.var_F26E != "multiturret") { self playsound("sentry_gun_plant"); } thread scripts\mp\_weapons::func_57EB(level.var_F26B[self.var_F26E].var_ACB6); self notify("placed"); } //Function Number: 32 func_F253(param_00) { if(isdefined(self.var_3A9D)) { var_01 = self.var_3A9D; var_01 method_80F3(); var_01.var_9D81 = undefined; var_01.var_3AA0 = undefined; var_01 func_1CB4(1); var_01 scripts\common\utility::func_1C6E(1); var_01 thread func_6270(); var_01 method_85BD(1); if(isdefined(self.var_2C68)) { self.var_2C68 delete(); } } if(isdefined(param_00) && param_00) { scripts\mp\_weapons::func_66A8(); } self delete(); } //Function Number: 33 func_F255(param_00,param_01,param_02) { if(isdefined(self.var_C731)) { } else { } if(self.var_F26E == "sentry_shock") { self setscriptablepartstate("coil","neutral"); self setscriptablepartstate("muzzle","neutral",0); } self setmodel(level.var_F26B[self.var_F26E].var_B920); self method_8335(param_00); self setcandamage(0); func_F249(); param_00 method_85BD(0); self.var_3A9D = param_00; param_00.var_9D81 = 1; self.var_CB40 = param_01; thread sentry_oncarrierdeathoremp(param_00,param_02); param_00 thread func_12F16(self); thread func_F24E(param_00); thread func_F24C(param_00); thread func_F24F(); self method_82D1(-89); func_F257(); if(isdefined(self getlinkedparent())) { self unlink(); } self notify("carried"); if(isdefined(self.var_2C68)) { self.var_2C68 hide(); } } //Function Number: 34 func_12F16(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; for(;;) { var_02 = self canplayerplacesentry(1,40); param_00.origin = var_02["origin"]; param_00.angles = var_02["angles"]; var_03 = scripts\common\utility::array_combine(level.var_12A83,level.var_B726,level.var_11267.var_12801,level.var_B779); var_04 = param_00 getistouchingentities(var_03); param_00.var_3872 = self isonground() && var_02["result"] && abs(param_00.origin[2] - self.origin[2]) < 30 && !scripts\mp\_utility::func_9FAE(self) && var_04.size == 0; if(isdefined(var_02["entity"])) { param_00.var_BD3B = var_02["entity"]; } else { param_00.var_BD3B = undefined; } if(param_00.var_3872 != var_01) { if(param_00.var_3872) { param_00 setmodel(level.var_F26B[param_00.var_F26E].var_B920); param_00 func_CC1B(); } else { param_00 setmodel(level.var_F26B[param_00.var_F26E].var_B919); param_00 func_38E2(); } } var_01 = param_00.var_3872; wait(0.05); } } //Function Number: 35 sentry_oncarrierdeathoremp(param_00,param_01) { self endon("placed"); self endon("death"); param_00 endon("disconnect"); param_00 scripts\common\utility::waittill_any_3("death","apply_player_emp"); if(self.var_3872 && !scripts\mp\_utility::func_9FB3(param_01)) { func_F259(self.var_CB40); return; } func_F253(0); } //Function Number: 36 func_F24E(param_00) { self endon("placed"); self endon("death"); param_00 waittill("disconnect"); self delete(); } //Function Number: 37 func_F24C(param_00) { self endon("placed"); self endon("death"); param_00 scripts\common\utility::waittill_any_3("joined_team","joined_spectators"); self delete(); } //Function Number: 38 func_F24F(param_00) { self endon("placed"); self endon("death"); level waittill("game_ended"); self delete(); } //Function Number: 39 func_F252(param_00) { self method_830F(level.var_F26B[self.var_F26E].var_F269); if(param_00) { self setcursorhint("HINT_NOICON"); self sethintstring(level.var_F26B[self.var_F26E].var_17B); self makeusable(); } sentry_setteamheadicon(); foreach(var_02 in level.players) { switch(self.var_F26E) { case "gl_turret_4": case "gl_turret_3": case "gl_turret_2": case "gl_turret_1": case "gl_turret": case "minigun_turret_4": case "minigun_turret_3": case "minigun_turret_2": case "minigun_turret_1": case "minigun_turret": if(param_00) { self enableplayeruse(var_02); } break; default: scripts\mp\killstreaks\_utility::func_1843(self.var_F26E,"Killstreak_Ground",self.var_222,1,"carried"); if(var_02 == self.var_222 && param_00) { self enableplayeruse(var_02); } else { self disableplayeruse(var_02); } break; } } var_04 = level.var_F26B[self.var_F26E].var_115EB; var_05 = scripts\mp\_killstreak_loot::getrarityforlootitem(self.var_110E8.var_1318B); if(var_05 != "") { var_04 = var_04 + "_" + var_05; } if(self.var_10085) { level thread scripts\mp\_utility::func_115DE(var_04,self.var_222); self.var_10085 = 0; } if(self.var_F26E == "sam_turret") { thread func_EB09(); } if(self.var_F26E == "scramble_turret") { thread func_ECA3(); } if(self.var_F26E == "sentry_shock") { thread func_F26D(); } thread func_F263(); } //Function Number: 40 func_F257() { self method_830F(level.var_F26B[self.var_F26E].var_F268); self makeunusable(); scripts\mp\_weapons::func_11061(); sentry_clearteamheadicon(); } //Function Number: 41 func_F24A() { self method_81F7(); } //Function Number: 42 func_F249() { self method_82C7(0); } //Function Number: 43 func_9E0A(param_00) { if(level.teambased && self.team == param_00.team) { return 1; } return 0; } //Function Number: 44 func_F239() { self endon("death"); level endon("game_ended"); self.var_B941 = 0; self.var_8CDE = 0; self.var_C7F9 = 0; thread func_F245(); for(;;) { scripts\common\utility::waittill_either("turretstatechange","cooled"); if(self method_81A0()) { thread func_F23B(); continue; } func_F25B(); thread func_F23C(); } } //Function Number: 45 func_F261() { self endon("death"); level endon("game_ended"); var_00 = level.var_F26B[self.var_F26E].var_11901; if(isdefined(var_00) && var_00 == 0) { return; } while(var_00) { wait(1); scripts\mp\_hostmigration::func_13834(); if(!isdefined(self.var_3A9D)) { var_00 = max(0,var_00 - 1); } } if(isdefined(self.var_222)) { if(isdefined(level.var_F26B[self.var_F26E].var_13554)) { self.var_222 scripts\mp\_utility::func_D4B6(level.var_F26B[self.var_F26E].var_13554,undefined,undefined,self.var_222.origin); } } self notify("death"); } //Function Number: 46 func_F260() { self endon("death"); self playsound("sentry_gun_beep"); wait(0.1); self playsound("sentry_gun_beep"); wait(0.1); self playsound("sentry_gun_beep"); } //Function Number: 47 func_F25C() { thread func_F260(); while(self.var_B941 < level.var_F26B[self.var_F26E].var_10A13) { self.var_B941 = self.var_B941 + 0.1; wait(0.1); } } //Function Number: 48 func_F25B() { self.var_B941 = 0; } //Function Number: 49 func_F248() { self endon("death"); self endon("stop_shooting"); level endon("game_ended"); func_F25C(); var_00 = function_0240(level.var_F26B[self.var_F26E].var_39B); var_01 = level.var_F26B[self.var_F26E].var_32C1; var_02 = level.var_F26B[self.var_F26E].var_32C0; if(isdefined(self.var_112C5) && self.var_112C5) { var_00 = 0.05; var_03 = 50; } else { var_01 = 0.5 / self.var_AD80.size + 1; var_03 = var_02; } for(var_04 = 0;var_04 < var_03;var_04++) { var_05 = self method_8166(1); if(!isdefined(var_05)) { break; } self method_837E(); wait(var_00); } self notify("doneFiring"); self method_807E(); } //Function Number: 50 func_F23B() { self endon("death"); self endon("stop_shooting"); level endon("game_ended"); func_F25C(); var_00 = function_0240(level.var_F26B[self.var_F26E].var_39B); var_01 = level.var_F26B[self.var_F26E].var_32C1; var_02 = level.var_F26B[self.var_F26E].var_32C0; var_03 = level.var_F26B[self.var_F26E].var_C9D3; var_04 = level.var_F26B[self.var_F26E].var_C9D1; for(;;) { var_05 = randomintrange(var_01,var_02 + 1); for(var_06 = 0;var_06 < var_05 && !self.var_C7F9;var_06++) { self method_837E(); self notify("bullet_fired"); self.var_8CDE = self.var_8CDE + var_00; wait(var_00); } wait(randomfloatrange(var_03,var_04)); } } //Function Number: 51 func_F23C() { self notify("stop_shooting"); } //Function Number: 52 func_12A31(param_00) { self endon("death"); self endon("disconnect"); level endon("game_ended"); param_00 endon("death"); param_00 endon("player_dismount"); var_01 = function_0240(level.var_F26B[param_00.var_F26E].var_39B); for(;;) { param_00 waittill("turret_fire"); param_00.var_8CDE = param_00.var_8CDE + var_01; param_00.var_4621 = var_01; } } //Function Number: 53 func_F245() { self endon("death"); var_00 = function_0240(level.var_F26B[self.var_F26E].var_39B); var_01 = 0; var_02 = 0; var_03 = level.var_F26B[self.var_F26E].var_C7FB; var_04 = level.var_F26B[self.var_F26E].var_461D; for(;;) { if(self.var_8CDE != var_01) { wait(var_00); } else { self.var_8CDE = max(0,self.var_8CDE - 0.05); } if(self.var_8CDE > var_03) { self.var_C7F9 = 1; thread func_D497(); switch(self.var_F26E) { case "minigun_turret_4": case "minigun_turret_3": case "minigun_turret_2": case "minigun_turret_1": case "minigun_turret": playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim"); break; default: break; } while(self.var_8CDE) { self.var_8CDE = max(0,self.var_8CDE - var_04); wait(0.1); } self.var_C7F9 = 0; self notify("not_overheated"); } var_01 = self.var_8CDE; wait(0.05); } } //Function Number: 54 func_12A00() { self endon("death"); var_00 = level.var_F26B[self.var_F26E].var_C7FB; for(;;) { if(self.var_8CDE > var_00) { self.var_C7F9 = 1; thread func_D497(); switch(self.var_F26E) { case "gl_turret": playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim"); break; default: break; } while(self.var_8CDE) { wait(0.1); } self.var_C7F9 = 0; self notify("not_overheated"); } wait(0.05); } } //Function Number: 55 func_129D7() { self endon("death"); for(;;) { if(self.var_8CDE > 0) { if(self.var_4621 <= 0) { self.var_8CDE = max(0,self.var_8CDE - 0.05); } else { self.var_4621 = max(0,self.var_4621 - 0.05); } } wait(0.05); } } //Function Number: 56 func_D497() { self endon("death"); self endon("not_overheated"); level endon("game_ended"); self notify("playing_heat_fx"); self endon("playing_heat_fx"); for(;;) { playfxontag(scripts\common\utility::getfx("sentry_overheat_mp"),self,"tag_flash"); wait(level.var_F26B[self.var_F26E].var_7645); } } //Function Number: 57 func_D51F() { self endon("death"); self endon("not_overheated"); level endon("game_ended"); for(;;) { playfxontag(scripts\common\utility::getfx("sentry_smoke_mp"),self,"tag_aim"); wait(0.4); } } //Function Number: 58 func_F23A() { self endon("death"); level endon("game_ended"); for(;;) { wait(3); if(!isdefined(self.var_3A9D)) { self playsound("sentry_gun_beep"); } } } //Function Number: 59 func_EB09() { self endon("carried"); self endon("death"); level endon("game_ended"); self.var_EB19 = undefined; self.var_EB16 = []; for(;;) { self.var_EB19 = func_EB08(); func_EB0C(); wait(0.05); } } //Function Number: 60 func_EB08() { var_00 = self gettagorigin("tag_laser"); if(!isdefined(self.var_EB19)) { if(level.teambased) { var_01 = []; if(level.multiteambased) { foreach(var_03 in level.teamnamelist) { if(var_03 != self.team) { foreach(var_05 in level.var_12AF3[var_03]) { var_01[var_01.size] = var_05; } } } } else { var_01 = level.var_12AF3[level.var_C74B[self.team]]; } foreach(var_09 in var_01) { if(isdefined(var_09.var_9E78) && var_09.var_9E78) { continue; } if(sighttracepassed(var_00,var_09.origin,0,self)) { return var_09; } } foreach(var_0C in level.var_AD8B) { if(isdefined(var_0C.team) && var_0C.team == self.team) { continue; } if(sighttracepassed(var_00,var_0C.origin,0,self)) { return var_0C; } } foreach(var_0F in level.var_8DD3) { if(isdefined(var_0F.team) && var_0F.team == self.team) { continue; } if(sighttracepassed(var_00,var_0F.origin,0,self)) { return var_0F; } } foreach(var_09 in level.var_DF74) { if(!isdefined(var_09)) { continue; } if(isdefined(var_09.team) && var_09.team == self.team) { continue; } if(sighttracepassed(var_00,var_09.origin,0,self,var_09)) { return var_09; } } } else { foreach(var_09 in level.var_12AF3) { if(isdefined(var_09.var_9E78) && var_09.var_9E78) { continue; } if(isdefined(var_09.var_222) && isdefined(self.var_222) && var_09.var_222 == self.var_222) { continue; } if(sighttracepassed(var_00,var_09.origin,0,self)) { return var_09; } } foreach(var_0C in level.var_AD8B) { if(isdefined(var_0C.var_222) && isdefined(self.var_222) && var_0C.var_222 == self.var_222) { continue; } if(sighttracepassed(var_00,var_0C.origin,0,self)) { return var_0C; } } foreach(var_0F in level.var_8DD3) { if(isdefined(var_0F.var_222) && isdefined(self.var_222) && var_0F.var_222 == self.var_222) { continue; } if(sighttracepassed(var_00,var_0F.origin,0,self)) { return var_0F; } } foreach(var_09 in level.var_DF74) { if(!isdefined(var_09)) { continue; } if(isdefined(var_09.var_222) && isdefined(self.var_222) && var_09.var_222 == self.var_222) { continue; } if(sighttracepassed(var_00,var_09.origin,0,self,var_09)) { return var_09; } } } self method_807E(); return undefined; } if(!sighttracepassed(var_0F,self.var_EB19.origin,0,self)) { self method_807E(); return undefined; } return self.var_EB19; } //Function Number: 61 func_EB0C() { if(isdefined(self.var_EB19)) { if(self.var_EB19 == level.var_1537.var_CC44 && !isdefined(level.var_1541)) { self.var_EB19 = undefined; self method_807E(); return; } self method_8347(self.var_EB19); self waittill("turret_on_target"); if(!isdefined(self.var_EB19)) { return; } if(!self.var_A86B) { thread func_EB0E(); thread func_EB0D(); thread func_EB0F(); thread func_EB10(); } wait(2); if(!isdefined(self.var_EB19)) { return; } if(self.var_EB19 == level.var_1537.var_CC44 && !isdefined(level.var_1541)) { self.var_EB19 = undefined; self method_807E(); return; } var_00 = []; var_00[0] = self gettagorigin("tag_le_missile1"); var_00[1] = self gettagorigin("tag_le_missile2"); var_00[2] = self gettagorigin("tag_ri_missile1"); var_00[3] = self gettagorigin("tag_ri_missile2"); var_01 = self.var_EB16.size; for(var_02 = 0;var_02 < 4;var_02++) { if(!isdefined(self.var_EB19)) { return; } if(isdefined(self.var_3A9D)) { return; } self method_837E(); var_03 = scripts\mp\_utility::func_1309("sam_projectile_mp",var_00[var_02],self.var_EB19.origin,self.var_222); var_03 missile_settargetent(self.var_EB19); var_03 missile_setflightmodedirect(); var_03.var_EB1A = self; var_03.var_EB15 = var_01; self.var_EB16[var_01][var_02] = var_03; level notify("sam_missile_fired",self.var_222,var_03,self.var_EB19); if(var_02 == 3) { break; } wait(0.25); } level notify("sam_fired",self.var_222,self.var_EB16[var_01],self.var_EB19); wait(3); } } //Function Number: 62 func_EB10() { level endon("game_ended"); self endon("death"); while(isdefined(self.var_EB19) && isdefined(self method_8166(1)) && self method_8166(1) == self.var_EB19) { var_00 = self gettagorigin("tag_laser"); if(!sighttracepassed(var_00,self.var_EB19.origin,0,self,self.var_EB19)) { self method_807E(); self.var_EB19 = undefined; break; } wait(0.05); } } //Function Number: 63 func_EB0E() { self endon("death"); self method_81D9(); self.var_A86B = 1; while(isdefined(self.var_EB19) && isdefined(self method_8166(1)) && self method_8166(1) == self.var_EB19) { wait(0.05); } self method_81D8(); self.var_A86B = 0; } //Function Number: 64 func_EB0D() { self endon("death"); self.var_EB19 endon("death"); if(!isdefined(self.var_EB19.var_8DD9)) { return; } self.var_EB19 waittill("crashing"); self method_807E(); self.var_EB19 = undefined; } //Function Number: 65 func_EB0F() { self endon("death"); self.var_EB19 endon("death"); if(!isdefined(self.var_EB19.model)) { return; } if(self.var_EB19.model == "vehicle_uav_static_mp") { self.var_EB19 waittill("leaving"); self method_807E(); self.var_EB19 = undefined; } } //Function Number: 66 func_ECA3() { self endon("carried"); self endon("death"); level endon("game_ended"); self.var_ECA1 = undefined; for(;;) { self.var_ECA1 = func_EC96(); if(isdefined(self.var_ECA1) && isdefined(self.var_ECA1.var_EC9B) && !self.var_ECA1.var_EC9B) { func_ECA0(); } wait(0.05); } } //Function Number: 67 func_EC96() { return func_EB08(); } //Function Number: 68 func_ECA0() { if(isdefined(self.var_ECA1)) { if(self.var_ECA1 == level.var_1537.var_CC44 && !isdefined(level.var_1541)) { self.var_ECA1 = undefined; self method_807E(); return; } self method_8347(self.var_ECA1); self waittill("turret_on_target"); if(!isdefined(self.var_ECA1)) { return; } if(!self.var_A86B) { thread func_EC98(); thread func_EC97(); thread func_EC99(); thread func_EC9A(); } wait(2); if(!isdefined(self.var_ECA1)) { return; } if(self.var_ECA1 == level.var_1537.var_CC44 && !isdefined(level.var_1541)) { self.var_ECA1 = undefined; self method_807E(); return; } if(!isdefined(self.var_ECA1)) { return; } if(isdefined(self.var_3A9D)) { return; } self method_837E(); thread func_F82E(); self notify("death"); } } //Function Number: 69 func_F82E() { var_00 = self.var_ECA1; var_00 notify("scramble_fired",self.var_222); var_00 endon("scramble_fired"); var_00 endon("death"); var_00 thread scripts\mp\killstreaks\_helicopter::func_8D99(); var_00.var_EC9B = 1; var_00.var_F0C5 = self.var_222; var_00 notify("findNewTarget"); wait(30); if(isdefined(var_00)) { var_00.var_EC9B = 0; var_00.var_F0C5 = undefined; var_00 thread scripts\mp\killstreaks\_helicopter::func_8D99(); } } //Function Number: 70 func_EC9A() { level endon("game_ended"); self endon("death"); while(isdefined(self.var_ECA1) && isdefined(self method_8166(1)) && self method_8166(1) == self.var_ECA1) { var_00 = self gettagorigin("tag_laser"); if(!sighttracepassed(var_00,self.var_ECA1.origin,0,self,self.var_ECA1)) { self method_807E(); self.var_ECA1 = undefined; break; } wait(0.05); } } //Function Number: 71 func_EC98() { self endon("death"); self method_81D9(); self.var_A86B = 1; while(isdefined(self.var_ECA1) && isdefined(self method_8166(1)) && self method_8166(1) == self.var_ECA1) { wait(0.05); } self method_81D8(); self.var_A86B = 0; } //Function Number: 72 func_EC97() { self endon("death"); self.var_ECA1 endon("death"); if(!isdefined(self.var_ECA1.var_8DD9)) { return; } self.var_ECA1 waittill("crashing"); self method_807E(); self.var_ECA1 = undefined; } //Function Number: 73 func_EC99() { self endon("death"); self.var_ECA1 endon("death"); if(!isdefined(self.var_ECA1.model)) { return; } if(self.var_ECA1.model == "vehicle_uav_static_mp") { self.var_ECA1 waittill("leaving"); self method_807E(); self.var_ECA1 = undefined; } } //Function Number: 74 func_F26D() { self endon("death"); self endon("carried"); level endon("game_ended"); thread func_13B37(); self.airlookatent = scripts\common\utility::spawn_tag_origin(self.origin,self.angles); self.airlookatent linkto(self,"tag_flash"); for(;;) { var_00 = scripts\common\utility::waittill_any_timeout_1(1,"turret_on_target"); if(var_00 == "timeout") { if(scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_sam_turret")) { self.sentryshocksamtarget = thread searchforshocksentryairtarget(); if(isdefined(self.sentryshocksamtarget)) { thread shootshocksentrysamtarget(self.sentryshocksamtarget,self.airlookatent); self waittill("done_firing"); } } continue; } self.var_F26C = self method_8166(1); if(isdefined(self.var_F26C) && scripts\mp\_utility::func_9F19(self.var_F26C)) { thread func_FE4F(self.var_F26C); self waittill("done_firing"); } } } //Function Number: 75 searchforshocksentryairtarget() { if(isdefined(level.var_12AF3)) { if(level.teambased) { foreach(var_01 in level.var_12AF3[scripts\mp\_utility::getotherteam(self.var_222.team)]) { if(targetvisibleinfront(var_01)) { return var_01; } } } else { foreach(var_01 in level.var_12AF3) { if(var_01.var_222 == self.var_222) { continue; } if(targetvisibleinfront(var_01)) { return var_01; } } } } if(isdefined(level.var_27EF)) { foreach(var_06 in level.var_27EF) { if(var_06.var_110EA != "ball_drone_backup") { continue; } if(level.teambased && var_06.team == self.var_222.team) { continue; } if(!level.teambased && var_06.var_222 == self.var_222) { continue; } if(targetvisibleinfront(var_06)) { return var_06; } } } if(isdefined(level.var_8DD3)) { foreach(var_09 in level.var_8DD3) { if(var_09.var_110EA != "jackal") { continue; } if(level.teambased && var_09.team == self.var_222.team) { continue; } if(!level.teambased && var_09.var_222 == self.var_222) { continue; } if(targetvisibleinfront(var_09)) { return var_09; } } } if(isdefined(level.var_DA61)) { foreach(var_0C in level.var_DA61) { if(var_0C.var_110EA != "thor") { continue; } if(isdefined(var_0C.team)) { if(level.teambased && var_0C.team == self.var_222.team) { continue; } } if(!level.teambased && var_0C.var_222 == self.var_222) { continue; } if(targetvisibleinfront(var_0C)) { return var_0C; } } } if(isdefined(level.var_105EA)) { foreach(var_0C in level.var_105EA) { if(var_0C.var_110EA != "minijackal") { continue; } if(isdefined(var_0C.team)) { if(level.teambased && var_0C.team == self.var_222.team) { continue; } } if(!level.teambased && var_0C.var_222 == self.var_222) { continue; } if(targetvisibleinfront(var_0C)) { return var_0C; } } } } //Function Number: 76 targetvisibleinfront(param_00) { if(!isdefined(param_00)) { return 0; } var_01 = 0; var_02 = self gettagorigin("tag_flash"); var_03 = param_00.origin; var_04 = vectornormalize(var_03 - var_02); var_05 = anglestoforward(self.angles); var_06 = [self,self.var_222,param_00]; var_07 = physics_createcontents(["physicscontents_solid","physicscontents_glass","physicscontents_water","physicscontents_vehicle","physicscontents_item"]); if(scripts\common\trace::func_DCF1(var_02,var_03,var_06,var_07) && vectordot(var_05,var_04) > 0.25 && distance2dsquared(var_02,var_03) > 10000) { var_01 = 1; } return var_01; } //Function Number: 77 shootshocksentrysamtarget(param_00,param_01) { self endon("death"); self endon("carried"); level endon("game_ended"); self method_830F("manual"); thread setshocksamtargetent(param_00,param_01); self.sentryshocksamtarget = undefined; self waittill("turret_on_target"); thread func_B383(param_00); self playsound("shock_sentry_charge_up"); playfxontag(scripts\common\utility::getfx("sentry_shock_charge"),self,"tag_laser"); func_F25C(); stopfxontag(scripts\common\utility::getfx("sentry_shock_charge"),self,"tag_laser"); self notify("start_firing"); self setscriptablepartstate("coil","active"); var_02 = 2; var_03 = 1; while(isdefined(param_00) && targetvisibleinfront(param_00)) { var_04 = self gettagorigin("tag_flash"); var_05 = scripts\mp\_utility::func_1309("sentry_shock_missile_mp",var_04,param_00.origin,self.var_222); var_05 missile_settargetent(param_00); var_05 missile_setflightmodedirect(); var_05.var_A63A = self.var_A63A; var_05.var_110E8 = self.var_110E8; self setscriptablepartstate("muzzle","fire" + var_03,0); level notify("laserGuidedMissiles_incoming",self.var_222,var_05,param_00); var_03++; if(var_03 > 2) { var_03 = 1; } wait(var_02); } self setscriptablepartstate("muzzle","neutral",0); self notify("sentry_lost_target"); param_01 unlink(); param_01.origin = self gettagorigin("tag_flash"); param_01 linkto(self,"tag_flash"); self method_830F("sentry"); self method_807E(); self setscriptablepartstate("coil","idle"); func_F25B(); self notify("done_firing"); } //Function Number: 78 setshocksamtargetent(param_00,param_01) { self endon("death"); self endon("carried"); self endon("sentry_lost_target"); param_00 endon("death"); level endon("game_ended"); for(;;) { var_02 = self gettagorigin("tag_aim"); var_03 = param_00.origin; var_04 = vectornormalize(var_03 - var_02); var_05 = var_02 + var_04 * 500; param_01 unlink(); param_01.origin = var_05; param_01 linkto(self); self method_8347(param_01); scripts\common\utility::func_136F7(); } } //Function Number: 79 func_13B37() { self endon("death"); for(;;) { self waittill("carried"); if(isdefined(self.var_F26C)) { self.var_F26C = undefined; } if(isdefined(self.sentryshocksamtarget)) { self.sentryshocksamtarget = undefined; } self method_807E(); } } //Function Number: 80 func_FE4F(param_00) { self endon("death"); self endon("carried"); if(!isdefined(param_00)) { return; } thread func_B383(param_00); if(!scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_sam_turret")) { thread func_13B3C(param_00); } self playsound("shock_sentry_charge_up"); playfxontag(scripts\common\utility::getfx("sentry_shock_charge"),self,"tag_laser"); func_F25C(); stopfxontag(scripts\common\utility::getfx("sentry_shock_charge"),self,"tag_laser"); self notify("start_firing"); self setscriptablepartstate("coil","active"); level thread scripts\mp\_battlechatter_mp::func_EB87(param_00,"plr_killstreak_target"); var_01 = function_0240(level.var_F26B[self.var_F26E].var_39B); while(isdefined(param_00) && scripts\mp\_utility::func_9F19(param_00) && isdefined(self method_8166(1)) && self method_8166(1) == param_00 && !scripts\mp\_utility::func_C7A0(self gettagorigin("tag_flash"),param_00 geteye())) { if(scripts\mp\killstreaks\_utility::func_A69F(self.var_110E8,"passive_mini_explosives")) { thread missileburstfire(param_00); var_01 = 1.5; continue; } self method_837E(); wait(var_01); } self setscriptablepartstate("coil","idle"); self setscriptablepartstate("muzzle","neutral",0); self.var_F26C = undefined; self method_807E(); func_F25B(); self notify("done_firing"); } //Function Number: 81 missileburstfire(param_00) { self endon("death"); self endon("carried"); var_01 = 3; var_02 = 1; while(var_01 > 0) { if(!isdefined(param_00)) { return; } if(!isdefined(self.var_222)) { return; } var_03 = scripts\mp\_utility::func_1309("sentry_shock_grenade_mp",self gettagorigin("tag_flash"),param_00.origin,self.var_222); if(scripts\mp\killstreaks\_utility::manualmissilecantracktarget(param_00)) { var_03 missile_settargetent(param_00,gettargetoffset(param_00)); param_00 thread watchtarget(var_03); } var_03.var_A63A = self.var_A63A; var_03.var_110E8 = self.var_110E8; self setscriptablepartstate("muzzle","fire" + var_02,0); var_02++; if(var_02 > 2) { var_02 = 1; } var_01--; wait(0.2); } } //Function Number: 82 gettargetoffset(param_00) { var_01 = (0,0,40); var_02 = param_00 getstance(); switch(var_02) { case "stand": var_01 = (0,0,40); break; case "crouch": var_01 = (0,0,20); break; case "prone": var_01 = (0,0,5); break; } return var_01; } //Function Number: 83 watchtarget(param_00) { self endon("disconnect"); for(;;) { if(!scripts\mp\killstreaks\_utility::manualmissilecantracktarget(self)) { break; } if(!isdefined(param_00)) { break; } scripts\common\utility::func_136F7(); } if(isdefined(param_00)) { param_00 missile_cleartarget(); } } //Function Number: 84 func_B383(param_00) { self endon("death"); self method_81D9(); self.var_A86B = 1; scripts\common\utility::waittill_any_3("done_firing","carried"); self method_81D8(); self.var_A86B = 0; } //Function Number: 85 func_13B3C(param_00) { self endon("death"); self endon("done_firing"); var_01 = undefined; for(;;) { self waittill("victim_damaged",var_02,var_03,var_04,var_05,var_06,var_07,var_08,var_09,var_0A,var_0B); if(var_02 == param_00) { var_0C = 100; var_0D = scripts\mp\_utility::func_807D(var_08,var_0C,var_02.team,self.var_222); playfx(scripts\common\utility::getfx("sentry_shock_explosion"),var_08); if(var_0D.size > 0) { foreach(var_0F in var_0D) { if(var_0F.player != var_02) { var_0F.player dodamage(5,var_08,self.var_222,self,var_06,var_07); var_10 = undefined; var_11 = undefined; if(var_0F.visiblelocations.size > 1) { var_11 = randomint(var_0F.visiblelocations.size); var_10 = var_0F.visiblelocations[var_11]; } else { var_10 = var_0F.visiblelocations[0]; } function_02E0(scripts\common\utility::getfx("sentry_shock_arc"),var_08,vectortoangles(var_10 - var_08),var_10); } } } } } } //Function Number: 86 func_1CB4(param_00) { if(param_00) { scripts\common\utility::allow_weapon(1); thread scripts\mp\_supers::func_12D6C(); return; } thread scripts\mp\_supers::func_1CAB(); scripts\common\utility::allow_weapon(0); } //Function Number: 87 func_CC1B() { var_00 = self.var_F26E; if(var_00 == "super_trophy") { self.var_222 method_80F4(&"LUA_MENU_MP_PLACE_SUPER_TROPHY"); return; } self.var_222 method_80F4(&"SENTRY_PLACE"); } //Function Number: 88 func_38E2() { var_00 = self.var_F26E; if(var_00 == "super_trophy") { self.var_222 method_80F4(&"LUA_MENU_MP_CANNOT_PLACE_SUPER_TROPHY"); return; } self.var_222 method_80F4(&"SENTRY_CANNOT_PLACE"); }