mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 07:08:06 -05:00
Denizens: spawn 1 per player in fog
This commit is contained in:
@ -77,7 +77,7 @@
|
||||
* All body shot kills award 50 points
|
||||
|
||||
### Denizens
|
||||
* Decreased maximum amount that can be spawned at once from 2 to 1
|
||||
* Changed maximum amount that can be spawned at once from 2 total to 1 per player in the fog
|
||||
* Decreased number of melees to kill from 5 to 3
|
||||
* Decreased number of melees to kill with Bowie Knife from 3 to 2
|
||||
* Decreased number of melees to kill with Galvaknuckles from 2 to 1
|
||||
|
@ -251,7 +251,6 @@ post_all_players_spawned()
|
||||
level.zombie_vars["riotshield_hit_points"] = 1500;
|
||||
level.zombie_vars["emp_stun_range"] = 420;
|
||||
level.zombie_vars["slipgun_reslip_rate"] = 0;
|
||||
level.zombie_ai_limit_screecher = 1;
|
||||
level.explode_overheated_jetgun = 0;
|
||||
level.unbuild_overheated_jetgun = 0;
|
||||
level.take_overheated_jetgun = 1;
|
||||
|
@ -10,6 +10,112 @@
|
||||
#include maps\mp\zombies\_zm_audio;
|
||||
#include maps\mp\zombies\_zm_stats;
|
||||
|
||||
screecher_spawning_logic()
|
||||
{
|
||||
level endon( "intermission" );
|
||||
|
||||
if ( level.intermission )
|
||||
return;
|
||||
|
||||
if ( level.screecher_spawners.size < 1 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
while ( true )
|
||||
{
|
||||
while ( !isdefined( level.zombie_screecher_locations ) || level.zombie_screecher_locations.size <= 0 )
|
||||
wait 0.1;
|
||||
|
||||
while ( getdvarint( _hash_B0C0D38F ) )
|
||||
wait 0.1;
|
||||
|
||||
if ( !flag( "spawn_zombies" ) )
|
||||
flag_wait( "spawn_zombies" );
|
||||
|
||||
valid_players_in_screecher_zone = 0;
|
||||
valid_players = [];
|
||||
|
||||
while ( valid_players_in_screecher_zone <= level.zombie_screecher_count )
|
||||
{
|
||||
players = getplayers();
|
||||
valid_players_in_screecher_zone = 0;
|
||||
|
||||
for ( p = 0; p < players.size; p++ )
|
||||
{
|
||||
if ( is_player_valid( players[p] ) && player_in_screecher_zone( players[p] ) && !isdefined( players[p].screecher ) )
|
||||
{
|
||||
valid_players_in_screecher_zone++;
|
||||
valid_players[valid_players.size] = players[p];
|
||||
}
|
||||
}
|
||||
|
||||
wait 0.1;
|
||||
}
|
||||
|
||||
if ( !isdefined( level.zombie_screecher_locations ) || level.zombie_screecher_locations.size <= 0 )
|
||||
continue;
|
||||
|
||||
valid_players = array_randomize( valid_players );
|
||||
|
||||
spawn_points = get_array_of_closest( valid_players[0].origin, level.zombie_screecher_locations );
|
||||
spawn_point = undefined;
|
||||
|
||||
if ( !isdefined( spawn_points ) || spawn_points.size == 0 )
|
||||
{
|
||||
wait 0.1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !isdefined( level.last_spawn ) )
|
||||
{
|
||||
level.last_spawn_index = 0;
|
||||
level.last_spawn = [];
|
||||
level.last_spawn[level.last_spawn_index] = spawn_points[0];
|
||||
level.last_spawn_index = 1;
|
||||
spawn_point = spawn_points[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ( point in spawn_points )
|
||||
{
|
||||
if ( point == level.last_spawn[0] )
|
||||
continue;
|
||||
|
||||
if ( isdefined( level.last_spawn[1] ) && point == level.last_spawn[1] )
|
||||
continue;
|
||||
|
||||
spawn_point = point;
|
||||
level.last_spawn[level.last_spawn_index] = spawn_point;
|
||||
level.last_spawn_index++;
|
||||
|
||||
if ( level.last_spawn_index > 1 )
|
||||
level.last_spawn_index = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !isdefined( spawn_point ) )
|
||||
spawn_point = spawn_points[0];
|
||||
|
||||
if ( isdefined( level.screecher_spawners ) )
|
||||
{
|
||||
spawner = random( level.screecher_spawners );
|
||||
ai = spawn_zombie( spawner, spawner.targetname, spawn_point );
|
||||
}
|
||||
|
||||
if ( isdefined( ai ) )
|
||||
{
|
||||
ai.spawn_point = spawn_point;
|
||||
level.zombie_screecher_count++;
|
||||
}
|
||||
|
||||
wait( level.zombie_vars["zombie_spawn_delay"] );
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
screecher_melee_damage( player )
|
||||
{
|
||||
melee_score = 0;
|
||||
|
@ -23,6 +23,7 @@ main()
|
||||
replaceFunc(maps\mp\zm_transit_utility::solo_tombstone_removal, scripts\zm\replaced\zm_transit_utility::solo_tombstone_removal);
|
||||
replaceFunc(maps\mp\zm_transit_bus::bussetup, scripts\zm\replaced\zm_transit_bus::bussetup);
|
||||
replaceFunc(maps\mp\zm_transit_bus::busscheduleadd, scripts\zm\replaced\zm_transit_bus::busscheduleadd);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_screecher::screecher_spawning_logic, scripts\zm\replaced\_zm_ai_screecher::screecher_spawning_logic);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_screecher::screecher_melee_damage, scripts\zm\replaced\_zm_ai_screecher::screecher_melee_damage);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_screecher::screecher_detach, scripts\zm\replaced\_zm_ai_screecher::screecher_detach);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_screecher::screecher_cleanup, scripts\zm\replaced\_zm_ai_screecher::screecher_cleanup);
|
||||
|
Reference in New Issue
Block a user