Jak dodać samochody addon do serwera FiveM: pliki stream i data

Dodaj samochody addon do FiveM krok po kroku: folder stream, vehicles.meta, carvariations.meta, carcols.meta, handling.meta, linie data_file fxmanifest, addon vs replace.

Masz paczkę samochodów, którą chcesz na swoim serwerze, a folder zawiera pliki takie jak .yft, .ytd i kilka plików .meta. Ten poradnik wyjaśnia, gdzie trafia każdy plik, co fxmanifest.lua potrzebuje i jak spawować samochód, z różnicą między samochodami addon i replace.

Co zawiera packa samochodów addon

Samochód przychodzi w dwóch rodzajach plików:

  • Pliki modelu i tekstury, które trafiają do folderu stream: mycar.yft (model), mycar_hi.yft (model wysokiej szczegółowości), mycar.ytd (tekstury) i czasami pliki .ydr lub .ytyp.
  • Pliki danych, które trafiają do folderu data: vehicles.meta, carvariations.meta, carcols.meta i handling.meta, i czasami vehiclelayouts.meta.

Pierwszy zestaw to to, jak wygląda samochód, drugi zestaw to co jest: jego nazwa, kolory, handling i miejsca siedzenia.

Struktura foldera

Utwórz jeden zasób dla samochodu lub jeden dla całej paczki:

text
resources/[cars]/mycar/
  fxmanifest.lua
  stream/
    mycar.yft
    mycar_hi.yft
    mycar.ytd
  data/
    vehicles.meta
    carvariations.meta
    carcols.meta
    handling.meta

Pliki w stream są wysyłane do graczy automatycznie. Nie wymieniasz ich w manifeście. Pliki w data nie są strumieniowane, a manifest musi je zadeklarować.

fxmanifest.lua

lua
fx_version 'cerulean'
game 'gta5'

files {
    'data/vehicles.meta',
    'data/carvariations.meta',
    'data/carcols.meta',
    'data/handling.meta',
}

data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'CARCOLS_FILE' 'data/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'

Blok files {} udostępnia pliki klientowi gry. Każda linia data_file mówi grze, jaki typ ma plik. Liczą się dwie zasady:

  • Każdy plik potrzebuje obu: jednego wpisu w files i jednej linii data_file z poprawnym typem.
  • Packa z wieloma samochodami często ma folder data na samochód. Możesz użyć wzorca, takiego jak 'data/**/*.meta' w files {}, ale linie data_file dla tych plików muszą nadal być napisane, jeden na typ, a linie typów akceptują ten sam wzorzec.
lua
files { 'data/**/*.meta' }

data_file 'HANDLING_FILE' 'data/**/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/**/vehicles.meta'
data_file 'CARCOLS_FILE' 'data/**/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/**/carvariations.meta'

Jeśli packa ma też vehiclelayouts.meta, zadeklaruj to też, z data_file 'VEHICLE_LAYOUTS_FILE' 'data/vehiclelayouts.meta'.

Uruchom go i spawuj go

W server.cfg, dodaj zasób:

cfg
ensure mycar

Nazwa folderu zasobu i nazwa ensure muszą się zgadzać. Jeśli używasz folderu w nawiasach, takiego jak [cars], ensure [cars] uruchamia wszystko wewnątrz niego.

Nazwa spawnu to modelName w vehicles.meta:

xml
<Item>
  <modelName>mycar</modelName>
  <txdName>mycar</txdName>
  <handlingId>MYCAR</handlingId>
  ...
</Item>

Tutaj spawniasz go za pomocą mycar. W skrypcie:

lua
local model = joaat('mycar')
lib.requestModel(model)
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)

lib.requestModel pochodzi z ox_lib. Bez tego, wołaj RequestModel(model) i czekaj, aż HasModelLoaded(model) będzie true. Większość menu administratora i menu txAdmin spawniają samochód z tej samej nazwy.

Wskazówka: modelName, nazwy plików .yft/.ytd i txdName powinny się wszystkie zgadzać. Niezgodność to pierwsza rzecz do sprawdzenia, gdy samochód się nie pojawia.

Samochody addon vs samochody replace

Samochód addon ma nową nazwę, której gra podstawowa nie używa, na przykład mycar. Potrzebuje plików danych powyżej i dodaje samochód do listy. Zarówno twój nowy samochód, jak i oryginalne samochody istnieją. To prawidłowy wybór dla prawie wszystkich samochodów dzisiaj.

Samochód replace używa nazw plików samochodu z gry podstawowej, takiego jak sultan.yft, i umieszcza je w folderze stream. FiveM następnie ładuje twoje zamiast oryginału, wszędzie tam gdzie ten samochód się pojawia, łącznie z ruchem. Zwykle nie potrzebuje vehicles.meta dla modelu, ponieważ gra już zna nazwę. Samochód replace zmienia tylko wygląd. Jeśli chcesz inny handling, potrzebujesz pasującego handling.meta z oryginalnym ID handlingu.

Nie mieszaj tych dwóch pomysłów w jednym folderze. Packa, która mieszała pliki replace i addon to powszechne źródło zdezorientowanych bugów.

Sprawdź wynik

  • Uruchom serwer i przeczytaj konsolę. Błędy zasobu, takie jak brakujący plik wymieniony w files, pojawiają się na starcie. Jeśli zasób w ogóle się nie uruchamia, zobacz couldn't start resource.
  • Przyłącz się i spawuj samochód. Jeśli samochód nie zostanie znaleziony, nazwa nie pasuje do modelName lub zasób nie jest uruchomiony.
  • Otwórz kolory i handling samochodu w grze, aby sprawdzić, czy pliki carcols.meta i handling.meta są w użyciu.

Częste problemy

  • Samochód nie istnieje. Sprawdź ensure, wpisy files i modelName. Błąd pisowni w ścieżce w files zatrzymuje zasób.
  • Samochód jest niewidoczny, biały lub ma złe tekstury. Brakuje .ytd lub jest nazwany inaczej niż model. Zobacz oversized assets, jeśli widzisz również ostrzeżenia strumieniowania.
  • Samochód jeździ jak zwykły samochód. handling.meta nie jest zadeklarowany lub jego handlingId nie pasuje do tego w vehicles.meta.
  • Samochód oparty na DLC pojawia się jako zepsuty. Niektóre samochody potrzebują nowszej wersji gry. Ustaw jedno za pomocą sv_enforceGameBuild w server.cfg: zobacz sv_enforceGameBuild and DLC.

Lista kontrolna

Symptom Naprawa
Zasób się nie uruchamia Sprawdź, czy każda ścieżka w files {} istnieje i manifest nie ma literówki
Samochód nie może być spawowany Spawuj z modelName z vehicles.meta; ensure zasobu
Samochód jest biały lub nie ma tekstur Sprawdź plik .ytd i jego nazwę wobec modelu
Samochód jeździ źle Dodaj linię HANDLING_FILE i dopasuj handlingId
Brak kolorów lub złe kolory Dodaj linie CARCOLS_FILE i VEHICLE_VARIATION_FILE
Oryginalny samochód się zmienił Użyłeś nazwy replace: zmień nazwy plików i model dla addonu
Samochód zepsuty z modelem DLC Podnieś wersję gry za pomocą sv_enforceGameBuild

Szybkie odpowiedzi

Jaką nazwę używam do spawnu samochodu addon?

Wartość modelName w vehicles.meta. Jeśli mówi <modelName>mycar</modelName>, spawniasz go za pomocą mycar, co musi pasować do nazw plików .yft i .ytd.

Jaka jest różnica między samochodem addon a samochodem replace?

Samochód replace zastępuje samochód z podstawowej gry, używając jego nazw plików, więc oryginalny znika. Samochód addon ma nową unikalną nazwę i swoje własne pliki meta, i siedzi obok oryginalnych samochodów.

Mój samochód się spawnia, ale jeździ źle lub wygląda na biały. Co powinienem sprawdzić?

Zły handling wskazuje na handling.meta i jego linię data_file. Biały lub brakujący teksturę samochód wskazuje na brakujący .ytd lub nazwę, która nie pasuje do modelu.

Skrypty bez tego problemu

Chameleon Paints82 lakiery kameleon zmieniające kolor, w jednym menu — klik i gotowe.Zobacz skrypt →Advanced BoostingBoosting pojazdów z tabletu: kontrakty od klasy D do S+, ekipy i kolejka na żywo.Zobacz skrypt →Car BombPodkładaj, wykrywaj i rozbrajaj bomby w autach — z telefonem-detonatorem i minigrą C4.Zobacz skrypt →

Czytaj dalej