‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_powerup_free_perk.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\clientfield_shared;
4 #using scripts\shared\flag_shared;
5 #using scripts\shared\laststand_shared;
6 #using scripts\shared\system_shared;
7 #using scripts\shared\util_shared;
8 
9 #insert scripts\shared\shared.gsh;
10 #insert scripts\shared\version.gsh;
11 
12 #using scripts\shared\ai\zombie_death;
13 
14 #using scripts\zm\_zm_blockers;
15 #using scripts\zm\_zm_perks;
16 #using scripts\zm\_zm_pers_upgrades;
17 #using scripts\zm\_zm_pers_upgrades_functions;
18 #using scripts\zm\_zm_powerups;
19 #using scripts\zm\_zm_score;
20 #using scripts\zm\_zm_spawner;
21 #using scripts\zm\_zm_stats;
22 #using scripts\zm\_zm_utility;
23 
24 #insert scripts\zm\_zm_perks.gsh;
25 #insert scripts\zm\_zm_powerups.gsh;
26 #insert scripts\zm\_zm_utility.gsh;
27 
28 #precache( "string", "ZOMBIE_POWERUP_FREE_PERK" );
29 
30 #namespace zm_powerup_free_perk;
31 
32 ‪REGISTER_SYSTEM( "zm_powerup_free_perk", &‪__init__, undefined )
33 
34 //-----------------------------------------------------------------------------------
35 // setup
36 //-----------------------------------------------------------------------------------
37 function ‪__init__()
38 {
40  if( ToLower( GetDvarString( "g_gametype" ) ) != "zcleansed" )
41  {
43  }
44 }
45 
46 function ‪grab_free_perk( player )
47 {
48  level thread ‪free_perk_powerup( self );
49 }
50 
51 function ‪free_perk_powerup( item )
52 {
53  players = GetPlayers();
54  for ( i = 0; i < players.size; i++ )
55  {
56  if ( !players[i] ‪laststand::player_is_in_laststand() && !(players[i].sessionstate == "spectator") )
57  {
58  player = players[i];
59 
60  // Notify if its a ghost round powerup
61  if ( IsDefined( item.ghost_powerup ) )
62  {
63  player ‪zm_stats::increment_client_stat( "buried_ghost_perk_acquired", false );
64  player ‪zm_stats::increment_player_stat( "buried_ghost_perk_acquired" );
65 
66  player notify( "player_received_ghost_round_free_perk" );
67  }
68 
69  free_perk = player ‪zm_perks::give_random_perk();
70 
71  if( ‪IS_TRUE(level.disable_free_perks_before_power) )
72  {
73  player thread ‪disable_perk_before_power( free_perk );
74  }
75 
76  if ( isDefined( free_perk ) && isDefined( level.perk_bought_func ) )
77  {
78  player [[ level.perk_bought_func ]]( free_perk );
79  }
80  }
81  }
82 }
83 
84 // self = player
86 {
87  self endon( "disconnect" );
88 
89  if( IsDefined(perk) )
90  {
91  // Let the system register the perk
92  wait( 0.1 );
93 
94  if( !level ‪flag::get("power_on") )
95  {
96  a_players = GetPlayers();
97  if( IsDefined(a_players) && (a_players.size == 1) && (perk == ‪PERK_QUICK_REVIVE) )
98  {
99  return;
100  }
101 
102  self ‪zm_perks::perk_pause( perk );
103  level ‪flag::wait_till( "power_on" );
104  self ‪zm_perks::perk_unpause( perk );
105  }
106  }
107 }
‪__init__
‪function __init__()
Definition: _zm_powerup_free_perk.gsc:37
‪perk_unpause
‪function perk_unpause(perk)
Definition: _zm_perks.gsc:1263
‪increment_client_stat
‪function increment_client_stat(stat_name, include_gametype)
Definition: _zm_stats.gsc:389
‪func_should_never_drop
‪function func_should_never_drop()
Definition: _zm_powerups.gsc:1639
‪increment_player_stat
‪function increment_player_stat(stat_name)
Definition: _zm_stats.gsc:369
‪register_powerup
‪function register_powerup(str_powerup, func_grab_powerup, func_setup)
Definition: _zm_powerups.gsc:1956
‪grab_free_perk
‪function grab_free_perk(player)
Definition: _zm_powerup_free_perk.gsc:46
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪get
‪function get(kvp_value, kvp_key="targetname")
Definition: struct.csc:13
‪disable_perk_before_power
‪function disable_perk_before_power(perk)
Definition: _zm_powerup_free_perk.gsc:85
‪POWERUP_ONLY_AFFECTS_GRABBER
‪#define POWERUP_ONLY_AFFECTS_GRABBER
Definition: _zm_powerups.gsh:31
‪POWERUP_ZOMBIE_GRABBABLE
‪#define POWERUP_ZOMBIE_GRABBABLE
Definition: _zm_powerups.gsh:33
‪PERK_QUICK_REVIVE
‪#define PERK_QUICK_REVIVE
Definition: _zm_perks.gsh:24
‪wait_till
‪function wait_till(str_flag)
Definition: flag_shared.csc:189
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪free_perk_powerup
‪function free_perk_powerup(item)
Definition: _zm_powerup_free_perk.gsc:51
‪player_is_in_laststand
‪function player_is_in_laststand()
Definition: laststand_shared.gsc:18
‪perk_pause
‪function perk_pause(perk)
Definition: _zm_perks.gsc:1234
‪give_random_perk
‪function give_random_perk()
Definition: _zm_perks.gsc:1093
‪add_zombie_powerup
‪function add_zombie_powerup(powerup_name, client_field_name, clientfield_version=VERSION_SHIP)
Definition: _zm_powerups.csc:40
‪POWERUP_ANY_TEAM
‪#define POWERUP_ANY_TEAM
Definition: _zm_powerups.gsh:32