Mam takie pytanie, robię menu w pętelce z użyciem const i enum, ale nie bardzo łapie jak pobierać położenie ? Jak ktoś nie wie o co chodzi, to pisać śmiało, wytłumaczę. Jeśli by się komuś chciało, to proszę też o zoptymalizowanie tego kodu, z góry dzięki.
Napisałem coś takiego, ale nie działa, proszę o poprawę lub napisanie tego od nowa:
#include <amxmodx>
#include <fun>
#define PLUGIN "Test"
#define VERSION "0.1"
#define AUTHOR "x123"
enum
{
PIERWSZY,
DRUGI,
TRZECI,
CZWARTY,
TOTAL
};
new const g_type_names[TOTAL][] =
{
"115",
"130",
"170",
"200"
};
new g_type_prices[TOTAL] =
{
115,
130,
170,
200
};
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu", "menus");
}
public menus(id)
{
new menu = menu_create("Testowo", "menus_handler");
new opcja[64], numer[6];
for ( new i = 0; i <= TOTAL; i++ )
{
formatex(opcja, 63, "%s", g_type_names[i]);
menu_additem(menu, opcja, numer[i]);
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, menu, 0);
}
public menus_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
set_user_health(id, g_type_prices[key]);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Za każdą pomoc stawiam plusy !
Użytkownik x123 edytował ten post 28.04.2011 17:44