Inteligentne menu
1stADXionC
17.06.2017
Witam.
Tworzę menu:
public Menu(id) { new menu = menu_create("Wybierz opcje", "Menu_Handler") menu_additem(menu, "Moje Bronie") menu_display(id, menu) } public Menu_Handler(id, menu, item) { switch(item) { case 0: MojeBronie(id) } }
I teraz pytanie, jak zrobić aby po wybraniu " Moje Bronie " otworzyło się menu:
( Gdy klasa posiada broń, tylko Famasa - klasa Admirał )
public Menu(id) { new menu = menu_create("Wybierz opcje", "Menu_Handler") menu_additem(menu, "FAMAS") menu_display(id, menu) }
( Gdy klasa posiada broń, AWP, Deagle - klasa Snajper )
public Menu(id) { new menu = menu_create("Wybierz opcje", "Menu_Handler") menu_additem(menu, "AWP") menu_additem(menu, "DEAGLE") menu_display(id, menu) }
Chyba dobrze wytłumaczyłem
Z góry dzięki!
Robiin
17.06.2017
Pobierasz id broni, którą ma klasa i ilość broni, w pętli tworzącej menu_additem dodajesz zmienną formatowaną wcześniej jako nazwa broni, która zależeć będzie od id broni. Ilość wykonania pętli jako ilość broni, nie zapominając o knife.
1stADXionC
17.06.2017
d0naciak
18.06.2017
new bronie[32], ilosc, nazwa_broni[32]; get_user_weapons(id, bronie, ilosc); //zwraca do tablicy bronie jakie posiada gracz, ilosc - ilosc broni for(new i = 0; i < ilosc; i++) { //petla po kazdej broni jaką posiada gracz get_weaponname(bronie[i], nazwa_broni, 31); //zwracamy do tablicy nazwa_broni nazwę broni jaką posiada gracz w formacie np. weapon_m4a1 replace(nazwa_broni, 31, "weapon_", ""); //usuwamy przedrostek weapon_ strtoupper(nazwa_broni); //ustawia wielkie litery, czyli z m4a1 robi M4A1 menu_additem(menu, nazwa_broni); //dodaje bron do menu }
1stADXionC
18.06.2017
Dzięki, wszystko ładnie działa.
A co muszę zrobić żeby po wybraniu x broni przechodziło do menu z skinami do x broni.
public WybierzBron(id) { if(!is_user_alive(id)) return 0; new bronie[32], ilosc, nazwa_broni[32]; get_user_weapons(id, bronie, ilosc); new menu = menu_create("\yWybierz bron -", "WybierzBron_Handler"); for(new i = 0; i < ilosc; i++) { get_weaponname(bronie[i], nazwa_broni, 31); replace(nazwa_broni, 31, "weapon_", ""); strtoupper(nazwa_broni); menu_additem(menu, nazwa_broni); } menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Wstecz"); menu_display(id, menu); return 1; } public WybierzBron_Handler(id, menu, item) { switch(item) { case 0: MojeSkiny(id) } } public MojeSkiny(id) { if(!is_user_alive(id)) return 0; Wczytaj(id); new menu = menu_create("\yMoje Skiny -", "MojeSkiny_Handler"); new text[33], skin; for(new i=1; i<=ILOSC_SLOTOW; i++) { skin = ArrayGetCell(aSkiny, id*ILOSC_SLOTOW+i) if(!skin) formatex(text, 32, "Pusty slot"); else { get_skin_name(skin, text, 32); } menu_additem(menu, text); } menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Wstecz"); menu_display(id, menu); return 1; }
Edited by 1stADXionC, 18.06.2017 10:58.
d0naciak
19.06.2017
Nie ma co się zastanawiać, podział jest na pewno na bronie - każda broń ma swoje skiny. Najlepiej "przypisywać broniom" skiny, musisz wiedzieć ile skinów jest w danej broni, potem gdy gracz np. wybierze interesującą go broń, to sprawdza co wybrał i na podstawie broni wyciąga skiny które gracz posiada - chyba żadna filozofia, gorzej napisać