diff --git a/scripts/zm/replaced/_zm_sq.gsc b/scripts/zm/replaced/_zm_sq.gsc index a27710b2..377fad61 100644 --- a/scripts/zm/replaced/_zm_sq.gsc +++ b/scripts/zm/replaced/_zm_sq.gsc @@ -44,15 +44,22 @@ navcomputer_waitfor_navcard() sq_give_player_all_perks() { - machines = array_randomize( getentarray( "zombie_vending", "targetname" ) ); perks = []; - for ( i = 0; i < machines.size; i++ ) + if ( isDefined( level._random_perk_machine_perk_list ) ) { - if ( machines[i].script_noteworthy == "specialty_weapupgrade" ) - continue; + perks = array_randomize( level._random_perk_machine_perk_list ); + } + else + { + machines = array_randomize( getentarray( "zombie_vending", "targetname" ) ); + for ( i = 0; i < machines.size; i++ ) + { + if ( machines[i].script_noteworthy == "specialty_weapupgrade" ) + continue; - perks[perks.size] = machines[i].script_noteworthy; + perks[perks.size] = machines[i].script_noteworthy; + } } foreach ( perk in perks ) diff --git a/scripts/zm/replaced/zm_tomb_dig.gsc b/scripts/zm/replaced/zm_tomb_dig.gsc index 628cf167..4e75a46b 100644 --- a/scripts/zm/replaced/zm_tomb_dig.gsc +++ b/scripts/zm/replaced/zm_tomb_dig.gsc @@ -160,7 +160,14 @@ waittill_dug( s_dig_spot ) increment_player_perk_purchase_limit() { - self maps\mp\zombies\_zm_perks::give_random_perk(); + perk = maps\mp\zombies\_zm_perk_random::get_weighted_random_perk(self); + + if (self hasPerk(perk)) + { + return; + } + + self maps\mp\zombies\_zm_perks::give_perk(perk); } dig_up_weapon( digger )