Mam podobne czapki.
To tak. Model hat'u ma stworzoną przez twórce określoną kolejność (submodeli), którą musisz utrzymać przy zmianie kolejności.
Proponowałbym użycie informacji, czyli trzeciego parametru funkcji menu_additem. (stringu)
Najpierw musisz odtworzyć kolejność, która była w czapkach przed modyfikacją.
Załóżmy że miałeś 4 czapki w jednym modelu, tj Afro, Zaciesz, Idiota i np.. Krowa.
Submodel o id 0 jest tzw brakiem czapki, więc numerowanie czapek zaczynamy od 1.
1 - Afro
2 - Zaciesz
3 - Idiota
4 - Krowa
(Oczywiście na potrzeby wytlumaczenia )
menu_additem(menu, "Afro"); menu_additem(menu, "Zaciesz"); menu_additem(menu, "Idiota"); menu_additem(menu, "Krowa");
To jest prawidłowa kolejność. Jeśli natomiast zmienimy czapke Afro z czapką Idiota, kolejność w menu nie będzie się zgadzała z kolejnością w modelu, a więc czapka Afro będzie czapką Idiota i vice versa.
Aby można było naginać kolejność, wystarczy dodać w/w parametr, tzn.
menu_additem(menu, "Afro", "1"); menu_additem(menu, "Zaciesz", "2"); menu_additem(menu, "Idiota", "3"); menu_additem(menu, "Krowa", "4");
uzyskując tym samym możliwość manipulacji kolejnością, jednak to nie wszystko.
Wykorzystując ten myczek, musimy pamiętać że parametr "item" w funkcji handler jest kolejnością dodawania itemów do menu. Tzn po zmianie Afro z Idiotą, item przyjmuje poniższe wartości
Idiota - 1
Zaciesz - 2
Afro - 3
Krowa - 4
A nie o to nam chodzi. Musimy więc dodać czytanie parametru informacji z wybranego elementu menu.
Do menu_handler po
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
dodajemy
new inf = str_to_num(data)
uzyskując w zmiennej inf właściwy numer submodelu czapki.
Krótko, po dodaniu numerów czapek jako stringu w trzecim parametrze podmieniamy menu_handler na ten
public menu_handler(id, menu, item) { if(item == MENU_EXIT) return PLUGIN_CONTINUE; new data[4], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data, 3, iName, 63, callback); new inf = str_to_num(data) Set_Hat(id, inf, id, iName); formatex(g_NazwaAktualnej[id], 127, "%s", iName); return PLUGIN_CONTINUE; }
Teraz zmieniając kolejność, nie zmieniamy nigdy trzeciego parametru, lecz tylko zamieniamy miejscami funkcje, np.
menu_additem(menu, "Afro", "1"); menu_additem(menu, "Zaciesz", "2"); menu_additem(menu, "Krowa", "4"); menu_additem(menu, "Idiota", "3");
Tak, te quoty (Tzn ") muszą być, inaczej nie skompilujesz