new g_eGrenadeAddPrice[MAX_PLAYERS + 1][GrenadeAddPrice];
register_plugin("Grenade Limit", "0.3.0", "Albertio");
register_dictionary("grenade_limit.txt");
RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CBasePlayer_HasRestrictItem_Pre", false);
AutoExecConfig(true, "grenade_limit");
public CBasePlayer_HasRestrictItem_Pre(const iPlayer, ItemID:eItem, ItemRestType:eType) {
if(eType == ITEM_TYPE_EQUIPPED) {
g_eGrenadeAddPrice[iPlayer][FLASH_ADD_PRICE] = g_eCvars[FLASH_PRICE];
g_eGrenadeAddPrice[iPlayer][HEGREN_ADD_PRICE] = g_eCvars[HEGREN_PRICE];
g_eGrenadeAddPrice[iPlayer][SGREN_ADD_PRICE] = g_eCvars[SGREN_PRICE];
if(eType == ITEM_TYPE_BUYING) {
case ITEM_FLASHBANG: { BuyItemHandler(iPlayer, WEAPON_FLASHBANG, 0, "weapon_flashbang", "GL_FLASH_NOTMONEY", "GL_FLASH_LIMIT"); }
case ITEM_HEGRENADE: { BuyItemHandler(iPlayer, WEAPON_HEGRENADE, 1, "weapon_hegrenade", "GL_HEGREN_NOTMONEY", "GL_HEGREN_LIMIT"); }
case ITEM_SMOKEGRENADE: { BuyItemHandler(iPlayer, WEAPON_SMOKEGRENADE, 2, "weapon_smokegrenade", "GL_SMOKE_NOTMONEY", "GL_SMOKE_LIMIT"); }
SetHookChainReturn(ATYPE_BOOL, true);
public BuyItemHandler(const iPlayer, WeaponIdType:iItem, any:iGrenadeType, szWeaponName[], szLangMes1[], szLangMes2[]) {
new iGrenadePcs = rg_get_user_bpammo(iPlayer, iItem), iAccount = get_member(iPlayer, m_iAccount);
if(iGrenadePcs < g_eCvars[iGrenadeType]) {
if(iAccount >= g_eGrenadeAddPrice[iPlayer][iGrenadeType]) {
g_eGrenadeAddPrice[iPlayer][iGrenadeType] += g_eCvars[ADD_PRICE];
rg_set_user_bpammo(iPlayer, iItem, iGrenadePcs + 1);
rg_add_account(iPlayer, iAccount - g_eGrenadeAddPrice[iPlayer][iGrenadeType], AS_SET);
client_print_color(iPlayer, print_team_default, "%L", iPlayer, szLangMes1);
client_print_color(iPlayer, print_team_default, "%L", iPlayer, szLangMes2);
if(iAccount >= g_eCvars[iGrenadeType]) {
rg_give_item(iPlayer, szWeaponName);
rg_add_account(iPlayer, iAccount - g_eCvars[iGrenadeType], AS_SET);
client_print_color(iPlayer, print_team_default, "%L", iPlayer, szLangMes1);
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_FLASH_PCS_CVAR"),
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_FLASH_PRICE_CVAR"),
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_HEGREN_PCS_CVAR"),
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_HEGREN_PRICE_CVAR"),
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_SGREN_PCS_CVAR"),
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_SGREN_PRICE_CVAR"),
bind_pcvar_num(create_cvar(
fmt("%L", LANG_SERVER, "GL_ADD_PRICE_CVAR"),