Senior Member
|
11-12-2020
, 08:14
Re: Register_menu_item native
|
#7
|
something like this i wanted, i made it myself but i don t know how i should get the id, so this thread may be deleted because it was just a waste of time more than a request since i couldn't explain myself too detailed and the thing imma post may be going on a new thread in Scripting Help.
PHP Code:
#include <amxmodx> #include <amxmisc> #include <hamsandwich>
#define PLUGIN "Zombie: The Hero Shop" #define VERSION "1.0" #define AUTHOR "DeclineD"
#define categories 4
new g_items new fw_selected new Selected[categories]
enum _:Data { name, cost, limit_round, limit_map, category, bool:codeb, maxlimit, bool:limit_type, bool:limit }
new Categ[] = { "Primary Weapon", "Secondary Weapon", "Meele Weapon" }
new item_data[99][Data]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Spawn, "player", "fw_spawn", 1) fw_selected = CreateMultiForward("item_recive", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL) }
public plugin_natives() { register_native("register_item", "registerFunction") }
public registerFunction(item_name, item_cost, item_limit, item_category, limit_max, bool:limiton, bool:codebox, bool:limit_roundd) { item_data[g_items][name] = item_name item_data[g_items][cost] = item_cost if(limit_roundd) item_data[g_items][limit_round] = item_limit else item_data[g_items][limit_map] = item_limit item_data[g_items][category] = item_category item_data[g_items][codeb] = codeb item_data[g_items][maxlimit] = limit_max item_data[g_items][limit_type] = limit_roundd item_data[g_items][limit] = limiton g_items++ return g_items-1 }
public weaponsMenu(id) { new menu = menu_create("Weapon Menu", "weaponsHandler") for(new i = 0; i < categories-1; i++) { new text[128] formatex(text, charsmax(text), "\y%s \r[ \y%s \r]", Categ[i], item_data[Selected[i]][name]) menu_additem(menu, text) } menu_additem(menu, "Recive Weapons") }
public weaponsHandler(id, menu) { switch(menu) { case 0: Primary(id) case 1: Pistol(id) case 2: Meele(id) case 4: Recive(id) } }
public Primary(id) { new primarymenu = menu_create("Primary Weapons", "item_select") for(new i = 0; i < g_items; i++) { new text[128] new codeboxtext[] = {"*CODE BOX*"} if(item_data[i][category] != 0) return;
if(item_data[i][limit]) { formatex(text, charsmax(text), "[ZTH] %s (%d/%d) %s%d", item_data[i][name], item_data[i][limit_type] ? item_data[i][limit_round] : item_data[i][limit_map], item_data[i][codeb] ? codeboxtext[0] : item_data[i][cost]) } else formatex(text, charsmax(text), "[ZTH] %s %s%d", item_data[i][name],item_data[i][codeb] ? codeboxtext[0] : item_data[i][cost]) menu_additem(primarymenu, text) } }
public Pistol(id) { new secondarymenu = menu_create("secondary Weapons", "item_select") for(new i = 0; i < g_items; i++) { new text[128] new codeboxtext[] = {"*CODE BOX*"} if(item_data[i][category] != 1) return;
if(item_data[i][limit]) { formatex(text, charsmax(text), "[ZTH] %s (%d/%d) %s%d", item_data[i][name], item_data[i][limit_type] ? item_data[i][limit_round] : item_data[i][limit_map], item_data[i][codeb] ? codeboxtext[0] : item_data[i][cost]) } else formatex(text, charsmax(text), "[ZTH] %s %s%d", item_data[i][name],item_data[i][codeb] ? codeboxtext[0] : item_data[i][cost]) menu_additem(secondarymenu, text) } }
public Meele(id) { new meelemenu = menu_create("Meele Weapons", "item_select") for(new i = 0; i < g_items; i++) { new text[128] new codeboxtext[] = {"*CODE BOX*"} if(item_data[i][category] != 2) return;
if(item_data[i][limit]) { formatex(text, charsmax(text), "[ZTH] %s (%d/%d) %s%d", item_data[i][name], item_data[i][limit_type] ? item_data[i][limit_round] : item_data[i][limit_map], item_data[i][codeb] ? codeboxtext[0] : item_data[i][cost]) } else formatex(text, charsmax(text), "[ZTH] %s %s%d", item_data[i][name],item_data[i][codeb] ? codeboxtext[0] : item_data[i][cost]) menu_additem(meelemenu, text) } }
public item_select(id) { new item_meele, item_primary, item_secondary
switch(item_primary) { default:{ weaponsMenu(id) } } switch(item_secondary) { default:{ weaponsMenu(id) } } switch(item_meele) { default:{ weaponsMenu(id) } } }
public Recive(id) { new item_secondary, item_primary, item_meele new g_iRet
ExecuteForward(fw_selected, g_iRet, item_primary) ExecuteForward(fw_selected, g_iRet, item_secondary) ExecuteForward(fw_selected, g_iRet, item_meele) }
Last edited by AnimalMonster; 11-12-2020 at 08:15.
|
|