Jump to content

Quis

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by Quis

  1. Nazwa: Quis 3D Text Labels Wersja: 1.1 Screeny: Screen 1 Screen 2 (zielona etykieta ma nadany indeks 1) Screen 3 (etykieta przyczepiona do naczepy) Przydatne informacje: Utworzone etykiety są elementami MTA, tak samo jak praktycznie wszystko co istnieje w MTA, czyli gracze, pojazdy, pickupy i inne. Typ elementu, dla etykiety to "text3d". Rozmiar tekstu dla każdej etykiety tekstowej jest skalowany w zależności od odległości od gracza. Im dalej, tym tekst będzie mniejszy. Lista zmian w wersji 1.1: poprawiono błąd, który powodował że nie dało się ustawić wartości "checkLOS" na false. Błąd ten został też poprawiony w wersji 1.0, godzinę po jej wystawieniu dodano czarną obwódkę do etykiet, dla ładniejszego wyglądu dodano funkcje attach3DTextLabel i detach3DTextLabel umożliwiające przyczepianie etykiet do innych elementów dodano parametr "index" w create3DTextLabel Lista funkcji (tylko server-side): text3d create3DTextLabel( string text, float posx, float posy, float posz, [ int red = 255, int green = 255, int blue = 255, float drawdistance = 100.0, bool checkLOS = true, int index = 0 ] ) Tworzy nową etykietę tekstową i zwraca jej element. Funkcja automatycznie konwertuje wszystkie zmienne jeśli ich typ jest nieprawidłowy, jeśli konwersja się nie powiedzie, zwraca "false". text - ciąg znaków, który będzie zawarty w etykiecie posx - pozycja X etykiety posy - pozycja Y etykiety posz - pozycja Z etykiety red - ilość koloru czerwonego w kolorze etykiety, domyślnie 255 green - ilość koloru zielonego w kolorze etykiety, domyślnie 255 blue - ilość koloru niebieskiego w kolorze etykiety, domyślnie 255 drawdistance - z jakiej odległości ma być widoczna etykieta, domyślnie 100.0 checkLOS - czy w przypadku generowania etykiety, ma być sprawdzana linia wzroku (Line-Of-Sight), tzn. czy etykieta nie jest za jakimś obiektem. Domyślnie true. index - taki jakby priorytet, im wyższy indeks, tym etykieta będzie generowana "wyżej" na stosie. Tzn. jeśli w jednym miejscu na ekranie nakłada się kilka etykiet, to na wierzchu będzie ta z najwyższym indeksem. bool set3DTextLabelText( text3d label, string text ) Zmienia tekst etykiety tekstowej. Zwraca true gdy operacja się powiedzie, false gdy podano nieprawidłowe parametry. string get3DTextLabelText( text3d label ) Zwraca aktualny tekst zawarty w etykiecie tekstowej. bool set3DTextLabelColor( text3d label, int red, int green, int blue ) Zmienia kolor etykiety tekstowej. Zwraca true gdy operacja się powiedzie, false gdy podano nieprawidłowe parametry. int, int, int get3DTextLabelColor( text3d label ) Zwraca kolor etykiety tekstowej w postaci trzech liczb. bool attach3DTextLabel( text3d label, element theElement, [ float offsetX = 0.0, float offsetY = 0.0, float offsetZ = 0.0 ] ) Przyczepia etykietę do innego elementu. Dane są konwertowane na prawidłowy typ, tak jak zawsze. Jeśli konwersja się nie powiedzie, funkcja zwraca "false", a w przypadku powodzenia "true". label - etykieta tekstowa, która ma zostać doczepiona theElement - element, do którego ma zostać doczepiona etykieta tekstowa offsetX - odległość X względem pozycji elementu offsetY - odległość Y względem pozycji elementu offsetZ - odległość Z względem pozycji elementu bool detach3DTextLabel( text3d label ) Odczepia etykietę tekstową od elementu, etykieta wraca na pozycję ustaloną przy jej tworzeniu. Zwraca "true" w przypadku powodzenia, "false" w przypadku błędu. Ta funkcja jest równoznaczna z: attach3DTextLabel(label, nil) Inne funkcje: Ponieważ etykieta tekstowa jest elementem, działa na nią także mnóstwo innych funkcji, wbudowanych w MTA. Przykłady: destroyElement, getElementPosition, setElementPosition Download: Tym razem spakowałem dwa pliki .lua w archiwum ZIP, myślę że będzie to wygodniejsze od kopiowania. Wystarczy wgrać te pliki do zasobu w którym chcemy używać etykiet tekstowych, dodać dwie linijki w meta.xml, i już możemy cieszyć się nowymi funkcjami. QuisTextLabels1_1.zip (Dropbox) Wersja 1.0: Kodu dużo nie ma, tak więc nie będę go nigdzie wstawiał. Skrypt można sobie wkleić do swojego zasobu, albo dodać jako nowy plik w istniejącym zasobie. Można też utworzyć całkiem nowy zasób, ale dostęp do funkcji będzie utrudniony (export). Server-Side: Client-Side: Będę robił aktualizacje, nie jest to ostatnia wersja, tak więc możecie zgłaszać bugi i propozycje, będę wdzięczny Miłej zabawy.
×
×
  • Create New...