menu_addtext powoduje MENU_EXIT
grankee
11.11.2014
Ciężko w temacie określi problematykę stąd taki dziwny tytuł, ale do rzeczy.
Mam fragment kodu:
menu_additem(menuKind, "Auto (najlepsza opcja)",plr) menu_addtext(menuKind,"**",1) menu_addtext(menuKind,"**",1) menu_addtext(menuKind,"**",1) plr[2]=1 menu_additem(menuKind, "Steam ID",plr) plr[2]=2 menu_additem(menuKind, "IP",plr)
i teraz w callbacku sprawdzam co zostało naciśnięte:
client_print(id,print_chat,"%d",item)
Jeżeli 1 to pokazuje wartość item jako 0 - tak powinno być
jeżeli 0 to pokazuje -3 czyli MENU_EXIT - też ok
ale wybór 4 lub 5 (pozostałe dwie dostępne opcje) też pokazuje -3 czyli MENU_EXIT
jak zakomentuje wszystkie menu_addtext i menu pojawi się z kolejną numeracją tj 1, 2, 3 to wszystko działa jak należy, callback odczytuje naciśnięcia jako 0,1,2 i -3. Jak sobie z tym poradzić? Zależy mi, ale numeracja wyglądała 1,4,5. Stare menu nie wchodzi w grę.
VertekS
11.11.2014
menu_addtext(menuKind,"**",1) menu_addtext(menuKind,"**",1) menu_addtext(menuKind,"**",1)
Zamień na:
menu_addtext(menuKind,"**",1) menu_addtext(menuKind,"**",2) menu_addtext(menuKind,"**",3)
grankee
11.11.2014
zmienna slot nie okresla numeru pozycji na ktorej text ma sie znajdowac tylko czy ma zajmowac slot w numeracji, 1- zajmuje 0 i kazda inna wartosc jak 2,3 itd -nie zajmuje.
Co ciekawe jak dodam tylko raz funkcję menu_addtext to tylko ostatnia opcja przed exitem powoduje MENU_EXIT, a numer 3 działa i zwraca 2, jak dodam 2 razy to już obie powoduję MENU_EXIT
Użytkownik grankee edytował ten post 11.11.2014 17:02
GwynBleidD
12.11.2014
menu_addtext i menu_addblank są mocno zbugowane, to nie jedyny problem na który trafisz przy nich.
Jedyne obejście tego problemu, to dodanie 2ch linijek tekstu (lub 3ch w tym przypadku) w poprzedniej pozycji menu, czyli:
menu_additem(menuKind, "Auto (najlepsza opcja)^n**^n**^n**",plr) plr[2]=1 menu_additem(menuKind, "Steam ID",plr) plr[2]=2 menu_additem(menuKind, "IP",plr)
czy ma zajmowac slot w numeracji, 1- zajmuje 0 i kazda inna wartosc jak 2,3 itd -nie zajmuje.
Z tym to już nie tak do końca Przy 2, 3 itd już nie pamiętam czy przy addtext czy addblank, numer oznaczał ilość zajmowanych slotów, czyli:
menu_additem(menuKind, "Auto (najlepsza opcja)",plr) menu_addtext(menuKind,"**",3) menu_additem(menuKind, "Steam ID",plr)
Wyświetliłoby menu z numerkami 1 i 5 Ale to chyba był błąd i mogło to zostać wyeliminowane w nowszej wersji AMXX
grankee
12.11.2014
Z tym to już nie tak do końca Przy 2, 3 itd już nie pamiętam czy przy addtext czy addblank, numer oznaczał ilość zajmowanych slotów, czyli:
Może przy addblank, sprawdzałem to co napisałem, nawet nabazgrałem poprawkę do dokumentacji. Nie wiedziałem wtedy jednak, że wybór tej opcji jest źle odczytywany w callbacku.
Jest tak jak pisałem, slot może mieć (z sensem) wartość tylko 0 i 1 i okresla przesunięcie w numeracji.
GwynBleidD Twoje rozwiązanie jest dobre, ale mi nie zależy na wyświetleniu tych gwiazdek tylko na numeracji 1,4,5 w menu i odebraniu tego w callbacku. Nie chcę, żeby ktoś przez przypadek nacisnął 2 zamiast 1, a odsunięcie kolejnej opcji o 3 miejsca na klawiaturze to niezłe zabezpieczenie przeciwko takiej pomyłce.
W ostateczności zrobię 2 itemy "na szaro" między 1 a 4 i dam im w handlu ITEM_DISABLED, ale estetycznie będą mnie razić w oczy dwie puste pozycje jedynie z numerkiem na czerwono.
Jakieś pomysły? Może da się jakoś te cyferki "zgasić"? Czyli dodać additem o pustej tresci/spacji z opcja DISABLED i niewyświetlaniem się przy nich numeracji?
Użytkownik grankee edytował ten post 12.11.2014 02:25