PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define VERSION "0.0.1"
#define EXTRAOFFSET_WEAPONS 4
#define m_iId 43
#define m_iClip 51
#define m_iClientClip 52
#define fm_cs_get_weapon_id(%1) get_pdata_int(%1, m_iId, EXTRAOFFSET_WEAPONS)
#define fm_cs_get_weapon_ammo(%1) get_pdata_int(%1, m_iClip, EXTRAOFFSET_WEAPONS)
#define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, m_iClip, %2, EXTRAOFFSET_WEAPONS)
stock const g_iDftMaxClip[CSW_P90+1] = {
-1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30,
20, 25, 30, 35, 25, 12, 20, 10, 30, 100,
8 , 30, 30, 20, 2, 7, 30, 30, -1, 50}
public plugin_init()
{
register_plugin("Infinite Pistol Ammo", VERSION, "ConnorMcLeod")
new iCswGuns[] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_USP, CSW_GLOCK18, CSW_DEAGLE}
new szWeaponName[20]
for(new iCswId = 0; iCswId<sizeof(iCswGuns); iCswId++)
{
get_weaponname(iCswGuns[iCswId], szWeaponName, charsmax(szWeaponName))
RegisterHam(Ham_Item_PostFrame, szWeaponName, "Pistols_PostFrame")
}
}
public Pistols_PostFrame(iEnt)
{
new iClip = fm_cs_get_weapon_ammo(iEnt)
new iClientClip = get_pdata_int(iEnt, m_iClientClip, EXTRAOFFSET_WEAPONS)
if( iClip != iClientClip )
{
new iMaxClip = g_iDftMaxClip[ fm_cs_get_weapon_id(iEnt) ]
if( iClip != iMaxClip )
{
fm_cs_set_weapon_ammo(iEnt, iMaxClip)
set_pdata_int(iEnt, m_iClientClip, iMaxClip, EXTRAOFFSET_WEAPONS)
return HAM_HANDLED
}
}
return HAM_IGNORED
}