mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 07:08:06 -05:00
Check round spawn failsafe every frame
This commit is contained in:
@ -380,6 +380,7 @@ post_all_players_spawned()
|
||||
level.overrideplayerdamage = scripts\zm\replaced\_zm::player_damage_override;
|
||||
level.playerlaststand_func = scripts\zm\replaced\_zm::player_laststand;
|
||||
level.callbackplayerlaststand = scripts\zm\replaced\_zm::callback_playerlaststand;
|
||||
level._zombies_round_spawn_failsafe = scripts\zm\replaced\_zm::round_spawn_failsafe;
|
||||
level.etrap_damage = maps\mp\zombies\_zm::ai_zombie_health( 255 );
|
||||
level.slipgun_damage = maps\mp\zombies\_zm::ai_zombie_health( 255 );
|
||||
level.tombstone_spawn_func = ::tombstone_spawn;
|
||||
|
@ -205,6 +205,95 @@ round_spawning()
|
||||
}
|
||||
}
|
||||
|
||||
round_spawn_failsafe()
|
||||
{
|
||||
self endon( "death" );
|
||||
prevorigin = self.origin;
|
||||
prevorigin_time = gettime();
|
||||
|
||||
while ( true )
|
||||
{
|
||||
if ( isdefined( self.ignore_round_spawn_failsafe ) && self.ignore_round_spawn_failsafe )
|
||||
return;
|
||||
|
||||
wait 0.05;
|
||||
|
||||
if ( isdefined( self.is_inert ) && self.is_inert )
|
||||
{
|
||||
prevorigin = self.origin;
|
||||
prevorigin_time = gettime();
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( isdefined( self.in_the_ground ) && self.in_the_ground )
|
||||
{
|
||||
prevorigin = self.origin;
|
||||
prevorigin_time = gettime();
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( isdefined( self.in_the_ceiling ) && self.in_the_ceiling )
|
||||
{
|
||||
prevorigin = self.origin;
|
||||
prevorigin_time = gettime();
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( isdefined( self.lastchunk_destroy_time ) )
|
||||
{
|
||||
if ( gettime() - self.lastchunk_destroy_time < 4000 )
|
||||
{
|
||||
prevorigin = self.origin;
|
||||
prevorigin_time = gettime();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( self.origin[2] < level.zombie_vars["below_world_check"] )
|
||||
{
|
||||
if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) && !( isdefined( self.isscreecher ) && self.isscreecher ) )
|
||||
{
|
||||
level.zombie_total++;
|
||||
level.zombie_total_subtract++;
|
||||
}
|
||||
|
||||
self dodamage( self.health + 100, ( 0, 0, 0 ) );
|
||||
break;
|
||||
}
|
||||
|
||||
if ( distancesquared( self.origin, prevorigin ) < 576 )
|
||||
{
|
||||
if ( gettime() - prevorigin_time < 15000 )
|
||||
continue;
|
||||
|
||||
if ( isdefined( level.put_timed_out_zombies_back_in_queue ) && level.put_timed_out_zombies_back_in_queue && !flag( "dog_round" ) )
|
||||
{
|
||||
if ( !self.ignoreall && !( isdefined( self.nuked ) && self.nuked ) && !( isdefined( self.marked_for_death ) && self.marked_for_death ) && !( isdefined( self.isscreecher ) && self.isscreecher ) && ( isdefined( self.has_legs ) && self.has_legs ) && !( isdefined( self.is_brutus ) && self.is_brutus ) )
|
||||
{
|
||||
level.zombie_total++;
|
||||
level.zombie_total_subtract++;
|
||||
}
|
||||
}
|
||||
|
||||
level.zombies_timeout_playspace++;
|
||||
|
||||
if ( isdefined( self.is_brutus ) && self.is_brutus )
|
||||
{
|
||||
self.suppress_brutus_powerup_drop = 1;
|
||||
self.brutus_round_spawn_failsafe = 1;
|
||||
}
|
||||
|
||||
self dodamage( self.health + 100, ( 0, 0, 0 ) );
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
prevorigin = self.origin;
|
||||
prevorigin_time = gettime();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
round_think( restart = 0 )
|
||||
{
|
||||
level endon( "end_round_think" );
|
||||
|
@ -84,6 +84,7 @@ init()
|
||||
level.special_weapon_magicbox_check = ::check_for_special_weapon_limit_exist;
|
||||
|
||||
level.brutus_failed_paths_to_teleport = 10;
|
||||
level.zombie_vars["below_world_check"] = -15000;
|
||||
level.zombie_powerups["meat_stink"].model_name = "t6_wpn_zmb_severedhead_world";
|
||||
|
||||
maps\mp\zombies\_zm::spawn_life_brush( (94, 6063, 240), 256, 256 );
|
||||
|
@ -90,6 +90,8 @@ init()
|
||||
level.special_weapon_magicbox_check = ::tomb_special_weapon_magicbox_check;
|
||||
level.custom_magic_box_timer_til_despawn = ::custom_magic_box_timer_til_despawn;
|
||||
|
||||
level.zombie_vars["below_world_check"] = -3000;
|
||||
|
||||
change_stargate_teleport_return_player_angles();
|
||||
|
||||
level thread zombie_blood_dig_changes();
|
||||
|
Reference in New Issue
Block a user