Witajcie. Chcia?bym Wam przedstawi? napisan? przeze mnie bibliotek?, kt?ra umo?liwia utworzenie stron w dialogach. Pracuj?c w SA-MP na pewno wielu z Was zderzy?o si? z limitami. Jednym z limit?w jest maksymalna ilo?? znak?w w jednym dialogu. Jest to dosy? oczywiste - w ka?dym j?zyku programistycznym lub oprogramowaniu wyst?puj? limity. Stworzenie stron w dialogach dla SA-MP sta?o si? bardzo wygodne na wielu popularnych serwerach. Jako i? na forum znajdowa?y si? ju? podobne biblioteki, niestety nie w pe?ni by?y funkcjonalne - a to z powodu braku pomys?u na kalkulacje stron dla dialog?w. Postanowi?em zakodzi? w?asn? bibliotek? ze stronami w dialogach podczas, gdy tworzy?em sw?j w?asny projekt. By?o to dla mnie naprawd? bardzo wa?ne, poniewa? chcia?em zmie?ci? wiele rzeczy w dialogu, a limit mi na to nie pozwala?.
Przejd?my do sedna sprawy. Biblioteka zosta?a napisana ju? dawno temu, umiejscowiona zosta?a na moim githubie.
Dzia?anie jej jest bardzo proste, poniewa? jedyne co musimy wykona? to podpi?? bibliotek? pod sw?j skrypt lub map? oraz doda? dialog.
Stylizowanie przycisk?w w dialogu/zmiana nazw - to wszystko konfigurujesz ty!
> Pami?taj o tym, ?e ta biblioteka wymaga YSI wydanych od Y_Lessa. Wszystko znajdziesz na moim githubie.
Gdy podpi??e? moj? bibliotek? do twojego skryptu lub mapy przyst?p do stworzenia dialogu ze stronami. Mo?esz stworzy? go za pomoc? linijki i kilku parametr?w.
Tworzenie dialogu ze stronami wygl?da prawie jak tworzenie zwyk?ego dialogu. Dodane zosta?y tylko trzy parametry. maxitemslist - okre?la ile wierszy ma by? na jednej stronie w dialogu;
nextbutton[] - tre?? przycisku "Nast?pna strona" + mo?na doda? kolory w formacie RGB.
previousbutton[] - poprzednia strona, tak samo jak wy?ej - mo?esz doda? kolory RGB.
Z funkcji to tyle, przejd?my zatem do sprawdzania indeksu wybranej listy.
Do sprawdzenia jaki indeks zosta? wybrany i kt?ry przycisk zosta? klikni?ty mo?esz sprawdzi? za pomoc? wywo?ywania > Pami?taj r?wnie? o poprawnej numeracji dialog?w - chodzi dok?adnie o identyfikator. Je?li utworzy?e? zwyk?y dialog z identyfikatorem 0, to nast?pny identyfikator dla dialogu to 1, 2 i 3. Identyfikatory nie mog? by? takie same, poniewa? dialog-pages nie korzysta z w?asnych klucz?w indeksowych!
> Zwr?? uwag? na u?ywanie ma?ych ci?g?w, nie u?ywaj ci?g?w o ogromnych rozmiarach, poniewa? mo?e to spowolni? dzia?anie klienta/serwera.
#define MAX_DIALOG_INFO_LEN (8192) <- tutaj ustalasz rozmiar ci?gu. Pami?taj, aby nie przesadza? z jego rozmiarem.
U?ywaj?c tak ogromnych ci?g?w spowoduje najprawdopodobniej b??dy kompilacji. Jest to spowodowane blokad? kompilatora. Mo?esz to omin?? u?ywaj?c w kodzie (gdzie? u samej g?ry) #pragma dynamic ilo??_bajt?w
<- kompilator bez tej definicji poka?e ci takie informacje. Tutaj mo?esz sprawdzi? ile skrypt/mapa wymaga alokacji pami?ci.
Kolejnym feature, kt?ry zakodowa?em to aktualizacja numeracji stron i innych.
Wprowadzaj?c w ci?g znak?w (w caption lub w info) takie klucze jak:
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach