Играча Ivan има граната Smoke , пише /buy и до артикула на Smoke в менюто текста "Smoke Grenade" да бъде сив и да не може да бъде закупен. Tова нещо да го има на всички артикули не само на Smoke
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cl_buy>
#include <cstrike>
#include <fun>
#define ADMIN_ACCESS ADMIN_CVAR
#define TASK_BUYMENU 444777
#define MENU_ID 999444
enum _:Weapons
{
Name[32],
Id[20],
CSW,
Price,
Ammo
}
new const g_eWeapons[][Weapons] =
{
{ "Deagle", "weapon_deagle", CSW_DEAGLE, 650, 35 },
{ "MP5-Navy", "weapon_mp5navy", CSW_MP5NAVY, 1500, 120 },
{ "Smoke Grenade", "weapon_smokegrenade", CSW_SMOKEGRENADE, 300, 1 }
}
new g_iSayText
new bool:g_bActive
new bool:g_bUsed[33]
new Float:g_fBuyTime
new const g_szPrefix[] = "!g[VIP|WP]!n"
public plugin_init()
{
register_plugin("Admin Weapons Menu", "1.0", "OciXCrom")
register_logevent("OnRoundStart", 2, "1=Round_Start")
register_clcmd("say /buy", "OpenBuyMenu")
register_clcmd("say_team /buy", "OpenBuyMenu")
g_iSayText = get_user_msgid("SayText")
}
public plugin_cfg()
g_fBuyTime = (get_cvar_float("mp_buytime") * 60)
public OnRoundStart()
{
g_bActive = false
arrayset(g_bUsed, false, sizeof(g_bUsed))
remove_task(TASK_BUYMENU)
set_task(g_fBuyTime, "EnableBuyMenu", TASK_BUYMENU)
}
public EnableBuyMenu()
{
g_bActive = true
new iPlayers[32], iPnum
get_players(iPlayers, iPnum)
for(new i, iPlayer; i < iPnum; i++)
{
iPlayer = iPlayers[i]
if(has_access(iPlayer) && !g_bUsed[iPlayer])
ColorChat(iPlayer, "!t%.0f !nsekundi iztekoha!", g_fBuyTime)
}
set_task(g_fBuyTime, "DisableBuyMenu", TASK_BUYMENU)
}
public DisableBuyMenu()
{
g_bActive = false
new iPlayers[32], iPnum
get_players(iPlayers, iPnum)
for(new i, iPlayer; i < iPnum; i++)
{
iPlayer = iPlayers[i]
if(has_access(iPlayer) && !g_bUsed[iPlayer])
{
ColorChat(iPlayer, "!t/buy !nmenuto veche ne e aktivno!")
CloseMenu(iPlayer)
}
}
}
public client_buy(id, iItem)
{
if(!g_bUsed[id])
g_bUsed[id] = true
}
public OpenBuyMenu(id)
{
if(!has_access(id))
ColorChat(id, "Nqmate dostup tuk!")
else if(!is_user_alive(id))
ColorChat(id, "Trqbva da si jiv!")
else if(!g_bActive)
ColorChat(id, "Menuto ne e aktivno v momenta.")
else if(g_bUsed[id])
ColorChat(id, "Veche si izpolzval menuto!")
else
{
new iMenu = menu_create("\y[AMXX]\r Menu", "BuyMenu_Handler")
for(new szItem[64], iMoney = cs_get_user_money(id), i; i < sizeof(g_eWeapons); i++)
{
formatex(szItem, charsmax(szItem), "%s%s - %i$", iMoney >= g_eWeapons[i][Price] ? "\w" : "\d", g_eWeapons[i][Name], g_eWeapons[i][Price])
menu_additem(iMenu, szItem)
}
menu_display(id, iMenu, 0)
}
return PLUGIN_HANDLED
}
public BuyMenu_Handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT || !is_user_alive(id) || !g_bActive)
goto @DESTROY
new iMoney = cs_get_user_money(id)
if(iMoney >= g_eWeapons[iItem][Price])
{
give_item(id, g_eWeapons[iItem][Id])
cs_set_user_bpammo(id, g_eWeapons[iItem][CSW], g_eWeapons[iItem][Ammo])
ColorChat(id, "Zakupi !t%s !nza !g%i$", g_eWeapons[iItem][Name], g_eWeapons[iItem][Price])
g_bUsed[id] = true
}
else ColorChat(id, "Nqmash dostatuchno pari za da zakupish tova orujie!")
@DESTROY:
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
CloseMenu(id)
{
new iNewMenu, iMenu = player_menu_info(id, iMenu, iNewMenu)
if(iMenu)
show_menu(id, 0, "^n", 1)
}
bool:has_access(id)
return bool:(get_user_flags(id) & ADMIN_ACCESS)
ColorChat(const id, const szInput[], any:...)
{
new iPlayers[32], iCount = 1
static szMessage[191]
vformat(szMessage, charsmax(szMessage), szInput, 3)
format(szMessage[0], charsmax(szMessage), "%s %s", g_szPrefix, szMessage)
replace_all(szMessage, charsmax(szMessage), "!g", "^4")
replace_all(szMessage, charsmax(szMessage), "!n", "^1")
replace_all(szMessage, charsmax(szMessage), "!t", "^3")
if(id)
iPlayers[0] = id
else
get_players(iPlayers, iCount, "ch")
for(new i; i < iCount; i++)
{
if(is_user_connected(iPlayers[i]))
{
message_begin(MSG_ONE_UNRELIABLE, g_iSayText, _, iPlayers[i])
write_byte(iPlayers[i])
write_string(szMessage)
message_end()
}
}
}