Odświeżanie menu na ostatnio wyświetlanej...
Anonymuss
18.08.2021
Był już chyba taki temat na forum ale nie mogę go nigdzie znaleźć. W jaki sposób mogę zapisać aktualnie przeglądaną stronę w menu żeby móc je później odświeżyć na tej samej stronie?
Próbowałem coś tam zrobić ale wychodziły mi dziwne bugi, czasami komenda /s nie pokrywała się z informacjami w /t albo gdy wyszedłem z menu mając je odpalone na drugiej stronie (niby powinno wyzerować strony), po wpisaniu /menu znów wracało na drugą stronę.
#include <amxmodx> new strona[33]; public plugin_init() { register_plugin("Test Menu", "1.0", "Anonymuss"); register_clcmd("say /menu_testowe", "test_menu"); register_clcmd("say /s", "aktualna_strona"); register_clcmd("say /t", "test"); } public client_authorized(id) strona[id] = 0; public test_menu(id) { test(id); new menu = menu_create("Menu Testowe", "uchwyt_menu"); for(new i = 0; i <= 7; i++) menu_additem(menu, "Odswiez"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu, strona[id]); } public uchwyt_menu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); strona[id] = 0; client_print_color(id, id, "Zamknales menu (strona %i)", strona[id]); return PLUGIN_HANDLED; } switch(item) { case 0..7: { test_menu(id); client_print_color(id, id, "Odswiezyles menu (strona %i)", strona[id]); } } return PLUGIN_CONTINUE; } public aktualna_strona(id) client_print_color(id, id, "Aktualna strona: %i", strona[id]); public test(id) { new menu, new_menu; player_menu_info(id, menu, new_menu, strona[id]); if(new_menu != -1) client_print_color(id, id, "gracz %i ma wyświetlone nowe menu o indeksie %i, na stronie %i", id, new_menu, strona[id]); }
Co robię nie tak? Jaka jest poprawna metoda?
Deus Vult
18.08.2021
https://amxx.pl/topi...nu/#entry247604
Użytkownik Devastator edytował ten post 18.08.2021 15:57
KoRrNiK
18.08.2021
Trzymaj
new pageMenu[33]; public menuTest(id){ new menu = menu_create("Test", "menuTest_2"); for(new i = 0; i < 15; i ++){ menu_additem(menu, fmt("%d", i)); } menu_display(id, menu, pageMenu[id]/7); } public menuTest_2(id, menu, item){ pageMenu[id] = ( item == MENU_EXIT ) ? 0 : item; if( item != MENU_EXIT ){ client_print(id, 3, "%d", pageMenu[id]); menuTest(id); } else menu_destroy(menu); }
Najłatwiej to zrobić w taki sposób. Pobierasz do zmiennej aktualny przycisk w który kliknąłeś i dzielisz go na 7 aby wyliczyć na której stronie aktualnie przebywałeś aby odpalić ją ponownie.
Anonymuss
18.08.2021
Te sposoby nie ustawiały strony dopóki nie wybrałem jakiegoś itemu z menu i po odświeżeniu menu 2x pod rząd komendą, strony się zerowały a menu odświeżało się znów na pierwszej stronie. Potrzebowałem przechwytywanie przycisków 8, 9 w menu ale już znalazłem sposób i poprawiłem sobie te dwa błędy.