‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_lightning_chain.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\util_shared;
6 
7 #insert scripts\shared\shared.gsh;
8 #insert scripts\shared\version.gsh;
9 #insert scripts\shared\archetype_shared\archetype_shared.gsh;
10 
11 #using scripts\zm\_zm_weapons;
12 
13 #insert scripts\zm\_zm_lightning_chain.gsh;
14 
15 #namespace lightning_chain;
16 
17 ‪REGISTER_SYSTEM( "lightning_chain", &‪init, undefined )
18 
19 #define FX_LC_BOLT "zombie/fx_tesla_bolt_secondary_zmb"
20 #define FX_LC_SHOCK "zombie/fx_tesla_shock_zmb"
21 #define FX_LC_SHOCK_SECONDARY "zombie/fx_tesla_bolt_secondary_zmb"
22 #define FX_LC_SHOCK_EYES "zombie/fx_tesla_shock_eyes_zmb"
23 #define FX_LC_SHOCK_NONFATAL "zombie/fx_bmode_shock_os_zod_zmb"
24 
25 
26 #precache( "client_fx", FX_LC_BOLT );
27 #precache( "client_fx", FX_LC_SHOCK );
28 #precache( "client_fx", FX_LC_SHOCK_SECONDARY );
29 #precache( "client_fx", FX_LC_SHOCK_EYES );
30 #precache( "client_fx", FX_LC_SHOCK_NONFATAL );
31 
32 
33 function ‪init()
34 {
35  level._effect["tesla_bolt"] = ‪FX_LC_BOLT;
36  level._effect["tesla_shock"] = ‪FX_LC_SHOCK;
37  level._effect["tesla_shock_secondary"] = ‪FX_LC_SHOCK_SECONDARY;
38  level._effect["tesla_shock_nonfatal"] = ‪FX_LC_SHOCK_NONFATAL;
39 
40  level._effect["tesla_shock_eyes"] = ‪FX_LC_SHOCK_EYES;
41 
44 
46  ‪clientfield::register( "vehicle", "lc_death_fx", ‪VERSION_TU8, 2, "int", &‪lc_play_death_fx, !‪CF_HOST_ONLY, !‪CF_CALLBACK_ZERO_ON_NEW_ENT ); // Leave at VERSION_TU8, which will support the TU10 on the server, as well as the TU8's that shipped once already
47 }
48 
49 function ‪lc_shock_fx(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
50 {
51  self endon( "entityshutdown" );
52  self ‪util::waittill_dobj(localClientNum);
53 
54  if( newVal )
55  {
56  if ( !isdefined( self.‪lc_shock_fx ) )
57  {
58  str_tag = "J_SpineUpper";
59  str_fx = "tesla_shock";
60 
61  if ( !self IsAI() )
62  {
63  str_tag = "tag_origin";
64  }
65 
66  if ( newVal > 1 )
67  {
68  str_fx = "tesla_shock_secondary";
69  }
70  self.lc_shock_fx = PlayFxOnTag( localClientNum, level._effect[ str_fx ], self, str_tag );
71  self playsound( 0, "zmb_electrocute_zombie" );
72  }
73  }
74  else
75  {
76  if ( isdefined( self.‪lc_shock_fx ) )
77  {
78  StopFX( localClientNum, self.‪lc_shock_fx );
79  self.lc_shock_fx = undefined;
80  }
81  }
82 }
83 
84 function ‪lc_play_death_fx(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
85 {
86  self endon( "entityshutdown" );
87  self ‪util::waittill_dobj(localClientNum);
88 
89  str_tag = "J_SpineUpper";
90 
91  if ( ‪IS_TRUE(self.isdog) )
92  {
93  str_tag = "J_Spine1";
94  }
95 
96  if ( !‪IS_EQUAL( self.archetype, ‪ARCHETYPE_ZOMBIE ) )
97  {
98  tag = "tag_origin";
99  }
100 
101  switch( newVal )
102  {
104  str_fx = level._effect["tesla_shock_secondary"];
105  break;
106 
108  str_fx = level._effect["tesla_shock_nonfatal"];
109  break;
110 
111  default:
112  str_fx = level._effect["tesla_shock"];
113  break;
114  }
115 
116  PlayFxOnTag( localClientNum, str_fx, self, str_tag );
117 }
‪N_NONFATAL_SHOCK_EFFECT
‪#define N_NONFATAL_SHOCK_EFFECT
Definition: _zm_lightning_chain.gsh:4
‪FX_LC_SHOCK
‪#define FX_LC_SHOCK
Definition: _zm_lightning_chain.csc:20
‪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
‪FX_LC_SHOCK_EYES
‪#define FX_LC_SHOCK_EYES
Definition: _zm_lightning_chain.csc:22
‪init
‪function init()
Definition: _zm_lightning_chain.csc:33
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪lc_shock_fx
‪function lc_shock_fx(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_lightning_chain.csc:49
‪lc_play_death_fx
‪function lc_play_death_fx(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_lightning_chain.csc:84
‪FX_LC_SHOCK_SECONDARY
‪#define FX_LC_SHOCK_SECONDARY
Definition: _zm_lightning_chain.csc:21
‪VERSION_TU8
‪#define VERSION_TU8
Definition: version.gsh:54
‪FX_LC_BOLT
‪#define FX_LC_BOLT
Definition: _zm_lightning_chain.csc:19
‪FX_LC_SHOCK_NONFATAL
‪#define FX_LC_SHOCK_NONFATAL
Definition: _zm_lightning_chain.csc:23
‪CF_HOST_ONLY
‪#define CF_HOST_ONLY
Definition: version.gsh:102
‪N_SECONDARY_SHOCK_EFFECT
‪#define N_SECONDARY_SHOCK_EFFECT
Definition: _zm_lightning_chain.gsh:3
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪ARCHETYPE_ZOMBIE
‪#define ARCHETYPE_ZOMBIE
Definition: archetype_shared.gsh:10
‪IS_EQUAL
‪#define IS_EQUAL(__a, __b)
Definition: shared.gsh:250
‪waittill_dobj
‪function waittill_dobj(localClientNum)
Definition: util_shared.csc:1117
‪register
‪function register()
Definition: _ai_tank.gsc:126