From 2852da8ddc82ac4c7ed1d8d057e49ecb96ee43aa Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Wed, 5 Apr 2023 23:24:41 -0700 Subject: [PATCH] Gondola: change trigger hint strings immediately --- scripts/zm/replaced/zm_alcatraz_travel.gsc | 117 ++++++++++++++++++ scripts/zm/zm_prison/zm_prison_reimagined.gsc | 2 + 2 files changed, 119 insertions(+) create mode 100644 scripts/zm/replaced/zm_alcatraz_travel.gsc diff --git a/scripts/zm/replaced/zm_alcatraz_travel.gsc b/scripts/zm/replaced/zm_alcatraz_travel.gsc new file mode 100644 index 00000000..10eb46ae --- /dev/null +++ b/scripts/zm/replaced/zm_alcatraz_travel.gsc @@ -0,0 +1,117 @@ +#include common_scripts\utility; +#include maps\mp\_utility; +#include maps\_zombiemode_utility; +#include maps\mp\zombies\_zm_utility; +#include maps\mp\zombies\_zm_score; +#include maps\mp\zombies\_zm_laststand; +#include maps\mp\zombies\_zm_audio; +#include maps\mp\zm_alcatraz_travel; + +move_gondola( b_suppress_doors_close = 0 ) +{ + level clientnotify( "sndGS" ); + level thread gondola_lights_red(); + e_gondola = level.e_gondola; + t_ride = level.e_gondola.t_ride; + e_gondola.is_moving = 1; + + if ( e_gondola.location == "roof" ) + { + s_moveloc = getstruct( "gondola_struct_docks", "targetname" ); + e_gondola.destination = "docks"; + level thread gondola_outofbounds_trigger_stop(); + } + else if ( e_gondola.location == "docks" ) + { + s_moveloc = getstruct( "gondola_struct_roof", "targetname" ); + e_gondola.destination = "roof"; + level thread gondola_outofbounds_trigger_enabled(); + } + + if ( flag( "gondola_initialized" ) ) + { + flag_set( "gondola_roof_to_dock" ); + flag_set( "gondola_dock_to_roof" ); + flag_set( "gondola_ride_zone_enabled" ); + } + + flag_clear( "gondola_at_" + e_gondola.location ); + + a_t_move = getentarray( "gondola_move_trigger", "targetname" ); + foreach ( trigger in a_t_move ) + trigger sethintstring( "" ); + + a_t_call = getentarray( "gondola_call_trigger", "targetname" ); + foreach ( trigger in a_t_call ) + trigger sethintstring( &"ZM_PRISON_GONDOLA_ACTIVE" ); + + if ( !( isdefined( b_suppress_doors_close ) && b_suppress_doors_close ) ) + e_gondola gondola_doors_move( e_gondola.location, -1 ); + + level notify( "gondola_moving" ); + + check_when_gondola_moves_if_groundent_is_undefined( e_gondola ); + a_players = getplayers(); + + foreach ( player in a_players ) + { + if ( player is_player_on_gondola() ) + { + player setclientfieldtoplayer( "rumble_gondola", 1 ); + player thread check_for_death_on_gondola( e_gondola ); + player.is_on_gondola = 1; + level thread maps\mp\zombies\_zm_audio::sndmusicstingerevent( "gondola", player ); + } + + if ( isdefined( player.e_afterlife_corpse ) && player.e_afterlife_corpse istouching( t_ride ) ) + player.e_afterlife_corpse thread link_corpses_to_gondola( e_gondola ); + } + + e_gondola thread create_gondola_poi(); + level thread gondola_moving_vo(); + e_gondola thread gondola_physics_explosion( 10 ); + e_gondola moveto( s_moveloc.origin, 10, 1, 1 ); + flag_set( "gondola_in_motion" ); + e_gondola thread gondola_chain_fx_anim(); + e_gondola playsound( "zmb_gondola_start" ); + e_gondola playloopsound( "zmb_gondola_loop", 1 ); + + e_gondola waittill( "movedone" ); + + flag_clear( "gondola_in_motion" ); + e_gondola stoploopsound( 0.5 ); + e_gondola thread sndcooldown(); + e_gondola playsound( "zmb_gondola_stop" ); + player_escaped_gondola_failsafe(); + a_players = getplayers(); + + foreach ( player in a_players ) + { + if ( isdefined( player.is_on_gondola ) && player.is_on_gondola ) + { + player setclientfieldtoplayer( "rumble_gondola", 0 ); + player.is_on_gondola = 0; + } + } + + e_gondola gondola_doors_move( e_gondola.destination, 1 ); + e_gondola.is_moving = 0; + e_gondola thread tear_down_gondola_poi(); + wait 1.0; + level clientnotify( "sndGE" ); + + if ( e_gondola.location == "roof" ) + { + e_gondola.location = "docks"; + str_zone = "zone_dock_gondola"; + } + else if ( e_gondola.location == "docks" ) + { + e_gondola.location = "roof"; + str_zone = "zone_cellblock_west_gondola_dock"; + } + + level notify( "gondola_arrived", str_zone ); + gondola_cooldown(); + flag_set( "gondola_at_" + e_gondola.location ); +} \ No newline at end of file diff --git a/scripts/zm/zm_prison/zm_prison_reimagined.gsc b/scripts/zm/zm_prison/zm_prison_reimagined.gsc index 57591632..b6a96661 100644 --- a/scripts/zm/zm_prison/zm_prison_reimagined.gsc +++ b/scripts/zm/zm_prison/zm_prison_reimagined.gsc @@ -11,6 +11,7 @@ #include scripts\zm\replaced\zm_alcatraz_utility; #include scripts\zm\replaced\zm_alcatraz_sq; #include scripts\zm\replaced\zm_alcatraz_traps; +#include scripts\zm\replaced\zm_alcatraz_travel; #include scripts\zm\replaced\zm_alcatraz_weap_quest; #include scripts\zm\replaced\zm_prison_sq_final; #include scripts\zm\replaced\_zm_afterlife; @@ -33,6 +34,7 @@ main() replaceFunc(maps\mp\zm_alcatraz_traps::zombie_acid_damage, scripts\zm\replaced\zm_alcatraz_traps::zombie_acid_damage); replaceFunc(maps\mp\zm_alcatraz_traps::player_acid_damage, scripts\zm\replaced\zm_alcatraz_traps::player_acid_damage); replaceFunc(maps\mp\zm_alcatraz_traps::tower_trap_trigger_think, scripts\zm\replaced\zm_alcatraz_traps::tower_trap_trigger_think); + replaceFunc(maps\mp\zm_alcatraz_travel::move_gondola, scripts\zm\replaced\zm_alcatraz_travel::move_gondola); replaceFunc(maps\mp\zm_alcatraz_weap_quest::grief_soul_catcher_state_manager, scripts\zm\replaced\zm_alcatraz_weap_quest::grief_soul_catcher_state_manager); replaceFunc(maps\mp\zm_prison_sq_final::stage_one, scripts\zm\replaced\zm_prison_sq_final::stage_one); replaceFunc(maps\mp\zm_prison_sq_final::final_flight_trigger, scripts\zm\replaced\zm_prison_sq_final::final_flight_trigger);