Comment ajouter des peds addon à FiveM : fichiers stream, peds.meta, nom de génération

Ajoutez des peds addon à un serveur FiveM : les fichiers stream (ydd, yft, ytd, ymt), peds.meta avec PED_METADATA_FILE, génération par nom de modèle et définition d'un ped comme modèle de joueur.

Vous avez un pack de peds, avec des fichiers comme .ydd, .yft, .ytd et un peds.meta, et vous voulez générer le ped ou jouer comme tel. Ce guide montre où chaque fichier va, ce que le manifest a besoin, comment générer le ped et comment le définir comme modèle de joueur.

Ce qu'un pack de peds contient

Un ped est composé de plusieurs fichiers qui partagent le nom du ped :

  • .yft : le modèle principal du ped.
  • .ydd : les vêtements et les parties du corps (tête, cheveux, torse, jambes). Souvent placé dans un sous-dossier avec le nom du ped.
  • .ytd : les textures.
  • .ymt : le fichier « ped variation », qui dit au jeu quels composants et textures le ped a.
  • peds.meta : l'entrée de données qui définit le ped (nom, type, animations et cetera).

Les fichiers de modèle vont dans stream. Le peds.meta se place à côté du manifest et est chargé comme un fichier de données.

Structure des dossiers

text
resources/[peds]/mycop/
  fxmanifest.lua
  peds.meta
  stream/
    mycop.yft
    mycop.ymt
    mycop.ytd
    mycop/
      head_000_r.ydd
      uppr_000_u.ydd
      lowr_000_u.ydd
      ...

Les noms de fichiers internes exacts dépendent du pack. Ne les renommez pas : le .ymt les référence. Gardez la structure que l'auteur vous a donnée.

Le fxmanifest.lua

lua
fx_version 'cerulean'
game 'gta5'

files {
    'peds.meta',
}

data_file 'PED_METADATA_FILE' 'peds.meta'

L'entrée files rend le fichier disponible au client du jeu, et data_file 'PED_METADATA_FILE' dit au jeu qu'il contient des définitions de peds. Vous avez besoin des deux. Pour plusieurs peds dans une ressource, vous pouvez utiliser un peds.meta avec plusieurs entrées, ou un modèle comme '**/peds.meta' dans les deux lignes.

Le nom d'un ped est dans peds.meta :

xml
<CPedModelInfo__InitDataList>
  <InitDatas>
    <Item>
      <Name>mycop</Name>
      <PropsName>NULL</PropsName>
      ...
    </Item>
  </InitDatas>
</CPedModelInfo__InitDataList>

Ici le nom du modèle est mycop. Il doit correspondre aux noms de fichiers du .yft, .ymt et .ytd.

Le démarrer et le générer

cfg
ensure mycop

Pour générer le ped dans un script, demandez d'abord le modèle :

lua
local model = joaat('mycop')

RequestModel(model)
while not HasModelLoaded(model) do
    Wait(0)
end

local ped = CreatePed(4, model, coords.x, coords.y, coords.z, heading, true, false)
SetModelAsNoLongerNeeded(model)

Si votre serveur utilise ox_lib, lib.requestModel(model) fait la demande et l'attente. Si le nom du modèle n'existe pas, HasModelLoaded ne devient jamais vrai et la boucle ci-dessus se bloque, donc un délai d'attente est une bonne pratique pour les noms qui viennent d'une configuration.

Beaucoup de menus administrateur peuvent aussi générer un ped par nom : tapez mycop et il apparaît.

Définir le ped comme modèle de joueur

Pour jouer comme le ped, changez le modèle du joueur :

lua
local model = joaat('mycop')

RequestModel(model)
while not HasModelLoaded(model) do
    Wait(0)
end

SetPlayerModel(PlayerId(), model)
SetModelAsNoLongerNeeded(model)
SetPedDefaultComponentVariation(PlayerPedId())

Rappelez-vous que changer le modèle du joueur vous donne un nouveau ped. Les armes, la santé et certains états sont réinitialisés, donc rendez-les après le changement si votre serveur en a besoin.

Les scripts de skin et de personnage sont le problème principal. Ils appliquent un ped freemode (mp_m_freemode_01 ou mp_f_freemode_01) quand vous générez, et votre modèle est remplacé un moment plus tard. Options :

  • Utilisez l'option dans votre script de skin. Beaucoup de scripts d'apparence ont un moyen de définir un ped personnalisé ou une liste de peds autorisés. Vérifiez la configuration du script.
  • Définissez le modèle après le chargement du skin. Sur ESX, attendez esx:playerLoaded et que le script de skin finisse. Sur QBCore, attendez QBCore:Client:OnPlayerLoaded. Puis appelez SetPlayerModel.
  • N'enregistrez pas le ped addon comme le skin. Les données d'apparence pour un ped freemode ne s'adaptent pas à un autre modèle, et un skin enregistré du mauvais type peut faire charger le personnage mal. Gardez le choix du ped dans un champ ou un script séparé.

Sur QBox c'est pareil : le script d'apparence décide quel modèle le joueur obtient, donc définissez le ped après, ou utilisez sa propre option de ped personnalisé s'il y en a une.

Problèmes courants

  • Le ped est invisible ou un modèle par défaut. Le peds.meta n'est pas chargé ou les noms diffèrent. Vérifiez la ligne data_file et le nom dans <Name>.
  • Le ped n'a pas de visage ou a les textures blanches. Les fichiers .ytd ou .ydd sont manquants, dans le mauvais dossier ou renommés. Le .ymt a besoin des noms d'origine.
  • La ressource démarre mais le ped ne peut pas être généré. Une typo dans le nom de génération. Elle doit être égale à l'entrée <Name> dans peds.meta.
  • Le jeu plante ou le streaming avertit. Les grands fichiers et beaucoup de peds utilisent la mémoire de streaming. Voir assets surdimensionnés.
  • La ressource ne démarre pas. Un chemin dans files n'existe pas. Voir impossible de démarrer la ressource.

Les voitures suivent la même idée de fichier de données : voir comment ajouter des voitures addon.

Checklist

Problème Solution
Le ped ne peut pas être généré Utilisez le <Name> de peds.meta ; ensure la ressource
Le ped est invisible ou par défaut Ajoutez files et data_file 'PED_METADATA_FILE' ; correspondez les noms
Textures blanches ou manquantes Gardez les noms .ydd et .ytd comme dans le pack
Le modèle se réinitialise après la génération Appelez SetPlayerModel après que le script de skin ou de personnage finisse
Les armes disparues après le changement Rendez-les après SetPlayerModel
La ressource ne démarre pas Vérifiez que chaque chemin dans files existe

Réponses rapides

Quel nom utilise-je pour générer un ped addon ?

Le nom du ped dans peds.meta, qui est aussi le nom de ses fichiers .ydd, .yft, .ytd et .ymt. Si les fichiers s'appellent mycop, vous utilisez mycop avec joaat('mycop').

Pourquoi mon ped addon s'affiche comme un ped par défaut ou est invisible ?

Généralement le peds.meta n'est pas chargé, ou le nom dedans ne correspond pas aux noms des fichiers. Vérifiez la ligne data_file 'PED_METADATA_FILE' et que les noms correspondent.

Puis-je utiliser un ped addon comme mon propre personnage ?

Oui, avec SetPlayerModel, mais les scripts de skin ou de personnage ESX et QBCore réinitialisent souvent le modèle au ped freemode. Vous devez le définir après qu'ils s'exécutent, ou utiliser une option dans le script de skin.

Des scripts sans ce problème

Parrots as PetsQuatorze oiseaux qui se posent sur votre épaule, volent avec vous et reviennent quand vous les appelez.Voir le script →Drug Dealer AppLa vente de rue en app lb-phone : zones, acheteurs PNJ, niveaux et alertes police.Voir le script →Quest CreatorUn éditeur visuel de quêtes et de dialogues PNJ, construit nœud par nœud en jeu.Voir le script →

À lire aussi