#include <amxmodx>
#include <fakemeta>
#include <ColorChat>

#define PLUG_TAG "Czapki"

new g_HatEnt[33], g_NazwaAktualnej[33][128];
new const sciezka[] = "models/czapki_ultr2/xultra.mdl"

public plugin_init()
{
	register_plugin("Czapki", "0.1", "SgtBane, K!113r");
	register_clcmd("say /czapki", "cmd_czapki");
	register_clcmd("say /hats", "cmd_czapki");
}
public plugin_precache()
{
	precache_model(sciezka);
}
public client_disconnect(id)
{
	Set_Hat(id, 0, id, "Brak");
}
public cmd_czapki(id)
{
	new tytul[128], menu;
	if(!strlen(g_NazwaAktualnej[id]))
	formatex(tytul, 127, "Twoja aktualna czapka to: Brak^n^nWybierz czapke:");
	else
	formatex(tytul, 127, "Twoja aktualna czapka to: \r%s^n^n\yWybierz czapke:", g_NazwaAktualnej[id]);
	menu = menu_create(tytul, "menu_handler");
	menu_additem(menu, "\yBrak");
	menu_additem(menu, "Anonymous");
	menu_additem(menu, "Bomba");
	menu_additem(menu, "Czarwony Sonic");
	menu_additem(menu, "Lord Vader");
	menu_additem(menu, "Deadmou5");
	menu_additem(menu, "Pinky");
	menu_additem(menu, "Smok");
	menu_additem(menu, "Stalker");
	menu_additem(menu, "Rycerz");
	menu_additem(menu, "Fasolka");
	menu_additem(menu, "Basebolista");
	menu_additem(menu, "Simson");
	menu_additem(menu, "Iron-Man");
	menu_additem(menu, "Kot");
	menu_additem(menu, "Krokodyl");
	menu_additem(menu, "Dobra Krowa");
	menu_additem(menu, "Zla Krowa");
	menu_additem(menu, "Penis");
	menu_additem(menu, "Minecraft");
	menu_additem(menu, "Myszka");
	menu_additem(menu, "Niebieski Sonic");
	menu_additem(menu, "Marsjanin");
	menu_additem(menu, "Kot na chilloucie");
	menu_additem(menu, "Zdziwiony Bob");
	menu_additem(menu, "Kaptur");
	menu_additem(menu, "Tajemniczy Snajper");
	menu_additem(menu, "Zimowa Niebieska");
	menu_additem(menu, "Zimowa Czerwona");
	menu_additem(menu, "Sluchawki");
	menu_additem(menu, "Spartan");
	menu_additem(menu, "Sukienka Cygana");
	menu_additem(menu, "Urodzinowa");
	menu_additem(menu, "Ziemniak");
        menu_additem(menu, "Troll Face");
        menu_additem(menu, "Afro");
	menu_additem(menu, "Lolface");
	menu_additem(menu, "Czarodziej");
	menu_additem(menu, "Elf");
	menu_additem(menu, "Zaawansowany Bejsbolista");
	menu_additem(menu, "Hello-Kitty");
        menu_additem(menu, "Rastaman");
	menu_display(id, menu);
}
public menu_handler(id, menu, item)
{
	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	if(item == MENU_EXIT)
	return PLUGIN_CONTINUE;
	Set_Hat(id, item, id, iName);
	formatex(g_NazwaAktualnej[id], 127, "%s", iName);
	return PLUGIN_CONTINUE;
}
public Set_Hat(player, imodelnum, targeter, const nazwa[])
{
	new name[32];
	get_user_name(player, name, 31);
	if(imodelnum == 0)
	{
		if(g_HatEnt[player] > 0)
		{
			if(pev_valid(g_HatEnt[player]))
			{
				engfunc(EngFunc_RemoveEntity,g_HatEnt[player]);
				g_HatEnt[player] = -1;
			}
		}
		if(targeter != 0)
		ColorChat(targeter, NORMAL, "[^x04%s^x01] Czapka zostala ci usunieta",PLUG_TAG);
	}
	else
	{
		if(g_HatEnt[player] < 1)
		{
			g_HatEnt[player] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
			if(g_HatEnt[player] > 0)
			{
				set_pev(g_HatEnt[player], pev_movetype, MOVETYPE_FOLLOW);
				set_pev(g_HatEnt[player], pev_aiment, player);
				set_pev(g_HatEnt[player], pev_rendermode, 	kRenderNormal);
				engfunc(EngFunc_SetModel, g_HatEnt[player], sciezka);
				set_pev(g_HatEnt[player], pev_body, imodelnum);
			}
		}
		else
		set_pev(g_HatEnt[player], pev_body, imodelnum);
		if (targeter != 0)
		ColorChat(targeter, NORMAL, "[^x04%s^x01] Ustawiles sobie czapke: ^x04%s",PLUG_TAG,nazwa);
	}
}