/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fvault>
 
#define PLUGIN "PontRendszer"
#define VERSION "1.0"
#define AUTHOR "mforce"
 
#define PREFIX "PontRendszer"
 
new const g_szVault1[] = "KES_MENU"
new fegyo[33], pont[33];
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
 
	register_clcmd("say_team /pontok", "ShowMenu");
	register_clcmd("say /pontok", "ShowMenu");
	register_clcmd("say_team /menu", "ShowMenu");
	register_clcmd("say /menu", "ShowMenu");
 
	register_event("CurWeapon", "fegyver_valtas", "be", "1=1");
	register_event("DeathMsg", "halal", "a");
 
}
public plugin_precache() {
	precache_model("models/pontok/elso/v_knife.mdl");
	precache_model("models/pontok/masodik/v_knife.mdl");
	precache_model("models/pontok/harmadik/v_knife.mdl");
}
public fegyver_valtas(id) {
	new fegyver = get_user_weapon(id)
 
	if(fegyo[id] == 1 && fegyver == CSW_KNIFE)
	{
		set_pev(id, pev_viewmodel2, "models/pontok/elso/v_knife.mdl")
	}
	else if(fegyo[id] == 2 && fegyver == CSW_KNIFE)
	{
		set_pev(id, pev_viewmodel2, "models/pontok/masodik/v_knife.mdl")
	}
	else if(fegyo[id] == 3 && fegyver == CSW_KNIFE)
	{
		set_pev(id, pev_viewmodel2, "models/pontok/harmadik/v_knife.mdl")
	}
}
public halal() {
	new killer = read_data(1)
	new victim = read_data(2)
	new kteam = get_user_team(killer)
	new vteam = get_user_team(victim)
 
	if(killer != victim && kteam != vteam) {
		pont[killer] ++
		ChatColor(killer, "^4[%s]^1 Kaptál^3 1 pontot^1 az ölésért!", PREFIX)
	}
}
public ShowMenu(id) {
	new menucim[128], menukapcs[4][128];
	formatex(menucim, charsmax(menucim), "\r[%s] \wKés menü ^nPontok: \y%i", PREFIX, pont[id]);
	formatex(menukapcs[0], charsmax(menukapcs[]), "%s", fegyo[id] == 0 ? "Alap kés \y|AKTÍV|":"Alap kés");
	formatex(menukapcs[1], charsmax(menukapcs[]), "%s", fegyo[id] == 1 ? "Első kés \y|AKTÍV|":"Első kés \r|100| Pont");
	formatex(menukapcs[2], charsmax(menukapcs[]), "%s", fegyo[id] == 2 ? "Második kés \y|AKTÍV|":"Második kés \r|200| Pont");
	formatex(menukapcs[3], charsmax(menukapcs[]), "%s", fegyo[id] == 3 ? "Harmadik kés \y|AKTÍV|":"Harmadik kés \r|300| Pont");
 
	new menu = menu_create( menucim, "mh_MyMenu");
	menu_additem(menu, menukapcs[0], "0", 0);
	menu_additem(menu, menukapcs[1], "1", 0);
	menu_additem(menu, menukapcs[2], "2", 0);
	menu_additem(menu, menukapcs[3], "3", 0);
 
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_setprop(menu, MPROP_BACKNAME, "Vissza");
	menu_setprop(menu, MPROP_NEXTNAME, "Előre");
	menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
 
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public mh_MyMenu(id, menu, item) {
	if(item == MENU_EXIT)
	{
		menu_cancel(id);
		return PLUGIN_HANDLED;
	}
 
	new command[6], name[64], access, callback;
 
	menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
 
	switch(item)
	{
		case 0: { 
			fegyo[id] = 0; 
			ChatColor(id, "^4[%s]^1 Megkaptad az^3 ALAP^1 kést!", PREFIX)
		}
		case 1: { 
			if(pont[id] >= 100)
			{
				fegyo[id] = 1; 
				// ha le akarod vonni azt a 100pontot, akkor ide pont[id] -= 100;
				ChatColor(id, "^4[%s]^1 Megkaptad az^3 ELSŐ^1 kést!", PREFIX)
			}
			else
			{
				ChatColor(id, "^4[%s]^1 Sajnos nincs elég pontod...", PREFIX)
			}
		}
		case 2: { 
			if(pont[id] >= 200)
			{
				fegyo[id] = 2;
				ChatColor(id, "^4[%s]^1 Megkaptad a^3 MÁSODIK^1 kést!", PREFIX)
			}
			else
			{
				ChatColor(id, "^4[%s]^1 Sajnos nincs elég pontod...", PREFIX)
			}
		}
		case 3: { 
			if(pont[id] >= 300)
			{
				fegyo[id] = 3; 
				ChatColor(id, "^4[%s]^1 Megkaptad a^3 HARMADIK^1 kést!", PREFIX)
			}
			else
			{
				ChatColor(id, "^4[%s]^1 Sajnos nincs elég pontod...", PREFIX)
			}
		}
	}
	menu_destroy(menu);
 
	return PLUGIN_HANDLED;
}
public client_authorized(id) Load(id);
 
public client_disconnect(id) Save(id);
 
public Save(id)
{
        if (!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id))
                return;
 
        new SteamID[35];
        get_user_authid(id,SteamID,34);
 
        if(contain(SteamID,"_ID_LAN") != -1 || contain(SteamID,"STEAM_0:4") != -1 || contain(SteamID,"VALVE") != -1 || equali(SteamID,"STEAM_666:88:666"))
                get_user_ip(id,SteamID,34,1);
 
        new szData[40];
        formatex(szData,charsmax(szData),"%i %i", pont[id], fegyo[id]);
 
        fvault_set_data(g_szVault1,SteamID,szData);
}
 
public Load(id)
{
        if (!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id))
                return;
 
        new SteamID[35];
        get_user_authid(id, SteamID, 34);
 
        if(contain(SteamID,"_ID_LAN") != -1 || contain(SteamID,"STEAM_0:4") != -1 || contain(SteamID,"VALVE") != -1 || equali(SteamID,"STEAM_666:88:666"))
                get_user_ip(id,SteamID,34,1);
 
        new szData[40],pontok[8],fegyok[8];
        if(fvault_get_data(g_szVault1,SteamID,szData,charsmax(szData)))
        {
                parse(szData,pontok,charsmax(pontok),fegyok,charsmax(fegyok));
 
                pont[id] = str_to_num(pontok);
                fegyo[id] = str_to_num(fegyok);
        }
 
        else
        {
                pont[id] = 0;
                fegyo[id] = 0;
        }
}
stock ChatColor(id, const szMessage[], any:...) {
        static szMsg[190], IdMsg; vformat(szMsg, charsmax(szMsg), szMessage, 3);
        if(!IdMsg) IdMsg = get_user_msgid("SayText");
        message_begin(MSG_ONE, IdMsg, .player = id);
        write_byte(id);
        write_string(szMsg);
        message_end();
}