1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-12 16:18:00 -05:00

Who's Who: add duration HUD

Who's Who: decrease duration
Who's Who and afterlife: add being revived bar HUD
Change being revived text HUD position properly
Change solo being revived text HUD message
This commit is contained in:
Jbleezy
2023-04-20 03:25:29 -07:00
parent aa7086a1d6
commit b4764b614d
5 changed files with 130 additions and 54 deletions

View File

@ -354,10 +354,12 @@
* Keep weapons when entering Who's Who mode * Keep weapons when entering Who's Who mode
* Keep any perks obtained in Who's Who mode when exiting Who's Who mode * Keep any perks obtained in Who's Who mode when exiting Who's Who mode
* Revive twice as fast in Who's Who mode * Revive twice as fast in Who's Who mode
* Decreased Who's Who mode duration from 45 seconds to 30 seconds
* Invulnerable for 2 seconds after entering and exiting Who's Who mode * Invulnerable for 2 seconds after entering and exiting Who's Who mode
* Controls are frozen for 0.5 seconds after exiting Who's Who mode * Controls are frozen for 0.5 seconds after exiting Who's Who mode
* Purchasing Who's Who in Who's Who mode no longer destroys the clone * Purchasing Who's Who in Who's Who mode no longer destroys the clone
* Downing with Who's Who in Who's Who mode destroys the clone * Downing with Who's Who in Who's Who mode destroys the clone
* Added Who's Who mode duration on HUD
* Changed revive waypoint icon to Who's Who perk icon * Changed revive waypoint icon to Who's Who perk icon
* Revive waypoint shows offscreen * Revive waypoint shows offscreen

View File

@ -1655,7 +1655,8 @@ wait_and_revive()
self thread maps\mp\zombies\_zm::default_exit_level(); self thread maps\mp\zombies\_zm::default_exit_level();
} }
solo_revive_time = 10; solo_revive_time = 10;
self.revive_hud settext( &"ZOMBIE_REVIVING_SOLO", self ); self.revive_hud.y = -160;
self.revive_hud settext( &"ZOMBIE_REVIVING" );
self maps\mp\zombies\_zm_laststand::revive_hud_show_n_fade( solo_revive_time ); self maps\mp\zombies\_zm_laststand::revive_hud_show_n_fade( solo_revive_time );
if ( !isDefined( self.beingrevivedprogressbar ) ) if ( !isDefined( self.beingrevivedprogressbar ) )
{ {

View File

@ -166,7 +166,9 @@ afterlife_laststand( b_electric_chair = 0 )
} }
self ghost(); self ghost();
self.e_afterlife_corpse = self afterlife_spawn_corpse(); corpse = self afterlife_spawn_corpse();
self.e_afterlife_corpse = corpse;
corpse.e_afterlife_player = self;
self thread afterlife_clean_up_on_disconnect(); self thread afterlife_clean_up_on_disconnect();
self notify( "player_fake_corpse_created" ); self notify( "player_fake_corpse_created" );
self afterlife_fake_revive(); self afterlife_fake_revive();
@ -256,6 +258,16 @@ afterlife_revive_invincible()
afterlife_revive_do_revive( playerbeingrevived, revivergun ) afterlife_revive_do_revive( playerbeingrevived, revivergun )
{ {
playerbeingrevived_player = playerbeingrevived;
playerbeingrevived_player.revive_hud.y = -160;
beingrevivedprogressbar_y = level.primaryprogressbary * -1;
if ( isDefined( playerbeingrevived.e_afterlife_player ) )
{
playerbeingrevived_player = playerbeingrevived.e_afterlife_player;
playerbeingrevived_player.revive_hud.y = -50;
beingrevivedprogressbar_y = level.secondaryprogressbary * -2;
}
assert( self is_reviving_afterlife( playerbeingrevived ) ); assert( self is_reviving_afterlife( playerbeingrevived ) );
revivetime = 3; revivetime = 3;
playloop = 0; playloop = 0;
@ -269,24 +281,28 @@ afterlife_revive_do_revive( playerbeingrevived, revivergun )
timer = 0; timer = 0;
revived = 0; revived = 0;
playerbeingrevived.revivetrigger.beingrevived = 1; playerbeingrevived.revivetrigger.beingrevived = 1;
playerbeingrevived.revive_hud settext( &"GAME_PLAYER_IS_REVIVING_YOU", self );
playerbeingrevived revive_hud_show_n_fade( 3.0 );
playerbeingrevived.revivetrigger sethintstring( "" ); playerbeingrevived.revivetrigger sethintstring( "" );
if ( playerbeingrevived_player != self )
{
playerbeingrevived_player.revive_hud settext( &"GAME_PLAYER_IS_REVIVING_YOU", self );
playerbeingrevived_player revive_hud_show_n_fade( 3.0 );
}
if ( isplayer( playerbeingrevived ) ) if ( isplayer( playerbeingrevived ) )
{ {
playerbeingrevived startrevive( self ); playerbeingrevived startrevive( self );
} }
if ( !isDefined( playerbeingrevived.beingrevivedprogressbar ) ) if ( !isDefined( playerbeingrevived_player.beingrevivedprogressbar ) && playerbeingrevived_player != self )
{ {
playerbeingrevived.beingrevivedprogressbar = playerbeingrevived createprimaryprogressbar(); playerbeingrevived_player.beingrevivedprogressbar = playerbeingrevived_player createprimaryprogressbar();
playerbeingrevived.beingrevivedprogressbar setpoint("CENTER", undefined, level.primaryprogressbarx, -1 * level.primaryprogressbary); playerbeingrevived_player.beingrevivedprogressbar setpoint("CENTER", undefined, level.primaryprogressbarx, beingrevivedprogressbar_y);
playerbeingrevived.beingrevivedprogressbar.bar.color = (0.5, 0.5, 1); playerbeingrevived_player.beingrevivedprogressbar.bar.color = (0.5, 0.5, 1);
playerbeingrevived.beingrevivedprogressbar.hidewheninmenu = 1; playerbeingrevived_player.beingrevivedprogressbar.hidewheninmenu = 1;
playerbeingrevived.beingrevivedprogressbar.bar.hidewheninmenu = 1; playerbeingrevived_player.beingrevivedprogressbar.bar.hidewheninmenu = 1;
playerbeingrevived.beingrevivedprogressbar.barframe.hidewheninmenu = 1; playerbeingrevived_player.beingrevivedprogressbar.barframe.hidewheninmenu = 1;
playerbeingrevived.beingrevivedprogressbar thread scripts\zm\_zm_reimagined::destroy_on_intermission(); playerbeingrevived_player.beingrevivedprogressbar thread scripts\zm\_zm_reimagined::destroy_on_intermission();
} }
if ( !isdefined( self.reviveprogressbar ) ) if ( !isdefined( self.reviveprogressbar ) )
@ -308,7 +324,7 @@ afterlife_revive_do_revive( playerbeingrevived, revivergun )
self.is_reviving_any++; self.is_reviving_any++;
self thread laststand_clean_up_reviving_any( playerbeingrevived ); self thread laststand_clean_up_reviving_any( playerbeingrevived );
self.reviveprogressbar updatebar( 0.01, 1 / revivetime ); self.reviveprogressbar updatebar( 0.01, 1 / revivetime );
playerbeingrevived.beingrevivedprogressbar updatebar( 0.01, 1 / revivetime ); playerbeingrevived_player.beingrevivedprogressbar updatebar( 0.01, 1 / revivetime );
self.revivetexthud.alignx = "center"; self.revivetexthud.alignx = "center";
self.revivetexthud.aligny = "middle"; self.revivetexthud.aligny = "middle";
self.revivetexthud.horzalign = "center"; self.revivetexthud.horzalign = "center";
@ -358,9 +374,14 @@ afterlife_revive_do_revive( playerbeingrevived, revivergun )
e_fx delete(); e_fx delete();
if ( isDefined( playerbeingrevived.beingrevivedprogressbar ) ) if ( isDefined( playerbeingrevived_player.beingrevivedprogressbar ) )
{ {
playerbeingrevived.beingrevivedprogressbar destroyelem(); playerbeingrevived_player.beingrevivedprogressbar destroyelem();
}
if ( isDefined( playerbeingrevived_player.revive_hud ) )
{
playerbeingrevived_player.revive_hud settext("");
} }
if ( isdefined( self.reviveprogressbar ) ) if ( isdefined( self.reviveprogressbar ) )

View File

@ -1,6 +1,7 @@
#include maps\mp\_utility; #include maps\mp\_utility;
#include common_scripts\utility; #include common_scripts\utility;
#include maps\mp\zombies\_zm_utility; #include maps\mp\zombies\_zm_utility;
#include maps\mp\gametypes_zm\_hud_util;
#include maps\mp\zombies\_zm_chugabud; #include maps\mp\zombies\_zm_chugabud;
chugabud_laststand() chugabud_laststand()
@ -42,8 +43,9 @@ chugabud_laststand()
{ {
self thread activate_chugabud_effects_and_audio(); self thread activate_chugabud_effects_and_audio();
corpse = self chugabud_spawn_corpse(); corpse = self chugabud_spawn_corpse();
corpse thread chugabud_corpse_revive_icon( self );
self.e_chugabud_corpse = corpse; self.e_chugabud_corpse = corpse;
corpse.e_chugabud_player = self;
corpse thread chugabud_corpse_revive_icon( self );
corpse thread chugabud_corpse_cleanup_on_spectator( self ); corpse thread chugabud_corpse_cleanup_on_spectator( self );
corpse thread chugabud_corpse_cleanup_on_disconnect( self ); corpse thread chugabud_corpse_cleanup_on_disconnect( self );
@ -51,7 +53,7 @@ chugabud_laststand()
corpse setclientfield( "clientfield_whos_who_clone_glow_shader", 1 ); corpse setclientfield( "clientfield_whos_who_clone_glow_shader", 1 );
} }
self chugabud_fake_revive(); self thread chugabud_fake_revive();
wait 0.1; wait 0.1;
self.ignore_insta_kill = undefined; self.ignore_insta_kill = undefined;
self.disable_chugabud_corpse = undefined; self.disable_chugabud_corpse = undefined;
@ -62,7 +64,7 @@ chugabud_laststand()
return; return;
} }
bleedout_time = getdvarfloat( "player_lastStandBleedoutTime" ); bleedout_time = 30;
self thread chugabud_bleed_timeout( bleedout_time, corpse ); self thread chugabud_bleed_timeout( bleedout_time, corpse );
self thread chugabud_handle_multiple_instances( corpse ); self thread chugabud_handle_multiple_instances( corpse );
@ -245,27 +247,23 @@ chugabud_spawn_corpse()
corpse.angles = self.angles; corpse.angles = self.angles;
corpse maps\mp\zombies\_zm_clone::clone_give_weapon( "m1911_zm" ); corpse maps\mp\zombies\_zm_clone::clone_give_weapon( "m1911_zm" );
corpse maps\mp\zombies\_zm_clone::clone_animate( "laststand" ); corpse maps\mp\zombies\_zm_clone::clone_animate( "laststand" );
corpse.revive_hud = self chugabud_revive_hud_create();
corpse thread maps\mp\zombies\_zm_laststand::revive_trigger_spawn(); corpse thread maps\mp\zombies\_zm_laststand::revive_trigger_spawn();
return corpse; return corpse;
} }
chugabud_revive_hud_create() chugabud_bleed_timeout_hud_create( delay )
{ {
self.old_revive_hud = self.revive_hud; hud = self createbar((0.25, 0.25, 1), level.secondaryprogressbarwidth * 2, level.secondaryprogressbarheight);
self.revive_hud = newclienthudelem( self ); hud setpoint("CENTER", undefined, level.secondaryprogressbarx, -2.25 * level.secondaryprogressbary);
self.revive_hud.alignx = "center"; hud.hidewheninmenu = 1;
self.revive_hud.aligny = "middle"; hud.bar.hidewheninmenu = 1;
self.revive_hud.horzalign = "center"; hud.barframe.hidewheninmenu = 1;
self.revive_hud.vertalign = "bottom"; hud thread scripts\zm\_zm_reimagined::destroy_on_intermission();
self.revive_hud.y = -50;
self.revive_hud.foreground = 1; hud updatebar(1);
self.revive_hud.font = "default"; hud.bar scaleovertime(delay, 1, hud.height);
self.revive_hud.fontscale = 1.5;
self.revive_hud.alpha = 0; return hud;
self.revive_hud.color = ( 1, 1, 1 );
self.revive_hud settext( "" );
return self.revive_hud;
} }
chugabud_corpse_revive_icon( player ) chugabud_corpse_revive_icon( player )
@ -310,13 +308,6 @@ chugabud_corpse_cleanup( corpse, was_revived )
corpse.revivetrigger = undefined; corpse.revivetrigger = undefined;
} }
if ( isdefined( corpse.revive_hud ) )
{
self.revive_hud = self.old_revive_hud;
corpse.revive_hud destroy();
corpse.revive_hud = undefined;
}
if ( isdefined( corpse.revive_hud_elem ) ) if ( isdefined( corpse.revive_hud_elem ) )
{ {
corpse.revive_hud_elem destroy(); corpse.revive_hud_elem destroy();
@ -329,6 +320,14 @@ chugabud_corpse_cleanup( corpse, was_revived )
corpse.revive_waypoint_origin = undefined; corpse.revive_waypoint_origin = undefined;
} }
if ( isdefined( self.chugabud_bleed_timeout_hud ) )
{
self.chugabud_bleed_timeout_hud destroy();
self.chugabud_bleed_timeout_hud.bar destroy();
self.chugabud_bleed_timeout_hud.barframe destroy();
self.chugabud_bleed_timeout_hud = undefined;
}
self.loadout = undefined; self.loadout = undefined;
wait 0.1; wait 0.1;
corpse delete(); corpse delete();
@ -405,6 +404,8 @@ chugabud_bleed_timeout( delay, corpse )
self endon( "disconnect" ); self endon( "disconnect" );
corpse endon( "death" ); corpse endon( "death" );
self.chugabud_bleed_timeout_hud = self chugabud_bleed_timeout_hud_create( delay );
wait delay; wait delay;
if ( isDefined( corpse.revivetrigger ) ) if ( isDefined( corpse.revivetrigger ) )

View File

@ -5,83 +5,121 @@
revive_do_revive( playerbeingrevived, revivergun ) revive_do_revive( playerbeingrevived, revivergun )
{ {
playerbeingrevived_player = playerbeingrevived;
playerbeingrevived_player.revive_hud.y = -160;
beingrevivedprogressbar_y = level.primaryprogressbary * -1;
if ( isDefined( playerbeingrevived.e_chugabud_player ) )
{
playerbeingrevived_player = playerbeingrevived.e_chugabud_player;
playerbeingrevived_player.revive_hud.y = -50;
beingrevivedprogressbar_y = level.secondaryprogressbary * -2;
}
revivetime = 3; revivetime = 3;
if ( self hasperk( "specialty_quickrevive" ) ) if ( self hasperk( "specialty_quickrevive" ) )
{ {
revivetime /= 1.5; revivetime /= 1.5;
} }
if ( self maps\mp\zombies\_zm_pers_upgrades_functions::pers_revive_active() ) if ( self maps\mp\zombies\_zm_pers_upgrades_functions::pers_revive_active() )
{ {
revivetime *= 0.5; revivetime *= 0.5;
} }
if ( isdefined( self.e_chugabud_corpse ) ) if ( isdefined( self.e_chugabud_corpse ) )
{ {
revivetime *= 0.5; revivetime *= 0.5;
} }
timer = 0; timer = 0;
revived = 0; revived = 0;
playerbeingrevived.revivetrigger.beingrevived = 1; playerbeingrevived.revivetrigger.beingrevived = 1;
playerbeingrevived.revive_hud settext( &"ZOMBIE_PLAYER_IS_REVIVING_YOU", self );
playerbeingrevived maps\mp\zombies\_zm_laststand::revive_hud_show_n_fade( 3 );
playerbeingrevived.revivetrigger sethintstring( "" ); playerbeingrevived.revivetrigger sethintstring( "" );
if ( playerbeingrevived_player != self )
{
playerbeingrevived_player.revive_hud settext( &"ZOMBIE_PLAYER_IS_REVIVING_YOU", self );
playerbeingrevived_player maps\mp\zombies\_zm_laststand::revive_hud_show_n_fade( 3 );
}
if ( isplayer( playerbeingrevived ) ) if ( isplayer( playerbeingrevived ) )
{ {
playerbeingrevived startrevive( self ); playerbeingrevived startrevive( self );
} }
if ( !isDefined( playerbeingrevived.beingrevivedprogressbar ) )
if ( !isDefined( playerbeingrevived_player.beingrevivedprogressbar ) && playerbeingrevived_player != self )
{ {
playerbeingrevived.beingrevivedprogressbar = playerbeingrevived createprimaryprogressbar(); playerbeingrevived_player.beingrevivedprogressbar = playerbeingrevived_player createprimaryprogressbar();
playerbeingrevived.beingrevivedprogressbar setpoint("CENTER", undefined, level.primaryprogressbarx, -1 * level.primaryprogressbary); playerbeingrevived_player.beingrevivedprogressbar setpoint("CENTER", undefined, level.primaryprogressbarx, beingrevivedprogressbar_y);
playerbeingrevived.beingrevivedprogressbar.bar.color = (0.5, 0.5, 1); playerbeingrevived_player.beingrevivedprogressbar.bar.color = (0.5, 0.5, 1);
playerbeingrevived.beingrevivedprogressbar.hidewheninmenu = 1; playerbeingrevived_player.beingrevivedprogressbar.hidewheninmenu = 1;
playerbeingrevived.beingrevivedprogressbar.bar.hidewheninmenu = 1; playerbeingrevived_player.beingrevivedprogressbar.bar.hidewheninmenu = 1;
playerbeingrevived.beingrevivedprogressbar.barframe.hidewheninmenu = 1; playerbeingrevived_player.beingrevivedprogressbar.barframe.hidewheninmenu = 1;
playerbeingrevived.beingrevivedprogressbar thread scripts\zm\_zm_reimagined::destroy_on_intermission(); playerbeingrevived_player.beingrevivedprogressbar thread scripts\zm\_zm_reimagined::destroy_on_intermission();
} }
if ( !isDefined( self.reviveprogressbar ) ) if ( !isDefined( self.reviveprogressbar ) )
{ {
self.reviveprogressbar = self createprimaryprogressbar(); self.reviveprogressbar = self createprimaryprogressbar();
self.reviveprogressbar.bar.color = (0.5, 0.5, 1); self.reviveprogressbar.bar.color = (0.5, 0.5, 1);
self.reviveprogressbar thread scripts\zm\_zm_reimagined::destroy_on_intermission(); self.reviveprogressbar thread scripts\zm\_zm_reimagined::destroy_on_intermission();
} }
if ( !isDefined( self.revivetexthud ) ) if ( !isDefined( self.revivetexthud ) )
{ {
self.revivetexthud = newclienthudelem( self ); self.revivetexthud = newclienthudelem( self );
} }
self thread laststand_clean_up_on_disconnect( playerbeingrevived, revivergun ); self thread laststand_clean_up_on_disconnect( playerbeingrevived, revivergun );
if ( !isDefined( self.is_reviving_any ) ) if ( !isDefined( self.is_reviving_any ) )
{ {
self.is_reviving_any = 0; self.is_reviving_any = 0;
} }
self.is_reviving_any++; self.is_reviving_any++;
self thread laststand_clean_up_reviving_any( playerbeingrevived ); self thread laststand_clean_up_reviving_any( playerbeingrevived );
self.reviveprogressbar updatebar( 0.01, 1 / revivetime ); self.reviveprogressbar updatebar( 0.01, 1 / revivetime );
playerbeingrevived.beingrevivedprogressbar updatebar( 0.01, 1 / revivetime ); playerbeingrevived_player.beingrevivedprogressbar updatebar( 0.01, 1 / revivetime );
if ( isDefined( playerbeingrevived_player.beingrevivedprogressbar ) )
{
playerbeingrevived_player.beingrevivedprogressbar updatebar( 0.01, 1 / revivetime );
}
self.revivetexthud.alignx = "center"; self.revivetexthud.alignx = "center";
self.revivetexthud.aligny = "middle"; self.revivetexthud.aligny = "middle";
self.revivetexthud.horzalign = "center"; self.revivetexthud.horzalign = "center";
self.revivetexthud.vertalign = "bottom"; self.revivetexthud.vertalign = "bottom";
self.revivetexthud.y = -113; self.revivetexthud.y = -113;
if ( self issplitscreen() ) if ( self issplitscreen() )
{ {
self.revivetexthud.y = -347; self.revivetexthud.y = -347;
} }
self.revivetexthud.foreground = 1; self.revivetexthud.foreground = 1;
self.revivetexthud.font = "default"; self.revivetexthud.font = "default";
self.revivetexthud.fontscale = 1.8; self.revivetexthud.fontscale = 1.8;
self.revivetexthud.alpha = 1; self.revivetexthud.alpha = 1;
self.revivetexthud.color = ( 1, 1, 1 ); self.revivetexthud.color = ( 1, 1, 1 );
self.revivetexthud.hidewheninmenu = 1; self.revivetexthud.hidewheninmenu = 1;
if ( self maps\mp\zombies\_zm_pers_upgrades_functions::pers_revive_active() ) if ( self maps\mp\zombies\_zm_pers_upgrades_functions::pers_revive_active() )
{ {
self.revivetexthud.color = ( 0.5, 0.5, 1 ); self.revivetexthud.color = ( 0.5, 0.5, 1 );
} }
self.revivetexthud settext( &"ZOMBIE_REVIVING" ); self.revivetexthud settext( &"ZOMBIE_REVIVING" );
self thread maps\mp\zombies\_zm_laststand::check_for_failed_revive( playerbeingrevived ); self thread maps\mp\zombies\_zm_laststand::check_for_failed_revive( playerbeingrevived );
while ( self maps\mp\zombies\_zm_laststand::is_reviving( playerbeingrevived ) ) while ( self maps\mp\zombies\_zm_laststand::is_reviving( playerbeingrevived ) )
{ {
wait 0.05; wait 0.05;
timer += 0.05; timer += 0.05;
if ( self maps\mp\zombies\_zm_laststand::player_is_in_laststand() ) if ( self maps\mp\zombies\_zm_laststand::player_is_in_laststand() )
{ {
break; break;
@ -90,26 +128,37 @@ revive_do_revive( playerbeingrevived, revivergun )
{ {
break; break;
} }
if ( timer >= revivetime ) if ( timer >= revivetime )
{ {
revived = 1; revived = 1;
break; break;
} }
} }
if ( isDefined( playerbeingrevived.beingrevivedprogressbar ) )
if ( isDefined( playerbeingrevived_player.beingrevivedprogressbar ) )
{ {
playerbeingrevived.beingrevivedprogressbar destroyelem(); playerbeingrevived_player.beingrevivedprogressbar destroyelem();
} }
if ( isDefined( playerbeingrevived_player.revive_hud ) )
{
playerbeingrevived_player.revive_hud settext("");
}
if ( isDefined( self.reviveprogressbar ) ) if ( isDefined( self.reviveprogressbar ) )
{ {
self.reviveprogressbar destroyelem(); self.reviveprogressbar destroyelem();
} }
if ( isDefined( self.revivetexthud ) ) if ( isDefined( self.revivetexthud ) )
{ {
self.revivetexthud destroy(); self.revivetexthud destroy();
} }
if ( isDefined( playerbeingrevived.revivetrigger.auto_revive ) && playerbeingrevived.revivetrigger.auto_revive == 1 ) if ( isDefined( playerbeingrevived.revivetrigger.auto_revive ) && playerbeingrevived.revivetrigger.auto_revive == 1 )
{ {
} }
else if ( !revived ) else if ( !revived )
{ {
@ -118,6 +167,7 @@ revive_do_revive( playerbeingrevived, revivergun )
playerbeingrevived stoprevive( self ); playerbeingrevived stoprevive( self );
} }
} }
playerbeingrevived.revivetrigger sethintstring( &"ZOMBIE_BUTTON_TO_REVIVE_PLAYER" ); playerbeingrevived.revivetrigger sethintstring( &"ZOMBIE_BUTTON_TO_REVIVE_PLAYER" );
playerbeingrevived.revivetrigger.beingrevived = 0; playerbeingrevived.revivetrigger.beingrevived = 0;
self notify( "do_revive_ended_normally" ); self notify( "do_revive_ended_normally" );
@ -127,6 +177,7 @@ revive_do_revive( playerbeingrevived, revivergun )
{ {
playerbeingrevived thread maps\mp\zombies\_zm_laststand::checkforbleedout( self ); playerbeingrevived thread maps\mp\zombies\_zm_laststand::checkforbleedout( self );
} }
return revived; return revived;
} }