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

1802 lines
38 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1321.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 60
* Decompile Time: 84 ms
* Timestamp: 10/27/2023 3:25:12 AM
*******************************************************************/
//Function Number: 1
func_52F4(param_00)
{
if(getdvarint("4017",0) || function_0367())
{
return;
}
level.var_611["care_package_axis_destroy"] = loadfx("vfx/props/care_package_explode_axis");
level.var_611["care_package_allies_destroy"] = loadfx("vfx/props/care_package_explode_allies");
level.var_611["care_package_allies_beacon"] = loadfx("vfx/lights/usa_carepackage_beacon");
level.var_611["care_package_axis_beacon"] = loadfx("vfx/lights/ger_carepackage_beacon");
level.var_611["care_package_landed"] = loadfx("vfx/smoke/care_package_landed");
level.var_5A7D["killstreak_carepackage_grenade_mp"] = "carepackage";
level.var_5A7D["killstreak_carepackage_grenade_axis_mp"] = "carepackage";
level.var_5A7D["killstreak_emergency_carepackage_grenade_mp"] = "emergency_carepackage";
level.var_5A7D["killstreak_emergency_carepackage_grenade_axis_mp"] = "emergency_carepackage";
level.var_5A7D["carepackage_crate_mp"] = "carepackage";
level.var_80B7["carepackage"] = 0;
level.var_80B8["carepackage"] = 0;
level.var_80B6["carepackage"] = 0;
level.var_80B9["carepackage"] = 1;
level.var_80B5["carepackage"] = 0;
level.var_80B7["raid_carepackage"] = 0;
level.var_80B8["raid_carepackage"] = 0;
level.var_80B6["raid_carepackage"] = 0;
level.var_80B9["raid_carepackage"] = 1;
level.var_80B5["raid_carepackage"] = 0;
level.var_80B7["emergency_carepackage"] = 0;
level.var_80B8["emergency_carepackage"] = 0;
level.var_80B6["emergency_carepackage"] = 0;
level.var_80B9["emergency_carepackage"] = 1;
level.var_80B5["emergency_carepackage"] = 0;
level.var_80B7["zm_carepackage"] = 0;
level.var_80B8["zm_carepackage"] = 0;
level.var_80B6["zm_carepackage"] = 0;
level.var_80B9["zm_carepackage"] = 1;
level.var_80B5["zm_carepackage"] = 0;
func_8A0E();
if(isdefined(param_00))
{
func_27D5(param_00);
}
else
{
func_27D4();
}
addstreakhintstringentries();
}
//Function Number: 2
func_27D4()
{
level.var_275F = [];
func_09A9("uav",120,"lowEndStreak",&"MP_UAV_PICKUP");
func_09A9("counter_uav",105,"lowEndStreak",&"MP_COUNTER_UAV_PICKUP");
func_09A9("fighter_strike",100,"lowEndStreak",&"MP_FIGHTER_STRIKE_PICKUP");
func_09A9("fritzx",90,"lowEndStreak",&"MP_FRITZX_PICKUP");
func_09A9("flamethrower",80,"lowEndStreak",&"MP_FLAMETHROWER_PICKUP");
func_09A9("mortar_strike",75,"lowEndStreak",&"MP_MORTAR_STRIKE_PICKUP");
func_09A9("missile_strike",70,"highEndStreak",&"MP_MISSILE_STRIKE_PICKUP");
func_09A9("paratroopers",30,"highEndStreak",&"MP_PARATROOPERS_PICKUP");
func_09A9("airstrike",25,"highEndStreak",&"MP_AIRSTRIKE_PICKUP");
func_09A9("plane_gunner",10,"highEndStreak",&"MP_PLANE_GUNNER_PICKUP");
if(getdvarint("1258",0) == 0 && getdvarint("2803",0) == 0)
{
func_09A9("flak_gun",50,"lowEndStreak",&"MP_FLAK_GUN_PICKUP");
func_09A9("firebomb",45,"highEndStreak",&"MP_FIREBOMB_PICKUP");
}
func_4019();
}
//Function Number: 3
addstreakhintstringentries()
{
game["strings"]["v2_rocket_hint"] = &"MP_V2_ROCKET_PICKUP";
game["strings"]["tripwire_hint"] = &"MP_TRIPWIRE_PICKUP";
}
//Function Number: 4
func_27D5(param_00)
{
var_01 = 0;
var_02 = 1;
var_03 = 2;
var_04 = 3;
foreach(var_06 in param_00)
{
func_09A9(var_06[var_01],var_06[var_02],var_06[var_03],var_06[var_04]);
}
func_4019();
}
//Function Number: 5
func_4019()
{
level.var_274B["all"] = 0;
foreach(var_01 in level.var_275F)
{
var_02 = var_01.var_944E;
var_03 = var_01.var_9451;
if(!isdefined(level.var_274B[var_01.var_9451]))
{
level.var_274B[var_01.var_9451] = 0;
}
level.var_274B[var_03] = level.var_274B[var_03] + var_01.var_7A8F;
level.var_275F[var_02].var_9452 = level.var_274B[var_03];
level.var_274B["all"] = level.var_274B["all"] + var_01.var_7A8F;
level.var_275F[var_02].var_C36 = level.var_274B["all"];
}
}
//Function Number: 6
func_09A9(param_00,param_01,param_02,param_03)
{
if(getdvarint("scorestreak_enabled_" + param_00) == 0)
{
return;
}
level.var_275F[param_00] = spawnstruct();
level.var_275F[param_00].var_944E = param_00;
level.var_275F[param_00].var_9451 = param_02;
level.var_275F[param_00].var_7A8F = param_01;
level.var_275F[param_00].var_C36 = param_01;
level.var_275F[param_00].var_9452 = param_01;
if(isdefined(param_03))
{
game["strings"][param_00 + "_hint"] = param_03;
}
}
//Function Number: 7
func_8A0E()
{
var_00 = getentarray("care_package","targetname");
if(!isdefined(var_00) || var_00.size == 0)
{
return;
}
level.var_1FFC = getent(var_00[0].var_1A2,"targetname");
foreach(var_02 in var_00)
{
var_02 func_2D30(0,0,0);
}
}
//Function Number: 8
func_464D(param_00,param_01)
{
if(function_0367())
{
return "ammo";
}
var_03 = undefined;
if(isdefined(param_00) && param_00 != "all")
{
while(!isdefined(var_03) || common_scripts\utility::func_F79(param_01,var_03))
{
var_04 = randomint(level.var_274B[param_00]);
foreach(var_06 in level.var_275F)
{
if(var_06.var_9451 != param_00)
{
continue;
}
var_03 = var_06.var_944E;
if(var_06.var_9452 > var_04)
{
break;
}
}
}
}
else
{
var_04 = randomint(level.var_274B["all"]);
foreach(var_06 in level.var_275F)
{
var_03 = var_06.var_944E;
if(var_06.var_C36 > var_04)
{
break;
}
}
}
return var_03;
}
//Function Number: 9
func_7032(param_00,param_01,param_02,param_03,param_04)
{
param_00 endon("death");
param_00 endon("crashing");
if(isdefined(param_01))
{
param_01 endon("disconnect");
param_01 endon("joined_team");
}
lib_0527::func_A6E4(param_00,func_445E(param_02),param_01);
level notify("airdropInbound");
param_00.var_6F2A = 1;
var_05 = func_464E();
var_06 = [];
for(var_07 = 0;var_07 < func_45BE(param_02);var_07++)
{
var_08 = func_3493(param_00,param_01,func_448E(param_02,var_05[var_07]),param_02,var_06,param_03,param_04);
var_06[var_06.size] = var_08;
if(var_08 == "uav")
{
var_06[var_06.size] = "counter_uav";
}
else if(var_08 == "counter_uav")
{
var_06[var_06.size] = "uav";
}
wait(randomfloatrange(0.075,0.15));
}
}
//Function Number: 10
func_3493(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
lib_0527::func_34B0(param_00.var_116,param_00);
var_07 = param_00.var_116 + (randomintrange(-3,3),randomfloatrange(-3,3),-5);
return func_4AAE(param_01,var_07,param_03,param_02,param_04,param_05,param_06);
}
//Function Number: 11
func_45BE(param_00)
{
switch(param_00)
{
case "zm_carepackage":
case "raid_carepackage":
case "carepackage":
return 1;
case "emergency_carepackage":
return 3;
}
}
//Function Number: 12
func_448E(param_00,param_01)
{
switch(param_00)
{
case "zm_carepackage":
case "raid_carepackage":
case "carepackage":
return "all";
case "emergency_carepackage":
return param_01;
}
}
//Function Number: 13
func_464E()
{
return common_scripts\utility::func_F92(["lowEndStreak","lowEndStreak","highEndStreak"]);
}
//Function Number: 14
func_445E(param_00)
{
switch(param_00)
{
case "zm_carepackage":
case "raid_carepackage":
case "carepackage":
return 50;
case "emergency_carepackage":
return 200;
}
}
//Function Number: 15
func_9E38(param_00,param_01)
{
if(maps\mp\_utility::func_5668() && !function_0367())
{
return 0;
}
if(isdefined(self.var_1A7) && self.var_1A7 == "allies")
{
var_02 = "killstreak_carepackage_grenade_mp";
}
else
{
var_02 = "killstreak_carepackage_grenade_axis_mp";
}
if(param_01 == "emergency_carepackage")
{
if(isdefined(self.var_1A7) && self.var_1A7 == "allies")
{
var_02 = "killstreak_emergency_carepackage_grenade_mp";
}
else
{
var_02 = "killstreak_emergency_carepackage_grenade_axis_mp";
}
}
var_03 = func_7470(var_02,param_00,param_01);
if(!isdefined(var_03) || !var_03)
{
return 0;
}
maps\mp\_matchdata::func_5E9A(param_01,self.var_116);
return 1;
}
//Function Number: 16
func_7470(param_00,param_01,param_02)
{
self endon("death");
self endon("disconnect");
self endon("carepackage_grenade_switch");
thread func_742D(param_00);
for(;;)
{
self waittill("grenade_fire",var_03,var_04);
if(isdefined(var_04) && var_04 == param_00)
{
self notify("grenade_info_processing");
thread func_1E84(var_03,param_01,param_02);
return 1;
}
}
}
//Function Number: 17
func_1E84(param_00,param_01,param_02)
{
param_00 waittill("explode",var_03);
var_04 = lib_0527::func_4570();
lib_0527::func_9302(param_01,[var_03],[var_04],param_02);
}
//Function Number: 18
func_742D(param_00)
{
self endon("death");
self endon("disconnect");
self endon("grenade_info_processing");
var_01 = self getcurrentweapon();
while(var_01 == param_00 || maps\mp\_utility::func_568F(var_01) || maps\mp\_utility::isuseweapon(var_01))
{
self waittill("weapon_change",var_01);
}
if(maps\mp\_utility::func_5740(var_01))
{
self.var_5992 = var_01;
}
self notify("carepackage_grenade_switch");
}
//Function Number: 19
func_4AAE(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_06))
{
var_07 = param_06;
}
else
{
var_07 = func_464D(param_04,param_05);
}
thread func_8A0F(param_00,param_01,var_07,param_02,param_05);
return var_07;
}
//Function Number: 20
func_8A0F(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_00 func_27D3(param_00,param_02,param_01,undefined,0,param_03,param_04);
if(!isdefined(param_00.var_3448))
{
param_00.var_3448 = [];
}
param_00.var_3448[param_00.var_3448.size] = var_05;
if(!isdefined(level.all_drop_crates))
{
level.all_drop_crates = [];
}
level.all_drop_crates[level.all_drop_crates.size] = var_05;
if(level.all_drop_crates.size > 18)
{
level.all_drop_crates[0] func_2D30(1,1,1);
}
var_05 thread func_2358(param_00);
var_06 = spawn("script_model",var_05 gettagorigin("tag_origin") + (0,0,-10));
var_06.var_1D = (0,180,0);
var_06.visualteam = param_00.var_1A7;
if(isdefined(param_04))
{
var_06.visualteam = param_04;
}
if(var_06.visualteam == "allies" || var_06.visualteam == "zm")
{
var_06 setmodel("usa_carepackage_parachute_anim");
}
else
{
var_06 setmodel("ger_carepackage_parachute_anim");
}
var_06.var_1A7 = param_00.var_1A7;
var_07 = spawn("script_model",var_06.var_116);
var_07.var_1D = var_06.var_1D;
var_07 setmodel("ger_carepackage_parachute");
var_07 setcandamage(1);
var_07 method_805C();
var_07 method_8449(var_06);
var_05.var_1D = var_06 gettagangles("TAG_CRATE");
var_05.var_116 = var_06 gettagorigin("TAG_CRATE");
var_05 method_8449(var_06,"TAG_CRATE");
var_05.var_6E4A = var_06;
var_05.flag_wait = var_07;
if(isdefined(var_05.var_5A2C))
{
var_05.var_5A2C linkto(var_06,"tag_origin",(0,0,250),(90,0,0));
var_05.var_5A2C.var_5A32 = gettime();
}
var_06 thread func_64B8();
var_06 scriptmodelplayanim("carepackage_parachute_deploy");
wait(1.75);
if(!isdefined(var_06) || !isdefined(var_05))
{
return;
}
var_06.var_2D6A = 1;
if(isdefined(var_05.var_6E4A))
{
var_06 scriptmodelplayanim("carepackage_parachute_loop");
}
if(maps\mp\_utility::func_585F() && isdefined(level.zombiekillstreaksenabled) && level.zombiekillstreaksenabled)
{
level notify("zombies_crate_spawned",var_05);
}
var_06 thread func_63BB(var_05,var_06);
var_07 thread func_63BA(var_06,var_05);
var_05 thread func_6376(param_00);
var_05 thread func_2745();
var_05 thread func_2752(param_02,param_00);
var_05 thread func_74BA();
}
//Function Number: 21
func_2358(param_00)
{
level endon("death");
self waittill("death");
if(isdefined(param_00) && isdefined(param_00.var_3448))
{
param_00.var_3448 = common_scripts\utility::func_FA0(param_00.var_3448);
}
if(isdefined(level.all_drop_crates))
{
level.all_drop_crates = common_scripts\utility::func_FA0(level.all_drop_crates);
}
}
//Function Number: 22
func_64B8()
{
self endon("death");
self endon("detach");
lib_0378::func_8D74("ks_carepackage_parachute");
for(;;)
{
if(!isdefined(self.var_2D6A) || !self.var_2D6A)
{
self moveto(self.var_116 + (0,0,-45),0.05);
}
else
{
self moveto(self.var_116 + (0,0,-20),0.05);
}
wait 0.05;
}
}
//Function Number: 23
func_63BA(param_00,param_01)
{
level endon("game_ended");
param_00 endon("detach");
if(function_0367())
{
for(;;)
{
self waittill("damage",var_02,var_03);
if(var_02 == 1)
{
break;
}
}
}
else
{
common_scripts\utility::func_A732("damage","death");
}
param_00 thread func_2E45(param_01,1);
}
//Function Number: 24
func_63BB(param_00,param_01)
{
self endon("detach");
param_00 endon("death");
param_01 endon("death");
var_02 = undefined;
for(;;)
{
var_03 = param_01 gettagorigin("tag_origin");
var_04 = (var_03[0],var_03[1],var_03[2] - 1000);
var_05 = var_03;
var_06 = bullettrace(var_03,var_04,1,param_00);
if(var_06["fraction"] <= 0.5)
{
thread func_2E45(param_00,0);
break;
}
if(isdefined(var_05) && isdefined(var_02) && var_05 == var_02)
{
break;
}
var_02 = var_05;
wait 0.05;
}
}
//Function Number: 25
func_2E45(param_00,param_01)
{
var_02 = 2.666667;
if(!isdefined(param_00) || !isdefined(self))
{
return;
}
if(isdefined(param_00.var_34A3) && param_00.var_34A3)
{
return;
}
self notify("detach");
if(isdefined(param_00.flag_wait))
{
param_00.flag_wait delete();
}
param_00.var_34A3 = 1;
self method_8278("carepackage_parachute_detach");
wait(0.2);
if(param_00.visualteam == "allies")
{
playfxontag(common_scripts\utility::func_44F5("care_package_allies_beacon"),param_00,"TAG_FX");
}
else
{
playfxontag(common_scripts\utility::func_44F5("care_package_axis_beacon"),param_00,"TAG_FX");
}
param_00 unlink();
if(isdefined(param_00.var_5A2C))
{
param_00.var_5A2C unlink();
param_00.var_5A2C thread func_5A2E(param_00);
}
if(!function_0367())
{
param_00 clonebrushmodeltoscriptmodel(level.var_1FFC);
}
if(function_0367() && param_01)
{
param_00 func_2D30(1,1,1);
}
else
{
var_03 = 500;
if(maps\mp\_utility::func_579B())
{
var_03 = 100;
}
param_00 physicslaunchserver((0,0,0),(0,0,1000),3000,var_03);
}
var_04 = 1;
wait(var_02 - 0.2 - var_04);
self setmaterialscriptparam(1,1,0);
if(self.visualteam == "allies")
{
self setmodel("usa_carepackage_parachute_anim_fade");
}
else
{
self setmodel("ger_carepackage_parachute_anim_fade");
}
self setmaterialscriptparam(1,0,var_04);
wait(var_04);
self delete();
}
//Function Number: 26
func_74BA()
{
self endon("death");
self waittill("physics_impact",var_00,var_01,var_02,var_03);
lib_0378::func_8D74("ks_carepackage_firstImpact");
playfx(common_scripts\utility::func_44F5("care_package_landed"),var_00,var_01);
if(function_0367())
{
self.var_5AFA = 1;
}
thread func_720C();
}
//Function Number: 27
func_720C()
{
self endon("physics_finished");
self waittill("physics_impact",var_00,var_01,var_02,var_03);
lib_0380::func_6844("ks_carepackage_physics",undefined,self);
playfx(common_scripts\utility::func_44F5("care_package_landed"),var_00,var_01);
}
//Function Number: 28
func_2745()
{
if(!isdefined(self))
{
return;
}
self endon("physics_finished");
self endon("death");
var_00 = 0;
var_01 = self.var_116;
for(;;)
{
wait 0.05;
if(!isdefined(self))
{
return;
}
var_02 = distancesquared(var_01,self.var_116);
if(var_02 < 56.25)
{
var_00++;
}
else
{
var_00 = 0;
}
var_01 = self.var_116;
}
}
//Function Number: 29
func_0F30(param_00,param_01)
{
var_02 = 300;
var_03 = 100;
var_04 = 1250;
var_05 = vectornormalize(param_01 - param_00.var_116);
var_06 = var_05[0] * var_02;
var_07 = var_05[1] * var_02;
var_08 = -1 * var_05[1] * var_04;
var_09 = var_05[0] * var_04;
self physicssetvelocityserver((var_06,var_07,var_03),(var_08,var_09,0));
}
//Function Number: 30
func_6376(param_00)
{
level endon("game_ended");
self endon("death");
self endon("physics_finished");
if(maps\mp\_utility::func_579B() || !isdefined(param_00))
{
return;
}
var_01 = self.var_116;
for(;;)
{
var_02 = self gettagorigin("tag_weapon");
if(distancesquared(var_01,var_02) > 100)
{
foreach(var_04 in level.var_744A)
{
if((var_04.var_1A7 != "spectator" && var_04.var_1A7 != self.var_1A7) || isdefined(param_00) && var_04 == param_00)
{
if(var_04 istouching(self))
{
thread func_0F30(var_04,var_02);
if(isdefined(param_00))
{
var_04 dodamage(150,var_02,param_00,self,"MOD_PROJECTILE","carepackage_crate_mp");
}
self notify("hit_player");
}
}
}
}
var_01 = var_02;
wait 0.05;
}
}
//Function Number: 31
func_2752(param_00,param_01)
{
self endon("death");
self waittill("physics_finished");
self.var_34A3 = 0;
thread func_5A5F(param_00);
if(!function_0367())
{
if(maps\mp\_utility::func_585F() && isdefined(level.zombie_crate_timeout_callback))
{
level thread [[ level.zombie_crate_timeout_callback ]](self);
}
else
{
level thread func_34B2(self);
}
}
var_02 = getentarray("trigger_hurt","classname");
foreach(var_04 in var_02)
{
if(self istouching(var_04))
{
func_2D30();
return;
}
}
if(isdefined(self.var_117) && abs(self.var_116[2] - self.var_117.var_116[2]) > 4000)
{
func_2D30();
return;
}
var_06 = spawnstruct();
var_06.var_2AA8 = ::func_64EB;
var_06.var_9AC2 = ::func_64EC;
thread maps\mp\_movers::func_4A27(var_06);
thread func_275D();
}
//Function Number: 32
func_64EB(param_00)
{
func_2D30(1,1);
}
//Function Number: 33
func_64EC(param_00)
{
return func_1FFA(param_00) && func_1FFB(param_00);
}
//Function Number: 34
func_1FFA(param_00)
{
return !isdefined(self.var_1A5) || !isdefined(param_00.var_1A5) || self.var_1A5 != "care_package" || param_00.var_1A5 != "care_package";
}
//Function Number: 35
func_1FFB(param_00)
{
return !isdefined(self.var_1A5) || !isdefined(param_00.var_1FFE) || self.var_1A5 != "care_package" || !param_00.var_1FFE;
}
//Function Number: 36
func_275D()
{
var_00 = getnodesinradiussorted(self.var_116,300,0,300);
foreach(var_02 in function_02D1())
{
if(!isalive(var_02))
{
continue;
}
if(var_02 istouching(self))
{
foreach(var_04 in var_00)
{
if(distancesquared(var_04.var_116,self.var_116) > 10000)
{
var_02 setorigin(var_04.var_116,1);
var_00 = common_scripts\utility::func_F93(var_00,var_04);
break;
}
}
}
}
}
//Function Number: 37
func_27D3(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_03))
{
param_03 = (0,0,0);
}
if(!isdefined(param_04))
{
param_04 = 1;
}
var_07 = spawn("script_model",param_02);
var_07.var_1D = param_03;
var_07.var_28D5 = 0;
var_07.var_A22B = 0;
if(function_0367())
{
var_07.var_1A7 = "any";
}
else
{
var_07.var_1A7 = param_00.var_1A7;
}
if(isdefined(param_00))
{
var_07.var_117 = param_00;
}
else
{
var_07.var_117 = undefined;
}
var_07.visualteam = "any";
if(isdefined(param_06))
{
var_07.visualteam = param_06;
}
else if(isdefined(param_00))
{
var_07.visualteam = param_00.var_1A7;
}
var_07.var_944E = param_01;
var_07.var_8F52 = param_05;
var_07.var_1A5 = "care_package";
var_07.var_3009 = spawn("script_model",var_07.var_116);
var_07.var_65E1 = ::func_2D30;
if(var_07.visualteam == "any")
{
var_07 setmodel("ger_carepackage_crate");
var_07.var_3009 setmodel("ger_carepackage_crate");
playfxontag(common_scripts\utility::func_44F5("care_package_axis_beacon"),var_07,"TAG_FX");
var_07.visualteam = "axis";
}
else if(var_07.visualteam == "zm")
{
var_07 setmodel("zbw_carepackage_crate");
var_07.var_3009 setmodel("zbw_carepackage_crate");
playfxontag(common_scripts\utility::func_44F5("care_package_axis_beacon"),var_07,"TAG_FX");
var_07.visualteam = "zm";
}
else
{
var_08 = maps\mp\gametypes\_teams::func_46C6(var_07.visualteam);
var_07 setmodel(var_08);
var_07.var_3009 setmodel(var_08);
if(var_07.visualteam == "axis")
{
playfxontag(common_scripts\utility::func_44F5("care_package_axis_beacon"),var_07,"TAG_FX");
}
else
{
playfxontag(common_scripts\utility::func_44F5("care_package_allies_beacon"),var_07,"TAG_FX");
}
}
var_07.var_3009 linkto(var_07,"tag_origin",(0,0,0),(0,0,0));
var_07.var_3009 notsolid();
var_07.var_54F5 = 0;
if(param_04)
{
var_07 clonebrushmodeltoscriptmodel(level.var_1FFC);
}
var_07.var_5A2C = spawn("script_model",var_07.var_116 + (0,0,250));
var_07.var_5A2C setscriptmoverkillcam("script_entity");
var_07.var_5A2C method_80B1();
return var_07;
}
//Function Number: 38
func_5A2E(param_00)
{
param_00 endon("death");
param_00 endon("hit_player");
param_00 endon("physics_finished");
self endon("death");
var_01 = (0,0,250);
self.var_116 = param_00.var_116 + var_01;
var_02 = param_00.var_116;
var_03 = 0;
for(;;)
{
var_04 = param_00.var_116 - var_02;
if(length(var_04) > 0.01)
{
var_05 = vectornormalize(var_04);
var_06 = var_05 * -250;
if(var_03 < 1)
{
var_07 = vectorlerp(var_01,var_06,var_03);
var_03 = var_03 + 0.05;
}
else
{
var_07 = var_07;
}
self.var_116 = param_00.var_116 + var_07;
}
var_02 = param_00.var_116;
wait 0.05;
}
}
//Function Number: 39
func_275A(param_00)
{
if(function_0367())
{
if(self.var_116[2] >= 90)
{
playfxontag(level.var_611["care_package_hit"],self,"tag_origin");
common_scripts\utility::func_F93(level.var_1FFD,self);
setomnvar("ui_fge_carepackages_remaining",level.var_1FFD.size);
func_2D30(1,1,1);
}
else
{
var_01 = spawn("trigger_radius",self.var_116 + (0,0,-1),0,160,128);
var_02 = maps\mp\gametypes\_gameobjects::func_2837("neutral",var_01,[self],(0,0,100));
var_02 maps\mp\gametypes\_gameobjects::func_C30("enemy");
var_02 maps\mp\gametypes\_gameobjects::func_8A5A(10);
var_02 maps\mp\gametypes\_gameobjects::func_8A59(&"MP_SECURING_CRATE");
var_02.var_6ABC = ::func_6AC0;
var_02.var_6AFA = ::func_6AFD;
level.var_76FD = 200;
level.var_76FA = 5;
self.var_321B = var_02;
self hudoutlineenableforclients(level.var_744A,2,0);
if(isdefined(level.var_320F))
{
self.var_320E = spawnfx(level.var_320F,self.var_116);
}
self notify("crate_start_countdown");
return;
}
}
self makeusable();
if(self.var_1A7 == "any")
{
var_03 = maps\mp\gametypes\_gameobjects::func_45A9();
objective_add(var_03,"invisible",(0,0,0));
objective_position(var_03,self.var_116);
objective_state(var_03,"active");
function_01D1(var_03,"waypoint_empty_icon");
function_036F(var_03,"scorestreak_minimap_care_package_crate");
function_0370(var_03,maps\mp\gametypes\_gameobjects::func_446B("friendly"));
objective_team(var_03,"none");
self.var_698E = var_03;
}
else
{
if(level.var_984D || isdefined(self.var_117))
{
var_03 = maps\mp\gametypes\_gameobjects::func_45A9();
objective_add(var_03,"invisible",(0,0,0));
objective_position(var_03,self.var_116);
objective_state(var_03,"active");
function_01D1(var_03,"waypoint_empty_icon");
function_036F(var_03,"scorestreak_minimap_care_package_crate");
function_0370(var_03,maps\mp\gametypes\_gameobjects::func_446B("friendly"));
if(!level.var_984D && isdefined(self.var_117))
{
objective_playerteam(var_03,self.var_117 getentitynumber());
}
else if(level.var_3FDC == "infect")
{
objective_team(var_03,"allies");
}
else
{
objective_team(var_03,self.var_1A7);
}
self.var_698E = var_03;
}
if(isdefined(self.var_117))
{
var_03 = maps\mp\gametypes\_gameobjects::func_45A9();
objective_add(var_03,"invisible",(0,0,0));
objective_position(var_03,self.var_116);
objective_state(var_03,"active");
function_01D1(var_03,"waypoint_empty_icon");
function_036F(var_03,"scorestreak_minimap_care_package_crate");
function_0370(var_03,maps\mp\gametypes\_gameobjects::func_446B("enemy"));
if(!level.var_984D && isdefined(self.var_117))
{
objective_playerenemyteam(var_03,self.var_117 getentitynumber());
}
else
{
objective_team(var_03,level.var_6C63[self.var_1A7]);
}
self.var_698D = var_03;
}
}
self.var_5022 = var_02;
func_8A21(var_02);
}
//Function Number: 40
func_8A21(param_00,param_01)
{
if(self.var_1A7 == "any")
{
foreach(var_03 in level.var_985B)
{
if(isdefined(param_00) && isarray(param_00))
{
func_869F(var_03,param_00);
continue;
}
maps\mp\_entityheadicons::func_869E(var_03,param_00,(0,0,25),14,14,undefined,undefined,undefined,undefined,undefined,0,"tag_weapon",param_01);
}
return;
}
var_05 = self.var_944E;
if(level.var_984D)
{
if(isdefined(param_00) && isarray(param_00))
{
func_869F(self.var_1A7,param_00);
return;
}
maps\mp\_entityheadicons::func_869E(self.var_1A7,param_00,(0,0,25),14,14,undefined,undefined,undefined,undefined,undefined,0,"tag_weapon",param_01);
return;
}
if(isdefined(self.var_117))
{
if(isdefined(param_00) && isarray(param_00))
{
func_869F(self.var_117,param_00);
return;
}
maps\mp\_entityheadicons::func_869E(self.var_117,param_00,(0,0,25),14,14,undefined,undefined,undefined,undefined,undefined,0,"tag_weapon",param_01);
return;
}
}
//Function Number: 41
func_869F(param_00,param_01)
{
var_02 = 10;
var_03 = 0;
self.var_5010 = [];
foreach(var_05 in param_01)
{
self.var_5010[var_05] = common_scripts\utility::func_8FFC();
self.var_5010[var_05] maps\mp\_entityheadicons::func_869E(param_00,var_05,(0,0,20 + var_03 * var_02),14,14,undefined,undefined,undefined,undefined,"tag_weapon",0);
var_03++;
}
}
//Function Number: 42
func_6AC0(param_00,param_01)
{
if(!isdefined(self.var_7450))
{
self.var_7450 = 1;
return;
}
self.var_7450++;
}
//Function Number: 43
func_6AFD(param_00,param_01,param_02)
{
if(!param_02)
{
self.var_28D5 = 0;
self.var_7450--;
return;
}
var_03 = self.var_9AC3["allies"];
foreach(var_05 in var_03)
{
var_05.var_721C thread maps\mp\gametypes\_missions::func_7750("ch_hq_aagun");
}
self.var_A582[0] notify("captured",param_01);
}
//Function Number: 44
func_2744()
{
self endon("captured");
while(isdefined(self))
{
self waittill("trigger",var_00);
thread func_11C3(var_00);
}
}
//Function Number: 45
preventactionslotspam()
{
self method_8309(0);
common_scripts\utility::func_A716("death","game_ended","disconnect","attemptCaptureEnd");
self method_8309(1);
}
//Function Number: 46
func_11C3(param_00)
{
if(param_00 method_83B8())
{
return;
}
if(!param_00 isonground() && !func_A7A0(param_00))
{
return;
}
if(!func_A276(param_00))
{
return;
}
if(level.var_3FDC == "infect" && isdefined(param_00.var_179) && param_00.var_179 == "axis")
{
return;
}
if(maps\mp\_utility::func_579B() || maps\mp\_utility::func_585F())
{
var_01 = 500;
}
else
{
var_01 = 3000;
if(isdefined(self.var_117))
{
if(param_00 == self.var_117)
{
var_01 = 500;
}
}
else if(param_00.var_1A7 == self.var_1A7)
{
var_01 = 500;
}
}
param_00.var_56A1 = 1;
param_00 thread preventactionslotspam();
var_02 = func_2836();
var_03 = var_02 func_A213(param_00,var_01,self);
if(isdefined(var_02))
{
var_02 delete();
}
if(isdefined(param_00))
{
param_00.var_56A1 = 0;
}
if(!var_03)
{
param_00 notify("attemptCaptureEnd");
return;
}
self notify("captured",param_00);
wait(0.2);
param_00 notify("attemptCaptureEnd");
}
//Function Number: 47
func_A7A0(param_00)
{
if(param_00 isonground())
{
return 0;
}
var_01 = param_00.var_116;
var_02 = gettime();
while(isdefined(param_00) && maps\mp\_utility::func_57A0(param_00) && !param_00 isonground() && var_01 == param_00.var_116 && param_00 usebuttonpressed())
{
var_03 = gettime() - var_02;
if(var_03 >= 200)
{
return 1;
}
wait 0.05;
}
return 0;
}
//Function Number: 48
func_A276(param_00)
{
var_01 = param_00 getcurrentprimaryweapon();
if(maps\mp\_utility::func_579B() && issubstr(var_01,"flamethrower") || common_scripts\utility::func_73F5(param_00) && !maps\mp\_utility::playerhaskillstreak(param_00,"basic_training_serum"))
{
param_00 iclientprintlnbold(&"RAIDS_HAVE_AIRDROP_ITEM");
return 0;
}
if(issubstr(var_01,"turrethead") || issubstr(var_01,"flamethrower") || issubstr(var_01,"carepackage"))
{
return 1;
}
if(!param_00 maps\mp\killstreaks\_killstreaks::func_1F6E())
{
return 0;
}
if(isdefined(param_00.var_20CC) && !param_00 maps\mp\killstreaks\_killstreaks::func_1F6E())
{
return 0;
}
return 1;
}
//Function Number: 49
func_5A5F(param_00)
{
self endon("death");
var_01 = isdefined(self.var_117) && (self.var_117 maps\mp\_utility::func_649("specialty_unwrapper") || self.var_117 maps\mp\_utility::func_649("specialty_improvedstreaks")) && !maps\mp\_utility::func_579B();
if(maps\mp\_utility::func_585F() || level.var_3FDC == "infect")
{
var_01 = 0;
}
var_02 = undefined;
if(isdefined(game["strings"][param_00 + "_hint"]))
{
var_02 = game["strings"][param_00 + "_hint"];
}
else
{
var_02 = &"PLATFORM_GET_KILLSTREAK";
}
if(!maps\mp\_utility::func_585F())
{
func_275A(maps\mp\killstreaks\_killstreaks::func_4533(param_00));
}
if(isdefined(self.var_56C5) && self.var_56C5)
{
self waittill("physics_finished");
}
if(maps\mp\_utility::func_585F() && isdefined(level.zombiekillstreaksenabled) && level.zombiekillstreaksenabled)
{
if(isdefined(level.zombiecratecapturethink))
{
self thread [[ level.zombiecratecapturethink ]]();
}
}
else
{
thread func_2744();
var_03 = undefined;
if(var_01)
{
var_04 = &"MP_PACKAGE_REROLL";
self settertiaryhintstring(var_04);
self sethintstringvisibleonlytoowner(1);
thread func_2750();
}
self setcursorhint("HINT_NOICON");
self sethintstring(var_02);
self setsecondaryhintstring(&"MP_CARE_PACKAGE_PICKUP");
self sethintstring2toenemyteam(1);
if(level.var_3FDC == "infect")
{
self setsecondaryhintstring(&"INFECT_NO_CAPTURE_CRATE");
self sethintstring2toenemyteam(1);
}
}
for(;;)
{
self waittill("captured",var_05);
if(function_0367())
{
level.var_2758++;
common_scripts\utility::func_F93(level.var_1FFD,self);
setomnvar("ui_fge_carepackages_secured",level.var_2758);
setomnvar("ui_fge_carepackages_remaining",level.var_1FFD.size);
foreach(var_05 in level.var_744A)
{
if(var_05.var_572A)
{
continue;
}
var_05 luinotifyeventextraplayer(&"delete_supply_drop_countdown",1,self);
}
}
else if(maps\mp\_utility::func_585F())
{
if(isdefined(level.zombiecarepackageusefunc))
{
var_05 [[ level.zombiecarepackageusefunc ]](self);
}
continue;
}
else
{
if(isdefined(self.var_117))
{
if(var_05 == self.var_117)
{
if(isdefined(self.var_8F52))
{
if(self.var_8F52 == "carepackage" || self.var_8F52 == "raid_carepackage")
{
var_05 maps\mp\gametypes\_missions::func_7750("ch_streak_carepackage");
}
else if(self.var_8F52 == "emergency_carepackage")
{
var_05 maps\mp\gametypes\_missions::func_7750("ch_streak_emergencycare");
}
}
}
else if(!level.var_984D || var_05.var_1A7 != self.var_1A7)
{
var_05 thread maps\mp\_events::func_4D4F(self.var_117);
if(isdefined(level.hijackeventfunc))
{
self [[ level.hijackeventfunc ]]();
}
}
else
{
lib_0468::func_A1A("sharepackage",self.var_117,undefined,undefined,undefined);
self.var_117 thread maps\mp\_events::func_8AD6();
}
}
if(isdefined(self.visualteam))
{
var_05.raidcarepackageteam = self.visualteam;
}
lib_0380::func_6840("scavenger_pack_pickup",var_05);
var_08 = undefined;
if(maps\mp\_utility::func_579B())
{
if(var_05.var_1A7 == game["attackers"])
{
var_08 = "attacker_" + self.var_944E;
}
else
{
var_08 = "defender_" + self.var_944E;
}
}
var_09 = var_05 maps\mp\killstreaks\_killstreaks::func_45A5(self.var_944E,0);
var_05 thread maps\mp\gametypes\_hud_message::func_5A78(self.var_944E,undefined,undefined,var_09,var_08);
var_05 thread maps\mp\killstreaks\_killstreaks::func_478D(self.var_944E,0,0,self.var_117);
var_05 lib_0468::func_A28("packageCapped");
}
func_2D30(1);
}
}
//Function Number: 50
func_2750()
{
self.var_6DDE = 0;
self.var_6DDF = 0;
while(!level.var_3F9D && isdefined(self))
{
if(maps\mp\_utility::func_57A0(self.var_117))
{
var_00 = self.var_117 getusableentity();
if(isdefined(var_00) && var_00 == self && self.var_117 usebuttonpressed())
{
self.var_6DDE++;
}
else if(self.var_6DDE > 0)
{
if(self.var_6DDE < 5)
{
if(self.var_6DDF == 1)
{
self notify("package_double_tap");
var_01 = self.var_944E;
var_02 = 0;
while(self.var_944E == var_01 && var_02 < 100)
{
var_02++;
self.var_944E = func_464D();
}
var_03 = game["strings"][self.var_944E + "_hint"];
if(!isdefined(var_03))
{
var_03 = &"PLATFORM_GET_KILLSTREAK";
}
self sethintstring(var_03);
self settertiaryhintstring("");
self.var_5022 = maps\mp\killstreaks\_killstreaks::func_4533(self.var_944E);
func_8A21(self.var_5022);
lib_0380::func_6840("scavenger_pack_pickup",self.var_117);
return 1;
}
else
{
self.var_6DDF = 1;
thread func_97F9();
}
}
self.var_6DDE = 0;
}
}
wait 0.05;
}
}
//Function Number: 51
func_97F9()
{
level endon("game_ended");
self endon("death");
self endon("package_double_tap");
wait(0.2);
self.var_6DDF = 0;
}
//Function Number: 52
func_A213(param_00,param_01,param_02)
{
if(isplayer(param_00))
{
param_00 playerlinkto(self);
}
else
{
param_00 linkto(self);
}
param_00 common_scripts\utility::func_602();
thread func_A215(param_00);
self.var_28D5 = 0;
self.var_54F5 = 1;
self.var_A22B = 0;
if(isplayer(param_00))
{
param_00 thread func_6F82(self,param_01,param_02);
}
var_03 = func_A214(param_00,param_01);
if(!isdefined(self))
{
return 0;
}
self notify("useHoldThinkLoopDone");
self.var_54F5 = 0;
self.var_28D5 = 0;
return var_03;
}
//Function Number: 53
func_A215(param_00)
{
param_00 endon("death");
common_scripts\utility::knock_off_battery("death","captured","useHoldThinkLoopDone");
if(isalive(param_00))
{
param_00 common_scripts\utility::func_616();
if(param_00 islinked())
{
param_00 unlink();
}
}
}
//Function Number: 54
func_6F82(param_00,param_01,param_02)
{
self endon("disconnect");
self setclientomnvar("ui_use_bar_text",1);
self setclientomnvar("ui_use_bar_start_time",int(gettime()));
var_03 = -1;
while(maps\mp\_utility::func_57A0(self) && isdefined(param_00) && param_00.var_54F5 && !level.var_3F9D)
{
if(var_03 != param_00.var_A22B)
{
if(param_00.var_28D5 > param_01)
{
param_00.var_28D5 = param_01;
}
if(param_00.var_A22B > 0)
{
var_04 = int(param_02.var_116[0]);
var_05 = int(param_02.var_116[1]);
var_06 = int(param_02.var_116[2] + 25);
self luinotifyevent(&"carepackage_icon_world_position",3,var_04,var_05,var_06);
var_07 = gettime();
var_08 = param_00.var_28D5 / param_01;
var_09 = var_07 + 1 - var_08 * param_01 / param_00.var_A22B;
self setclientomnvar("ui_use_bar_end_time",int(var_09));
self setclientomnvar("ui_mp_carepackage_scorestreak",maps\mp\_utility::func_453F(param_02.var_944E));
self setclientomnvar("ui_mp_carepackage_team",maps\mp\_utility::func_46D4(param_02.var_1A7));
if(isdefined(param_02.var_117))
{
self setclientomnvar("ui_mp_carepackage_owner",param_02.var_117 getentitynumber());
}
param_02 func_8A21(param_02.var_5022,self);
}
var_03 = param_00.var_A22B;
}
wait 0.05;
}
if(isdefined(param_02))
{
param_02 func_8A21(param_02.var_5022);
}
self setclientomnvar("ui_use_bar_end_time",0);
}
//Function Number: 55
func_A214(param_00,param_01)
{
while(!level.var_3F9D && isdefined(self) && maps\mp\_utility::func_57A0(param_00) && param_00 usebuttonpressed() && self.var_28D5 < param_01)
{
self.var_28D5 = self.var_28D5 + self.var_A22B * 50;
if(!self.var_A22B)
{
self.var_A22B = 1;
}
if(self.var_28D5 >= param_01)
{
return maps\mp\_utility::func_57A0(param_00);
}
wait 0.05;
}
return 0;
}
//Function Number: 56
func_2836()
{
var_00 = spawn("script_origin",self.var_116);
var_00.var_28D5 = 0;
var_00.var_A22B = 0;
var_00.var_54F5 = 0;
var_00 thread func_2D57(self);
return var_00;
}
//Function Number: 57
func_2D57(param_00)
{
self endon("death");
param_00 waittill("death");
self delete();
}
//Function Number: 58
func_2D30(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = 1;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
if(!isdefined(param_02))
{
param_02 = 1;
}
if(isdefined(self.var_698E))
{
maps\mp\_utility::func_68B(self.var_698E);
}
if(isdefined(self.var_698D))
{
maps\mp\_utility::func_68B(self.var_698D);
}
if(isdefined(self.var_5A2C))
{
self.var_5A2C delete();
}
if(isdefined(self.var_6DB1))
{
self.var_6DB1 delete();
}
if(isdefined(self.var_6C62))
{
self.var_6C62 delete();
}
if(isdefined(self.var_3009))
{
self.var_3009 delete();
}
if(param_00 && self.visualteam == "axis" || self.visualteam == "zm")
{
playfx(common_scripts\utility::func_44F5("care_package_axis_destroy"),self.var_116,anglestoforward(self.var_1D));
}
if(param_00 && self.visualteam == "allies")
{
playfx(common_scripts\utility::func_44F5("care_package_allies_destroy"),self.var_116,anglestoforward(self.var_1D));
}
if(param_01 && self.visualteam == "allies")
{
lib_0380::func_6842("ks_carepackage_open_allies",undefined,self.var_116);
}
if(param_01 && self.visualteam == "axis" || self.visualteam == "zm")
{
lib_0380::func_6842("ks_carepackage_open_axis",undefined,self.var_116);
}
if(isdefined(self.var_5010))
{
foreach(var_04 in self.var_5010)
{
var_04 delete();
}
}
if(param_02 && self.visualteam == "axis" || self.visualteam == "zm")
{
thread func_27DF(self.var_116,self.var_1D);
}
if(function_0367() && isdefined(self.var_321B))
{
if(isdefined(self.var_320E))
{
self.var_320E delete();
}
if(isdefined(self.var_321B.var_9D65))
{
self.var_321B.var_9D65 delete();
}
self.var_321B maps\mp\gametypes\_gameobjects::func_2D58();
}
self delete();
}
//Function Number: 59
func_34B2(param_00)
{
level endon("game_ended");
param_00 endon("death");
maps\mp\gametypes\_hostmigration::func_A6F5(90);
while(param_00.var_28D5 != 0)
{
wait(1);
}
param_00 func_2D30(1,1);
}
//Function Number: 60
func_27DF(param_00,param_01)
{
var_02 = spawn("script_model",param_00);
var_03 = "ger_carepackage_crate_chunks";
if(maps\mp\_utility::func_585F() && self.visualteam == "zm")
{
var_03 = "zbw_carepackage_crate_chunks";
}
var_02 setmodel(var_03);
var_02.var_1D = param_01;
var_02 method_805B();
wait 0.05;
physicsexplosionsphere(param_00,100,80,0.6);
wait(2);
var_02 delete();
}