Как добавить автомобили дополнений (addon) на FiveM сервер: файлы stream и data

Добавьте автомобили дополнений на FiveM пошагово: папка stream, vehicles.meta, carvariations.meta, carcols.meta, handling.meta, строки data_file в fxmanifest, различие между addon и replace.

У вас есть пак автомобилей, который вы хотите добавить на сервер, и папка содержит файлы такие как .yft, .ytd и несколько файлов .meta. Это руководство объясняет, где каждый файл находится, что нужно в fxmanifest.lua и как спавнить автомобиль, с объяснением различия между автомобилями дополнений и заменяемыми.

Что содержит пак автомобилей дополнений

Автомобиль состоит из двух видов файлов:

  • Файлы модели и текстур, которые находятся в папке stream: mycar.yft (модель), mycar_hi.yft (высокодетальная модель), mycar.ytd (текстуры) и иногда файлы .ydr или .ytyp.
  • Файлы данных, которые находятся в папке data: vehicles.meta, carvariations.meta, carcols.meta и handling.meta, и иногда vehiclelayouts.meta.

Первый набор — это как выглядит автомобиль, второй набор — это что он есть: его имя, цвета, обработка и места.

Структура папок

Создайте один ресурс для автомобиля или один для всего пака:

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

Файлы в stream отправляются игрокам автоматически. Вам не нужно их перечислять в манифесте. Файлы в data не потоков, и манифест должен их объявить.

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'

Блок files {} делает файлы доступными для игрового клиента. Каждая строка data_file сообщает игре, какой тип файла. Два правила важны:

  • Каждому файлу нужно оба: одна запись в files и одна строка data_file с правильным типом.
  • Пак с множеством автомобилей часто имеет папку data для каждого автомобиля. Вы можете использовать паттерн типа 'data/**/*.meta' в files {}, но строки data_file для этих файлов все равно должны быть написаны, по одной на тип, и строки типа принимают то же паттерн.
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'

Если пак также имеет vehiclelayouts.meta, объявите его тоже, с data_file 'VEHICLE_LAYOUTS_FILE' 'data/vehiclelayouts.meta'.

Запустите и спавните его

В server.cfg добавьте ресурс:

cfg
ensure mycar

Имя папки ресурса и имя ensure должны совпадать. Если вы используете папку с скобками, такую как [cars], ensure [cars] запускает всё внутри неё.

Имя для спавна — это modelName в vehicles.meta:

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

Здесь вы спавните его как mycar. В скрипте:

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

lib.requestModel из ox_lib. Без неё вызовите RequestModel(model) и ждите, пока HasModelLoaded(model) не вернёт true. Большинство меню администратора и меню txAdmin спавнят автомобиль по тому же имени.

Совет: modelName, имена файлов .yft/.ytd и txdName должны совпадать. Несовпадение — первое, что проверить, когда автомобиль не появляется.

Автомобили дополнений против заменяемых автомобилей

Автомобиль дополнения имеет новое имя, которое базовая игра не использует, например mycar. Ему нужны файлы данных, описанные выше, и добавляет автомобиль в список. И ваш новый автомобиль, и оригинальные автомобили существуют. Это правильный выбор для почти всех автомобилей в наши дни.

Заменяемый автомобиль использует имена файлов автомобиля из базовой игры, такие как sultan.yft, и помещает их в папку stream. FiveM затем загружает ваш вместо оригинального, везде где этот автомобиль появляется, включая трафик. Обычно ему не нужен vehicles.meta для модели, так как игра уже знает имя. Заменяемый автомобиль изменяет только внешний вид. Если вы хотите другую обработку, вам нужен соответствующий handling.meta с исходным handling id.

Не смешивайте две идеи в одной папке. Пак, который смешивает файлы replace и addon, — это обычный источник запутанных ошибок.

Проверьте результат

  • Запустите сервер и читайте консоль. Ошибки ресурса, такие как отсутствующий файл, указанный в files, появляются при запуске. Если ресурс вообще не запускается, см. не мог запустить ресурс.
  • Присоединитесь и спавните автомобиль. Если автомобиль не найден, имя не совпадает с modelName, или ресурс не запущен.
  • Откройте цвета и обработку автомобиля в игре, чтобы проверить, что файлы carcols.meta и handling.meta используются.

Распространённые проблемы

  • Автомобиль не существует. Проверьте ensure, записи files и modelName. Опечатка в пути в files останавливает ресурс.
  • Автомобиль невидимый, белый или имеет неправильные текстуры. .ytd отсутствует или назван не так, как модель. См. oversized assets, если вы также видите предупреждения потоков.
  • Автомобиль ездит как стандартный. handling.meta не объявлен, или его handlingId не совпадает с тем, что в vehicles.meta.
  • Автомобиль на основе DLC выглядит сломанным. Некоторые автомобили требуют более новую версию игры. Установите одну с sv_enforceGameBuild в server.cfg: см. sv_enforceGameBuild и DLC.

Контрольный список

Проблема Решение
Ресурс не запускается Проверьте каждый путь в files {} существует и манифест не имеет опечатки
Автомобиль не может быть спавнен Спавните с помощью modelName из vehicles.meta; ensure ресурс
Автомобиль белый или без текстур Проверьте файл .ytd и его имя соответствует модели
Автомобиль ездит неправильно Добавьте строку HANDLING_FILE и совпадите handlingId
Нет цветов или неправильные цвета Добавьте строки CARCOLS_FILE и VEHICLE_VARIATION_FILE
Оригинальный автомобиль изменился Вы использовали имя replace: переименуйте файлы и модель для addon
Автомобиль сломан с моделью DLC Поднимите версию игры с помощью sv_enforceGameBuild

Короткие ответы

Какое имя использовать, чтобы спавнить автомобиль дополнения?

Значение modelName в vehicles.meta. Если там написано <modelName>mycar</modelName>, вы спавните его с помощью mycar, которое должно совпадать с названиями файлов .yft и .ytd.

В чем разница между автомобилем дополнения (addon) и заменяемым автомобилем (replace)?

Заменяемый автомобиль перезаписывает автомобиль из базовой игры, используя его имена файлов, поэтому оригинал исчезает. Автомобиль дополнения имеет новое уникальное имя и свои файлы meta, и находится рядом с исходными автомобилями.

Мой автомобиль спавнится, но ездит неправильно или выглядит белым. Что проверить?

Неправильная обработка указывает на handling.meta и его строку data_file. Белый или без текстуры автомобиль указывает на отсутствующий .ytd или несовпадающее имя с моделью.

Скрипты без этой проблемы

Chameleon Paints82 краски-хамелеона с переливом цвета в одном меню — наносятся в один клик.Смотреть скрипт →Advanced BoostingУгон машин на заказ через планшет: контракты от класса D до S+, команды и живая очередь.Смотреть скрипт →Car BombЗакладывайте, находите и обезвреживайте бомбы в машинах — с телефоном-детонатором и мини-игрой C4.Смотреть скрипт →

Читайте также