FunkcjeWłasny serwerDla twórcówTrilogy Hub vs MTAFAQDocs Lua Pobierz launcher
  1. Dokumentacja
  2. Konwencje

Przewodnik

Konwencje

Zasady wspólne dla całego API: strony skryptu, elementy, root i source, współrzędne i obsługa błędów.

Serwer, klient, obie strony

Przy każdej funkcji i zdarzeniu widzisz, gdzie działa:

ZnakStronaGdzie użyjesz
SSerwerskrypty type="server"
CKlient (client)skrypty type="client"
OObiekażdy skrypt, także type="shared"

Niektóre funkcje wspólne mają po stronie klienta krótszą składnię, bo zawsze dotyczą lokalnego gracza. Na przykład outputChatBox na serwerze przyjmuje gracza, a u klienta od razu pisze na jego czacie. Takie różnice są opisane na stronie funkcji.

Elementy

Gracze, pojazdy, obiekty, znaczniki, okna GUI i dźwięki to elementy. Funkcje przyjmują je jako argumenty, a zdarzenia przekazują jako source. isElement(x) sprawdza, czy element nadal istnieje.

Elementy tworzą drzewo. Na górze jest root, pod nim każdy zasób ma swój resourceRoot. Obsługa podpięta do root złapie zdarzenie każdego elementu, a podpięta do resourceRoot tylko elementów tego zasobu.

Zmienne wbudowane

ZmiennaStronaZnaczenie
rootobiekorzeń drzewa elementów
resourceRootobiekorzeń elementów bieżącego zasobu
sourceobieelement, którego dotyczy zdarzenie
localPlayerklientgracz, u którego działa skrypt
clientserwergracz, który wysłał zdarzenie przez triggerServerEvent

Współrzędne

Pozycję podajesz jako trzy liczby x, y, z w metrach świata gry. Środek mapy to 0, 0, Los Santos leży na południowym wschodzie (dodatnie x, ujemne y), a z to wysokość. Obroty podajesz w stopniach.

Błędy i złe argumenty

Zły argument nie przerywa skryptu. Funkcja zwraca false, a w konsoli pojawia się ostrzeżenie z nazwą funkcji i numerem argumentu:

Bad argument @ 'setPlayerMoney' [oczekiwano player na pozycji 1, jest string 'Adam']

Wartość spoza zakresu też jest odrzucana, a nie obcinana, chyba że opis funkcji mówi inaczej. Dlatego warto sprawdzać wynik funkcji, które coś tworzą:

local auto = createVehicle(411, 0, 0, 3)
if not auto then
    outputDebugString("Nie udało się stworzyć auta")
    return
end

Własne zdarzenia

Zdarzenie rejestrujesz przez addEvent("nazwa"). Jeśli ma je wywoływać klient, serwer musi zarejestrować je z drugim argumentem true: addEvent("nazwa", true). Bez tego serwer odrzuci zdarzenie od gracza. Szczegóły w triggerServerEvent i triggerClientEvent.