1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-07-09 13:28:15 -05:00

Add quest complete time

MOTD: freeze timers on fade to white screen at end of quest
This commit is contained in:
Jbleezy
2023-10-01 10:14:33 -07:00
parent 63fde591cf
commit 678a1ac9e5
6 changed files with 72 additions and 25 deletions

View File

@ -818,7 +818,7 @@ timer_hud()
hud thread destroy_on_intermission(); hud thread destroy_on_intermission();
level thread set_time_frozen_on_end_game(hud); hud thread set_time_frozen_on_end_game();
flag_wait( "hud_visible" ); flag_wait( "hud_visible" );
@ -831,12 +831,12 @@ timer_hud()
if ( !flag( "initial_blackscreen_passed" ) ) if ( !flag( "initial_blackscreen_passed" ) )
{ {
set_time_frozen(hud, 0, "initial_blackscreen_passed"); hud set_time_frozen(0, "initial_blackscreen_passed");
} }
if ( getDvar( "g_gametype" ) == "zgrief" ) if ( getDvar( "g_gametype" ) == "zgrief" )
{ {
set_time_frozen(hud, 0); hud set_time_frozen(0);
} }
hud setTimerUp(0); hud setTimerUp(0);
@ -869,7 +869,7 @@ round_timer_hud()
hud thread destroy_on_intermission(); hud thread destroy_on_intermission();
level thread set_time_frozen_on_end_game(hud); hud thread set_time_frozen_on_end_game();
flag_wait( "hud_visible" ); flag_wait( "hud_visible" );
@ -882,12 +882,12 @@ round_timer_hud()
if ( !flag( "initial_blackscreen_passed" ) ) if ( !flag( "initial_blackscreen_passed" ) )
{ {
set_time_frozen(hud, 0, "initial_blackscreen_passed"); hud set_time_frozen(0, "initial_blackscreen_passed");
} }
if ( getDvar( "g_gametype" ) == "zgrief" ) if ( getDvar( "g_gametype" ) == "zgrief" )
{ {
set_time_frozen(hud, 0); hud set_time_frozen(0);
} }
while (1) while (1)
@ -908,7 +908,7 @@ round_timer_hud()
time = int((getTime() - hud.start_time) / 1000); time = int((getTime() - hud.start_time) / 1000);
set_time_frozen(hud, time); hud set_time_frozen(time);
} }
} }
@ -933,6 +933,8 @@ round_total_timer_hud()
hud.foreground = 1; hud.foreground = 1;
hud.label = &"Round Total: "; hud.label = &"Round Total: ";
hud endon("death");
hud thread destroy_on_intermission(); hud thread destroy_on_intermission();
fade_time = 0.5; fade_time = 0.5;
@ -942,7 +944,7 @@ round_total_timer_hud()
time = int((getTime() - level.timer_hud_start_time) / 1000); time = int((getTime() - level.timer_hud_start_time) / 1000);
set_time_frozen(hud, time); hud set_time_frozen(time);
hud fadeOverTime(fade_time); hud fadeOverTime(fade_time);
hud.alpha = 0; hud.alpha = 0;
@ -952,18 +954,7 @@ round_total_timer_hud()
hud destroy(); hud destroy();
} }
set_time_frozen_on_end_game(hud) set_time_frozen(time, endon_notify)
{
level endon("intermission");
level waittill("end_game");
time = int((getTime() - hud.start_time) / 1000);
set_time_frozen(hud, time);
}
set_time_frozen(hud, time, endon_notify)
{ {
if ( isDefined( endon_notify ) ) if ( isDefined( endon_notify ) )
{ {
@ -978,6 +969,8 @@ set_time_frozen(hud, time, endon_notify)
level endon( "start_of_round" ); level endon( "start_of_round" );
} }
self endon( "death" );
if(time != 0) if(time != 0)
{ {
time -= 0.5; // need to set it below the number or it shows the next number time -= 0.5; // need to set it below the number or it shows the next number
@ -987,17 +980,28 @@ set_time_frozen(hud, time, endon_notify)
{ {
if(time == 0) if(time == 0)
{ {
hud setTimerUp(time); self setTimerUp(time);
} }
else else
{ {
hud setTimer(time); self setTimer(time);
} }
wait 0.5; wait 0.5;
} }
} }
set_time_frozen_on_end_game()
{
level endon("intermission");
level waittill_any("end_game", "freeze_timers");
time = int((getTime() - self.start_time) / 1000);
self set_time_frozen(time, "forever");
}
zone_hud() zone_hud()
{ {
self endon("disconnect"); self endon("disconnect");

View File

@ -67,3 +67,41 @@ sq_give_player_all_perks()
wait 0.25; wait 0.25;
} }
} }
sq_complete_time_hud()
{
hud = newHudElem();
hud.alignx = "center";
hud.aligny = "top";
hud.horzalign = "user_center";
hud.vertalign = "user_top";
hud.y += 100;
hud.fontscale = 1.4;
hud.alpha = 0;
hud.color = ( 1, 1, 1 );
hud.hidewheninmenu = 1;
hud.foreground = 1;
hud.label = &"Quest Complete! Time: ";
hud endon("death");
hud thread scripts\zm\_zm_reimagined::destroy_on_intermission();
fade_time = 0.5;
hud fadeOverTime(fade_time);
hud.alpha = 1;
time = int((getTime() - level.timer_hud_start_time) / 1000);
hud thread scripts\zm\_zm_reimagined::set_time_frozen(time, "forever");
wait 10;
hud fadeOverTime(fade_time);
hud.alpha = 0;
wait fade_time;
hud destroy();
}

View File

@ -120,6 +120,8 @@ richtofen_zombie_deathfunction_override()
sq_give_player_rewards() sq_give_player_rewards()
{ {
level thread scripts\zm\replaced\_zm_sq::sq_complete_time_hud();
players = get_players(); players = get_players();
foreach ( player in players ) foreach ( player in players )

View File

@ -175,8 +175,9 @@ sq_give_all_perks()
n_fireball_exploder = 901; n_fireball_exploder = 901;
} }
players = getplayers(); level thread scripts\zm\replaced\_zm_sq::sq_complete_time_hud();
players = getplayers();
foreach ( player in players ) foreach ( player in players )
{ {
player thread sq_give_player_perks( perks, v_fireball_start_loc, n_fireball_exploder ); player thread sq_give_player_perks( perks, v_fireball_start_loc, n_fireball_exploder );

View File

@ -77,7 +77,6 @@ stage_two()
t_plane_fly_afterlife trigger_on(); t_plane_fly_afterlife trigger_on();
players = get_players(); players = get_players();
foreach ( player in players ) foreach ( player in players )
{ {
if ( is_player_valid( player ) ) if ( is_player_valid( player ) )
@ -304,6 +303,8 @@ stage_final()
level thread clean_up_final_brutuses(); level thread clean_up_final_brutuses();
wait 2; wait 2;
level notify("freeze_timers");
if ( level.winner == "weasel" ) if ( level.winner == "weasel" )
{ {
a_players = getplayers(); a_players = getplayers();

View File

@ -280,8 +280,9 @@ set_screecher_zone_origin_and_notify( script_noteworthy, notify_str )
droppowerup( story ) droppowerup( story )
{ {
players = get_players(); level thread scripts\zm\replaced\_zm_sq::sq_complete_time_hud();
players = get_players();
foreach ( player in players ) foreach ( player in players )
{ {
if ( is_player_valid( player ) ) if ( is_player_valid( player ) )