mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
1304 lines
28 KiB
Plaintext
1304 lines
28 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3257.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 41
|
|
* Decompile Time: 26 ms
|
|
* Timestamp: 10/27/2023 12:26:30 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
scripts\mp\agents\zombie\zmb_zombie_agent::registerscriptedagent();
|
|
scripts\mp\agents\zombie_brute\zombie_brute_agent::registerscriptedagent();
|
|
lib_0F79::registerscriptedagent();
|
|
level.agent_funcs["generic_zombie"]["on_damaged"] = ::func_C5CD;
|
|
level.agent_funcs["generic_zombie"]["gametype_on_damage_finished"] = ::func_C5CE;
|
|
level.agent_funcs["generic_zombie"]["gametype_on_killed"] = ::func_C5D2;
|
|
level.var_93A2 = ::scripts\cp\zombies\zombies_spawning::func_9C12;
|
|
level.var_71D7 = ::func_13FA9;
|
|
level.var_71D6 = ::func_13F5D;
|
|
level.var_BCCE["generic_zombie"] = ::func_E7FD;
|
|
level.var_13FA6 = ::func_6720;
|
|
level.var_4BA8 = 0;
|
|
level.var_7088 = ::scripts\cp\_utility::func_78B4;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_6720()
|
|
{
|
|
var_00 = 4096;
|
|
var_01 = [];
|
|
foreach(var_03 in level.var_1647)
|
|
{
|
|
var_04 = 0;
|
|
if(positionwouldtelefrag(var_03.origin))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
foreach(var_06 in level.players)
|
|
{
|
|
if(scripts\common\utility::func_13D90(var_06.origin,var_06.angles,var_03.origin,level.var_46A1["90"]))
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
}
|
|
|
|
if(!var_04)
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
}
|
|
|
|
if(var_01.size == 0)
|
|
{
|
|
var_01 = level.var_1647;
|
|
}
|
|
|
|
return scripts\common\utility::random(var_01);
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_C5CD(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(param_04 != "MOD_SUICIDE")
|
|
{
|
|
if(scripts\mp\_mp_agent::func_9BEA(var_0C,param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\mp\_mp_agent::func_9BEA(var_0C,param_00))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = self;
|
|
}
|
|
|
|
var_0D = func_FF2E(param_01,param_02,param_04,param_05,param_08,var_0C);
|
|
if(!var_0D)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0E = param_04 == "MOD_MELEE";
|
|
var_0F = isdefined(self.var_9E0C) && isdefined(param_05) && !scripts\cp\_weapon::func_9E02(param_05) || param_04 == "MOD_MELEE";
|
|
var_10 = scripts\common\utility::func_9D74(param_04);
|
|
var_11 = isdefined(param_01) && isplayer(param_01);
|
|
var_12 = scripts\cp\_utility::func_9E27(param_05,param_08,param_04,param_01);
|
|
var_13 = (param_01 scripts\cp\_weapon::func_8BD1(param_05,"overclock") || param_01 scripts\cp\_weapon::func_8BD1(param_05,"overclockcp")) && var_10;
|
|
var_14 = scripts\common\utility::istrue(self.var_28E0);
|
|
var_15 = scripts\common\utility::istrue(level.var_9925);
|
|
var_16 = var_12 && var_10 && param_01 scripts\cp\_utility::func_9BA0("headshot_explosion");
|
|
var_17 = param_04 == "MOD_EXPLOSIVE" || param_04 == "MOD_GRENADE_SPLASH";
|
|
var_18 = var_0E && param_01 scripts\cp\_utility::func_9BA0("increased_melee_damage");
|
|
var_19 = 0;
|
|
if(!var_0E && var_11 && !isdefined(param_01.var_AD2C) && param_01 scripts\cp\_utility::func_9BA0("sniper_soft_upgrade"))
|
|
{
|
|
var_19 = param_01 scripts\cp\_utility::func_4626(param_05) == "weapon_sniper";
|
|
}
|
|
|
|
var_1A = scripts\common\utility::istrue(level.var_69FA) && isdefined(param_04) && param_04 == "MOD_UNKNOWN";
|
|
var_1B = var_14 || var_15 || var_1A || var_0F || var_13 || var_16 || var_18 || var_19;
|
|
if(var_10)
|
|
{
|
|
param_01 notify("weapon_hit_enemy",self,param_01);
|
|
}
|
|
|
|
var_1C = isdefined(self.var_9E0C);
|
|
if(scripts\cp\powers\coop_armageddon::func_9DF5(param_05))
|
|
{
|
|
thread scripts\cp\powers\coop_armageddon::func_6F33(param_00.origin,param_06,param_07);
|
|
return;
|
|
}
|
|
else if(isdefined(param_05) && scripts\cp\_weapon::func_9E02(param_05) && !var_0E)
|
|
{
|
|
if(!var_1C)
|
|
{
|
|
self.var_9E0C = 1;
|
|
thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(self);
|
|
}
|
|
|
|
return;
|
|
}
|
|
else if(var_1B)
|
|
{
|
|
if(var_19)
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("sniper_soft_upgrade");
|
|
}
|
|
|
|
param_02 = int(self.maxhealth);
|
|
}
|
|
else
|
|
{
|
|
param_08 = func_FE39(param_01,param_04,param_05,param_08);
|
|
var_1D = level.wave_num;
|
|
var_1E = func_9BF7(param_05,param_04);
|
|
var_1F = scripts\common\utility::istrue(self.var_9B81) && !var_10;
|
|
var_20 = var_0E && param_01 scripts\cp\_utility::func_9BA0("shock_melee_upgrade");
|
|
var_21 = var_12 && param_01 scripts\cp\_utility::func_9BA0("sharp_shooter_upgrade");
|
|
var_22 = var_10 && param_01 scripts\cp\_utility::func_9BA0("bonus_damage_on_last_bullets");
|
|
var_23 = var_10 && param_01 scripts\cp\_utility::func_9BA0("damage_booster_upgrade");
|
|
var_24 = var_10 && isdefined(param_01.var_10932) && param_01.var_10932 == "stun_ammo" || param_01.var_10932 == "combined_ammo";
|
|
var_25 = var_11 && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_boom");
|
|
var_26 = var_11 && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_smack");
|
|
var_27 = func_9B73(param_05);
|
|
if(isdefined(param_02) && isdefined(param_08) && !var_15 && var_10)
|
|
{
|
|
var_28 = lib_0D48::func_D96F(var_0C,param_01,param_02,param_08,param_07);
|
|
if(var_28 <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_02 = var_28;
|
|
}
|
|
|
|
param_02 = func_9830(undefined,param_01,param_02,undefined,param_04,param_05,undefined,undefined,param_08,undefined,undefined,undefined);
|
|
func_FEFA(param_01,var_0C,param_05);
|
|
if(var_11)
|
|
{
|
|
if(var_0E)
|
|
{
|
|
param_02 = int(param_02 * param_01 lib_0CFC::func_CA3A());
|
|
if(var_26)
|
|
{
|
|
param_02 = param_02 + 1500;
|
|
}
|
|
|
|
if(var_27)
|
|
{
|
|
if(param_02 >= self.health)
|
|
{
|
|
var_29 = anglestoforward(param_01.angles);
|
|
var_2A = vectornormalize(var_29) * -100;
|
|
self setvelocity(vectornormalize(self.origin - param_01.origin + var_2A) * 400 + (0,0,10));
|
|
self.do_immediate_ragdoll = 1;
|
|
self.var_4C87 = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_24)
|
|
{
|
|
param_01 thread scripts\cp\zombies\zombie_damage::func_11193(self.origin,self,param_02,param_04);
|
|
}
|
|
|
|
if(var_20 && function_024C(param_05) != "riotshield")
|
|
{
|
|
param_01 thread scripts\cp\zombies\zombie_damage::func_11193(self.origin,self,param_02,"MOD_UNKNOWN",undefined,var_20);
|
|
}
|
|
|
|
if(var_25 && var_17)
|
|
{
|
|
param_02 = int(param_02 * 2);
|
|
}
|
|
}
|
|
|
|
if(var_21)
|
|
{
|
|
param_02 = param_02 * 3;
|
|
}
|
|
|
|
if(var_22)
|
|
{
|
|
var_2B = int(param_01 getweaponammoclip(param_01 getcurrentweapon()) + 1);
|
|
var_2C = weaponclipsize(param_01 getcurrentweapon());
|
|
if(var_2B <= 4)
|
|
{
|
|
param_02 = param_02 * 4;
|
|
}
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_01.var_DF50))
|
|
{
|
|
param_02 = param_02 * 5;
|
|
}
|
|
|
|
if(var_1E)
|
|
{
|
|
param_02 = param_02 * min(2 + var_1D * 0.5,10);
|
|
}
|
|
|
|
if(var_23)
|
|
{
|
|
param_02 = int(param_02 * 2);
|
|
}
|
|
}
|
|
|
|
param_02 = int(min(param_02,self.maxhealth));
|
|
lib_0D5A::func_12D84(param_01,param_02,param_04);
|
|
scripts\cp\_agent_utils::func_D96D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
|
|
scripts\cp\_agent_utils::func_D96B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,var_0C);
|
|
scripts\cp\_agent_utils::func_110A4(param_01,param_02);
|
|
scripts\cp\zombies\zmb_zombies_weapons::func_1094D(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 [[ level.agent_funcs[var_0C.agent_type]["on_damaged_finished"] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,0,param_0A,param_0B);
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_FF2E(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(!isdefined(param_03))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_03 == "iw7_armageddonmeteor_mp")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_9B73(param_03) && param_01 < 10)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_9BF7(param_00,param_01)
|
|
{
|
|
var_02 = param_01 == "MOD_GRENADE_SPLASH" || param_01 == "MOD_GRENADE";
|
|
return var_02 && param_00 == "frag_grenade_zm" || param_00 == "frag_grenade_mp" || param_00 == "throwingknifec4_mp" || param_00 == "gas_grenade_mp" || param_00 == "semtex_mp" || param_00 == "semtex_zm" || param_00 == "c4_mp" || param_00 == "c4_zm" || param_00 == "cluster_grenade_zm";
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_C5D2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
scripts\cp\zombies\zombie_scriptable_states::func_1296F(self);
|
|
if(isplayer(param_01))
|
|
{
|
|
param_01 notify("zombie_killed",self,self.origin,param_04,param_03,param_06);
|
|
}
|
|
|
|
if(!func_9EC6(self))
|
|
{
|
|
func_6563(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
if(isdefined(level.var_C5D3))
|
|
{
|
|
[[ level.var_C5D3 ]](param_01,param_04);
|
|
}
|
|
}
|
|
|
|
param_01 lib_0D59::func_8C9D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
if(isdefined(level.var_108E1))
|
|
{
|
|
[[ level.var_108E1 ]](param_01,param_04);
|
|
}
|
|
|
|
if(isdefined(self.var_BE77))
|
|
{
|
|
level thread [[ level.var_B540 ]](self.origin);
|
|
}
|
|
|
|
if(isdefined(self.var_BE74))
|
|
{
|
|
if(isdefined(level.var_4297))
|
|
{
|
|
var_09 = level [[ level.var_4297 ]](self);
|
|
}
|
|
else
|
|
{
|
|
var_09 = undefined;
|
|
}
|
|
|
|
if(isdefined(level.var_4ADE))
|
|
{
|
|
level notify(level.var_4ADE,self.origin,param_04,var_09);
|
|
}
|
|
}
|
|
|
|
self method_818B();
|
|
if(isdefined(self.anchor))
|
|
{
|
|
self.anchor delete();
|
|
}
|
|
|
|
self.var_4298 = undefined;
|
|
self.var_24CA = undefined;
|
|
self.var_DD16 = undefined;
|
|
self.head_is_exploding = undefined;
|
|
self.var_BE77 = undefined;
|
|
func_D97C(param_01,self,param_06,param_03,param_04);
|
|
func_D95F(param_01);
|
|
scripts\cp\_challenge::func_12DA9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
scripts\cp\_merits::func_D95D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
scripts\cp\_agent_utils::func_4DDB();
|
|
lib_0D48::func_403E(self);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_D97C(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
func_82A2(param_00,param_02,param_03,param_04);
|
|
var_05 = scripts\cp\_agent_utils::func_77D7(param_01);
|
|
var_06 = scripts\cp\_utility::func_7844(param_00);
|
|
if(!isdefined(var_05))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_06))
|
|
{
|
|
scripts\cp\_persistence::func_DDE9(var_06);
|
|
param_00 thread scripts\cp\_vo::try_to_play_vo("killfirm","zmb_comment_vo","low",10,0,0,0,20);
|
|
if(gettime() < level.var_A8B4 + 5000)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_462B("pillage") && scripts\common\utility::istrue([[ level.var_CB5B ]](var_05,self.origin,param_00)))
|
|
{
|
|
level.var_A8B4 = gettime();
|
|
return;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_462B("loot") && isdefined(level.var_B07A))
|
|
{
|
|
[[ level.var_B07A ]](var_05,self.origin,param_00);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_13F43(param_00)
|
|
{
|
|
var_01 = 16384;
|
|
var_02 = 0;
|
|
if(level.var_CC11.size)
|
|
{
|
|
foreach(var_04 in level.var_CC11)
|
|
{
|
|
if(distance2dsquared(var_04.origin,self.origin) < var_01)
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
}
|
|
|
|
if(var_02)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(level.var_12A83.size)
|
|
{
|
|
foreach(var_07 in level.var_12A83)
|
|
{
|
|
if(distance2dsquared(var_07.origin,self.origin) < var_01)
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
}
|
|
|
|
if(var_02)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_D95F(param_00)
|
|
{
|
|
if(!isdefined(self.var_24DA))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in self.var_24DA)
|
|
{
|
|
if(isdefined(var_02.player))
|
|
{
|
|
if(var_02.player == param_00)
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_02.player scripts\cp\_persistence::func_666A("assists",1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_82A2(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_00.team) && self.team == param_00.team)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isplayer(param_00) && !isdefined(param_00.var_222) || !isplayer(param_00.var_222))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = level.agent_definition[scripts\cp\_agent_utils::func_77D7(self)]["reward"];
|
|
if(isdefined(param_02) && param_02 == "MOD_MELEE")
|
|
{
|
|
var_04 = 130;
|
|
}
|
|
|
|
var_05 = 0;
|
|
if(isdefined(param_00.var_222))
|
|
{
|
|
param_00 = param_00.var_222;
|
|
var_05 = 1;
|
|
}
|
|
|
|
if(scripts\cp\_utility::func_9E27(param_03,param_01,param_02,param_00) && !var_05 && scripts\common\utility::func_9D74(param_02))
|
|
{
|
|
var_04 = int(100);
|
|
}
|
|
|
|
func_8373(param_00,var_04,"large",param_01,param_03,param_02);
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_8373(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
param_01 = param_01 * level.var_3B0F;
|
|
if(param_00 scripts\cp\_utility::func_9BA0("extra_sniping_points") && scripts\common\utility::func_9D74(param_05) && param_00 scripts\cp\_utility::func_4626(param_04) == "weapon_sniper")
|
|
{
|
|
param_01 = param_01 + 300;
|
|
param_00 scripts\cp\_utility::func_C151("extra_sniping_points");
|
|
}
|
|
|
|
if(func_FF4B(param_00))
|
|
{
|
|
param_00 scripts\cp\_persistence::func_82F9(param_01,param_02,param_03);
|
|
}
|
|
|
|
if(func_13C21(param_04))
|
|
{
|
|
foreach(var_07 in level.players)
|
|
{
|
|
if(var_07 == param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!var_07 scripts\cp\_utility::is_valid_player())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_07 scripts\cp\_persistence::func_82F9(param_01,param_02,param_03);
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_13F56))
|
|
{
|
|
param_00 scripts\cp\_persistence::give_player_xp(int(param_01));
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_FF4B(param_00)
|
|
{
|
|
if(isplayer(param_00) && scripts\cp\_laststand::player_in_laststand(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_13C21(param_00)
|
|
{
|
|
return isdefined(param_00) && param_00 == "alien_sentry_minigun_4_mp";
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_6563(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
level.var_A97B = self.origin;
|
|
if(isdefined(level.var_D99D))
|
|
{
|
|
self thread [[ level.var_D99D ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_9EC6(param_00)
|
|
{
|
|
if(isdefined(param_00.team))
|
|
{
|
|
return param_00.team == level.var_D437;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_FE39(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_00) && isplayer(param_00) && param_01 != "MOD_MELEE" && param_00 scripts\cp\_utility::func_9BA0("sniper_soft_upgrade") && scripts\cp\_utility::func_4626(param_02) == "weapon_sniper")
|
|
{
|
|
return "head";
|
|
}
|
|
|
|
if(isdefined(param_00) && isplayer(param_00) && param_01 != "MOD_MELEE" && param_00 scripts\cp\_utility::func_9BA0("increased_limb_damage") && func_9C38(param_02,param_03,param_01,param_00))
|
|
{
|
|
return "torso_upper";
|
|
}
|
|
|
|
return param_03;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_FEFA(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_01) && isdefined(param_02) && weaponclass(param_02) == "spread")
|
|
{
|
|
var_03 = "" + gettime();
|
|
if(!isdefined(param_00.var_CA01) || !isdefined(param_00.var_CA01[var_03]))
|
|
{
|
|
param_00.var_CA01 = undefined;
|
|
param_00.var_CA01[var_03] = [];
|
|
}
|
|
|
|
if(!isdefined(param_00.var_CA01[var_03][param_01.var_86BD]))
|
|
{
|
|
param_00.var_CA01[var_03][param_01.var_86BD] = 1;
|
|
return;
|
|
}
|
|
|
|
if(param_00.var_CA01[var_03][param_01.var_86BD] + 1 > 2)
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00.var_CA01[var_03][param_01.var_86BD]++;
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_9830(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(!func_3845(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B))
|
|
{
|
|
return param_02;
|
|
}
|
|
|
|
param_02 = func_EBAC(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_04) && param_04 == "MOD_MELEE")
|
|
{
|
|
if(!func_9B73(param_05))
|
|
{
|
|
param_02 = 150;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_9B73(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
switch(param_00)
|
|
{
|
|
case "iw6_cphcmelee_mp":
|
|
case "iw7_axe_zm_pap2":
|
|
case "iw7_axe_zm_pap1":
|
|
case "iw7_axe_zm":
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_EBAC(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 = scripts\cp\_utility::func_80D8(param_05);
|
|
switch(var_0C)
|
|
{
|
|
case "shredder":
|
|
case "headcutter":
|
|
case "facemelter":
|
|
case "dischord":
|
|
param_02 = max(7500,self.maxhealth / 2);
|
|
break;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_3845(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_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_01.inlaststand))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_01.var_C8A2))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_04 == "MOD_SUICIDE")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_04 == "MOD_UNKNOWN")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_F327(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
if(param_01 == "xm25_mp" && param_00 == "MOD_IMPACT")
|
|
{
|
|
param_02 = 95;
|
|
}
|
|
|
|
if(param_01 == "spider_beam_mp")
|
|
{
|
|
param_02 = param_02 * 15;
|
|
}
|
|
|
|
if(param_01 == "alienthrowingknife_mp" && param_00 == "MOD_IMPACT")
|
|
{
|
|
if(scripts\cp\_damage::func_381F(param_03,0,param_04,param_00,param_01,param_05,param_06,param_07,param_08,param_09))
|
|
{
|
|
param_02 = 20000;
|
|
}
|
|
else if(scripts\cp\_agent_utils::func_77D7(self) != "elite")
|
|
{
|
|
param_02 = 500;
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_6109(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(scripts\common\utility::istrue(scripts\cp\_laststand::player_in_laststand(param_00)))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
switch(param_01)
|
|
{
|
|
case "MOD_GRENADE":
|
|
case "MOD_GRENADE_SPLASH":
|
|
case "MOD_PISTOL_BULLET":
|
|
case "MOD_RIFLE_BULLET":
|
|
case "MOD_EXPLOSIVE":
|
|
case "MOD_IMPACT":
|
|
case "MOD_MELEE":
|
|
if(param_02 == "gas_grenade_mp" || param_02 == "splash_grenade_zm")
|
|
{
|
|
if(isdefined(param_03.var_6E82))
|
|
{
|
|
if(gettime() > param_03.var_6E82)
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
return 1;
|
|
|
|
case "MOD_UNKNOWN":
|
|
if(scripts\common\utility::istrue(param_03.var_9B81) && isdefined(param_03.var_6E82))
|
|
{
|
|
if(gettime() > param_03.var_6E82)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if(!scripts\common\utility::istrue(param_03.var_9B81))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!scripts\common\utility::istrue(param_03.var_B36E))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_C5CE(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C)
|
|
{
|
|
var_0D = scripts\cp\_utility::func_9CEB(param_00);
|
|
if((isdefined(param_01) && isdefined(param_04) && scripts\common\utility::func_9D74(param_04) || scripts\cp\_utility::func_D0C6(param_01,"combined_ammo") && param_04 == "MOD_EXPLOSIVE_BULLET") || param_05 == "poison_ammo_mp")
|
|
{
|
|
if(isplayer(param_01) || isdefined(param_01.var_222) && isplayer(param_01.var_222))
|
|
{
|
|
if(!var_0D)
|
|
{
|
|
param_01 func_3D9D(self,param_00,param_03,param_05,param_04);
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0E = 10 * level.var_3B0F;
|
|
if(isdefined(param_01))
|
|
{
|
|
if(isdefined(param_01.var_CA2F) && param_01.var_CA2F["damagemod"].var_3237 == 2)
|
|
{
|
|
var_0E = var_0E * 2;
|
|
}
|
|
|
|
if(func_6109(param_01,param_04,param_05,self))
|
|
{
|
|
if(param_01 scripts\cp\_utility::func_9BA0("hit_reward_upgrade"))
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("hit_reward_upgrade");
|
|
var_0E = var_0E * 5;
|
|
}
|
|
|
|
param_01 scripts\cp\_persistence::func_82F9(var_0E,"large",param_08);
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_08) && scripts\cp\_utility::func_9E27(param_05,param_08,param_04,param_01))
|
|
{
|
|
if(param_01 scripts\cp\_utility::func_9BA0("armor_after_headshot"))
|
|
{
|
|
var_0F = 25;
|
|
if(isdefined(param_01.var_2C11))
|
|
{
|
|
var_0F = int(param_01.var_2C11 + 25);
|
|
}
|
|
|
|
param_01 notify("enable_armor");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_3D9D(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = param_00 scripts\cp\_utility::func_9CEB(param_01);
|
|
var_06 = param_00 func_FF3A(param_03,param_04,self);
|
|
if(!isdefined(param_00.var_9B51) && isalive(param_00))
|
|
{
|
|
if(scripts\cp\_utility::func_D0C6(self,"combined_ammo") || param_03 == "slayer_ammo_mp")
|
|
{
|
|
var_07 = int(param_00.maxhealth);
|
|
param_00 thread scripts\cp\_utility::func_4D0D(param_00,self,20,var_07,param_04,"slayer_ammo_mp",undefined,"combinedArcane");
|
|
}
|
|
}
|
|
|
|
if(!isdefined(param_00.var_9B51) && !isdefined(param_00.var_9B81) && isalive(param_00))
|
|
{
|
|
if(scripts\cp\_utility::func_D0C6(self,"incendiary_ammo") || param_03 == "incendiary_ammo_mp")
|
|
{
|
|
var_07 = min(param_00.maxhealth * 0.66,1000);
|
|
param_00 thread scripts\cp\_utility::func_4D0D(param_00,self,5,var_07,param_04,"incendiary_ammo_mp",undefined,"burning");
|
|
}
|
|
}
|
|
|
|
if(var_06 && !var_05)
|
|
{
|
|
self.var_11196 = 1;
|
|
param_00 thread func_75FA();
|
|
param_00 thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(param_00);
|
|
param_02 = param_02 | level.var_92CA;
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_75FA()
|
|
{
|
|
self endon("death");
|
|
wait(1);
|
|
self.var_11196 = undefined;
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_9EDB(param_00)
|
|
{
|
|
return isdefined(self.var_CA08) && self.var_CA08;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_FF3A(param_00,param_01,param_02)
|
|
{
|
|
if(func_9EDB())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isalive(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\cp\_agent_utils::func_77D7(self) == "elite" || scripts\cp\_agent_utils::func_77D7(self) == "elite_boss")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9B81))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_02) && isdefined(param_02.var_3B95) && param_02.var_3B95 == "lightning_tower")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(param_02) && isplayer(param_02) && param_01 != "MOD_MELEE")
|
|
{
|
|
var_03 = isdefined(param_00) && param_00 == param_02 getcurrentprimaryweapon();
|
|
return var_03 && param_02 scripts\cp\_utility::func_8BB0();
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_13FA9()
|
|
{
|
|
if(self.entered_playspace)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_8C35 || isdefined(self.var_126CB))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_13D59))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = func_7E31();
|
|
if(!isdefined(var_00))
|
|
{
|
|
iprintlnbold("NO ENTRANCE FOUND FOR ZOMBIE AT POS: " + self.origin);
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_7E31()
|
|
{
|
|
if(isdefined(self.var_4298))
|
|
{
|
|
return self.var_4298;
|
|
}
|
|
|
|
self.var_4298 = scripts\cp\_utility::func_78B4(self.origin);
|
|
return self.var_4298;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_13F5D()
|
|
{
|
|
self endon("death");
|
|
var_00 = func_7E31();
|
|
if(!isdefined(var_00))
|
|
{
|
|
iprintlnbold("NO ENTRANCE FOUND FOR ZOMBIE AT POS: " + self.origin);
|
|
return 0;
|
|
}
|
|
|
|
if(!scripts\common\utility::istrue(self.var_DD16))
|
|
{
|
|
if(!isdefined(self.var_24CA))
|
|
{
|
|
var_01 = lib_0D4D::func_7B4C(var_00);
|
|
if(!var_01.var_C2CF)
|
|
{
|
|
var_01.var_C2CF = 1;
|
|
}
|
|
|
|
self.var_24CA = var_01;
|
|
}
|
|
|
|
self.var_180 = 1;
|
|
self method_8287(32);
|
|
self method_8286(self.var_24CA.origin);
|
|
self waittill("goal_reached");
|
|
self.var_DD16 = 1;
|
|
}
|
|
|
|
while(lib_0D4D::func_664D(var_00))
|
|
{
|
|
if(!isdefined(self.var_24CA))
|
|
{
|
|
var_01 = lib_0D4D::func_7B4C(var_00);
|
|
if(!var_01.var_C2CF)
|
|
{
|
|
var_01.var_C2CF = 1;
|
|
}
|
|
|
|
self.var_24CA = var_01;
|
|
}
|
|
|
|
self method_8287(16);
|
|
self method_8286(self.var_24CA.origin);
|
|
self waittill("goal_reached");
|
|
if(!isdefined(var_00.var_13D36))
|
|
{
|
|
if(isdefined(var_00.var_24C6))
|
|
{
|
|
var_00.var_13D36 = spawn("script_origin",var_00.var_24C6.origin);
|
|
}
|
|
else
|
|
{
|
|
var_00.var_13D36 = spawn("script_origin",var_00.origin + (0,0,20));
|
|
}
|
|
|
|
var_00.var_13D36 setcandamage(1);
|
|
var_00.var_13D36.health = 100000;
|
|
var_00.var_13D36.team = "allies";
|
|
}
|
|
|
|
if(func_FF14())
|
|
{
|
|
func_24BD();
|
|
continue;
|
|
}
|
|
|
|
func_2FB2(var_00);
|
|
}
|
|
|
|
self.var_180 = 0;
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_FF14()
|
|
{
|
|
var_00 = 100;
|
|
self.var_4299 = func_78C1(self);
|
|
if(!isdefined(self.var_4299))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(randomint(100) > var_00)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_101E3()
|
|
{
|
|
var_00 = 55;
|
|
var_01 = self.origin + (0,0,var_00);
|
|
var_02 = self.var_4299.origin + (0,0,var_00);
|
|
return sighttracepassed(var_01,var_02,0,self);
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_78C1(param_00)
|
|
{
|
|
if(!level.current_interaction_structs.size)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_01 = scripts\common\utility::func_782F(param_00.origin,level.players)[0];
|
|
var_02 = scripts\common\utility::getclosest(param_00.origin,level.current_interaction_structs);
|
|
if(!func_9C78(var_01,var_02))
|
|
{
|
|
var_01 = undefined;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_9C78(param_00,param_01)
|
|
{
|
|
var_02 = 2304;
|
|
return distancesquared(param_00.origin,param_01.origin) < var_02;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_24BD()
|
|
{
|
|
self.var_4B26 = self.var_4299;
|
|
lib_0A1B::func_2965(self.var_4B26);
|
|
var_00 = scripts\common\utility::func_13734("attack_hit","attack_miss");
|
|
var_01 = scripts\common\utility::getclosest(self.origin,level.current_interaction_structs);
|
|
if(func_9C78(self.var_4299,var_01))
|
|
{
|
|
lib_0C73::func_5904(self.var_4299,lib_0C73::func_7AD3(),"MOD_IMPACT");
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_2FB2(param_00)
|
|
{
|
|
self.var_4B26 = param_00.var_13D36;
|
|
lib_0A1B::func_2965(self.var_4B26);
|
|
scripts\common\utility::waittill_any_3("attack_hit","attack_miss");
|
|
lib_0D4D::func_DFCB(param_00);
|
|
if(!lib_0D4D::func_664D(param_00))
|
|
{
|
|
if(isdefined(param_00.var_13D36))
|
|
{
|
|
param_00.var_13D36 delete();
|
|
}
|
|
|
|
lib_0A1B::func_2914();
|
|
self.var_4B26 = undefined;
|
|
self.var_180 = 0;
|
|
self.ignoreme = 0;
|
|
self.var_24CA = undefined;
|
|
thread func_A5F6();
|
|
}
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_A5F6()
|
|
{
|
|
self endon("death");
|
|
if(!isdefined(level.var_46A1))
|
|
{
|
|
level.var_46A1 = [];
|
|
}
|
|
|
|
if(!isdefined(level.var_46A1["60"]))
|
|
{
|
|
level.var_46A1["60"] = cos(60);
|
|
}
|
|
|
|
var_00 = 0;
|
|
var_01 = self.origin;
|
|
wait(randomintrange(5,8));
|
|
while(!scripts\common\utility::istrue(self.entered_playspace))
|
|
{
|
|
var_02 = var_01;
|
|
var_01 = self.origin;
|
|
var_03 = 0;
|
|
if(distance2dsquared(var_02,var_01) < 100)
|
|
{
|
|
foreach(var_05 in level.players)
|
|
{
|
|
if(distancesquared(var_05.origin,self.origin) < 4000000)
|
|
{
|
|
if(scripts\common\utility::func_13D90(var_05.origin,var_05.angles,self.origin,level.var_46A1["60"]))
|
|
{
|
|
var_06 = var_05 geteye();
|
|
if(scripts\common\trace::func_DCF1(var_06,self.origin + (0,0,40),self))
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_03)
|
|
{
|
|
wait(2);
|
|
continue;
|
|
}
|
|
|
|
var_00 = 1;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
if(!var_00)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_54CB = 1;
|
|
if(scripts\common\utility::istrue(self.var_B36D) && isdefined(level.var_C20A))
|
|
{
|
|
level.var_C20A--;
|
|
}
|
|
|
|
self dodamage(self.health + 1000,self.origin,self,self,"MOD_SUICIDE");
|
|
}
|
|
|
|
//Function Number: 39
|
|
zombies_should_mutilate(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(isdefined(param_04))
|
|
{
|
|
switch(param_04)
|
|
{
|
|
case "MOD_PROJECTILE_SPLASH":
|
|
case "MOD_GRENADE":
|
|
case "MOD_GRENADE_SPLASH":
|
|
case "MOD_EXPLOSIVE":
|
|
return 1;
|
|
|
|
case "MOD_MELEE":
|
|
if(isdefined(param_01) && param_01 scripts\cp\_utility::has_zombie_perk("perk_machine_smack"))
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
var_09 = weaponclass(param_05);
|
|
if(isdefined(var_09) && var_09 == "spread")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_0A = getweaponbasename(param_05);
|
|
if(isdefined(var_0A))
|
|
{
|
|
switch(var_0A)
|
|
{
|
|
case "iw7_m8_zm":
|
|
case "iw7_kbs_zm":
|
|
case "iw7_chargeshot_zm":
|
|
case "iw7_shredder_zm":
|
|
return 1;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_9C38(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_03))
|
|
{
|
|
if(isdefined(param_03.var_222))
|
|
{
|
|
if(param_03.var_9F == "script_vehicle")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_03.var_9F == "misc_turret")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_03.var_9F == "script_model")
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_03.agent_type))
|
|
{
|
|
if(param_03.agent_type == "dog" || param_03.agent_type == "alien")
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_01 == "left_leg_upper" || param_01 == "right_foot" || param_01 == "left_leg_lower" || param_01 == "right_leg_lower" || param_01 == "left_foot" || param_01 == "right_leg_upper" || param_01 == "right_arm_lower" || param_01 == "left_arm_lower" || param_01 == "right_hand" || param_01 == "left_hand";
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_E7FD(param_00)
|
|
{
|
|
var_01 = scripts\mp\agents\zombie\zmb_zombie_agent::func_378F(param_00);
|
|
if(level.var_5274 - level.var_4B6E == 1)
|
|
{
|
|
if(var_01 != "sprint")
|
|
{
|
|
return "run";
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
} |