#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#define is_valid_player(%1) (1 <= %1 <= 32)
new cvar_dmgmultiplier
new bool:g_HasAk[33]
new bool:g_HasM4[33]
new bool:g_HasDGL[33]
//const Wep_ak47 = ((1<<CSW_AK47))
//const Wep_m4a1 = ((1<<CSW_M4A1))
//const Wep_deagle = ((1<<CSW_DEAGLE))
#define FLAG ADMIN_KICK
public plugin_init()
{
	cvar_dmgmultiplier = register_cvar("goldenak_dmg_multiplier", "2")
	register_concmd("amx_paczkaAK","CmdGiveAk", ADMIN_KICK,"<nick or #userID>") 
	register_concmd("amx_paczkaM4","CmdGiveM4", ADMIN_KICK,"<nick or #userID>")	
	register_concmd("amx_paczkaDGL","CmdGiveDgl", ADMIN_KICK,"<nick or #userID>")	
	register_plugin("Golden Weaps", "1.0", "AlejandroSk")
	register_clcmd("paczkaAK", "CmdGiveVIPAk")
	register_clcmd("paczkaM4", "CmdGiveVIPM4")
	register_clcmd("paczkaDGL", "CmdGiveVIPDgl")
	register_event("DeathMsg", "Death", "a")
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	register_forward( FM_CmdStart, "fw_CmdStart" )
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)   
}
public client_connect(id)
{
	g_HasAk[id] = false
	g_HasM4[id] = false
	g_HasDGL[id] = false
}
public client_disconnect(id)
{
	g_HasAk[id] = false
	g_HasM4[id] = false
	g_HasDGL[id] = false
}
public Death()
{
	g_HasAk[read_data(2)] = false
	g_HasM4[read_data(2)] = false
	g_HasDGL[read_data(2)] = false
}
public fwHamPlayerSpawnPost(id)
{
	g_HasAk[id] = false
	g_HasM4[id] = false
	g_HasDGL[id] = false
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
	if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AK47 && g_HasAk[attacker] || is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker]|| is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_DEAGLE && g_HasDGL[attacker])
	{
		SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
	}
}
public CmdGiveVIPAk(id,level)
{
	if (is_user_connected(id) && get_user_flags(id, FLAG))
	{ 
		give_item(id, "weapon_ak47")
		give_item(id, "ammo_762nato")
		give_item(id, "ammo_762nato")
		give_item(id, "ammo_762nato")
		g_HasAk[id] = true
		client_print(id, print_center, "Otrzymales SUPER AK")
	}
}
public CmdGiveVIPM4(id,level)
{
	if (is_user_connected(id) && get_user_flags(id, FLAG))
	{ 
		give_item(id, "weapon_m4a1")
		give_item(id, "ammo_556nato")
		give_item(id, "ammo_556nato")
		give_item(id, "ammo_556nato")
		g_HasM4[id] = true
		client_print(id, print_center, "Otrzymales SUPER M4")
	}
}
public CmdGiveVIPDgl(id,level)
{
	if (is_user_connected(id) && get_user_flags(id, FLAG))
	{ 
		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, "ammo_50ae")
		give_item(id, "ammo_50ae")
		g_HasDGL[id] = true
		client_print(id, print_center, "Otrzymales SUPER DGLa")
	}
}
public CmdGiveAk(id,level,cid)
{
	if (is_user_connected(id) && !cmd_access(id,level,cid,2) && get_user_flags(id, FLAG))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player) 
		return PLUGIN_HANDLED;
	
	give_item(player, "weapon_ak47")
	give_item(player, "ammo_762nato")
	give_item(player, "ammo_762nato")
	give_item(player, "ammo_762nato")
	g_HasAk[player] = true
	
	return PLUGIN_HANDLED
}
public CmdGiveM4(id,level,cid)
{
	if (is_user_connected(id) && !cmd_access(id,level,cid,2) && get_user_flags(id, FLAG))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player) 
		return PLUGIN_HANDLED;
	
	give_item(player, "weapon_m4a1")
	give_item(player, "ammo_556nato")
	give_item(player, "ammo_556nato")
	give_item(player, "ammo_556nato")
	g_HasM4[player] = true
	
	return PLUGIN_HANDLED
}
public CmdGiveDgl(id,level,cid)
{
	if (is_user_connected(id) && !cmd_access(id,level,cid,2) && get_user_flags(id, FLAG))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);
	
	new player = cmd_target(id,arg,7);
	if (!player) 
		return PLUGIN_HANDLED;
	
	give_item(player, "weapon_deagle")
	give_item(player, "ammo_50ae")
	give_item(player, "ammo_50ae")
	give_item(player, "ammo_50ae")
	give_item(player, "ammo_50ae")
	give_item(player, "ammo_50ae")
	give_item(player, "ammo_50ae")
	give_item(player, "ammo_50ae")
	g_HasDGL[player] = true
	
	return PLUGIN_HANDLED
}