‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_perk_electric_cherry.csc
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\visionset_mgr_shared;
6 
7 #insert scripts\shared\shared.gsh;
8 #insert scripts\shared\version.gsh;
9 
10 #using scripts\zm\_zm_perks;
11 
12 #insert scripts\zm\_zm_perks.gsh;
13 #insert scripts\zm\_zm_utility.gsh;
14 
15 #define ELECTRIC_CHERRY_MACHINE_LIGHT_FX "electric_light"
16 
17 #precache( "client_fx", "_t6/misc/fx_zombie_cola_revive_on" );
18 #precache( "client_fx", "dlc1/castle/fx_castle_electric_cherry_down" );
19 #precache( "client_fx", "dlc1/castle/fx_castle_electric_cherry_trail" );
20 #precache( "client_fx", "zombie/fx_tesla_shock_zmb" );
21 #precache( "client_fx", "zombie/fx_tesla_shock_eyes_zmb" );
22 
23 #namespace zm_perk_electric_cherry;
24 
25 ‪REGISTER_SYSTEM( "zm_perk_electric_cherry", &‪__init__, undefined )
26 
27 // ELECTRIC CHERRY ( ELECTRIC CHERRY )
28 
29 function ‪__init__()
30 {
31  // register custom functions for hud/lua
35 }
36 
38 {
39  if( ‪IS_TRUE(level.enable_magic) )
40  {
41  level._effect[‪ELECTRIC_CHERRY_MACHINE_LIGHT_FX] = "_t6/misc/fx_zombie_cola_revive_on";
42  }
43 
44  // Register Clientfields
45  RegisterClientField( "allplayers", "electric_cherry_reload_fx", ‪VERSION_SHIP, 2, "int", &‪electric_cherry_reload_attack_fx, false );
47  ‪clientfield::register( "vehicle", "tesla_death_fx_veh", ‪VERSION_TU10, 1, "int", &‪tesla_death_fx_callback, !‪CF_HOST_ONLY, !‪CF_CALLBACK_ZERO_ON_NEW_ENT ); // Leave at VERSION_TU10
49  ‪clientfield::register( "vehicle", "tesla_shock_eyes_fx_veh", ‪VERSION_TU10, 1, "int", &‪tesla_shock_eyes_fx_callback, !‪CF_HOST_ONLY, !‪CF_CALLBACK_ZERO_ON_NEW_ENT ); // Leave at VERSION_TU10
50 
51  // Load FX
52  level._effect[ "electric_cherry_explode" ] = "dlc1/castle/fx_castle_electric_cherry_down";
53  level._effect[ "electric_cherry_trail" ] = "dlc1/castle/fx_castle_electric_cherry_trail";
54  level._effect["tesla_death_cherry"] = "zombie/fx_tesla_shock_zmb";
55  level._effect["tesla_shock_eyes_cherry"] = "zombie/fx_tesla_shock_eyes_zmb";
56  level._effect["tesla_shock_cherry"] = "zombie/fx_bmode_shock_os_zod_zmb";
57 
58  //level._effect[ "electric_cherry_reload_small" ] = "maps/zombie_alcatraz/fx_alcatraz_electric_cherry_sm";
59  //level._effect[ "electric_cherry_reload_medium" ] = "maps/zombie_alcatraz/fx_alcatraz_electric_cherry_player";
60  //level._effect[ "electric_cherry_reload_large" ] = "maps/zombie_alcatraz/fx_alcatraz_electric_cherry_lg";
61 }
62 
64 {
66 }
67 
69 {
70 }
71 
72 function ‪electric_cherry_reload_attack_fx( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
73 {
74  if ( IsDefined( self.‪electric_cherry_reload_fx ) )
75  {
76  StopFX( localClientNum, self.‪electric_cherry_reload_fx );
77  }
78 
79  if ( newVal == 1 )
80  {
81  self.electric_cherry_reload_fx = PlayFXOnTag( localClientNum, level._effect[ "electric_cherry_explode" ], self, "tag_origin" );
82  }
83  else if ( newVal == 2 )
84  {
85  self.electric_cherry_reload_fx = PlayFXOnTag( localClientNum, level._effect[ "electric_cherry_explode" ], self, "tag_origin" );
86  }
87  else if ( newVal == 3 )
88  {
89  self.electric_cherry_reload_fx = PlayFXOnTag( localClientNum, level._effect[ "electric_cherry_explode" ], self, "tag_origin" );
90  }
91  else
92  {
93  if ( IsDefined( self.‪electric_cherry_reload_fx ) )
94  {
95  StopFX( localClientNum, self.‪electric_cherry_reload_fx );
96  }
97 
98  self.electric_cherry_reload_fx = undefined;
99  }
100 }
101 
102 function ‪tesla_death_fx_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump) // self = zombie
103 {
104  if( newVal == 1 )
105  {
106  str_tag = "J_SpineUpper";
107 
108  if( isdefined( self.str_tag_tesla_death_fx ) )
109  {
110  str_tag = self.str_tag_tesla_death_fx;
111  }
112  else if ( ‪IS_TRUE( self.isdog ) )
113  {
114  str_tag = "J_Spine1";
115  }
116 
117  self.n_death_fx = PlayFXOnTag( localClientNum, level._effect["tesla_death_cherry"], self, str_tag );
118  SetFXIgnorePause( localClientNum, self.n_death_fx, true );
119  }
120  else
121  {
122  if ( isdefined( self.n_death_fx ) )
123  {
124  DeleteFx( localClientNum, self.n_death_fx, true );
125  }
126  self.n_death_fx = undefined;
127  }
128 }
129 
130 function ‪tesla_shock_eyes_fx_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump) // self = zombie
131 {
132  if( newVal == 1 )
133  {
134  str_tag = "J_SpineUpper";
135 
136  if( isdefined( self.str_tag_tesla_shock_eyes_fx ) )
137  {
138  str_tag = self.str_tag_tesla_shock_eyes_fx;
139  }
140  else if ( ‪IS_TRUE( self.isdog ) )
141  {
142  str_tag = "J_Spine1";
143  }
144 
145  self.n_shock_eyes_fx = PlayFXOnTag( localClientNum, level._effect["tesla_shock_eyes_cherry"], self, "J_Eyeball_LE" );
146  SetFXIgnorePause( localClientNum, self.n_shock_eyes_fx, true );
147 
148  self.n_shock_fx = PlayFXOnTag( localClientNum, level._effect["tesla_death_cherry"], self, str_tag );
149  SetFXIgnorePause( localClientNum, self.n_shock_fx, true );
150  }
151  else
152  {
153  if ( isdefined( self.n_shock_eyes_fx ) )
154  {
155  DeleteFx( localClientNum, self.n_shock_eyes_fx, true );
156  self.n_shock_eyes_fx = undefined;
157  }
158 
159  if ( isdefined( self.n_shock_fx ) )
160  {
161  DeleteFx( localClientNum, self.n_shock_fx, true );
162  self.n_shock_fx = undefined;
163  }
164  }
165 }
‪tesla_shock_eyes_fx_callback
‪function tesla_shock_eyes_fx_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_perk_electric_cherry.csc:130
‪register_perk_clientfields
‪function register_perk_clientfields(str_perk, func_clientfield_register, func_code_callback)
Definition: _zm_perks.csc:96
‪register_perk_init_thread
‪function register_perk_init_thread(str_perk, func_init_thread)
Definition: _zm_perks.csc:142
‪VERSION_TU10
‪#define VERSION_TU10
Definition: version.gsh:59
‪CF_CALLBACK_ZERO_ON_NEW_ENT
‪#define CF_CALLBACK_ZERO_ON_NEW_ENT
Definition: version.gsh:103
‪VERSION_SHIP
‪#define VERSION_SHIP
Definition: version.gsh:36
‪ELECTRIC_CHERRY_MACHINE_LIGHT_FX
‪#define ELECTRIC_CHERRY_MACHINE_LIGHT_FX
Definition: _zm_perk_electric_cherry.csc:15
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪init_electric_cherry
‪function init_electric_cherry()
Definition: _zm_perk_electric_cherry.csc:37
‪electric_cherry_reload_attack_fx
‪function electric_cherry_reload_attack_fx(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_perk_electric_cherry.csc:72
‪electric_cherry_client_field_func
‪function electric_cherry_client_field_func()
Definition: _zm_perk_electric_cherry.csc:63
‪PERK_ELECTRIC_CHERRY
‪#define PERK_ELECTRIC_CHERRY
Definition: _zm_perks.gsh:31
‪CF_HOST_ONLY
‪#define CF_HOST_ONLY
Definition: version.gsh:102
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪__init__
‪function __init__()
Definition: _zm_perk_electric_cherry.csc:29
‪PERK_CLIENTFIELD_ELECTRIC_CHERRY
‪#define PERK_CLIENTFIELD_ELECTRIC_CHERRY
Definition: _zm_perks.gsh:18
‪electric_cherry_reload_fx
‪function electric_cherry_reload_fx(n_fraction)
Definition: _zm_perk_electric_cherry.gsc:570
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪electric_cherry_code_callback_func
‪function electric_cherry_code_callback_func()
Definition: _zm_perk_electric_cherry.csc:68
‪register_perk_effects
‪function register_perk_effects(str_perk, str_light_effect)
Definition: _zm_perks.csc:122
‪tesla_death_fx_callback
‪function tesla_death_fx_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_perk_electric_cherry.csc:102