__resource.lua do fxmanifest.lua: jak przekonwertować stary skrypt
Stary skrypt FiveM nadal używa __resource.lua i pokazuje ostrzeżenie o wycofaniu? Jak przekonwertować to na fxmanifest.lua z fx_version, game, lua54, ui_page i plikami.
Uruchamiasz stary skrypt i konsola ostrzega, że wciąż używa __resource.lua, które jest wycofane. Skrypt może wciąż działać, ale jest zablokowany w starym formacie manifestu i nie może użyć nowszych opcji, takich jak Lua 5.4. Ten przewodnik konwertuje to na fxmanifest.lua w kilka minut.
Co się zmieniło
Każdy zasób potrzebuje manifestu, który mówi FiveM, które pliki załadować. Stary format to __resource.lua. Obecny format to fxmanifest.lua. Dyrektywy, które znasz (client_script, server_script, ui_page, files), są takie same. To, co się zmienia, to nagłówek.
Stary manifest wygląda tak:
resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937'
client_script 'client.lua'
server_script 'server.lua'
ui_page 'html/index.html'
files {
'html/index.html',
'html/script.js',
'html/style.css',
}Nowy nagłówek
Zastąp linię resource_manifest_version dwiema liniami:
fx_version 'cerulean'
game 'gta5'fx_version jest wymagane. Wybiera zachowanie manifestu, a cerulean to wersja, którą używają bieżące skrypty. game 'gta5' mówi, że zasób jest dla GTA V. Stary UUID w resource_manifest_version jest zastąpiony przez fx_version: nie musisz go tłumaczyć na konkretną starą nazwę wersji, po prostu go usuń.
Pełny przekonwertowany plik
fx_version 'cerulean'
game 'gta5'
lua54 'yes'
author 'Your name'
description 'What the resource does'
version '1.0.0'
client_scripts {
'client.lua',
}
server_scripts {
'server.lua',
}
ui_page 'html/index.html'
files {
'html/index.html',
'html/script.js',
'html/style.css',
}Notatki o każdej części:
client_scriptsiserver_scriptsprzyjmują listę. Pojedynczeclient_script 'file.lua'wciąż działa dla jednego pliku.shared_scriptsładuje po obu stronach. Import frameworku, taki jak'@ox_lib/init.lua', tam idzie.ui_pagewskazuje plik HTML NUI. Każdy plik, który strona ładuje (JS, CSS, obrazy, czcionki), musi być wfiles, inaczej nie zostanie wysłany do gracza. Wildcardy działają:'html/**/*'.filesto również miejsce, gdzie wyświetlasz dane, które klient potrzebuje, ale nie uruchamia, takie jak pliki meta.author,descriptioniversionsą opcjonalne i tylko informacyjne.
Lua 5.4
lua54 'yes' sprawia, że zasób działa na Lua 5.4. Wiele obecnych zasobów tego wymaga. Włączenie go dla starego skryptu jest zwykle bezpieczne, ale sprawdź dwie rzeczy: skrypt, który polega na starym zachowaniu Lua 5.3, może potrzebować małej poprawki, a skrypty, które używają ox_lib, potrzebują Lua 5.4 włączonego. Pomiń to, jeśli stary skrypt zachowuje się inaczej z nim i przetestuj to.
Mapy, pliki danych i zasoby przesyłane
Jeśli stary manifest ma linie data_file dla meta pojazdu lub broni, je zachowaj. Mają tę samą składnię w fxmanifest.lua:
files {
'data/vehicles.meta',
'data/handling.meta',
}
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'Przesyłane modele i tekstury w folderze stream nie potrzebują żadnego wpisu. Dla zasobu tylko mapy dodaj również this_is_a_map 'yes'.
Usuń stary plik
Po konwersji usuń __resource.lua z folderu. Pozostawienie obu plików na miejscu jest mylące dla każdego, kto później utrzymuje serwer, i tylko jeden z nich powinien opisywać zasób.
Następnie uruchom ponownie zasób:
refresh
ensure my_scriptrefresh jest potrzebne, ponieważ manifest się zmienił. Jeśli manifest ma błąd, zasób się nie uruchomi: zobacz Couldn't start resource, aby przeczytać błąd ponad linią.
Częste błędy po konwersji
- Brakujący
fx_versionlubgame. Manifest jest odrzucony. - Brakujący przecinek wewnątrz
{ }. Każdy wpis na liście jest oddzielony przecinkiem. - Pliki brakują w
files. NUI ładuje się, ale obrazy lub skrypty są puste, ponieważ strona prosiła o coś, co nie zostało wysłane. Sprawdź konsolę F8 i narzędzia deweloperskie NUI dla nieudanych żądań. - Zależność, która nie jest zadeklarowana. Dodaj
dependency 'ox_lib', jeśli skrypt to używa, aby sprawdzać kolejność uruchamiania. Przeczytaj Could not find dependency.
Ostrzeżenie: nie ustawiaj
fx_versionna bardzo starą nazwę skopiowaną z poradnika z 2019 roku, aby dopasować wiek skryptu. Użyjceruleani napraw wszystko, co się psuje.
Lista kontrolna
| Objaw | Naprawa |
|---|---|
Konsola ostrzega o __resource.lua |
Utwórz fxmanifest.lua, usuń stary plik |
Linia resource_manifest_version |
Zamień na fx_version 'cerulean' i game 'gta5' |
| NUI pusty po konwersji | Wymień każdy plik NUI pod files i zachowaj ui_page |
Funkcje ox_lib brakują |
Dodaj lua54 'yes' i skrypt dzielony @ox_lib/init.lua |
| Zasób nie znaleziony po zmianie | Uruchom refresh, potem ensure |
| Zasób się nie uruchamia | Przeczytaj linie nad Couldn't start resource |
Szybkie odpowiedzi
Czy __resource.lua jest wciąż wspierane?
FiveM nadal je czyta dla starych zasobów, ale jest wycofane i drukuje ostrzeżenie. Nowe funkcje, takie jak lua54, istnieją tylko w fxmanifest.lua, więc je konwertuj.
Jaki fx_version powinienem użyć?
cerulean jest popularnym wyborem dzisiaj. To wersja, którą deklaruje większość bieżących skryptów i działa na bieżącym artefakcie serwera.
Czy muszę zachować resource_manifest_version?
Nie. fx_version go zastępuje. Usuń linię resource_manifest_version podczas konwersji.
Skrypty bez tego problemu
Clothing DesignerProjektuj ubrania w FiveM — pędzel, warstwy, import obrazów i AI — a potem je noś.Zobacz skrypt →
Drag RopeCiągnij graczy na linie i przywiązuj ich do pojazdów, z długością liny na żywo.Zobacz skrypt →
Item Creator V2Twórz używalne przedmioty z animacjami, propami, efektami i nie tylko — bez pisania kodu.Zobacz skrypt →