diff --git a/README.md b/README.md index 8427137b..2ca4f177 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ * Upgraded weapon camo is applied in last stand * Decreased friendly player name fade out time from 1.5 seconds to 0.25 seconds * Removed enemy player name fade in time +* Added icons on scoreboard when player is downed, bled out, in Who's Who mode, or in afterlife * Scoreboard no longer counts self revives as revives ## Zombies @@ -750,7 +751,6 @@ * Added teammate waypoint icons * Added kill feed (includes downs, revives, and bleed outs) * Added player kills on scoreboard (replaces headshots) -* Added player downed and bled out icons on scoreboard * Announcer audio always plays * Last player alive audio only plays for the player who is alive instead of every player on the team * Can only spectate own team diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index d3ceba45..fc96858a 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -108,6 +108,18 @@ main() init() { + precacheStatusIcon( "waypoint_revive" ); + + if ( is_true( level.zombiemode_using_chugabud_perk ) ) + { + precacheStatusIcon( "specialty_chugabud_zombies" ); + } + + if ( is_true( level.zombiemode_using_afterlife ) ) + { + precacheStatusIcon( "waypoint_revive_afterlife" ); + } + level.using_solo_revive = 0; level.claymores_max_per_player = 20; level.navcards = undefined; // removes navcards on HUD @@ -127,13 +139,15 @@ init() level thread initial_print(); - level thread onplayerconnect(); + level thread on_player_connect(); level thread post_all_players_spawned(); level thread enemy_counter_hud(); level thread timer_hud(); level thread swap_staminup_perk(); + + level thread remove_status_icons_on_intermission(); } initial_print() @@ -143,20 +157,25 @@ initial_print() iprintln("Reimagined Loaded"); } -onplayerconnect() +on_player_connect() { while(true) { level waittill("connecting", player); - player thread onplayerspawned(); - player thread onplayerdowned(); + player thread on_player_spawned(); + player thread on_player_spectate(); + player thread on_player_downed(); + player thread on_player_bleedout(); + player thread on_player_revived(); + player thread on_player_fake_revive(); + player thread on_player_chugabud_effects_cleanup(); player thread weapon_inspect_watcher(); } } -onplayerspawned() +on_player_spawned() { level endon( "game_ended" ); self endon( "disconnect" ); @@ -208,12 +227,27 @@ onplayerspawned() //self GiveMaxAmmo("dsr50_zm"); } + self.statusicon = ""; + self set_client_dvars(); self set_perks(); } } -onplayerdowned() +on_player_spectate() +{ + level endon("end_game"); + self endon( "disconnect" ); + + while(1) + { + self waittill( "spawned_spectator" ); + + self.statusicon = "hud_status_dead"; + } +} + +on_player_downed() { level endon( "game_ended" ); self endon( "disconnect" ); @@ -222,10 +256,73 @@ onplayerdowned() { self waittill( "entering_last_stand" ); + self.statusicon = "waypoint_revive"; self.health = self.maxhealth; } } +on_player_bleedout() +{ + level endon("end_game"); + self endon( "disconnect" ); + + while(1) + { + self waittill_any( "bled_out", "player_suicide" ); + + self.statusicon = "hud_status_dead"; + } +} + +on_player_revived() +{ + level endon("end_game"); + self endon( "disconnect" ); + + while(1) + { + self waittill( "player_revived", reviver ); + + self.statusicon = ""; + } +} + +on_player_fake_revive() +{ + level endon("end_game"); + self endon( "disconnect" ); + + while(1) + { + self waittill( "fake_revive" ); + + if ( is_true( level.zombiemode_using_chugabud_perk ) ) + { + self.statusicon = "specialty_chugabud_zombies"; + } + else if ( is_true( level.zombiemode_using_afterlife ) ) + { + self.statusicon = "waypoint_revive_afterlife"; + } + } +} + +on_player_chugabud_effects_cleanup() +{ + level endon("end_game"); + self endon( "disconnect" ); + + while(1) + { + self waittill( "chugabud_effects_cleanup" ); + + if ( is_player_valid( self ) ) + { + self.statusicon = ""; + } + } +} + post_all_players_spawned() { flag_wait( "start_zombie_round_logic" ); @@ -3913,6 +4010,17 @@ zone_changes() } } +remove_status_icons_on_intermission() +{ + level waittill("intermission"); + + players = get_players(); + foreach(player in players) + { + player.statusicon = ""; + } +} + destroy_on_intermission() { self endon("death"); diff --git a/scripts/zm/zgrief/zgrief_reimagined.gsc b/scripts/zm/zgrief/zgrief_reimagined.gsc index a5c215d0..4d1b6f23 100644 --- a/scripts/zm/zgrief/zgrief_reimagined.gsc +++ b/scripts/zm/zgrief/zgrief_reimagined.gsc @@ -37,8 +37,6 @@ init() return; } - precacheStatusIcon( "waypoint_revive" ); - if (level.script == "zm_prison") { precacheShader( "waypoint_kill_red" ); @@ -99,7 +97,6 @@ init() level thread remove_round_number(); level thread unlimited_zombies(); level thread unlimited_powerups(); - level thread remove_status_icons_on_intermission(); level thread all_voice_on_intermission(); level thread spawn_bots(); } @@ -825,7 +822,6 @@ on_player_spawned() { self waittill( "spawned_player" ); - self.statusicon = ""; self.player_waypoint.alpha = 1; self thread scripts\zm\replaced\_zm::player_spawn_protection(); @@ -872,7 +868,6 @@ on_player_spectate() { self waittill( "spawned_spectator" ); - self.statusicon = "hud_status_dead"; self.player_waypoint.alpha = 0; } } @@ -886,7 +881,6 @@ on_player_downed() { self waittill( "entering_last_stand" ); - self.statusicon = "waypoint_revive"; self.player_waypoint.alpha = 0; self kill_feed(); self add_grief_downed_score(); @@ -903,7 +897,6 @@ on_player_bleedout() { self waittill_any( "bled_out", "player_suicide" ); - self.statusicon = "hud_status_dead"; self.player_waypoint.alpha = 0; if(isDefined(level.zombie_last_stand_ammo_return)) @@ -951,7 +944,6 @@ on_player_revived() { self waittill( "player_revived", reviver ); - self.statusicon = ""; self.player_waypoint.alpha = 1; self revive_feed( reviver ); } @@ -2586,17 +2578,6 @@ remove_round_number() } } -remove_status_icons_on_intermission() -{ - level waittill("intermission"); - - players = get_players(); - foreach(player in players) - { - player.statusicon = ""; - } -} - all_voice_on_intermission() { level waittill("intermission");