mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 18:27:57 -05:00
1196 lines
24 KiB
Plaintext
1196 lines
24 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 1375.gsc
|
|
* Game: Call of Duty: WWII
|
|
* Platform: PC
|
|
* Function Count: 64
|
|
* Decompile Time: 36 ms
|
|
* Timestamp: 10/27/2023 3:25:52 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_00D5()
|
|
{
|
|
level.var_A41["zombie_boss_village"] = level.var_A41["zombie"];
|
|
level.var_A41["zombie_boss_village"]["spawn"] = ::func_AB7D;
|
|
level.var_A41["zombie_boss_village"]["think"] = ::func_AB7E;
|
|
level.var_A41["zombie_boss_village"]["move_mode"] = ::func_AB6C;
|
|
level.var_A41["zombie_boss_village"]["post_model"] = ::func_AB6F;
|
|
level.var_A41["zombie_boss_village"]["on_damaged"] = ::func_AB6D;
|
|
level.var_A41["zombie_boss_village"]["on_killed"] = ::func_AB6E;
|
|
level.var_A41["zombie_boss_village"]["tesla_delayed_dmg"] = ::zombie_boss_village_tesla_delayed_dmg;
|
|
var_00 = spawnstruct();
|
|
var_00.var_A4B = "zombie_boss_village";
|
|
var_00.var_EAE = "zombie_boss_animclass";
|
|
var_00.var_879 = "zombie_boss";
|
|
var_00.var_5ED2["default look"]["whole_body"] = "zom_brute_b_base";
|
|
var_00.var_1144["whole_body"] = "zom_klaus_wholebody";
|
|
var_00.var_4C12 = 1;
|
|
var_00.var_60E2 = 30;
|
|
var_00.var_8302 = 200;
|
|
var_00.var_8303 = 60;
|
|
var_00.parenttype = "zombie_generic";
|
|
if(isdefined(level.var_62AB))
|
|
{
|
|
var_00 = [[ level.var_62AB ]](var_00);
|
|
}
|
|
|
|
lib_0547::func_A52(var_00,"zombie_boss_village");
|
|
level.animtree_lookup["zombie_boss"] = #animtree;
|
|
level.var_5A8A = [];
|
|
var_01 = function_027A("mp/zombieKlausActionTable.csv");
|
|
for(var_02 = 0;var_02 < var_01;var_02++)
|
|
{
|
|
var_03 = tablelookupbyrow("mp/zombieKlausActionTable.csv",var_02,1);
|
|
var_04 = strtok(tablelookupbyrow("mp/zombieKlausActionTable.csv",var_02,2)," ");
|
|
if(isdefined(var_03) && var_03 != "")
|
|
{
|
|
level.var_5A8A[var_03] = var_04;
|
|
}
|
|
}
|
|
|
|
level.var_611["zmb_brute_drool"] = loadfx("vfx/zombie/zmb_brute_drool");
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_AB6D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
|
|
{
|
|
if(!isdefined(param_01) || param_05 == "turretweapon_zeppelin_gun_zm" && common_scripts\utility::func_562E(self.var_A87C))
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_01 thread maps\mp\gametypes\_damagefeedback::func_A102("standard");
|
|
self notify("brute_boss_damage",param_02,param_05);
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_AB6E(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
lib_054D::func_6BD4(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_AB6C()
|
|
{
|
|
if(self.var_8BA4 && !isdefined(self.var_1928) && !common_scripts\utility::func_562E(self.var_9E1B))
|
|
{
|
|
return "run";
|
|
}
|
|
|
|
return "walk";
|
|
}
|
|
|
|
//Function Number: 5
|
|
zombie_boss_village_tesla_delayed_dmg(param_00,param_01,param_02)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_AB65(param_00,param_01)
|
|
{
|
|
func_7678(param_00,0,param_01);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_AB66(param_00,param_01)
|
|
{
|
|
func_7678(param_00,0,param_01,0,undefined,undefined,::func_1CC3,"attack");
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_1CC3(param_00)
|
|
{
|
|
self notify("brute_smash_starting");
|
|
self endon("brute_smash_starting");
|
|
var_01 = "";
|
|
while(var_01 != param_00)
|
|
{
|
|
self waittill("scripted_anim",var_01);
|
|
}
|
|
|
|
var_02 = self gettagorigin("J_Wrist_RI");
|
|
playfx(level.var_611["zmb_brute_slam"],var_02,anglestoforward(self.var_1D),anglestoup(self.var_1D));
|
|
foreach(var_04 in level.var_744A)
|
|
{
|
|
var_05 = distance(self.var_116,var_04.var_116);
|
|
if(var_05 < 1)
|
|
{
|
|
var_05 = 1;
|
|
}
|
|
|
|
if(var_05 <= 192)
|
|
{
|
|
var_04 shellshock("frag_grenade_mp",1.25);
|
|
var_04 dodamage(150 / var_05 + 30,self.var_116,self,self,"MOD_GRENADE");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_AB67(param_00,param_01)
|
|
{
|
|
func_7678(param_00,0,param_01,0,undefined,undefined,::func_1CC3,"attack");
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_AB63(param_00,param_01)
|
|
{
|
|
func_7678(param_00,0,param_01);
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_AB62(param_00,param_01)
|
|
{
|
|
func_7678(param_00,0,param_01);
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_AB68(param_00,param_01,param_02)
|
|
{
|
|
func_7678(param_00,0,undefined,1,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_AB69(param_00)
|
|
{
|
|
self notify("show an uber battery");
|
|
self endon("returning to arena");
|
|
var_01 = common_scripts\utility::func_46B7("brute_exit_destination","targetname");
|
|
var_02 = common_scripts\utility::func_4461(self.var_116,var_01);
|
|
self.var_1928 = var_02;
|
|
var_03 = common_scripts\utility::func_46B7("brute_roar_point","targetname");
|
|
var_04 = 1;
|
|
while(var_04)
|
|
{
|
|
foreach(var_06 in var_03)
|
|
{
|
|
if(distance(self.var_116,var_06.var_116) < 128)
|
|
{
|
|
var_04 = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
wait(0.15);
|
|
}
|
|
|
|
func_7678("brute_roar_leaving");
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_AB64(param_00)
|
|
{
|
|
self notify("returning to arena");
|
|
var_01 = common_scripts\utility::func_46B7("brute_exit_destination","targetname");
|
|
var_02 = func_44C9(var_01,256);
|
|
if(var_02.size > 0)
|
|
{
|
|
var_03 = common_scripts\utility::func_7A33(var_02);
|
|
}
|
|
else
|
|
{
|
|
var_03 = common_scripts\utility::func_7A33(var_02);
|
|
}
|
|
|
|
self setorigin(var_03.var_116 + (0,0,8));
|
|
self.var_1D = var_03.var_1D;
|
|
var_04 = common_scripts\utility::func_46B5("final_brute_boss","targetname");
|
|
self.var_1928 = var_04;
|
|
self.var_9E1B = 1;
|
|
self waittill("traverse_end");
|
|
self.var_9E1B = 0;
|
|
self.var_1928 = undefined;
|
|
func_AB75();
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_AB7B()
|
|
{
|
|
func_AB7A();
|
|
self waittill("brute_unstunned",var_00,var_01);
|
|
return [var_00,var_01];
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_AB6A(param_00,param_01)
|
|
{
|
|
thread func_A6B5(param_01);
|
|
func_7678(param_00,0,undefined,1,"brute_stunned",param_01);
|
|
self.var_3ACE sethintstring(&"ZOMBIES_EMPTY_STRING");
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_AB79()
|
|
{
|
|
self notify("set brute behavior","scripted_brute_exit_traversal");
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_AB72()
|
|
{
|
|
self notify("set brute behavior","scripted_brute_entrance_traversal");
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_AB74()
|
|
{
|
|
self notify("set brute behavior","brute_standing_attack");
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_AB76()
|
|
{
|
|
self notify("set brute behavior","brute_hulk_smash");
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_AB77()
|
|
{
|
|
self notify("set brute behavior","brute_hulk_smash_180");
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_AB71()
|
|
{
|
|
self notify("set brute behavior","brute_standing_attack_180");
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_AB73()
|
|
{
|
|
self notify("set brute behavior","brute_walking_attack");
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_AB78()
|
|
{
|
|
self notify("set brute behavior","brute_idle");
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_AB7A()
|
|
{
|
|
self notify("set brute behavior","brute_stun_start");
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_AB75()
|
|
{
|
|
self notify("set brute behavior","brute_unlock_state");
|
|
}
|
|
|
|
//Function Number: 27
|
|
killstreakscaler()
|
|
{
|
|
self waittill("set brute behavior",var_00);
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_27A2(param_00,param_01,param_02)
|
|
{
|
|
var_03 = spawnstruct();
|
|
var_03.var_95AA = param_00;
|
|
var_03.var_73D7 = param_01;
|
|
var_03.var_AC1A = param_02;
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_AB70()
|
|
{
|
|
self endon("death");
|
|
thread func_115A();
|
|
var_00 = 200;
|
|
var_01 = var_00;
|
|
var_02 = var_00;
|
|
var_03 = 10000;
|
|
var_04 = 150;
|
|
var_05 = func_27A2("J_Mid_LE_3",var_01,var_02);
|
|
var_06 = func_27A2("J_Mid_RI_3",var_01,var_02);
|
|
var_07 = func_27A2("tag_origin",var_03,var_04);
|
|
var_08 = [var_05,var_06];
|
|
var_09 = common_scripts\utility::func_F73(var_08,[var_07]);
|
|
var_0A = ["brute_unlock_state","scripted_brute_exit_traversal","scripted_brute_entrance_traversal","brute_idle","brute_stun_start"];
|
|
var_0B = 0;
|
|
var_0C = "";
|
|
wait 0.05;
|
|
func_7678("brute_roar_recovering",0,undefined);
|
|
for(;;)
|
|
{
|
|
var_0D = killstreakscaler();
|
|
self.var_AB5C = var_0D;
|
|
if(var_0B && common_scripts\utility::func_F79(var_0A,var_0D))
|
|
{
|
|
self notify("brute behavior was unlocked");
|
|
var_0B = 0;
|
|
}
|
|
|
|
if(!var_0B)
|
|
{
|
|
switch(var_0D)
|
|
{
|
|
case "brute_walking_attack":
|
|
var_0E = spawnstruct();
|
|
var_0E.var_596D = var_09;
|
|
var_0E.var_67E9 = "stop charge damage";
|
|
if(common_scripts\utility::func_562E(self.var_8BA4))
|
|
{
|
|
var_0D = "brute_running_attack";
|
|
}
|
|
|
|
childthread func_AB62(var_0D,var_0E);
|
|
break;
|
|
|
|
case "brute_stun_start":
|
|
var_0B = 1;
|
|
var_0C = "stunned";
|
|
childthread func_AB6A(var_0D,"brute_unstunned");
|
|
break;
|
|
|
|
case "brute_idle":
|
|
var_0B = 1;
|
|
var_0C = "waiting";
|
|
childthread func_AB68(var_0D,"brute_idle","scripted_brute_entrance_traversal");
|
|
break;
|
|
|
|
case "scripted_brute_exit_traversal":
|
|
var_0B = 1;
|
|
var_0C = "leaving";
|
|
childthread func_AB69(var_0D);
|
|
break;
|
|
|
|
case "scripted_brute_entrance_traversal":
|
|
var_0B = 1;
|
|
var_0C = "returning";
|
|
childthread func_AB64(var_0D);
|
|
break;
|
|
|
|
case "brute_standing_attack":
|
|
var_0E = spawnstruct();
|
|
var_0E.var_596D = var_08;
|
|
var_0E.var_67E9 = "stop forward swing";
|
|
childthread func_AB65(var_0D,var_0E);
|
|
break;
|
|
|
|
case "brute_hulk_smash":
|
|
var_0E = spawnstruct();
|
|
var_0E.var_596D = var_08;
|
|
var_0E.var_67E9 = "stop ground pound";
|
|
childthread func_AB66(var_0D,var_0E);
|
|
break;
|
|
|
|
case "brute_hulk_smash_180":
|
|
var_0E = spawnstruct();
|
|
var_0E.var_596D = var_08;
|
|
var_0E.var_67E9 = "stop ground pound_180";
|
|
childthread func_AB67(var_0D,var_0E);
|
|
break;
|
|
|
|
case "brute_standing_attack_180":
|
|
var_0E = spawnstruct();
|
|
var_0E.var_596D = var_09;
|
|
var_0E.var_67E9 = "stop backhand swing";
|
|
childthread func_AB63(var_0D,var_0E);
|
|
break;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_7678(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
self notify("brute_change_actions");
|
|
self endon("brute_change_actions");
|
|
self endon("death");
|
|
if(self.var_A4B != "zombie_boss_village")
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_08 = param_00;
|
|
var_09 = maps/mp/agents/_scripted_agent_anim_util::func_434D(var_08);
|
|
var_0A = self method_83DB(var_09);
|
|
var_0B = randomint(var_0A);
|
|
self method_839C("anim deltas");
|
|
self scragentsetorientmode("face angle abs",self.var_1D);
|
|
self scragentsetscripted(1);
|
|
self.var_1BB = 1;
|
|
if(common_scripts\utility::func_562E(param_01))
|
|
{
|
|
self method_839D("noclip");
|
|
}
|
|
else
|
|
{
|
|
self method_839D("gravity");
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
foreach(var_0D in param_02.var_596D)
|
|
{
|
|
childthread func_3203(var_0D,param_02.var_67E9);
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
self childthread [[ param_06 ]](param_07);
|
|
}
|
|
|
|
if(!common_scripts\utility::func_562E(param_03))
|
|
{
|
|
maps/mp/agents/_scripted_agent_anim_util::func_71FA(var_09,var_0B,1,"scripted_anim");
|
|
}
|
|
else
|
|
{
|
|
func_309A(param_00,param_04,param_05);
|
|
}
|
|
|
|
if(common_scripts\utility::func_562E(param_01))
|
|
{
|
|
self method_839D("gravity");
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
self notify(param_02.var_67E9);
|
|
}
|
|
|
|
self scragentsetscripted(0);
|
|
self notify("brute finished scripted state");
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_309A(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
var_03 = func_43FA(param_00);
|
|
var_04 = spawnstruct();
|
|
var_04.var_8B58 = 0;
|
|
childthread func_49E8(var_04,param_02);
|
|
self.var_55A6 = 1;
|
|
for(var_05 = 0;var_05 < var_03.size;var_05++)
|
|
{
|
|
var_06 = var_03[var_05];
|
|
var_07 = maps/mp/agents/_scripted_agent_anim_util::func_434D(var_06);
|
|
var_08 = maps/mp/agents/_scripted_agent_anim_util::func_7A35(var_07);
|
|
if(var_03[var_05] == param_01)
|
|
{
|
|
childthread maps/mp/agents/_scripted_agent_anim_util::func_71FA(var_07,var_08,1,"scripted_anim");
|
|
while(!var_04.var_8B58)
|
|
{
|
|
lib_0547::func_A6F6();
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
maps/mp/agents/_scripted_agent_anim_util::func_71FA(var_07,var_08,1,"scripted_anim");
|
|
}
|
|
|
|
self.var_55A6 = 0;
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_49E8(param_00,param_01)
|
|
{
|
|
self waittill(param_01);
|
|
param_00.var_8B58 = 1;
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_1CB8()
|
|
{
|
|
self endon("death");
|
|
var_00 = 0;
|
|
if(common_scripts\utility::func_562E(self.var_55A6) || maps/mp/agents/_scripted_agent_anim_util::func_57E2())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = func_40E4();
|
|
if(var_01.var_8F15 || var_01.var_6895 > 0)
|
|
{
|
|
if(var_01.var_6891 > var_01.var_687E)
|
|
{
|
|
if(common_scripts\utility::func_24A6())
|
|
{
|
|
func_AB74();
|
|
}
|
|
else
|
|
{
|
|
func_AB76();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
func_AB77();
|
|
}
|
|
|
|
var_00 = 1;
|
|
}
|
|
else if(var_01.var_6895 > 0 && var_01.var_6891 < var_01.var_687E)
|
|
{
|
|
func_AB71();
|
|
var_00 = 1;
|
|
}
|
|
else if(var_01.var_688D > 0 && var_01.var_6891 > 0)
|
|
{
|
|
if(func_1CC7())
|
|
{
|
|
func_AB73();
|
|
var_00 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_1CC5()
|
|
{
|
|
wait(4);
|
|
for(;;)
|
|
{
|
|
wait(0.1);
|
|
var_00 = func_40E4();
|
|
if(var_00.var_688D + var_00.var_6897 == func_6873() && !common_scripts\utility::func_562E(self.var_8BA4))
|
|
{
|
|
if(!common_scripts\utility::func_562E(self.var_203F))
|
|
{
|
|
thread func_93BF(5);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(self.var_8BA4 && var_00.var_6895 > 0)
|
|
{
|
|
thread func_1F35();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_93BF(param_00)
|
|
{
|
|
self endon("cancel_brute_run");
|
|
self.var_8BA4 = 1;
|
|
wait(param_00);
|
|
self.var_8BA4 = 0;
|
|
self.var_203F = 1;
|
|
wait(4);
|
|
self.var_203F = 0;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_1F35()
|
|
{
|
|
self notify("cancel_brute_run");
|
|
self.var_8BA4 = 0;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_40E4()
|
|
{
|
|
var_00 = spawnstruct();
|
|
var_00.var_8F15 = 0;
|
|
var_00.var_6897 = 0;
|
|
var_00.var_6895 = 0;
|
|
var_00.var_688D = 0;
|
|
var_00.var_6891 = 0;
|
|
var_00.var_687E = 0;
|
|
foreach(var_02 in level.var_744A)
|
|
{
|
|
if(distance(var_02.var_116,self.var_116) < 50)
|
|
{
|
|
var_00.var_8F15 = 1;
|
|
}
|
|
else if(distance(var_02.var_116,self.var_116) < 256)
|
|
{
|
|
var_00.var_6895++;
|
|
}
|
|
else if(distance(var_02.var_116,self.var_116) < 768)
|
|
{
|
|
var_00.var_688D++;
|
|
}
|
|
else
|
|
{
|
|
var_00.var_6897++;
|
|
}
|
|
|
|
if(var_02 lib_053C::func_5724(self))
|
|
{
|
|
var_00.var_6891++;
|
|
continue;
|
|
}
|
|
|
|
var_00.var_687E++;
|
|
}
|
|
|
|
var_00.var_6873 = func_6873();
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_6873()
|
|
{
|
|
var_00 = 0;
|
|
foreach(var_02 in level.var_744A)
|
|
{
|
|
if(isalive(var_02) && !var_02.var_5378)
|
|
{
|
|
var_00++;
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_115A()
|
|
{
|
|
var_00 = getentarray("nest_brute_uber_inserts","targetname");
|
|
while(self.var_106 == "tag_origin")
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02 method_805B();
|
|
var_02.var_116 = self gettagorigin(var_02.var_165) + func_425D(var_02.var_165);
|
|
var_02 linktoblendtotag(self,var_02.var_165);
|
|
}
|
|
|
|
var_00 thread func_1CCD(self);
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_425D(param_00)
|
|
{
|
|
var_01 = (0,0,0);
|
|
switch(param_00)
|
|
{
|
|
case "J_Knee_LE":
|
|
var_01 = (8,8,-8);
|
|
break;
|
|
|
|
case "J_Knee_RI":
|
|
var_01 = (-8,-8,-8);
|
|
break;
|
|
|
|
case "J_SpineLower":
|
|
var_01 = (0,16,0);
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_1CCD(param_00)
|
|
{
|
|
var_01 = [undefined,undefined,undefined];
|
|
foreach(var_03 in self)
|
|
{
|
|
var_01[var_03.var_8140 - 1] = var_03;
|
|
var_03 method_8511();
|
|
}
|
|
|
|
param_00.var_1CCF = var_01;
|
|
foreach(var_03 in var_01)
|
|
{
|
|
param_00 waittill("show an uber battery");
|
|
var_03 method_805B();
|
|
playfxontag(level.var_611["gk_raven_hc_ee_uber_attached"],var_03,"tag_origin");
|
|
var_03 lib_0378::func_8D74("uber_battery_spawn");
|
|
}
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_44C9(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
foreach(var_04 in param_00)
|
|
{
|
|
foreach(var_06 in level.var_744A)
|
|
{
|
|
if(distance(var_04.var_116,var_06.var_116) < param_01)
|
|
{
|
|
var_02 = common_scripts\utility::func_F6F(var_02,var_04);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_43FA(param_00)
|
|
{
|
|
var_01 = [];
|
|
switch(param_00)
|
|
{
|
|
case "brute_stun_start":
|
|
var_01 = ["brute_stun_start","brute_stunned","brute_stun_end","brute_roar_leaving"];
|
|
break;
|
|
|
|
case "brute_idle":
|
|
var_01 = ["brute_idle"];
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_A6B5(param_00)
|
|
{
|
|
wait(2.25);
|
|
thread func_94BF(2,param_00);
|
|
self endon(param_00);
|
|
var_01 = undefined;
|
|
for(var_02 = 0;!var_02;var_02 = var_01 lib_0585::func_9E12("Blimp Battery Hunt"))
|
|
{
|
|
self.var_3ACE sethintstring(&"ZOMBIE_NEST_PLACE_UBER");
|
|
self.var_3ACE waittill("trigger",var_01);
|
|
}
|
|
|
|
self notify(param_00,1,var_01);
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_1CC6()
|
|
{
|
|
level thread maps\mp\_utility::func_6F74(::func_A0EB,self);
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_A0EB(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00 endon("death");
|
|
func_863C(param_00.var_3ACE,self,0);
|
|
for(;;)
|
|
{
|
|
var_01 = common_scripts\utility::func_A715("uber_gained","uber_lost");
|
|
if(!isalive(self))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 == "uber_gained")
|
|
{
|
|
if(lib_0586::func_72C3())
|
|
{
|
|
func_863C(param_00.var_3ACE,self,1);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(var_01 == "uber_lost")
|
|
{
|
|
func_863C(param_00.var_3ACE,self,0);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_863C(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 [[ common_scripts\utility::func_98E7(param_02,::enableplayeruse,::disableplayeruse) ]](param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_94BF(param_00,param_01)
|
|
{
|
|
self endon(param_01);
|
|
if(level.var_744A.size == 1)
|
|
{
|
|
param_00 = param_00 + 3;
|
|
}
|
|
|
|
lib_0555::func_83DD("brute_stun");
|
|
while(param_00 > 0)
|
|
{
|
|
param_00--;
|
|
wait(1);
|
|
}
|
|
|
|
lib_0555::func_83DD("brute_awake");
|
|
self notify(param_01,0);
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_1CC7(param_00)
|
|
{
|
|
if(func_A271(self))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_3203(param_00,param_01)
|
|
{
|
|
self endon("brute_change_actions");
|
|
self endon(param_01);
|
|
self endon("death");
|
|
var_02 = [];
|
|
var_03 = param_00.var_95AA;
|
|
var_04 = param_00.var_73D7;
|
|
var_05 = param_00.var_AC1A;
|
|
for(;;)
|
|
{
|
|
var_06 = [];
|
|
if(var_05 > 0)
|
|
{
|
|
var_07 = lib_0547::func_408F();
|
|
var_07 = common_scripts\utility::func_F93(var_07,self);
|
|
var_06 = common_scripts\utility::func_F73(var_06,var_07);
|
|
}
|
|
|
|
if(var_04 > 0)
|
|
{
|
|
var_06 = common_scripts\utility::func_F73(var_06,level.var_744A);
|
|
}
|
|
|
|
foreach(var_09 in var_06)
|
|
{
|
|
var_0A = common_scripts\utility::func_98E7(isplayer(var_09),var_04,var_05);
|
|
var_0B = self gettagorigin(var_03);
|
|
if(!common_scripts\utility::func_F79(var_02,var_09) && distance(var_0B,var_09.var_116) < 64)
|
|
{
|
|
var_09 dodamage(var_0A,var_0B,self,self,"MOD_IMPACT");
|
|
var_02 = common_scripts\utility::func_F6F(var_02,var_09);
|
|
}
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_AB6B(param_00)
|
|
{
|
|
var_01 = self;
|
|
var_01 endon("death");
|
|
var_02 = var_01 method_8445(param_00);
|
|
if(var_02 == -1)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_03 = spawnstruct();
|
|
var_03.var_116 = var_01 gettagorigin(param_00);
|
|
var_03.var_1D = var_01.var_1D;
|
|
var_03.var_2F74 = 1;
|
|
var_04 = spawnstruct();
|
|
var_04.var_2434 = 30;
|
|
var_04.var_60C1 = 60;
|
|
var_04.var_3A20 = 90;
|
|
var_04.var_1B70 = 82;
|
|
var_01 childthread lib_0547::tackle_thread(var_03,var_04);
|
|
for(;;)
|
|
{
|
|
wait(0.1);
|
|
if(!isdefined(var_01.var_AB5C))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03.var_116 = var_01 gettagorigin(param_00);
|
|
var_03.var_1D = var_01.var_1D;
|
|
var_03.var_2F74 = !common_scripts\utility::func_F79(["scripted_brute_exit_traversal","scripted_brute_entrance_traversal","brute_standing_attack","brute_standing_attack_180","brute_walking_attack","brute_up_stairs","brute_down_stairs"],var_01.var_AB5C);
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_AB6F()
|
|
{
|
|
foreach(var_01 in ["j_ball_le","j_ball_ri"])
|
|
{
|
|
thread func_AB6B(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_AB7D(param_00,param_01,param_02)
|
|
{
|
|
lib_054D::func_6BD7(param_00,param_01,param_02);
|
|
self.var_90DC = "zombie_boss_village";
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_AB7C()
|
|
{
|
|
var_00 = 48;
|
|
var_01 = 200;
|
|
self method_856C(var_00,var_01);
|
|
self.var_BD = var_01;
|
|
self.var_14F = var_00;
|
|
self method_85A1("zombie_boss_village");
|
|
self method_84D4();
|
|
self.var_FB = 100000;
|
|
self.var_BC = self.var_FB;
|
|
self.var_6816 = 1;
|
|
self.var_56EB = 1;
|
|
if(!common_scripts\utility::func_562E(level.var_AC14))
|
|
{
|
|
thread func_AB70();
|
|
}
|
|
|
|
self.var_5D5F = 1;
|
|
self.var_57E8 = 1;
|
|
self.var_8BA4 = 0;
|
|
self.var_1DEB = 1;
|
|
self method_839F(func_4399());
|
|
thread func_AB5B();
|
|
thread func_1CBE();
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_1CBE()
|
|
{
|
|
wait 0.05;
|
|
playfxontag(level.var_611["zmb_brute_drool"],self,"J_Head");
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_AB5B()
|
|
{
|
|
var_00 = "tag_origin";
|
|
var_01 = lib_0547::func_A51("zombie_boss_village");
|
|
var_02 = spawn("script_model",self.var_116);
|
|
var_02 setmodel(var_01.var_1144["whole_body"]);
|
|
var_02.var_1D = self gettagangles(var_00);
|
|
var_02 linkto(self,var_00);
|
|
self.var_5A9C = var_02;
|
|
self.var_1142 = ::func_84F1;
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_84F1(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!isdefined(self) || !isdefined(self.var_5A9C))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("set_klaus_state");
|
|
self endon("set_klaus_state");
|
|
var_04 = param_00;
|
|
if(!isdefined(param_01))
|
|
{
|
|
var_05 = self method_83D9();
|
|
var_06 = self method_83DB(param_00);
|
|
for(var_07 = 0;var_07 < var_06;var_07++)
|
|
{
|
|
var_08 = self method_83D9(param_00,var_07);
|
|
if(var_08 == var_05)
|
|
{
|
|
param_01 = var_07;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_5A9C.var_EE8) && self.var_5A9C.var_EE8 == var_04 && isdefined(self.var_5A9C.var_EC1) && self.var_5A9C.var_EC1 == param_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_09 = undefined;
|
|
var_0A = level.var_5A8A[var_04][param_01];
|
|
wait 0.05;
|
|
self.var_5A9C scriptmodelclearanim();
|
|
self.var_5A9C scriptmodelplayanim(var_0A);
|
|
self.var_5A9C.var_EE8 = var_04;
|
|
self.var_5A9C.var_EC4 = var_0A;
|
|
self.var_5A9C.var_EC1 = param_01;
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_AB7E()
|
|
{
|
|
func_AB7C();
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
self endon("owner_disconnect");
|
|
lib_0566::func_ABB5();
|
|
var_00 = 0.2;
|
|
childthread func_1CC5();
|
|
self.var_117D = 4;
|
|
self.var_1F0F = 1;
|
|
for(;;)
|
|
{
|
|
wait(var_00);
|
|
var_01 = isdefined(self.var_92EA) && gettime() * 0.001 < self.var_92EA;
|
|
self.var_50C5 = common_scripts\utility::func_562E(self.var_54F4) || var_01;
|
|
if(self.var_1F0F && !self.var_50C5)
|
|
{
|
|
if(self.var_117D < 0 && func_1CB8())
|
|
{
|
|
thread func_1160(2);
|
|
continue;
|
|
}
|
|
else if(self.var_117D > 0)
|
|
{
|
|
self.var_117D = self.var_117D - var_00;
|
|
}
|
|
}
|
|
|
|
if(lib_053C::func_4F9B())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(lib_053C::func_4F9A())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
lib_053C::func_647();
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_1160(param_00)
|
|
{
|
|
self.var_1F0F = 0;
|
|
self.var_117D = param_00;
|
|
common_scripts\utility::knock_off_battery("brute finished scripted state","brute behavior was unlocked");
|
|
self.var_1F0F = 1;
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_5725(param_00)
|
|
{
|
|
var_01 = 65536;
|
|
var_02 = 65536;
|
|
var_03 = self.var_1D;
|
|
var_04 = self gettagorigin("tag_origin");
|
|
var_05 = var_04 + var_03 * 1000;
|
|
if(!isdefined(param_00) || !isalive(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_06 = param_00.var_116 + (0,0,64);
|
|
var_07 = distancesquared(var_04,var_06);
|
|
if(var_07 > var_01)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_08 = vectornormalize(var_06 - var_04);
|
|
var_09 = vectordot(var_03,var_08);
|
|
if(0 > var_09)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_0A = pointonsegmentnearesttopoint(var_04,var_05,var_06);
|
|
if(distancesquared(var_06,var_0A) > var_02)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(0 == param_00 method_81D7(var_04,self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_07 < var_01)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_A271(param_00)
|
|
{
|
|
var_01 = (0,0,16);
|
|
var_02 = 650;
|
|
var_03 = 5;
|
|
var_04 = [];
|
|
var_05 = [];
|
|
var_06 = func_A01F(param_00.var_1D);
|
|
var_07 = 0;
|
|
var_08 = var_02 / var_03;
|
|
var_09 = 0;
|
|
var_0A = [];
|
|
for(var_0B = 0;var_0B < var_03;var_0B++)
|
|
{
|
|
if(var_0B > 0)
|
|
{
|
|
var_0C = var_04[var_0B - 1] + var_01;
|
|
}
|
|
else
|
|
{
|
|
var_0C = param_00.var_116 + var_01;
|
|
}
|
|
|
|
var_0D = var_0C + var_06 * var_08;
|
|
var_0E = getclosestpointonnavmesh(var_0D,param_00) + var_01;
|
|
var_0F = func_6CC9(var_0D,var_0E);
|
|
var_10 = bullettrace(var_0C,var_0F,0);
|
|
var_04 = common_scripts\utility::func_F6F(var_04,var_0F);
|
|
if(var_10["fraction"] != 1)
|
|
{
|
|
var_07 = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return !var_07;
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_A01F(param_00)
|
|
{
|
|
var_01 = anglestoforward(param_00);
|
|
var_01 = common_scripts\utility::func_3D5D(var_01);
|
|
var_01 = vectornormalize(var_01);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_6CC9(param_00,param_01)
|
|
{
|
|
return (param_00[0],param_00[1],param_01[2]);
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_4399()
|
|
{
|
|
var_00 = 0.15;
|
|
var_01 = var_00 * 3.14 * 2 * 0.05;
|
|
return var_01;
|
|
} |