- Dokumentacja
- 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:
| Znak | Strona | Gdzie użyjesz |
|---|---|---|
| S | Serwer | skrypty type="server" |
| C | Klient (client) | skrypty type="client" |
| O | Obie | każ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
| Zmienna | Strona | Znaczenie |
|---|---|---|
root | obie | korzeń drzewa elementów |
resourceRoot | obie | korzeń elementów bieżącego zasobu |
source | obie | element, którego dotyczy zdarzenie |
localPlayer | klient | gracz, u którego działa skrypt |
client | serwer | gracz, 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.