‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_gadget_clone.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\duplicaterender_mgr;
6 #using scripts\shared\filter_shared;
7 #using scripts\shared\visionset_mgr_shared;
8 #using scripts\shared\util_shared;
9 
10 #using scripts\shared\abilities\_ability_player;
11 #using scripts\shared\abilities\_ability_power;
12 #using scripts\shared\abilities\_ability_util;
13 #using scripts\shared\abilities\gadgets\_gadget_clone_render;
14 #insert scripts\shared\duplicaterender.gsh;
15 #insert scripts\shared\shared.gsh;
16 #insert scripts\shared\version.gsh;
17 
18 #using scripts\shared\system_shared;
19 
20 #define CLONE_SHADER_CONST "scriptVector3"
21 
22 ‪REGISTER_SYSTEM( "gadget_clone", &‪__init__, undefined )
23 
24 function ‪__init__()
25 {
28 
30 }
31 
32 function ‪set_shader( localClientNum, enabled, entity )
33 {
34  if( entity isfriendly( localclientnum ) )
35  {
36  self ‪duplicate_render::update_dr_flag( localClientNum, "clone_ally_on", enabled );
37  }
38  else
39  {
40  self ‪duplicate_render::update_dr_flag( localClientNum, "clone_enemy_on", enabled );
41  }
42 }
43 
44 function ‪clone_activated( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
45 {
46  if( newVal )
47  {
48  self._isClone = true;
49  self ‪set_shader( localClientNum, true, self getowner( localClientNum ) );
50  if( isDefined( level._monitor_tracker ) )
51  {
52  self thread [[level._monitor_tracker]]( localClientNum );
53  }
54  self thread ‪gadget_clone_render::transition_shader( localClientNum );
55  }
56 }
57 
58 function ‪player_clone_activated( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
59 {
60  if ( !isdefined( self ) )
61  return;
62 
63  if( newVal )
64  {
65  self ‪set_shader( localclientnum, true, self );
66  self thread ‪gadget_clone_render::transition_shader( localClientNum );
67  }
68  else
69  {
70  self ‪set_shader( localclientnum, false, self );
71  self notify ( "clone_shader_off" );
72  self MapShaderConstant( localClientNum, 0, ‪CLONE_SHADER_CONST, 1, 0, 0, 1 );
73  }
74 }
75 
76 function ‪clone_damage_flicker( localClientNum )
77 {
78  self endon( "entityshutdown" );
79  self notify( "start_flicker" );
80  self endon( "start_flicker" );
81 
82  self ‪duplicate_render::update_dr_flag( localClientNum, "clone_damage", true );
83  self waittill( "stop_flicker" );
84  self ‪duplicate_render::update_dr_flag( localClientNum, "clone_damage", false );
85 }
86 
88 {
89  self endon( "entityshutdown" );
90  self endon( "start_flicker" );
91  self endon( "stop_flicker" );
92 
93  wait( .2 );
94  self notify( "stop_flicker" );
95 }
96 
97 function ‪clone_damaged( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
98 {
99  if( newVal )
100  {
101  self thread ‪clone_damage_flicker( localClientNum );
102  }
103  else
104  {
105  self thread ‪clone_damage_finish();
106  }
107 }
‪player_clone_activated
‪function player_clone_activated(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _gadget_clone.csc:58
‪clone_activated
‪function clone_activated(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _gadget_clone.csc:44
‪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
‪transition_shader
‪function transition_shader(localClientNum)
Definition: _gadget_clone_render.csc:40
‪clone_damaged
‪function clone_damaged(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
Definition: _gadget_clone.csc:97
‪__init__
‪function __init__()
Definition: _gadget_clone.csc:24
‪CLONE_SHADER_CONST
‪#define CLONE_SHADER_CONST
Definition: _gadget_clone.csc:20
‪CF_HOST_ONLY
‪#define CF_HOST_ONLY
Definition: version.gsh:102
‪clone_damage_flicker
‪function clone_damage_flicker(localClientNum)
Definition: _gadget_clone.csc:76
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪clone_damage_finish
‪function clone_damage_finish()
Definition: _gadget_clone.csc:87
‪update_dr_flag
‪function update_dr_flag(localClientNum, toset, setto=true)
Definition: duplicaterender_mgr.csc:221
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪set_shader
‪function set_shader(localClientNum, enabled, entity)
Definition: _gadget_clone.csc:32