←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

menu_addtext powoduje MENU_EXIT

  • +
  • -
grankee - zdjęcie 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ę.

Odpowiedz

  • +
  • -
VertekS - zdjęcie 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)
Odpowiedz

  • +
  • -
grankee - zdjęcie 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
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie 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

Odpowiedz

  • +
  • -
grankee - zdjęcie 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
Odpowiedz