#include <amxmodx>
#include <fakemeta>
#include <engine>
#include <fvault>

#pragma semicolon 1

new const PLUGIN[] = "SkinRendszer 2.0";
new const VERSION[] = "2.0";
new const AUTHOR[] = "MasTerS&proxy";

enum _:Typers
{
	AK47,
	M4A1,
	AWP
};

new Fegyverek[Typers], Oles[33], Kes[33];

new const Prefix[] = ".:[%s]:.";
new const File[] = "SkinMentes";

new const Ak47_Model[][] = { "models/v_ak47.mdl", "models/badboys/AK47/Frozen.mdl", "models/badboys/AK47/Golden.mdl", "models/badboys/AK47/Redline.mdl", "models/badboys/AK47/ItsGoTime.mdl", "models/badboys/AK47/Deluxe.mdl" };
new const M4a1_Model[][] = { "models/v_m4a1.mdl", "models/badboys/M4A1/BlueForce.mdl", "models/badboys/M4A1/RedTape.mdl", "models/badboys/M4A1/Piece.mdl", "models/badboys/M4A1/Atomic.mdl", "models/badboys/M4A1/ZombieHunter.mdl" };
new const Awp_Model[][] = { "models/v_awp.mdl", "models/badboys/AWP/TigerDomination.mdl", "models/badboys/AWP/TigerTooth.mdl", "models/badboys/AWP/Explosion.mdl", "models/badboys/AWP/BloodyCamo.mdl", "models/badboys/AWP/Hexo.mdl" };

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_impulse(201, "Fomenu");
	register_clcmd("say /menu", "Fomenu");
	register_clcmd("say /add", "g_Addolas");
	
	register_event("DeathMsg", "Halal", "a");
	register_event("CurWeapon", "FegyverValtas", "be", "1=1");
}
public g_Addolas(id)
{
	if(get_user_flags(id) & ADMIN_IMMUNITY)
		Oles[id] += 1500;
}
public plugin_precache()
{
	for(new i=0;i < 6; i++) {
		precache_model(Ak47_Model[i]);
	}
	for(new i=0;i < 6; i++) {
		precache_model(M4a1_Model[i]);
	}
	for(new i=0;i < 6; i++) {
		precache_model(Awp_Model[i]);
	}
	
	precache_model("models/badboys/kes.mdl");
}
public FegyverValtas(id)
{
	new Gun = get_user_weapon(id);
	
	for(new i=0;i < 6; i++) {
		if(Fegyverek[AK47] == i && Gun == CSW_AK47) {
			set_pev(id, pev_viewmodel2, Ak47_Model[i]);
		}
	}
	for(new i=0;i < 6; i++) {
		if(Fegyverek[M4A1] == i && Gun == CSW_M4A1) {
			set_pev(id, pev_viewmodel2, M4a1_Model[i]);	
		}	
	}
	for(new i=0;i < 6; i++) {
		if(Fegyverek[AWP] == i && Gun == CSW_AWP){
			set_pev(id, pev_viewmodel2, Awp_Model[i]);
		}
	}
	
	if(Kes[id] == 0 && Gun == CSW_KNIFE)
	{
		set_pev(id, pev_viewmodel2, "models/badboys/kes.mdl");
	}
}
public Halal()
{
	new Gyilkos = read_data(1);
	new Aldozat = read_data(2);
	
	if(Gyilkos != Aldozat)
	{
		Oles[Gyilkos] ++;
	}
}
public Fomenu(id)
{
	new cim[121];
	format(cim, charsmax(cim), "\r.:[\y%s\r]:. \wOnlyDust2^n\yÖlések: \d%d", Oles[id]);
	new menu = menu_create(cim, "Fomenu_h");
	
	menu_additem(menu, "AK47", "1", 0);
	menu_additem(menu, "M4A1", "2", 0);
	menu_additem(menu, "AWP", "3", 0);
	
	menu_display(id, menu, 0);
}
public Fomenu_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
	
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 1: g_ak47(id);
		case 2: g_m4a1(id);
		case 3: g_awp(id);
	}
}
public g_ak47(id)
{
	new cim[121];
	new menu = menu_create("\r.:[\y%s\r]:. \wAK47 Skinek", "gak47_h");
	
	menu_additem(menu, "Alap AK47", "0", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 150 ? ("\yAK47 \d| \wFrozen \d| \r[Megszerezve]"):("\yAK47 \d| \wFrozen \d| \r[\w%d/150\r]"), Oles[id]);
	menu_additem(menu, cim, "1", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 300 ? ("\yAK47 \d| \wGolden \d| \r[Megszerezve]"):("\yAK47 \d| \wGolden \d| \r[\w%d/300\r]"), Oles[id]);
	menu_additem(menu, cim, "2", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 550 ? ("\yAK47 \d| \wRedline \d| \r[Megszerezve]"):("\yAK47 \d| \wRedline \d| \r[\w%d/550\r]"), Oles[id]);
	menu_additem(menu, cim, "3", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 700 ? ("\yAK47 \d| \wItsGoTime \d| \r[Megszerezve]"):("\yAK47 \d| \wItsGoTime \d| \r[\w%d/700\r]"), Oles[id]);
	menu_additem(menu, cim, "4", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 850 ? ("\yAK47 \d| \wDeluxe \d| \r[Megszerezve]"):("\yAK47 \d| \wDeluxe\d| \r[\w%d/850\r]"), Oles[id]);
	menu_additem(menu, cim, "5", 0);
	
	menu_display(id, menu, 0);
}
public gak47_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
	
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 0: Fegyverek[AK47] = 0;
		case 1: 
		{
			if(Oles[id] >= 150)
			{
				Fegyverek[AK47] = 1;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 2: 
		{
			if(Oles[id] >= 300)
			{
				Fegyverek[AK47] = 2;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}	
		case 3: 
		{
			if(Oles[id] >= 550)
			{
				Fegyverek[AK47] = 3;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}	
		case 4: 
		{
			if(Oles[id] >= 700)
			{
				Fegyverek[AK47] = 4;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}	
		case 5: 
		{
			if(Oles[id] >= 850)
			{
				Fegyverek[AK47] = 5;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
	}
}
public g_m4a1(id)
{
	new cim[121];
	new menu = menu_create("\r.:[\y%s\r]:. \wM4A1 Skinek", "gm4a1_h");
	
	menu_additem(menu, "Alap M4A1", "0", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 150 ? ("\yM4A1 \d| \wBlue Force \d| \r[Megszerezve]"):("\yM4A1 \d| \wBlue Force \d| \r[\w%d/150\r]"), Oles[id]);
	menu_additem(menu, cim, "1", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 300 ? ("\yM4A1 \d| \wRed Tape \d| \r[Megszerezve]"):("\yM4A1 \d| \wRed Tape \d| \r[\w%d/300\r]"), Oles[id]);
	menu_additem(menu, cim, "2", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 550 ? ("\yM4A1 \d| \wMaster Piece \d| \r[Megszerezve]"):("\yM4A1 \d| \wMaster Piece \d| \r[\w%d/550\r]"), Oles[id]);
	menu_additem(menu, cim, "3", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 700 ? ("\yM4A1 \d| \wAtomic \d| \r[Megszerezve]"):("\yM4A1 \d| \wAtomic \d| \r[\w%d/700\r]"), Oles[id]);
	menu_additem(menu, cim, "4", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 850 ? ("\yM4A1 \d| \wZombie Hunter \d| \r[Megszerezve]"):("\yM4A1 \d| \wZombie Hunter \d| \r[\w%d/850\r]"), Oles[id]);
	menu_additem(menu, cim, "5", 0);
	
	menu_display(id, menu, 0);
}
public gm4a1_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
	
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 0: Fegyverek[M4A1] = 0;
		case 1: 
		{
			if(Oles[id] >= 150)
			{
				Fegyverek[M4A1] = 1;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 2: 
		{
			if(Oles[id] >= 300)
			{
				Fegyverek[M4A1] = 2;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 3: 
		{
			if(Oles[id] >= 550)
			{
				Fegyverek[M4A1] = 3;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 4: 
		{
			if(Oles[id] >= 700)
			{
				Fegyverek[M4A1] = 4;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 5: 
		{
			if(Oles[id] >= 850)
			{
				Fegyverek[M4A1] = 5;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
	}
}
public g_awp(id)
{
	new cim[121];
	new menu = menu_create("\r.:[\y%s\r]:. \wAWP Skinek", "gAWP_h");
	
	menu_additem(menu, "Alap AWP", "0", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 50 ? ("\yAWP \d| \wTiger Domination \d| \r[Megszerezve]"):("\yAWP \d| \wTiger Domination \d| \r[\w%d/50\r]"), Oles[id]);
	menu_additem(menu, cim, "1", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 100 ? ("\yAWP \d| \wTiger Tooth \d| \r[Megszerezve]"):("\yAWP \d| \wTiger Tooth \d| \r[\w%d/100\r]"), Oles[id]);
	menu_additem(menu, cim, "2", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 200 ? ("\yAWP \d| \wExplosion Flames \d| \r[Megszerezve]"):("\yAWP \d| \wExplosion Flames \d| \r[\w%d/200\r]"), Oles[id]);
	menu_additem(menu, cim, "3", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 350 ? ("\yAWP \d| \wBloodyCamo \d| \r[Megszerezve]"):("\yAWP \d| \wBloodyCamo \d| \r[\w%d/350\r]"), Oles[id]);
	menu_additem(menu, cim, "4", 0);
	
	formatex(cim, charsmax(cim), Oles[id] >= 500 ? ("\yAWP \d| \wHexo \d| \r[Megszerezve]"):("\yAWP \d| \wHexo \d| \r[\w%d/500\r]"), Oles[id]);
	menu_additem(menu, cim, "5", 0);
	
	menu_display(id, menu, 0);
}
public gAWP_h(id, menu, item){
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return;
	}
	
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
	
	switch(key)
	{
		case 0: Fegyverek[AWP] = 0;
		case 1: 
		{
			if(Oles[id] >= 50)
			{
				Fegyverek[AWP] = 1;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 2: 
		{
			if(Oles[id] >= 100)
			{
				Fegyverek[AWP] = 2;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 3: 
		{
			if(Oles[id] >= 200)
			{
				Fegyverek[AWP] = 3;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 4: 
		{
			if(Oles[id] >= 350)
			{
				Fegyverek[AWP] = 4;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
		case 5: 
		{
			if(Oles[id] >= 500)
			{
				Fegyverek[AWP] = 5;
				client_printcolor(id, "!g%s !nSikeresen Kiválasztodtad.", Prefix);
			}
			else
			{
				client_printcolor(id, "!g%s !nNincs elég ölésed.", Prefix);
			}
		}
	}
}
stock client_printcolor(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, "!n", "^1");
	replace_all(msg, 190, "!t", "^3");  

	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;
}
public client_putinserver(id)
{
	if(!is_user_bot(id))
		Load(id);
}
public client_disconnect(id)
{
	if(!is_user_bot(id))
	{
		Save(id);
		Oles[id] = 0;
	}
}
Load(id)
{
	new Nev[32]; get_user_name(id, Nev, sizeof(Nev)-1);
	
	new Mentes[512];
	format(Mentes, charsmax(Mentes), "%i", Oles[id]);
	
	if(fvault_get_data(File, Nev, Mentes, charsmax(Mentes)))
	{
		new Ol[32];
		parse(Mentes, Ol, 31);
		
		Oles[id] = str_to_num(Ol);
	}
}
Save(id)
{
	new Nev[32]; get_user_name(id, Nev, sizeof(Nev)-1);
	
	new Mentes[512];
	format(Mentes, charsmax(Mentes), "%i", Oles[id]);
	
	fvault_set_data(File, Nev, Mentes);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
