Page 1 of 1

[Rezolvat] Cerere plugin refill ammo

Posted: 09 Feb 2020, 13:37
by NemesisR3
Plugin Cerut: refill ammo on kill
Descriere (adica ce face el mai exact): reincarca automat arma unui vip (flag t) cand acesta face un kill
Serverul impune conditii strict HLDS/REHLDS?: rehlds
Ai cautat pluginul?(daca da, precizeaza cum): am gasit doar pentru jucatori, eu vreau doar pentru vipi
Necesita mod special?: csdm

Re: Cerere plugin refill ammo

Posted: 09 Feb 2020, 22:15
by levin

Code: Select all

#include <amxmodx>
#include <csdm>
#include <cstrike>
#include <fakemeta>

#define VIP_FLAG "t"
#define is_vip(%1)	(get_user_flags(%1)&read_flags(VIP_FLAG))

new const g_weapons[] =
{
	CSW_P228,
	CSW_SCOUT,
	CSW_XM1014,
	CSW_MAC10,
	CSW_AUG,
	CSW_ELITE,
	CSW_FIVESEVEN,
	CSW_UMP45,
	CSW_SG550,
	CSW_GALI,
	CSW_GALIL,
	CSW_FAMAS,
	CSW_USP,
	CSW_GLOCK18,
	CSW_AWP,
	CSW_MP5NAVY,
	CSW_M249,
	CSW_M3,
	CSW_M4A1,
	CSW_TMP,
	CSW_G3SG1,
	CSW_DEAGLE,
	CSW_SG552,
	CSW_AK47,
	CSW_P90
}

new const g_max_clip[] =
{
	13,
	10,
	7,
	30,
	30,
	30,
	20,
	25,
	30,
	35,
	35,
	25,
	12,
	20,
	10,
	30,
	100,
	8,
	30,
	30,
	20,
	7,
	30,
	30,
	50
}

new const g_other_weapons[] =
{
	CSW_KNIFE,
	CSW_HEGRENADE,
	CSW_C4
}

public plugin_init()
	register_plugin("CSDM Refill", "1.0", "Radiance")

public client_death(killer, victim, wpnindex, hitplace, TK)
{
	if (!csdm_get_ffa() && TK)
		return

	if(!is_vip(killer))	return

	for (new a = 0; a < sizeof (g_other_weapons); a++)
		if (wpnindex == g_other_weapons[a])
			return

	new weapon = fm_get_weapon_ent(killer, wpnindex)

	for (new a = 0; a < sizeof (g_weapons); a++)
		if (wpnindex == g_weapons[a])
		{
			new ammo = get_weapon_maxclip(wpnindex)

			if (ammo)
			{
				client_cmd(killer, "spk ^"items/9mmclip1.wav^"")
				cs_set_weapon_ammo(weapon, ammo)
			}
			return

		}
}

get_weapon_maxclip(wpnid = 0)
{
	for (new a = 0; a < sizeof (g_weapons); a++)
		if (wpnid == g_weapons[a])
			return g_max_clip[a]

	return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
	new name[32]

	if(wpnid)
		get_weaponname(wpnid, name, 31)

	if (!equal(name, "weapon_", 7))
		format(name, sizeof (name) - 1, "weapon_%s", name)

	return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
	new strtype[16] = "classname"
	new ent = id

	switch (jghgtype)
	{
		case 1: strtype = "target"
		case 2: strtype = "targetname"
	}

	while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
	{
	}

	return ent
}

Re: [Rezolvat] Cerere plugin refill ammo

Posted: 11 Feb 2020, 20:56
by NemesisR3
multumesc! merge bine