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

1545 lines
29 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1414.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 61
* Decompile Time: 95 ms
* Timestamp: 10/27/2023 3:26:07 AM
*******************************************************************/
//Function Number: 1
func_AC73()
{
level.var_ABE4 = [];
level.zm_grenade_funcs = [];
level.weaponmaxammofuncs = [];
level.var_6092 = 2;
level.var_6B83 = ::func_AC75;
if(isdefined(level.var_AC71))
{
[[ level.var_AC71 ]]();
}
lib_0547::func_7BA9(::func_ABD7);
thread func_AC74();
level.var_61E0 = 0.3;
level.var_61E2 = 100;
level.var_61E1 = 20;
level.var_61DE = 256;
level.var_61DC = 350;
level.var_61DB = 1000;
level.var_61D9 = 46;
level.var_61EF = -1;
level.var_61CC = common_scripts\utility::func_44F5("mine_launch");
level.var_61CF = common_scripts\utility::func_44F5("mine_spin");
level.var_61C8 = common_scripts\utility::func_44F5("mine_explode");
level.var_61C2["enemy"] = common_scripts\utility::func_44F5("mine_beacon_enemy");
level.var_61C2["friendly"] = common_scripts\utility::func_44F5("mine_beacon_friendly");
level thread maps/mp/zombies/weapons/_zombie_type_38::func_D5();
level thread maps/mp/zombies/weapons/_zombie_funderbuss::func_D5();
level thread maps/mp/zombies/weapons/_zombie_de_lisle_carbine::func_D5();
level thread maps/mp/zombies/weapons/_zombies_scripted_lmg_upgrades::func_D5();
level thread maps/mp/zombies/weapons/_zombies_scripted_mtx_9_paps::func_D5();
level thread maps/mp/zombies/weapons/_zombies_scripted_mtx_20_paps::func_D5();
}
//Function Number: 2
func_AC74()
{
for(;;)
{
level waittill("connected",var_00);
var_00 thread func_A92B();
var_00 thread func_A918();
var_00 thread func_A926();
var_00 thread func_5371();
var_00 thread func_4AAA();
}
}
//Function Number: 3
func_AC75()
{
if(isdefined(level.var_AC72))
{
[[ level.var_AC72 ]]();
}
}
//Function Number: 4
func_09E0(param_00)
{
level.var_ABE4[level.var_ABE4.size] = param_00;
}
//Function Number: 5
func_5776(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
foreach(var_02 in level.var_ABE4)
{
if(var_02 == param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 6
func_478A(param_00)
{
if(isdefined(param_00))
{
var_01 = [param_00];
}
else
{
var_01 = level.var_744A;
}
foreach(param_00 in var_01)
{
var_03 = param_00 method_834A();
var_04 = param_00 method_831F();
if(0)
{
var_05 = [var_03,var_04];
}
else
{
var_05 = [var_03];
}
foreach(var_07 in var_05)
{
if(var_07 == "none" || maps\mp\zombies\_zombies_magicbox::is_grenadier_immune_weapon(var_07))
{
continue;
}
param_00 method_82FA(var_07,param_00 getweaponammoclip(var_07) + 1);
}
}
}
//Function Number: 7
func_A92B()
{
self endon("disconnect");
for(;;)
{
self waittill("missile_fire",var_00,var_01);
var_00.var_3C1D = self getstance();
}
}
//Function Number: 8
func_A918()
{
self endon("disconnect");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(isdefined(level.zm_grenade_funcs[var_01]))
{
var_02 = [[ level.zm_grenade_funcs[var_01] ]](var_00);
if(var_02)
{
continue;
}
}
if(!isdefined(self.equipmentused))
{
self.equipmentused = 0;
}
if(lib_0547::func_585C(var_01))
{
self.equipmentused++;
}
var_00.var_3BE1 = self.var_569F;
}
}
//Function Number: 9
func_0667(param_00)
{
var_01 = function_01D4(param_00);
if(var_01 != "primary" && var_01 != "altmode")
{
return 0;
}
if(maps\mp\_utility::func_5670(param_00))
{
return 1;
}
if(param_00 == self method_82D5())
{
return 1;
}
var_02 = getweapondisplayname(param_00);
if(lib_0547::func_5865(var_02))
{
return 1;
}
if(lib_0547::func_585B(var_02))
{
return 1;
}
if(lib_0547::iszombieconsumableweapon(var_02))
{
return 1;
}
return 0;
}
//Function Number: 10
func_0639()
{
var_00 = func_063A();
return var_00.size;
}
//Function Number: 11
func_063A()
{
var_00 = [];
var_01 = self getweaponslistprimaries();
foreach(var_03 in var_01)
{
if(!func_0667(var_03))
{
var_00[var_00.size] = var_03;
}
}
return var_00;
}
//Function Number: 12
func_0635()
{
if(lib_0547::func_4BA7("specialty_class_mule_kick_zm"))
{
return 3;
}
return 2;
}
//Function Number: 13
func_05DF(param_00)
{
if(func_0667(param_00))
{
return 1;
}
return func_0635() > func_0639();
}
//Function Number: 14
func_0637()
{
var_00 = func_063A();
var_01 = self getcurrentprimaryweapon();
if(common_scripts\utility::func_F79(var_00,var_01))
{
return var_01;
}
if(var_00.size == 0)
{
return "none";
}
var_02 = common_scripts\utility::func_4550();
if(common_scripts\utility::func_F79(var_00,var_02))
{
return var_02;
}
return var_00[0];
}
//Function Number: 15
func_A926()
{
self endon("disconnect");
lib_0556::func_A6B8();
for(;;)
{
var_00 = self method_82D5();
if(!isdefined(var_00) || var_00 == "none")
{
lib_0556::func_5F16("melee");
maps\mp\_utility::func_6D0(4,"");
}
else
{
lib_0556::func_5F16(var_00);
lib_0556::func_24DD(var_00,var_00,"melee");
maps\mp\_utility::func_6D0(4,"weapon",var_00);
}
common_scripts\utility::knock_off_battery("weapon_given","weapon_taken","zombie_player_spawn_finished","melee_weapon_change");
}
}
//Function Number: 16
func_5371()
{
var_00 = spawnstruct();
self.var_AB4A = var_00;
var_00.var_8DF = [];
var_00.var_A9E7 = [];
thread clear_weapon_inventory_on_death();
thread func_A88C();
}
//Function Number: 17
clear_weapon_inventory_on_death()
{
var_00 = self;
var_00 endon("disconnect");
for(;;)
{
var_00 waittill("death");
if(!isdefined(var_00.var_AB4A))
{
continue;
}
var_00.var_AB4A.var_A9E7 = [];
}
}
//Function Number: 18
func_A88C()
{
self endon("disconnect");
for(;;)
{
common_scripts\utility::knock_off_battery("weapon_given","weapon_taken");
if(self.var_178 == "spectator" || self.var_178 == "dead")
{
continue;
}
var_00 = func_063A();
foreach(var_02 in var_00)
{
var_03 = function_01A9(var_02);
if(var_03 == "melee")
{
continue;
}
var_04 = lib_0547::func_AAF9(var_02);
var_05 = self.var_AB4A.var_A9E7[var_04];
if(!isdefined(var_05))
{
func_078D(var_02);
continue;
}
var_06 = var_05.var_5B9F;
if(!isdefined(var_06))
{
var_06 = "(removed) " + var_05.var_2953;
}
if(stricmp(var_02,var_06) != 0)
{
if(isdefined(var_05.var_5B9F))
{
self takeweapon(var_05.var_5B9F);
}
func_078D(var_02);
}
}
var_08 = [];
foreach(var_0A, var_05 in self.var_AB4A.var_A9E7)
{
if(isdefined(var_05.var_5B9F) && !self hasweapon(var_05.var_5B9F))
{
var_08[var_08.size] = var_0A;
}
}
foreach(var_0C in var_08)
{
self.var_AB4A.var_A9E7[var_0C] = undefined;
}
}
}
//Function Number: 19
func_7BDB(param_00,param_01,param_02)
{
if(!isdefined(level.var_AB4B))
{
level.var_AB4B = [];
}
var_03 = spawnstruct();
level.var_AB4B[param_00] = var_03;
var_03.var_9AF = param_01;
var_03.var_2381 = param_02;
}
//Function Number: 20
func_0680(param_00)
{
var_01 = spawnstruct();
var_01.var_6C57 = param_00;
var_01.var_F20 = [];
var_01.var_2953 = param_00;
var_01.var_5B9F = undefined;
return var_01;
}
//Function Number: 21
func_4129(param_00)
{
var_01 = spawnstruct();
var_02 = param_00;
var_03 = lib_0547::func_AAF9(param_00);
var_04 = self.var_AB4A.var_A9E7[var_03];
if(isdefined(var_04))
{
var_02 = var_04.var_5B9F;
}
else
{
func_AC13("get_current_ammo_info: pulling ammo from weapon that isn\'t in our inventory! Double-check that this weapon was given to the player through _zm_give_weapon: " + param_00);
}
var_01.var_DB3 = self getweaponammoclip(var_02);
if(issubstr(var_02,"akimbo"))
{
var_01.var_DB4 = self getweaponammoclip(var_02,"left");
}
if(!function_01D8(param_00))
{
var_01.var_DBB = self getweaponammostock(var_02);
}
return var_01;
}
//Function Number: 22
func_0F21(param_00,param_01)
{
var_02 = lib_0547::func_AAF9(param_00);
var_03 = self.var_AB4A.var_A9E7[var_02];
var_04 = param_00;
if(isdefined(var_03))
{
var_04 = var_03.var_5B9F;
}
else
{
func_AC13("apply_ammo_info: setting ammo on weapon that isn\'t in our inventory! Double-check that this weapon was given to the player through _zm_give_weapon: " + param_00);
}
var_05 = 0;
var_06 = 0;
var_07 = weaponclipsize(var_04,self);
var_05 = int(max(0,param_01.var_DB3 - var_07));
var_06 = var_06 + var_05;
self method_82FA(var_04,param_01.var_DB3 - var_05,"right");
if(issubstr(var_04,"akimbo"))
{
if(isdefined(param_01.var_DB4))
{
var_05 = int(max(0,param_01.var_DB4 - var_07));
var_06 = var_06 + var_05;
self method_82FA(var_04,param_01.var_DB4 - var_05,"left");
}
else
{
self method_82FA(var_04,0,"left");
}
}
else if(isdefined(param_01.var_DB4))
{
var_05 = param_01.var_DB4;
var_06 = var_06 + var_05;
}
if(isdefined(param_01.var_DBB))
{
var_08 = param_01.var_DBB + var_06;
var_09 = weaponmaxammo(var_04,self);
if(var_08 > var_09)
{
func_AC13("^3apply_ammo_info: Weapon max ammo isn\'t large enough to hold stored ammo bullets! Losing some ammo.");
var_08 = var_09;
}
self setweaponammostock(var_04,var_08);
}
}
//Function Number: 23
func_0736(param_00,param_01)
{
var_02 = 0;
var_03 = undefined;
if(isdefined(param_00.var_5B9F))
{
if(param_00.var_2953 == param_00.var_5B9F)
{
return;
}
var_03 = func_4129(param_00.var_5B9F);
self notify("zm_weap_take_" + param_00.var_5B9F);
self takeweapon(param_00.var_5B9F);
}
else
{
}
thread func_0641(param_00.var_2953,param_01,param_00.var_A6DF,param_00.weaponcharmguid);
param_00.var_5B9F = param_00.var_2953;
if(isdefined(var_03))
{
func_0F21(param_00.var_2953,var_03);
}
}
//Function Number: 24
func_078D(param_00)
{
func_078C(param_00,undefined,0);
}
//Function Number: 25
_zm_give_weapon_mp_api(param_00,param_01,param_02,param_03)
{
func_078C(param_00,param_01,undefined,param_03);
}
//Function Number: 26
func_078C(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
var_05 = function_01D4(param_00);
var_06 = function_01A9(param_00);
var_07 = lib_0547::func_AAF9(param_00);
self notify("zm_stream_cancel_" + var_07);
if((var_05 != "primary" && var_05 != "altmode") || var_06 == "melee")
{
thread func_0641(param_00,var_07,param_02,param_03,param_04);
if(common_scripts\utility::func_562E(param_02))
{
common_scripts\utility::knock_off_battery("zm_stream_cancel_" + var_07,"zm_stream_finish_" + var_07);
}
return;
}
var_08 = self.var_AB4A.var_A9E7[var_07];
if(isdefined(var_08))
{
func_0790(var_08.var_5B9F);
var_08 = undefined;
}
if(!isdefined(var_08))
{
var_08 = func_0680(param_00);
self.var_AB4A.var_A9E7[var_07] = var_08;
}
var_08.var_A6DF = param_02;
var_08.weaponcharmguid = param_03;
foreach(var_0C, var_0A in self.var_AB4A.var_8DF)
{
var_0B = level.var_AB4B[var_0C];
if(isdefined(var_0B.var_9AF))
{
self [[ var_0B.var_9AF ]](var_08);
}
}
func_0736(var_08,var_07);
if(param_02)
{
common_scripts\utility::knock_off_battery("zm_stream_cancel_" + var_07,"zm_stream_finish_" + var_07);
}
}
//Function Number: 27
func_AC13(param_00)
{
}
//Function Number: 28
func_0632(param_00)
{
var_01 = lib_0547::func_AAF9(param_00);
var_02 = self.var_AB4A.var_A9E7[var_01];
if(isdefined(var_02))
{
return var_02.var_6C57;
}
return param_00;
}
//Function Number: 29
func_078F()
{
var_00 = getarraykeys(self.var_AB4A.var_A9E7);
foreach(var_02 in var_00)
{
func_0790(var_02);
}
self takeallweapons();
}
//Function Number: 30
func_0641(param_00,param_01,param_02,param_03,param_04)
{
self notify("zm_stream_change_" + param_01);
self endon("zm_stream_cancel_" + param_01);
self endon("zm_stream_change_" + param_01);
if(!isdefined(param_02))
{
param_02 = 0;
}
var_05 = 0;
var_05 = self method_8512([param_00]);
if(param_02)
{
wait(0);
while(!var_05)
{
wait 0.05;
var_05 = self method_8512([param_00]);
}
}
var_06 = 0;
var_07 = undefined;
if(!common_scripts\utility::func_562E(param_04))
{
var_07 = lib_056C::getzombiepaintjob(self,param_00);
}
maps\mp\_utility::func_642(param_00,var_06,var_07,param_03);
if(!param_02 && !var_05)
{
childthread func_A8C2(param_00,param_01);
return;
}
self notify("zm_stream_finish_" + param_01);
}
//Function Number: 31
func_A8C2(param_00,param_01)
{
for(;;)
{
var_02 = self method_8512([param_00]);
if(var_02)
{
break;
}
wait 0.05;
}
self notify("zm_stream_finish_" + param_01);
}
//Function Number: 32
func_0790(param_00)
{
if(!isdefined(param_00) || param_00 == "none")
{
return;
}
var_01 = function_01D4(param_00);
var_02 = function_01A9(param_00);
var_03 = lib_0547::func_AAF9(param_00);
if((var_01 != "primary" && var_01 != "altmode") || var_02 == "melee")
{
self notify("zm_stream_cancel_" + var_03);
self takeweapon(param_00);
return;
}
var_04 = [];
if(isdefined(self.var_AB4A.var_A9E7[var_03]))
{
var_04[var_03] = 1;
}
if(var_04.size != 1)
{
}
foreach(var_11, var_0F in var_04)
{
var_10 = self.var_AB4A.var_A9E7[var_11];
if(isdefined(var_10.var_5B9F))
{
self takeweapon(var_10.var_5B9F);
}
self.var_AB4A.var_A9E7[var_11] = undefined;
}
self notify("zm_stream_cancel_" + var_03);
}
//Function Number: 33
func_098F(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_04 = level.var_AB4B[var_03];
if(!isdefined(var_04))
{
continue;
}
var_01[var_01.size] = var_04;
self.var_AB4A.var_8DF[var_03] = 1;
}
var_06 = self getcurrentprimaryweapon();
foreach(var_0B, var_08 in self.var_AB4A.var_A9E7)
{
foreach(var_04 in var_01)
{
if(isdefined(var_04.var_9AF))
{
self [[ var_04.var_9AF ]](var_08);
}
}
func_0736(var_08,var_0B);
}
func_11BB(var_06);
}
//Function Number: 34
func_098E(param_00)
{
func_098F([param_00]);
}
//Function Number: 35
func_7CC9(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_04 = level.var_AB4B[var_03];
if(!isdefined(var_04))
{
continue;
}
var_01[var_01.size] = var_04;
self.var_AB4A.var_8DF[var_03] = undefined;
}
var_06 = self getcurrentprimaryweapon();
foreach(var_0B, var_08 in self.var_AB4A.var_A9E7)
{
foreach(var_04 in var_01)
{
if(isdefined(var_04.var_2381))
{
self [[ var_04.var_2381 ]](var_08);
}
}
func_0736(var_08,var_0B);
}
func_11BB(var_06);
}
//Function Number: 36
func_11BB(param_00)
{
var_01 = self getcurrentprimaryweapon();
if((!isdefined(var_01) || var_01 == "none") && isdefined(param_00) && param_00 != "none")
{
func_078E(param_00,1);
}
}
//Function Number: 37
func_7CC8(param_00)
{
func_7CC9([param_00]);
}
//Function Number: 38
func_078E(param_00,param_01,param_02)
{
var_03 = lib_0547::func_AAF9(param_00);
var_04 = self.var_AB4A.var_A9E7[var_03];
if(isdefined(var_04))
{
param_00 = var_04.var_5B9F;
}
if(common_scripts\utility::func_562E(param_02))
{
self method_86A5(param_00);
return;
}
if(common_scripts\utility::func_562E(param_01))
{
self switchtoweaponimmediate(param_00);
return;
}
self switchtoweapon(param_00);
}
//Function Number: 39
func_2BA2(param_00)
{
if(!self adsbuttonpressed())
{
return 0;
}
return 1;
}
//Function Number: 40
func_0791(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
if(!isdefined(param_03))
{
param_03 = 1;
}
if(!isdefined(param_04))
{
param_04 = 1;
}
if(!isdefined(param_05))
{
param_05 = 1;
}
if(!param_02 && !param_03 && !param_04 && !param_05)
{
return stricmp(param_00,param_01) == 0;
}
if((param_00 == "none" || param_01 == "none") && stricmp(param_00,param_01) != 0)
{
return 0;
}
var_06 = function_03A5(param_00);
var_07 = function_03A5(param_01);
if(param_04)
{
var_06["weapon"] = lib_0569::func_40BD(var_06["weapon"]);
var_07["weapon"] = lib_0569::func_40BD(var_07["weapon"]);
}
if(param_03)
{
var_06["weapon"] = lib_0547::func_9469(var_06["weapon"]);
var_07["weapon"] = lib_0547::func_9469(var_07["weapon"]);
}
if(param_05)
{
var_06["weapon"] = lib_0547::func_9475(var_06["weapon"]);
var_07["weapon"] = lib_0547::func_9475(var_07["weapon"]);
}
if(param_02)
{
return stricmp(var_06["weapon"],var_07["weapon"]) == 0;
}
param_00 = lib_0547::func_62F(var_06);
param_01 = lib_0547::func_62F(var_07);
return stricmp(param_00,param_01) == 0;
}
//Function Number: 41
func_078A(param_00)
{
if(self hasweapon(param_00))
{
return param_00;
}
var_01 = lib_0547::func_AAF9(param_00);
var_02 = self.var_AB4A.var_A9E7[var_01];
if(isdefined(var_02) && isdefined(var_02.var_5B9F))
{
return var_02.var_5B9F;
}
var_03 = self getweaponslistall();
foreach(var_05 in var_03)
{
if(func_0791(param_00,var_05))
{
return var_05;
}
}
return undefined;
}
//Function Number: 42
func_078B(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_01))
{
param_01 = 0;
}
if(!isdefined(param_02))
{
param_02 = 0;
}
var_04 = self;
if(param_01)
{
var_04 = undefined;
}
if(!isdefined(param_00))
{
return;
}
if(issubstr(param_00,"_pap_zm"))
{
return param_00;
}
var_05 = lib_0547::func_AAF9(param_00,undefined,1);
var_06 = lib_0547::func_9475(var_05) + "_pap_zm";
if(!param_02)
{
if(param_00 == "zom_dlc2_1_zm" || param_00 == "zom_dlc2_2_zm" || param_00 == "zom_dlc2_3_zm")
{
if(!common_scripts\utility::func_3C83("dlc2_melee_packable"))
{
return;
}
if(common_scripts\utility::func_3C83("dlc2_melee_packable") && !common_scripts\utility::func_3C77("dlc2_melee_packable"))
{
return;
}
var_06 = lib_0547::func_9475(param_00) + "hc_zm";
}
}
if(!lib_0547::func_5843(var_06))
{
return;
}
if(!param_02)
{
if(issubstr(param_00,"razergun_zm") && !common_scripts\utility::func_3C77("ripsaw_punch_active"))
{
return;
}
if(issubstr(param_00,"teslagun"))
{
if(!common_scripts\utility::func_3C83("teslagun_punch_active"))
{
return;
}
if(!common_scripts\utility::func_3C77("teslagun_punch_active"))
{
return;
}
}
if(issubstr(param_00,"zom_dlc2_1"))
{
if(!common_scripts\utility::func_3C83("dlc2_melee_packable"))
{
return;
}
if(!common_scripts\utility::func_3C77("dlc2_melee_packable"))
{
return;
}
}
}
var_07 = "pap";
if(isdefined(level.pap_camo_ref_override))
{
var_07 = level.pap_camo_ref_override;
}
if(common_scripts\utility::func_562E(level.iszombiesshotgun))
{
var_08 = lib_0547::func_AAF9(param_00,0,0);
var_09 = function_02FF(var_08,"_zm") + "_mp";
if(isdefined(level.var_A9CB[var_09]) && isdefined(var_04) && isplayer(var_04))
{
var_0A = var_04 getrankedplayerdata(common_scripts\utility::func_46A8(),"weaponBuildKits",var_09,"bossupgrade");
if(common_scripts\utility::func_562E(var_0A) && isdefined(level.loot_pap_camo_ref_override))
{
var_07 = level.loot_pap_camo_ref_override;
}
}
}
var_0B = getitemguidfromref(var_07);
var_0C = [];
var_0D = undefined;
var_0E = undefined;
var_0F = undefined;
if(issubstr(param_00,"classic"))
{
var_0B = getitemguidfromref("chrome");
var_10 = lib_056C::getattachmentforzombieweapon(var_06,"extended_mag");
var_11 = getitemguidfromref(var_10);
var_0C = common_scripts\utility::func_F6F(var_0C,var_11);
}
if(issubstr(param_00,"vintage"))
{
var_0B = getitemguidfromref("chrome");
var_10 = lib_056C::getattachmentforzombieweapon(var_06,"extended_mag_mg42_zm");
var_11 = getitemguidfromref(var_10);
var_0C = common_scripts\utility::func_F6F(var_0C,var_11);
}
if(issubstr(param_00,"m1911"))
{
var_12 = lib_056C::getattachmentforzombieweapon(var_06,"akimbo");
var_13 = getitemguidfromref(var_12);
var_0C = common_scripts\utility::func_F6F(var_0C,var_13);
}
if(!param_01)
{
var_14 = lib_056C::func_4735(var_04,param_00);
if(isdefined(var_14))
{
if(var_14.var_A9F8)
{
var_0D = getweaponconditionid(var_14.var_A9F8);
var_06 = getitemreffromguid(var_14.var_A9F8);
var_06 = function_02FF(var_06,"_mp");
var_06 = var_06 + "_pap_zm";
}
if(var_14.var_7E18)
{
var_0E = var_14.var_7E18;
}
if(var_14.var_297C)
{
var_0F = var_14.var_297C;
}
var_0C = common_scripts\utility::func_F73(var_0C,var_14.var_114C);
}
if(common_scripts\utility::func_562E(param_03) && isdefined(var_14) && isdefined(var_14.var_1EC0))
{
var_0B = var_14.var_1EC0;
}
}
while(var_0C.size < 6)
{
var_0C = common_scripts\utility::func_F6F(var_0C,0);
}
var_15 = maps\mp\gametypes\_class::func_1D66(var_06,var_0C[0],var_0C[1],var_0C[2],var_0C[3],var_0C[4],var_0C[5],var_0D,var_0B,0,var_0E,var_0F,var_04,undefined);
return var_15;
}
//Function Number: 43
func_AB31(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
switch(param_00)
{
case "neck":
case "helmet":
case "head":
return 1;
}
return 0;
}
//Function Number: 44
func_ABD6(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
var_08 = func_43EE(param_01,param_04);
if(func_176D(var_08,8))
{
if(func_AB31(param_07))
{
param_02 = func_0975(1,param_02,param_04,param_07,param_01);
}
else if(param_07 != "none")
{
param_02 = func_0975(-0.2,param_02,param_04,param_07,param_01);
}
}
if(func_176D(var_08,16))
{
if(func_AB31(param_07))
{
param_02 = func_0975(-1,param_02,param_04,param_07,param_01);
}
else if(param_07 != "none")
{
param_02 = func_0975(0.2,param_02,param_04,param_07,param_01);
}
}
if(func_176D(var_08,64))
{
param_02 = param_02 * 1.75;
}
return param_02;
}
//Function Number: 45
func_0975(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_04 method_850B(param_02,param_03);
if(var_05 == 0)
{
return 0;
}
param_01 = param_01 / var_05 * max(var_05 + param_00,0);
return param_01;
}
//Function Number: 46
func_ABD5(param_00,param_01)
{
maps\mp\zombies\_zombies_roles::func_6B84(param_00,param_01);
}
//Function Number: 47
func_ABD7(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
if(isdefined(param_04) && param_04 == "drag_explosive_zombie_zm")
{
param_01 = level.var_ABA1.var_117;
if(!isdefined(param_01) || !isplayer(param_01) || !isdefined(level.var_ABA1.var_9DBF))
{
return;
}
param_04 = level.var_ABA1.var_9DBF;
}
if(!isplayer(param_01) || !isdefined(param_04))
{
return;
}
var_09 = param_01 method_82D5();
if(param_04 == "frag_skull_zm")
{
param_04 = param_01 getcurrentprimaryweapon();
}
if(param_04 == var_09)
{
param_04 = param_01 getcurrentprimaryweapon();
}
var_0A = func_43EE(param_01,param_04);
if(maps\mp\_utility::func_5755(param_03))
{
if(func_176D(var_0A,2))
{
param_01 func_ABD5(20,"rip_and_tear");
}
}
else
{
if(func_176D(var_0A,1))
{
if(func_AB31(param_06))
{
param_01 func_ABD5(10,"head_hunter");
}
}
if(func_176D(var_0A,128))
{
if(lib_054D::func_2EF2())
{
param_01 maps/mp/gametypes/zombies::func_47AE("one_shot_one_kill");
}
}
if(func_176D(var_0A,4))
{
func_9B91(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
}
if(func_176D(var_0A,256))
{
param_01 func_50FA(param_04,self);
}
}
//Function Number: 48
func_176D(param_00,param_01)
{
return param_00 & param_01 != 0;
}
//Function Number: 49
func_43EE(param_00,param_01)
{
var_02 = lib_0547::func_AAF9(param_01,0,1);
var_03 = param_00.var_AC30[var_02];
if(!isdefined(var_03))
{
level.promisenottogiveweapon = 1;
var_04 = lib_056C::func_4735(param_00,var_02);
level.promisenottogiveweapon = undefined;
if(isdefined(var_04))
{
if(var_04.var_A9F8)
{
var_05 = function_031A(var_04.var_A9F8,43);
if(isdefined(var_05))
{
var_03 = int(var_05);
}
else
{
var_03 = 0;
}
param_00.var_AC30[var_02] = var_03;
}
}
}
if(!isdefined(var_03))
{
var_03 = 0;
param_00.var_AC30[var_02] = 0;
}
return var_03;
}
//Function Number: 50
func_9B91(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
var_09 = param_01.var_5BDC;
var_0A = gettime();
if(isdefined(self.var_6730))
{
var_0A = self.var_6730;
}
if(!isdefined(var_09))
{
var_09 = spawnstruct();
param_01.var_5BDC = var_09;
var_09.var_8B34 = [];
}
var_0B = undefined;
foreach(var_0D in var_09.var_8B34)
{
if(param_01 == var_0D.var_356A && var_0A == var_0D.var_2AB8 && lib_054D::func_5574(param_04,var_0D.var_953E))
{
var_0B = var_0D;
break;
}
}
if(!isdefined(var_0B))
{
var_0B = spawnstruct();
var_09.var_8B34[var_09.var_8B34.size] = var_0B;
var_0B.var_356A = param_01;
var_0B.var_2AB8 = var_0A;
var_0B.var_953E = param_04;
var_0B.var_5C = 1;
}
else
{
var_0B.var_5C++;
}
param_01 thread func_1453();
}
//Function Number: 51
func_1453()
{
self notify("efficient_kill");
self endon("death");
self endon("disconnect");
self endon("efficient_kill");
waittillframeend;
while(isdefined(level.var_AB27) && level.var_AB29 > 0)
{
wait 0.05;
}
if(!isdefined(self.var_5BDC))
{
return;
}
foreach(var_01 in self.var_5BDC.var_8B34)
{
if(var_01.var_5C == 2)
{
func_ABD5(50,"efficient");
continue;
}
if(var_01.var_5C > 2)
{
var_02 = var_01.var_5C * 30;
func_ABD5(var_02,"efficient");
}
}
self.var_5BDC = undefined;
}
//Function Number: 52
func_4AAA()
{
self endon("disconnect");
for(;;)
{
self.var_18AD = [];
common_scripts\utility::knock_off_battery("death","begin_last_stand");
}
}
//Function Number: 53
func_50FA(param_00,param_01)
{
var_02 = lib_0547::func_AAF9(param_00,0);
var_03 = self.var_18AD[var_02];
if(!isdefined(var_03))
{
var_03 = 0;
}
var_03++;
if(var_03 >= 150)
{
var_03 = var_03 - 150;
var_04 = anglestoforward(self.var_1D) * 60;
var_05 = getgroundposition(self.var_116 + var_04,16);
var_05 = getclosestpointonnavmesh(var_05,self);
var_06 = navtrace(self.var_116,var_05,self,1);
if(var_06["fraction"] < 1)
{
var_05 = self.var_116 + anglestoforward(self.var_1D);
}
var_07 = maps/mp/gametypes/zombies::func_3B9B(var_05);
maps/mp/gametypes/zombies::func_281C("nuke",var_07,"body_count",1,0);
}
self.var_18AD[var_02] = var_03;
}
//Function Number: 54
func_72C3()
{
return isplayer(self) && (common_scripts\utility::func_562E(self.var_56A5) || common_scripts\utility::func_562E(self.isswitchingtoblimppart)) && self hasweapon("blimp_battery_zm");
}
//Function Number: 55
player_is_holding_baby_statue()
{
return isplayer(self) && self hasweapon("stone_baby_zm");
}
//Function Number: 56
zombies_hit_by_melee_cone(param_00,param_01,param_02)
{
var_03 = self geteye();
var_04 = self geteyeangles();
var_05 = min(90 - param_01 / 2,var_04[0]);
var_06 = anglestoforward((var_05,var_04[1],var_04[2]));
var_07 = func_43F1(var_03,var_06,param_00,param_01,param_02);
return var_07;
}
//Function Number: 57
func_43F1(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_04))
{
param_04 = lib_0547::func_408F();
}
var_05 = [];
var_06 = cos(param_03 / 2);
foreach(var_08 in param_04)
{
var_09 = var_08.var_8302;
var_0A = var_08.var_8303;
var_0B = var_08.var_116 + (0,0,var_09 * 0.5);
var_0C = closestpointonconicsectionofspheretopoint(param_00,-1 * param_01,var_06,param_02,var_0B);
if(distance2dsquared(var_0C,var_0B) > var_0A * var_0A || abs(var_0B[2] - var_0C[2]) > var_09 * 0.5)
{
continue;
}
if(var_08 method_81D7(param_00,self) == 0)
{
continue;
}
var_05[var_05.size] = var_08;
}
return var_05;
}
//Function Number: 58
create_streamed_world_weapon_model(param_00,param_01)
{
var_02 = spawn("weapon_" + param_00,param_01,1);
var_02.var_A9E0 = param_00;
var_02 makeunusable();
var_02 method_86B3(0);
var_02 endon("entitydeleted");
var_02 endon("death");
var_02 endon("streamed_world_weapon_changed");
childthread maps\mp\_utility::func_6F74(::show_streamed_world_weapon_to_player,var_02);
return var_02;
}
//Function Number: 59
change_streamed_world_weapon_model(param_00)
{
var_01 = self;
var_01 method_848E(param_00);
var_01 makeunusable();
var_01.var_A9E0 = param_00;
var_01 notify("streamed_world_weapon_changed");
var_01 endon("entitydeleted");
var_01 endon("death");
var_01 endon("streamed_world_weapon_changed");
childthread maps\mp\_utility::func_6F74(::show_streamed_world_weapon_to_player,var_01);
}
//Function Number: 60
show_streamed_world_weapon_to_player(param_00)
{
var_01 = self;
param_00 endon("entitydeleted");
param_00 endon("death");
param_00 endon("streamed_world_weapon_changed");
var_01 endon("disconnect");
if(var_01 method_8530(param_00.var_A9E0))
{
return;
}
param_00 hidefromclient(var_01);
var_02 = spawn("weapon_" + param_00.var_A9E0,param_00.var_116,1);
var_02.var_A9E0 = param_00.var_A9E0;
var_02 makeunusable();
var_02 method_86B3(0);
var_02 method_8511();
var_01 thread cleanup_streamed_world_weapon(var_02,param_00);
while(!var_01 method_8530(var_02.var_A9E0))
{
wait 0.05;
var_02.var_116 = param_00.var_116;
}
param_00 showtoclient(var_01);
var_02 notify("streamed_world_weapon");
var_02 delete();
}
//Function Number: 61
cleanup_streamed_world_weapon(param_00,param_01)
{
var_02 = self;
param_00 endon("streamed_world_weapon");
common_scripts\utility::func_A70C(var_02,"disconnect",param_01,"entitydeleted",param_01,"death",param_01,"streamed_world_weapon_changed");
param_00 delete();
}