diff --git a/README.md b/README.md index f7c9f014..1150fb49 100644 --- a/README.md +++ b/README.md @@ -610,6 +610,7 @@ * Zombies no longer spawn across from the debris in the Lower Orange Highrise area when the debris is closed * Zombies no longer fall off the map traversing down to the Green Highrise Level 1 area * Fixed weapon model angle on upside down Mystery Box +* Fixed zombies spawning in the elevator below the starting room when in the starting room * Fixed zombies not bleeding out in the Green Highrise Level 1b zone when the debris is closed and there are no players in the zone * Quest: elevator symbols can be activated without players on every symbol * Quest: elevator symbols stay active after activating once diff --git a/scripts/zm/replaced/zm_highrise_elevators.gsc b/scripts/zm/replaced/zm_highrise_elevators.gsc index e759716f..d3ed6606 100644 --- a/scripts/zm/replaced/zm_highrise_elevators.gsc +++ b/scripts/zm/replaced/zm_highrise_elevators.gsc @@ -351,6 +351,53 @@ elevator_move_sound() self playsound( "zmb_elevator_ding" ); } +elevator_roof_watcher() +{ + level endon( "end_game" ); + + while ( true ) + { + self.trig waittill( "trigger", who ); + + if ( isdefined( who ) && isplayer( who ) ) + { + while ( isdefined( who ) && who istouching( self.trig ) ) + { + if ( self.is_moving ) + self waittill_any( "movedone", "forcego" ); + + if ( self.current_level == 0 ) + { + break; // don't make climber at top level + } + + zombies = getaiarray( level.zombie_team ); + + if ( isdefined( zombies ) && zombies.size > 0 ) + { + foreach ( zombie in zombies ) + { + climber = zombie zombie_for_elevator_unseen(); + + if ( isdefined( climber ) ) + continue; + } + + if ( isdefined( climber ) ) + { + zombie zombie_climb_elevator( self ); + wait( randomint( 30 ) ); + } + } + + wait 0.5; + } + } + + wait 0.5; + } +} + faller_location_logic() { wait 1; diff --git a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc index e21d5b9c..8f0fead3 100644 --- a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc +++ b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc @@ -34,6 +34,7 @@ main() replaceFunc(maps\mp\zm_highrise_buildables::include_buildables, scripts\zm\replaced\zm_highrise_buildables::include_buildables); replaceFunc(maps\mp\zm_highrise_elevators::init_elevator_perks, scripts\zm\replaced\zm_highrise_elevators::init_elevator_perks); replaceFunc(maps\mp\zm_highrise_elevators::elevator_think, scripts\zm\replaced\zm_highrise_elevators::elevator_think); + replaceFunc(maps\mp\zm_highrise_elevators::elevator_roof_watcher, scripts\zm\replaced\zm_highrise_elevators::elevator_roof_watcher); replaceFunc(maps\mp\zm_highrise_elevators::faller_location_logic, scripts\zm\replaced\zm_highrise_elevators::faller_location_logic); replaceFunc(maps\mp\zm_highrise_distance_tracking::zombie_tracking_init, scripts\zm\replaced\zm_highrise_distance_tracking::zombie_tracking_init); replaceFunc(maps\mp\zm_highrise_distance_tracking::delete_zombie_noone_looking, scripts\zm\replaced\zm_highrise_distance_tracking::delete_zombie_noone_looking);