#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#define PLUGIN "Rang_es_Admin_Prefix_egyben"
#define VERSION "1.0"
#define AUTHOR ""

#pragma tabsize 0
static color[10]
new szint[33]
new message[192]
new Temp[192]
new oles[33]
new nev[33]

#define TULAJDONOS ADMIN_IMMUNITY
#define FOADMIN ADMIN_CVAR
#define ADMIN ADMIN_RESERVATION
#define VIPJOG ADMIN_LEVEL_H
#define VALUE 11

new const szerverPrefix[] = "^4[hlmod.hu]»"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("DeathMsg", "EventDeathMsg", "a");
register_clcmd("say /rangom","show_rang");
register_clcmd("say", "sayhook");
register_clcmd("say_team", "tshook");
}

new const szamok[VALUE] =
{
5,
150,
200,
250,
350,
400,
450,
500,
550,
600,
650
}
new const rangok[VALUE+1][] = {
"Újonc",
"Kezdő",
"Mester",
"rang#1",
"rang#1",
"rang#1",
"rang#1",
"rang#1",
"rang#1",
"rang#1",
"rang#1",
"rang#1"
}

public show_rang(id)
{
ColorChat(id,BLUE,"%s ^1Jelenlegi Rangod:^4 %s,^1következő rangod:^4 %s",szerverPrefix,rangok[szint[id]],rangok[szint[id]+1])
ColorChat(id,BLUE,"%s ^1Öléseid:^4 %d, ^1a következő ranghoz:^4 %d ^1ölés szükséges!",szerverPrefix,oles[id],szamok[szint[id]])
return PLUGIN_HANDLED
}

public EventDeathMsg()
{
new gyilkos = read_data(1)
new aldozat = read_data(2)

while(oles[gyilkos] >= szamok[szint[gyilkos]])
{
szint[gyilkos]++
ColorChat(gyilkos,BLUE,"%s ^3Gratulálok,^4 %s ^3szintbe léptél!",szerverPrefix,rangok[szint[gyilkos]])
}

if(gyilkos != aldozat)
{
oles[gyilkos]++
}

return PLUGIN_CONTINUE;
}

public sayhook(id)
    {
     
    	read_args (message, 191)
    	remove_quotes (message)
    	if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
    	{
    		return PLUGIN_CONTINUE
    	}
    	get_user_name(id, nev, 31)
    	if(is_user_alive(id)) {
    		get_user_team(id, color, 9)

    		if(get_user_flags(id) & TULAJDONOS)
    			formatex(Temp, 191, "^4[Tulajdonos][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)
    		else if(get_user_flags(id) & FOADMIN)
    			formatex(Temp, 191, "^4[FőAdmin][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)
			else if(get_user_flags(id) & ADMIN)
                formatex(Temp, 191, "^4[ADMIN][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)
            else if(get_user_flags(id) & VIPJOG)
                formatex(Temp, 191, "^4[VIP][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)			
     
    		else formatex(Temp, 191, "^4[Játékos][%s]^3%s^1» ^1%s", rangok[szint[id]],nev, message)
     
    	}
    	else {
    		get_user_team(id, color, 9)
     		if(get_user_flags(id) & TULAJDONOS)
    			formatex(Temp, 191, "^1*HALOTT* ^4[Tulajdonos][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)
    		else if(get_user_flags(id) & FOADMIN)
    			formatex(Temp, 191, "^1*HALOTT* ^4[FőAdmin][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)
			else if(get_user_flags(id) & ADMIN)
                formatex(Temp, 191, "^1*HALOTT* ^4[Admin][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)
            else if(get_user_flags(id) & VIPJOG)
                formatex(Temp, 191, "^1*HALOTT* ^4[VIP][%s]^3%s^1» ^4%s", rangok[szint[id]],nev, message)			
     
    		else formatex(Temp, 191, "^1*HALOTT* ^4[Játékos][%s]^3%s^1» ^1%s", rangok[szint[id]],nev, message)
    	}
    	sendmessage(color)
    	return PLUGIN_HANDLED
    }
    public tshook(id)
    {
    	read_args (message, 191)
    	remove_quotes (message)
    	if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
    	{
    		return PLUGIN_CONTINUE
    	}
    	get_user_name(id, nev, 31)
    	new playerTeam = get_user_team(id)
    	new playerTeamName[19]
    	switch (playerTeam)
    	{
    		case 1: {
    			copy (playerTeamName, 11, "*Terrorista*")
     
    		}
    		case 2: {
    			copy (playerTeamName, 18, "*Anti-Terrorista*")
     
    		}
    		default:
    		copy (playerTeamName, 9, "*Néző'*")
    	}
    	if(is_user_alive(id))
    	{
    		get_user_team(id, color, 9)
            if(get_user_flags(id) & TULAJDONOS)
    			formatex(Temp, 191, "^1%s ^4[Tulajdonos][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]], nev, message)
    		else if(get_user_flags(id) & FOADMIN)
    			formatex(Temp, 191, "^1%s ^4[FőAdmin][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)
			else if(get_user_flags(id) & ADMIN)
                formatex(Temp, 191, "^1%s ^4[Admin][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)
            else if(get_user_flags(id) & VIPJOG)
                formatex(Temp, 191, "^1%s ^4[VIP][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)			
     
    		else formatex(Temp, 191, "^1%s ^4[Játékos][%s]^3%s^1» ^1%s", playerTeamName,rangok[szint[id]],nev, message)
     
    	}
    	else
    	{
    		get_user_team(id, color, 9)
                 if(get_user_flags(id) & TULAJDONOS)
    			formatex(Temp, 191, "^1*HALOTT*-^1%s ^4[Tulajdonos][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)
    		else if(get_user_flags(id) & FOADMIN)
    			formatex(Temp, 191, "^1*HALOTT*-^1%s ^4[FőAdmin][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)
			else if(get_user_flags(id) & ADMIN)
                formatex(Temp, 191, "^1*HALOTT*-^1%s ^4[Admin][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)
            else if(get_user_flags(id) & VIPJOG)
                formatex(Temp, 191, "^1*HALOTT*-^1%s ^4[VIP][%s]^3%s^1» ^4%s", playerTeamName,rangok[szint[id]],nev, message)			
     
    		else formatex(Temp, 191, "^1*HALOTT*-^1%s ^4[Játékos][%s]^3%s^1» ^1%s", playerTeamName,rangok[szint[id]],nev, message)
    	}
    	sendtmessage(color, playerTeam)
    	return PLUGIN_HANDLED
    }
    public sendmessage(color[])
    {
    	new teamName[10]
    	for(new player = 1; player < get_maxplayers(); player++)
    	{
    		get_user_team (player, teamName, 9)
    		teamf (player, color)
    		elkuldes(player, Temp)
    		teamf(player, teamName)
    	}
    }
    public sendtmessage(color[], playerTeam)
    {
    	new teamName[10]
    	for (new player = 1; player < get_maxplayers(); player++)
    	{
    		if(get_user_team(player) == playerTeam)
    		{
    			get_user_team (player, teamName, 9)
    			elkuldes(player, Temp)
    			teamf (player, teamName)
    			teamf (player, color)
    		}
    	}
    }
    public teamf(player, team[])
    {
    	message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player)
    	write_byte(player)
    	write_string(team)
    	message_end()
    }
    public elkuldes(player, Temp[])
    {
     
    	message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player)
    	write_byte( player )
    	write_string( Temp )
    	message_end()
     
    }
	
	public client_connect(id)
	{
	Betoltes(id)
	}
	public client_disconnect(id)
	{
	Mentes(id)
	}
	
	public Mentes(id)
{
new steamid[33]
get_user_authid(id, steamid, charsmax(steamid))
new filenev[128], tartalom[64]
format(filenev, sizeof(filenev), "addons/amxmodx/mentesek/%s.txt", steamid)
new sor = 0
formatex(tartalom, charsmax(tartalom), "%d", oles[id])
write_file(filenev, tartalom, sor)
sor++
formatex(tartalom, charsmax(tartalom), "%d", szint[id])
write_file(filenev, tartalom, sor)
}
	public Betoltes(id)
{
new steamid[33]
get_user_authid(id, steamid, charsmax(steamid))
new filenev[128]
format(filenev, 127, "addons/amxmodx/mentesek/%s.txt", steamid)
new sor = 0
if (is_user_bot(id) || !file_exists(filenev))
return
new oles_cache[32], szint_cache[32]
new len
read_file(filenev, sor, oles_cache, 63, len)
sor++
read_file(filenev, sor, szint_cache, 63, len)
oles[id] = str_to_num(oles_cache)
szint[id] = str_to_num(szint_cache)
}