#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#if defined _dhudmessage_included
    #endinput
#endif
 
#define _dhudmessage_included
 
#include <amxmodx>
 
stock __dhud_color;
stock __dhud_x;
stock __dhud_y;
stock __dhud_effect;
stock __dhud_fxtime;
stock __dhud_holdtime;
stock __dhud_fadeintime;
stock __dhud_fadeouttime;
stock __dhud_reliable;
 
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 )
{
    #define clamp_byte(%1)       ( clamp( %1, 0, 255 ) )
    #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )
 
    __dhud_color       = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) );
    __dhud_x           = _:x;
    __dhud_y           = _:y;
    __dhud_effect      = effects;
    __dhud_fxtime      = _:fxtime;
    __dhud_holdtime    = _:holdtime;
    __dhud_fadeintime  = _:fadeintime;
    __dhud_fadeouttime = _:fadeouttime;
    __dhud_reliable    = _:reliable;
 
    return 1;
}
 
stock show_dhudmessage( index, const message[], any:... )
{
    new buffer[ 128 ];
    new numArguments = numargs();
 
    if( numArguments == 2 )
    {
        send_dhudMessage( index, message );
    }
    else if( index || numArguments == 3 )
    {
        vformat( buffer, charsmax( buffer ), message, 3 );
        send_dhudMessage( index, buffer );
    }
    else
    {
        new playersList[ 32 ], numPlayers;
        get_players( playersList, numPlayers, "ch" );
 
        if( !numPlayers )
        {
            return 0;
        }
 
        new Array:handleArrayML = ArrayCreate();
 
        for( new i = 2, j; i < numArguments; i++ )
        {
            if( getarg( i ) == LANG_PLAYER )
            {
                while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {}
                j = 0;
 
                if( GetLangTransKey( buffer ) != TransKey_Bad )
                {
                    ArrayPushCell( handleArrayML, i++ );
                }
            }
        }
 
        new size = ArraySize( handleArrayML );
 
        if( !size )
        {
            vformat( buffer, charsmax( buffer ), message, 3 );
            send_dhudMessage( index, buffer );
        }
        else
        {
            for( new i = 0, j; i < numPlayers; i++ )
            {
                index = playersList[ i ];
 
                for( j = 0; j < size; j++ )
                {
                    setarg( ArrayGetCell( handleArrayML, j ), 0, index );
                }
 
                vformat( buffer, charsmax( buffer ), message, 3 );
                send_dhudMessage( index, buffer );
            }
        }
 
        ArrayDestroy( handleArrayML );
    }
 
    return 1;
}
 
stock send_dhudMessage( const index, const message[] )
{
    message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index );
    {
        write_byte( strlen( message ) + 31 );
        write_byte( DRC_CMD_MESSAGE );
        write_byte( __dhud_effect );
        write_long( __dhud_color );
        write_long( __dhud_x );
        write_long( __dhud_y );
        write_long( __dhud_fadeintime );
        write_long( __dhud_fadeouttime );
        write_long( __dhud_holdtime );
        write_long( __dhud_fxtime );
        write_string( message );
    }
    message_end();
}
 
 
#define PLUGIN "HUD Info"
#define VERSION "1.0"
#define AUTHOR "N/A"
 
#define MAXROUNDS 40
 
new Rounds
 
new iCTKills
new iTTKills
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event( "DeathMsg", "DeathEvent", "a" );
	register_event("TextMsg","ResetAll","a","2&#Game_C","2&#Game_w")
	register_logevent("NewRounds", 2, "0=World triggered", "1=Round_Start")
	set_task(1.0,"HUDInfo" , _ , _ , _ , "b")
}
 
public ResetAll() {
	Rounds = 0
	iCTKills = 0
	iTTKills = 0
}
 
public DeathEvent(){
	new Killer = read_data( 1 );
	new CsTeams:Team
	Team = cs_get_user_team( Killer );
	if (Team == CS_TEAM_T)
	{
		iTTKills++
	}
	if (Team == CS_TEAM_CT)
	{
		iCTKills++
	}
}
 
public NewRounds(){
	Rounds++	
}
 
public HUDInfo(){
	new Time[9] 
	get_time("%H:%M",Time,8) 
 
	new CurrentPlayers = get_playersnum();
	new MaxPlayers = get_maxplayers();
 
	set_dhudmessage(random(255),random(255),random(255), 0.0, 0.19, 0, 6.0, 12.0)
	show_dhudmessage(0, "Frags of T: %d^nFrags of CT: %d^n Slot:10 Tulaj%d^n Konfig%d^n",  iTTKills, iCTKills,  CurrentPlayers, Config)
 
}
 
stock print_color(const id, const input[], any:...)
{
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
 
        replace_all(msg, 190, "!g", "^4")
        replace_all(msg, 190, "!y", "^1")
        replace_all(msg, 190, "!t", "^3")
        replace_all(msg, 190, "�", "á")
        replace_all(msg, 190, "�", "é")
        replace_all(msg, 190, "�", "í")
        replace_all(msg, 190, "�", "ó")
        replace_all(msg, 190, "�", "ö")
        replace_all(msg, 190, "�", "ő")
        replace_all(msg, 190, "�", "ú")
        replace_all(msg, 190, "�", "ü")
        replace_all(msg, 190, "�", "ű")
        replace_all(msg, 190, "�", "Á")
        replace_all(msg, 190, "�", "É")
        replace_all(msg, 190, "�", "Í")
        replace_all(msg, 190, "�", "Ó")
        replace_all(msg, 190, "�", "Ö")
        replace_all(msg, 190, "�", "Ő")
        replace_all(msg, 190, "�", "Ú")
        replace_all(msg, 190, "�", "Ü")
        replace_all(msg, 190, "�", "Ű")        
 
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
                for (new i = 0; i < count; i++)
                {
                        if (is_user_connected(players[i]))
                        {
                                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                                write_byte(players[i])
                                write_string(msg)
                                message_end()
                        }
                }
        }
        return PLUGIN_HANDLED
}