#include < amxmodx >
enum Icon {
C4 = 0,
Escape,
Rescue,
Defuser,
Buyzone,
VipSafety
};
new Trie:g_tIconNames, g_pCvars[ Icon ];
public plugin_init( ) {
register_plugin( "Icons Color Changer", "1.1", "xPaw" );
register_message( get_user_msgid( "StatusIcon" ), "MessageStatusIcon" );
g_tIconNames = TrieCreate( );
new const DefaultValues[ Icon ][ ] = { "255 100 0", "255 215 0", "255 100 0 ", "0 100 255", "0 160 0", "0 160 0" };
new const IconNames[ Icon ][ ] = { "c4", "escape", "rescue", "defuser", "buyzone", "vipsafety" };
new szCvarName[ 17 ], iAppend = formatex( szCvarName, 16, "icons_" );
for( new Icon:i = C4; i < Icon; i++ ) {
formatex( szCvarName[ iAppend ], 10, IconNames[ i ] );
g_pCvars[ i ] = register_cvar( szCvarName, DefaultValues[ i ] );
TrieSetCell( g_tIconNames, IconNames[ i ], i );
}
}
public plugin_end( )
TrieDestroy( g_tIconNames );
public MessageStatusIcon( const iMsgId, const iMsgDest, const id ) {
if( get_msg_arg_int( 1 ) == 0 )
return;
new szIcon[ 10 ], Icon:iIcon;
get_msg_arg_string( 2, szIcon, 9 );
if( !TrieGetCell( g_tIconNames, szIcon, iIcon ) )
return;
new szColor[ 12 ], szRGB[ 3 ][ 4 ];
get_pcvar_string( g_pCvars[ iIcon ], szColor, 11 );
parse( szColor, szRGB[ 0 ], 3, szRGB[ 1 ], 3, szRGB[ 2 ], 3 );
new iRed = clamp( str_to_num( szRGB[ 0 ] ), 0, 255 );
new iGreen = clamp( str_to_num( szRGB[ 1 ] ), 0, 255 );
new iBlue = clamp( str_to_num( szRGB[ 2 ] ), 0, 255 );
set_msg_arg_int( 3, ARG_BYTE, iRed );
set_msg_arg_int( 4, ARG_BYTE, iGreen );
set_msg_arg_int( 5, ARG_BYTE, iBlue );
}