/******************************************************************* * Decompiled By: Bog * Decompiled File: 1278.gsc * Game: Call of Duty: WWII * Platform: PC * Function Count: 51 * Decompile Time: 39 ms * Timestamp: 10/27/2023 3:24:16 AM *******************************************************************/ //Function Number: 1 func_5322() { var_00 = lib_0502::func_2548("neutralizeObjective",::func_6671); var_01 = var_00 lib_0502::func_2548("vehicle",::func_667E); } //Function Number: 2 func_6E8A(param_00) { var_01 = []; if(isdefined(param_00.var_8260)) { var_02 = strtok(param_00.var_8260," "); foreach(var_04 in var_02) { var_01[var_04] = 1; } } return var_01; } //Function Number: 3 func_6671(param_00) { level.var_611["tank_exhaust"] = loadfx("vfx/smoke/sherman_tank_exhaust"); level.var_611["tank_muzzle"] = loadfx("vfx/muzzleflash/us_tank_sherman_muzzle"); lib_04FF::func_6934(param_00); thread func_6673(); var_01 = func_6E8A(param_00); if(common_scripts\utility::func_562E(var_01["capture"])) { thread func_667D(); return; } thread func_667C(); } //Function Number: 4 func_667E(param_00) { var_01 = function_01E0(param_00.var_106,param_00.var_1A5,param_00.var_1C8,param_00.var_116,param_00.var_1D); var_01.var_1C8 = param_00.var_1C8; var_01.var_1A2 = param_00.var_1A2; var_02 = param_00.var_82B2; if(common_scripts\utility::func_562E(level.var_79C1)) { var_01.var_1A7 = maps\mp\_utility::func_45DE(var_02); } else { var_01.var_1A7 = var_02; } var_01 method_8253(var_01.var_1A7); var_01.var_A045 = ::lib_0504::func_A3FE; var_01 method_867B(1); var_01.var_4881 = 1; var_01 makeunusable(); var_01 method_828E(); var_01.var_BC = lib_04FF::func_45D0("health"); var_01.var_FB = var_01.var_BC; var_01.var_6A = 0; var_01 setcandamage(0); var_01.var_29B5 = ::func_97B7; var_01.var_118F = []; var_01 common_scripts\utility::func_3799("cannon_loaded"); var_01 common_scripts\utility::func_379A("cannon_loaded"); var_01 common_scripts\utility::func_3799("weapons_free"); var_01 common_scripts\utility::func_379A("weapons_free"); var_01.var_675B = getentarray("tank_notarget","script_noteworthy"); var_03 = anglestoforward(var_01 gettagangles("tag_flash")); var_04 = var_01 gettagorigin("tag_flash") + var_03 * 300; var_05 = spawn("script_origin",var_04); var_05 linkto(var_01); var_01.var_6680 = var_05; var_06 = spawn("script_origin",var_04); var_01.var_11B6 = var_06; var_01.var_8383 = 1; var_01.var_112 = self; self.var_A2C8 = var_01; var_07 = common_scripts\utility::func_44F5("tank_exhaust"); playfxontag(var_07,var_01,"tag_exhaust_left"); playfxontag(var_07,var_01,"tag_exhaust_right"); lib_0504::func_79F3(var_01,function_01DD(),::func_6677); lib_04FF::func_6983(self.var_695A); var_01 thread func_97B5(self); var_01 thread func_97BB(self); var_01 thread func_97BF(self); } //Function Number: 5 func_6677(param_00,param_01,param_02) { level endon(lib_04FF::func_6937(self.var_695A)); for(;;) { param_01 waittill("trigger",var_03); if(param_00 != var_03) { continue; } switch(param_02) { case "arena_enter": func_6675(param_00,param_01); break; case "arena_exit": func_6676(param_00,param_01); break; default: break; } } } //Function Number: 6 func_6673() { var_00 = getentarray("gun","script_noteworthy"); foreach(var_02 in var_00) { var_02 setdefaultdroppitchyaw(0,0); var_02 method_8131(); var_03 = var_02 common_scripts\utility::func_41ED(); foreach(var_05 in var_03) { if(!isdefined(var_05.var_165)) { continue; } switch(var_05.var_165) { case "tank_notarget": var_02.var_675A = var_05; var_02.var_675A.var_8BE = 1; break; case "gun_capture": var_02.var_1FC2 = var_05; break; } } } } //Function Number: 7 func_8A0D(param_00) { } //Function Number: 8 func_9F7C(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B) { if(!isdefined(param_05) || param_05 != "ger_tank_panzer_4_turret") { return; } if(!common_scripts\utility::func_562E(self.var_29BF)) { return; } func_2DDE(self); var_0C = 128; radiusdamage(param_06,var_0C,500,100,param_01,param_04,param_05,0); } //Function Number: 9 func_2DDE(param_00) { param_00 notify("destroyed"); var_01 = param_00 method_80E2(); if(isdefined(var_01)) { var_01 func_73D2(); var_01 method_85E9(); } param_00 makeunusable(); param_00 setdefaultdroppitchyaw(0,0); param_00 setcandamage(0); param_00 setdamagecallbackon(0); param_00.var_29B5 = undefined; param_00.var_566B = 0; param_00 setmodel("ger_btry_pak38_dstrypv_raid"); if(isdefined(param_00.var_675A)) { param_00.var_675A.var_8BE = 0; } lib_04F3::func_79CF("mp_war_bomb_explo",param_00,"tag_origin"); playfxontag(common_scripts\utility::func_44F5("turret_destruction"),param_00,"tag_origin"); } //Function Number: 10 func_97B5(param_00) { self endon("neutralized"); self endon("death"); for(;;) { wait 0.05; if(!common_scripts\utility::func_562E(self.var_8383)) { continue; } if(isdefined(self.var_88)) { if(func_97DB(self.var_88)) { func_97B4(); continue; } continue; } var_01 = func_97B8(); if(isdefined(var_01)) { func_97D9(var_01); } } } //Function Number: 11 func_97DB(param_00) { if(func_5675(param_00)) { return 0; } var_01 = gettime(); var_02 = var_01 - param_00.var_6E31; if(var_02 >= 10000) { self.var_50A2 = param_00; return 1; } if(!func_97F5(param_00)) { if(!isdefined(param_00.var_6E32)) { param_00.var_6E32 = var_01; } else { var_03 = var_01 - param_00.var_6E32; if(var_03 >= 1000) { return 1; } } } else { param_00.var_6E32 = undefined; } return 0; } //Function Number: 12 func_5675(param_00) { if(!lib_0504::func_5812(param_00)) { return 0; } return isdefined(param_00.maxhealth) && param_00.maxhealth == "turret_ger_btry_pak38_raid_mp"; } //Function Number: 13 func_7487(param_00) { if(!param_00 isusingturret()) { return 0; } var_01 = param_00 method_85E3(); if(!isdefined(var_01)) { return 0; } return func_5675(var_01); } //Function Number: 14 func_9787() { var_00 = []; var_01 = maps\mp\_utility::func_45DE(self.var_1A7); var_02 = lib_0502::func_4627(var_01); foreach(var_04 in var_02) { if(isdefined(self.var_50A2) && var_04 == self.var_50A2) { continue; } if(!func_97BE(var_04)) { continue; } if(!func_97F5(var_04)) { continue; } if(func_7487(var_04)) { continue; } var_00[var_00.size] = var_04; } return var_00; } //Function Number: 15 func_97B8() { var_00 = func_9787(); var_01 = undefined; var_02 = undefined; var_03 = self gettagorigin("tag_barrel"); var_04 = anglestoforward(self gettagangles("tag_barrel")); foreach(var_06 in var_00) { var_07 = var_06.var_116 + func_46C0(var_06); var_08 = var_07 - var_03; var_09 = vectornormalize(var_08); var_0A = vectordot(var_03,var_09); if(!isdefined(var_02) || var_0A > var_01) { var_01 = var_0A; var_02 = var_06; } } self.var_50A2 = undefined; return var_02; } //Function Number: 16 func_97BB(param_00) { self endon("neutralized"); self endon("death"); for(;;) { if(isdefined(self.var_88)) { func_97DA(self.var_88); wait(1); } wait 0.05; } } //Function Number: 17 func_97E3(param_00) { self endon("neutralized"); self endon("death"); self endon("weapon_fired"); for(;;) { if(func_97BE(self.var_88)) { func_9783(self.var_88); } else { thread func_97B4(); return; } wait(0.1); } } //Function Number: 18 func_9783(param_00) { var_01 = func_46C0(param_00); if(function_0296(param_00)) { self.var_11B6.var_116 = param_00; param_00 = self.var_11B6; } else { self.var_11B6.var_116 = param_00.var_116 + var_01; if(!self.var_11B6 islinked()) { self.var_11B6 linkto(param_00); } } var_02 = self gettagorigin("tag_barrel"); var_03 = param_00.var_116 + var_01; var_04 = distance(var_02,var_03); if(var_04 < 500) { var_05 = var_03 - var_02; var_06 = vectornormalize(var_05); var_07 = var_02 + var_06 * getdvarfloat("scr_raid_panzerSafeTargetDistance",1000); self method_825B(var_07); self.var_8030 = var_07; return; } self.var_8030 = undefined; self method_825C(param_00,var_01); } //Function Number: 19 func_97DA(param_00) { self endon("abortTarget"); thread func_97E3(param_00); common_scripts\utility::func_379C("cannon_loaded"); self waittill("turret_on_target"); common_scripts\utility::func_379C("weapons_free"); wait(0.1); playfxontag(common_scripts\utility::func_44F5("tank_muzzle"),self,"tag_flash"); self method_8263(); } //Function Number: 20 func_97C4(param_00) { param_00.var_4D3B = 1; func_97D9(param_00); if(lib_0504::func_5812(param_00)) { param_00 thread func_9F80(20); } var_01 = 0; while(var_01 < 5) { if(!func_97F5(param_00) || !func_97F4(param_00)) { var_01 = 0; continue; } var_01++; wait 0.05; } self method_8280(0,self.var_112 lib_04FF::func_45D0("haltAccel")); self.var_112 thread func_667B(self,param_00); } //Function Number: 21 func_9F80(param_00) { self endon("destroyed"); wait(param_00); level thread func_2DDE(self); } //Function Number: 22 func_97B4() { self notify("abortTarget"); self method_825C(self.var_6680); self.var_88 = undefined; self.var_11B6 unlink(); } //Function Number: 23 func_97D9(param_00) { func_97B4(); if(!func_97BE(param_00)) { return; } param_00.var_6E31 = gettime(); param_00.var_6E32 = undefined; self.var_88 = param_00; } //Function Number: 24 func_97BE(param_00) { if(!isdefined(param_00)) { return 0; } if(!function_0296(param_00) && common_scripts\utility::func_562E(param_00.var_4D3B) && func_97E2(param_00)) { return 1; } var_01 = func_46C1(param_00); if(!self method_825E(var_01,0)) { return 0; } if(function_0296(param_00)) { return 1; } if(isplayer(param_00)) { if(param_00 method_8541()) { return 0; } foreach(var_03 in self.var_675B) { if(common_scripts\utility::func_562E(var_03.var_8BE) && param_00 istouching(var_03)) { return 0; } } } if(!func_97E2(param_00)) { return 0; } return lib_04FF::func_583D(param_00,self); } //Function Number: 25 func_46C1(param_00) { if(function_0296(param_00)) { var_01 = param_00; } else { var_01 = var_01.var_116; } var_01 = var_01 + func_46C0(param_00); return var_01; } //Function Number: 26 func_46C0(param_00) { if(function_0296(param_00)) { return (0,0,0); } else if(lib_0504::func_5812(param_00)) { var_01 = param_00 gettagorigin("tag_aim"); var_02 = var_01 - param_00.var_116; return var_02; } else if(isplayer(var_02)) { var_03 = var_02 getviewheight(); var_04 = (0,0,var_03 / 2); return var_04; } return (0,0,0); } //Function Number: 27 func_97F5(param_00) { var_01 = func_46C1(param_00); var_02 = self method_825E(var_01,1); return var_02; } //Function Number: 28 func_97F4(param_00) { var_01 = self gettagorigin("tag_turret"); var_02 = func_46C1(param_00); var_03 = sighttracepassed(var_01,var_02,0,self,undefined,0); return var_03; } //Function Number: 29 func_97E2(param_00) { if(function_0296(param_00) || param_00 == self.var_11B6) { return 1; } if(isdefined(param_00.var_566B)) { return param_00.var_566B; } return isalive(param_00); } //Function Number: 30 func_97BF(param_00) { self endon("neutralized"); self endon("death"); for(;;) { self waittill("weapon_fired"); common_scripts\utility::func_3796("cannon_loaded"); var_01 = param_00 lib_04FF::func_45D0("reloadTime"); wait(var_01); common_scripts\utility::func_379A("cannon_loaded"); } } //Function Number: 31 func_6670(param_00) { if(isplayer(param_00)) { return param_00; } var_01 = undefined; if(lib_0504::func_5812(param_00)) { var_01 = param_00 method_80E2(); } else if(isdefined(param_00.var_117)) { var_01 = param_00.var_117; } if(isdefined(var_01) && isplayer(var_01)) { return var_01; } return undefined; } //Function Number: 32 func_6674(param_00,param_01,param_02,param_03) { if(param_02 == "MOD_IMPACT" && maps\mp\gametypes\_weapons::func_5707(param_01)) { return 0; } if(param_02 == "MOD_MELEE") { return 0; } var_04 = param_01; if(function_030D(param_01)) { var_04 = maps\mp\_utility::func_452B(param_01); } if(maps\mp\_utility::func_5856(var_04)) { var_04 = maps\mp\gametypes\_class::func_4432(var_04); } switch(var_04) { case "turret_ger_btry_pak38_raid_mp": var_05 = self.var_112 lib_04FF::func_45D0("gunDamage"); break; case "panzerschreck_mp": case "bazooka_mp": default: var_05 = 0; break; } return var_05; } //Function Number: 33 func_97B7(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B) { var_0C = self; if(common_scripts\utility::func_562E(var_0C.var_480F)) { return; } if(!isdefined(param_01) || param_01.var_3A == "worldspawn") { return; } var_0D = func_6670(param_01); if(!isdefined(var_0D) && !lib_0504::func_5812(param_01)) { return; } if(maps\mp\_utility::func_118D(var_0C,var_0D)) { return; } if(common_scripts\utility::func_562E(param_01.var_29BF)) { return; } var_0E = func_6674(param_01,param_05,param_04,param_02); var_0F = var_0C.var_FB - var_0C.var_6A; var_10 = int(min(var_0E,var_0F)); if(var_10 < 1) { return; } var_0C.var_6A = var_0C.var_6A + var_10; if(isdefined(var_0D)) { func_667A(var_0C,var_0D,var_10); var_0D maps\mp\gametypes\_damagefeedback::func_A102("standard"); } func_667F(var_0C); if(var_0C.var_6A >= var_0C.var_FB) { level thread func_666F(var_0C); return; } if(lib_0504::func_5812(param_01)) { param_01.var_29BF = 1; var_0C thread func_97C4(param_01); } } //Function Number: 34 func_666F(param_00) { param_00 endon("death"); param_00 setcandamage(0); param_00 method_825D(); param_00 lib_04FF::func_7CCA(); param_00 notify("neutralized"); param_00 method_8280(0,3); var_01 = common_scripts\utility::func_44F5("tank_exhaust"); stopfxontag(var_01,param_00,"tag_exhaust_left"); stopfxontag(var_01,param_00,"tag_exhaust_right"); } //Function Number: 35 func_667A(param_00,param_01,param_02) { if(!isdefined(param_00.var_118F[param_01.var_48CA])) { var_03 = spawnstruct(); var_03.var_721C = param_01; var_03.var_9309 = gettime(); var_03.var_9AB1 = 0; param_00.var_118F[param_01.var_48CA] = var_03; } var_03 = param_00.var_118F[param_01.var_48CA]; var_03.var_9AB1 = var_03.var_9AB1 + param_02; } //Function Number: 36 func_667F(param_00) { var_01 = param_00.var_6A / param_00.var_BC; var_02 = clamp(var_01,0,1); var_03 = int(var_02 * 30000); param_00 lib_04FF::func_8615(var_03); } //Function Number: 37 func_6679() { lib_04FF::func_6935(self.var_695A); func_6678(); } //Function Number: 38 func_6678() { var_00 = undefined; foreach(var_02 in self.var_A2C8.var_118F) { level thread maps\mp\gametypes\_rank::func_1457("raids_neutralize",var_02.var_721C); if(!isdefined(var_00)) { var_00 = var_02; continue; } if(var_02.var_9AB1 > var_00.var_9AB1) { var_00 = var_02; continue; } if(var_02.var_9AB1 == var_00.var_9AB1 && var_02.var_9309 < var_00.var_9309) { var_00 = var_02; } } if(isdefined(var_00)) { level thread maps\mp\_utility::func_9863("raids_callout_capture",var_00.var_721C); } } //Function Number: 39 func_4376(param_00) { if(!isdefined(self.var_1A2)) { return []; } var_01 = getentarray(self.var_1A2,"targetname"); if(!isdefined(param_00)) { return var_01; } var_02 = []; foreach(var_04 in var_01) { if(isdefined(var_04.var_165) && issubstr(var_04.var_165,param_00)) { var_02[var_02.size] = var_04; } } return var_02; } //Function Number: 40 func_667C() { var_00 = [1,2,3,4,5,10,20]; lib_04FF::func_6963("speed",3,var_00); lib_04FF::func_6963("accel",3,var_00); lib_04FF::func_6963("haltAccel",20,var_00); lib_04FF::func_6963("decel",3,var_00); lib_04FF::func_6963("reloadTime",7); lib_04FF::func_6963("gunDamage",1000); lib_04FF::func_6965("health",3000); var_01 = func_4376("gun"); func_6672(var_01[0]); lib_04FF::func_6983(self.var_695A); thread func_666E(); var_02 = self.var_A2C8; var_03 = getvehiclenode(var_02.var_1A2,"targetname"); var_02 startpath(var_03); var_02 setcandamage(1); var_02 lib_04FF::func_990(self.var_A2C8,"tag_body",(0,0,120),30000,22,0,1,0,1,0,[]); var_02 waittill("neutralized"); foreach(var_05 in self.var_48F4) { var_05.var_2563 maps\mp\gametypes\_gameobjects::func_2D58(); } func_6679(); } //Function Number: 41 func_6672(param_00) { var_01 = []; for(var_02 = param_00;isdefined(var_02);var_02 = var_02 common_scripts\utility::func_4375()) { var_01[var_01.size] = var_02; if(!isdefined(var_02.var_1A2)) { break; } } foreach(var_02 in var_01) { func_8A03(var_02); } self.var_48F4 = var_01; } //Function Number: 42 func_8A03(param_00) { param_00.var_29BF = 0; param_00 setcandamage(1); param_00 setdamagecallbackon(1); param_00.var_29B5 = ::func_9F7C; param_00.var_566B = 1; param_00 thread func_9F8D(); var_01 = lib_04FF::func_27DE(param_00 getentitynumber(),game["defenders"],param_00.var_116,(0,0,60)); var_01 maps\mp\gametypes\_gameobjects::func_8A60("none"); var_01 maps\mp\gametypes\_gameobjects::func_860A("friendly","waypoint_defend"); var_01 maps\mp\gametypes\_gameobjects::func_860E("friendly","waypoint_defend"); var_01 maps\mp\gametypes\_gameobjects::func_860A("enemy","waypoint_capture"); var_01 maps\mp\gametypes\_gameobjects::func_860E("enemy","waypoint_capture"); param_00.var_2563 = var_01; } //Function Number: 43 func_666E() { level endon(lib_04FF::func_6937(self.var_695A)); for(var_00 = 0;var_00 < self.var_48F4.size;var_00++) { var_01 = self.var_48F4[var_00]; var_01.var_2563 maps\mp\gametypes\_gameobjects::func_8A60("any"); var_01 waittill("destroyed"); var_01.var_2563 maps\mp\gametypes\_gameobjects::func_8A60("none"); } } //Function Number: 44 func_6675(param_00,param_01) { var_02 = param_01 common_scripts\utility::func_41F1(); param_00 startpath(var_02); } //Function Number: 45 func_6676(param_00,param_01) { var_02 = param_01 common_scripts\utility::func_41EC(); if(!common_scripts\utility::func_562E(var_02.var_566B)) { var_03 = param_01 common_scripts\utility::func_41F1(); param_00 startpath(var_03); } } //Function Number: 46 func_667B(param_00,param_01) { level endon("tank_retaliate"); for(;;) { if(!isdefined(param_01)) { break; } if(!param_00 func_97E2(param_01)) { break; } wait 0.05; } param_00 method_8293(lib_04FF::func_45D0("accel")); } //Function Number: 47 func_9F8D() { self endon("destroyed"); var_00 = undefined; for(;;) { self waittill("turretownerchange",var_01); if(!isdefined(var_01) && isdefined(var_00)) { var_00 func_73D2(); var_00 = undefined; continue; } var_01 thread func_747A(self); var_00 = var_01; } } //Function Number: 48 func_747A(param_00) { self notify("playerTurretHud"); self endon("playerTurretHud"); var_01 = param_00 method_856E(); var_02 = param_00 method_8686(); var_03 = maps\mp\gametypes\_hud_util::func_27CF((0,1,0),120,9); var_03 maps\mp\gametypes\_hud_util::func_8707("CENTER",undefined,0,61); self.var_9F95 = var_03; if(var_02 > 0) { var_04 = 1 - var_02 / var_01; func_747B(var_03,var_04,var_02); } else { var_03.var_1586 setshader(var_03.var_1586.var_8AC7,var_03.var_1D2,var_03.var_BD); } for(;;) { param_00 waittill("turret_fire"); func_747B(var_03,0,var_01); } } //Function Number: 49 func_747B(param_00,param_01,param_02) { param_00.var_1586.var_56 = (1,0,0); var_03 = int(param_00.var_1D2 * param_01); param_00.var_1586 setshader(param_00.var_1586.var_8AC7,var_03,param_00.var_BD); param_00.var_1586 scaleovertime(param_02,param_00.var_1D2,param_00.var_BD); wait(param_02); param_00.var_1586.var_56 = (0,1,0); } //Function Number: 50 func_73D2() { self notify("playerTurretHud"); if(isdefined(self.var_9F95)) { self.var_9F95 maps\mp\gametypes\_hud_util::func_2DCC(); } } //Function Number: 51 func_667D() { lib_04FF::func_6965("health",3000); lib_04FF::func_6963("reloadTime",7); lib_04FF::func_6983(self.var_695A); var_00 = self.var_A2C8; var_01 = getvehiclenode(var_00.var_1A2,"targetname"); var_00 startpath(var_01); }