#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
 
#define PLUGIN "Fegyver Skin Menu"
#define VERSION "1.0"
#define AUTHOR "RaZzoR"
 
new weapon_select[33]
 
new const menu_item_names[][][] = {
	{ "Alap Csomag",   "0",   ""             },
	{ "Arany Csomag",  "6",   "gold_pack"    }, 
	{ "Ezüst Csomag",  "8",   "silver_pack"  },
	{ "Bronz Csomag",  "10",  "bronze_pack"  }
}
 
new const v_models[][] = {
	"v_ak47.mdl",                  
	"v_aug.mdl",                    
	"v_awp.mdl",    
	"v_c4.mdl",
	"v_deagle.mdl",
	"v_elite.mdl",
	"v_famas.mdl",
	"v_fiveseven.mdl",
	"v_flashbang.mdl",
	"v_g3sg1.mdl",
	"v_galil.mdl",
	"v_glock18.mdl",
	"v_hegrenade.mdl",
	"v_knife.mdl",
	"v_m3.mdl",
	"v_m4a1.mdl",
	"v_m249.mdl",
	"v_mac10.mdl",
	"v_mp5.mdl",
	"v_p90.mdl",
	"v_p228.mdl",
	"v_scout.mdl",
	"v_sg550.mdl",
	"v_sg552.mdl",
	"v_smokegrenade.mdl",
	"v_tmp.mdl",
	"v_usp.mdl",
	"v_ump45.mdl",
	"v_xm1014.mdl"
} 
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
 
	register_clcmd("say /menu", "clcmd_menu")
	register_event("CurWeapon","Weapon_Hook","be","1=1")
}
 
public plugin_precache() {
	for(new i = 0; i < sizeof(v_models); i++) {
		for(new j = 1; j <= sizeof(menu_item_names); j++) {
			new new_v[256]
			format(new_v, sizeof(new_v), "models/%s/%s", menu_item_names[j][2], v_models[i])
 
			precache_model(new_v)
		}
	}
}
 
public client_disconnect(id) 
	weapon_select[id] = 0
 
public Weapon_Hook(id) {
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE
 
	static model[32]
	pev(id, pev_viewmodel2, model, 31)
 
	for(new i = 0; i < sizeof(v_models); i++) {
		new old_v[256]
		format(old_v, sizeof(old_v), "models/%s", v_models[i])
 
		if(equali(model, old_v)) {
			new new_v[256]
 
			if(weapon_select[id] > 0) 
				format(new_v, sizeof(new_v), "models/%s/%s", menu_item_names[weapon_select[id]][2], v_models[i])
			else
				format(new_v, sizeof(new_v), "models/%s", v_models[i])
 
			set_pev(id, pev_viewmodel2, new_v)
			break
		}
	}
 
	return PLUGIN_CONTINUE
}
 
public clcmd_menu(id) {
	new menu_line[64], menu_newline[64], i_data[64]
	format(menu_line, charsmax(menu_line), "\wFegyver Skin Menü^nÖléseid: %i", get_user_frags(id))
 
	new menu = menu_create(menu_line, "clcmd_menu_handler")
 
	for(new  i = 0; i < sizeof(menu_item_names); i++) {
		new convert_num = str_to_num(menu_item_names[i][1])
		num_to_str(i, i_data, sizeof(i_data))
 
		if(get_user_frags(id) < convert_num)
			format(menu_newline, charsmax(menu_newline), "%s (%i Ölés Kell)", menu_item_names[i][0], convert_num)
		else
			format(menu_newline, charsmax(menu_newline), "%s (Használható)", menu_item_names[i][0])
		menu_additem(menu, menu_newline, i_data, 0)
	}
 
	menu_display(id, menu, 0)
 
	return PLUGIN_HANDLED
}
 
public clcmd_menu_handler(id, menu, item) {
	if(item == MENU_EXIT) {
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
 
	new data[64], szName[64]
	new access, callback
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
 
	new key = str_to_num(data)
	new convert_num = str_to_num(menu_item_names[key][1])
 
	if(get_user_frags(id) < convert_num) {
		client_print(id, print_chat, "Ezt a csomagot (%s) nem használhatod, mert nincs ennyi ölésed: %i", menu_item_names[key][0], convert_num)
		return PLUGIN_HANDLED
	}
 
	else {
		weapon_select[id] = key
		client_print(id, print_chat, "Te ezt a csomagot választottad: %s", menu_item_names[key][0])
		Weapon_Hook(id)
	}
 
	return PLUGIN_CONTINUE
}