Como adicionar carros addon a um servidor FiveM: stream e data files
Adicione carros addon ao FiveM passo a passo: a pasta stream, vehicles.meta, carvariations.meta, carcols.meta, handling.meta, linhas data_file no fxmanifest, addon vs replace.
Você tem um pacote de carros que quer no seu servidor, e a pasta contém arquivos como .yft, .ytd e vários arquivos .meta. Este guia explica onde cada arquivo vai, o que o fxmanifest.lua precisa e como spawnar o carro, com a diferença entre carros addon e replace.
O que um pacote de carros addon contém
Um carro vem em dois tipos de arquivos:
- Arquivos de modelo e textura, que vão em uma pasta
stream:mycar.yft(o modelo),mycar_hi.yft(o modelo de alto detalhe),mycar.ytd(texturas) e às vezes arquivos.ydrou.ytyp. - Arquivos de dados, que vão em uma pasta
data:vehicles.meta,carvariations.meta,carcols.metaehandling.meta, e às vezesvehiclelayouts.meta.
O primeiro conjunto é como o carro se parece, o segundo conjunto é o que ele é: seu nome, cores, manuseio e assentos.
A estrutura de pastas
Crie um recurso para o carro, ou um para um pacote inteiro:
resources/[cars]/mycar/
fxmanifest.lua
stream/
mycar.yft
mycar_hi.yft
mycar.ytd
data/
vehicles.meta
carvariations.meta
carcols.meta
handling.metaArquivos em stream são enviados aos jogadores automaticamente. Você não os lista no manifesto. Arquivos em data não são streamed, e o manifesto deve declarar-los.
O fxmanifest.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'O bloco files {} disponibiliza os arquivos ao cliente do jogo. Cada linha data_file diz ao jogo qual é o tipo de um arquivo. Duas regras importam:
- Cada arquivo precisa de ambas: uma entrada em
filese uma linhadata_filecom o tipo certo. - Um pacote com muitos carros geralmente tem uma pasta
datapor carro. Você pode usar um padrão como'data/**/*.meta'emfiles {}, mas as linhasdata_filepara esses arquivos ainda devem ser escritas, uma por tipo, e as linhas de tipo aceitam o mesmo padrão.
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'Se o pacote também tem um vehiclelayouts.meta, declare-o também, com data_file 'VEHICLE_LAYOUTS_FILE' 'data/vehiclelayouts.meta'.
Inicie-o e spawnei-o
Em server.cfg, adicione o recurso:
ensure mycarO nome da pasta de recurso e o nome do ensure devem corresponder. Se você usar uma pasta com colchetes como [cars], ensure [cars] inicia tudo dentro dela.
O nome de spawn é o modelName em vehicles.meta:
<Item>
<modelName>mycar</modelName>
<txdName>mycar</txdName>
<handlingId>MYCAR</handlingId>
...
</Item>Aqui você o spawnará com mycar. Em um script:
local model = joaat('mycar')
lib.requestModel(model)
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)lib.requestModel é de ox_lib. Sem ela, chame RequestModel(model) e aguarde até que HasModelLoaded(model) seja verdadeiro. A maioria dos menus de admin e o menu do txAdmin spawnam um carro do mesmo nome.
Dica: o
modelName, os nomes dos arquivos.yft/.ytde otxdNamedevem todos concordar. Uma incompatibilidade é a primeira coisa a verificar quando um carro não aparece.
Carros addon versus carros replace
Um carro addon tem um novo nome que o jogo base não usa, por exemplo mycar. Ele precisa dos arquivos de dados acima, e adiciona um carro à lista. Tanto seu novo carro quanto os carros originais existem. Esta é a escolha correta para quase todos os carros hoje.
Um carro replace usa os nomes dos arquivos de um carro do jogo base, como sultan.yft, e os coloca em uma pasta stream. O FiveM então carrega o seu em vez do original, em todos os lugares onde esse carro apareça, incluindo tráfego. Geralmente não precisa de vehicles.meta para o modelo, já que o jogo já conhece o nome. Um carro replace apenas muda a aparência. Se você quer outro manuseio, você precisa do handling.meta correspondente com o ID de manuseio original.
Não misture as duas ideias em uma pasta. Um pacote que mistura arquivos replace e addon é uma fonte comum de bugs confusos.
Verifique o resultado
- Inicie o servidor e leia o console. Erros de recurso, como um arquivo faltante listado em
files, aparecem ao iniciar. Se o recurso não inicia, veja couldn't start resource. - Entre e spawnei o carro. Se um carro não for encontrado, o nome não corresponde ao
modelName, ou o recurso não foi iniciado. - Abra as cores e manuseio do carro no jogo para verificar se os arquivos
carcols.metaehandling.metaestão em uso.
Problemas comuns
- O carro não existe. Verifique
ensure, as entradas defilese omodelName. Um erro de digitação em um caminho emfilespara o recurso. - O carro é invisível, branco ou tem texturas erradas. O
.ytdestá faltando ou nomeado diferentemente do modelo. Veja oversized assets se também ver avisos de streaming. - O carro se comporta como um carro padrão. O
handling.metanão está declarado, ou seuhandlingIdnão corresponde ao devehicles.meta. - Um carro baseado em DLC mostra como quebrado. Alguns carros precisam de uma build de jogo mais nova. Defina uma com
sv_enforceGameBuildemserver.cfg: veja sv_enforceGameBuild and DLC.
Checklist
| Sintoma | Solução |
|---|---|
| Recurso não inicia | Verifique se cada caminho em files {} existe e o manifesto não tem erro de digitação |
| Carro não pode ser spawned | Spawnei com o modelName de vehicles.meta; ensure o recurso |
| Carro é branco ou não tem texturas | Verifique o arquivo .ytd e seu nome contra o modelo |
| Carro se comporta errado | Adicione a linha HANDLING_FILE e corresponda o handlingId |
| Sem cores ou cores erradas | Adicione linhas CARCOLS_FILE e VEHICLE_VARIATION_FILE |
| Carro original mudou | Você usou um nome replace: renomeie os arquivos e o modelo para um addon |
| Carro quebrado com um modelo DLC | Aumente a build do jogo com sv_enforceGameBuild |
Respostas rápidas
Qual nome uso para spawnar um carro addon?
O valor modelName em vehicles.meta. Se disser <modelName>mycar</modelName>, você o spawnará com mycar, que deve corresponder aos nomes dos arquivos .yft e .ytd também.
Qual é a diferença entre um carro addon e um carro replace?
Um carro replace sobrescreve um carro do jogo base usando seus nomes de arquivo, então o original se vai. Um carro addon tem um novo nome único e seus próprios arquivos meta, e fica ao lado dos carros originais.
Meu carro spawnará mas dirige errado ou fica branco. O que devo verificar?
Manuseio errado aponta para handling.meta e sua linha data_file. Um carro branco ou com textura faltando aponta para um .ytd faltante ou um nome que não corresponde ao modelo.
Scripts sem esse problema
Chameleon Paints82 pinturas camaleão que mudam de cor, num menu de um clique.Ver script →
Advanced BoostingBoosting de veículos pelo tablet: contratos da classe D à S+, crews e fila ao vivo.Ver script →
Car BombPlante, detecte e desarme bombas em veículos — com celular detonador e minigame de C4.Ver script →