‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_weap_riotshield.csc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\callbacks_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\system_shared;
6 #using scripts\shared\util_shared;
7 
8 #insert scripts\shared\shared.gsh;
9 #insert scripts\shared\version.gsh;
10 
11 #using scripts\zm\_zm_weapons;
12 
13 #namespace zm_equip_shield;
14 
15 #define RIOTSHIELD_HEALTH_CLIENTFIELD "zmInventory.shield_health"
16 
17 ‪REGISTER_SYSTEM( "zm_equip_shield", &‪__init__, undefined )
18 
19 function ‪__init__()
20 {
22 
24 
25 
26 }
27 
28 function ‪player_on_spawned( localClientNum )
29 {
30  self thread ‪watch_weapon_changes( localClientNum );
31 }
32 
33 function ‪watch_weapon_changes( localClientNum )
34 {
35  self endon("disconnect");
36  self endon("entityshutdown");
37 
38  while( IsDefined( self ) )
39  {
40  self waittill( "weapon_change", weapon );
41  if ( weapon.isriotshield )
42  {
43  self thread ‪lock_weapon_models( localClientNum, weapon );
44  }
45  }
46 
47 }
48 
49 function ‪lock_weapon_model( model )
50 {
51  if ( IsDefined(model) )
52  {
53  ‪DEFAULT(level.model_locks,[]);
54  ‪DEFAULT(level.model_locks[model],0);
55  if ( level.model_locks[model] < 1 )
56  ForceStreamXModel( model ); //, -1, -1 );
57  level.model_locks[model]++;
58  }
59 }
60 
61 function ‪unlock_weapon_model( model )
62 {
63  if ( IsDefined(model) )
64  {
65  ‪DEFAULT(level.model_locks,[]);
66  ‪DEFAULT(level.model_locks[model],0);
67  level.model_locks[model]--;
68  if ( level.model_locks[model] < 1 )
69  StopForceStreamingXModel( model );
70  }
71 }
72 
73 
74 function ‪lock_weapon_models( localClientNum, weapon )
75 {
76  ‪lock_weapon_model( weapon.worlddamagedmodel1 );
77  ‪lock_weapon_model( weapon.worlddamagedmodel2 );
78  ‪lock_weapon_model( weapon.worlddamagedmodel3 );
79  self ‪util::waittill_any( "weapon_change", "disconnect", "entityshutdown" );
80  ‪unlock_weapon_model( weapon.worlddamagedmodel1 );
81  ‪unlock_weapon_model( weapon.worlddamagedmodel2 );
82  ‪unlock_weapon_model( weapon.worlddamagedmodel3 );
83 }
‪VERSION_TU11
‪#define VERSION_TU11
Definition: version.gsh:61
‪unlock_weapon_model
‪function unlock_weapon_model(model)
Definition: _zm_weap_riotshield.csc:61
‪CF_CALLBACK_ZERO_ON_NEW_ENT
‪#define CF_CALLBACK_ZERO_ON_NEW_ENT
Definition: version.gsh:103
‪lock_weapon_models
‪function lock_weapon_models(localClientNum, weapon)
Definition: _zm_weap_riotshield.csc:74
‪__init__
‪function __init__()
Definition: _zm_weap_riotshield.csc:19
‪DEFAULT
‪#define DEFAULT(__var, __default)
Definition: shared.gsh:270
‪on_spawned
‪function on_spawned(func, obj)
Definition: callbacks_shared.csc:245
‪watch_weapon_changes
‪function watch_weapon_changes(localClientNum)
Definition: _zm_weap_riotshield.csc:33
‪RIOTSHIELD_HEALTH_CLIENTFIELD
‪#define RIOTSHIELD_HEALTH_CLIENTFIELD
Definition: _zm_weap_riotshield.csc:15
‪CF_HOST_ONLY
‪#define CF_HOST_ONLY
Definition: version.gsh:102
‪waittill_any
‪function waittill_any(str_notify1, str_notify2, str_notify3, str_notify4, str_notify5)
Definition: util_shared.csc:375
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪lock_weapon_model
‪function lock_weapon_model(model)
Definition: _zm_weap_riotshield.csc:49
‪player_on_spawned
‪function player_on_spawned(localClientNum)
Definition: _zm_weap_riotshield.csc:28