Advertisement
Guest User

_zombiemode_server_throttle.gsc

a guest
Jul 12th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include maps\_utility;
  2.  
  3. server_choke_init( id, max )
  4. {
  5.     if ( !IsDefined( level.zombie_server_choke_ids_max ) )
  6.     {
  7.         level.zombie_server_choke_ids_max = [];
  8.         level.zombie_server_choke_ids_count = [];
  9.     }
  10.  
  11.     level.zombie_server_choke_ids_max[ id ] = max;
  12.     level.zombie_server_choke_ids_count[ id ] = 0;
  13.  
  14.     level thread server_choke_thread( id );
  15. }
  16.  
  17.  
  18. server_choke_thread( id )
  19. {
  20.     while( 1 )
  21.     {
  22.         wait( 0.05 );
  23.         level.zombie_server_choke_ids_count[ id ] = 0;
  24.     }
  25. }
  26.  
  27.  
  28. server_choke_safe( id )
  29. {
  30.     return( level.zombie_server_choke_ids_count[ id ] < level.zombie_server_choke_ids_max[ id ] );
  31. }
  32.  
  33.  
  34. server_choke_action( id, choke_action, arg1, arg2, arg3 )
  35. {
  36.     AssertEx( IsDefined( level.zombie_server_choke_ids_max[ id ] ), "server Choke: " + id + " undefined" );
  37.  
  38.     while( !server_choke_safe( id ) )
  39.     {
  40.         wait( 0.05 );      
  41.     }
  42.  
  43.     level.zombie_server_choke_ids_count[ id ]++;
  44.  
  45.     if ( !IsDefined( arg1 ) )
  46.     {
  47.         return ( [[choke_action]]() );
  48.     }
  49.  
  50.     if ( !IsDefined( arg2 ) )
  51.     {
  52.         return ( [[choke_action]]( arg1 ) );
  53.     }
  54.    
  55.     if ( !IsDefined( arg3 ) )
  56.     {
  57.         return ( [[choke_action]]( arg1, arg2 ) );
  58.     }
  59.    
  60.     return ( [[choke_action]]( arg1, arg2, arg3 ) );
  61. }
  62.  
  63.  
  64. server_entity_valid( entity )
  65. {
  66.     if( !IsDefined( entity ) )
  67.     {
  68.         return false;
  69.     }
  70.    
  71.     return true;
  72. }
  73.  
  74.  
  75. server_safe_init( id, max )
  76. {
  77.     if ( !IsDefined( level.zombie_server_choke_ids_max ) || !IsDefined( level.zombie_server_choke_ids_max[ id ] ) )
  78.     {
  79.         server_choke_init( id, max );
  80.     }
  81.  
  82.     assert( max == level.zombie_server_choke_ids_max[ id ] );
  83. }
  84.  
  85. _server_safe_ground_trace( pos )
  86. {
  87.     return groundpos( pos );
  88. }
  89.  
  90. server_safe_ground_trace( id, max, origin )
  91. {
  92.     server_safe_init( id, max );
  93.     return( server_choke_action( id, ::_server_safe_ground_trace, origin ) );
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement