Advertisement
ColdWar-Pawn

Advertisements From File V1

Mar 24th, 2013
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.70 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include < amxmodx >
  4.  
  5. new const szAdvFile[ ] = "addons/amxmodx/configs/adverisments.ini";
  6.  
  7. new Array: g_aType;
  8. new Array: g_aMessages;
  9. new iTotal;
  10. new g_iSayTextMsgID;
  11.  
  12. enum _:Types
  13. {
  14.     HUD_SIDE,
  15.     HUD_CENTER,
  16.     CHAT_PRINT
  17. }
  18.  
  19. new const szTypes[ Types ][ ] = { "SIDE_HUD", "CENTER_HUD", "CHAT_PRINT" };
  20.  
  21. public plugin_init( )
  22. {
  23.     register_plugin( "Hud Messages", "v0.1", "+ColdWar" );
  24.    
  25.     g_aType = ArrayCreate( );
  26.     g_aMessages = ArrayCreate( 82 );
  27.    
  28.     g_iSayTextMsgID = get_user_msgid( "SayText" );
  29. }
  30.  
  31. public plugin_cfg( )
  32. {
  33.     LoadAdvertise( );
  34. }
  35.  
  36.  
  37. public LoadAdvertise( )
  38. {
  39.     if( !file_exists( szAdvFile ) )
  40.     {
  41.         write_file( szAdvFile, "; Advertisement System" );
  42.         write_file( szAdvFile, "; Advertisement System has 3 modes, first mode is Hud message in the TSay Position, second mode is Hud message in the screen center, third is Color Chat." );
  43.         write_file( szAdvFile, "; Hud Side Example:" );
  44.         write_file( szAdvFile, "; SIDE_HUD Your Message" );
  45.         write_file( szAdvFile, "" );
  46.         write_file( szAdvFile, "; Hud Center Example:" );
  47.         write_file( szAdvFile, "; CENTER_HUD Your Message" );
  48.         write_file( szAdvFile, "" );
  49.         write_file( szAdvFile, "; Colorchat is a bit more complicated, you can use !d for default color( con_color cvar ), you can use !t for team color( T=Red CT=Blue Spec=Grey ), !g for green color" );
  50.         write_file( szAdvFile, "; CHAT_PRINT !gHello, !dI'm a !tColorfull !dChat print." );
  51.         return;
  52.     }
  53.    
  54.     new iFile = fopen( szAdvFile, "rt" ), szBuffer[ 100 ], szType[ 18 ], szMessage[ 82 ], Type, bool: found;
  55.    
  56.     while( !feof( iFile ) )
  57.     {
  58.         fgets( iFile,  szBuffer, sizeof szBuffer - 1 );
  59.         if( !strlen( szBuffer ) || szBuffer[ 0 ] == ';' || szBuffer[ 0 ] == '/' )
  60.             continue;
  61.        
  62.         strbreak( szBuffer, szType, sizeof szType - 1, szMessage, sizeof szMessage - 1 );
  63.        
  64.         for( Type = HUD_SIDE ; Type < Types ; Type ++ )
  65.         {
  66.             if( !equal( szTypes[ Type ], szType ) )
  67.                 continue;
  68.             found = true
  69.             break;
  70.         }
  71.        
  72.         if( !found )
  73.             continue;
  74.        
  75.         iTotal ++;
  76.         ArrayPushCell( g_aType, Type );
  77.         ArrayPushString( g_aMessages, szMessage );
  78.         log_amx( "[DEBUG]: Pushed message to list: %s | Type: %s", szMessage, szTypes[ Type ] );
  79.     }
  80.     fclose( iFile );
  81.    
  82.     if( iTotal )
  83.         set_task( 60.0, "CmdAdvertise", 282, .flags = "b" );
  84. }
  85.  
  86. public CmdAdvertise( TaskID )
  87. {
  88.     new message = random( iTotal );
  89.    
  90.     new type = ArrayGetCell( g_aType, message );
  91.     new szMessage[ 82 ];
  92.     ArrayGetString( g_aMessages, message, szMessage, sizeof szMessage - 1 );
  93.    
  94.     log_amx( "[DEBUG] Sent message: %s | Type: %s. (%i/%i)", szMessage, szTypes[ type ], message, iTotal );
  95.    
  96.     if( type == CHAT_PRINT )
  97.     {
  98.         replace_all( szMessage, sizeof szMessage - 1, "!d", "^1" );
  99.         replace_all( szMessage, sizeof szMessage - 1, "!t", "^3" );
  100.         replace_all( szMessage, sizeof szMessage - 1, "!g", "^4" );
  101.        
  102.         Chat( 0, szMessage );
  103.     }
  104.     else if( type == HUD_SIDE )
  105.     {
  106.         set_hudmessage( 85, 127, 255, 0.06, 0.65, 0, 6.0, 8.0 )
  107.         show_hudmessage( 0, szMessage )
  108.     }
  109.     else if( type == HUD_CENTER )
  110.     {
  111.         set_hudmessage( 85, 127, 255, -1.0, -1.0, 0, 6.0, 8.0 )
  112.         show_hudmessage( 0, szMessage )
  113.     }
  114. }
  115.  
  116. stock Chat(index, const Msg[], any:... ) {
  117.     new Buffer[ 190 ];
  118.     vformat( Buffer, sizeof Buffer - 1, Msg, 3 )
  119.     if(!index)
  120.     {
  121.         for( new i = 1 ; i <= get_maxplayers( ); i ++ )
  122.         {
  123.             if( ! is_user_connected( i ) ) 
  124.                 continue
  125.             message_begin( MSG_ONE_UNRELIABLE, g_iSayTextMsgID, _, i )
  126.             write_byte( i )
  127.             write_string( Buffer )
  128.             message_end( )
  129.         }
  130.     }
  131.     else
  132.     {
  133.         if( !is_user_connected( index ) )  
  134.             return
  135.         message_begin( MSG_ONE_UNRELIABLE, g_iSayTextMsgID, _, index )
  136.         write_byte( index )
  137.         write_string( Buffer )
  138.         message_end( )
  139.     }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement