#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
 
const NETOLTS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
 
new const g_MaxAmmo[] = 
{
0,
52, //CSW_P228
0, 
90, //CSW_SCOUT
0,  //CSW_HEGRENADE
32,  //CSW_XM1014
0,  //CSW_C4
100,//CSW_MAC10
90, //CSW_AUG
0,  //CSW_SMOKEGRENADE
120,//CSW_ELITE
100,//CSW_FIVESEVEN
100,//CSW_UMP45
90, //CSW_SG550
90, //CSW_GALIL
90, //CSW_FAMAS
100,//CSW_USP
120,//CSW_GLOCK18
30, //CSW_AWP
120,//CSW_MP5NAVY
200,//CSW_M249
32,  //CSW_M3
90, //CSW_M4A1
120,//CSW_TMP
90, //CSW_G3SG1
0,  //CSW_FLASHBANG
35,  //CSW_DEAGLE
90, //CSW_SG552
90, //CSW_AK47
0,  //CSW_KNIFE
100//CSW_P90
}
new orokloszer
 
public plugin_init()
{
register_plugin("FegyverMenu", "1.0", "RsN");
RegisterHam(Ham_Spawn, "player", "FegyverMenu",1)
register_event("CurWeapon" , "Event_CurWeapon" , "be" , "1=1" );
orokloszer = register_cvar("fm_orokloszer","1")
}
public Event_CurWeapon(id)
{
if(get_pcvar_num(orokloszer) == 1)
{
	if(is_user_alive(id))
	{
		new fegyver = read_data(2)
		if( !( NETOLTS & (1<<fegyver) ) ) 
		{
			cs_set_user_bpammo(id, fegyver, g_MaxAmmo[fegyver]);
		}
	}
}
}
public FegyverMenu(id)
{
new CsTeams:userTeam = cs_get_user_team(id)
if(user_has_weapon(id, CSW_C4))
{
	strip_user_weapons(id)
	ham_strip_weapon(id,"weapon_glock18")
	give_item(id, "weapon_knife")
	give_item(id, "weapon_c4")
	cs_set_user_plant(id,1,1)
	new menu = menu_create("\yFegyverMenĂĽ", "FegyverMenu_mh");
	menu_additem(menu, "\yM4a1", "0", 0); // case 0
	menu_additem(menu, "\yAk47", "1", 0); // case 1
	menu_additem(menu, "\yAWP", "2", 0); // case 2
	menu_additem(menu, "\yFamas", "3", 0); // case 3
	menu_additem(menu, "\yM249", "4", 0); // case 4
	menu_additem(menu, "\yShotgun M3", "5", 0); // case 5
	menu_additem(menu, "\yShotgun Xm1014", "6", 0); // case 6
	menu_additem(menu, "\yScout", "7", 0); // case 7
	menu_additem(menu, "\yMp5navy", "8", 0); // case 8
	menu_additem(menu, "\yGalil", "9", 0); // case 9
	menu_additem(menu, "\yAug", "10", 0); // case 10
	menu_additem(menu, "\ySG552", "11", 0); // case 11
	menu_additem(menu, "\yP90", "12", 0); // case 12
	menu_additem(menu, "\yTMP", "13", 0); // case 13
	menu_additem(menu, "\yUMP45", "14", 0); // case 14
	menu_additem(menu, "\yMac10", "15", 0); // case 15
	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");
	menu_display(id, menu, 0);	
}
else if (userTeam == CS_TEAM_CT)
{
	strip_user_weapons(id)
	give_item(id, "weapon_knife")
	ham_strip_weapon(id,"weapon_glock18")
	new menu = menu_create("\yFegyverMenĂĽ", "FegyverMenu_mh");
	menu_additem(menu, "\yM4a1", "0", 0); // case 0
	menu_additem(menu, "\yAk47", "1", 0); // case 1
	menu_additem(menu, "\yAWP", "2", 0); // case 2
	menu_additem(menu, "\yFamas", "3", 0); // case 3
	menu_additem(menu, "\yM249", "4", 0); // case 4
	menu_additem(menu, "\yShotgun M3", "5", 0); // case 5
	menu_additem(menu, "\yShotgun Xm1014", "6", 0); // case 6
	menu_additem(menu, "\yScout", "7", 0); // case 7
	menu_additem(menu, "\yMp5navy", "8", 0); // case 8
	menu_additem(menu, "\yGalil", "9", 0); // case 9
	menu_additem(menu, "\yAug", "10", 0); // case 10
	menu_additem(menu, "\ySG552", "11", 0); // case 11
	menu_additem(menu, "\yP90", "12", 0); // case 12
	menu_additem(menu, "\yTMP", "13", 0); // case 13
	menu_additem(menu, "\yUMP45", "14", 0); // case 14
	menu_additem(menu, "\yMac10", "15", 0); // case 15
	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");
	menu_display(id, menu, 0);	
}
else if (userTeam == CS_TEAM_T)
{
	strip_user_weapons(id)
	ham_strip_weapon(id,"weapon_usp")
	give_item(id, "weapon_knife")
	give_item(id, "item_thighpack");
	new menu = menu_create("\yFegyverMenĂĽ", "FegyverMenu_mh");
	menu_additem(menu, "\yM4a1", "0", 0); // case 0
	menu_additem(menu, "\yAk47", "1", 0); // case 1
	menu_additem(menu, "\yAWP", "2", 0); // case 2
	menu_additem(menu, "\yFamas", "3", 0); // case 3
	menu_additem(menu, "\yM249", "4", 0); // case 4
	menu_additem(menu, "\yShotgun M3", "5", 0); // case 5
	menu_additem(menu, "\yShotgun Xm1014", "6", 0); // case 6
	menu_additem(menu, "\yScout", "7", 0); // case 7
	menu_additem(menu, "\yMp5navy", "8", 0); // case 8
	menu_additem(menu, "\yGalil", "9", 0); // case 9
	menu_additem(menu, "\yAug", "10", 0); // case 10
	menu_additem(menu, "\ySG552", "11", 0); // case 11
	menu_additem(menu, "\yP90", "12", 0); // case 12
	menu_additem(menu, "\yTMP", "13", 0); // case 13
	menu_additem(menu, "\yUMP45", "14", 0); // case 14
	menu_additem(menu, "\yMac10", "15", 0); // case 15
	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");
	menu_display(id, menu, 0);	
}
}
public FegyverMenu_mh(id, menu, item)
{
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: 
	{
		give_item(id, "weapon_m4a1");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "weapon_knife"); 
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 1:
	{
		give_item(id, "weapon_ak47");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 2: 
	{
		give_item(id, "weapon_awp");
		give_item(id, "ammo_338magnum");
		give_item(id, "ammo_338magnum");      
		give_item(id, "ammo_338magnum");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 3: 
	{
		give_item(id, "weapon_famas");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 4: 
	{
		give_item(id, "weapon_m249");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 5: 
	{
		give_item(id, "weapon_m3");
		give_item(id, "ammo_buckshot");
		give_item(id, "ammo_buckshot");
		give_item(id, "ammo_buckshot");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 6: 
	{
		give_item(id, "weapon_xm1014");
		give_item(id, "ammo_buckshot");
		give_item(id, "ammo_buckshot");
		give_item(id, "ammo_buckshot");
		give_item(id, "ammo_buckshot");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 7: 
	{
		give_item(id, "weapon_scout");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "ammo_762nato");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 8: 
	{
		give_item(id, "weapon_mp5navy");
		give_item(id, "ammo_9mm");
		give_item(id, "ammo_9mm");
		give_item(id, "ammo_9mm");
		give_item(id, "ammo_9mm");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 9: 
	{
		give_item(id, "weapon_galil");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 10: 
	{
		give_item(id, "weapon_aug");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 11:
	{
		give_item(id, "weapon_sg552");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "ammo_556nato");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 12: 
	{
		give_item(id, "weapon_p90");
		give_item(id, "ammo_57mm");
		give_item(id, "ammo_57mm");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 13: 
	{
		give_item(id, "weapon_tmp");
		give_item(id, "ammo_9mm");
		give_item(id, "ammo_9mm");
		give_item(id, "ammo_9mm");
		give_item(id, "ammo_9mm");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 14: 
	{
		give_item(id, "weapon_ump45");
		give_item(id, "ammo_45acp");
		give_item(id, "ammo_45acp");
		give_item(id, "ammo_45acp");
		give_item(id, "ammo_45acp");
		give_item(id, "weapon_knife");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
	case 15: 
	{
		give_item(id, "weapon_mac10");
		give_item(id, "ammo_45acp");
		give_item(id, "ammo_45acp");
		give_item(id, "ammo_45acp");
		give_item(id, "ammo_45acp");
		give_item(id, "item_assaultsuit")
		PistolMenu(id);
	}
}
 
menu_destroy(menu);
 
return PLUGIN_HANDLED;
}
public PistolMenu(id)
{
new menu = menu_create("\yPisztolyMenĂĽ", "PistolMenu_mh");
 
menu_additem(menu, "\yDeagle", "", 0); // case 0
menu_additem(menu, "\yUsp", "", 0); // case 1
menu_additem(menu, "\yGlock18", "", 0); // case 2
menu_additem(menu, "\yP228", "", 0); // case 3
menu_additem(menu, "\yFiveseven", "", 0); // case 4
menu_additem(menu, "\yElite", "", 0); // case 5
 
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");
 
menu_display(id, menu, 0);
 
return PLUGIN_HANDLED;
}
 
public PistolMenu_mh(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: 
	{
		give_item(id, "weapon_deagle");
		give_item(id,"ammo_50ae");
		give_item(id,"ammo_50ae");
		give_item(id,"ammo_50ae");
		give_item(id,"ammo_50ae");
		give_item(id,"ammo_50ae");
		give_item(id, "weapon_hegrenade");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_smokegrenade");
		cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
	}
	case 1:
	{
		give_item(id, "weapon_usp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id,"ammo_45acp");
		give_item(id, "weapon_hegrenade");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_smokegrenade");
		cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
	}
	case 2: 
	{
		give_item(id, "weapon_glock18");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id, "weapon_hegrenade");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_smokegrenade");
		cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
	}
	case 3: 
	{
		give_item(id, "weapon_p228");
		give_item(id,"ammo_357sig");
		give_item(id,"ammo_357sig");
		give_item(id,"ammo_357sig");
		give_item(id,"ammo_357sig");
		give_item(id, "weapon_hegrenade");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_smokegrenade");
		cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
	}
	case 4: 
	{
		give_item(id, "weapon_fiveseven");
		give_item(id,"ammo_57mm");
		give_item(id,"ammo_57mm");
		give_item(id,"ammo_57mm");
		give_item(id,"ammo_57mm");
		give_item(id,"ammo_57mm");
		give_item(id, "weapon_hegrenade");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_smokegrenade");
		cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
	}
	case 5: 
	{
		give_item(id, "weapon_elite");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id,"ammo_9mm");
		give_item(id, "weapon_hegrenade");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_flashbang");
		give_item(id, "weapon_smokegrenade");
		cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
	}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
stock ham_give_weapon(id,weapon[])
{
	if(!equal(weapon,"weapon_",7)) return 0;
 
	new wEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,weapon));
	if(!pev_valid(wEnt)) return 0;
 
	set_pev(wEnt,pev_spawnflags,SF_NORESPAWN);
	dllfunc(DLLFunc_Spawn,wEnt);
 
	if(!ExecuteHamB(Ham_AddPlayerItem,id,wEnt))
	{
		if(pev_valid(wEnt)) set_pev(wEnt,pev_flags,pev(wEnt,pev_flags) | FL_KILLME);
		return 0;
	}
	ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id)
	return 1;
}
stock ham_strip_weapon(id,weapon[])
{
	if(!equal(weapon,"weapon_",7)) return 0;
 
	new wId = get_weaponid(weapon);
	if(!wId) return 0;
 
	new wEnt;
	while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
	if(!wEnt) return 0;
 
	if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
 
	if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
	ExecuteHamB(Ham_Item_Kill,wEnt);
 
	set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
	return 1;
}
 
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, "á", "á")
        replace_all(msg, 190, "é", "Ă©")
        replace_all(msg, 190, "í", "Ă")
        replace_all(msg, 190, "ó", "Ăł")
        replace_all(msg, 190, "ö", "ö")
        replace_all(msg, 190, "ő", "Ĺ‘")
        replace_all(msg, 190, "ú", "Ăş")
        replace_all(msg, 190, "ü", "ĂĽ")
        replace_all(msg, 190, "ű", "ű")
        replace_all(msg, 190, "Á", "Ă")
        replace_all(msg, 190, "É", "É")
        replace_all(msg, 190, "Í", "ĂŤ")
        replace_all(msg, 190, "Ó", "Ă“")
        replace_all(msg, 190, "Ö", "Ă–")
        replace_all(msg, 190, "Ő", "Ĺ")
        replace_all(msg, 190, "Ú", "Ăš")
        replace_all(msg, 190, "Ü", "Ăś")
        replace_all(msg, 190, "Ű", "Ű")       
 
        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
}