mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-28 02:17:56 -05:00
1948 lines
40 KiB
Plaintext
1948 lines
40 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\cp\zombies\_powerups.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 78
|
|
* Decompile Time: 2987 ms
|
|
* Timestamp: 10/27/2023 12:23:44 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_9670()
|
|
{
|
|
func_DD64();
|
|
func_96F6();
|
|
func_96F7();
|
|
func_96F5();
|
|
level thread func_E1E6();
|
|
level thread func_3DD5();
|
|
level thread func_D7A1();
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_D7A1()
|
|
{
|
|
var_00 = getarraykeys(level.var_163F);
|
|
for(;;)
|
|
{
|
|
level waittill("connected",var_01);
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(scripts\common\utility::istrue(level.var_163F[var_03]))
|
|
{
|
|
if(isdefined(level.var_D762[var_03]))
|
|
{
|
|
thread [[ level.var_D762[var_03] ]](var_01);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_96F6()
|
|
{
|
|
level._effect["pickup"] = loadfx("vfx/iw7/core/zombie/powerups/vfx_zom_powerup_pickup.vfx");
|
|
level._effect["pickup_fnfmod"] = loadfx("vfx/iw7/core/zombie/powerups/vfx_zd_powerup_pickup.vfx");
|
|
level._effect["big_explo"] = loadfx("vfx/iw7/_requests/coop/vfx_nuke_explosion_01.vfx");
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_96F5()
|
|
{
|
|
if(!isdefined(level.var_163F))
|
|
{
|
|
level.var_163F = [];
|
|
}
|
|
|
|
level.var_163F["instakill"] = 0;
|
|
level.var_163F["double_money"] = 0;
|
|
level.var_163F["fire_sale"] = 0;
|
|
level.var_163F["infinite_ammo"] = 0;
|
|
level.var_163F["infinite_grenades"] = 0;
|
|
level.var_D762["instakill"] = ::func_20AC;
|
|
level.var_D762["double_money"] = ::func_20A3;
|
|
level.var_D762["infinite_ammo"] = ::func_20AA;
|
|
level.var_D762["infinite_grenades"] = ::func_20AB;
|
|
level.var_D762["fire_sale"] = ::func_20A5;
|
|
if(!isdefined(level.var_D761))
|
|
{
|
|
level.var_D761 = 500;
|
|
}
|
|
|
|
if(!isdefined(level.var_D79E))
|
|
{
|
|
level.var_D79E = randomintrange(2000,3000);
|
|
}
|
|
|
|
if(!isdefined(level.var_D79F))
|
|
{
|
|
level.var_D79F = 5;
|
|
}
|
|
|
|
if(!isdefined(level.var_D79D))
|
|
{
|
|
level.var_D79D = 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_EC22))
|
|
{
|
|
level.var_EC22 = level.var_D79E;
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_3DD5()
|
|
{
|
|
level waittill("regular_wave_starting");
|
|
for(;;)
|
|
{
|
|
foreach(var_01 in level.players)
|
|
{
|
|
if(!scripts\common\utility::istrue(var_01.var_3E06))
|
|
{
|
|
var_01.var_3E06 = 1;
|
|
level.var_EC22 = level.var_EC22 + level.var_D761;
|
|
if(var_01 scripts\cp\_utility::func_9BA0("more_power_up_drops"))
|
|
{
|
|
level.var_D79E = level.var_D79E - 5;
|
|
}
|
|
}
|
|
}
|
|
|
|
level waittill("player_spawned");
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_96F7()
|
|
{
|
|
scripts\common\utility::flag_init("zombie_drop_powerups");
|
|
scripts\common\utility::flag_init("fire_sale");
|
|
scripts\common\utility::flag_init("canFiresale");
|
|
scripts\common\utility::flag_init("explosive_armor");
|
|
scripts\common\utility::flag_init("force_drop_max_ammo");
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_E1E6()
|
|
{
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
level waittill("spawn_wave_done");
|
|
level.var_D79D = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_DD64()
|
|
{
|
|
level.var_B07F = [];
|
|
level.var_B07B = [];
|
|
level.var_B07D = [];
|
|
level.var_B07E = [];
|
|
if(isdefined(level.var_D763))
|
|
{
|
|
var_00 = level.var_D763;
|
|
}
|
|
else
|
|
{
|
|
var_00 = "cp/zombies/zombie_loot.csv";
|
|
}
|
|
|
|
for(var_01 = 1;var_01 <= 100;var_01++)
|
|
{
|
|
var_02 = func_113C5(var_00,var_01,2);
|
|
if(scripts\cp\_utility::func_9BCC(var_02))
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_03 = [];
|
|
var_03["weights"] = func_45F6(func_113C5(var_00,var_01,3));
|
|
var_03["weight_sum"] = func_7D76(var_03["weights"]);
|
|
var_04 = strtok(func_113C5(var_00,var_01,4)," ");
|
|
var_03["contents"] = [];
|
|
foreach(var_08, var_06 in var_04)
|
|
{
|
|
var_07 = [];
|
|
var_07["value"] = var_06;
|
|
var_07["last_time"] = 0;
|
|
var_03["contents"][var_08] = var_07;
|
|
}
|
|
|
|
level.var_B07F[var_02] = var_03;
|
|
}
|
|
|
|
for(var_01 = 101;var_01 <= 150;var_01++)
|
|
{
|
|
var_09 = func_113C5(var_00,var_01,2);
|
|
if(scripts\cp\_utility::func_9BCC(var_09))
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_0A = func_113C5(var_00,var_01,3);
|
|
if(!isdefined(level._effect[var_0A]))
|
|
{
|
|
level._effect[var_0A] = loadfx(var_0A);
|
|
}
|
|
|
|
level.var_B07B[var_09] = var_0A;
|
|
var_0B = func_113C5(var_00,var_01,1);
|
|
level.var_B07E[var_09] = var_0B;
|
|
}
|
|
|
|
for(var_01 = 101;var_01 <= 150;var_01++)
|
|
{
|
|
var_09 = func_113C5(var_00,var_01,2);
|
|
if(scripts\cp\_utility::func_9BCC(var_09))
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_0C = func_113C5(var_00,var_01,4);
|
|
if(scripts\cp\_utility::func_9BCC(var_0C))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_B07D[var_09] = var_0C;
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_45F6(param_00)
|
|
{
|
|
param_00 = strtok(param_00," ");
|
|
var_01 = [];
|
|
for(var_02 = 0;var_02 < param_00.size;var_02++)
|
|
{
|
|
var_01[var_02] = float(param_00[var_02]);
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_7D76(param_00)
|
|
{
|
|
var_01 = 0;
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_01 = var_01 + var_03;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 11
|
|
drop_loot(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(param_02 == "none")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
param_00 = getclosestpointonnavmesh(param_00);
|
|
var_06 = scripts\common\utility::istrue(param_03);
|
|
var_07 = func_4918(param_00);
|
|
if(!isdefined(var_07))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_07.fnf_consumable_active = 0;
|
|
foreach(var_09 in level.players)
|
|
{
|
|
if(var_09 scripts\cp\_utility::func_9BA0("temporal_increase"))
|
|
{
|
|
var_07.fnf_consumable_active = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_07.var_457C = param_02;
|
|
var_0B = func_7AB9(var_07);
|
|
var_07.var_763D = var_0B;
|
|
var_0C = (0,0,0);
|
|
if(isdefined(param_01) && param_01 scripts\cp\_utility::func_9BA0("more_power_up_drops"))
|
|
{
|
|
param_01 scripts\cp\_utility::func_C151("more_power_up_drops");
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
level.var_D79E = level.var_D79E * 1.14;
|
|
level.var_EC22 = param_04 + level.var_D79E;
|
|
level.var_D79D++;
|
|
level.var_A8B4 = gettime();
|
|
}
|
|
|
|
if(!is_in_active_volume(param_00) && loot_fly_to_player_enabled())
|
|
{
|
|
param_00 = func_BCB7(var_07);
|
|
var_07 thread func_B07C();
|
|
var_06 = 1;
|
|
}
|
|
else
|
|
{
|
|
param_00 = param_00 + (0,0,50);
|
|
if(scripts\common\utility::istrue(var_07.fnf_consumable_active))
|
|
{
|
|
var_07.fnffx = spawnfx(level._effect["powerup_additive_fx"],param_00 + (0,0,-10));
|
|
}
|
|
|
|
var_07.var_7542 = spawnfx(scripts\common\utility::getfx(var_0B),param_00);
|
|
if(isdefined(var_0C))
|
|
{
|
|
var_07.var_7542.angles = var_0C;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
var_07.var_222 = param_01;
|
|
}
|
|
else
|
|
{
|
|
var_07.var_222 = level.players[0];
|
|
}
|
|
|
|
var_07 notify("activate");
|
|
if(!var_06)
|
|
{
|
|
if(scripts\common\utility::istrue(var_07.fnf_consumable_active))
|
|
{
|
|
triggerfx(var_07.fnffx);
|
|
var_07.fnffx method_82EC();
|
|
}
|
|
|
|
triggerfx(var_07.var_7542);
|
|
var_07.var_7542 method_82EC();
|
|
var_07 thread func_B07C();
|
|
}
|
|
|
|
var_07 thread func_B086(var_07);
|
|
var_07 thread func_B096(var_07);
|
|
var_0D = func_7A38(param_02);
|
|
if(isdefined(var_0D) && scripts\common\utility::istrue(param_05))
|
|
{
|
|
func_12E16(var_0D);
|
|
}
|
|
|
|
level thread func_410D(var_07);
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 12
|
|
loot_fly_to_player_enabled()
|
|
{
|
|
if(scripts\common\utility::istrue(level.disable_loot_fly_to_player))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_BCB7(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
param_00.var_7542 = spawn("script_model",param_00.origin + (0,0,50));
|
|
param_00.var_7542 setmodel("tag_origin");
|
|
wait(0.1);
|
|
if(scripts\common\utility::istrue(param_00.fnf_consumable_active))
|
|
{
|
|
playfxontag(level._effect["powerup_additive_fx"],param_00.var_7542,"tag_origin");
|
|
}
|
|
|
|
playfxontag(scripts\common\utility::getfx(param_00.var_763D),param_00.var_7542,"tag_origin");
|
|
var_01 = scripts\common\utility::getclosest(param_00.origin,level.players);
|
|
var_02 = distance(param_00.origin,var_01.origin);
|
|
var_03 = 300;
|
|
var_04 = var_02 / var_03;
|
|
if(var_04 < 0.05)
|
|
{
|
|
var_04 = 0.05;
|
|
}
|
|
|
|
var_05 = getclosestpointonnavmesh(scripts\common\utility::func_5D14(var_01.origin,32,-100)) + (0,0,50);
|
|
param_00.var_7542 moveto(var_05,var_04);
|
|
param_00.var_7542 waittill("movedone");
|
|
param_00 dontinterpolate();
|
|
param_00.origin = param_00.var_7542.origin;
|
|
return param_00.origin;
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_410D(param_00)
|
|
{
|
|
param_00 scripts\common\utility::waittill_any_timeout_1(get_loot_time_out(),"picked_up");
|
|
if(scripts\common\utility::istrue(param_00.fnf_consumable_active))
|
|
{
|
|
playfx(level._effect["pickup_fnfmod"],param_00.origin + (0,0,50));
|
|
}
|
|
else
|
|
{
|
|
playfx(level._effect["pickup"],param_00.origin + (0,0,50));
|
|
}
|
|
|
|
if(isdefined(param_00.var_7542))
|
|
{
|
|
param_00.var_7542 delete();
|
|
}
|
|
|
|
if(isdefined(param_00.fnffx))
|
|
{
|
|
param_00.fnffx delete();
|
|
}
|
|
|
|
wait(0.5);
|
|
param_00.fnf_consumable_active = 0;
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 delete();
|
|
}
|
|
|
|
param_00 notify("loot_deleted");
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_B07C()
|
|
{
|
|
self endon("death");
|
|
self endon("picked_up");
|
|
self endon("loot_deleted");
|
|
var_00 = get_loot_time_out() - 5;
|
|
wait(var_00);
|
|
for(var_01 = 0;var_01 < 5;var_01++)
|
|
{
|
|
wait(0.5);
|
|
self.var_7542 delete();
|
|
wait(0.5);
|
|
var_02 = func_7AB9(self);
|
|
var_03 = scripts\common\utility::getfx(var_02);
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self.var_7542 = spawnfx(var_03,self.origin + (0,0,50));
|
|
self.var_7542.angles = (0,0,0);
|
|
wait(0.1);
|
|
triggerfx(self.var_7542);
|
|
self.var_7542 method_82EC();
|
|
}
|
|
|
|
if(isdefined(self) && isdefined(self.var_7542))
|
|
{
|
|
self.var_7542 delete();
|
|
}
|
|
|
|
if(isdefined(self) && isdefined(self.fnffx))
|
|
{
|
|
self.fnffx delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
get_loot_time_out()
|
|
{
|
|
if(isdefined(level.loot_time_out))
|
|
{
|
|
return level.loot_time_out;
|
|
}
|
|
|
|
return 30;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_7A38(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = "kill_generic_zombie";
|
|
}
|
|
|
|
var_02 = 0;
|
|
var_03 = level.var_B07F[param_01]["contents"].size;
|
|
for(var_02 = 0;var_02 < var_03;var_02++)
|
|
{
|
|
if(level.var_B07F[param_01]["contents"][var_02]["value"] == param_00)
|
|
{
|
|
return var_02;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_B978(param_00)
|
|
{
|
|
self endon("loot_deleted");
|
|
level endon("game_ended");
|
|
while(isdefined(param_00) && isdefined(param_00.health) && param_00.health >= 1)
|
|
{
|
|
level waittill("attack_hit",var_01,var_02);
|
|
if(param_00 != var_02)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00.health = param_00.health - 50;
|
|
}
|
|
|
|
self notify("picked_up");
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_4918(param_00)
|
|
{
|
|
var_01 = scripts\common\utility::func_5D14(param_00,32,-64);
|
|
var_02 = spawn("trigger_radius",var_01,0,32,76);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_7AB9(param_00)
|
|
{
|
|
if(!isdefined(level.var_B07B[param_00.var_457C]))
|
|
{
|
|
return "vfx_loot_ace_hearts";
|
|
}
|
|
|
|
return level.var_B07B[param_00.var_457C];
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_B096(param_00)
|
|
{
|
|
param_00 endon("loot_deleted");
|
|
var_01 = param_00 scripts\common\utility::waittill_any_timeout_1(get_loot_time_out(),"picked_up");
|
|
if(var_01 == "picked_up")
|
|
{
|
|
thread func_D980(param_00.var_222,param_00.var_457C,param_00,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_B086(param_00)
|
|
{
|
|
param_00 endon("loot_deleted");
|
|
wait(0.2);
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(!isplayer(var_01))
|
|
{
|
|
wait(0.25);
|
|
continue;
|
|
}
|
|
|
|
param_00 notify("picked_up");
|
|
var_01 playlocalsound("zmb_powerup_activate");
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_D980(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = param_01;
|
|
param_01 = strtok(param_01,"_");
|
|
var_05 = param_01[0];
|
|
var_06 = param_01[1];
|
|
var_07 = gettime();
|
|
var_08 = int(level.var_B07E[var_04]);
|
|
var_09 = 1;
|
|
func_56C3(0);
|
|
switch(var_05)
|
|
{
|
|
case "power":
|
|
level thread [[ level.var_D743 ]](var_04,var_07);
|
|
break;
|
|
|
|
case "fire":
|
|
if(isdefined(level.var_6D28))
|
|
{
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
var_06 = int(var_06) * level.temporal_increase;
|
|
}
|
|
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_firesale","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_fire_sale");
|
|
level thread [[ level.var_6D28 ]](var_04,int(var_06),var_07);
|
|
}
|
|
break;
|
|
|
|
case "grenade":
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
var_06 = int(var_06) * level.temporal_increase;
|
|
}
|
|
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_infinitegrenades","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_infinite_grenades");
|
|
level thread func_82DA(var_04,int(var_06),var_07);
|
|
break;
|
|
|
|
case "infinite":
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
var_06 = int(var_06) * level.temporal_increase;
|
|
}
|
|
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_infiniteammo","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_infinite_ammo");
|
|
level thread func_82D9(var_04,int(var_06),var_07);
|
|
break;
|
|
|
|
case "upgrade":
|
|
if(isdefined(level.var_12F74))
|
|
{
|
|
param_02 playsound("zmb_powerup_wpn_upgrade");
|
|
level thread [[ level.var_12F74 ]]();
|
|
}
|
|
break;
|
|
|
|
case "kill":
|
|
if(scripts\common\utility::istrue(level.var_72AA))
|
|
{
|
|
var_09 = 0;
|
|
level thread func_A5C6(param_02,int(var_06));
|
|
}
|
|
else
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_nuke","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_nuke");
|
|
level thread func_A5C6(param_02,int(var_06));
|
|
}
|
|
break;
|
|
|
|
case "cash":
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_doublemoney","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_dbl_cash");
|
|
level thread func_EBA5(param_00,var_04,int(var_06),var_07);
|
|
break;
|
|
|
|
case "instakill":
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
var_06 = int(var_06) * level.temporal_increase;
|
|
}
|
|
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_instakill","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_instakill");
|
|
level thread func_15BB(param_00,var_04,int(var_06),var_07);
|
|
break;
|
|
|
|
case "ammo":
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_maxammo","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_max_ammo");
|
|
level notify("pick_up_max_ammo");
|
|
level thread func_829A();
|
|
break;
|
|
|
|
case "board":
|
|
if(isdefined(level.var_DDB5))
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("powerup_carpenter","zmb_powerup_vo");
|
|
param_02 playsound("zmb_powerup_reboard_windows");
|
|
level thread [[ level.var_DDB5 ]](param_00);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_03))
|
|
{
|
|
param_00 scripts\cp\_merits::func_D9AD("mt_powerup_grabs");
|
|
}
|
|
|
|
param_00 thread scripts\cp\_hud_message::func_12AAE("powerups");
|
|
scripts\common\utility::func_136F7();
|
|
if(var_09)
|
|
{
|
|
func_56C3(var_08);
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_7AB8(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(level.var_B07F[param_00]))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_03 = gettime();
|
|
var_04 = func_3E8B(param_00,var_03,param_01);
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_3E8B(param_00,param_01,param_02)
|
|
{
|
|
var_03 = level.wave_num;
|
|
var_04 = level.var_B07F[param_00]["contents"].size;
|
|
level.var_1C86 = [];
|
|
for(var_05 = 0;var_05 < var_04;var_05++)
|
|
{
|
|
var_06 = level.var_B07F[param_00]["contents"][var_05]["value"];
|
|
var_07 = level.var_B07F[param_00]["contents"][var_05]["last_time"];
|
|
var_06 = strtok(var_06,"_");
|
|
var_08 = var_06[0];
|
|
switch(var_08)
|
|
{
|
|
case "fire":
|
|
if((scripts\common\utility::istrue(level.var_D760) || scripts\common\utility::flag("canFiresale") && param_01 - var_07 >= 180000) && var_03 >= 5)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "explosive":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 300000) && var_03 >= 8)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "infinite":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 180000) && var_03 >= 5)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "ammo":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 180000) && var_03 >= 2)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "grenade":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= -5536) && var_03 >= 1)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "upgrade":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 600000) && var_03 >= 15)
|
|
{
|
|
if(!scripts\cp\_utility::is_codxp())
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
}
|
|
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "kill":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 180000) && var_03 >= 1)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "cash":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 90000) && var_03 >= 1)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "instakill":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= 90000) && var_03 >= 1)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
case "board":
|
|
if((scripts\common\utility::istrue(level.var_D760) || param_01 - var_07 >= -20536) && var_03 >= 1)
|
|
{
|
|
level.var_1C86[level.var_1C86.size] = var_05;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(level.var_1C86.size < 1)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_09 = level.var_1C86[func_7ABA(param_00)];
|
|
var_0A = level.var_B07F[param_00]["contents"][var_09]["value"];
|
|
level.var_1C86 = undefined;
|
|
level.var_A8E0 = var_09;
|
|
return var_0A;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_7ABA(param_00)
|
|
{
|
|
var_01 = 0;
|
|
for(var_02 = 0;var_02 < level.var_1C86.size;var_02++)
|
|
{
|
|
var_03 = int(level.var_1C86[var_02]);
|
|
var_01 = var_01 + level.var_B07F[param_00]["weights"][var_03];
|
|
}
|
|
|
|
var_04 = randomfloat(var_01);
|
|
var_05 = 0;
|
|
for(var_02 = 0;var_02 < level.var_1C86.size;var_02++)
|
|
{
|
|
var_03 = int(level.var_1C86[var_02]);
|
|
var_05 = var_05 + level.var_B07F[param_00]["weights"][var_03];
|
|
if(var_05 >= var_04)
|
|
{
|
|
return var_02;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_113C5(param_00,param_01,param_02)
|
|
{
|
|
return tablelookup(param_00,0,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_12DB8(param_00,param_01,param_02)
|
|
{
|
|
if(!scripts\cp\_utility::func_462B("loot"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_B07A))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!scripts\common\utility::flag("zombie_drop_powerups"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isplayer(param_02))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = scripts\common\utility::istrue(level.var_D760);
|
|
if(level.var_D79D >= level.var_D79F && !var_04)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!is_in_active_volume(param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9CDD))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level.var_9B0B))
|
|
{
|
|
if(!scripts\cp\_weapon::func_9E54(param_01,level.var_9B0B,undefined,undefined,1))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
else if(!scripts\cp\_weapon::func_9E54(param_01,undefined,undefined,undefined,1))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_05 = level.players;
|
|
var_03 = undefined;
|
|
var_06 = 0;
|
|
if(param_02 scripts\cp\_utility::func_9BA0("more_power_up_drops"))
|
|
{
|
|
var_07 = level.var_EC22 * 0.7;
|
|
}
|
|
else
|
|
{
|
|
var_07 = level.var_EC22;
|
|
}
|
|
|
|
for(var_08 = 0;var_08 < var_05.size;var_08++)
|
|
{
|
|
if(isdefined(var_05[var_08].var_11A21))
|
|
{
|
|
var_06 = var_06 + var_05[var_08].var_11A21;
|
|
}
|
|
}
|
|
|
|
var_09 = 0;
|
|
if(var_06 > var_07 && !var_09)
|
|
{
|
|
var_03 = func_7AB8("kill_" + param_00,param_01);
|
|
}
|
|
|
|
if(isdefined(var_03))
|
|
{
|
|
level thread drop_loot(param_01,param_02,var_03,undefined,var_06,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_12E16(param_00)
|
|
{
|
|
var_01 = gettime();
|
|
level.var_B07F["kill_generic_zombie"]["contents"][param_00]["last_time"] = var_01;
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_82C4(param_00,param_01,param_02)
|
|
{
|
|
level endon("game_ended");
|
|
level endon("deactivated" + param_00);
|
|
scripts\common\utility::flag_set("explosive_armor");
|
|
level thread func_4DB3(param_00,param_01);
|
|
level thread func_CFD5(param_00,::func_8300);
|
|
level thread func_D2C6(param_00,::func_8300);
|
|
level thread func_82C6(param_00,::func_8300);
|
|
level.var_69FA = 1;
|
|
foreach(var_04 in level.players)
|
|
{
|
|
if(!isalive(var_04) || scripts\common\utility::istrue(var_04.inlaststand))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!scripts\common\utility::istrue(var_04.var_8B7A))
|
|
{
|
|
thread func_8300(var_04,param_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_8300(param_00,param_01)
|
|
{
|
|
param_00.var_8B7A = 1;
|
|
param_00 thread func_D73B(undefined,param_01);
|
|
param_00 thread func_48DE();
|
|
param_00 thread func_4CEC();
|
|
param_00 thread func_E00B(param_01);
|
|
param_00 thread func_E00C(param_00);
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_CFD5(param_00,param_01)
|
|
{
|
|
level endon("deactivated" + param_00);
|
|
level endon("game_ended");
|
|
while(scripts\common\utility::flag("explosive_armor"))
|
|
{
|
|
level waittill("connected",var_02);
|
|
thread [[ param_01 ]](var_02,param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_D2C6(param_00,param_01)
|
|
{
|
|
level endon("deactivated" + param_00);
|
|
level endon("game_ended");
|
|
while(scripts\common\utility::flag("explosive_armor"))
|
|
{
|
|
level waittill("player_spawned",var_02);
|
|
thread [[ param_01 ]](var_02,param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_82C6(param_00,param_01)
|
|
{
|
|
level endon("deactivated" + param_00);
|
|
level endon("game_ended");
|
|
while(scripts\common\utility::flag("explosive_armor"))
|
|
{
|
|
level waittill("revive_success",var_02);
|
|
thread [[ param_01 ]](var_02,param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_E00B(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("last_stand");
|
|
scripts\common\utility::func_6E5A("explosive_armor");
|
|
self.var_8B7A = undefined;
|
|
self setscriptablepartstate("exp_touch","neutral",0);
|
|
self notify("explosive_armor_removed");
|
|
self notify("remove_power_icon" + param_00);
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_E00C(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
param_00 endon("disconnect");
|
|
param_00 endon("explosive_armor_removed");
|
|
param_00 scripts\common\utility::waittill_any_3("death","last_stand");
|
|
param_00.var_8B7A = undefined;
|
|
param_00 setscriptablepartstate("exp_touch","neutral",0);
|
|
param_00 notify("explosive_armor_removed");
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_4DB3(param_00,param_01)
|
|
{
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
param_01 = param_01 - 5.5;
|
|
scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00);
|
|
level notify("deactivated" + param_00);
|
|
wait(5.5);
|
|
scripts\common\utility::func_6E2A("explosive_armor");
|
|
level.var_69FA = undefined;
|
|
foreach(var_03 in level.players)
|
|
{
|
|
var_03.var_8B7A = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_4CEC()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
self endon("last_stand");
|
|
self endon("explosive_armor_removed");
|
|
for(var_00 = gettime();scripts\common\utility::flag("explosive_armor");var_00 = gettime())
|
|
{
|
|
var_01 = scripts\common\utility::func_782F(self.origin,level.spawned_enemies,undefined,undefined,128,1);
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(isalive(var_03))
|
|
{
|
|
if(!isdefined(var_03.var_69FB) || gettime() > var_03.var_69FB)
|
|
{
|
|
var_03.var_69FB = var_00 + 1000;
|
|
var_03 dodamage(100,self.origin,self,self,"MOD_UNKNOWN","power_script_generic_primary_mp");
|
|
}
|
|
}
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_48DE()
|
|
{
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
self setscriptablepartstate("exp_touch","on",0);
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_C771(param_00,param_01,param_02)
|
|
{
|
|
level endon("deactivated" + param_00);
|
|
level thread func_4DCA(param_00,param_01);
|
|
level thread func_C76B(param_00);
|
|
for(;;)
|
|
{
|
|
foreach(var_04 in level.players)
|
|
{
|
|
if(!scripts\common\utility::istrue(var_04.var_8B97))
|
|
{
|
|
var_04.var_8B97 = 1;
|
|
var_05 = param_01 - gettime() - param_02 / 1000;
|
|
var_04 thread func_D73B(var_05,param_00);
|
|
}
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_C76B(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
level endon("host_migration_begin");
|
|
level endon("deactivated" + param_00);
|
|
for(;;)
|
|
{
|
|
var_01 = scripts\cp\_agent_utils::func_7DB0("axis");
|
|
foreach(var_04, var_03 in var_01)
|
|
{
|
|
if(!isalive(var_03))
|
|
{
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_4D32))
|
|
{
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_B36D))
|
|
{
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_B36A))
|
|
{
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_6BD4))
|
|
{
|
|
wait(0.2);
|
|
continue;
|
|
}
|
|
|
|
scripts\cp\_outline::func_6221(var_03,level.players,4,0,0,"high");
|
|
if(var_04 % 2 == 0)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
wait(0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_4DCA(param_00,param_01)
|
|
{
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00);
|
|
level notify("deactivated" + param_00);
|
|
foreach(var_03 in level.players)
|
|
{
|
|
var_03.var_8B97 = undefined;
|
|
var_03 scripts\cp\_outline::func_12C01();
|
|
}
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_82DA(param_00,param_01,param_02)
|
|
{
|
|
level notify("activated" + param_00);
|
|
level endon("activated" + param_00);
|
|
level endon("deactivated" + param_00);
|
|
level notify("infinite_grenade_active");
|
|
level.var_94A8 = 1;
|
|
level thread func_4DBA(param_00,param_01);
|
|
level.var_163F["infinite_grenades"] = 1;
|
|
foreach(var_04 in level.players)
|
|
{
|
|
thread func_20AB(var_04);
|
|
}
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_20A5(param_00)
|
|
{
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
param_00 thread func_D73B(30 * level.temporal_increase,"fire_30");
|
|
return;
|
|
}
|
|
|
|
param_00 thread func_D73B(30,"fire_30");
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_20AB(param_00)
|
|
{
|
|
param_00.var_D721 = 1;
|
|
param_00.var_8B89 = 1;
|
|
param_00 scripts\cp\powers\coop_powers::func_D71A(1,"primary",1);
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
param_00 thread func_D73B(30 * level.temporal_increase,"grenade_30");
|
|
return;
|
|
}
|
|
|
|
param_00 thread func_D73B(30,"grenade_30");
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_4DBA(param_00,param_01)
|
|
{
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
var_02 = scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00,"activated" + param_00);
|
|
if(var_02 != "activated" + param_00)
|
|
{
|
|
level.var_163F["infinite_grenades"] = 0;
|
|
level notify("deactivated" + param_00);
|
|
foreach(var_04 in level.players)
|
|
{
|
|
var_04 scripts\cp\powers\coop_powers::func_D71A(undefined,"primary",1);
|
|
var_04.var_8B89 = undefined;
|
|
var_04.var_D721 = 0;
|
|
}
|
|
|
|
level.var_94A8 = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_82D9(param_00,param_01,param_02)
|
|
{
|
|
level notify("activated" + param_00);
|
|
level endon("activated" + param_00);
|
|
level endon("deactivated" + param_00);
|
|
level notify("infinite_ammo_active");
|
|
level.var_94A4 = 1;
|
|
level.var_163F["infinite_ammo"] = 1;
|
|
level thread func_4DB9(param_00,param_01);
|
|
foreach(var_04 in level.players)
|
|
{
|
|
thread func_20AA(var_04);
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_20AA(param_00)
|
|
{
|
|
param_00 thread scripts\cp\_vo::try_to_play_vo("powerup_ammo","zmb_comment_vo");
|
|
param_00.var_8B88 = 1;
|
|
var_01 = param_00 func_1E39();
|
|
param_00 thread func_12BA6(var_01,"infinite_20");
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
param_00 thread func_D73B(20 * level.temporal_increase,"infinite_20");
|
|
return;
|
|
}
|
|
|
|
param_00 thread func_D73B(20,"infinite_20");
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_4DB9(param_00,param_01)
|
|
{
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
var_02 = scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00,"activated" + param_00);
|
|
if(var_02 != "activated" + param_00)
|
|
{
|
|
level.var_163F["infinite_ammo"] = 0;
|
|
level.var_94A4 = undefined;
|
|
level notify("deactivated" + param_00);
|
|
foreach(var_04 in level.players)
|
|
{
|
|
var_04.var_8B88 = undefined;
|
|
}
|
|
}
|
|
|
|
foreach(var_04 in level.players)
|
|
{
|
|
if(var_04 scripts\cp\_utility::isinfiniteammoenabled())
|
|
{
|
|
var_04 scripts\cp\_utility::enable_infinite_ammo(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_82E2(param_00,param_01,param_02)
|
|
{
|
|
level endon("deactivated" + param_00);
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
var_03 = undefined;
|
|
level.var_F0B8 = 1;
|
|
var_04 = scripts\common\utility::random(["power_speedBoost","power_siegeMode","power_barrier","power_mortarMount","power_transponder"]);
|
|
for(;;)
|
|
{
|
|
foreach(var_06 in level.players)
|
|
{
|
|
if(!scripts\common\utility::istrue(var_06.var_8B8C))
|
|
{
|
|
var_06.var_8B8C = 1;
|
|
var_07 = param_01 - gettime() - param_02 / 1000;
|
|
var_03 = var_06 scripts\cp\powers\coop_powers::func_13CFC("secondary");
|
|
var_06 thread scripts\cp\powers\coop_powers::func_8397(var_04,"secondary",undefined,undefined,undefined,undefined,1);
|
|
var_06 scripts\cp\powers\coop_powers::func_D740(10,"secondary");
|
|
var_06 thread func_17D4(param_00,var_07);
|
|
var_06 thread func_D73B(var_07,param_00);
|
|
var_06 thread func_4DC4(var_07,var_03,var_04,param_00);
|
|
}
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_17D4(param_00,param_01)
|
|
{
|
|
level endon("deactivated" + param_00);
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
self endon("disconnect");
|
|
self endon("lb_power_used");
|
|
self.var_17D5 = 0;
|
|
var_02 = param_01 / 3;
|
|
self notifyonplayercommand("lb_power_used","+speed_throw");
|
|
while(self.var_17D5 > 3)
|
|
{
|
|
if(!isalive(self))
|
|
{
|
|
wait(0.5);
|
|
continue;
|
|
}
|
|
|
|
scripts\cp\_utility::setlowermessage("msg_axe_hint",&"CP_ZOMBIE_ADD_ABILITY__HINT",5);
|
|
self.var_17D5++;
|
|
wait(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_4DC4(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
scripts\common\utility::waittill_any_timeout_1(param_00,"deactivated" + param_03);
|
|
self.var_8B8C = undefined;
|
|
self.var_17D5 = undefined;
|
|
level.var_F0B8 = undefined;
|
|
level notify("deactivated" + param_03);
|
|
scripts\cp\powers\coop_powers::func_E15E(param_02);
|
|
if(isdefined(param_01))
|
|
{
|
|
thread scripts\cp\powers\coop_powers::func_8397(param_01,"secondary",undefined,undefined,undefined,undefined,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_829A()
|
|
{
|
|
level endon("game_ended");
|
|
foreach(var_01 in level.players)
|
|
{
|
|
if(scripts\cp\_laststand::player_in_laststand(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
give_max_ammo_to_player(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 54
|
|
give_max_ammo_to_player(param_00)
|
|
{
|
|
var_01 = param_00 getweaponslistprimaries();
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_04 = strtok(var_03,"_");
|
|
if(var_04[0] != "alt")
|
|
{
|
|
param_00 givemaxammo(var_03);
|
|
}
|
|
|
|
if(function_0249(var_03) == weaponclipsize(var_03))
|
|
{
|
|
param_00 setweaponammoclip(var_03,weaponclipsize(var_03));
|
|
}
|
|
}
|
|
|
|
var_06 = getarraykeys(param_00.var_D782);
|
|
foreach(var_08 in var_06)
|
|
{
|
|
if(param_00.var_D782[var_08].var_10307 == "secondary")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00 thread func_DDD1(var_08);
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_DDD1(param_00)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = self.var_D782[param_00].var_10307;
|
|
var_03 = level.var_D782[param_00].var_B486 - self.var_D782[param_00].var_3D23;
|
|
scripts\cp\powers\coop_powers::func_D71A(var_03,var_02);
|
|
self setweaponammostock(level.var_D782[param_00].var_13CE0,level.var_D782[param_00].var_B486);
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_15BB(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("game_ended");
|
|
level notify("activated" + param_01);
|
|
level endon("deactivated" + param_01);
|
|
level.var_9925 = 1;
|
|
level thread func_4DBB(param_01,param_02);
|
|
level.var_163F["instakill"] = 1;
|
|
foreach(var_05 in level.players)
|
|
{
|
|
thread func_20AC(var_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_20AC(param_00)
|
|
{
|
|
param_00.var_9926 = 1;
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
param_00 thread func_D73B(30 * level.temporal_increase,"instakill_30");
|
|
return;
|
|
}
|
|
|
|
param_00 thread func_D73B(30,"instakill_30");
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_4DBB(param_00,param_01)
|
|
{
|
|
level endon("game_ended");
|
|
level endon("activated" + param_00);
|
|
scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00);
|
|
level notify("deactivated" + param_00);
|
|
foreach(var_03 in level.players)
|
|
{
|
|
var_03.var_9926 = undefined;
|
|
}
|
|
|
|
level.var_9925 = undefined;
|
|
level.var_163F["instakill"] = 0;
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_EBA5(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("game_ended");
|
|
level endon("deactivated" + param_01);
|
|
level notify("scale_earned_cash");
|
|
level endon("scale_earned_cash");
|
|
level.var_163F["double_money"] = 1;
|
|
level.var_3B0F = 2;
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
level thread func_4DCD(param_01,30 * level.temporal_increase,param_02);
|
|
}
|
|
else
|
|
{
|
|
level thread func_4DCD(param_01,30,param_02);
|
|
}
|
|
|
|
foreach(var_05 in level.players)
|
|
{
|
|
thread func_20A3(var_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_20A3(param_00)
|
|
{
|
|
param_00.var_5AD6 = 1;
|
|
if(isdefined(level.temporal_increase))
|
|
{
|
|
param_00 thread func_D73B(30 * level.temporal_increase,"cash_2");
|
|
return;
|
|
}
|
|
|
|
param_00 thread func_D73B(30,"cash_2");
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_4DCD(param_00,param_01,param_02)
|
|
{
|
|
level endon("disconnect");
|
|
level endon("game_ended");
|
|
var_03 = scripts\common\utility::waittill_any_timeout_1(param_01,"deactivated" + param_00,"activated" + param_00);
|
|
if(var_03 != "activated" + param_00)
|
|
{
|
|
level notify("deactivated" + param_00);
|
|
level.var_3B0F = 1;
|
|
level.var_163F["double_money"] = 0;
|
|
foreach(var_05 in level.players)
|
|
{
|
|
var_05.var_5AD6 = undefined;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_D73B(param_00,param_01)
|
|
{
|
|
level notify("power_icon_active_" + param_01);
|
|
level endon("power_icon_active_" + param_01);
|
|
var_02 = level.var_B07D[param_01];
|
|
self.var_D7A0[param_01] = var_02;
|
|
var_03 = func_F5DD(param_01);
|
|
thread func_8EA0(param_00,param_01,var_03);
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_F5DD(param_00)
|
|
{
|
|
var_01 = int(tablelookup(level.var_D763,2,param_00,1));
|
|
var_02 = int(var_01);
|
|
self setclientomnvarbit("zm_active_powerups",var_02 - 1,1);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_56C3(param_00)
|
|
{
|
|
foreach(var_02 in level.players)
|
|
{
|
|
var_02 setclientomnvar("zm_powerup_activated",param_00);
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_79E0(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = [];
|
|
var_06 = scripts\common\utility::getstructarray(param_01,param_02);
|
|
var_06[var_06.size] = param_00;
|
|
foreach(var_08 in var_06)
|
|
{
|
|
var_09 = scripts\common\utility::func_782F(var_08.origin,level.players,undefined,1,param_04,1);
|
|
if(var_09.size >= 1)
|
|
{
|
|
if(!isdefined(var_08.angles))
|
|
{
|
|
var_08.angles = (0,0,0);
|
|
}
|
|
|
|
var_0A = scripts\common\utility::spawn_tag_origin(var_08.origin,var_08.angles);
|
|
var_0A show();
|
|
var_0A.origin = var_08.origin;
|
|
var_0A.angles = var_08.angles;
|
|
var_05[var_05.size] = var_0A;
|
|
if(isdefined(param_03))
|
|
{
|
|
if(var_05.size >= param_03)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var_05 = sortbydistance(var_05,param_00.origin);
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_A5C6(param_00,param_01)
|
|
{
|
|
level endon("game_ended");
|
|
var_02 = param_00.origin;
|
|
var_03 = func_79E0(param_00,"effect_loc","targetname",undefined,1500);
|
|
wait(1);
|
|
playsoundatpos(var_02,"zmb_powerup_nuke_explo");
|
|
level thread func_C1AC(param_00,var_03);
|
|
scripts\common\utility::func_136F7();
|
|
playrumbleonposition("heavy_3s",var_02);
|
|
earthquake(0.25,4,var_02,2500);
|
|
scripts\common\utility::func_136F7();
|
|
var_04 = scripts\cp\_agent_utils::func_7DB0("axis");
|
|
foreach(var_06 in level.players)
|
|
{
|
|
var_06 scripts\cp\_utility::func_17C0("nuke",0,0);
|
|
}
|
|
|
|
var_08 = sortbydistance(var_04,var_02);
|
|
var_09 = 400;
|
|
if(isdefined(level.var_3B0F))
|
|
{
|
|
var_09 = 400 * level.var_3B0F;
|
|
}
|
|
|
|
foreach(var_0B in var_08)
|
|
{
|
|
if(func_9C0C(var_0B))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_72AA))
|
|
{
|
|
var_0B.var_54CB = 1;
|
|
var_0B.died_poorly_health = var_0B.health;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(var_0B.var_9E0C))
|
|
{
|
|
var_0B dodamage(var_0B.health + 100,var_0B.origin);
|
|
}
|
|
else
|
|
{
|
|
var_0B.var_180 = 1;
|
|
var_0B.var_9B81 = 1;
|
|
var_0B.nocorpse = undefined;
|
|
var_0B thread func_A614(1);
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
level.nuke_zombies_paused = 1;
|
|
wait(5);
|
|
level.nuke_zombies_paused = 0;
|
|
level.dont_resume_wave_after_solo_afterlife = undefined;
|
|
foreach(var_06 in level.players)
|
|
{
|
|
var_06 scripts\cp\_utility::func_E0E6("nuke",0);
|
|
if(!scripts\common\utility::istrue(level.var_72AA))
|
|
{
|
|
if(!scripts\cp\_laststand::player_in_laststand(var_06))
|
|
{
|
|
var_06 scripts\cp\_persistence::func_82F9(var_09,undefined,undefined,1,"nuke");
|
|
}
|
|
}
|
|
}
|
|
|
|
level.var_72AA = undefined;
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_9C0C(param_00)
|
|
{
|
|
return scripts\common\utility::istrue(param_00.var_9341);
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_C1AC(param_00,param_01)
|
|
{
|
|
var_02 = 0;
|
|
foreach(var_04 in param_01)
|
|
{
|
|
foreach(var_06 in level.players)
|
|
{
|
|
if(!var_06 scripts\cp\_utility::is_valid_player())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(var_06.in_afterlife_arcade))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(var_06.var_9C54))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
playfxontagforclients(level._effect["big_explo"],var_04,"tag_origin",var_06);
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
wait(5);
|
|
foreach(var_04 in param_01)
|
|
{
|
|
foreach(var_06 in level.players)
|
|
{
|
|
function_0297(level._effect["big_explo"],var_04,"tag_origin",var_06);
|
|
}
|
|
|
|
var_04 delete();
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_A614(param_00)
|
|
{
|
|
self endon("death");
|
|
thread scripts\cp\zombies\zombie_scriptable_states::applyzombiescriptablestate(self);
|
|
self.var_B36E = 1;
|
|
var_01 = scripts\common\utility::istrue(self.var_9CDD);
|
|
if(isdefined(param_00))
|
|
{
|
|
if(isalive(self) && !var_01)
|
|
{
|
|
playfx(level._effect["head_loss"],self gettagorigin("j_neck"));
|
|
self setscriptablepartstate("head","detached",1);
|
|
self setscriptablepartstate("eyes","eye_glow_off",1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
self dodamage(self.health,self.origin);
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_82EB(param_00,param_01)
|
|
{
|
|
param_00 iprintlnbold("Got Loot: $" + param_01);
|
|
param_00 scripts\cp\_persistence::func_82F9(param_01);
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_6EBE(param_00,param_01,param_02)
|
|
{
|
|
param_02 endon("remove " + param_01 + " icon");
|
|
param_02 endon("death");
|
|
param_02 endon("disconnect");
|
|
level endon("game_ended");
|
|
var_03 = 10;
|
|
var_04 = 0.2;
|
|
wait(param_00 - 5);
|
|
param_00 = 5;
|
|
for(;;)
|
|
{
|
|
wait(param_00 / var_03);
|
|
self.alpha = 0.1;
|
|
wait(var_04);
|
|
self.alpha = 0.75;
|
|
if(float(var_03 * 1.5) > var_04)
|
|
{
|
|
var_03 = float(var_03 * 1.5);
|
|
continue;
|
|
}
|
|
|
|
var_03 = var_04;
|
|
}
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_8EA0(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("activated" + param_01);
|
|
self endon("remove_carryIcon" + param_01);
|
|
self endon("disconnect");
|
|
level endon("game_ended");
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 60;
|
|
}
|
|
|
|
var_04 = 5.5;
|
|
param_00 = param_00 - var_04;
|
|
self setclientomnvarbit("zm_active_powerup_animation",param_02 - 1,0);
|
|
if(param_00 > 0)
|
|
{
|
|
level scripts\common\utility::waittill_any_timeout_1(param_00,"deactivated" + param_01);
|
|
self setclientomnvarbit("zm_active_powerup_animation",param_02 - 1,1);
|
|
}
|
|
|
|
level scripts\common\utility::waittill_any_timeout_1(var_04,"deactivated" + param_01);
|
|
level notify("power_up_deactivated");
|
|
if(isdefined(self.var_D7A0[param_01]))
|
|
{
|
|
self.var_D7A0[param_01] = undefined;
|
|
}
|
|
|
|
self notify("remove " + param_01 + " icon");
|
|
self setclientomnvarbit("zm_active_powerups",param_02 - 1,0);
|
|
self setclientomnvarbit("zm_active_powerup_animation",param_02 - 1,0);
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_8EBA()
|
|
{
|
|
self endon("remove_carryIcon");
|
|
level waittill("game_ended");
|
|
if(isdefined(self.var_3AF5))
|
|
{
|
|
self.var_3AF5.alpha = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 74
|
|
is_in_active_volume(param_00)
|
|
{
|
|
if(!isdefined(level.var_1646))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_01 = sortbydistance(level.var_1646,param_00);
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(function_010F(param_00,var_03))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_1E39()
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
var_00 = [];
|
|
foreach(var_02 in self.var_13CA0)
|
|
{
|
|
var_00[var_02] = self method_80FB(var_02);
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_12BA6(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
level endon("deactivated" + param_01);
|
|
if(!isdefined(self.var_13CA0))
|
|
{
|
|
self.var_13CA0 = self getweaponslistprimaries();
|
|
}
|
|
|
|
scripts\cp\_utility::enable_infinite_ammo(1);
|
|
for(;;)
|
|
{
|
|
var_02 = 0;
|
|
foreach(var_04 in self.var_13CA0)
|
|
{
|
|
if(var_04 == self getcurrentweapon() && func_13C30(var_04))
|
|
{
|
|
var_02 = 1;
|
|
self setweaponammoclip(var_04,weaponclipsize(var_04),"left");
|
|
self setclientomnvar("zm_ui_unlimited_ammo",1);
|
|
}
|
|
|
|
if(var_04 == self getcurrentweapon() && func_13C30(var_04))
|
|
{
|
|
var_02 = 1;
|
|
self setweaponammoclip(var_04,weaponclipsize(var_04),"right");
|
|
self setclientomnvar("zm_ui_unlimited_ammo",1);
|
|
}
|
|
|
|
if(var_02 == 0)
|
|
{
|
|
self setclientomnvar("zm_ui_unlimited_ammo",0);
|
|
func_1E39();
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 77
|
|
func_13C30(param_00)
|
|
{
|
|
var_01 = 1;
|
|
foreach(var_03 in level.var_C6C1)
|
|
{
|
|
if(param_00 == var_03)
|
|
{
|
|
var_01 = 0;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 78
|
|
func_57B9()
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
if(isdefined(self) && scripts\cp\_utility::func_8BB1(self.model,"tag_eye"))
|
|
{
|
|
playfxontagforclients(level._effect["vfx_screen_flash"],self,"tag_eye",self);
|
|
}
|
|
} |