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.


Dodatki SourceMod













