diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index 928ebca0..a59ca7fb 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -28,6 +28,7 @@ #include scripts\zm\replaced\_zm_clone; #include scripts\zm\replaced\_zm_spawner; #include scripts\zm\replaced\_zm_ai_basic; +#include scripts\zm\replaced\_zm_ai_dogs; #include scripts\zm\replaced\_zm_melee_weapon; #include scripts\zm\replaced\_zm_weap_ballistic_knife; #include scripts\zm\replaced\_zm_weap_claymore; @@ -120,6 +121,7 @@ main() replaceFunc(maps\mp\zombies\_zm_spawner::zombie_can_drop_powerups, scripts\zm\replaced\_zm_spawner::zombie_can_drop_powerups); replaceFunc(maps\mp\zombies\_zm_spawner::zombie_complete_emerging_into_playable_area, scripts\zm\replaced\_zm_spawner::zombie_complete_emerging_into_playable_area); replaceFunc(maps\mp\zombies\_zm_ai_basic::inert_wakeup, scripts\zm\replaced\_zm_ai_basic::inert_wakeup); + replaceFunc(maps\mp\zombies\_zm_ai_dogs::enable_dog_rounds, scripts\zm\replaced\_zm_ai_dogs::enable_dog_rounds); replaceFunc(maps\mp\zombies\_zm_melee_weapon::change_melee_weapon, scripts\zm\replaced\_zm_melee_weapon::change_melee_weapon); replaceFunc(maps\mp\zombies\_zm_melee_weapon::give_melee_weapon, scripts\zm\replaced\_zm_melee_weapon::give_melee_weapon); replaceFunc(maps\mp\zombies\_zm_weap_ballistic_knife::watch_use_trigger, scripts\zm\replaced\_zm_weap_ballistic_knife::watch_use_trigger); diff --git a/scripts/zm/replaced/_zm_ai_dogs.gsc b/scripts/zm/replaced/_zm_ai_dogs.gsc new file mode 100644 index 00000000..2e1815ea --- /dev/null +++ b/scripts/zm/replaced/_zm_ai_dogs.gsc @@ -0,0 +1,79 @@ +#include common_scripts\utility; +#include maps\mp\_utility; +#include maps\mp\zombies\_zm_utility; +#include maps\mp\zombies\_zm_spawner; +#include maps\mp\zombies\_zm_audio; +#include maps\mp\zombies\_zm_powerups; +#include maps\mp\zombies\_zm; +#include maps\mp\zombies\_zm_score; +#include maps\mp\zombies\_zm_stats; +#include maps\mp\zombies\_zm_net; +#include maps\mp\zombies\_zm_ai_dogs; + +enable_dog_rounds() +{ + level.dog_rounds_enabled = 1; + + if ( !isdefined( level.dog_round_track_override ) ) + level.dog_round_track_override = ::dog_round_tracker; + + level thread [[ level.dog_round_track_override ]](); +} + +dog_round_tracker() +{ + level.dog_round_count = 1; + level.next_dog_round = level.round_number + randomintrange( 4, 6 ); + old_spawn_func = level.round_spawn_func; + old_wait_func = level.round_wait_func; + + if (level.next_dog_round == 5) + { + level.prev_dog_round_amount = 4; + } + else + { + level.prev_dog_round_amount = 5; + } + + while ( true ) + { + level waittill( "between_round_over" ); + + if ( level.round_number == level.next_dog_round ) + { + level.music_round_override = 1; + old_spawn_func = level.round_spawn_func; + old_wait_func = level.round_wait_func; + dog_round_start(); + level.round_spawn_func = ::dog_round_spawning; + + if( !isdefined( level.prev_dog_round_amount ) ) + { + level.prev_dog_round_amount = randomintrange( 4, 6 ); + level.next_dog_round = level.round_number + level.prev_dog_round_amount; + } + else + { + if (level.prev_dog_round_amount == 4) + { + level.next_dog_round = level.round_number + 5; + } + else + { + level.next_dog_round = level.round_number + 4; + } + + level.prev_dog_round_amount = undefined; + } + } + else if ( flag( "dog_round" ) ) + { + dog_round_stop(); + level.round_spawn_func = old_spawn_func; + level.round_wait_func = old_wait_func; + level.music_round_override = 0; + level.dog_round_count += 1; + } + } +} \ No newline at end of file diff --git a/scripts/zm/replaced/_zm_ai_leaper.gsc b/scripts/zm/replaced/_zm_ai_leaper.gsc index d62523aa..8d860457 100644 --- a/scripts/zm/replaced/_zm_ai_leaper.gsc +++ b/scripts/zm/replaced/_zm_ai_leaper.gsc @@ -41,7 +41,6 @@ leaper_round_tracker() leaper_round_start(); level.round_spawn_func = ::leaper_round_spawning; level.round_wait_func = ::leaper_round_wait; - level.next_leaper_round = level.round_number + randomintrange( 4, 6 ); if( !isdefined( level.prev_leaper_round_amount ) ) {