From f6819bb90418c0c3f39b6967cb017f3b55e966f5 Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Fri, 5 May 2023 22:40:10 -0700 Subject: [PATCH] EMP Grenade: fix not taking away Stamin-Up when downed --- scripts/zm/_zm_reimagined.gsc | 1 + scripts/zm/replaced/_zm_perks.gsc | 65 ++++++++++++++++------- scripts/zm/replaced/_zm_weap_emp_bomb.gsc | 6 +-- 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/scripts/zm/_zm_reimagined.gsc b/scripts/zm/_zm_reimagined.gsc index 9e332551..33f9e88f 100644 --- a/scripts/zm/_zm_reimagined.gsc +++ b/scripts/zm/_zm_reimagined.gsc @@ -103,6 +103,7 @@ main() replaceFunc(maps\mp\zombies\_zm_perks::turn_tombstone_on, scripts\zm\replaced\_zm_perks::turn_tombstone_on); replaceFunc(maps\mp\zombies\_zm_perks::wait_for_player_to_take, scripts\zm\replaced\_zm_perks::wait_for_player_to_take); replaceFunc(maps\mp\zombies\_zm_perks::check_player_has_perk, scripts\zm\replaced\_zm_perks::check_player_has_perk); + replaceFunc(maps\mp\zombies\_zm_perks::set_perk_clientfield, scripts\zm\replaced\_zm_perks::set_perk_clientfield); replaceFunc(maps\mp\zombies\_zm_perks::perk_pause, scripts\zm\replaced\_zm_perks::perk_pause); replaceFunc(maps\mp\zombies\_zm_perks::perk_unpause, scripts\zm\replaced\_zm_perks::perk_unpause); replaceFunc(maps\mp\zombies\_zm_buildables::player_progress_bar_update, scripts\zm\replaced\_zm_buildables::player_progress_bar_update); diff --git a/scripts/zm/replaced/_zm_perks.gsc b/scripts/zm/replaced/_zm_perks.gsc index c0ec3e57..b381e734 100644 --- a/scripts/zm/replaced/_zm_perks.gsc +++ b/scripts/zm/replaced/_zm_perks.gsc @@ -832,6 +832,10 @@ perk_think( perk ) { arrayremovevalue( self.perks_active, perk, 0 ); } + if ( isDefined( self.disabled_perks ) && isDefined( self.disabled_perks[perk] ) ) + { + self.disabled_perks[perk] = undefined; + } self notify( "perk_lost" ); } @@ -911,6 +915,48 @@ perk_set_max_health_if_jugg( perk, set_premaxhealth, clamp_health_to_max_health } } +set_perk_clientfield( perk, state ) +{ + switch ( perk ) + { + case "specialty_additionalprimaryweapon": + self setclientfieldtoplayer( "perk_additional_primary_weapon", state ); + break; + case "specialty_deadshot": + self setclientfieldtoplayer( "perk_dead_shot", state ); + break; + case "specialty_flakjacket": + self setclientfieldtoplayer( "perk_dive_to_nuke", state ); + break; + case "specialty_rof": + self setclientfieldtoplayer( "perk_double_tap", state ); + break; + case "specialty_armorvest": + self setclientfieldtoplayer( "perk_juggernaut", state ); + break; + case "specialty_movefaster": + self setclientfieldtoplayer( "perk_marathon", state ); + break; + case "specialty_quickrevive": + self setclientfieldtoplayer( "perk_quick_revive", state ); + break; + case "specialty_fastreload": + self setclientfieldtoplayer( "perk_sleight_of_hand", state ); + break; + case "specialty_scavenger": + self setclientfieldtoplayer( "perk_tombstone", state ); + break; + case "specialty_finalstand": + self setclientfieldtoplayer( "perk_chugabud", state ); + break; + default: + break; + } + + if ( isdefined( level._custom_perks[perk] ) && isdefined( level._custom_perks[perk].clientfield_set ) ) + self [[ level._custom_perks[perk].clientfield_set ]]( state ); +} + initialize_custom_perk_arrays() { if(!isDefined(level._custom_perks)) @@ -924,8 +970,6 @@ initialize_custom_perk_arrays() level._custom_perks["specialty_movefaster"].hint_string = &"ZOMBIE_PERK_MARATHON"; level._custom_perks["specialty_movefaster"].perk_bottle = "zombie_perk_bottle_marathon"; level._custom_perks["specialty_movefaster"].perk_machine_thread = ::turn_movefaster_on; - level._custom_perks["specialty_movefaster"].player_thread_give = ::give_movefaster; - level._custom_perks["specialty_movefaster"].player_thread_take = ::take_movefaster; struct = spawnStruct(); struct.script_noteworthy = "specialty_longersprint"; @@ -1195,23 +1239,6 @@ turn_tombstone_on() } } -give_movefaster() -{ - self set_perk_clientfield("specialty_longersprint", 1); -} - -take_movefaster() -{ - if (IsDefined(self.disabled_perks) && IsDefined(self.disabled_perks["specialty_movefaster"]) && self.disabled_perks["specialty_movefaster"]) - { - self set_perk_clientfield("specialty_longersprint", 2); - } - else - { - self set_perk_clientfield( "specialty_longersprint", 0 ); - } -} - wait_for_player_to_take( player, weapon, packa_timer, upgrade_as_attachment ) { current_weapon = self.current_weapon; diff --git a/scripts/zm/replaced/_zm_weap_emp_bomb.gsc b/scripts/zm/replaced/_zm_weap_emp_bomb.gsc index 23de34c0..8058cc13 100644 --- a/scripts/zm/replaced/_zm_weap_emp_bomb.gsc +++ b/scripts/zm/replaced/_zm_weap_emp_bomb.gsc @@ -238,9 +238,9 @@ player_perk_pause( perk ) { self.disabled_perks = []; } - if ( !is_true( self.disabled_perks[ perk ] ) ) + if ( !is_true( self.disabled_perks[ perk ] ) && self hasperk( perk ) ) { - self.disabled_perks[ perk ] = self hasperk( perk ); + self.disabled_perks[ perk ] = 1; } if ( self.disabled_perks[ perk ] ) { @@ -285,7 +285,7 @@ player_perk_unpause( perk ) if ( isDefined( self.disabled_perks ) && is_true( self.disabled_perks[ perk ] ) ) { - self.disabled_perks[ perk ] = 0; + self.disabled_perks[ perk ] = undefined; self maps\mp\zombies\_zm_perks::set_perk_clientfield( perk, 1 ); self setperk( perk ); if ( issubstr( perk, "specialty_scavenger" ) )