Re: New AMXX Menu System
It doesn't detect old menus for me.
I use this plugin to see what g_current_menu[id] is:
PHP Code:
#include <amxmodx> #include <engine>
enum { MENU_NONE, MENU_MAIN, MENU_SUB1, MENU_SUB2, MENU_SUB3, MENU_SUB4, MENU_SUB5 };
new g_current_menu[33];
public plugin_init() { register_clcmd("say /menu", "ShowMainMenu"); }
public client_putinserver(id) { g_current_menu[id] = MENU_NONE; }
public client_PreThink(id) { if ( is_user_connected(id) ) { set_hudmessage(255, 255, 255, -1.0, 0.0, 0, 0.0, 1.0, 0.25, 0.25, -1); show_hudmessage(id, "g_current_menu[id] = %i", g_current_menu[id]); } }
public ShowMainMenu(id) { g_current_menu[id] = MENU_MAIN; new menu = menu_create("Main Menu", "MainMenuHandle"); menu_additem(menu, "Sub Menu 1", "1"); menu_additem(menu, "Sub Menu 2", "2"); menu_additem(menu, "Sub Menu 3", "3"); menu_additem(menu, "Sub Menu 4", "4"); menu_additem(menu, "Sub Menu 5", "5"); menu_display(id, menu); }
public MainMenuHandle(id, menu, item) { if ( item == MENU_EXIT ) { g_current_menu[id] = MENU_NONE; menu_destroy(menu); return; } static _access, info[3], callback; menu_item_getinfo(menu, item, _access, info, charsmax(info), _, _, callback); menu_destroy(menu); switch ( info[0] ) { case '1': ShowSubMenu1(id); case '2': ShowSubMenu2(id); case '3': ShowSubMenu3(id); case '4': ShowSubMenu4(id); case '5': ShowSubMenu5(id); } }
public ShowSubMenu1(id) { g_current_menu[id] = MENU_SUB1; new menu = menu_create("Sub Menu 1", "SubMenu1Handle"); menu_additem(menu, "1", "1"); menu_additem(menu, "2", "2"); menu_additem(menu, "3", "3"); menu_additem(menu, "4", "4"); menu_additem(menu, "5", "5"); menu_additem(menu, "6", "6"); menu_display(id, menu); }
public SubMenu1Handle(id, menu, item) { if ( item == MENU_EXIT ) { menu_destroy(menu); ShowMainMenu(id); return; } static _access, info[3], callback; menu_item_getinfo(menu, item, _access, info, charsmax(info), _, _, callback); menu_destroy(menu); switch ( info[0] ) { case '1': client_print(id, print_chat, "You selected 1"); case '2': client_print(id, print_chat, "You selected 2"); case '3': client_print(id, print_chat, "You selected 3"); case '4': client_print(id, print_chat, "You selected 4"); case '5': client_print(id, print_chat, "You selected 5"); case '6': client_print(id, print_chat, "You selected 6"); } ShowSubMenu1(id); }
public ShowSubMenu2(id) { g_current_menu[id] = MENU_SUB2; new menu = menu_create("Sub Menu 2", "SubMenu2Handle"); menu_additem(menu, "1", "1"); menu_additem(menu, "2", "2"); menu_additem(menu, "3", "3"); menu_additem(menu, "4", "4"); menu_additem(menu, "5", "5"); menu_additem(menu, "6", "6"); menu_display(id, menu); }
public SubMenu2Handle(id, menu, item) { if ( item == MENU_EXIT ) { menu_destroy(menu); ShowMainMenu(id); return; } static _access, info[3], callback; menu_item_getinfo(menu, item, _access, info, charsmax(info), _, _, callback); menu_destroy(menu); switch ( info[0] ) { case '1': client_print(id, print_chat, "You selected 1"); case '2': client_print(id, print_chat, "You selected 2"); case '3': client_print(id, print_chat, "You selected 3"); case '4': client_print(id, print_chat, "You selected 4"); case '5': client_print(id, print_chat, "You selected 5"); case '6': client_print(id, print_chat, "You selected 6"); } ShowSubMenu2(id); }
public ShowSubMenu3(id) { g_current_menu[id] = MENU_SUB3; new menu = menu_create("Sub Menu 3", "SubMenu3Handle"); menu_additem(menu, "1", "1"); menu_additem(menu, "2", "2"); menu_additem(menu, "3", "3"); menu_additem(menu, "4", "4"); menu_additem(menu, "5", "5"); menu_additem(menu, "6", "6"); menu_display(id, menu); }
public SubMenu3Handle(id, menu, item) { if ( item == MENU_EXIT ) { menu_destroy(menu); ShowMainMenu(id); return; } static _access, info[3], callback; menu_item_getinfo(menu, item, _access, info, charsmax(info), _, _, callback); menu_destroy(menu); switch ( info[0] ) { case '1': client_print(id, print_chat, "You selected 1"); case '2': client_print(id, print_chat, "You selected 2"); case '3': client_print(id, print_chat, "You selected 3"); case '4': client_print(id, print_chat, "You selected 4"); case '5': client_print(id, print_chat, "You selected 5"); case '6': client_print(id, print_chat, "You selected 6"); } ShowSubMenu3(id); }
public ShowSubMenu4(id) { g_current_menu[id] = MENU_SUB4; new menu = menu_create("Sub Menu 4", "SubMenu4Handle"); menu_additem(menu, "1", "1"); menu_additem(menu, "2", "2"); menu_additem(menu, "3", "3"); menu_additem(menu, "4", "4"); menu_additem(menu, "5", "5"); menu_additem(menu, "6", "6"); menu_display(id, menu); }
public SubMenu4Handle(id, menu, item) { if ( item == MENU_EXIT ) { menu_destroy(menu); ShowMainMenu(id); return; } static _access, info[3], callback; menu_item_getinfo(menu, item, _access, info, charsmax(info), _, _, callback); menu_destroy(menu); switch ( info[0] ) { case '1': client_print(id, print_chat, "You selected 1"); case '2': client_print(id, print_chat, "You selected 2"); case '3': client_print(id, print_chat, "You selected 3"); case '4': client_print(id, print_chat, "You selected 4"); case '5': client_print(id, print_chat, "You selected 5"); case '6': client_print(id, print_chat, "You selected 6"); } ShowSubMenu4(id); }
public ShowSubMenu5(id) { g_current_menu[id] = MENU_SUB5; new menu = menu_create("Sub Menu 5", "SubMenu5Handle"); menu_additem(menu, "1", "1"); menu_additem(menu, "2", "2"); menu_additem(menu, "3", "3"); menu_additem(menu, "4", "4"); menu_additem(menu, "5", "5"); menu_additem(menu, "6", "6"); menu_display(id, menu); }
public SubMenu5Handle(id, menu, item) { if ( item == MENU_EXIT ) { menu_destroy(menu); ShowMainMenu(id); return; } static _access, info[3], callback; menu_item_getinfo(menu, item, _access, info, charsmax(info), _, _, callback); menu_destroy(menu); switch ( info[0] ) { case '1': client_print(id, print_chat, "You selected 1"); case '2': client_print(id, print_chat, "You selected 2"); case '3': client_print(id, print_chat, "You selected 3"); case '4': client_print(id, print_chat, "You selected 4"); case '5': client_print(id, print_chat, "You selected 5"); case '6': client_print(id, print_chat, "You selected 6"); } ShowSubMenu5(id); }
And when I overwrite for example 'Main Menu' with the 'AMX Mod X Menu' or 'Select a team' menu, the value of g_current_menu[id] still is 1. But when I overwrite it with a menu from any of my own plugins with new menu system the value goes to 0.
Is there a way to detect the old menu overwrites?
|