Nie mam pojęcia co robię źle - próbuję wykonać oddzielny podział menu dla osobnych drużyn za pomocą starego menu i mimo że menu displayuje się dobrze, to niezależnie jakie menu wybiorę, to każde sprowadza się do pierwszego handlera, mimo że w plugin_init zostało ustanowione inaczej (zarejestrowany handler dla drugiego menu.)
#include <amxmodx> #include <cstrike> #define PLUGIN "Stare Menu" #define VERSION "0.1" #define AUTHOR "Sebul" #define TESTMENU_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_0 // tworzymy stala z trzema klawiszami: 1, 2 i 0 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /test", "wybier"); register_menucmd(register_menuid("Testowe Menu"), TESTMENU_KEYS, "staremenuhandle"); // rejestrujemy menu o nazwie "Testowe Menu" i wykorzystujemy TESTMENU_KEYS register_menucmd(register_menuid("Testowe Menu2"), TESTMENU_KEYS, "staremenuhandle2"); } public wybier(id) { switch(cs_get_user_team(id)) { case CS_TEAM_T : staremenu(id) case CS_TEAM_CT : staremenu2(id) } } public staremenu(id) { show_menu(id, TESTMENU_KEYS, "\yWidzisz menu?^n^n\w1. Tak^t2. Nie^n^n0. Wyjdz", -1, "Testowe Menu"); // pokazujemy menu, dostepne tylko trzy klawisze return PLUGIN_HANDLED; } public staremenuhandle(id, key) { // funkcja posiada dwa parametry, id gracza oraz uzyty klawisz switch(key) { // uzywamy switcha, pamietamy, ze klawisz 1 ma wartosc 0, a klawisz 2 - 1, itd. case 0: { client_print(id, print_chat, "Wybrales tak."); } case 1: { client_print(id, print_chat, "Wybrales nie."); } // nie trzeba robic "case 9:", bo i tak wykona sie tylko return na samym dole } return PLUGIN_HANDLED; // menu sie zamknie } public staremenu2(id) { show_menu(id, TESTMENU_KEYS, "\yWidzisz menu?^n^n\w1. NO^t2. XDDDDD^n^n0. Wyjdz", -1, "Testowe Menu2"); // pokazujemy menu, dostepne tylko trzy klawisze return PLUGIN_HANDLED; } public staremenuhandle2(id, key) { // funkcja posiada dwa parametry, id gracza oraz uzyty klawisz switch(key) { // uzywamy switcha, pamietamy, ze klawisz 1 ma wartosc 0, a klawisz 2 - 1, itd. case 0: { client_print(id, print_chat, "Wybrales takreeeXdeee."); } case 1: { client_print(id, print_chat, "Wybrales nieareeaaar."); } // nie trzeba robic "case 9:", bo i tak wykona sie tylko return na samym dole } return PLUGIN_HANDLED; // menu sie zamknie }
Oto kod na którym chciałem bazować.
Proszę darować sobie komentarze o składnie- wszystko wykonane tylko dla klarowności testu + cstrike.inc również jest mi potrzebny, bo wszystko stanowi element większego pluginu.
PS: wiem że można to z łatwością zrobić w nowym stylu menu, ale jestem zmuszony używać starego menu.