Come aggiungere ped addon a FiveM: file stream, peds.meta, nome spawn
Aggiungi ped addon a un server FiveM: i file stream (ydd, yft, ytd, ymt), peds.meta con PED_METADATA_FILE, spawning per nome del modello e impostazione di un ped come modello del giocatore.
Hai un pacchetto ped, con file come .ydd, .yft, .ytd e un peds.meta, e vuoi spawnare il ped o giocare come tale. Questa guida mostra dove va ogni file, cosa ha bisogno il manifest, come spawnare il ped e come impostarlo come modello del giocatore.
Cosa contiene un pacchetto ped
Un ped è composto da diversi file che condividono il nome del ped:
.yft: il modello principale del ped..ydd: i vestiti e le parti del corpo (testa, capelli, busto, gambe). Spesso posizionato in una sottocartella con il nome del ped..ytd: le texture..ymt: il file "ped variation", che dice al gioco quali componenti e texture ha il ped.peds.meta: la voce di dati che definisce il ped (nome, tipo, animazioni e così via).
I file del modello vanno in stream. Il peds.meta va accanto al manifest e viene caricato come file di dati.
Struttura della cartella
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
...I nomi dei file interni esatti dipendono dal pacchetto. Non rinominarli: il .ymt vi fa riferimento. Mantieni la struttura che l'autore ti ha dato.
Il fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
files {
'peds.meta',
}
data_file 'PED_METADATA_FILE' 'peds.meta'La voce files rende il file disponibile al client di gioco, e data_file 'PED_METADATA_FILE' dice al gioco che contiene definizioni di ped. Hai bisogno di entrambi. Per diversi ped in una risorsa, puoi usare un peds.meta con diversi elementi, o un pattern come '**/peds.meta' in entrambe le righe.
Il nome di un ped è nel peds.meta:
<CPedModelInfo__InitDataList>
<InitDatas>
<Item>
<Name>mycop</Name>
<PropsName>NULL</PropsName>
...
</Item>
</InitDatas>
</CPedModelInfo__InitDataList>Qui il nome del modello è mycop. Deve corrispondere ai nomi dei file .yft, .ymt e .ytd.
Avvialo e spawnalo
ensure mycopPer spawnare il ped in uno script, richiedi il modello per primo:
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)Se il tuo server usa ox_lib, lib.requestModel(model) fa la richiesta e l'attesa. Se il nome del modello non esiste, HasModelLoaded non diventa mai true e il loop sopra si blocca, quindi un timeout è una buona pratica per i nomi che vengono da una config.
Molti menu admin possono anche spawnare un ped per nome: digita mycop e appare.
Imposta il ped come modello del giocatore
Per giocare come il ped, cambia il modello del giocatore:
local model = joaat('mycop')
RequestModel(model)
while not HasModelLoaded(model) do
Wait(0)
end
SetPlayerModel(PlayerId(), model)
SetModelAsNoLongerNeeded(model)
SetPedDefaultComponentVariation(PlayerPedId())Ricorda che cambiare il modello del giocatore ti dà un nuovo ped. Le armi, la salute e alcuni stati vengono reimpostati, quindi ridateli dopo il cambio se il tuo server ne ha bisogno.
Menu skin ESX e QBCore
Gli script skin e personaggio sono il problema principale. Applicano un ped freemode (mp_m_freemode_01 o mp_f_freemode_01) quando spawni, e il tuo modello viene sostituito un momento dopo. Opzioni:
- Usa l'opzione nel tuo script skin. Molti script di aspetto hanno un modo per impostare un ped personalizzato o un elenco di ped consentiti. Controlla la config dello script.
- Imposta il modello dopo che lo skin carica. Su ESX, aspetta
esx:playerLoadede che lo script skin finisca. Su QBCore, aspettaQBCore:Client:OnPlayerLoaded. Quindi chiamaSetPlayerModel. - Non salvare il ped addon come lo skin. I dati di aspetto per un ped freemode non si adattano a un altro modello, e uno skin salvato del tipo sbagliato può far caricare il personaggio in modo errato. Mantieni la scelta del ped in un campo o script separato.
Su QBox lo stesso vale: lo script di aspetto decide quale modello ottiene il giocatore, quindi imposta il ped dopo, o usa la sua opzione ped personalizzata se ce n'è una.
Problemi comuni
- Il ped è invisibile o un modello predefinito. Il
peds.metanon è caricato o i nomi differiscono. Controlla la rigadata_filee il nome in<Name>. - Il ped non ha viso o texture bianche. I file
.ytdo.yddsono mancanti, nella cartella sbagliata o rinominati. Il.ymtha bisogno dei nomi originali. - La risorsa si avvia ma il ped non può essere spawnato. Un errore di battitura nel nome spawn. Deve essere uguale alla voce
<Name>inpeds.meta. - Il gioco si blocca o lo streaming avvisa. File grandi e molti ped usano la memoria di streaming. Vedi oversized assets.
- La risorsa non si avvia. Un percorso in
filesnon esiste. Vedi couldn't start resource.
Le auto seguono la stessa idea di file di dati: vedi come aggiungere auto addon.
Checklist
| Sintomo | Soluzione |
|---|---|
| Il ped non può essere spawnato | Usa il <Name> da peds.meta; ensure la risorsa |
| Il ped è invisibile o predefinito | Aggiungi files e data_file 'PED_METADATA_FILE'; fai corrispondere i nomi |
| Texture bianche o mancanti | Mantieni i nomi .ydd e .ytd come nel pacchetto |
| Il modello si reimposta dopo lo spawn | Chiama SetPlayerModel dopo che lo script skin o personaggio finisce |
| Le armi sparite dopo il cambio | Ridatele dopo SetPlayerModel |
| La risorsa non si avvia | Controlla che ogni percorso in files esista |
Risposte rapide
Quale nome uso per spawnare un ped addon?
Il nome del ped in peds.meta, che è anche il nome dei suoi file .ydd, .yft, .ytd e .ymt. Se i file si chiamano mycop, usi mycop con joaat('mycop').
Perché il mio ped addon appare come un ped predefinito o è invisibile?
Di solito il peds.meta non è caricato, o il nome in esso non corrisponde ai nomi dei file. Controlla la riga data_file 'PED_METADATA_FILE' e che i nomi concordino.
Posso usare un ped addon come il mio personaggio?
Sì, con SetPlayerModel, ma gli script di skin o personaggio ESX e QBCore spesso reimpostano il modello al ped freemode. Devi impostarlo dopo che vengono eseguiti, o usare un'opzione nello script skin.
Script senza questo problema
Parrots as PetsQuattordici uccelli che stanno sulla tua spalla, volano con te e tornano quando li chiami.Vedi script →
Drug Dealer AppSpaccio di strada come app per lb-phone: zone, acquirenti NPC, livelli e allerte alla polizia.Vedi script →
Quest CreatorUn editor visuale di missioni e dialoghi con gli NPC, costruito nodo per nodo in gioco.Vedi script →