mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-24 00:27:50 -05:00
4949 lines
87 KiB
Plaintext
4949 lines
87 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\cp\zombies\zombies_spawning.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 192
|
|
* Decompile Time: 8657 ms
|
|
* Timestamp: 10/27/2023 12:27:21 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_6512()
|
|
{
|
|
func_97B9();
|
|
func_97AE();
|
|
func_97B8();
|
|
level.var_5F90 = [];
|
|
level.var_10E44 = [];
|
|
level.var_4B95 = 0;
|
|
level.var_4B6B = 0;
|
|
level.var_E1CC = 0;
|
|
level.var_50F8 = 0;
|
|
level.var_E299 = 0;
|
|
level.var_5274 = 0;
|
|
level.var_4B6E = 0;
|
|
level.var_B467 = 0;
|
|
level.var_B432 = 0;
|
|
level.var_5F7F = ["generic_zombie"];
|
|
level.var_BFB7 = 200;
|
|
level.var_1BF5 = scripts\common\utility::getstructarray("spawner_location","targetname");
|
|
level.var_1002D = ::func_FF55;
|
|
level.var_11046 = 1;
|
|
level.var_B433 = 20;
|
|
level.spawned_enemies = [];
|
|
level.var_8CB3 = [];
|
|
level.respawn_enemy_list = [];
|
|
kvp_update_init();
|
|
if(isdefined(level.patch_update_spawners))
|
|
{
|
|
[[ level.patch_update_spawners ]]();
|
|
}
|
|
|
|
func_975C();
|
|
func_9757();
|
|
level thread func_F8A7();
|
|
level thread func_F5EC();
|
|
level thread func_7D87();
|
|
level.var_17C4 = [];
|
|
level.var_17C4[1] = 0;
|
|
level.var_17C4[2] = 0;
|
|
level.var_17C4[3] = 0;
|
|
level.var_17C4[4] = 0;
|
|
level.var_CA07 = 0;
|
|
level.var_CA06 = 0;
|
|
level.var_CA05 = 0;
|
|
level.var_4CC7 = 0;
|
|
if(!isdefined(level.var_106DB))
|
|
{
|
|
level.var_106DB = [];
|
|
}
|
|
|
|
level.var_1646 = [];
|
|
level.var_1647 = [];
|
|
level.var_162C = [];
|
|
level.var_4BB5 = 0;
|
|
level.var_10725 = [];
|
|
level.var_108E1 = ::func_12E29;
|
|
level.var_13F39 = "zmb_vo_base_male_";
|
|
level.var_13F3A = "zmb_vo_base_male2_";
|
|
level.var_13F24 = "zmb_vo_base_female_";
|
|
level.var_13F14 = "zmb_vo_brute_";
|
|
level.var_13F1A = "zmb_vo_cop_";
|
|
level.var_13F18 = "zmb_vo_clown_";
|
|
level.last_clown_spawn_time = gettime();
|
|
level.wait_for_music_clown_wave = 0;
|
|
level.last_mini_zone_fail = 0;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_97B9()
|
|
{
|
|
scripts\common\utility::flag_init("init_spawn_volumes_done");
|
|
scripts\common\utility::flag_init("init_adjacent_volumes_done");
|
|
scripts\common\utility::flag_init("force_spawn_boss");
|
|
scripts\common\utility::flag_init("pause_wave_progression");
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_97B8()
|
|
{
|
|
level._effect["drone_ground_spawn"] = loadfx("vfx/old/_requests/cp_titan/vfx_alien_drone_ground_spawn_titan.vfx");
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_97AE()
|
|
{
|
|
lib_0D48::func_97AF();
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_975C()
|
|
{
|
|
level.var_10816 = getentarray("spawn_volume","targetname");
|
|
level.var_9B0B = getentarray("invalid_playspace","targetname");
|
|
level.active_player_respawn_locs = [];
|
|
var_00 = [];
|
|
foreach(var_02 in level.var_10816)
|
|
{
|
|
var_02.var_28AB = func_7859(var_02);
|
|
level.var_10817[var_02.var_28AB] = var_02;
|
|
if(!scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
var_02 func_7C8E();
|
|
var_02 func_7999();
|
|
}
|
|
|
|
var_02.var_19 = 0;
|
|
var_00[var_02.var_28AB] = var_02;
|
|
wait(0.1);
|
|
}
|
|
|
|
level.var_10816 = var_00;
|
|
scripts\common\utility::flag_set("init_spawn_volumes_done");
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_F8A7()
|
|
{
|
|
func_94D5();
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_975D()
|
|
{
|
|
if(!scripts\common\utility::flag("init_spawn_volumes_done"))
|
|
{
|
|
scripts\common\utility::flag_wait("init_spawn_volumes_done");
|
|
}
|
|
|
|
level.var_10818 = getentarray("spawn_volume_trigger","targetname");
|
|
if(!isdefined(level.var_10818))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_01 in level.var_10818)
|
|
{
|
|
var_01 thread func_15FD();
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_15FD()
|
|
{
|
|
level endon("game_ended");
|
|
self.var_13538 = self.script_area;
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_00);
|
|
if(!isplayer(var_00))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
func_15FC(self.var_13538);
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_A5BC()
|
|
{
|
|
foreach(var_01 in level.spawned_enemies)
|
|
{
|
|
var_01 dodamage(var_01.health + 990,var_01.origin,var_01,var_01,"MOD_SUICIDE");
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_7859(param_00)
|
|
{
|
|
var_01 = strtok(param_00.var_27C,"_");
|
|
if(var_01.size < 2)
|
|
{
|
|
var_02 = var_01[0];
|
|
}
|
|
else if(scripts\common\utility::string_starts_with(var_02[0],"pf"))
|
|
{
|
|
var_02 = var_02[1];
|
|
for(var_03 = 2;var_03 < var_01.size;var_03++)
|
|
{
|
|
var_02 = var_02 + "_" + var_01[var_03];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_02 = var_01.var_27C;
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_9757()
|
|
{
|
|
level.var_106E2 = 0;
|
|
level.var_A8BC = 0;
|
|
level.var_1096B = 0;
|
|
level.var_13F36 = ::func_5CF7;
|
|
init_event_waves();
|
|
func_9605();
|
|
}
|
|
|
|
//Function Number: 12
|
|
init_event_waves()
|
|
{
|
|
level.var_6840 = [];
|
|
if(isdefined(level.event_funcs_init))
|
|
{
|
|
[[ level.event_funcs_init ]]();
|
|
return;
|
|
}
|
|
|
|
level.var_6840["goon"] = ::func_8453;
|
|
func_9608();
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_B26D()
|
|
{
|
|
if(!func_9C13(level.var_162C,self))
|
|
{
|
|
level.var_162C[level.var_162C.size] = self;
|
|
}
|
|
|
|
self.var_19 = 1;
|
|
self.var_93A8 = 0;
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_B26E()
|
|
{
|
|
self.var_19 = 0;
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_8453()
|
|
{
|
|
level.var_10E3C = func_79EB();
|
|
level.var_5F7F = [];
|
|
level.var_B467 = 24;
|
|
level.var_B432 = 0;
|
|
level.var_5274 = func_8455();
|
|
level.var_4B6E = 0;
|
|
while(level.wait_for_music_clown_wave == 0)
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
func_1071B();
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_5CF7(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(level.var_726C))
|
|
{
|
|
level thread scripts\cp\zombies\_powerups::drop_loot(param_01,param_02,level.var_726C,undefined,undefined,1);
|
|
level.var_726C = undefined;
|
|
return 1;
|
|
}
|
|
|
|
if(level.var_106E2 == 1)
|
|
{
|
|
if(level.var_5274 == level.var_4B6E)
|
|
{
|
|
level thread scripts\cp\zombies\_powerups::drop_loot(param_01,param_02,"ammo_max",undefined,undefined,1);
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_79EB()
|
|
{
|
|
return ["generic_zombie"];
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_79E9()
|
|
{
|
|
return ["zombie_ghost"];
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_8454(param_00,param_01)
|
|
{
|
|
var_02 = 1.5;
|
|
switch(level.var_1096B)
|
|
{
|
|
case 0:
|
|
var_02 = 3;
|
|
break;
|
|
|
|
case 1:
|
|
var_02 = 2;
|
|
break;
|
|
|
|
case 2:
|
|
var_02 = 1.5;
|
|
break;
|
|
|
|
case 3:
|
|
var_02 = 1;
|
|
break;
|
|
|
|
default:
|
|
var_02 = 1;
|
|
break;
|
|
}
|
|
|
|
var_02 = var_02 - param_00 / param_01;
|
|
var_02 = max(var_02,0.05);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_826F()
|
|
{
|
|
var_00 = 0.5;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_8455()
|
|
{
|
|
var_00 = level.players.size;
|
|
var_01 = var_00 * 6;
|
|
var_02 = 2;
|
|
switch(level.var_1096B)
|
|
{
|
|
case 0:
|
|
var_01 = var_00 * 6;
|
|
break;
|
|
|
|
case 1:
|
|
var_01 = var_00 * 9;
|
|
break;
|
|
|
|
case 2:
|
|
var_01 = var_00 * 12;
|
|
break;
|
|
|
|
case 3:
|
|
var_01 = var_00 * 12;
|
|
var_02 = 3;
|
|
break;
|
|
|
|
default:
|
|
var_01 = var_00 * 15;
|
|
var_02 = 3;
|
|
break;
|
|
}
|
|
|
|
var_01 = var_01 * var_02;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_8270()
|
|
{
|
|
var_00 = level.players.size;
|
|
return 8 + 4 * var_00;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_1071B()
|
|
{
|
|
level endon("force_spawn_wave_done");
|
|
level endon("game_ended");
|
|
level.var_E299 = 0;
|
|
level.var_C1E8 = 0;
|
|
level.var_4BB5 = 0;
|
|
level.var_10725 = [];
|
|
var_00 = 0;
|
|
while(level.var_4B6E < level.var_5274)
|
|
{
|
|
while(scripts\common\utility::istrue(level.var_13FA3) || scripts\common\utility::istrue(level.nuke_zombies_paused))
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
var_01 = func_C1E9();
|
|
var_02 = get_spawner_and_spawn_goons(var_01);
|
|
var_00 = var_00 + var_02;
|
|
if(var_02 > 0)
|
|
{
|
|
wait(func_8454(var_00,level.var_5274));
|
|
continue;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
level.var_B467 = 0;
|
|
level.var_B432 = 0;
|
|
level.var_11046 = 1;
|
|
}
|
|
|
|
//Function Number: 24
|
|
get_spawner_and_spawn_goons(param_00)
|
|
{
|
|
if(isdefined(level.special_zombie_spawn_func))
|
|
{
|
|
var_01 = [[ level.special_zombie_spawn_func ]](param_00);
|
|
return var_01;
|
|
}
|
|
|
|
var_02 = 0;
|
|
if(var_01 <= 0)
|
|
{
|
|
if(var_01 < 0)
|
|
{
|
|
func_A5FA(abs(var_01));
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
var_01 = min(var_01,2);
|
|
func_1071C(var_02);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_10717()
|
|
{
|
|
level endon("game_ended");
|
|
level endon("stop_ghost_spawn");
|
|
var_00 = 24;
|
|
var_01 = func_826F();
|
|
for(;;)
|
|
{
|
|
var_02 = func_7C2D();
|
|
if(isdefined(var_02))
|
|
{
|
|
var_02.var_93A8 = 1;
|
|
var_02.var_A9F6 = gettime();
|
|
var_03 = var_00 - level.var_13F2D.size;
|
|
level thread func_10718(var_02,var_03);
|
|
}
|
|
|
|
wait(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_1071C(param_00)
|
|
{
|
|
var_01 = 0.3;
|
|
var_02 = 0.7;
|
|
if(param_00 > 0)
|
|
{
|
|
func_93E6(param_00);
|
|
var_03 = [];
|
|
var_04 = scripts\common\utility::getstruct("brute_hide_org","targetname");
|
|
var_05 = 0;
|
|
while(var_05 < param_00)
|
|
{
|
|
var_06 = func_10719(var_04);
|
|
if(isdefined(var_06))
|
|
{
|
|
var_05++;
|
|
var_06 method_82EF(var_06.origin);
|
|
var_06 scripts\mp\agents\_scriptedagents::func_F85E(1,"spawn_in_box");
|
|
var_06.var_180 = 1;
|
|
var_06.ignoreme = 1;
|
|
var_06.var_EF64 = 1;
|
|
var_03[var_03.size] = var_06;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
var_07 = func_7C2E();
|
|
var_07.var_93A8 = 1;
|
|
var_07.var_A9F6 = gettime();
|
|
thread scripts\cp\_utility::func_D52A("zombie_spawn_lightning",var_07.origin);
|
|
for(var_08 = 0;var_08 < var_03.size;var_08++)
|
|
{
|
|
var_06 = var_03[var_08];
|
|
var_09 = func_772C(var_07.origin,var_07.angles);
|
|
var_06.spawner = var_09;
|
|
func_1B99(var_06.spawner);
|
|
var_06 func_BC94(var_06.spawner);
|
|
var_06.ignoreme = 0;
|
|
var_06.var_EF64 = 0;
|
|
var_06 scripts\mp\agents\_scriptedagents::func_F85E(0,"spawn_in_box");
|
|
var_09 = undefined;
|
|
func_4FB6(1);
|
|
wait(randomfloatrange(var_01,var_02));
|
|
}
|
|
|
|
var_07.var_93A8 = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_BC94(param_00)
|
|
{
|
|
var_01 = getclosestpointonnavmesh(param_00.origin);
|
|
self dontinterpolate();
|
|
self setorigin(param_00.origin,1);
|
|
self method_8286(param_00.origin);
|
|
self.var_180 = 0;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_10718(param_00,param_01)
|
|
{
|
|
level endon("game_ended");
|
|
level endon("stop_ghost_spawn");
|
|
var_02 = 1;
|
|
var_03 = 1;
|
|
var_04 = 0.3;
|
|
var_05 = 0.7;
|
|
var_06 = param_00.origin;
|
|
var_07 = param_00.angles;
|
|
var_08 = min(param_01,randomintrange(var_02,var_03 + 1));
|
|
for(var_09 = 0;var_09 < var_08;var_09++)
|
|
{
|
|
func_10713(param_00);
|
|
wait(randomfloatrange(var_04,var_05));
|
|
param_00 = func_772C(var_06,var_07);
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_772C(param_00,param_01)
|
|
{
|
|
var_02 = 50;
|
|
var_03 = 50;
|
|
var_04 = spawnstruct();
|
|
var_04.angles = param_01;
|
|
var_05 = var_04.origin;
|
|
var_06 = 0;
|
|
while(!var_06)
|
|
{
|
|
var_07 = randomintrange(var_02 * -1,var_02);
|
|
var_08 = randomintrange(var_03 * -1,var_03);
|
|
var_05 = getclosestpointonnavmesh((param_00[0] + var_07,param_00[1] + var_08,param_00[2]));
|
|
var_06 = 1;
|
|
foreach(var_0A in level.players)
|
|
{
|
|
if(positionwouldtelefrag(var_05))
|
|
{
|
|
var_06 = 0;
|
|
}
|
|
}
|
|
|
|
if(!var_06)
|
|
{
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
var_04.origin = var_05 + (0,0,5);
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_10719(param_00)
|
|
{
|
|
var_01 = "zombie_clown";
|
|
var_02 = param_00 func_1068A();
|
|
if(isdefined(var_02))
|
|
{
|
|
var_02.var_13550 = level.var_13F18;
|
|
level thread lib_0D62::func_CE9C(var_02,"spawn",1);
|
|
var_02 method_84E6(4);
|
|
param_00.var_A9F6 = gettime();
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_10713(param_00)
|
|
{
|
|
if(isdefined(level.zombie_ghost_color_manager))
|
|
{
|
|
[[ level.zombie_ghost_color_manager ]]();
|
|
}
|
|
|
|
var_01 = func_13F2A("zombie_ghost","axis",param_00.origin,param_00.angles);
|
|
if(isdefined(var_01))
|
|
{
|
|
level.var_13F2D[level.var_13F2D.size] = var_01;
|
|
param_00.var_A9F6 = gettime();
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_E82B()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
var_00 = length(self.var_381);
|
|
if(var_00 > 350)
|
|
{
|
|
iprintln("speed = " + var_00);
|
|
}
|
|
|
|
wait(0.25);
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_1B99(param_00)
|
|
{
|
|
if(isdefined(level.clown_spawn_fx_func))
|
|
{
|
|
self [[ level.clown_spawn_fx_func ]](param_00);
|
|
return;
|
|
}
|
|
|
|
if(function_010F(param_00.origin,level.var_10817["underground_route"]))
|
|
{
|
|
var_01 = level._effect["goon_spawn_bolt_underground"];
|
|
}
|
|
else
|
|
{
|
|
var_01 = level._effect["goon_spawn_bolt"];
|
|
}
|
|
|
|
playfx(var_01,param_00.origin);
|
|
playfx(level._effect["drone_ground_spawn"],param_00.origin,(0,0,1));
|
|
playrumbleonposition("grenade_rumble",param_00.origin);
|
|
earthquake(0.3,0.2,param_00.origin,500);
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_3115(param_00)
|
|
{
|
|
if(function_010F(param_00.origin,level.var_10817["underground_route"]))
|
|
{
|
|
var_01 = level._effect["brute_spawn_bolt_indoor"];
|
|
}
|
|
else
|
|
{
|
|
var_01 = level._effect["brute_spawn_bolt"];
|
|
}
|
|
|
|
thread scripts\cp\_utility::func_D52A("brute_spawn_lightning",param_00.origin);
|
|
playfx(var_01,param_00.origin);
|
|
playfx(level._effect["drone_ground_spawn"],param_00.origin,(0,0,1));
|
|
playrumbleonposition("grenade_rumble",param_00.origin);
|
|
earthquake(0.3,0.2,param_00.origin,500);
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_C1E9()
|
|
{
|
|
var_00 = func_C209();
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_FF95()
|
|
{
|
|
var_00 = func_C209();
|
|
if(var_00 > 0)
|
|
{
|
|
return !level.var_C1E7 + level.var_4B6E + level.var_4B95 >= level.var_5274;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_7C2E()
|
|
{
|
|
var_00 = undefined;
|
|
var_00 = func_79EC();
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_79EC()
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.var_162C)
|
|
{
|
|
if(scripts\common\utility::istrue(var_02.var_19) && !scripts\common\utility::istrue(var_02.var_93A8))
|
|
{
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
}
|
|
|
|
if(var_00.size > 0)
|
|
{
|
|
var_02 = func_8456(var_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
return var_02;
|
|
}
|
|
}
|
|
|
|
return scripts\common\utility::random(var_00);
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_8456(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = 2;
|
|
var_03 = 1;
|
|
var_04 = 5000;
|
|
foreach(var_06 in param_00)
|
|
{
|
|
if(lib_0D60::func_800B(var_06.var_13538))
|
|
{
|
|
var_01[var_01.size] = var_06;
|
|
var_06.var_B92F = var_02;
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_06.var_13538.var_186E))
|
|
{
|
|
foreach(var_08 in var_06.var_13538.var_186E)
|
|
{
|
|
if(lib_0D60::func_800B(var_08))
|
|
{
|
|
var_01[var_01.size] = var_06;
|
|
var_06.var_B92F = var_03;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0B = 562500;
|
|
var_0C = 4000000;
|
|
var_0D = 9000000;
|
|
var_0E = 122500;
|
|
var_0F = -25536;
|
|
var_10 = -99999999;
|
|
var_11 = undefined;
|
|
var_12 = 15000;
|
|
var_13 = -25536;
|
|
var_14 = " ";
|
|
var_15 = undefined;
|
|
var_16 = gettime();
|
|
var_17 = func_81F8();
|
|
var_18 = [];
|
|
if(!isdefined(var_17))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
foreach(var_06 in var_01)
|
|
{
|
|
var_15 = "";
|
|
var_1A = 0;
|
|
var_1B = var_06.var_B92F * randomintrange(var_12,var_13);
|
|
var_1C = randomint(100);
|
|
if(isdefined(var_06.var_BF6C) && var_06.var_BF6C >= var_16)
|
|
{
|
|
var_1A = var_1A - 20000;
|
|
var_15 = var_15 + " Short Cooldown";
|
|
}
|
|
|
|
var_1D = distancesquared(var_17.origin,var_06.origin);
|
|
if(var_1D < var_0E)
|
|
{
|
|
var_1A = var_1A - -15536;
|
|
var_15 = var_15 + " Too Close";
|
|
}
|
|
else if(var_1D > var_0D)
|
|
{
|
|
var_1A = var_1A - -15536;
|
|
var_15 = var_15 + " Too Far";
|
|
}
|
|
else if(var_1D < var_0B)
|
|
{
|
|
if(var_1C < max(int(level.var_1096B + 1) * 10,20))
|
|
{
|
|
var_1A = var_1A + var_1B;
|
|
var_15 = var_15 + " Chance Close";
|
|
}
|
|
else
|
|
{
|
|
var_1A = var_1A - var_1B;
|
|
var_15 = var_15 + " Close";
|
|
}
|
|
}
|
|
else if(var_1D > var_0C)
|
|
{
|
|
var_1A = var_1A - var_1B;
|
|
var_15 = var_15 + " Far";
|
|
}
|
|
else
|
|
{
|
|
var_1A = var_1A + var_1B;
|
|
var_15 = var_15 + " Good Spawn";
|
|
}
|
|
|
|
if(var_1A > var_10)
|
|
{
|
|
var_10 = var_1A;
|
|
var_11 = var_06;
|
|
var_14 = var_15;
|
|
var_18[var_18.size] = var_06;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(var_11))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
for(var_1F = var_18.size - 1;var_1F >= 0;var_1F--)
|
|
{
|
|
var_20 = 1;
|
|
foreach(var_17 in level.players)
|
|
{
|
|
if(distancesquared(var_17.origin,var_18[var_1F].origin) < var_0F)
|
|
{
|
|
var_20 = 0;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(var_20)
|
|
{
|
|
var_11 = var_18[var_1F];
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_11.var_BF6C = var_16 + var_04;
|
|
return var_11;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_81F8()
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.players)
|
|
{
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(var_02.var_AD2C))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
|
|
return scripts\common\utility::random(var_00);
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_7C2D()
|
|
{
|
|
var_00 = undefined;
|
|
var_00 = func_79EA();
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_79EA()
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.var_8271)
|
|
{
|
|
if(scripts\common\utility::istrue(var_02.var_19))
|
|
{
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_13FA6) && var_00.size > 0)
|
|
{
|
|
return [[ level.var_13FA6 ]](var_00);
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_9608()
|
|
{
|
|
level.var_8457 = [];
|
|
var_00 = scripts\common\utility::getstructarray("dog_spawner","targetname");
|
|
if(isdefined(level.goon_spawner_patch_func))
|
|
{
|
|
[[ level.goon_spawner_patch_func ]](var_00);
|
|
}
|
|
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_03 = 0;
|
|
foreach(var_05 in level.var_9B0B)
|
|
{
|
|
if(function_010F(var_02.origin,var_05))
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
}
|
|
|
|
if(!var_03)
|
|
{
|
|
foreach(var_05 in level.var_10816)
|
|
{
|
|
if(function_010F(var_02.origin,var_05))
|
|
{
|
|
if(!isdefined(var_02.angles))
|
|
{
|
|
var_02.angles = (0,0,0);
|
|
}
|
|
|
|
level.var_8457[level.var_8457.size] = var_02;
|
|
var_02.var_13538 = var_05;
|
|
if(!isdefined(var_05.var_8457))
|
|
{
|
|
var_05.var_8457 = [];
|
|
}
|
|
|
|
var_05.var_8457[var_05.var_8457.size] = var_02;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 44
|
|
move_goon_spawner(param_00,param_01,param_02)
|
|
{
|
|
var_03 = scripts\common\utility::getclosest(param_01,param_00,500);
|
|
var_03.origin = param_02;
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_9605()
|
|
{
|
|
level.var_8271 = [];
|
|
var_00 = scripts\common\utility::getstructarray("ghost_spawn","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02.var_19 = 1;
|
|
if(!isdefined(var_02.angles))
|
|
{
|
|
var_02.angles = (0,0,0);
|
|
}
|
|
|
|
level.var_8271[level.var_8271.size] = var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_1B98(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = scripts\cp\_agent_utils::func_179E("axis",param_01,param_02,"wave " + param_00);
|
|
if(!isdefined(var_04))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.var_68AA))
|
|
{
|
|
var_04.maxhealth = func_3712();
|
|
var_04.health = var_04.maxhealth;
|
|
var_04.var_13550 = level.var_13F18;
|
|
}
|
|
|
|
if(var_04.agent_type == "elite")
|
|
{
|
|
var_04.maxhealth = 15000 * level.player.size;
|
|
var_04.health = var_04.maxhealth;
|
|
earthquake(0.3,5,var_04.origin,3000);
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
var_04.spawner = param_03;
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_3712()
|
|
{
|
|
var_00 = 400;
|
|
switch(level.var_1096B)
|
|
{
|
|
case 1:
|
|
case 0:
|
|
var_00 = 400;
|
|
break;
|
|
|
|
case 2:
|
|
var_00 = 900;
|
|
break;
|
|
|
|
case 3:
|
|
var_00 = 1300;
|
|
break;
|
|
|
|
default:
|
|
var_00 = 1600;
|
|
break;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_7CE3()
|
|
{
|
|
if(!isdefined(self.target))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_00 = getentarray(self.target,"targetname");
|
|
if(!isdefined(var_00) || var_00.size == 0)
|
|
{
|
|
var_00 = scripts\common\utility::getstructarray(self.target,"targetname");
|
|
}
|
|
|
|
var_01 = [];
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(isdefined(var_03.remove_me))
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
}
|
|
|
|
if(var_01.size > 0)
|
|
{
|
|
var_00 = scripts\common\utility::func_22AC(var_00,var_01);
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 49
|
|
update_origin(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(level.spawn_struct_list))
|
|
{
|
|
level.spawn_struct_list = scripts\common\utility::getstructarray("static","script_noteworthy");
|
|
}
|
|
|
|
foreach(var_04 in level.spawn_struct_list)
|
|
{
|
|
if(var_04.origin == param_00)
|
|
{
|
|
var_04.origin = param_01;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_04.angles = param_02;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
remove_origin(param_00)
|
|
{
|
|
if(!isdefined(level.spawn_struct_list))
|
|
{
|
|
level.spawn_struct_list = scripts\common\utility::getstructarray("static","script_noteworthy");
|
|
}
|
|
|
|
foreach(var_02 in level.spawn_struct_list)
|
|
{
|
|
if(var_02.origin == param_00)
|
|
{
|
|
var_02.remove_me = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
update_kvp(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(level.spawn_struct_list))
|
|
{
|
|
level.spawn_struct_list = scripts\common\utility::getstructarray("static","script_noteworthy");
|
|
}
|
|
|
|
foreach(var_04 in level.spawn_struct_list)
|
|
{
|
|
if(var_04.origin == param_00)
|
|
{
|
|
var_04 = [[ level.kvp_update_funcs[param_01] ]](var_04,param_02);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
kvp_update_init()
|
|
{
|
|
level.kvp_update_funcs["script_fxid"] = ::update_kvp_script_fxid;
|
|
}
|
|
|
|
//Function Number: 53
|
|
update_kvp_script_fxid(param_00,param_01)
|
|
{
|
|
param_00.script_fxid = param_01;
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_77D3()
|
|
{
|
|
if(isdefined(level.var_186E[self.var_28AB]))
|
|
{
|
|
var_00 = [];
|
|
foreach(var_02 in level.var_186E[self.var_28AB])
|
|
{
|
|
var_00[var_00.size] = level.var_10817[var_02];
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
return [];
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_7C8E()
|
|
{
|
|
var_00 = func_7CE3();
|
|
if(isdefined(var_00) && var_00.size > 0)
|
|
{
|
|
self.var_1087B = var_00;
|
|
foreach(var_02 in self.var_1087B)
|
|
{
|
|
var_02 func_10865(self);
|
|
}
|
|
}
|
|
|
|
func_F546(self);
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_7999()
|
|
{
|
|
var_00 = getentarray(self.var_27C,"script_noteworthy");
|
|
if(isdefined(var_00) && var_00.size != 0)
|
|
{
|
|
self.var_665B = var_00;
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_6514()
|
|
{
|
|
level endon("game_ended");
|
|
if(!scripts\common\utility::flag("init_spawn_volumes_done"))
|
|
{
|
|
scripts\common\utility::flag_wait("init_spawn_volumes_done");
|
|
}
|
|
|
|
while(!scripts\common\utility::istrue(level.var_9AF6))
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
if(!scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
wait(15);
|
|
}
|
|
else
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
if(!scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
func_15BA();
|
|
}
|
|
|
|
level thread func_10D2E();
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_4F1E()
|
|
{
|
|
level endon("game_ended");
|
|
var_00 = getdvarint("scr_spawn_start_delay");
|
|
if(var_00 > 0)
|
|
{
|
|
wait(var_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_15BA()
|
|
{
|
|
if(isdefined(level.initial_active_volumes))
|
|
{
|
|
foreach(var_01 in level.initial_active_volumes)
|
|
{
|
|
if(isdefined(level.var_10816[var_01]))
|
|
{
|
|
level.var_10816[var_01] func_B291();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_10865(param_00)
|
|
{
|
|
self.var_19 = 0;
|
|
self.var_13538 = param_00;
|
|
level.var_1BF5[level.var_1BF5.size] = self;
|
|
if(!isdefined(self.script_noteworthy) || self.script_noteworthy != "static")
|
|
{
|
|
level.var_5F90[level.var_5F90.size] = self;
|
|
}
|
|
else
|
|
{
|
|
self.var_10E45 = 1;
|
|
level.var_10E44[level.var_10E44.size] = self;
|
|
}
|
|
|
|
if(!isdefined(self.angles))
|
|
{
|
|
self.angles = (0,0,0);
|
|
}
|
|
|
|
if(function_010F(self.origin,param_00))
|
|
{
|
|
self.var_93A1 = 1;
|
|
}
|
|
else
|
|
{
|
|
self.var_93A1 = 0;
|
|
}
|
|
|
|
if(isdefined(self.var_ECF5))
|
|
{
|
|
switch(self.var_ECF5)
|
|
{
|
|
case "spawn_ground":
|
|
thread func_5D13();
|
|
break;
|
|
|
|
case "spawn_ceiling":
|
|
thread func_B0D1();
|
|
break;
|
|
|
|
case "spawn_wall_low":
|
|
self.var_1CAE = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_5D13()
|
|
{
|
|
var_00 = scripts\common\utility::func_5D14(self.origin,10);
|
|
self.origin = var_00 + (0,0,1);
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_B0D1()
|
|
{
|
|
self.var_ABA7 = self.origin;
|
|
var_00 = scripts\common\utility::func_5D14(self.origin,0);
|
|
self.var_ABA6 = var_00;
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_6714()
|
|
{
|
|
if(!scripts\common\utility::func_6E34("init_spawn_volumes_done"))
|
|
{
|
|
scripts\common\utility::flag_init("init_spawn_volumes_done");
|
|
}
|
|
|
|
if(!scripts\common\utility::flag("init_spawn_volumes_done"))
|
|
{
|
|
scripts\common\utility::flag_wait("init_spawn_volumes_done");
|
|
}
|
|
|
|
level.var_1BF5 = [];
|
|
level.var_671F = [];
|
|
level.var_1647 = [];
|
|
level.var_6727 = "escape_path_0_start";
|
|
level.var_4B3F = level.var_6727;
|
|
scripts\common\utility::flag_init("escape_room_triggers_spawned");
|
|
level thread func_106D8();
|
|
level thread func_66DA();
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_106D8()
|
|
{
|
|
var_00 = scripts\common\utility::getstructarray("escape_spawn_trigger","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_03 = spawn("trigger_radius",var_02.origin,0,var_02.var_257,96);
|
|
var_03.var_336 = var_02.var_336;
|
|
var_03.script_area = var_02.script_area;
|
|
var_03.target = var_02.target;
|
|
wait(0.05);
|
|
}
|
|
|
|
var_05 = getentarray("escape_spawn_trigger","targetname");
|
|
foreach(var_03 in var_05)
|
|
{
|
|
var_03 thread func_6730();
|
|
}
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_6730()
|
|
{
|
|
self.var_E6DB = self.script_area;
|
|
level.var_4BD4 = 0;
|
|
if(self.var_E6DB == level.var_6727)
|
|
{
|
|
thread func_6731();
|
|
}
|
|
|
|
var_00 = scripts\common\utility::getstructarray(self.target,"targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02 thread func_6722(self.var_E6DB);
|
|
}
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_6731(param_00)
|
|
{
|
|
level endon(self.var_E6DB + "_done");
|
|
level endon("game_ended");
|
|
if(getdvarint("esc_zombies_triggertrig") == 0)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = 70;
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_03);
|
|
if(!isplayer(var_03))
|
|
{
|
|
wait(0.1);
|
|
var_01 = var_01 + 0.1;
|
|
if(var_01 >= var_02)
|
|
{
|
|
break;
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_03);
|
|
if(!isplayer(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_00) && !level.var_4BD4)
|
|
{
|
|
foreach(var_05 in param_00)
|
|
{
|
|
var_05.var_54CB = 1;
|
|
var_05 suicide();
|
|
}
|
|
|
|
level.var_4BD4 = 1;
|
|
level.var_C20B = 0;
|
|
level notify("update_escape_timer");
|
|
var_07 = strtok(tablelookup(level.var_6728,0,level.var_4BA8,3)," ");
|
|
level.var_672A = int(var_07[level.players.size - 1]);
|
|
level thread [[ level.var_672C ]]();
|
|
level.var_4BA8++;
|
|
}
|
|
|
|
func_12DBF();
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_12DBF()
|
|
{
|
|
func_1294D();
|
|
var_00 = scripts\common\utility::getstructarray(self.target,"targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02.var_19 = 1;
|
|
level.var_1647[level.var_1647.size] = var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_1294D()
|
|
{
|
|
foreach(var_01 in level.var_1647)
|
|
{
|
|
var_01.var_19 = 0;
|
|
var_01 notify("dont_restart_spawner");
|
|
}
|
|
|
|
level.var_1647 = [];
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_6722(param_00)
|
|
{
|
|
self.var_19 = 0;
|
|
self.var_1353B = param_00;
|
|
level.var_1BF5[level.var_1BF5.size] = self;
|
|
level.var_671F[level.var_671F.size] = self;
|
|
if(!isdefined(self.angles))
|
|
{
|
|
self.angles = (0,0,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_66DA()
|
|
{
|
|
for(;;)
|
|
{
|
|
level waittill("next_area_opened",var_00);
|
|
level notify(level.var_4B3F + "_done");
|
|
level.wave_num++;
|
|
level.var_4B3F = var_00;
|
|
func_1294D();
|
|
var_01 = getentarray("escape_spawn_trigger","targetname");
|
|
var_02 = level.spawned_enemies;
|
|
level.var_4BD4 = 0;
|
|
foreach(var_04 in var_01)
|
|
{
|
|
if(var_04.script_area == var_00)
|
|
{
|
|
var_04 thread func_6731(var_02);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_66D6()
|
|
{
|
|
self endon("death");
|
|
var_00 = 2560000;
|
|
for(;;)
|
|
{
|
|
wait(0.1);
|
|
var_01 = 1;
|
|
foreach(var_03 in level.players)
|
|
{
|
|
if(scripts\common\utility::istrue(var_03.var_1097A))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(distancesquared(var_03.origin,self.origin) < var_00)
|
|
{
|
|
var_01 = 0;
|
|
}
|
|
}
|
|
|
|
if(var_01)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
wait(0.5);
|
|
self.var_54CB = 1;
|
|
if(scripts\common\utility::istrue(self.var_9D25))
|
|
{
|
|
self dodamage(self.health + 1000,self.origin);
|
|
}
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_10D2E()
|
|
{
|
|
level thread func_E81B();
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_10927()
|
|
{
|
|
level endon("force_spawn_wave_done");
|
|
level endon("spawn_wave_done");
|
|
level endon("game_ended");
|
|
var_00 = level.var_5274;
|
|
var_01 = func_7C79();
|
|
level.var_E299 = 0;
|
|
if(!isdefined(level.var_2CDB))
|
|
{
|
|
level.var_2CDB = 50;
|
|
}
|
|
|
|
level.respawn_enemy_list = [];
|
|
level.respawn_data = undefined;
|
|
var_02 = func_C212();
|
|
var_03 = int(var_00 / 4);
|
|
var_04 = int(var_00 / 2);
|
|
var_05 = 0;
|
|
if(var_03 != var_04)
|
|
{
|
|
var_05 = randomintrange(var_03,var_04);
|
|
}
|
|
else
|
|
{
|
|
var_05 = var_03;
|
|
}
|
|
|
|
var_06 = 1;
|
|
var_07 = int(var_00 / 8);
|
|
var_08 = int(var_00 / 4);
|
|
if(var_07 != var_08)
|
|
{
|
|
var_06 = randomintrange(var_07,var_08);
|
|
}
|
|
else
|
|
{
|
|
var_06 = var_07;
|
|
}
|
|
|
|
var_06 = var_05 - var_06;
|
|
while(level.var_4B6E < level.var_5274)
|
|
{
|
|
while(scripts\common\utility::istrue(level.var_13FA3) || scripts\common\utility::istrue(level.nuke_zombies_paused))
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
var_09 = func_C209();
|
|
if(var_09 <= 0)
|
|
{
|
|
if(var_09 < 0)
|
|
{
|
|
func_A5FA(abs(var_09));
|
|
}
|
|
|
|
wait(0.1);
|
|
continue;
|
|
}
|
|
|
|
var_0A = undefined;
|
|
if(!isdefined(level.respawn_data) && level.respawn_enemy_list.size > 0)
|
|
{
|
|
level.respawn_data = level.respawn_enemy_list[0];
|
|
}
|
|
|
|
if((var_02 && var_05 < 1) || scripts\common\utility::flag("force_spawn_boss"))
|
|
{
|
|
var_0A = func_2CFC();
|
|
if(isdefined(var_0A))
|
|
{
|
|
if(scripts\common\utility::flag("force_spawn_boss"))
|
|
{
|
|
scripts\common\utility::func_6E2A("force_spawn_boss");
|
|
}
|
|
|
|
if(var_02 >= 1)
|
|
{
|
|
var_02--;
|
|
}
|
|
}
|
|
}
|
|
else if(should_spawn_clown() && var_05 < var_06)
|
|
{
|
|
var_0A = get_spawner_and_spawn_goons(var_09);
|
|
}
|
|
else if(respawning_special_zombie())
|
|
{
|
|
var_0A = get_spawner_and_spawn_goons(var_09);
|
|
}
|
|
else
|
|
{
|
|
if(var_05)
|
|
{
|
|
var_05--;
|
|
}
|
|
|
|
var_0A = func_10822();
|
|
}
|
|
|
|
if(isdefined(var_0A))
|
|
{
|
|
if(level.var_E299 > 0)
|
|
{
|
|
level.var_E299 = int(level.var_E299 - var_0A);
|
|
wait(0.1);
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_01 = func_7C79();
|
|
wait(var_01);
|
|
}
|
|
|
|
level.respawn_enemy_list = [];
|
|
level.respawn_data = undefined;
|
|
}
|
|
|
|
//Function Number: 74
|
|
respawning_special_zombie()
|
|
{
|
|
if(getdvar("ui_mapname") != "cp_final")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.respawn_data))
|
|
{
|
|
var_00 = level.respawn_data.type;
|
|
switch(var_00)
|
|
{
|
|
case "zombie_clown":
|
|
case "karatemaster":
|
|
case "alien_goon":
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_10822()
|
|
{
|
|
var_00 = func_7C2F();
|
|
if(isdefined(var_00))
|
|
{
|
|
if(!scripts\common\utility::istrue(var_00.var_19))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00.var_93A8 = 1;
|
|
var_01 = func_FF98(var_00);
|
|
if(isdefined(var_01))
|
|
{
|
|
var_02 = var_01;
|
|
}
|
|
else if(!isdefined(level.var_10E3C))
|
|
{
|
|
var_02 = "generic_zombie";
|
|
}
|
|
else
|
|
{
|
|
var_02 = scripts\common\utility::random(level.var_10E3C);
|
|
}
|
|
|
|
if(isdefined(level.respawn_data))
|
|
{
|
|
var_02 = level.respawn_data.type;
|
|
}
|
|
|
|
var_03 = var_00 func_1081B(var_02,1);
|
|
if(isdefined(var_03))
|
|
{
|
|
var_03 lib_0D48::func_668D(var_03);
|
|
var_03 lib_0D5E::func_6690(var_03);
|
|
var_00.var_A9F6 = gettime();
|
|
var_00 thread func_1296E(0.25);
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_2CFC()
|
|
{
|
|
if(isdefined(level.boss_spawn_func))
|
|
{
|
|
return [[ level.boss_spawn_func ]]();
|
|
}
|
|
|
|
var_00 = undefined;
|
|
var_01 = func_7C2E();
|
|
if(isdefined(var_01))
|
|
{
|
|
var_02 = scripts\common\utility::getstruct("brute_hide_org","targetname");
|
|
var_00 = var_02 func_1081B("zombie_brute",1);
|
|
if(!isdefined(var_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01.var_93A8 = 1;
|
|
level.var_A88E = level.wave_num;
|
|
func_3115(var_01);
|
|
var_00 func_BC94(var_01);
|
|
var_01.var_93A8 = 0;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
level notify("boss_spawned",var_00);
|
|
level thread func_CCBB();
|
|
if(scripts\common\utility::flag("force_spawn_boss"))
|
|
{
|
|
var_00.var_72AC = 1;
|
|
}
|
|
|
|
var_00 thread killplayersifonhead(var_00);
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 77
|
|
killplayersifonhead(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
param_00 endon("death");
|
|
var_01 = scripts\common\trace::func_48B1();
|
|
for(;;)
|
|
{
|
|
foreach(var_03 in level.players)
|
|
{
|
|
if(distance2dsquared(var_03.origin,param_00.origin) <= 1024)
|
|
{
|
|
if(!var_03 isonground() && var_03.origin[2] > param_00.origin[2])
|
|
{
|
|
var_04 = scripts\common\trace::func_3A09(param_00 gettagorigin("tag_eye"),param_00 gettagorigin("tag_eye") + (0,0,56),32,64,undefined,param_00);
|
|
if(isdefined(var_04["entity"]) && isplayer(var_04["entity"]) && !var_04["entity"] isonground())
|
|
{
|
|
var_04["entity"] dodamage(10000,param_00.origin,var_04["entity"],var_04["entity"],"MOD_UNKNOWN","frag_grenade_zm");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
wait(0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 78
|
|
func_CCBB()
|
|
{
|
|
if(level.var_311A == 1)
|
|
{
|
|
foreach(var_01 in level.players)
|
|
{
|
|
var_01 thread scripts\cp\_vo::try_to_play_vo("brute_generic","zmb_comment_vo","highest",20,0,0,1);
|
|
}
|
|
|
|
wait(6);
|
|
level thread scripts\cp\_vo::try_to_play_vo("ww_brute_spawn","zmb_ww_vo","highest",20,0,0,1);
|
|
return;
|
|
}
|
|
|
|
level.var_311A = 1;
|
|
foreach(var_01 in level.players)
|
|
{
|
|
var_01 thread scripts\cp\_vo::try_to_play_vo("brute_first","zmb_comment_vo","highest",20,0,0,1);
|
|
}
|
|
|
|
wait(6);
|
|
level thread scripts\cp\_vo::try_to_play_vo("ww_brute_firstspawn","zmb_ww_vo","highest",20,0,0,1);
|
|
}
|
|
|
|
//Function Number: 79
|
|
func_C212()
|
|
{
|
|
if(getdvar("ui_mapname") == "cp_rave" || getdvar("ui_mapname") == "cp_disco")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = 10;
|
|
var_01 = 19;
|
|
if(!isdefined(level.var_A88E))
|
|
{
|
|
level.var_A88E = 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_3120))
|
|
{
|
|
level.var_3120 = [];
|
|
}
|
|
|
|
var_02 = 0;
|
|
var_03 = getdvarint("scr_force_boss_spawn",0);
|
|
if(var_03 != 0)
|
|
{
|
|
if(level.wave_num > var_01)
|
|
{
|
|
var_02 = 2;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
|
|
if(level.var_3120.size < var_02)
|
|
{
|
|
return var_02 - level.var_3120.size;
|
|
}
|
|
}
|
|
|
|
if(level.wave_num < var_00)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::flag("pause_wave_progression"))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.var_A88E + 3 < level.wave_num)
|
|
{
|
|
if(randomint(100) < level.var_2CDB)
|
|
{
|
|
level.var_2CDB = 50;
|
|
if(level.wave_num > var_01)
|
|
{
|
|
var_02 = 2;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
|
|
if(level.var_3120.size < var_02)
|
|
{
|
|
return var_02 - level.var_3120.size;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.var_2CDB = level.var_2CDB + 50;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 80
|
|
should_spawn_clown()
|
|
{
|
|
if(isdefined(level.should_spawn_special_zombie_func))
|
|
{
|
|
var_00 = [[ level.should_spawn_special_zombie_func ]]();
|
|
return scripts\common\utility::istrue(var_00);
|
|
}
|
|
|
|
if(isdefined(level.no_clown_spawn))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(level.respawn_data))
|
|
{
|
|
if(level.respawn_data.type == "zombie_clown")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
var_01 = randomint(100);
|
|
if(var_01 < min(level.wave_num - 19,10) && level.wave_num > 20)
|
|
{
|
|
if(gettime() - level.last_clown_spawn_time > 15000)
|
|
{
|
|
level.last_clown_spawn_time = gettime();
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 81
|
|
func_AD62()
|
|
{
|
|
level endon("game_ended");
|
|
for(;;)
|
|
{
|
|
if(getdvarint("scr_reserve_spawning") > 0)
|
|
{
|
|
level.var_E1CC = getdvarint("scr_reserve_spawning");
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 82
|
|
func_A5FA(param_00,param_01)
|
|
{
|
|
var_02 = cos(70);
|
|
var_03 = 0;
|
|
foreach(var_05 in level.spawned_enemies)
|
|
{
|
|
if(isdefined(var_05.var_594C))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_06 = 0;
|
|
foreach(var_08 in level.players)
|
|
{
|
|
var_06 = scripts\common\utility::func_13D90(var_08.origin,var_08.angles,var_05.origin,var_02);
|
|
if(var_06)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(!var_06)
|
|
{
|
|
var_05.var_54CB = 1;
|
|
var_05 dodamage(var_05.health + 980,var_05.origin,var_05,var_05,"MOD_SUICIDE");
|
|
var_03++;
|
|
if(param_00 <= var_03)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
if(param_00 > var_03)
|
|
{
|
|
var_0B = scripts\common\utility::array_randomize(level.spawned_enemies);
|
|
foreach(var_05 in var_0B)
|
|
{
|
|
if(isdefined(var_05.var_594C))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05.var_54CB = 1;
|
|
var_05 dodamage(var_05.health + 970,var_05.origin,var_05,var_05,"MOD_SUICIDE");
|
|
var_03++;
|
|
if(param_00 <= var_03)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 83
|
|
func_726E()
|
|
{
|
|
level notify("force_spawn_wave_done");
|
|
wait(0.1);
|
|
level.var_B467 = 0;
|
|
level.var_B432 = 0;
|
|
level.var_11046 = 1;
|
|
}
|
|
|
|
//Function Number: 84
|
|
func_172A(param_00)
|
|
{
|
|
var_01 = (0,0,0);
|
|
var_02 = (0,0,0);
|
|
var_03 = param_00 gettagorigin("j_spine4");
|
|
var_04 = spawn("script_model",var_03);
|
|
var_04 setmodel("zombies_backpack");
|
|
var_04.angles = param_00.angles;
|
|
var_04 linkto(param_00,var_03,var_01,var_02);
|
|
param_00.var_8B9B = 1;
|
|
}
|
|
|
|
//Function Number: 85
|
|
func_C209()
|
|
{
|
|
var_00 = 100;
|
|
var_01 = level.var_B467 - level.var_4B95 - level.var_E1CC - level.var_50F8;
|
|
if(var_01 < var_00)
|
|
{
|
|
var_00 = var_01;
|
|
}
|
|
|
|
if(scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
return var_00;
|
|
}
|
|
|
|
var_01 = level.var_5274 - level.var_4B95 - level.var_4B6E - level.var_50F8;
|
|
if(var_01 < var_00)
|
|
{
|
|
var_00 = var_01;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 86
|
|
func_1296E(param_00)
|
|
{
|
|
self endon("dont_restart_spawner");
|
|
self.var_19 = 0;
|
|
wait(param_00);
|
|
self.var_19 = 1;
|
|
}
|
|
|
|
//Function Number: 87
|
|
func_7C79()
|
|
{
|
|
if(scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
var_00 = level.players.size;
|
|
return 1 / var_00;
|
|
}
|
|
|
|
var_01 = 2;
|
|
if(level.wave_num == 1)
|
|
{
|
|
return var_01;
|
|
}
|
|
|
|
var_02 = var_01 * pow(0.95,level.wave_num - 1);
|
|
if(isdefined(level.var_10847))
|
|
{
|
|
var_02 = level.var_10847;
|
|
}
|
|
|
|
if(var_02 < 0.08)
|
|
{
|
|
var_02 = 0.08;
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 88
|
|
func_1068A(param_00,param_01)
|
|
{
|
|
var_02 = "zombie_clown";
|
|
var_03 = self.origin;
|
|
var_04 = self.angles;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_03 = param_00.origin;
|
|
var_04 = param_00.angles;
|
|
}
|
|
else if(isdefined(param_01))
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
|
|
var_05 = func_13F53(var_02,var_03,var_04,"axis",self);
|
|
if(!isdefined(var_05))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isdefined(self.var_13538))
|
|
{
|
|
var_05.var_13538 = self.var_13538;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9B95))
|
|
{
|
|
var_05 thread func_42EC(var_02);
|
|
}
|
|
else
|
|
{
|
|
var_05 thread func_64E7(var_02);
|
|
}
|
|
|
|
level notify("agent_spawned",var_05);
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 89
|
|
func_1081B(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = self.origin;
|
|
var_05 = self.angles;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_04 = param_02.origin;
|
|
var_05 = param_02.angles;
|
|
}
|
|
else if(isdefined(param_03))
|
|
{
|
|
var_04 = param_03;
|
|
}
|
|
|
|
if(!isdefined(self.var_ECF5))
|
|
{
|
|
var_04 = getclosestpointonnavmesh(var_04);
|
|
var_04 = var_04 + (0,0,5);
|
|
}
|
|
|
|
if(level.agent_definition[param_00]["species"] == "alien")
|
|
{
|
|
var_06 = func_1B98(param_00,var_04,var_05,self);
|
|
level thread lib_0D62::func_CE9C(var_06,"spawn",1);
|
|
}
|
|
else if(level.agent_definition[param_01]["species"] == "c6")
|
|
{
|
|
var_06 = func_33B1(param_01,var_05,var_06,"axis",self);
|
|
}
|
|
else if(param_01 == "zombie_brute")
|
|
{
|
|
var_06 = func_13F13("zombie_brute","axis",var_05,var_06);
|
|
if(isdefined(var_06))
|
|
{
|
|
level thread lib_0D62::func_CE9C(var_06,"spawn",1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_06 = func_13F53(param_01,var_05,var_06,"axis",self);
|
|
}
|
|
|
|
if(!isdefined(var_06))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isdefined(self.var_13538))
|
|
{
|
|
var_06.var_13538 = self.var_13538;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_01))
|
|
{
|
|
var_06.var_9CD9 = 1;
|
|
}
|
|
|
|
var_06.dont_cleanup = undefined;
|
|
if(func_9BF8())
|
|
{
|
|
var_06 thread func_8637();
|
|
}
|
|
|
|
if(isdefined(self.target) && !scripts\common\utility::istrue(self.var_1024B))
|
|
{
|
|
var_07 = scripts\common\utility::getstructarray(self.target,"targetname");
|
|
var_08 = scripts\common\utility::random(var_07);
|
|
var_04 = var_08.origin;
|
|
}
|
|
|
|
var_06.var_4298 = scripts\cp\_utility::func_78B4(var_04);
|
|
if(scripts\common\utility::istrue(self.var_9B95))
|
|
{
|
|
var_06 thread func_42EC(param_00);
|
|
}
|
|
else if(param_00 == "zombie_brute")
|
|
{
|
|
var_06 thread func_3114();
|
|
}
|
|
else
|
|
{
|
|
var_06 thread func_64E7(param_00);
|
|
}
|
|
|
|
level notify("agent_spawned",var_06);
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 90
|
|
func_13F53(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = scripts\mp\_mp_agent::func_108E8(param_00,param_03,param_01,param_02,undefined,param_04);
|
|
if(!isdefined(var_05))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isdefined(var_05.spawner))
|
|
{
|
|
if(param_04 lib_0C2B::func_10863())
|
|
{
|
|
var_05.entered_playspace = 1;
|
|
}
|
|
}
|
|
|
|
var_05 method_8287(var_05.var_503C);
|
|
var_05.maxhealth = var_05 func_3728(param_00);
|
|
var_05.health = var_05.maxhealth;
|
|
if(isdefined(level.respawn_data))
|
|
{
|
|
var_06 = -1;
|
|
for(var_07 = 0;var_07 < level.respawn_enemy_list.size;var_07++)
|
|
{
|
|
if(level.respawn_enemy_list[var_07].var_92B8 == level.respawn_data.var_92B8 && level.respawn_data.type == param_00)
|
|
{
|
|
var_06 = var_07;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(var_06 > -1)
|
|
{
|
|
if(isdefined(level.respawn_data.health))
|
|
{
|
|
var_05.health = level.respawn_data.health;
|
|
}
|
|
|
|
level.respawn_enemy_list = scripts\cp\_utility::func_22B0(level.respawn_enemy_list,var_06);
|
|
}
|
|
|
|
level.respawn_data = undefined;
|
|
}
|
|
|
|
if(param_00 == "karatemaster" && isdefined(level.zombie_karatemaster_vo_prefix))
|
|
{
|
|
var_05.var_13550 = level.zombie_karatemaster_vo_prefix;
|
|
}
|
|
else if(param_00 == "zombie_brute")
|
|
{
|
|
var_05.var_13550 = level.var_13F14;
|
|
}
|
|
else if(param_00 == "zombie_cop")
|
|
{
|
|
var_05.var_13550 = level.var_13F1A;
|
|
}
|
|
else if(param_00 == "zombie_clown")
|
|
{
|
|
var_05.var_13550 = level.var_13F18;
|
|
}
|
|
else if(issubstr(var_05.model,"female"))
|
|
{
|
|
var_05.var_13550 = level.var_13F24;
|
|
}
|
|
else if(randomint(100) > 50)
|
|
{
|
|
var_05.var_13550 = level.var_13F39;
|
|
}
|
|
else
|
|
{
|
|
var_05.var_13550 = level.var_13F3A;
|
|
}
|
|
|
|
var_05 thread lib_0D62::func_13F10();
|
|
if(param_00 == "alien_goon" || param_00 == "alien_phantom" || param_00 == "alien_rhino")
|
|
{
|
|
var_05 thread setemissive();
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 91
|
|
setemissive()
|
|
{
|
|
self endon("death");
|
|
wait(0.5);
|
|
self method_80BB(0,0.4);
|
|
}
|
|
|
|
//Function Number: 92
|
|
func_FF98(param_00)
|
|
{
|
|
if(isdefined(param_00.var_ECF5) && param_00.var_ECF5 == "spawn_ceiling" || param_00.var_ECF5 == "spawn_wall_low")
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isdefined(level.var_1094E))
|
|
{
|
|
var_01 = undefined;
|
|
var_02 = scripts\common\utility::func_22A8(level.var_1094E);
|
|
foreach(var_06, var_04 in var_02)
|
|
{
|
|
var_05 = [[ var_02[var_06] ]]();
|
|
if(isdefined(var_05))
|
|
{
|
|
return var_05;
|
|
}
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 93
|
|
func_DB23()
|
|
{
|
|
self endon("death");
|
|
wait(2);
|
|
self setscriptablepartstate("glasses","show");
|
|
}
|
|
|
|
//Function Number: 94
|
|
func_13F13(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = 2000;
|
|
var_05 = 2;
|
|
switch(level.players.size)
|
|
{
|
|
case 1:
|
|
case 0:
|
|
var_05 = var_05 * 1;
|
|
break;
|
|
|
|
case 2:
|
|
var_05 = var_05 * 1.5;
|
|
break;
|
|
|
|
case 3:
|
|
var_05 = var_05 * 2;
|
|
break;
|
|
|
|
case 4:
|
|
var_05 = var_05 * 2.5;
|
|
break;
|
|
}
|
|
|
|
var_06 = scripts\mp\_mp_agent::func_108E8(param_00,param_01,param_02,param_03,"iw7_zombie_laser_mp");
|
|
if(!isdefined(var_06))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_07 = func_3728("generic_zombie");
|
|
var_08 = int(var_07 * var_05);
|
|
var_06.maxhealth = int(min(var_04 + var_08,5000));
|
|
var_06.health = var_06.maxhealth;
|
|
var_06.var_8DF0 = min(var_06.maxhealth * 0.5,5000);
|
|
var_06.var_13550 = level.var_13F14;
|
|
var_06 thread func_310F();
|
|
var_06 thread func_53A9();
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 95
|
|
func_53A9()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("death");
|
|
var_00 = 0;
|
|
var_01 = 2304;
|
|
for(;;)
|
|
{
|
|
var_02 = self.origin;
|
|
wait(1);
|
|
if(!scripts\common\utility::istrue(self.var_2B5A))
|
|
{
|
|
if(distancesquared(self.origin,var_02) < var_01)
|
|
{
|
|
var_00++;
|
|
}
|
|
else
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
|
|
if(var_00 > 3)
|
|
{
|
|
self setorigin(self.origin + (0,0,5),1);
|
|
var_00 = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 96
|
|
func_13F2A(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = scripts\mp\_mp_agent::func_108E8(param_00,param_01,param_02,param_03);
|
|
if(!isdefined(var_04))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_04.maxhealth = 99999999;
|
|
var_04.health = var_04.maxhealth;
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 97
|
|
func_9BF8()
|
|
{
|
|
if(isdefined(self.var_EE79) && self.var_EE79 == "ground_spawn" || self.var_EE79 == "ground_spawn_no_boards")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 98
|
|
func_8637()
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.spawner.var_ECF5))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_EF64 = 1;
|
|
self.var_180 = 1;
|
|
var_00 = 100;
|
|
if(!isdefined(self.spawner.angles))
|
|
{
|
|
self.spawner.angles = (0,0,0);
|
|
}
|
|
|
|
var_01 = anglestoup(self.spawner.angles);
|
|
var_01 = vectornormalize(var_01);
|
|
var_02 = -1 * var_01;
|
|
var_02 = var_02 * var_00;
|
|
var_03 = 0;
|
|
if(abs(self.spawner.angles[2]) > 45)
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
|
|
if(var_03)
|
|
{
|
|
var_04 = scripts\common\trace::func_DCED(self.spawner.origin - (0,0,100),self.spawner.origin + (0,0,50),self);
|
|
}
|
|
else
|
|
{
|
|
var_04 = scripts\common\trace::func_DCED(self.spawner.origin + (0,0,50),self.spawner.origin - (0,0,100),self);
|
|
}
|
|
|
|
var_05 = var_04["position"] + var_02;
|
|
var_06 = var_04["position"];
|
|
func_13F1D(var_05,var_06,var_03);
|
|
self.var_EF64 = 0;
|
|
self.var_180 = 0;
|
|
}
|
|
|
|
//Function Number: 99
|
|
func_13F1D(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
var_03 = spawn("script_origin",param_00);
|
|
var_03.angles = self.spawner.angles;
|
|
self setorigin(param_00,0);
|
|
self setplayerangles(self.spawner.angles);
|
|
self linkto(var_03);
|
|
self.var_AD1D = var_03;
|
|
thread func_5173(var_03);
|
|
var_04 = 2;
|
|
if(!param_02)
|
|
{
|
|
var_03 moveto(param_01,var_04,0.1,0.1);
|
|
playfx(level._effect["drone_ground_spawn"],param_01,(0,0,1));
|
|
wait(var_04);
|
|
}
|
|
else
|
|
{
|
|
var_03 moveto(param_01,var_04,0.1,0.1);
|
|
playfx(level._effect["drone_ground_spawn"],param_01,(0,0,-1));
|
|
wait(var_04);
|
|
var_05 = scripts\common\trace::func_DCED(param_01 - (0,0,10),param_01 - (0,0,1000),self);
|
|
var_03 moveto(var_05["position"] + (0,0,10),0.25,0.1,0.1);
|
|
var_06 = (var_03.angles[0],var_03.angles[1],0);
|
|
var_03 rotateto(var_06,0.25,0.1,0.1);
|
|
wait(0.25);
|
|
}
|
|
|
|
if(self.spawner.var_EE79 == "ground_spawn_no_boards")
|
|
{
|
|
self.entered_playspace = 1;
|
|
}
|
|
|
|
self unlink();
|
|
self notify("emerge_done");
|
|
}
|
|
|
|
//Function Number: 100
|
|
func_5173(param_00)
|
|
{
|
|
scripts\common\utility::waittill_any_3("death","emerge_done");
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 101
|
|
func_33B1(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(!isdefined(param_05))
|
|
{
|
|
param_05 = "iw7_erad_zm";
|
|
}
|
|
|
|
var_06 = scripts\mp\_mp_agent::func_108E8(param_00,param_03,param_01,param_02,param_05);
|
|
if(!isdefined(var_06))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
var_06.spawner = param_04;
|
|
}
|
|
|
|
var_06.var_9CA2 = 1;
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 102
|
|
func_3728(param_00)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = level.wave_num;
|
|
if(isdefined(level.var_8CBD) && isdefined(level.var_8CBD[param_00]))
|
|
{
|
|
var_01 = [[ level.var_8CBD[param_00] ]]();
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(level.var_13BD6))
|
|
{
|
|
var_02 = level.var_13BD6;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9BA7))
|
|
{
|
|
var_02 = var_02 + 3;
|
|
}
|
|
else if(scripts\common\utility::istrue(self.is_skeleton))
|
|
{
|
|
var_02 = var_02 + 10;
|
|
}
|
|
|
|
var_03 = 150;
|
|
if(var_02 == 1)
|
|
{
|
|
var_01 = var_03;
|
|
}
|
|
else if(var_02 <= 9)
|
|
{
|
|
var_01 = var_03 + var_02 - 1 * 100;
|
|
}
|
|
else
|
|
{
|
|
var_04 = 950;
|
|
var_05 = var_02 - 9;
|
|
var_01 = var_04 * pow(1.1,var_05);
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_8CB3[param_00]))
|
|
{
|
|
var_01 = int(var_01 * level.var_8CB3[param_00]);
|
|
}
|
|
|
|
if(var_01 > 6100000)
|
|
{
|
|
var_01 = 6100000;
|
|
}
|
|
|
|
return int(var_01);
|
|
}
|
|
|
|
//Function Number: 103
|
|
func_7C83(param_00,param_01)
|
|
{
|
|
if(isdefined(level.var_7C80))
|
|
{
|
|
return [[ level.var_7C80 ]]();
|
|
}
|
|
|
|
var_02 = [];
|
|
var_03 = level.var_10816;
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(!var_05.var_19)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_06 = 0;
|
|
foreach(var_08 in level.players)
|
|
{
|
|
if(isdefined(param_01) && !var_08 scripts\cp\_utility::is_valid_player())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_08 istouching(var_05))
|
|
{
|
|
var_06 = 1;
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_00) && var_08 func_9C0F(var_05))
|
|
{
|
|
var_06 = 1;
|
|
}
|
|
}
|
|
|
|
if(var_06)
|
|
{
|
|
var_02[var_02.size] = var_05;
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 104
|
|
func_7C82(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(level.var_7C80))
|
|
{
|
|
return [[ level.var_7C80 ]]();
|
|
}
|
|
|
|
var_03 = [];
|
|
var_04 = level.var_10816;
|
|
foreach(var_06 in var_04)
|
|
{
|
|
if(!var_06.var_19)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_07 = 0;
|
|
if(isdefined(param_01) && !param_02 scripts\cp\_utility::is_valid_player())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(param_02 istouching(var_06))
|
|
{
|
|
var_07 = 1;
|
|
}
|
|
else if(scripts\common\utility::istrue(param_00) && param_02 func_9C0F(var_06))
|
|
{
|
|
var_07 = 1;
|
|
}
|
|
|
|
if(var_07)
|
|
{
|
|
var_03[var_03.size] = var_06;
|
|
}
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 105
|
|
func_9C0F(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(param_00.var_186E))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
foreach(var_02 in param_00.var_186E)
|
|
{
|
|
if(!var_02.var_19)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(self istouching(var_02))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 106
|
|
func_94D5()
|
|
{
|
|
while(!isdefined(level.var_1BEC))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
level.var_186E = [];
|
|
level.var_186E["hidden_room"] = [];
|
|
level.var_C50A["mars_3"]["swamp_stage"] = 1;
|
|
var_00 = [];
|
|
foreach(var_02 in level.var_1BEC)
|
|
{
|
|
if(isdefined(var_02.script_area) && isdefined(var_02.script_noteworthy) && var_02.script_noteworthy != "fast_travel")
|
|
{
|
|
var_00[var_00.size] = var_02;
|
|
}
|
|
}
|
|
|
|
level.var_59F4 = var_00;
|
|
scripts\common\utility::flag_set("init_adjacent_volumes_done");
|
|
}
|
|
|
|
//Function Number: 107
|
|
func_F28B(param_00)
|
|
{
|
|
var_01 = param_00.target;
|
|
var_02 = undefined;
|
|
var_03 = param_00.script_area;
|
|
var_04 = undefined;
|
|
foreach(var_06 in level.var_59F4)
|
|
{
|
|
if(param_00 == var_06)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06.script_area == var_03)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_06.target == var_01)
|
|
{
|
|
var_04 = var_06.script_area;
|
|
var_02 = var_06;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_02))
|
|
{
|
|
if(!func_9C59(var_04,var_03))
|
|
{
|
|
func_1751(var_02,param_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 108
|
|
func_1751(param_00,param_01)
|
|
{
|
|
if(param_00.script_area == param_01.script_area)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_186E[param_00.script_area]))
|
|
{
|
|
level.var_186E[param_00.script_area] = [];
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(level.var_186E[param_00.script_area],param_01.script_area))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_186E[param_00.script_area][level.var_186E[param_00.script_area].size] = param_01.script_area;
|
|
func_12E46(param_00.script_area,param_01.script_area);
|
|
}
|
|
|
|
//Function Number: 109
|
|
func_9C59(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_C50A))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_C50A[param_00]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_C50A[param_00][param_01]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 110
|
|
func_12E46(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_10816[param_01]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_10816[param_01].var_186E))
|
|
{
|
|
level.var_10816[param_01].var_186E = [];
|
|
}
|
|
|
|
level.var_10816[param_01].var_186E[level.var_10816[param_01].var_186E.size] = level.var_10816[param_00];
|
|
}
|
|
|
|
//Function Number: 111
|
|
update_volume_adjacency_by_name(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_186E[param_00]))
|
|
{
|
|
level.var_186E[param_00] = [];
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(level.var_186E[param_00],param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_186E[param_00][level.var_186E[param_00].size] = param_01;
|
|
func_12E46(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 112
|
|
func_7C8C()
|
|
{
|
|
if(isdefined(level.var_13FA6))
|
|
{
|
|
return [[ level.var_13FA6 ]]();
|
|
}
|
|
|
|
return scripts\common\utility::random(level.var_1647);
|
|
}
|
|
|
|
//Function Number: 113
|
|
func_15FC(param_00)
|
|
{
|
|
if(isdefined(level.var_10816[param_00]))
|
|
{
|
|
level.var_10816[param_00] func_B291();
|
|
}
|
|
}
|
|
|
|
//Function Number: 114
|
|
deactivate_volume_by_name(param_00)
|
|
{
|
|
if(isdefined(level.var_10816[param_00]))
|
|
{
|
|
level.var_10816[param_00] func_B292();
|
|
}
|
|
}
|
|
|
|
//Function Number: 115
|
|
func_B291()
|
|
{
|
|
if(isdefined(self.var_19) && self.var_19)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = 1;
|
|
if(scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
if(!scripts\common\utility::istrue(self.var_19))
|
|
{
|
|
level.var_1647 = [];
|
|
}
|
|
else
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
}
|
|
|
|
self.var_19 = 1;
|
|
if(!func_9C13(level.var_1646,self))
|
|
{
|
|
level.var_1646[level.var_1646.size] = self;
|
|
if(isdefined(self.var_1087B) && var_00)
|
|
{
|
|
foreach(var_02 in self.var_1087B)
|
|
{
|
|
var_02 func_B287();
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_8457))
|
|
{
|
|
foreach(var_02 in self.var_8457)
|
|
{
|
|
var_02 func_B26D();
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_8271))
|
|
{
|
|
foreach(var_02 in self.var_8271)
|
|
{
|
|
var_02 func_B26D();
|
|
}
|
|
}
|
|
}
|
|
|
|
var_08 = scripts\common\utility::getstructarray("secure_window","script_noteworthy");
|
|
foreach(var_0A in var_08)
|
|
{
|
|
if(function_010F(var_0A.origin,self))
|
|
{
|
|
var_0B = scripts\common\utility::getclosest(var_0A.origin,level.var_13D59);
|
|
var_0B.var_6261 = 1;
|
|
}
|
|
}
|
|
|
|
level.active_player_respawn_locs = scripts\common\utility::array_combine(level.active_player_respawn_locs,self.var_D25E);
|
|
level notify("volume_activated",self.var_28AB);
|
|
}
|
|
|
|
//Function Number: 116
|
|
func_B292()
|
|
{
|
|
if(isdefined(self.var_19) && !self.var_19)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_19 = 0;
|
|
if(func_9C13(level.var_1646,self))
|
|
{
|
|
level.var_1646 = scripts\common\utility::func_22A9(level.var_1646,self);
|
|
if(isdefined(self.var_1087B))
|
|
{
|
|
foreach(var_01 in self.var_1087B)
|
|
{
|
|
var_01 func_B288();
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_8457))
|
|
{
|
|
foreach(var_01 in self.var_8457)
|
|
{
|
|
var_01 func_B26E();
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_D25E))
|
|
{
|
|
foreach(var_01 in self.var_D25E)
|
|
{
|
|
level.active_player_respawn_locs = scripts\common\utility::func_22A9(level.active_player_respawn_locs,var_01);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 117
|
|
func_B287()
|
|
{
|
|
if(!func_9C13(level.var_1647,self))
|
|
{
|
|
level.var_1647[level.var_1647.size] = self;
|
|
}
|
|
|
|
self.var_19 = 1;
|
|
self.var_93A8 = 0;
|
|
}
|
|
|
|
//Function Number: 118
|
|
func_B288()
|
|
{
|
|
if(func_9C13(level.var_1647,self))
|
|
{
|
|
level.var_1647 = scripts\common\utility::func_22A9(level.var_1647,self);
|
|
}
|
|
|
|
self.var_19 = 0;
|
|
}
|
|
|
|
//Function Number: 119
|
|
func_D1F7()
|
|
{
|
|
self endon("disconnect");
|
|
self endon("death");
|
|
level endon("game_ended");
|
|
var_00 = 35;
|
|
var_01 = var_00 * var_00;
|
|
var_02 = 1000;
|
|
while(!isdefined(level.spawned_enemies))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(scripts\cp\_utility::func_9E3A())
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
continue;
|
|
}
|
|
|
|
if(level.spawned_enemies.size > 0)
|
|
{
|
|
var_03 = sortbydistance(level.spawned_enemies,self.origin);
|
|
for(var_04 = 0;var_04 < var_03.size;var_04++)
|
|
{
|
|
var_05 = var_03[var_04];
|
|
if(!agent_type_does_auto_melee(var_05))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!var_05 func_3828())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_05.attackent))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_05.var_A88B))
|
|
{
|
|
var_05.var_A88B = gettime();
|
|
}
|
|
|
|
if(distance2dsquared(var_05.origin,self.origin) < var_01)
|
|
{
|
|
var_06 = gettime();
|
|
if(var_05.var_A88B + 1000 < var_06)
|
|
{
|
|
if(isdefined(var_05.var_A9B8))
|
|
{
|
|
if(var_05.var_A9B8 + 1000 < var_06)
|
|
{
|
|
if(!func_CFB2(var_05))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
func_576B(var_05);
|
|
break;
|
|
}
|
|
}
|
|
else if(!isdefined(var_05.hasplayedvignetteanim) || var_05.hasplayedvignetteanim)
|
|
{
|
|
if(!scripts\common\utility::istrue(var_05.var_2BE7))
|
|
{
|
|
if(!func_CFB2(var_05))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
func_576B(var_05);
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 120
|
|
agent_type_does_auto_melee(param_00)
|
|
{
|
|
if(isdefined(level.auto_melee_agent_type_check))
|
|
{
|
|
return [[ level.auto_melee_agent_type_check ]](param_00);
|
|
}
|
|
|
|
if(!isdefined(param_00.agent_type))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00.agent_type == "zombie_brute" || param_00.agent_type == "zombie_clown")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 121
|
|
func_576B(param_00)
|
|
{
|
|
param_00 lib_0A1B::func_2965(self);
|
|
param_00.var_A88B = gettime();
|
|
self dodamage(45,param_00.origin,param_00,param_00,"MOD_IMPACT","none");
|
|
}
|
|
|
|
//Function Number: 122
|
|
func_3828()
|
|
{
|
|
if(scripts\common\utility::istrue(self.var_9E0C))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\mp\agents\zombie\zmb_zombie_agent::func_5F70())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9CEC))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9CEF))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_11196))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9BB0))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_B36E))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9BC9))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.killing_time))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 123
|
|
func_64E7(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
func_12E2A();
|
|
if(param_00 != "zombie_brute" && !scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
thread func_A5B4();
|
|
}
|
|
|
|
thread func_135A3();
|
|
}
|
|
|
|
//Function Number: 124
|
|
func_42EC(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
level.spawned_enemies[level.spawned_enemies.size] = self;
|
|
self.var_54CB = 1;
|
|
self.allowpain = 0;
|
|
}
|
|
|
|
//Function Number: 125
|
|
func_3114()
|
|
{
|
|
level endon("game_ended");
|
|
if(!isdefined(level.var_3120))
|
|
{
|
|
level.var_3120 = [];
|
|
}
|
|
|
|
level.var_3120 = scripts\common\utility::array_add_safe(level.var_3120,self);
|
|
self.allowpain = 0;
|
|
self.var_9CA2 = 1;
|
|
func_93EB(1);
|
|
level.spawned_enemies[level.spawned_enemies.size] = self;
|
|
thread func_135A3();
|
|
self waittill("death");
|
|
level.var_3120 = scripts\common\utility::func_22A9(level.var_3120,self);
|
|
func_4FB8(1);
|
|
}
|
|
|
|
//Function Number: 126
|
|
func_12E2A()
|
|
{
|
|
var_00 = 1;
|
|
level.spawned_enemies[level.spawned_enemies.size] = self;
|
|
level.var_4B95 = level.var_4B95 + var_00;
|
|
}
|
|
|
|
//Function Number: 127
|
|
func_12E29(param_00,param_01)
|
|
{
|
|
var_02 = 1;
|
|
if(isdefined(self.var_24CA))
|
|
{
|
|
var_03 = self.var_24CA;
|
|
lib_0D4D::func_DF34(self.var_24CA);
|
|
self.var_24CA = undefined;
|
|
}
|
|
|
|
level.spawned_enemies = scripts\common\utility::func_22A9(level.spawned_enemies,self);
|
|
if(scripts\common\utility::istrue(self.var_9CA2))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_4B95 = level.var_4B95 - var_02;
|
|
if(scripts\common\utility::flag("pause_wave_progression"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!self.var_54CB)
|
|
{
|
|
level.var_4B6E = level.var_4B6E + var_02;
|
|
return;
|
|
}
|
|
|
|
add_to_respawn_list();
|
|
level.var_E299++;
|
|
}
|
|
|
|
//Function Number: 128
|
|
add_to_respawn_list()
|
|
{
|
|
var_00 = spawnstruct();
|
|
var_00.health = self.died_poorly_health;
|
|
var_00.type = self.agent_type;
|
|
var_00.var_92B8 = gettime();
|
|
level.respawn_enemy_list[level.respawn_enemy_list.size] = var_00;
|
|
self.died_poorly_health = undefined;
|
|
}
|
|
|
|
//Function Number: 129
|
|
func_A5B4()
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.var_594C))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = 625;
|
|
var_01 = 100;
|
|
var_02 = 0;
|
|
var_03 = self.origin;
|
|
var_04 = self.angles;
|
|
self.traversal_start_time = undefined;
|
|
wait(1);
|
|
if(isdefined(self.spawner) && isdefined(self.spawner.var_ECF5))
|
|
{
|
|
while(!scripts\common\utility::istrue(self.hasplayedvignetteanim))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
while(!isdefined(self.var_2303.var_4B12))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.var_9CEC))
|
|
{
|
|
var_05 = gettime();
|
|
if(!isdefined(self.traversal_start_time))
|
|
{
|
|
self.traversal_start_time = var_05;
|
|
wait(1);
|
|
continue;
|
|
}
|
|
else if(var_05 - self.traversal_start_time < 10000)
|
|
{
|
|
wait(1);
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 6;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self.traversal_start_time = undefined;
|
|
}
|
|
|
|
if(isdefined(self.var_9393))
|
|
{
|
|
wait(1);
|
|
continue;
|
|
}
|
|
|
|
if(self.var_9BB0 || self.var_152C || scripts\common\utility::istrue(self.var_11196) || scripts\common\utility::istrue(self.var_4F42))
|
|
{
|
|
wait(1);
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_594C))
|
|
{
|
|
wait(1);
|
|
continue;
|
|
}
|
|
|
|
var_06 = var_00;
|
|
if(self.var_2303.var_4B12 == "slow_walk")
|
|
{
|
|
var_06 = var_01;
|
|
}
|
|
|
|
if(distancesquared(self.origin,var_03) < var_06)
|
|
{
|
|
if(isdefined(self.var_9CDD))
|
|
{
|
|
var_02++;
|
|
}
|
|
else if(isdefined(self.var_4B26))
|
|
{
|
|
var_07 = anglesdelta(var_04,self.angles);
|
|
var_08 = distancesquared(self.origin,self.var_4B26.origin);
|
|
if(var_08 > 10000 && var_07 < 45)
|
|
{
|
|
var_02++;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 0;
|
|
}
|
|
}
|
|
else if(isdefined(self.var_6658))
|
|
{
|
|
if(!lib_0D4D::func_664D(self.var_6658))
|
|
{
|
|
var_02++;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_02 = 0;
|
|
}
|
|
|
|
if(var_02 == 4)
|
|
{
|
|
self setorigin(self.origin + (0,0,10),0);
|
|
}
|
|
|
|
if(var_02 > 5)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_04 = self.angles;
|
|
var_03 = self.origin;
|
|
wait(1);
|
|
}
|
|
|
|
self.var_54CB = 1;
|
|
if(scripts\common\utility::istrue(self.var_B36D) && isdefined(level.var_C20A))
|
|
{
|
|
level.var_C20A--;
|
|
}
|
|
|
|
self dodamage(self.health + 960,self.origin,self,self,"MOD_SUICIDE");
|
|
}
|
|
|
|
//Function Number: 130
|
|
func_7C2F()
|
|
{
|
|
var_00 = undefined;
|
|
var_00 = func_7C8C();
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 131
|
|
func_9C12()
|
|
{
|
|
if(isdefined(level.var_9B0B))
|
|
{
|
|
foreach(var_01 in level.var_9B0B)
|
|
{
|
|
if(function_010F(self.origin,var_01))
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.var_10816))
|
|
{
|
|
foreach(var_01 in level.var_10816)
|
|
{
|
|
if(function_010F(self.origin,var_01))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 132
|
|
func_E81B()
|
|
{
|
|
level endon("game_ended");
|
|
var_00 = 5;
|
|
level.var_6870 = 0;
|
|
var_01 = 21;
|
|
level thread func_4094();
|
|
var_02 = 1;
|
|
for(;;)
|
|
{
|
|
func_13BCB();
|
|
scripts\cp\_persistence::func_12DDE(level.wave_num);
|
|
if(level.wave_num > 0)
|
|
{
|
|
if(level.wave_num / 10 == var_02)
|
|
{
|
|
level notify("prize_restock");
|
|
if(scripts\cp\_utility::map_check(0))
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("dj_nag_ticket_restock","zmb_dj_vo","highest",20,0,0,1,100);
|
|
}
|
|
|
|
var_02++;
|
|
}
|
|
|
|
if(getdvar("ui_gametype") == "zombie" && scripts\cp\_utility::isplayingsolo() || level.only_one_player)
|
|
{
|
|
if(isdefined(level.players[0]))
|
|
{
|
|
if(level.wave_num == 2)
|
|
{
|
|
level.players[0] thread scripts\cp\_hud_message::wait_and_play_tutorial_message("zombiehealth",7);
|
|
}
|
|
else if(level.wave_num == 3)
|
|
{
|
|
level.players[0] thread scripts\cp\_hud_message::wait_and_play_tutorial_message("scenes",7);
|
|
}
|
|
else if(level.wave_num == 4 && !level.players[0] scripts\cp\_hud_message::func_79FC("magic_wheel"))
|
|
{
|
|
level.players[0] thread scripts\cp\_hud_message::wait_and_play_tutorial_message("magic_wheel",7);
|
|
level.players[0] notify("saw_wheel_tutorial");
|
|
}
|
|
else if(level.wave_num == 9 && !level.players[0] scripts\cp\_hud_message::func_79FC("pap"))
|
|
{
|
|
level.players[0] thread scripts\cp\_hud_message::wait_and_play_tutorial_message("pap",7);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(getdvar("ui_gametype") == "zombie" && !scripts\cp\zombies\direct_boss_fight::should_directly_go_to_boss_fight())
|
|
{
|
|
foreach(var_04 in level.players)
|
|
{
|
|
var_04 setclientomnvar("zombie_wave_number",level.wave_num);
|
|
var_04 scripts\cp\_merits::func_D9AD("mt_highest_round");
|
|
}
|
|
}
|
|
}
|
|
|
|
if(func_FF9D(level.wave_num))
|
|
{
|
|
level notify("event_wave_starting");
|
|
func_E7F0(level.wave_num);
|
|
}
|
|
else
|
|
{
|
|
level notify("regular_wave_starting");
|
|
if(level.var_D745 == 1 && level.wave_num > 5)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("dj_interup_wave_start","zmb_dj_vo","high",4,0,0,1,40);
|
|
}
|
|
|
|
if(soundexists("mus_zombies_newwave") && level.wave_num > 0)
|
|
{
|
|
level thread func_BDD4();
|
|
}
|
|
|
|
func_1081A(level.wave_num);
|
|
if(soundexists("mus_zombies_endwave") && level.wave_num > 0)
|
|
{
|
|
level thread func_BDD1();
|
|
}
|
|
}
|
|
|
|
if(level.wave_num > 0)
|
|
{
|
|
level notify("spawn_wave_done");
|
|
}
|
|
|
|
if(level.wave_num > 2)
|
|
{
|
|
if(isdefined(level.final_wave_vo_func))
|
|
{
|
|
level thread [[ level.final_wave_vo_func ]](level.wave_num);
|
|
}
|
|
}
|
|
|
|
var_06 = int(1000);
|
|
if(level.wave_num < 21)
|
|
{
|
|
var_06 = int(level.wave_num * 50);
|
|
}
|
|
|
|
foreach(var_04 in level.players)
|
|
{
|
|
if(!scripts\cp\zombies\direct_boss_fight::should_directly_go_to_boss_fight())
|
|
{
|
|
var_04 scripts\cp\_persistence::give_player_xp(var_06,1);
|
|
}
|
|
|
|
var_04 scripts\cp\_merits::func_D9AD("mt_total_rounds");
|
|
if(level.wave_num > 0)
|
|
{
|
|
var_04 notify("next_wave_notify");
|
|
}
|
|
|
|
var_04.coaster_ridden_this_round = undefined;
|
|
var_04.var_2113 = 0;
|
|
}
|
|
|
|
if(level.var_D745 == 1 && level.wave_num > 5)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("dj_interup_wave_end","zmb_dj_vo","high",4,0,0,1,40);
|
|
}
|
|
|
|
wait(var_00);
|
|
level thread scripts\cp\gametypes\zombie::func_E196();
|
|
if(isdefined(level.wave_complete_dialogues_func))
|
|
{
|
|
[[ level.wave_complete_dialogues_func ]](level.wave_num);
|
|
}
|
|
|
|
var_09 = gettime() - level.var_13BDA / 1000;
|
|
scripts\cp\zombies\zombie_analytics::func_AF90(level.wave_num,var_09,level.var_AA0B,level.var_11929);
|
|
if(level.wave_num > 1)
|
|
{
|
|
func_13BDB();
|
|
}
|
|
|
|
level.wave_num = func_7B1C();
|
|
scripts\cp\_persistence::update_players_career_highest_wave(level.wave_num,level.script);
|
|
var_00 = func_7D00(var_00,level.wave_num);
|
|
}
|
|
}
|
|
|
|
//Function Number: 133
|
|
clown_wave_music()
|
|
{
|
|
wait(0.5);
|
|
level thread scripts\cp\_vo::try_to_play_vo("ww_clownwave_wavestart","zmb_announcer_vo","highest",70,0,0,1);
|
|
wait(3);
|
|
if(soundexists("mus_zombies_eventwave_start"))
|
|
{
|
|
level thread func_BDD3();
|
|
}
|
|
|
|
level.wait_for_music_clown_wave = 1;
|
|
}
|
|
|
|
//Function Number: 134
|
|
wave_complete_dialogues(param_00)
|
|
{
|
|
if(!scripts\cp\_music_and_dialog::func_3837())
|
|
{
|
|
if(param_00 >= 2 && randomint(100) > 60)
|
|
{
|
|
foreach(var_02 in level.players)
|
|
{
|
|
var_02 thread scripts\cp\_vo::try_to_play_vo("convo_deja_vu","zmb_comment_vo","highest",666,0,0,0,100);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!isdefined(level.var_4481))
|
|
{
|
|
level.var_4481 = [];
|
|
}
|
|
|
|
if(param_00 >= 17 && !isdefined(level.var_4481["flavour_1"]))
|
|
{
|
|
if(randomint(100) > 60)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("flavour_1","zmb_dialogue_vo","highest",666,0,0,0,100);
|
|
}
|
|
}
|
|
|
|
if(param_00 >= 3 && param_00 <= 5 && !isdefined(level.var_4481["round_end_3thru5_1"]))
|
|
{
|
|
if(randomint(100) > 50)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("round_end_3thru5_1","zmb_dialogue_vo","highest",666,0,0,0,100);
|
|
level.var_4481["round_end_3thru5_1"] = 1;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_00 >= 6 && param_00 <= 8 && !isdefined(level.var_4481["round_end_6thru8_1"]))
|
|
{
|
|
if(randomint(100) > 50)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("round_end_6thru8_1","zmb_dialogue_vo","highest",666,0,0,0,100);
|
|
level.var_4481["round_end_6thru8_1"] = 1;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_00 >= 9 && param_00 <= 12 && !isdefined(level.var_4481["round_end_9thru12_1"]))
|
|
{
|
|
if(randomint(100) > 50)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("round_end_9thru12_1","zmb_dialogue_vo","highest",666,0,0,0,100);
|
|
level.var_4481["round_end_9thru12_1"] = 1;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_00 >= 13 && param_00 <= 16 && !isdefined(level.var_4481["round_end_13thru16_1"]))
|
|
{
|
|
if(randomint(100) > 50)
|
|
{
|
|
level thread scripts\cp\_vo::try_to_play_vo("round_end_13thru16_1","zmb_dialogue_vo","highest",666,0,0,0,100);
|
|
level.var_4481["round_end_13thru16_1"] = 1;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 135
|
|
func_13BDB()
|
|
{
|
|
foreach(var_01 in level.players)
|
|
{
|
|
if(!isdefined(var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]))
|
|
{
|
|
if(scripts\common\utility::istrue(var_01.in_afterlife_arcade))
|
|
{
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["bowling_for_planets"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["bowling_for_planets_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["coaster"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["laughingclown"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["laughingclown_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["basketball_game"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["basketball_game_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["clown_tooth_game"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["clown_tooth_game_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["game_race"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["shooting_gallery"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["shooting_gallery_afterlife"] = 0;
|
|
}
|
|
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["bowling_for_planets"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["bowling_for_planets_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["coaster"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["laughingclown"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["laughingclown_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["basketball_game"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["basketball_game_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["clown_tooth_game"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["clown_tooth_game_afterlife"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["game_race"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["shooting_gallery"] = 0;
|
|
var_01.pers["timesPerWave"].var_11930[level.wave_num + 1]["shooting_gallery_afterlife"] = 0;
|
|
}
|
|
|
|
var_02 = var_01 getcurrentweapon();
|
|
var_03 = getweaponbasename(var_02);
|
|
if(var_01.var_6977 == 1 || !isdefined(var_01.var_13BE3[var_03]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01.var_13BE3[var_03]++;
|
|
}
|
|
}
|
|
|
|
//Function Number: 136
|
|
func_13BCB()
|
|
{
|
|
level notify("wave_starting");
|
|
if(scripts\common\utility::func_6E34("dj_interup_wave_start_init"))
|
|
{
|
|
scripts\common\utility::flag_set("dj_interup_wave_start_init");
|
|
}
|
|
|
|
foreach(var_01 in level.players)
|
|
{
|
|
var_01.var_732F = 0;
|
|
}
|
|
|
|
func_E21C();
|
|
level.var_13BDA = gettime();
|
|
}
|
|
|
|
//Function Number: 137
|
|
func_E21C()
|
|
{
|
|
var_00 = 50;
|
|
level.var_B41F = var_00 * level.wave_num;
|
|
if(level.var_B41F > 500)
|
|
{
|
|
level.var_B41F = 500;
|
|
}
|
|
|
|
foreach(var_02 in level.players)
|
|
{
|
|
var_02.var_DDAF = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 138
|
|
func_1081A(param_00)
|
|
{
|
|
level.var_10E3C = func_7CA9(param_00);
|
|
level.var_B467 = func_7ACD(param_00);
|
|
level.var_5274 = func_7D10(param_00);
|
|
level.var_4B6E = 0;
|
|
level.var_11046 = 0;
|
|
func_10927();
|
|
level.var_B467 = 0;
|
|
level.var_B432 = 0;
|
|
level.var_11046 = 1;
|
|
}
|
|
|
|
//Function Number: 139
|
|
func_4F0E()
|
|
{
|
|
iprintln("starting wave " + level.wave_num);
|
|
iprintln("total spawns: " + level.var_5274);
|
|
}
|
|
|
|
//Function Number: 140
|
|
func_FF9D(param_00)
|
|
{
|
|
if(isdefined(level.should_run_event_func))
|
|
{
|
|
return [[ level.should_run_event_func ]](param_00);
|
|
}
|
|
|
|
if(scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(getdvar("ui_mapname") == "cp_disco")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(param_00 < 5)
|
|
{
|
|
return 0;
|
|
}
|
|
else if(scripts\common\utility::func_6E34("defense_sequence_active") && scripts\common\utility::flag("defense_sequence_active"))
|
|
{
|
|
return 0;
|
|
}
|
|
else if(scripts\common\utility::func_6E34("all_center_positions_used") && scripts\common\utility::flag("all_center_positions_used"))
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
var_01 = param_00 - level.var_A8BC;
|
|
if(var_01 < 5)
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
var_01 = var_01 - 4;
|
|
var_02 = var_01 / 3 * 100;
|
|
if(randomint(100) < var_02)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 141
|
|
func_E7F0(param_00)
|
|
{
|
|
level.respawn_enemy_list = [];
|
|
level.respawn_data = undefined;
|
|
var_01 = func_7848(param_00);
|
|
if(isdefined(level.event_funcs_start))
|
|
{
|
|
[[ level.event_funcs_start ]](var_01);
|
|
}
|
|
else
|
|
{
|
|
level thread clown_wave_music();
|
|
func_F604("cp_zmb_alien",1);
|
|
level.var_13445 = "cp_zmb_alien";
|
|
}
|
|
|
|
level.var_106E2 = 1;
|
|
var_02 = 0;
|
|
if(isdefined(var_01))
|
|
{
|
|
if(isdefined(level.var_6840[var_01]))
|
|
{
|
|
[[ level.var_6840[var_01] ]]();
|
|
}
|
|
else
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_02 = 1;
|
|
}
|
|
|
|
if(var_02)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_106E2 = 0;
|
|
level.var_1096B++;
|
|
level.var_A8BC = param_00;
|
|
if(isdefined(level.event_funcs_end))
|
|
{
|
|
[[ level.event_funcs_end ]](var_01);
|
|
}
|
|
else
|
|
{
|
|
level.var_13445 = undefined;
|
|
func_F604("",0);
|
|
if(soundexists("mus_zombies_eventwave_end"))
|
|
{
|
|
level thread func_BDD2();
|
|
}
|
|
|
|
level.wait_for_music_clown_wave = 0;
|
|
}
|
|
|
|
level.respawn_enemy_list = [];
|
|
level.respawn_data = undefined;
|
|
}
|
|
|
|
//Function Number: 142
|
|
func_F604(param_00,param_01)
|
|
{
|
|
foreach(var_03 in level.players)
|
|
{
|
|
if(!scripts\common\utility::istrue(var_03.var_13CE5))
|
|
{
|
|
var_03 visionsetnakedforplayer(param_00,param_01);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 143
|
|
func_7848(param_00)
|
|
{
|
|
if(isdefined(level.available_event_func))
|
|
{
|
|
return [[ level.available_event_func ]](param_00);
|
|
}
|
|
|
|
return "goon";
|
|
}
|
|
|
|
//Function Number: 144
|
|
func_7B1C()
|
|
{
|
|
return level.wave_num + 1;
|
|
}
|
|
|
|
//Function Number: 145
|
|
func_7D00(param_00,param_01)
|
|
{
|
|
if(scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 10;
|
|
}
|
|
|
|
//Function Number: 146
|
|
func_7CA9(param_00)
|
|
{
|
|
var_01 = ["generic_zombie"];
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 147
|
|
func_7ACD(param_00)
|
|
{
|
|
if(scripts\cp\_utility::is_escape_gametype() && param_00 < 5)
|
|
{
|
|
var_01 = level.players.size * 6;
|
|
var_02 = [0,0.25,0.3,0.5,0.7,0.9];
|
|
var_03 = 1;
|
|
var_04 = 1;
|
|
var_03 = var_02[param_00];
|
|
var_05 = level.players.size - 1;
|
|
if(var_05 < 1)
|
|
{
|
|
var_05 = 0.5;
|
|
}
|
|
|
|
var_06 = 24 + var_05 * 6 * var_04 * var_03;
|
|
return int(min(var_01,var_06));
|
|
}
|
|
|
|
return 24;
|
|
}
|
|
|
|
//Function Number: 148
|
|
func_7D10(param_00)
|
|
{
|
|
if(scripts\cp\_utility::is_escape_gametype())
|
|
{
|
|
return 9000;
|
|
}
|
|
|
|
var_01 = [0,0.25,0.3,0.5,0.7,0.9];
|
|
var_02 = 1;
|
|
var_03 = 1;
|
|
if(param_00 < 6)
|
|
{
|
|
var_02 = var_01[param_00];
|
|
}
|
|
else if(param_00 < 10)
|
|
{
|
|
var_03 = param_00 / 5;
|
|
}
|
|
else
|
|
{
|
|
var_03 = squared(param_00) * 0.03;
|
|
}
|
|
|
|
var_04 = level.players.size - 1;
|
|
if(var_04 < 1)
|
|
{
|
|
var_04 = 0.5;
|
|
}
|
|
|
|
var_05 = 24 + var_04 * 6 * var_03 * var_02;
|
|
return int(var_05);
|
|
}
|
|
|
|
//Function Number: 149
|
|
func_7CFF(param_00)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 150
|
|
func_79B4(param_00)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 151
|
|
func_7A3D(param_00,param_01)
|
|
{
|
|
if(isdefined(level.var_10698))
|
|
{
|
|
param_00 = param_00 + 0;
|
|
var_02 = tablelookupbyrow(level.var_10698,param_00,param_01);
|
|
var_03 = strtok(var_02," ");
|
|
if(var_03.size > 0)
|
|
{
|
|
return var_03;
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 152
|
|
func_13691()
|
|
{
|
|
while(level.var_4B6E < level.var_5274)
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
level.var_B467 = 0;
|
|
level.var_B432 = 0;
|
|
level.var_11046 = 1;
|
|
}
|
|
|
|
//Function Number: 153
|
|
func_9C13(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_00) || !isdefined(param_01) || param_00.size == 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
for(var_02 = 0;var_02 < param_00.size;var_02++)
|
|
{
|
|
if(param_00[var_02] == param_01)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 154
|
|
func_13FA2()
|
|
{
|
|
foreach(var_01 in level.var_10816)
|
|
{
|
|
if(self istouching(var_01))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 155
|
|
func_310F()
|
|
{
|
|
level endon("game_ended");
|
|
self endon("death");
|
|
thread lib_0D62::func_CE9B(self.var_13550);
|
|
self.var_D4AA = 0;
|
|
for(;;)
|
|
{
|
|
var_00 = scripts\common\utility::waittill_any_timeout_1(6,"attack_hit","attack_miss");
|
|
switch(var_00)
|
|
{
|
|
case "attack_hit":
|
|
level thread lib_0D62::func_CE9C(self,"attack_swipe",0);
|
|
break;
|
|
|
|
case "attack_miss":
|
|
level thread lib_0D62::func_CE9C(self,"attack_swipe",0);
|
|
break;
|
|
|
|
case "timeout":
|
|
level thread lib_0D62::func_CE9C(self,"run_grunt",0);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 156
|
|
func_135A3()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
if([[ level.var_164B ]](self.origin))
|
|
{
|
|
self.entered_playspace = 1;
|
|
if(isdefined(self.var_24CA))
|
|
{
|
|
if(isdefined(self.var_24CA.var_C2D0) && self.var_24CA.var_C2D0 == self)
|
|
{
|
|
lib_0D4D::func_DF34(self.var_24CA);
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
wait(0.35);
|
|
}
|
|
}
|
|
|
|
//Function Number: 157
|
|
func_4094()
|
|
{
|
|
if(isdefined(level.ai_cleanup_func))
|
|
{
|
|
level thread [[ level.ai_cleanup_func ]]();
|
|
return;
|
|
}
|
|
|
|
var_00 = 0;
|
|
level.var_BE23 = 0;
|
|
for(;;)
|
|
{
|
|
scripts\common\utility::func_136F7();
|
|
var_01 = gettime();
|
|
if(var_01 < var_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(level.var_BE22))
|
|
{
|
|
var_02 = gettime() / 1000;
|
|
var_03 = var_02 - level.var_BE22;
|
|
if(var_03 < 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
level.var_BE22 = undefined;
|
|
}
|
|
|
|
var_04 = var_01 - level.var_13BDA / 1000;
|
|
if(level.wave_num <= 5 && var_04 < 30)
|
|
{
|
|
continue;
|
|
}
|
|
else if(level.wave_num > 5 && var_04 < 20)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = undefined;
|
|
if(level.var_5274 - level.var_4B6E < 3)
|
|
{
|
|
var_05 = 2250000;
|
|
}
|
|
|
|
var_00 = var_00 + 3000;
|
|
var_06 = scripts\cp\_agent_utils::func_7DB0("axis");
|
|
foreach(var_08 in var_06)
|
|
{
|
|
if(level.var_BE23 >= 1)
|
|
{
|
|
level.var_BE23 = 0;
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
|
|
if(func_380D(var_08))
|
|
{
|
|
var_08 func_5773(var_05);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 158
|
|
func_380D(param_00)
|
|
{
|
|
if(isdefined(param_00.agent_type) && param_00.agent_type == "zombie_ghost")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_00.var_2BF9))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_00.var_9CEF))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_00.dont_cleanup))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_00.delay_cleanup_until) && gettime() < param_00.delay_cleanup_until)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(level.zbg_active))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 159
|
|
func_5773(param_00)
|
|
{
|
|
if(!isalive(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!func_FF1A(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = gettime() - self.var_107F7;
|
|
if(var_01 < 5000)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(self.agent_type == "generic_zombie" || self.agent_type == "zombie_cop" || self.agent_type == "lumberjack")
|
|
{
|
|
if(var_01 < -20536 && !self.entered_playspace)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
var_02 = 1;
|
|
var_03 = 0;
|
|
var_04 = 1;
|
|
if(scripts\common\utility::istrue(self.var_565C) && level.var_5274 - level.var_4B6E < 2)
|
|
{
|
|
var_03 = 1;
|
|
param_00 = 1000000;
|
|
var_02 = 0;
|
|
}
|
|
else if(level.var_B789.size == 0)
|
|
{
|
|
if(isdefined(level.use_adjacent_volumes))
|
|
{
|
|
var_02 = func_8016(1,0);
|
|
}
|
|
else
|
|
{
|
|
var_02 = func_8016(0,0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_02 = func_8016(1,0);
|
|
if(var_02)
|
|
{
|
|
var_04 = func_8016(0,1);
|
|
}
|
|
}
|
|
|
|
level.var_BE23++;
|
|
if(!var_02 || !var_04)
|
|
{
|
|
var_05 = 10000000;
|
|
var_06 = level.players[0];
|
|
foreach(var_08 in level.players)
|
|
{
|
|
var_09 = distancesquared(self.origin,var_08.origin);
|
|
if(var_09 < var_05)
|
|
{
|
|
var_05 = var_09;
|
|
var_06 = var_08;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_00))
|
|
{
|
|
var_0B = param_00;
|
|
}
|
|
else if(isdefined(var_07) && func_CF4C(var_07))
|
|
{
|
|
var_0B = 189225;
|
|
}
|
|
else
|
|
{
|
|
var_0B = 1000000;
|
|
}
|
|
|
|
if(var_05 >= var_0B)
|
|
{
|
|
if(!var_04)
|
|
{
|
|
if(level.last_mini_zone_fail + 1000 > gettime())
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
level.last_mini_zone_fail = gettime();
|
|
}
|
|
}
|
|
|
|
thread func_51A5(var_05,var_03);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 160
|
|
func_FF1A(param_00)
|
|
{
|
|
if(!isdefined(param_00.agent_type))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
switch(param_00.agent_type)
|
|
{
|
|
case "zombie_grey":
|
|
case "zombie_brute":
|
|
return 0;
|
|
|
|
default:
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 161
|
|
func_51A5(param_00,param_01)
|
|
{
|
|
if(scripts\common\utility::istrue(self.var_93A7))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
if(scripts\common\utility::istrue(self.var_9D25))
|
|
{
|
|
func_EDF6();
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
foreach(var_03 in level.players)
|
|
{
|
|
if(scripts\common\utility::istrue(var_03.var_1097A))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(var_03.var_9BE1))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(var_03.in_afterlife_arcade))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(func_CFB2(var_03))
|
|
{
|
|
if(param_00 < 4000000)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
self.var_54CB = 1;
|
|
if(scripts\common\utility::istrue(self.var_B36D) && isdefined(level.var_C20A))
|
|
{
|
|
level.var_C20A--;
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(self.var_9D25))
|
|
{
|
|
self.nocorpse = 1;
|
|
func_EDF6();
|
|
}
|
|
}
|
|
|
|
//Function Number: 162
|
|
func_EDF6()
|
|
{
|
|
self dodamage(self.health + 950,self.origin,self,self,"MOD_SUICIDE");
|
|
}
|
|
|
|
//Function Number: 163
|
|
func_CFB2(param_00)
|
|
{
|
|
var_01 = param_00 getplayerangles();
|
|
var_02 = anglestoforward(var_01);
|
|
var_03 = self.origin - param_00 getorigin();
|
|
var_03 = vectornormalize(var_03);
|
|
var_04 = vectordot(var_02,var_03);
|
|
if(var_04 < 0.766)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 164
|
|
func_CF4C(param_00)
|
|
{
|
|
var_01 = param_00 getplayerangles();
|
|
var_02 = anglestoforward(var_01);
|
|
var_03 = param_00 getorigin() - self.origin;
|
|
var_04 = vectordot(var_02,var_03);
|
|
if(var_04 < 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 165
|
|
func_8016(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
foreach(var_04 in level.var_1646)
|
|
{
|
|
if(self istouching(var_04))
|
|
{
|
|
var_02 = var_04;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(var_02))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_06 = 0;
|
|
if(scripts\common\utility::istrue(param_01))
|
|
{
|
|
var_06 = var_06 + func_C1EB(var_02,1);
|
|
}
|
|
else
|
|
{
|
|
var_06 = lib_0D60::func_800B(var_02);
|
|
}
|
|
|
|
if(scripts\common\utility::istrue(param_00) && var_06 == 0 && isdefined(var_02.var_186E))
|
|
{
|
|
foreach(var_04 in var_02.var_186E)
|
|
{
|
|
var_06 = var_06 + lib_0D60::func_800B(var_04);
|
|
}
|
|
}
|
|
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 166
|
|
func_F5EC()
|
|
{
|
|
scripts\common\utility::flag_wait("init_adjacent_volumes_done");
|
|
level.var_B789 = [];
|
|
var_00 = getentarray("mini_zone","script_noteworthy");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
level.var_B789[var_02.var_336] = var_02;
|
|
}
|
|
|
|
if(level.var_B789.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = 1;
|
|
foreach(var_06 in level.var_10816)
|
|
{
|
|
var_04 = 1;
|
|
var_07 = var_06.var_28AB + "_" + var_04 + "_despawn_volume";
|
|
if(var_07 == "mars3_1_despawn_volume")
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
|
|
while(isdefined(level.var_B789[var_07]))
|
|
{
|
|
var_08 = var_06.var_28AB + "_" + var_04 - 1 + "_despawn_volume";
|
|
var_09 = var_06.var_28AB + "_" + var_04 + 1 + "_despawn_volume";
|
|
if(isdefined(level.var_B789[var_08]))
|
|
{
|
|
level.var_B789[var_07].var_186E[var_08] = level.var_B789[var_08];
|
|
}
|
|
|
|
if(isdefined(level.var_B789[var_09]))
|
|
{
|
|
level.var_B789[var_07].var_186E[var_09] = level.var_B789[var_09];
|
|
}
|
|
|
|
if(isdefined(level.var_B789[var_07].target))
|
|
{
|
|
var_0A = level.var_B789[var_07].target;
|
|
level.var_B789[var_07].var_186E[var_0A] = level.var_B789[var_0A];
|
|
level.var_B789[var_0A].var_186E[var_07] = level.var_B789[var_07];
|
|
}
|
|
|
|
var_04++;
|
|
var_07 = var_06.var_28AB + "_" + var_04 + "_despawn_volume";
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 167
|
|
func_C1EB(param_00,param_01)
|
|
{
|
|
var_02 = 1;
|
|
var_03 = undefined;
|
|
var_04 = 1;
|
|
var_05 = 0;
|
|
while(var_02)
|
|
{
|
|
var_06 = getentarray(param_00.var_28AB + "_" + var_04 + "_despawn_volume","targetname");
|
|
if(isdefined(var_06[0]))
|
|
{
|
|
if(self istouching(var_06[0]))
|
|
{
|
|
var_03 = var_06[0];
|
|
break;
|
|
}
|
|
|
|
var_04++;
|
|
continue;
|
|
}
|
|
|
|
var_02 = 0;
|
|
}
|
|
|
|
if(isdefined(var_03))
|
|
{
|
|
var_05 = lib_0D60::func_800B(var_03);
|
|
if(scripts\common\utility::istrue(param_01) && var_05 == 0 && isdefined(var_03.var_186E))
|
|
{
|
|
foreach(var_08 in var_03.var_186E)
|
|
{
|
|
var_05 = var_05 + lib_0D60::func_800B(var_08);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 168
|
|
create_spawner(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = level.var_10816[param_00];
|
|
var_07 = spawnstruct();
|
|
var_07.origin = param_01;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_07.angles = param_02;
|
|
}
|
|
else
|
|
{
|
|
var_07.angles = (0,0,0);
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
var_07.script_fxid = param_05;
|
|
}
|
|
|
|
var_07.script_noteworthy = "static";
|
|
if(isdefined(param_04))
|
|
{
|
|
var_07.var_ECF5 = param_04;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
var_07.var_EE79 = param_03;
|
|
}
|
|
|
|
var_07.var_336 = var_06.target;
|
|
var_07 func_10865(var_06);
|
|
var_06.var_1087B = scripts\common\utility::array_add(var_06.var_1087B,var_07);
|
|
return var_07;
|
|
}
|
|
|
|
//Function Number: 169
|
|
func_7D87()
|
|
{
|
|
level.var_13F33 = scripts\common\utility::getstructarray("zombie_idle_spot","targetname");
|
|
level thread func_962E();
|
|
}
|
|
|
|
//Function Number: 170
|
|
func_FF55(param_00)
|
|
{
|
|
if(getdvarint("scr_active_volume_check") == 1)
|
|
{
|
|
if(isplayer(param_00) && !scripts\cp\zombies\_powerups::is_in_active_volume(param_00.origin))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_00.var_AD2C))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(param_00.var_9C54))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_01 = isdefined(self.var_10C) && isdefined(self.var_10C.var_9BE1);
|
|
if(!var_01 && distancesquared(param_00.origin,getclosestpointonnavmesh(param_00.origin)) > 10000)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(self.agent_type == "zombie_brute" && isdefined(param_00.special_case_ignore))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 171
|
|
func_962E()
|
|
{
|
|
if(!isdefined(level.var_13F33) || level.var_13F33.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_71A7 = ::func_7A2C;
|
|
if(isdefined(level.idle_spot_patch_func))
|
|
{
|
|
[[ level.idle_spot_patch_func ]]();
|
|
}
|
|
|
|
var_00 = [];
|
|
foreach(var_02 in level.var_13F33)
|
|
{
|
|
var_03 = var_02 func_962D();
|
|
if(isdefined(var_03))
|
|
{
|
|
var_00[var_00.size] = var_03;
|
|
}
|
|
}
|
|
|
|
level.var_13F33 = scripts\common\utility::func_22AC(level.var_13F33,var_00);
|
|
}
|
|
|
|
//Function Number: 172
|
|
func_962D()
|
|
{
|
|
foreach(var_01 in level.var_10816)
|
|
{
|
|
if(function_010F(self.origin,var_01))
|
|
{
|
|
self.var_13538 = var_01;
|
|
return;
|
|
}
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
//Function Number: 173
|
|
debug_idle_spots(param_00,param_01)
|
|
{
|
|
wait(15);
|
|
foreach(var_03 in param_00)
|
|
{
|
|
thread scripts\cp\_utility::drawsphere(var_03.origin,5,1800,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 174
|
|
add_idle_spot(param_00)
|
|
{
|
|
var_01 = spawnstruct();
|
|
var_01.origin = param_00;
|
|
var_01.var_336 = "zombie_idle_spot";
|
|
level.var_13F33 = scripts\common\utility::array_add_safe(level.var_13F33,var_01);
|
|
}
|
|
|
|
//Function Number: 175
|
|
move_idle_spot(param_00,param_01)
|
|
{
|
|
var_02 = scripts\common\utility::getclosest(param_00,level.var_13F33,500);
|
|
var_02.origin = param_01;
|
|
}
|
|
|
|
//Function Number: 176
|
|
func_4957()
|
|
{
|
|
var_00 = 80;
|
|
var_01 = [];
|
|
var_01[0] = getclosestpointonnavmesh(self.origin + (var_00,0,0));
|
|
var_01[1] = getclosestpointonnavmesh(self.origin + (var_00,var_00,0));
|
|
var_01[2] = getclosestpointonnavmesh(self.origin + (0,var_00,0));
|
|
var_01[3] = getclosestpointonnavmesh(self.origin + (-1 * var_00,var_00,0));
|
|
var_01[4] = getclosestpointonnavmesh(self.origin + (-1 * var_00,0,0));
|
|
var_01[5] = getclosestpointonnavmesh(self.origin + (-1 * var_00,-1 * var_00,0));
|
|
var_01[6] = getclosestpointonnavmesh(self.origin + (0,-1 * var_00,0));
|
|
var_01[7] = getclosestpointonnavmesh(self.origin + (var_00,-1 * var_00,0));
|
|
var_02 = [];
|
|
for(var_03 = 0;var_03 < var_01.size;var_03++)
|
|
{
|
|
var_02[var_03] = 0;
|
|
}
|
|
|
|
var_04 = spawnstruct();
|
|
var_04.var_C6FB = var_01;
|
|
var_04.var_1621 = var_02;
|
|
self.var_E540 = var_04;
|
|
}
|
|
|
|
//Function Number: 177
|
|
func_7C19(param_00)
|
|
{
|
|
foreach(var_03, var_02 in param_00.var_E540.var_C6FB)
|
|
{
|
|
if(param_00.var_E540.var_1621[var_03])
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00.var_E540.var_1621[var_03] = 1;
|
|
thread func_DF41();
|
|
return var_03;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 178
|
|
func_7A2C()
|
|
{
|
|
if(!isdefined(level.var_13F33))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
return func_7C18(level.var_13F33);
|
|
}
|
|
|
|
//Function Number: 179
|
|
func_7C18(param_00)
|
|
{
|
|
param_00 = scripts\common\utility::array_randomize(param_00);
|
|
if(param_00.size == 1)
|
|
{
|
|
var_01 = param_00[0];
|
|
self.var_92E8 = var_01;
|
|
return var_01.origin;
|
|
}
|
|
|
|
foreach(var_02 in var_01)
|
|
{
|
|
if(function_010F(self.origin,var_02.var_13538))
|
|
{
|
|
if(isdefined(self.var_92E8) && var_02 == self.var_92E8)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self.var_92E8 = var_02;
|
|
return var_02.origin;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(self.spawner))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
foreach(var_02 in param_00)
|
|
{
|
|
if(isdefined(self.spawner.var_13538) && self.spawner.var_13538 == var_02.var_13538)
|
|
{
|
|
if(isdefined(self.var_92E8) && var_02 == self.var_92E8)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self.var_92E8 = var_02;
|
|
return var_02.origin;
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 180
|
|
func_DDC7(param_00,param_01)
|
|
{
|
|
self endon("reset_recently_used");
|
|
wait(param_00);
|
|
self.var_DDC4 = 1;
|
|
wait(param_01);
|
|
self.var_DDC4 = undefined;
|
|
self notify("reset_recently_used");
|
|
}
|
|
|
|
//Function Number: 181
|
|
func_DF41()
|
|
{
|
|
scripts\common\utility::waittill_any_3("StopFindTargetNoGoal","death");
|
|
self.var_92E8.var_E540.var_1621[self.var_92E9] = 0;
|
|
self.var_92E8 = undefined;
|
|
self.var_92E9 = undefined;
|
|
self notify("StopFindTargetNoGoal");
|
|
}
|
|
|
|
//Function Number: 182
|
|
func_F546(param_00)
|
|
{
|
|
var_01 = scripts\common\utility::getstructarray("player_respawn_loc","targetname");
|
|
var_02 = [];
|
|
foreach(var_04 in var_01)
|
|
{
|
|
if(function_010F(var_04.origin,param_00))
|
|
{
|
|
var_04.var_212E = param_00;
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
}
|
|
|
|
param_00.var_D25E = var_02;
|
|
}
|
|
|
|
//Function Number: 183
|
|
func_BDD4()
|
|
{
|
|
if(!scripts\cp\zombies\direct_boss_fight::should_directly_go_to_boss_fight())
|
|
{
|
|
scripts\cp\_utility::func_D52A("mus_zombies_newwave",(0,0,0),1);
|
|
}
|
|
|
|
level notify("wave_start_sound_done");
|
|
}
|
|
|
|
//Function Number: 184
|
|
func_BDD1()
|
|
{
|
|
wait(0.3);
|
|
scripts\cp\_utility::func_D52A("mus_zombies_endwave",(0,0,0));
|
|
}
|
|
|
|
//Function Number: 185
|
|
func_BDD3()
|
|
{
|
|
scripts\cp\_utility::func_D52A("mus_zombies_eventwave_start",(0,0,0));
|
|
level notify("wave_start_sound_done");
|
|
}
|
|
|
|
//Function Number: 186
|
|
func_BDD2()
|
|
{
|
|
scripts\cp\_utility::func_D52A("mus_zombies_eventwave_end",(0,0,0));
|
|
}
|
|
|
|
//Function Number: 187
|
|
func_BDD0()
|
|
{
|
|
scripts\cp\_utility::func_D52A("mus_zombies_boss_start",(0,0,0));
|
|
}
|
|
|
|
//Function Number: 188
|
|
func_BDCF()
|
|
{
|
|
scripts\cp\_utility::func_D52A("mus_zombies_boss_end",(0,0,0));
|
|
}
|
|
|
|
//Function Number: 189
|
|
func_93EB(param_00)
|
|
{
|
|
level.var_E1CC = level.var_E1CC + param_00;
|
|
}
|
|
|
|
//Function Number: 190
|
|
func_4FB8(param_00)
|
|
{
|
|
level.var_E1CC = max(0,level.var_E1CC - param_00);
|
|
}
|
|
|
|
//Function Number: 191
|
|
func_93E6(param_00)
|
|
{
|
|
level.var_50F8 = level.var_50F8 + param_00;
|
|
}
|
|
|
|
//Function Number: 192
|
|
func_4FB6(param_00)
|
|
{
|
|
level.var_50F8 = level.var_50F8 - param_00;
|
|
} |