IL-GSC/WW2/PC/ALL/1406.gsc
2023-10-27 03:49:01 -04:00

348 lines
6.7 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1406.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 15
* Decompile Time: 7 ms
* Timestamp: 10/27/2023 3:26:03 AM
*******************************************************************/
//Function Number: 1
func_51CF()
{
var_00 = spawnstruct();
var_00.var_6F9A = (0,0,0);
var_00.var_6F9C = 500;
var_00.var_6F9B = 360;
common_scripts\utility::func_92C("vision_beam","vfx/lights/mp_zombie_nest/zmb_sentry_vision_light");
level.var_6FBF["Fireman Head"]["func"] = ::func_3C09;
level.var_6FBF["Fireman Head"]["model"] = "npc_zom_fireman_head";
level.var_6FBF["Fireman Head"]["canBeDroppedByZombies"] = ::maps/mp/gametypes/zombies::func_6FC7;
level.var_6FBF["Fireman Head"]["phys_overrides"] = var_00;
level.var_6FBF["Fireman Head"]["posOffset"] = (0,0,0);
level.var_6FBF["Fireman Head"]["extraTimeoutSecs"] = 180;
level.var_6FBF["Fireman Head"]["outline"] = 1;
if(!isdefined(level.var_4BDF))
{
level.var_4BDF = [];
}
level thread maps\mp\_utility::func_6F74(::func_AC25);
}
//Function Number: 2
func_AC25(param_00)
{
var_01 = self;
var_01 endon("disconnect");
var_01 childthread func_6312();
}
//Function Number: 3
func_314D(param_00)
{
var_01 = param_00 getweaponslistall();
return common_scripts\utility::func_F79(var_01,"sentryhead_zm");
}
//Function Number: 4
func_6312()
{
var_00 = self;
var_00.var_5605 = 0;
var_01 = 0.2;
var_02 = int(20 * var_01);
var_03 = (0,1,0);
for(;;)
{
wait(var_01);
var_04 = var_00 playerads() > 0.3 && var_00 getcurrentweapon() == "sentryhead_zm";
if(var_00.var_5605 != var_04)
{
var_00.var_5605 = var_04;
if(var_04)
{
var_05 = common_scripts\utility::func_44F5("vision_beam");
var_06 = spawnlinkedfx(var_05,var_00,"tag_fx",1);
triggerfx(var_06);
var_00.var_3BF4 = var_06;
}
else
{
var_00.var_3BF4 delete();
var_00.var_3BF4 = undefined;
}
}
if(!var_04)
{
continue;
}
foreach(var_0A in level.var_4BDF)
{
if(!var_00 func_5626(var_0A))
{
continue;
}
level thread [[ var_0A.var_7E39 ]](var_0A,var_00);
func_7CC2(var_0A);
}
}
}
//Function Number: 5
func_437B(param_00)
{
var_01 = param_00.var_116;
if(isdefined(param_00.var_218D))
{
var_01 = param_00.var_218D;
}
return var_01;
}
//Function Number: 6
func_5626(param_00)
{
var_01 = self;
var_02 = func_437B(param_00);
var_03 = var_01 geteye();
if(distancesquared(var_03,var_02) > squared(300))
{
return 0;
}
var_04 = var_02 - var_03;
var_05 = length(var_04);
if(var_05 < 1)
{
return 1;
}
var_06 = var_04 / var_05;
var_07 = anglestoforward(var_01 getangles());
var_08 = acos(vectordot(var_07,var_06));
if(var_08 > 30)
{
return 0;
}
if(!common_scripts\utility::func_562E(param_00.var_8C80) && !sighttracepassed(var_03,var_02,0,param_00))
{
return 0;
}
return 1;
}
//Function Number: 7
func_0984(param_00,param_01,param_02)
{
var_03 = param_00.var_116;
if(isdefined(param_01))
{
var_03 = param_01.var_116;
}
param_00.var_218D = var_03;
param_00.var_7E39 = param_02;
if(!isdefined(level.var_4BDF))
{
level.var_4BDF = [];
}
level.var_4BDF = common_scripts\utility::func_F6F(level.var_4BDF,param_00);
}
//Function Number: 8
func_7CC2(param_00)
{
level.var_4BDF = common_scripts\utility::func_F93(level.var_4BDF,param_00);
}
//Function Number: 9
func_3C09(param_00)
{
var_01 = self;
if(common_scripts\utility::func_562E(var_01.var_558F) || func_314D(param_00) || param_00 lib_0586::func_72C3())
{
return;
}
var_01.var_558F = 1;
param_00 lib_0586::func_78C("sentryhead_zm");
param_00 lib_0586::func_78E("sentryhead_zm");
level thread maps/mp/gametypes/zombies::func_7CED(var_01);
}
//Function Number: 10
func_418D()
{
return "sentryhead_zm";
}
//Function Number: 11
func_4758()
{
lib_0586::func_78C("sentryhead_zm");
lib_0586::func_78E("sentryhead_zm");
maps\mp\_utility::func_47A2("specialty_ballcarrier");
self method_8112(1);
self method_8113(0);
self method_8114(0);
thread func_6360();
}
//Function Number: 12
func_95CB()
{
if(self getcurrentweapon() == "sentryhead_zm")
{
var_00 = self.var_5B98;
if(!isdefined(var_00) || var_00 == "none")
{
var_01 = self getweaponslistprimaries();
foreach(var_03 in var_01)
{
if(lib_0547::func_5836(var_03))
{
var_00 = var_03;
break;
}
}
}
lib_0586::func_78E(var_00);
}
lib_0586::func_790("sentryhead_zm");
maps\mp\_utility::func_735("specialty_ballcarrier");
self method_8112(1);
self method_8113(1);
self method_8114(1);
level thread func_8FA7(self.var_116 + (0,0,10),"respawning on drop");
}
//Function Number: 13
func_6360()
{
for(;;)
{
common_scripts\utility::knock_off_battery("weapon_change","begin_last_stand");
if(self getcurrentweapon() == "sentryhead_zm")
{
continue;
}
if(func_314D(self))
{
func_95CB();
}
}
}
//Function Number: 14
func_8FA7(param_00,param_01)
{
if(!isdefined(level.var_3C0A))
{
level.var_3C0A = [];
level thread func_633A();
}
var_02 = undefined;
if(level.var_3C0A.size == 4)
{
var_03 = 0;
for(var_03 = 0;var_03 < 4;var_03++)
{
if(common_scripts\utility::func_562E(level.var_3C0A[var_03].var_558F))
{
break;
}
}
if(var_03 == 4)
{
var_03 = 0;
}
var_02 = level.var_3C0A[var_03];
level.var_3C0A = common_scripts\utility::func_F9A(level.var_3C0A,var_03);
level.var_3C0A[level.var_3C0A.size] = var_02;
}
else
{
var_02 = spawn("script_model",param_00);
var_02 setmodel("npc_zom_fireman_head");
level.var_3C0A[level.var_3C0A.size] = var_02;
}
var_04 = (0,0,500);
var_05 = 2000;
var_06 = 0.1;
var_07 = (0,0,5);
var_02 method_808C();
var_02.var_116 = param_00;
var_02 makeusable();
var_02 method_805B();
var_02 sethintstring(&"ZOMBIE_NEST_PICKUP_HEAD");
var_02 physicslaunchserver(var_02.var_116 + var_07,var_04,var_05,var_06);
var_02.var_558F = 0;
var_02 notify("recycle_fireman_head");
var_02 endon("recycle_fireman_head");
for(;;)
{
var_02 waittill("trigger",var_08);
if(func_314D(var_08) || var_08 lib_0586::func_72C3())
{
wait(0.25);
continue;
}
break;
}
var_08 func_4758();
var_02.var_558F = 1;
var_02 method_84E0();
var_02 makeunusable();
var_02 hudoutlinedisable();
var_02 sethintstring(&"ZOMBIES_EMPTY_STRING");
var_02 method_805B();
var_02 method_8511();
}
//Function Number: 15
func_633A()
{
for(;;)
{
level waittill("on togglescore");
var_00 = lib_0557::func_42B9();
foreach(var_02 in level.var_3C0A)
{
if(!common_scripts\utility::func_562E(var_02.var_558F))
{
if(var_00.size == 0)
{
if(isdefined(var_02))
{
var_02 hudoutlinedisable();
}
continue;
}
if(isdefined(var_02))
{
var_02 hudoutlineenableforclients(var_00,0,1);
}
}
}
}
}