From 4f59080f27725cc1a07b1f343a4e1b45f52b8b4d Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Tue, 7 Dec 2021 01:33:39 -0800 Subject: [PATCH] Grief: announcer dialog fix --- scripts/zm/_zm_reimagined_grief.gsc | 71 +++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/scripts/zm/_zm_reimagined_grief.gsc b/scripts/zm/_zm_reimagined_grief.gsc index c3bd2d6f..7e452b1a 100644 --- a/scripts/zm/_zm_reimagined_grief.gsc +++ b/scripts/zm/_zm_reimagined_grief.gsc @@ -11,6 +11,7 @@ main() return; } + replaceFunc(maps/mp/zombies/_zm_audio_announcer::playleaderdialogonplayer, ::playleaderdialogonplayer); replaceFunc(maps/mp/zombies/_zm_game_module::wait_for_team_death_and_round_end, ::wait_for_team_death_and_round_end); replaceFunc(maps/mp/zombies/_zm_blockers::handle_post_board_repair_rewards, ::handle_post_board_repair_rewards); } @@ -696,6 +697,76 @@ unlimited_zombies() } } +playleaderdialogonplayer( dialog, team, waittime ) +{ + self endon( "disconnect" ); + + if ( level.allowzmbannouncer ) + { + if ( !isDefined( game[ "zmbdialog" ][ dialog ] ) ) + { + return; + } + } + self.zmbdialogactive = 1; + if ( isDefined( self.zmbdialoggroups[ dialog ] ) ) + { + group = dialog; + dialog = self.zmbdialoggroups[ group ]; + self.zmbdialoggroups[ group ] = undefined; + self.zmbdialoggroup = group; + } + if ( level.allowzmbannouncer ) + { + alias = game[ "zmbdialog" ][ "prefix" ] + "_" + game[ "zmbdialog" ][ dialog ]; + variant = self maps/mp/zombies/_zm_audio_announcer::getleaderdialogvariant( alias ); + if ( !isDefined( variant ) ) + { + full_alias = alias + "_" + "0"; + if ( level.script == "zm_prison" ) + { + dialogType = strtok( game[ "zmbdialog" ][ dialog ], "_" ); + switch ( dialogType[ 0 ] ) + { + case "powerup": + full_alias = alias; + break; + case "grief": + full_alias = alias + "_" + "0"; + break; + default: + full_alias = alias; + } + } + } + else + { + full_alias = alias + "_" + variant; + } + self playlocalsound( full_alias ); + } + if ( isDefined( waittime ) ) + { + wait waittime; + } + else + { + wait 4; + } + self.zmbdialogactive = 0; + self.zmbdialoggroup = ""; + if ( self.zmbdialogqueue.size > 0 && level.allowzmbannouncer ) + { + nextdialog = self.zmbdialogqueue[0]; + for( i = 1; i < self.zmbdialogqueue.size; i++ ) + { + self.zmbdialogqueue[ i - 1 ] = self.zmbdialogqueue[ i ]; + } + self.zmbdialogqueue[ i - 1 ] = undefined; + self thread maps/mp/zombies/_zm_audio_announcer::playleaderdialogonplayer( nextdialog, team ); + } +} + zombie_damage( mod, hit_location, hit_origin, player, amount, team ) { if ( is_magic_bullet_shield_enabled( self ) )