‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_powerup_double_points.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\clientfield_shared;
4 #using scripts\shared\system_shared;
5 #using scripts\shared\util_shared;
6 
7 #insert scripts\shared\shared.gsh;
8 #insert scripts\shared\version.gsh;
9 
10 #using scripts\shared\ai\zombie_death;
11 
12 #using scripts\zm\_zm_bgb;
13 #using scripts\zm\_zm_pers_upgrades_functions;
14 #using scripts\zm\_zm_powerups;
15 #using scripts\zm\_zm_score;
16 #using scripts\zm\_zm_spawner;
17 #using scripts\zm\_zm_utility;
18 
19 #insert scripts\zm\_zm_powerups.gsh;
20 #insert scripts\zm\_zm_utility.gsh;
21 
22 #precache( "material", "specialty_doublepoints_zombies" );
23 #precache( "string", "ZOMBIE_POWERUP_DOUBLE_POINTS" );
24 
25 #namespace zm_powerup_double_points;
26 
27 ‪REGISTER_SYSTEM( "zm_powerup_double_points", &‪__init__, undefined )
28 
29 
30 //-----------------------------------------------------------------------------------
31 // setup
32 //-----------------------------------------------------------------------------------
33 function ‪__init__()
34 {
36  if( ToLower( GetDvarString( "g_gametype" ) ) != "zcleansed" )
37  {
38  ‪zm_powerups::add_zombie_powerup( "double_points", "p7_zm_power_up_double_points", &"ZOMBIE_POWERUP_DOUBLE_POINTS", &‪zm_powerups::func_should_always_drop, !‪POWERUP_ONLY_AFFECTS_GRABBER, !‪POWERUP_ANY_TEAM, !‪POWERUP_ZOMBIE_GRABBABLE, undefined, ‪CLIENTFIELD_POWERUP_DOUBLE_POINTS, "zombie_powerup_double_points_time", "zombie_powerup_double_points_on" );
39  }
40 }
41 
42 function ‪grab_double_points( player )
43 {
44  level thread ‪double_points_powerup( self, player );
45  player thread ‪zm_powerups::powerup_vo("double_points");
46 }
47 
48 // double the points
49 function ‪double_points_powerup( drop_item, player )
50 {
51  level notify ("powerup points scaled_" + player.team );
52  level endon ("powerup points scaled_" + player.team );
53 
54  team = player.team;
55 
56  level thread ‪zm_powerups::show_on_hud( team, "double_points" );
57 
58  // Notify the persistent player ability "double points"
59  if( ‪IS_TRUE(level.pers_upgrade_double_points) )
60  {
62  }
63 
64  if(isDefined(level.current_game_module) && level.current_game_module == 2 ) //race
65  {
66  if(isDefined(player._race_team))
67  {
68  if(player._race_team == 1)
69  {
70  level._race_team_double_points = 1;
71  }
72  else
73  {
74  level._race_team_double_points = 2;
75  }
76  }
77  }
78 
79  level.zombie_vars[team]["zombie_point_scalar"] = 2;
80 
81  players = GetPlayers();
82  for ( player_index = 0; player_index < players.size; player_index++ )
83  {
84  if ( team == players[player_index].team )
85  {
86  players[player_index] ‪clientfield::set_player_uimodel( "hudItems.doublePointsActive", 1 );
87  }
88  }
89 
91  if( ‪bgb::is_team_enabled( "zm_bgb_temporal_gift" ) )
92  {
93  n_wait += ‪N_POWERUP_DEFAULT_TIME;//Get extra 30 seconds
94  }
95  wait n_wait;
96 
97  level.zombie_vars[team]["zombie_point_scalar"] = 1;
98 
99  level._race_team_double_points = undefined;
100 
101  players = GetPlayers();
102  for ( player_index = 0; player_index < players.size; player_index++ )
103  {
104  if ( team == players[player_index].team )
105  {
106  players[player_index] ‪clientfield::set_player_uimodel( "hudItems.doublePointsActive", 0 );
107  }
108  }
109 }
‪register_powerup
‪function register_powerup(str_powerup, func_grab_powerup, func_setup)
Definition: _zm_powerups.gsc:1956
‪pers_upgrade_double_points_pickup_start
‪function pers_upgrade_double_points_pickup_start()
Definition: _zm_pers_upgrades_functions.gsc:6
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪show_on_hud
‪function show_on_hud(player_team, str_powerup)
Definition: _zm_powerups.gsc:1726
‪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
‪grab_double_points
‪function grab_double_points(player)
Definition: _zm_powerup_double_points.gsc:42
‪powerup_vo
‪function powerup_vo(type)
Definition: _zm_powerups.gsc:1216
‪double_points_powerup
‪function double_points_powerup(drop_item, player)
Definition: _zm_powerup_double_points.gsc:49
‪__init__
‪function __init__()
Definition: _zm_powerup_double_points.gsc:33
‪is_team_enabled
‪function is_team_enabled(str_name)
Definition: _zm_bgb.gsc:13
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪N_POWERUP_DEFAULT_TIME
‪#define N_POWERUP_DEFAULT_TIME
Definition: _zm_powerups.gsh:36
‪CLIENTFIELD_POWERUP_DOUBLE_POINTS
‪#define CLIENTFIELD_POWERUP_DOUBLE_POINTS
Definition: _zm_powerups.gsh:14
‪func_should_always_drop
‪function func_should_always_drop()
Definition: _zm_powerups.gsc:1644
‪set_player_uimodel
‪function set_player_uimodel(str_field_name, n_value)
Definition: clientfield_shared.gsc:75
‪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