/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>
#include <hamsandwich>
#include <colorchat>
 
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "HunGamer"
 
new g_pontok[33];
new bool:g_csavar[33];
new bool:g_baseball[33];
new bool:g_gumibot[33];
new shop1;
new shop2;
new shop3;
new shop4;
new syncObjp;
new bool:g_hp;
 
new VIEW_MODELCSAVAR[]       = "models/v_csavarhuzo.mdl";
new PLAYER_MODELCSAVAR[]    = "models/p_csavarhuzo.mdl";
new VIEW_MODELBASEBALL[]       = "models/v_baseballuto.mdl";
new PLAYER_MODELBASEBALL[]    = "models/p_baseballuto.mdl";
new VIEW_MODELGUMIBOT[]       = "models/v_gumibot.mdl";
new PLAYER_MODELGUMIBOT[]    = "models/p_gumibot.mdl";
 
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
 
	register_event("DeathMsg", "Death", "a");
	register_event("CurWeapon",    "Change_Weapon", "be", "1=1");
	register_logevent("Event_Roundend", 2, "1=Round_End")
	register_logevent("Start", 2, "1=Round_Start")
 
	register_clcmd("say /bolt", "boltmenu");
 
	RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage", 0);
 
	shop1 = register_cvar("shop_1", "15");
	shop2 = register_cvar("shop_2", "10");
	shop3 = register_cvar("shop_3", "20");
	shop4 = register_cvar("shop_4", "5");
	syncObjp = CreateHudSyncObj();
}
public plugin_precache()
{
	precache_model(VIEW_MODELCSAVAR);
	precache_model(PLAYER_MODELCSAVAR);
	precache_model(VIEW_MODELBASEBALL);
	precache_model(PLAYER_MODELBASEBALL);
	precache_model(VIEW_MODELGUMIBOT);
	precache_model(PLAYER_MODELGUMIBOT);
}
public Start(id)
{
	g_hp = true;
}
public Event_Roundend()
{
	new players[32], pnum, tempid;
	get_players(players, pnum, "c");
 
	for(new i; i<pnum; i++)
	{
		tempid = players[i];
		g_csavar[tempid] = false;
		g_baseball[tempid] = false;
		g_gumibot[tempid] = false;
	}
}
public Death()
{
	new id = read_data(2);
	new attacker = read_data(1);
 
	if(!is_user_alive(attacker))
		return PLUGIN_CONTINUE;
 
	if(get_user_team(id) != get_user_team(attacker))
	{
		g_pontok[attacker]+=5;
	}
 
	return PLUGIN_CONTINUE;
}
public boltmenu(id)
{
	if(get_user_team(id) == 1)
	{
		if(is_user_alive(id))
		{
			static opcion[64];
 
			formatex(opcion, charsmax(opcion),"\y[JailBreak Bolt] [Beta] v0.1");
			new iMenu = menu_create(opcion, "boltmenuh");
 
			formatex(opcion, charsmax(opcion),"\w+50 HP(1 korben 1x) \r%d pont", get_pcvar_num(shop4));
			formatex(opcion, charsmax(opcion),"\wBaseballuto(75 Sebzes) \r%d pont", get_pcvar_num(shop2));
			formatex(opcion, charsmax(opcion),"\wCsavarhuzo(100 Sebzes) \r%d pont", get_pcvar_num(shop1));
			menu_additem(iMenu, opcion, "3");
 
			menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL);
			menu_display(id, iMenu, 0);
		}
		else
		{
			ColorChat(id, GREEN, "[JailBreak Bolt] [Beta] Csak elok hasznalhatjak a boltot");
		}
	}
	else if(get_user_team(id) == 2)
	{
		if(is_user_alive(id))
		{
			static opcion[64];
 
			formatex(opcion, charsmax(opcion),"\y[JailBreak Bolt] [Beta] v0.1");
			new iMenu2 = menu_create(opcion, "boltmenuh2");
 
			formatex(opcion, charsmax(opcion),"\w+50 HP(1 korben 1x) \r%d pont", get_pcvar_num(shop4));
			formatex(opcion, charsmax(opcion),"\wGumibot(100 Sebzes) \r%d pont", get_pcvar_num(shop3));
			menu_additem(iMenu2, opcion, "2");
 
			menu_setprop(iMenu2, MPROP_EXIT, MEXIT_ALL);
			menu_display(id, iMenu2, 0);
		}
		else
		{
			ColorChat(id, GREEN, "[JailBreak Bolt] [Beta] Csak elok hasznalhatjak a boltot");
		}	
	}
 
	return PLUGIN_HANDLED;
}
 
public boltmenuh(id, menu, item)
{
 
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
 
	new Data[6], Name[64];
	new Access, Callback;
 
	menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback);
 
	new elo    = is_user_alive(id);
	new item_ar1    = get_pcvar_num(shop1);
	new item_ar2    = get_pcvar_num(shop2);
	new item_ar4    = get_pcvar_num(shop4);
	new health = get_user_health(id)
 
	new Key = str_to_num(Data);
 
	switch (Key)
	{
		case 1:
		{
			if (g_pontok[id]>= item_ar4 && elo)
			{
				if(g_hp)
				{
					g_pontok[id] -= item_ar4;
					set_user_health(id, health+50)
					g_hp = false;
				}
				else
				{
					ColorChat(id, GREEN, "[JailBreak Bolt] [Beta] Mar vettel 1x HP -t!");
				}
			}
		}
		case 2:
		{
			if (g_pontok[id]>= item_ar2 && elo)
			{
				g_pontok[id] -= item_ar2;
				g_baseball[id] = true;
				entity_set_string(id, EV_SZ_viewmodel, VIEW_MODELBASEBALL);
				entity_set_string(id, EV_SZ_weaponmodel, PLAYER_MODELBASEBALL);
			}
		}
		case 3:
		{
			if (g_pontok[id]>= item_ar1 && elo)
			{
				g_pontok[id] -= item_ar1;
				g_csavar[id] = true;
				entity_set_string(id, EV_SZ_viewmodel, VIEW_MODELCSAVAR);
				entity_set_string(id, EV_SZ_weaponmodel, PLAYER_MODELCSAVAR);
			}
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public boltmenuh2(id, menu, item)
{
 
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
 
	new Data[6], Name[64];
	new Access, Callback;
 
	menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback);
 
	new elo    = is_user_alive(id);
	new item_ar3    = get_pcvar_num(shop3);
	new item_ar4    = get_pcvar_num(shop4);
	new health = get_user_health(id)
 
	new Key = str_to_num(Data);
 
	switch (Key)
	{
		case 1:
		{
			if (g_pontok[id]>= item_ar4 && elo)
			{
				if(g_hp)
				{
					g_pontok[id] -= item_ar4;
					set_user_health(id, health+50)
					g_hp = false;
				}
				else
				{
					ColorChat(id, GREEN, "[JailBreak Bolt] [Beta] Mar vettel 1x HP -t!");
				}
			}
		}
		case 2:
		{
			if (g_pontok[id]>= item_ar3 && elo)
			{
				g_pontok[id] -= item_ar3;
				g_gumibot[id] = true;
				entity_set_string(id, EV_SZ_viewmodel, VIEW_MODELGUMIBOT);
				entity_set_string(id, EV_SZ_weaponmodel, PLAYER_MODELGUMIBOT);
			}
		}
	}
 
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public Change_Weapon(id)
{
	new weaponID = read_data(2);
 
	if(get_user_team(id) == 1)
	{
		if(weaponID == CSW_KNIFE && g_csavar[id])
		{
			entity_set_string(id, EV_SZ_viewmodel, VIEW_MODELCSAVAR);
			entity_set_string(id, EV_SZ_weaponmodel, PLAYER_MODELCSAVAR);
		}
		else if(weaponID == CSW_KNIFE && g_baseball[id])
		{
			entity_set_string(id, EV_SZ_viewmodel, VIEW_MODELBASEBALL);
			entity_set_string(id, EV_SZ_weaponmodel, PLAYER_MODELBASEBALL);
		}
	}
	else if(get_user_team(id) == 2)
	{
		if(weaponID == CSW_KNIFE && g_gumibot[id])
		{
			entity_set_string(id, EV_SZ_viewmodel, VIEW_MODELGUMIBOT);
			entity_set_string(id, EV_SZ_weaponmodel, PLAYER_MODELGUMIBOT);
		}
	}
	return PLUGIN_CONTINUE;
}
public PlayerSpawn(id)
{
	if (is_user_alive(id))
	{
		boltmenu(id)
	}
}
public TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
{
	if(get_user_weapon(attacker) == CSW_KNIFE)   
	{
		if(get_user_team(attacker) == 1 && g_csavar[attacker])
		{
			SetHamParamFloat(4, 100.0);
		}
		else if(get_user_team(attacker) == 1 && g_baseball[attacker])
		{
			SetHamParamFloat(4, 75.0);
		}
		else if(get_user_team(attacker) == 2 && g_gumibot[attacker])
		{
			SetHamParamFloat(4, 100.0);
		}
	}
	return HAM_IGNORED;
}
public client_PreThink(id) 
{
	set_hudmessage(255, 255, 255, 0.9, 0.8, 0, 6.0, 4.5);
	ShowSyncHudMsg(id, syncObjp,"Pontjaid: %i", g_pontok[id]);
	return PLUGIN_CONTINUE;
}