Jak dodać postaci addon do FiveM: pliki stream, peds.meta, nazwa spawnu
Dodaj postaci addon do serwera FiveM: pliki stream (ydd, yft, ytd, ymt), peds.meta z PED_METADATA_FILE, spawowanie według nazwy modelu i ustawienie postaci jako modelu gracza.
Masz paczę postaci, z plikami takimi jak .ydd, .yft, .ytd i peds.meta, i chcesz spawować postać lub grać nią. Ten poradnik pokazuje, gdzie trafia każdy plik, co manifest potrzebuje, jak spawować postać i jak ją ustawić jako model gracza.
Co zawiera packa postaci
Postać składa się z kilku plików, które mają nazwę postaci:
.yft: główny model postaci..ydd: ubranie i części ciała (głowa, włosy, tułów, nogi). Często umieszczone w podfolderze z nazwą postaci..ytd: tekstury..ymt: plik „postaci variation", który mówi grze, jakie komponenty i tekstury ma postać.peds.meta: wpis danych, który definiuje postać (nazwa, typ, animacje i tak dalej).
Pliki modelu trafiają do stream. peds.meta trafia obok manifestu i jest ładowany jako plik danych.
Struktura foldera
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
...Dokładne wewnętrzne nazwy plików zależą od paczki. Nie zmieniaj ich: .ymt się na nich odwołuje. Zachowaj strukturę, którą dał ci autor.
fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
files {
'peds.meta',
}
data_file 'PED_METADATA_FILE' 'peds.meta'Wpis files udostępnia plik klientowi gry, a data_file 'PED_METADATA_FILE' mówi grze, że zawiera definicje postaci. Potrzebujesz obu. Dla kilku postaci w jednym zasobie, możesz użyć jednego peds.meta z kilkoma wpisami lub wzorca, takiego jak '**/peds.meta' w obu liniach.
Nazwa postaci jest w peds.meta:
<CPedModelInfo__InitDataList>
<InitDatas>
<Item>
<Name>mycop</Name>
<PropsName>NULL</PropsName>
...
</Item>
</InitDatas>
</CPedModelInfo__InitDataList>Tutaj nazwa modelu to mycop. Musi pasować do nazw plików .yft, .ymt i .ytd.
Uruchom to i spawuj to
ensure mycopAby spawować postać w skrypcie, najpierw poproś o model:
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)Jeśli twój serwer używa ox_lib, lib.requestModel(model) dokonuje żądania i czekania. Jeśli nazwa modelu nie istnieje, HasModelLoaded nigdy nie staje się true i pętla powyżej zawiesza się, dlatego timeout to dobra praktyka dla nazw z konfigu.
Wiele menu administratora również potrafi spawować postać według nazwy: wpisz mycop i pojawia się.
Ustaw postać jako model gracza
Aby grać jako postać, zmień model gracza:
local model = joaat('mycop')
RequestModel(model)
while not HasModelLoaded(model) do
Wait(0)
end
SetPlayerModel(PlayerId(), model)
SetModelAsNoLongerNeeded(model)
SetPedDefaultComponentVariation(PlayerPedId())Pamiętaj, że zmiana modelu gracza daje ci nową postać. Broń, zdrowie i jakiś stan są resetowane, więc oddaj je po zmianie, jeśli twój serwer tego potrzebuje.
Menu aparatu ESX i QBCore
Skrypty aparatu i postaci to główny problem. Stosują postać freemode (mp_m_freemode_01 lub mp_f_freemode_01) gdy się spawniasz, a twój model zostaje zastąpiony chwilę później. Opcje:
- Użyj opcji w swoim skrypcie aparatu. Wiele skryptów wyglądu ma sposób, aby ustawić niestandardową postać lub listę dozwolonych postaci. Sprawdź config skryptu.
- Ustaw model po załadowaniu aparatu. Na ESX, czekaj na
esx:playerLoadedi aby skrypt aparatu się zakończył. Na QBCore, czekaj naQBCore:Client:OnPlayerLoaded. Potem wołajSetPlayerModel. - Nie zapisuj postaci addon jako aparatu. Dane wyglądu dla postaci freemode nie pasują do innego modelu, a zapisany aparat złego typu może sprawić, że postać załaduje się źle. Zachowaj wybór postaci w osobnym polu lub skrypcie.
Na QBox to samo się stosuje: skrypt aparatu decyduje, jaki model otrzymuje gracz, więc ustaw postać po nim lub użyj jego własnej opcji niestandardowej postaci, jeśli jest.
Częste problemy
- Postać jest niewidoczna lub modelem domyślnym.
peds.metanie jest załadowany lub nazwy się różnią. Sprawdź liniędata_filei nazwę w<Name>. - Postać nie ma twarzy lub białych tekstur. Pliki
.ytdlub.yddbrakuje, znajduje się w złym folderze lub został zmieniony..ymtpotrzebuje oryginalnych nazw. - Zasób się uruchamia, ale postać nie może być spawowana. Literówka w nazwie spawnu. Musi być równa wpisowi
<Name>wpeds.meta. - Gra się zawiesza lub streaming ostrzega. Duże pliki i wiele postaci używa pamięci strumieniowania. Zobacz oversized assets.
- Zasób się nie uruchamia. Ścieżka w
filesnie istnieje. Zobacz couldn't start resource.
Samochody postępują zgodnie z tą samą ideą pliku danych: zobacz how to add addon cars.
Lista kontrolna
| Symptom | Naprawa |
|---|---|
| Postać nie może być spawowana | Użyj <Name> z peds.meta; ensure zasobu |
| Postać jest niewidoczna lub domyślna | Dodaj files i data_file 'PED_METADATA_FILE'; dopasuj nazwy |
| Białe lub brakujące tekstury | Zachowaj nazwy .ydd i .ytd jak w paczce |
| Model resetuje się po spawnie | Wołaj SetPlayerModel po skończeniu aparatu lub skryptu postaci |
| Broń znika po zmianie | Oddaj ją po SetPlayerModel |
| Zasób się nie uruchamia | Sprawdź, czy każda ścieżka w files istnieje |
Szybkie odpowiedzi
Jaką nazwę używam do spawnu postaci addon?
Nazwę postaci w peds.meta, która jest też nazwą jej plików .ydd, .yft, .ytd i .ymt. Jeśli pliki mają nazwę mycop, używasz mycop z joaat('mycop').
Dlaczego moja postać addon pokazuje się jako domyślna postać lub jest niewidoczna?
Zwykle peds.meta nie jest załadowana lub nazwa w niej nie pasuje do nazw plików. Sprawdź linię data_file 'PED_METADATA_FILE' i czy nazwy się zgadzają.
Czy mogę użyć postaci addon jako mojego własnego postaci?
Tak, z SetPlayerModel, ale skrypty aparatu lub postaci ESX i QBCore często resetują model do postaci freemode. Musisz to ustawić po ich uruchomieniu lub użyć opcji w skrypcie aparatu.
Skrypty bez tego problemu
Parrots as PetsCzternaście ptaków, które siedzą ci na ramieniu, latają z tobą i wracają na zawołanie.Zobacz skrypt →
Drug Dealer AppUliczna sprzedaż jako aplikacja lb-phone: strefy, kupcy NPC, poziomy i alerty dla policji.Zobacz skrypt →
Quest CreatorWizualny edytor questów i dialogów z NPC, budowanych węzeł po węźle w grze.Zobacz skrypt →