Hello Gyus Pls Help me with this problem my weapons in my mod no have access have with xp to buy all weapons pls help me to make access with weapons and to set level to buy weapons
#include <amxmodx>
#include <gunxpmod>
#define PLUGIN "Gun Xp Mod Shop"
#define AUTHOR "xbatista"
#define VERSION "1.4"
#define SET ACCESS WEAPONS TO BUY IN gxm-plugins
register_dictionary("gunxpmod.txt")
#define MAX_UNLOCKS 30
#define MAX_UNLOCKS_NAME_SIZE 64
#define MAX_UNLOCKS_DESC_SIZE 128
new g_numberofitems
new g_menuPosition[33]
new bool:g_PlayerItem[33][MAX_UNLOCKS+1]
new g_itemindex[MAX_UNLOCKS+1]
new g_itemcost[MAX_UNLOCKS+1]
new g_itemname[MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1]
new g_itemdesc[MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_dictionary("gunxpmod.txt");
register_clcmd("say /unlocks", "item_upgrades")
register_clcmd("say unlocks", "item_upgrades")
register_clcmd("say /ul", "item_upgrades")
register_clcmd("say ul", "item_upgrades")
register_clcmd("say /items", "display_items")
register_clcmd("say items", "display_items")
register_menucmd(register_menuid("Unlocks Shop"), 1023, "action_item_upgrades")
}
public client_connect(id)
{
for(new i = 1; i <= MAX_UNLOCKS; ++i)
{
g_PlayerItem[id][i] = false
}
}
public display_items(id)
{
new szMotd[2048], szTitle[64], iPos = 0
format(szTitle, 63, "Items List")
iPos += format(szMotd[iPos], 2047-iPos, "<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000 000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
iPos += format(szMotd[iPos], 2047-iPos, "^n^n<b>%s</b>^n^n", szTitle)
iPos += format(szMotd[iPos], 2047-iPos, "# Item Name | Item Description | Item Cost^n")
for(new i = 1; i <= g_numberofitems; i++)
{
iPos += format(szMotd[iPos], 2047-iPos, "%d. %s | %s | %d^n", i, g_itemname[i], g_itemdesc[i], g_itemcost[i])
}
show_motd(id, szMotd, szTitle)
return PLUGIN_HANDLED;
}
public item_upgrades(id)
{
display_item_upgrades(id, g_menuPosition[id] = 0);
return PLUGIN_HANDLED;
}
public display_item_upgrades(id, pos)
{
if(!is_user_alive(id))
return;
static menuBody[510], len;
len = 0
if(pos < 0)
{
return;
}
new start = pos * 8
if(start >= g_numberofitems)
{
start = pos = g_menuPosition[id]
}
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", get_user_xp(id), get_user_max_level(id))
new end = start + 8
new keys = MENU_KEY_0
if(end > g_numberofitems)
{
end = g_numberofitems
}
new b = 0
for(new a = start; a < end; ++a)
{
new i = a + 1
new money
money = get_user_xp(id)
if( money < g_itemcost[i] )
{
if( g_PlayerItem[id][i] )
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[i], g_itemcost[i])
}
else
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[i], g_itemcost[i])
}
}
else if( g_PlayerItem[id][i] )
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[i], g_itemcost[i])
}
else
{
keys |= (1<<b)
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP", ++b, g_itemname[i], g_itemcost[i])
}
}
if(end != g_numberofitems)
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r9. \w%L\r^n0. \w%L", id, "NEXT_MENU", id, pos ? "BACK_MENU" : "EXIT_MENU")
keys |= MENU_KEY_9
}
else
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r0. \w%L", id, pos ? "BACK_MENU" : "EXIT_MENU")
}
show_menu(id, keys, menuBody, -1, "Unlocks Shop")
}
public action_item_upgrades(id, key)
{
switch(key)
{
case 8: display_item_upgrades(id, ++g_menuPosition[id]);
case 9: display_item_upgrades(id, --g_menuPosition[id]);
default:
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED;
}
++key
new money
new plugin_id = g_itemindex[g_menuPosition[id] * 8 + key]
new item_id = g_menuPosition[id] * 8 + key
new func = get_func_id("gxm_item_enabled", plugin_id)
money = get_user_xp(id)
new cost = g_itemcost[item_id]
if(money >= cost)
{
callfunc_begin_i(func, plugin_id)
callfunc_push_int(id)
callfunc_end()
g_PlayerItem[id][item_id] = true
new overall = money - cost
set_user_xp(id, overall)
client_printcolor(id, "/yItem Bought Successfully, Item: /g%s.", g_itemname[item_id])
client_printcolor(id, "/yDescription:/g%s.", g_itemdesc[item_id])
display_item_upgrades(id, g_menuPosition[id]);
}
}
}
return PLUGIN_HANDLED;
}
public register_item_gxm(item_index, item_name[], item_desc[], item_cost)
{
if(g_numberofitems == MAX_UNLOCKS)
{
return -2
}
g_numberofitems++
g_itemindex[g_numberofitems] = item_index
format(g_itemname[g_numberofitems], MAX_UNLOCKS_NAME_SIZE, item_name)
format(g_itemdesc[g_numberofitems], MAX_UNLOCKS_DESC_SIZE, item_desc)
g_itemcost[g_numberofitems] = item_cost
return g_numberofitems
}