#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new message[192]
new nev[32]
new Temp[192]
static color[10]
new g_vault
new olesek[33]
new szint[33]

#pragma semicolon 1

#define ASD 15
#define MAX_GROUPS 10

new g_Rang[MAX_GROUPS][] = {
       "Tulaj",
       "Helyettes",
       "Foadmin",
       "Admin",
       "Moderator",
       "Tabornok",
       "Ezredes",
       "Parancsnok",
       "Felugyelo",
       "Vip"
};

new g_RangFlag[MAX_GROUPS][] = {
       "abcdefghijklmnopqrstu",
       "bcdefghijklmnopqrstu",
       "bcdefgijklmnpqrst",
       "bcdefgijlmnqrtst",
       "bcdefgijmnqrst",
       "bcdefgijmnqr",
       "bcdefijmnqr",
       "bcdefijmn",
       "bcf",
       "t"
};

new const szamok[ASD] = {
	15,
	20,
	30,
	45,
	55,
	65,
	75,
	85,
	90,
	105,
	115,
	120,
	125,
	135,
	140
 
}
 
new rangok[ASD+1][] = {
	"Újonc",
	"Lelkes",
	"Tag",
	"Beavatott",
	"Tud valamit",
	"Fanatikus",
	"Senior Tag",
	"Jómunkásember",
	"Nagyúr",
	"Félisten",
	"Östag",
	"Veterán",
	"Őskövület",
	"Minden6ó",
	"ISTEN",
	"Mindent Tudó"
 
}
 
public plugin_init() {
	register_plugin("RangAdminChat", "0.5", "Ex3cuTioN");
	register_clcmd("say","hook_say");
	register_clcmd("say_team","hook_say2");
	register_event("DeathMsg", "halal", "a");
	register_event("DeathMsg", "halal", "a");
	g_vault = nvault_open("namerang");
}

public hook_say(id) {
	if(!is_user_admin(id) || is_user_bot(id)) {
		return PLUGIN_CONTINUE;
	}
	
	new nick[32];
	get_user_name(id,nick,31);
	
	static chat[32];
	read_args(chat, sizeof(chat) - 1);
	remove_quotes(chat);
	
	if(equali(chat,"")) {
		return PLUGIN_CONTINUE;
	}
	
	for(new i=0; i<MAX_GROUPS; i++) {
		if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
			ColorChat(0,GREEN,"[%s] ^x01~^x04 [%s]^x03 %s^x04 : %s",g_Rang[i],rangok[szint[id]],nick,chat);
			return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_CONTINUE;
}

public halal()
{
	new killer = read_data(1)
	new victim = read_data(2)
 
	if(killer != victim)
		olesek[killer]++
 
	while(olesek[killer] >= szamok[szint[killer]])
	{
		szint[killer]++
	}
}

public hook_say2(id) {
	if(!is_user_admin(id) || is_user_bot(id)) {
		return PLUGIN_CONTINUE;
	}
	
	new nick[32];
	get_user_name(id,nick,31);
	
	static chat[32];
	read_args(chat, sizeof(chat) - 1);
	remove_quotes(chat);
	
	if(equali(chat,"")) {
		return PLUGIN_CONTINUE;
	}
	
	for(new i=0; i<MAX_GROUPS; i++) {
		if(get_user_flags(id) == read_flags(g_RangFlag[i])) {
			new players[32],num;
			get_players(players,num,"c");
			
			for(new x=0; x<num; x++) {
				if(get_user_team(id) == get_user_team(players[x])) {
					switch(get_user_team(id)) {
						case 1:
						{
							ColorChat(players[x],RED,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
						}
						case 2:
						{
							ColorChat(players[x],BLUE,"(Counter)^x04[%s]^x03 %s^x04 : %s",g_Rang[i],nick,chat);
						}
					}
				}
				return PLUGIN_HANDLED;
			}
		}
	}
	return PLUGIN_CONTINUE;
}
public client_connect(id)
{	
	LoadData(id)
}
public client_disconnect(id) SaveData(id)
 
public SaveData(id)
{
	new name[32]
	get_user_name(id, name, 31)
 
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-rang", name)
	format(vaultdata,255,"%i#%i#",olesek[id],szint[id])
 
 
	nvault_set(g_vault,vaultkey,vaultdata)
	return PLUGIN_CONTINUE
}
public LoadData(id)
{
	new name[32]
	get_user_name(id, name, 31)
	new vaultkey[64],vaultdata[256]
 
	format(vaultkey,63,"%s-rang", name)
	format(vaultdata,255,"%i#%i#",olesek[id],szint[id])
 
	nvault_get(g_vault,vaultkey,vaultdata,255)
	replace_all(vaultdata, 255, "#", " ")
	new oles[32], level[32]
	parse(vaultdata, oles, 31, level, 31)
	olesek[id] = str_to_num(oles)
	szint[id] = str_to_num(level)
	return PLUGIN_CONTINUE
}
public halal()
{
	new killer = read_data(1)
	new victim = read_data(2)
 
	if(killer != victim)
		olesek[killer]++
 
	while(olesek[killer] >= szamok[szint[killer]])
	{
		szint[killer]++
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/
