Comment ajouter des voitures addon à un serveur FiveM : fichiers stream et data
Ajoutez des voitures addon à FiveM étape par étape : le dossier stream, vehicles.meta, carvariations.meta, carcols.meta, handling.meta, lignes fxmanifest data_file, addon vs remplacer.
Vous avez un pack de voitures que vous voulez sur votre serveur, et le dossier contient des fichiers comme .yft, .ytd et plusieurs fichiers .meta. Ce guide explique où chaque fichier va, ce que le fxmanifest.lua a besoin et comment générer la voiture, avec la différence entre les voitures addon et remplaçantes.
Ce qu'un pack de voitures addon contient
Une voiture vient en deux sortes de fichiers :
- Fichiers de modèle et texture, qui vont dans un dossier
stream:mycar.yft(le modèle),mycar_hi.yft(le modèle haute détail),mycar.ytd(textures) et parfois des fichiers.ydrou.ytyp. - Fichiers de données, qui vont dans un dossier
data:vehicles.meta,carvariations.meta,carcols.metaethandling.meta, et parfoisvehiclelayouts.meta.
Le premier ensemble est ce à quoi la voiture ressemble, le second ensemble c'est ce qu'elle est : son nom, couleurs, gestion et sièges.
La structure des dossiers
Créez une ressource pour la voiture, ou une pour un pack entier :
resources/[cars]/mycar/
fxmanifest.lua
stream/
mycar.yft
mycar_hi.yft
mycar.ytd
data/
vehicles.meta
carvariations.meta
carcols.meta
handling.metaLes fichiers dans stream sont envoyés aux joueurs automatiquement. Vous ne les listez pas dans le manifest. Les fichiers dans data ne sont pas streamés, et le manifest doit les déclarer.
Le 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'Le bloc files {} rend les fichiers disponibles au client du jeu. Chaque ligne data_file dit au jeu quel type c'est un fichier. Deux règles importent :
- Chaque fichier a besoin des deux : une entrée dans
fileset une lignedata_fileavec le bon type. - Un pack avec beaucoup de voitures a souvent un dossier
datapar voiture. Vous pouvez utiliser un modèle comme'data/**/*.meta'dansfiles {}, mais les lignesdata_filepour ces fichiers doivent toujours être écrites, une par type, et les lignes de type acceptent le même modèle.
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'Si le pack a aussi un vehiclelayouts.meta, déclarez-le aussi, avec data_file 'VEHICLE_LAYOUTS_FILE' 'data/vehiclelayouts.meta'.
Le démarrer et le générer
Dans server.cfg, ajoutez la ressource :
ensure mycarLe nom du dossier de la ressource et le nom ensure doivent correspondre. Si vous utilisez un dossier entre crochets comme [cars], ensure [cars] démarre tout ce qu'il contient.
Le nom de génération est le modelName dans vehicles.meta :
<Item>
<modelName>mycar</modelName>
<txdName>mycar</txdName>
<handlingId>MYCAR</handlingId>
...
</Item>Ici vous la générez avec mycar. Dans un script :
local model = joaat('mycar')
lib.requestModel(model)
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)lib.requestModel vient de ox_lib. Sans cela, appelez RequestModel(model) et attendez jusqu'à ce que HasModelLoaded(model) soit vrai. La plupart des menus administrateur et le menu txAdmin génèrent une voiture du même nom.
Conseil : le
modelName, les noms des fichiers.yft/.ytdet letxdNamedoivent tous correspondre. Une non-concordance est la première chose à vérifier quand une voiture n'apparaît pas.
Voitures addon contre voitures remplaçantes
Une voiture addon a un nouveau nom que le jeu de base n'utilise pas, par exemple mycar. Elle a besoin des fichiers de données ci-dessus, et ajoute une voiture à la liste. Votre nouvelle voiture et les voitures d'origine existent toutes les deux. C'est le bon choix pour presque toutes les voitures aujourd'hui.
Une voiture remplaçante utilise les noms de fichiers d'une voiture du jeu de base, comme sultan.yft, et les met dans un dossier stream. FiveM charge alors la vôtre à la place de l'original, partout où cette voiture apparaît, y compris dans le trafic. Elle n'a généralement pas besoin de vehicles.meta pour le modèle, car le jeu connaît déjà le nom. Une voiture remplaçante ne change que l'apparence. Si vous voulez une autre gestion, vous avez besoin du handling.meta correspondant avec l'identifiant de gestion d'origine.
Ne mélangez pas les deux idées dans un dossier. Un pack qui mélange des fichiers remplaçants et addon est une source courante de bugs confus.
Vérifier le résultat
- Démarrez le serveur et lisez la console. Les erreurs de ressource, comme un fichier manquant listé dans
files, apparaissent au démarrage. Si la ressource ne démarre pas du tout, voir impossible de démarrer la ressource. - Rejoignez et générez la voiture. Si une voiture n'est pas trouvée, le nom ne correspond pas au
modelName, ou la ressource n'est pas démarrée. - Ouvrez les couleurs et la gestion de la voiture en jeu pour vérifier que les fichiers
carcols.metaethandling.metasont en utilisation.
Problèmes courants
- La voiture n'existe pas. Vérifiez
ensure, les entréesfileset lemodelName. Une typo dans un chemin dansfilesarrête la ressource. - La voiture est invisible, ou blanche, ou a les mauvaises textures. Le
.ytdest manquant ou nommé différemment du modèle. Voir assets surdimensionnés si vous voyez aussi des avertissements de streaming. - La voiture gère comme une voiture stock. Le
handling.metan'est pas déclaré, ou sonhandlingIdne correspond pas à celui dansvehicles.meta. - Une voiture basée sur un DLC apparaît cassée. Certaines voitures ont besoin d'un build de jeu plus récent. Définissez-en un avec
sv_enforceGameBuilddansserver.cfg: voir sv_enforceGameBuild et DLC.
Checklist
| Problème | Solution |
|---|---|
| La ressource ne démarre pas | Vérifiez que chaque chemin dans files {} existe et que le manifest n'a pas de typo |
| La voiture ne peut pas être générée | Générez avec le modelName de vehicles.meta ; ensure la ressource |
| La voiture est blanche ou n'a pas de textures | Vérifiez le fichier .ytd et son nom par rapport au modèle |
| La voiture gère mal | Ajoutez la ligne HANDLING_FILE et correspondez le handlingId |
| Pas de couleurs ou mauvaises couleurs | Ajoutez les lignes CARCOLS_FILE et VEHICLE_VARIATION_FILE |
| La voiture d'origine a changé | Vous avez utilisé un nom de remplaçant : renommez les fichiers et le modèle pour un addon |
| Voiture cassée avec un modèle DLC | Augmentez le build de jeu avec sv_enforceGameBuild |
Réponses rapides
Quel nom utilise-je pour générer une voiture addon ?
La valeur modelName dans vehicles.meta. Si c'est <modelName>mycar</modelName>, vous la générez avec mycar, qui doit correspondre aux noms des fichiers .yft et .ytd aussi.
Quelle est la différence entre une voiture addon et une voiture remplaçante ?
Une voiture remplaçante remplace une voiture du jeu de base en utilisant ses noms de fichiers, donc l'original est parti. Une voiture addon a un nouveau nom unique et ses propres fichiers meta, et se situe à côté des voitures d'origine.
Ma voiture génère mais conduit mal ou est blanche. Que dois-je vérifier ?
Une mauvaise gestion renvoie à handling.meta et sa ligne data_file. Une voiture blanche ou avec textures manquantes renvoie à un .ytd manquant ou à un nom qui ne correspond pas au modèle.
Des scripts sans ce problème
Chameleon Paints82 peintures caméléon à reflets changeants, dans un menu à appliquer en un clic.Voir le script →
Advanced BoostingDu boosting de véhicules piloté par tablette : contrats de classe D à S+, crews et file d’attente en direct.Voir le script →
Car BombPosez, détectez et désamorcez des bombes sur les véhicules — avec téléphone détonateur et mini-jeu de C4.Voir le script →