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

Przewodnik

Pierwsze kroki

Twój pierwszy zasób w pięć minut: folder, meta.xml, jeden skrypt serwera i jeden klienta.

Czym jest zasób

Wszystko, co dzieje się na serwerze, robią zasoby. Zasób to folder w resources/ z plikiem meta.xml, który mówi serwerowi, jakie skrypty i pliki do niego należą. Tryb gry, panel admina, licznik prędkości czy wyścig to osobne zasoby, które włączasz i wyłączasz bez restartu serwera.

Jeśli pisałeś pod MTA:SA, znasz to na pamięć. Struktura folderów, meta.xml i nazwy funkcji są takie same.

Utwórz folder

W folderze serwera otwórz resources/ i utwórz w nim folder witaj. Nazwa folderu to nazwa zasobu, której użyjesz w konsoli.

resources/
  witaj/
    meta.xml
    server.lua
    client.lua

Napisz meta.xml

meta.xml wymienia skrypty zasobu. Atrybut type decyduje, gdzie skrypt działa: server zostaje na serwerze, client jest wysyłany do każdego gracza.

<meta>
    <info name="Witaj" author="Ty" version="1.0" type="script" />
    <script src="server.lua" type="server" />
    <script src="client.lua" type="client" />
</meta>

Dodaj skrypty

Skrypt serwera reaguje na wejście gracza: stawia go w świecie i pisze na czacie. Skrypt klienta rysuje napis na ekranie gracza w każdej klatce.

addEventHandler("onPlayerJoin", root, function()
    -- source to gracz, który właśnie wszedł
    spawnPlayer(source, 2495.3, -1687.0, 13.5)
    outputChatBox("Witaj na Grove Street, " .. getPlayerName(source) .. "!", source, 255, 122, 34)
end)

Uruchom

Wpisz w konsoli serwera:

start witaj

Wejdź na serwer z launchera. Po zmianie skryptu nie musisz wyłączać serwera, wystarczy restart witaj. Komenda przeładowuje zasób na serwerze i u wszystkich graczy.

Błąd w skrypcie? Serwer wypisze w konsoli plik, numer linii i opis. Zły argument w wywołaniu funkcji nie przerywa skryptu, tylko zwraca false z ostrzeżeniem. Więcej w Konwencjach.

Co dalej