#include <amxmodx>
        #include <amxmisc>
        #include <nvault>
 
        #define PLUGIN "HLMOD.Hus Rangok"
        #define VERSION "1.0"
        #define AUTHOR "ExTraaaa and qKKKJ;>"
 
        new message[192]
        new nev[32]
        new Temp[192]
        static color[10]
        new g_vault
        new olesek[33]
        new szint[33]
 
 
        #define ASD 15
 
        //Ha az ASD értéke 15 akkor a szamoknal 15 szám a rangoknál 16 szöveg
 
        new const szamok[ASD] = {
        	15,
        	20,
        	30,
        	45,
        	55,
        	65,
        	75,
        	85,
        	90,
        	105,
        	115,
        	120,
        	125,
        	135,
        	140
 
        }
 
        new const rangok[ASD+1][] = {
        	"Újonc",
        	"Lelkes",
        	"Tag",
        	"Beavatott",
        	"Tud valamit",
        	"Fanatikus",
        	"Senior Tag",
        	"Jómunkásember",
        	"Nagyúr",
        	"Félisten",
        	"Östag",
        	"Veterán",
        	"Oskövület",
        	"Minden6ó",
        	"ISTEN",
        	"Mindent Tudó"
 
        }
 
        public plugin_init()
        {
        	register_plugin(PLUGIN, VERSION, AUTHOR)
        	register_clcmd("say /rangmenu", "rangmenu")
        	register_clcmd("say /rang", "hud")
        	register_clcmd("say", "sayhook")
        	register_clcmd("say_team", "tshook")
        	register_event("DeathMsg", "halal", "a")
        	g_vault = nvault_open("namerang")
 
        }
        public hud(id)
        {
        	if(szint[id] != ASD+1)
        	{
 
 
        		client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: %d",rangok[szint[id]], olesek[id],szamok[szint[id]]-olesek[id] )
        	}
        	else {
 
        		client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: 0",rangok[szint[id]], olesek[id])
        	}
 
        }
        public rangmenu(id) {
        	new menu = menu_create("Rangok:", "rangrendszer")
    	menu_additem(menu, "Ujonc", "0")
    	menu_additem(menu, "Lelkes", "1")
    	menu_additem(menu, "Tag", "2")
    	menu_additem(menu, "Beavatott", "3")
	menu_additem(menu, "Tud valamit", "4")
    	menu_additem(menu, "Fanatikus", "5")
    	menu_additem(menu, "Senior Tag", "6")
    	menu_additem(menu, "Jómunkásember", "7")
	menu_additem(menu, "Nagyúr", "8")
    	menu_additem(menu, "Félisten", "9")
    	menu_additem(menu, "Östag", "10")
    	menu_additem(menu, "Veterán", "11")
	menu_additem(menu, "Oskövület", "12")
    	menu_additem(menu, "Minden6ó", "13")
    	menu_additem(menu, "ISTEN", "14")
    	menu_additem(menu, "Mindent Tudó", "15")
        	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
        	menu_display(id, menu, 0)
        }
        public rangrendszer(id, menu, item) {
        	new data[6],name[64]
        	new acces,callback
        	menu_item_getinfo(menu,item,acces,data,charsmax(data),name,charsmax(name),callback)
        	new key = str_to_num(data)
        	switch(key){
        		case 1: {
 
    		if(olesek[id] >= 15) 
 
    		{		
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")	
        		}
 
        		case 2: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 3: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 4: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 5: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 6: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 7: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 8: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 9: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 10: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 11: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 12: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 13: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 14: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
 
		case 15: {
 
    		if(olesek[id] >= 20) 
 
    		{	
    		print_color(id, "Neked már megvan ez a rang.")	
    		}
    		else print_color(id, "Még olj hogy meglegyen ez a rang.")
        		}
        	}
 
 
        	menu_destroy(menu)
        	return PLUGIN_HANDLED
        }
 
 
 
        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)) {
			if(get_user_flags(id) & ADMIN_IMMUNITY) {
        		get_user_team(id, color, 9)
        		formatex(Temp, 191, "^x04[ADMIN][%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
		}
		else {
			formatex(Temp, 191, "^x04[%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
		}
 
 
        	}
        	else {
			if(get_user_flags(id) & ADMIN_IMMUNITY) {
        		get_user_team(id, color, 9)
        		formatex(Temp, 191, "^x04*Halott* [ADMIN][%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
		}
		else {
		formatex(Temp, 191, "^x04*Halott* [%s] ^x03%s^x01: %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ézo*")
        	}
        	if(is_user_alive(id))
        	{
		if(get_user_flags(id) & ADMIN_IMMUNITY) {
        		get_user_team(id, color, 9)
        		formatex(Temp, 191, "^x03(%s) ^x04[ADMIN][%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
		else {
		formatex(Temp, 191, "^x03(%s) ^x04[%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
 
        	}
        	else
        	{
			if(get_user_flags(id) & ADMIN_IMMUNITY) {
        		get_user_team(id, color, 9)
        		formatex(Temp, 191, "^x04*Halott* ^x03(%s) ^x04[ADMIN][%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
			else {
			formatex(Temp, 191, "^x04*Halott* ^x03(%s) ^x04[%s] ^x03%s^x01: %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)
        {	
        	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]++
        	}
        }
        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, "á", "A?")
    replace_all(msg, 190, "é", "A©")
    replace_all(msg, 190, "í", "A")
    replace_all(msg, 190, "ó", "Al")
    replace_all(msg, 190, "ö", "A¶")
    replace_all(msg, 190, "o", "L‘")
    replace_all(msg, 190, "ú", "As")
    replace_all(msg, 190, "ü", "AL")
    replace_all(msg, 190, "u", "L±")
    replace_all(msg, 190, "Á", "A")
    replace_all(msg, 190, "É", "A‰")
    replace_all(msg, 190, "Í", "AT")
    replace_all(msg, 190, "Ó", "A“")
    replace_all(msg, 190, "Ö", "A–")
    replace_all(msg, 190, "O", "L")
    replace_all(msg, 190, "Ú", "Aš")
    replace_all(msg, 190, "Ü", "As")
    replace_all(msg, 190, "U", "L°")       
 
    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
    }
 
}
 

hlmodrang.sma(88) : warning 217: loose indentation
hlmodrang.sma(104) : warning 217: loose indentation
hlmodrang.sma(118) : error 017: undefined symbol "print_color"
hlmodrang.sma(120) : error 017: undefined symbol "print_color"
hlmodrang.sma(128) : error 017: undefined symbol "print_color"
hlmodrang.sma(130) : error 017: undefined symbol "print_color"
hlmodrang.sma(138) : error 017: undefined symbol "print_color"
hlmodrang.sma(140) : error 017: undefined symbol "print_color"
hlmodrang.sma(148) : error 017: undefined symbol "print_color"
hlmodrang.sma(150) : error 017: undefined symbol "print_color"
hlmodrang.sma(158) : error 017: undefined symbol "print_color"
hlmodrang.sma(160) : error 017: undefined symbol "print_color"
hlmodrang.sma(168) : error 017: undefined symbol "print_color"
hlmodrang.sma(170) : error 017: undefined symbol "print_color"
hlmodrang.sma(178) : error 017: undefined symbol "print_color"
hlmodrang.sma(180) : error 017: undefined symbol "print_color"
hlmodrang.sma(188) : error 017: undefined symbol "print_color"
hlmodrang.sma(190) : error 017: undefined symbol "print_color"
hlmodrang.sma(198) : error 017: undefined symbol "print_color"
hlmodrang.sma(200) : error 017: undefined symbol "print_color"
hlmodrang.sma(208) : error 017: undefined symbol "print_color"
hlmodrang.sma(210) : error 017: undefined symbol "print_color"
hlmodrang.sma(218) : error 017: undefined symbol "print_color"
hlmodrang.sma(220) : error 017: undefined symbol "print_color"
hlmodrang.sma(228) : error 017: undefined symbol "print_color"
hlmodrang.sma(230) : error 017: undefined symbol "print_color"
hlmodrang.sma(238) : error 017: undefined symbol "print_color"
hlmodrang.sma(240) : error 017: undefined symbol "print_color"
Compilation aborted.
26 Errors.
Could not locate output file hlmodrang.amx (compile failed).