diff --git a/README.md b/README.md index 0cf375d0..22e306e3 100644 --- a/README.md +++ b/README.md @@ -584,11 +584,13 @@ ### Die Rise * Removed key * Elevators and escape pod can be called without key +* Added purchase cost to call elevators and escape pod * Elevators can be locked at their current floor * Escape pod can be used with any amount of players * Escape pod can be called up or down * Moved weapon locker to the downstairs fridge * Quick Revive elevator randomizes with Speed Cola and Who's Who elevators +* Zombies killed by an elevator no longer respawn * Zombies are no longer killed while spawning in a stationary elevator * Zombies no longer spawn in the Upper Blue Highrise zone when in the Green Highrise zone * Zombies no longer spawn in the zone next to the Lower Orange Highrise zone when in the Lower Orange Highrise zone while the debris is closed diff --git a/scripts/zm/replaced/zm_highrise_elevators.gsc b/scripts/zm/replaced/zm_highrise_elevators.gsc index d40a6e9a..43fc0170 100644 --- a/scripts/zm/replaced/zm_highrise_elevators.gsc +++ b/scripts/zm/replaced/zm_highrise_elevators.gsc @@ -374,9 +374,6 @@ watch_for_elevator_during_faller_spawn() { playfx( level._effect["zomb_gib"], self.origin ); - if ( !( isdefined( self.has_been_damaged_by_player ) && self.has_been_damaged_by_player ) && !( isdefined( self.is_leaper ) && self.is_leaper ) ) - level.zombie_total++; - if ( isdefined( self.is_leaper ) && self.is_leaper ) { self maps\mp\zombies\_zm_ai_leaper::leaper_cleanup(); diff --git a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc index 2bc83699..9d25e357 100644 --- a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc +++ b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc @@ -173,6 +173,7 @@ elevator_call() trig.floor = flevel; } + trig.cost = 250; trig usetriggerrequirelookat(); trig sethintstring( &"ZOMBIE_NEED_POWER" ); } @@ -194,6 +195,7 @@ elevator_call_think() while ( 1 ) { + cost_active = 0; if ( !self.elevator.body.is_moving && self.elevator maps\mp\zm_highrise_elevators::elevator_is_on_floor( self.floor ) && !is_true( self.elevator.body.start_location_wait ) ) { if ( !is_true( self.elevator.body.elevator_stop ) ) @@ -207,7 +209,8 @@ elevator_call_think() } else { - self sethintstring( &"ZM_HIGHRISE_BUILD_KEYS" ); + cost_active = 1; + self sethintstring( &"ZM_HIGHRISE_BUILD_KEYS", " [Cost: " + self.cost + "]" ); } self trigger_on(); @@ -219,6 +222,19 @@ elevator_call_think() continue; } + if ( cost_active ) + { + if ( who.score < self.cost ) + { + play_sound_at_pos( "no_purchase", self.origin ); + who maps\mp\zombies\_zm_audio::create_and_play_dialog( "general", "door_deny" ); + continue; + } + + who maps\mp\zombies\_zm_score::minus_to_player_score( self.cost ); + play_sound_at_pos( "purchase", self.origin ); + } + self playsound( "zmb_elevator_ding" ); if ( !self.elevator.body.is_moving && self.elevator maps\mp\zm_highrise_elevators::elevator_is_on_floor( self.floor ) && !is_true( self.elevator.body.start_location_wait ) ) @@ -317,8 +333,9 @@ escape_pod_call() { trig = getent( "escape_pod_key_console_trigger", "targetname" ); + trig.cost = 750; trig usetriggerrequirelookat(); - trig sethintstring( &"ZM_HIGHRISE_BUILD_KEYS" ); + trig sethintstring( &"ZM_HIGHRISE_BUILD_KEYS", " [Cost: " + trig.cost + "]" ); trig trigger_off(); trig thread escape_pod_call_think(); @@ -339,6 +356,16 @@ escape_pod_call_think() continue; } + if ( who.score < self.cost ) + { + play_sound_at_pos( "no_purchase", self.origin ); + who maps\mp\zombies\_zm_audio::create_and_play_dialog( "general", "door_deny" ); + continue; + } + + who maps\mp\zombies\_zm_score::minus_to_player_score( self.cost ); + play_sound_at_pos( "purchase", self.origin ); + self trigger_off(); self maps\mp\zm_highrise_buildables::onuseplantobject_escapepodkey( who );