MegastoRM

Untitled

Dec 28th, 2012
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. stock __dhud_color;
  2. stock __dhud_x;
  3. stock __dhud_y;
  4. stock __dhud_effect;
  5. stock __dhud_fxtime;
  6. stock __dhud_holdtime;
  7. stock __dhud_fadeintime;
  8. stock __dhud_fadeouttime;
  9. stock __dhud_reliable;
  10.  
  11. stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false )
  12. {
  13. #define clamp_byte(%1) ( clamp( %1, 0, 255 ) )
  14. #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )
  15.  
  16. __dhud_color = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) );
  17. __dhud_x = _:x;
  18. __dhud_y = _:y;
  19. __dhud_effect = effects;
  20. __dhud_fxtime = _:fxtime;
  21. __dhud_holdtime = _:holdtime;
  22. __dhud_fadeintime = _:fadeintime;
  23. __dhud_fadeouttime = _:fadeouttime;
  24. __dhud_reliable = _:reliable;
  25.  
  26. return 1;
  27. }
  28.  
  29. stock show_dhudmessage( index, const message[], any:... )
  30. {
  31. new buffer[ 128 ];
  32. new numArguments = numargs();
  33.  
  34. if( numArguments == 2 )
  35. {
  36. send_dhudMessage( index, message );
  37. }
  38. else if( index || numArguments == 3 )
  39. {
  40. vformat( buffer, charsmax( buffer ), message, 3 );
  41. send_dhudMessage( index, buffer );
  42. }
  43. else
  44. {
  45. new playersList[ 32 ], numPlayers;
  46. get_players( playersList, numPlayers, "ch" );
  47.  
  48. if( !numPlayers )
  49. {
  50. return 0;
  51. }
  52.  
  53. new Array:handleArrayML = ArrayCreate();
  54.  
  55. for( new i = 2, j; i < numArguments; i++ )
  56. {
  57. if( getarg( i ) == LANG_PLAYER )
  58. {
  59. while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {}
  60. j = 0;
  61.  
  62. if( GetLangTransKey( buffer ) != TransKey_Bad )
  63. {
  64. ArrayPushCell( handleArrayML, i++ );
  65. }
  66. }
  67. }
  68.  
  69. new size = ArraySize( handleArrayML );
  70.  
  71. if( !size )
  72. {
  73. vformat( buffer, charsmax( buffer ), message, 3 );
  74. send_dhudMessage( index, buffer );
  75. }
  76. else
  77. {
  78. for( new i = 0, j; i < numPlayers; i++ )
  79. {
  80. index = playersList[ i ];
  81.  
  82. for( j = 0; j < size; j++ )
  83. {
  84. setarg( ArrayGetCell( handleArrayML, j ), 0, index );
  85. }
  86.  
  87. vformat( buffer, charsmax( buffer ), message, 3 );
  88. send_dhudMessage( index, buffer );
  89. }
  90. }
  91.  
  92. ArrayDestroy( handleArrayML );
  93. }
  94.  
  95. return 1;
  96. }
  97.  
  98. stock send_dhudMessage( const index, const message[] )
  99. {
  100. message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index );
  101. {
  102. write_byte( strlen( message ) + 31 );
  103. write_byte( DRC_CMD_MESSAGE );
  104. write_byte( __dhud_effect );
  105. write_long( __dhud_color );
  106. write_long( __dhud_x );
  107. write_long( __dhud_y );
  108. write_long( __dhud_fadeintime );
  109. write_long( __dhud_fadeouttime );
  110. write_long( __dhud_holdtime );
  111. write_long( __dhud_fxtime );
  112. write_string( message );
  113. }
  114. message_end();
  115. }
Advertisement
Add Comment
Please, Sign In to add comment