‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_magicbox.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 
6 #insert scripts\shared\shared.gsh;
7 #insert scripts\shared\version.gsh;
8 
9 #precache( "client_fx", "zombie/fx_weapon_box_open_glow_zmb" );
10 #precache( "client_fx", "zombie/fx_weapon_box_closed_glow_zmb" );
11 
12 
13 #namespace zm_magicbox;
14 ‪REGISTER_SYSTEM( "zm_magicbox", &‪__init__, undefined )
15 
16 function ‪__init__()
17 {
18  level._effect["chest_light"] = "zombie/fx_weapon_box_open_glow_zmb";
19  level._effect["chest_light_closed"] = "zombie/fx_weapon_box_closed_glow_zmb";
20 
21  // T8 TODO - combine these clientfields
24 
27 
29 
30 }
31 
32 function ‪force_stream_changed( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
33 {
34  if ( newVal )
35  {
36  model = self.model;
37  if (isdefined(model))
38  {
39  thread ‪stream_model_for_time( localClientNum, model, 15 );
40 
41  }
42  }
43 }
44 
45 function ‪lock_weapon_model( model )
46 {
47  if ( IsDefined(model) )
48  {
49  ‪DEFAULT(level.model_locks,[]);
50  ‪DEFAULT(level.model_locks[model],0);
51  if ( level.model_locks[model] < 1 )
52  ForceStreamXModel( model ); //, -1, -1 );
53  level.model_locks[model]++;
54  }
55 }
56 
57 function ‪unlock_weapon_model( model )
58 {
59  if ( IsDefined(model) )
60  {
61  ‪DEFAULT(level.model_locks,[]);
62  ‪DEFAULT(level.model_locks[model],0);
63  level.model_locks[model]--;
64  if ( level.model_locks[model] < 1 )
65  StopForceStreamingXModel( model );
66  }
67 }
68 
69 
70 
71 function ‪stream_model_for_time( localClientNum, model, time )
72 {
73  ‪lock_weapon_model( model );
74  wait time;
75  ‪unlock_weapon_model( model );
76 }
77 
78 
79 
80 function ‪magicbox_show_sounds_callback( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
81 {
82  playsound( localClientNum, "zmb_box_poof_land", self.origin );
83  playsound( localClientNum, "zmb_couch_slam", self.origin );
84  playsound( localClientNum, "zmb_box_poof", self.origin );
85 }
86 
87 function ‪magicbox_leave_sounds_callback( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
88 {
89  playsound(localClientNum, "zmb_box_move", self.origin);
90  playsound(localClientNum, "zmb_whoosh", self.origin );
91 }
92 
93 function ‪magicbox_open_glow_callback( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
94 {
95  self thread ‪magicbox_glow_callback( localClientNum, newVal, level._effect["chest_light"] );
96 }
97 
98 function ‪magicbox_closed_glow_callback( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
99 {
100  self thread ‪magicbox_glow_callback( localClientNum, newVal, level._effect["chest_light_closed"] );
101 }
102 
103 function ‪magicbox_glow_callback( localClientNum, newVal, fx )
104 {
105  ‪DEFAULT( self.glow_obj_array, [] );
106  ‪DEFAULT( self.glow_fx_array, [] );
107 
108  if ( !isdefined( self.glow_obj_array[localClientNum] ) )
109  {
110  fx_obj = ‪spawn( localClientNum, self.origin, "script_model" );
111  fx_obj setmodel( "tag_origin" );
112  fx_obj.angles = self.angles;
113  self.glow_obj_array[localClientNum] = fx_obj;
115  }
116 
117  self ‪glow_obj_cleanup( localClientNum );
118 
119  if ( newVal )
120  {
121  self.glow_fx_array[localClientNum] = PlayFXOnTag( localClientNum, fx, self.glow_obj_array[localClientNum], "tag_origin" );
122  self ‪glow_obj_demo_jump_listener( localClientNum );
123  }
124 }
125 
126 
127 function ‪glow_obj_demo_jump_listener( localClientNum )
128 {
129  self endon( "end_demo_jump_listener" );
130 
131  level waittill( "demo_jump" );
132 
133  if ( isdefined(self) )
134  self ‪glow_obj_cleanup( localClientNum );
135 }
136 
137 
138 function ‪glow_obj_cleanup( localClientNum )
139 {
140  if ( isdefined( self.glow_fx_array[localClientNum] ) )
141  {
142  StopFX( localClientNum, self.glow_fx_array[localClientNum] );
143  self.glow_fx_array[localClientNum] = undefined;
144  }
145 
146  self notify( "end_demo_jump_listener" );
147 }
148 
‪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
‪spawn
‪function spawn(v_origin=(0, 0, 0), v_angles=(0, 0, 0))
Definition: struct.csc:23
‪DEFAULT
‪#define DEFAULT(__var, __default)
Definition: shared.gsh:270
‪glow_obj_cleanup
‪function glow_obj_cleanup(localClientNum)
Definition: _zm_magicbox.csc:138
‪__init__
‪function __init__()
Definition: _zm_magicbox.csc:16
‪lock_weapon_model
‪function lock_weapon_model(model)
Definition: _zm_magicbox.csc:45
‪VERSION_TU7
‪#define VERSION_TU7
Definition: version.gsh:52
‪stream_model_for_time
‪function stream_model_for_time(localClientNum, model, time)
Definition: _zm_magicbox.csc:71
‪CF_HOST_ONLY
‪#define CF_HOST_ONLY
Definition: version.gsh:102
‪force_stream_changed
‪function force_stream_changed(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_magicbox.csc:32
‪unlock_weapon_model
‪function unlock_weapon_model(model)
Definition: _zm_magicbox.csc:57
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪magicbox_glow_callback
‪function magicbox_glow_callback(localClientNum, newVal, fx)
Definition: _zm_magicbox.csc:103
‪magicbox_open_glow_callback
‪function magicbox_open_glow_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_magicbox.csc:93
‪glow_obj_demo_jump_listener
‪function glow_obj_demo_jump_listener(localClientNum)
Definition: _zm_magicbox.csc:127
‪magicbox_show_sounds_callback
‪function magicbox_show_sounds_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_magicbox.csc:80
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪magicbox_closed_glow_callback
‪function magicbox_closed_glow_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_magicbox.csc:98
‪WAIT_CLIENT_FRAME
‪#define WAIT_CLIENT_FRAME
Definition: shared.gsh:266
‪magicbox_leave_sounds_callback
‪function magicbox_leave_sounds_callback(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _zm_magicbox.csc:87