Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2021-05-13, 22:52


Robson04







Wiek: 23
Na forum: 3182 dni
Posty: 58
Nick w MP: Robson04

Piwa: 512

Respekt: 60

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.
Pawn

ShowPlayerDialogPages(playeriddialogiddialogstyle, const caption[], info[], const button1[], const button2[], maxitemslist 15, const nextbutton[] = "Next page", const lastbutton[] = "Previous page");

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
Pawn
OnDialogResponse(playeriddialogidresponselistiteminputtext[])

> 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:

Kod:


#currentpage - wy?wietla obecn? stron?.
#pagelist - wy?wietla ilo?? stron obliczan? przez bibliotek?.


Wygl?d dialogu w grze (sam mo?esz go stylizowa?):
https://imgur.com/a/rePOL5f

Bibliotek? znajdziesz na moim githubie, zajrzyj:
Ukryta wiadomość / Hidden message(aby ją zobaczyć musisz postawić użytkownikowi)
Wiadomość została ukryta, aby ją przeczytać należy się zalogować.

Pami?taj o tym, aby pobra? biblioteki YSI oraz kompilator pionka zalecane przeze mnie w wydaniu wersji dialog-pages.

Biblioteki YSI i kompilator wymagany do poprawnego dzia?ania Dialog-Pages:
https://github.com/pawn-lang/compiler/releases
https://github.com/pawn-lang/YSI-Includes

Dzi?ki i mi?ego korzystania ;)

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 9 piw(a):
Walter, ziBBo, MTAPawel, EnoNeK, cShaxu, arek12321, rxkrxd, dracoldzz, Jellonek
Tagi: advanced :: dialog :: pages :: robson04
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Skrypty do SA-MP Odpowiedz do tematu

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
Dodaj temat do Ulubionych
Wersja do druku