‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_server_throttle.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #insert scripts\shared\shared.gsh;
4 
5 #using scripts\zm\_zm_utility;
6 
7 #namespace zm_server_throttle;
8 
9 function ‪server_choke_init( id, max )
10 {
11  if ( !isdefined( level.zombie_server_choke_ids_max ) )
12  {
13  level.zombie_server_choke_ids_max = [];
14  level.zombie_server_choke_ids_count = [];
15  }
16 
17  level.zombie_server_choke_ids_max[ id ] = max;
18  level.zombie_server_choke_ids_count[ id ] = 0;
19 
20  level thread ‪server_choke_thread( id );
21 }
22 
23 
24 function ‪server_choke_thread( id )
25 {
26  while( 1 )
27  {
29  level.zombie_server_choke_ids_count[ id ] = 0;
30  }
31 }
32 
33 
34 function ‪server_choke_safe( id )
35 {
36  return( level.zombie_server_choke_ids_count[ id ] < level.zombie_server_choke_ids_max[ id ] );
37 }
38 
39 
40 function ‪server_choke_action( id, choke_action, arg1, arg2, arg3 )
41 {
42  Assert( isdefined( level.zombie_server_choke_ids_max[ id ] ), "server Choke: " + id + " undefined" );
43 
44  while( !‪server_choke_safe( id ) )
45  {
47  }
48 
49  level.zombie_server_choke_ids_count[ id ]++;
50 
51  if ( !isdefined( arg1 ) )
52  {
53  return ( [[choke_action]]() );
54  }
55 
56  if ( !isdefined( arg2 ) )
57  {
58  return ( [[choke_action]]( arg1 ) );
59  }
60 
61  if ( !isdefined( arg3 ) )
62  {
63  return ( [[choke_action]]( arg1, arg2 ) );
64  }
65 
66  return ( [[choke_action]]( arg1, arg2, arg3 ) );
67 }
68 
69 
70 function ‪server_entity_valid( entity )
71 {
72  if( !isdefined( entity ) )
73  {
74  return false;
75  }
76 
77  return true;
78 }
79 
80 
81 function ‪server_safe_init( id, max )
82 {
83  if ( !isdefined( level.zombie_server_choke_ids_max ) || !isdefined( level.zombie_server_choke_ids_max[ id ] ) )
84  {
85  ‪server_choke_init( id, max );
86  }
87 
88  assert( max == level.zombie_server_choke_ids_max[ id ] );
89 }
90 
92 {
93  return ‪zm_utility::groundpos( pos );
94 }
95 
96 function ‪server_safe_ground_trace( id, max, origin )
97 {
98  ‪server_safe_init( id, max );
100 }
101 
103 {
105 }
106 
107 function ‪server_safe_ground_trace_ignore_water( id, max, origin )
108 {
109  ‪server_safe_init( id, max );
111 }
‪_server_safe_ground_trace
‪function _server_safe_ground_trace(pos)
Definition: _zm_server_throttle.gsc:91
‪server_entity_valid
‪function server_entity_valid(entity)
Definition: _zm_server_throttle.gsc:70
‪groundpos_ignore_water
‪function groundpos_ignore_water(origin)
Definition: _zm_utility.gsc:4585
‪server_choke_action
‪function server_choke_action(id, choke_action, arg1, arg2, arg3)
Definition: _zm_server_throttle.gsc:40
‪server_safe_init
‪function server_safe_init(id, max)
Definition: _zm_server_throttle.gsc:81
‪_server_safe_ground_trace_ignore_water
‪function _server_safe_ground_trace_ignore_water(pos)
Definition: _zm_server_throttle.gsc:102
‪groundpos
‪function groundpos(origin)
Definition: _zm_utility.gsc:4580
‪server_choke_safe
‪function server_choke_safe(id)
Definition: _zm_server_throttle.gsc:34
‪server_safe_ground_trace
‪function server_safe_ground_trace(id, max, origin)
Definition: _zm_server_throttle.gsc:96
‪server_choke_init
‪function server_choke_init(id, max)
Definition: _zm_server_throttle.gsc:9
‪server_choke_thread
‪function server_choke_thread(id)
Definition: _zm_server_throttle.gsc:24
‪server_safe_ground_trace_ignore_water
‪function server_safe_ground_trace_ignore_water(id, max, origin)
Definition: _zm_server_throttle.gsc:107
‪WAIT_SERVER_FRAME
‪#define WAIT_SERVER_FRAME
Definition: shared.gsh:265