Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugin generated by AMXX-Studio */
- #include < amxmodx >
- new const szAdvFile[ ] = "addons/amxmodx/configs/adverisments.ini";
- new Array: g_aType;
- new Array: g_aMessages;
- new iTotal;
- new g_iSayTextMsgID;
- enum _:Types
- {
- HUD_SIDE,
- HUD_CENTER,
- CHAT_PRINT
- }
- new const szTypes[ Types ][ ] = { "SIDE_HUD", "CENTER_HUD", "CHAT_PRINT" };
- public plugin_init( )
- {
- register_plugin( "Hud Messages", "v0.1", "+ColdWar" );
- g_aType = ArrayCreate( );
- g_aMessages = ArrayCreate( 82 );
- g_iSayTextMsgID = get_user_msgid( "SayText" );
- }
- public plugin_cfg( )
- {
- LoadAdvertise( );
- }
- public LoadAdvertise( )
- {
- if( !file_exists( szAdvFile ) )
- {
- write_file( szAdvFile, "; Advertisement System" );
- 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." );
- write_file( szAdvFile, "; Hud Side Example:" );
- write_file( szAdvFile, "; SIDE_HUD Your Message" );
- write_file( szAdvFile, "" );
- write_file( szAdvFile, "; Hud Center Example:" );
- write_file( szAdvFile, "; CENTER_HUD Your Message" );
- write_file( szAdvFile, "" );
- 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" );
- write_file( szAdvFile, "; CHAT_PRINT !gHello, !dI'm a !tColorfull !dChat print." );
- return;
- }
- new iFile = fopen( szAdvFile, "rt" ), szBuffer[ 100 ], szType[ 18 ], szMessage[ 82 ], Type, bool: found;
- while( !feof( iFile ) )
- {
- fgets( iFile, szBuffer, sizeof szBuffer - 1 );
- if( !strlen( szBuffer ) || szBuffer[ 0 ] == ';' || szBuffer[ 0 ] == '/' )
- continue;
- strbreak( szBuffer, szType, sizeof szType - 1, szMessage, sizeof szMessage - 1 );
- for( Type = HUD_SIDE ; Type < Types ; Type ++ )
- {
- if( !equal( szTypes[ Type ], szType ) )
- continue;
- found = true
- break;
- }
- if( !found )
- continue;
- iTotal ++;
- ArrayPushCell( g_aType, Type );
- ArrayPushString( g_aMessages, szMessage );
- log_amx( "[DEBUG]: Pushed message to list: %s | Type: %s", szMessage, szTypes[ Type ] );
- }
- fclose( iFile );
- if( iTotal )
- set_task( 60.0, "CmdAdvertise", 282, .flags = "b" );
- }
- public CmdAdvertise( TaskID )
- {
- new message = random( iTotal );
- new type = ArrayGetCell( g_aType, message );
- new szMessage[ 82 ];
- ArrayGetString( g_aMessages, message, szMessage, sizeof szMessage - 1 );
- log_amx( "[DEBUG] Sent message: %s | Type: %s. (%i/%i)", szMessage, szTypes[ type ], message, iTotal );
- if( type == CHAT_PRINT )
- {
- replace_all( szMessage, sizeof szMessage - 1, "!d", "^1" );
- replace_all( szMessage, sizeof szMessage - 1, "!t", "^3" );
- replace_all( szMessage, sizeof szMessage - 1, "!g", "^4" );
- Chat( 0, szMessage );
- }
- else if( type == HUD_SIDE )
- {
- set_hudmessage( 85, 127, 255, 0.06, 0.65, 0, 6.0, 8.0 )
- show_hudmessage( 0, szMessage )
- }
- else if( type == HUD_CENTER )
- {
- set_hudmessage( 85, 127, 255, -1.0, -1.0, 0, 6.0, 8.0 )
- show_hudmessage( 0, szMessage )
- }
- }
- stock Chat(index, const Msg[], any:... ) {
- new Buffer[ 190 ];
- vformat( Buffer, sizeof Buffer - 1, Msg, 3 )
- if(!index)
- {
- for( new i = 1 ; i <= get_maxplayers( ); i ++ )
- {
- if( ! is_user_connected( i ) )
- continue
- message_begin( MSG_ONE_UNRELIABLE, g_iSayTextMsgID, _, i )
- write_byte( i )
- write_string( Buffer )
- message_end( )
- }
- }
- else
- {
- if( !is_user_connected( index ) )
- return
- message_begin( MSG_ONE_UNRELIABLE, g_iSayTextMsgID, _, index )
- write_byte( index )
- write_string( Buffer )
- message_end( )
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement