1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 15:17:57 -05:00
Files
BO2-Reimagined/scripts/zm/replaced/_zm_perks.gsc
Jbleezy 88d1980ac0 New solo lives done correctly
Fixes Tombstone always giving Quick Revive in solo
Fixes being EMP'd always giving Quick Revive in solo after being un-EMP'd
2022-01-11 05:06:53 -08:00

117 lines
2.9 KiB
Plaintext

#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\zombies\_zm_utility;
#include maps/mp/zombies/_zm_perks;
perk_pause( perk )
{
// disabled
}
destroy_weapon_in_blackout( player )
{
self endon( "pap_timeout" );
self endon( "pap_taken" );
self endon( "pap_player_disconnected" );
level waittill( "Pack_A_Punch_off" );
if ( isDefined( self.worldgun ) )
{
if ( isDefined( self.worldgun.worldgundw ) )
{
self.worldgun.worldgundw delete();
}
self.worldgun delete();
}
}
give_perk( perk, bought )
{
self setperk( perk );
self.num_perks++;
if ( isDefined( bought ) && bought )
{
self maps/mp/zombies/_zm_audio::playerexert( "burp" );
if ( isDefined( level.remove_perk_vo_delay ) && level.remove_perk_vo_delay )
{
self maps/mp/zombies/_zm_audio::perk_vox( perk );
}
else
{
self delay_thread( 1.5, maps/mp/zombies/_zm_audio::perk_vox, perk );
}
self setblur( 4, 0.1 );
wait 0.1;
self setblur( 0, 0.1 );
self notify( "perk_bought" );
}
self perk_set_max_health_if_jugg( perk, 1, 0 );
if ( isDefined( level.disable_deadshot_clientfield ) && !level.disable_deadshot_clientfield )
{
if ( perk == "specialty_deadshot" )
{
self setclientfieldtoplayer( "deadshot_perk", 1 );
}
else
{
if ( perk == "specialty_deadshot_upgrade" )
{
self setclientfieldtoplayer( "deadshot_perk", 1 );
}
}
}
if ( perk == "specialty_scavenger" )
{
self.hasperkspecialtytombstone = 1;
}
players = get_players();
if ( use_solo_revive() && perk == "specialty_quickrevive" )
{
self.lives = 1;
if ( !isDefined( level.solo_lives_given ) )
{
level.solo_lives_given = 0;
}
if ( isDefined( level.solo_game_free_player_quickrevive ) )
{
level.solo_game_free_player_quickrevive = undefined;
}
else
{
level.solo_lives_given++;
}
if ( level.solo_lives_given >= 3 )
{
flag_set( "solo_revive" );
}
self thread solo_revive_buy_trigger_move( perk );
}
if ( perk == "specialty_finalstand" )
{
self.hasperkspecialtychugabud = 1;
self notify( "perk_chugabud_activated" );
}
if ( isDefined( level._custom_perks[ perk ] ) && isDefined( level._custom_perks[ perk ].player_thread_give ) )
{
self thread [[ level._custom_perks[ perk ].player_thread_give ]]();
}
self set_perk_clientfield( perk, 1 );
maps/mp/_demo::bookmark( "zm_player_perk", getTime(), self );
self maps/mp/zombies/_zm_stats::increment_client_stat( "perks_drank" );
self maps/mp/zombies/_zm_stats::increment_client_stat( perk + "_drank" );
self maps/mp/zombies/_zm_stats::increment_player_stat( perk + "_drank" );
self maps/mp/zombies/_zm_stats::increment_player_stat( "perks_drank" );
if ( !isDefined( self.perk_history ) )
{
self.perk_history = [];
}
self.perk_history = add_to_array( self.perk_history, perk, 0 );
if ( !isDefined( self.perks_active ) )
{
self.perks_active = [];
}
self.perks_active[ self.perks_active.size ] = perk;
self notify( "perk_acquired" );
self thread perk_think( perk );
}