__resource.lua a fxmanifest.lua: come convertire uno script vecchio
Script FiveM vecchio ancora utilizza __resource.lua e mostra un avviso deprecato? Come convertirlo a fxmanifest.lua con fx_version, game, lua54, ui_page e files.
Inizi uno script vecchio e la console avverte che ancora utilizza __resource.lua, che è deprecato. Lo script potrebbe ancora funzionare, ma è bloccato nel vecchio formato del manifest e non può utilizzare opzioni più recenti come Lua 5.4. Questa guida lo converte a fxmanifest.lua in pochi minuti.
Cosa è cambiato
Ogni risorsa ha bisogno di un manifest che dice a FiveM quali file caricare. Il vecchio formato era __resource.lua. Il formato attuale è fxmanifest.lua. Le direttive che conosci (client_script, server_script, ui_page, files) sono le stesse. Quello che cambia è l'intestazione.
Un vecchio manifest sembra così:
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',
}La nuova intestazione
Sostituisci la riga resource_manifest_version con due righe:
fx_version 'cerulean'
game 'gta5'fx_version è obbligatorio. Seleziona il comportamento del manifest, e cerulean è la versione che gli script attuali usano. game 'gta5' dice che la risorsa è per GTA V. Il vecchio UUID in resource_manifest_version è sostituito da fx_version: non hai bisogno di tradurlo a un vecchio nome specifico di versione, solo eliminalo.
Il file completo convertito
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',
}Note su ogni parte:
client_scriptseserver_scriptsprendono un elenco. Il singolareclient_script 'file.lua'funziona ancora per un file.shared_scriptscarica su entrambi i lati. Un'importazione di framework come'@ox_lib/init.lua'va lì.ui_pagepunta al file HTML del NUI. Ogni file che la pagina carica (JS, CSS, immagini, font) deve essere infiles, o non viene inviato al giocatore. I caratteri jolly funzionano:'html/**/*'.filesè anche dove elenchi i dati di cui un client ha bisogno ma non esegue, come i file meta.author,descriptioneversionsono facoltativi e solo informativi.
Lua 5.4
lua54 'yes' fa eseguire la risorsa su Lua 5.4. Molte risorse attuali lo richiedono. Attivarlo per uno script vecchio di solito è sicuro, ma controlla due cose: uno script che si basa sul vecchio comportamento di Lua 5.3 potrebbe aver bisogno di una piccola correzione, e gli script che usano ox_lib hanno bisogno di Lua 5.4 abilitato. Lascialo fuori se il vecchio script si comporta diversamente con esso, e testalo.
Mappe, file di dati e asset in streaming
Se il vecchio manifest ha righe data_file per il meta dei veicoli o delle armi, mantienile. Hanno la stessa sintassi in fxmanifest.lua:
files {
'data/vehicles.meta',
'data/handling.meta',
}
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'I modelli e le texture in streaming in una cartella stream non hanno bisogno di alcuna voce. Per una risorsa solo mappa, aggiungi anche this_is_a_map 'yes'.
Rimuovi il vecchio file
Dopo la conversione, elimina __resource.lua dalla cartella. Lasciare entrambi i file in posizione è confuso per chiunque mantiene il server in seguito, e solo uno di loro dovrebbe descrivere la risorsa.
Quindi riavvia la risorsa:
refresh
ensure my_scriptrefresh è necessario perché il manifest è cambiato. Se il manifest ha un errore, la risorsa non si avvierà: vedi Couldn't start resource per leggere l'errore sopra quella riga.
Errori comuni dopo la conversione
- Un
fx_versionogamemancante. Il manifest è rifiutato. - Una virgola mancante dentro
{ }. Ogni voce in un elenco è separata da una virgola. - File mancanti da
files. Il NUI si carica ma le immagini o gli script sono vuoti, perché la pagina ha chiesto qualcosa che non è stato inviato. Controlla la console F8 e gli strumenti di sviluppo NUI per le richieste non riuscite. - Una dipendenza che non è dichiarata. Aggiungi
dependency 'ox_lib'se lo script lo usa, in modo che l'ordine di avvio sia controllato. Vedi Could not find dependency.
Attenzione: non impostare
fx_versiona un nome molto vecchio copiato da un tutorial del 2019 solo per abbinare l'età dello script. Usaceruleane correggi tutto ciò che si rompe.
Elenco di controllo
| Sintomo | Correzione |
|---|---|
La console avverte su __resource.lua |
Crea fxmanifest.lua, elimina il vecchio file |
Riga resource_manifest_version |
Sostituisci con fx_version 'cerulean' e game 'gta5' |
| NUI vuoto dopo la conversione | Elenca ogni file NUI sotto files e mantieni ui_page |
Funzioni ox_lib mancanti |
Aggiungi lua54 'yes' e lo script condiviso @ox_lib/init.lua |
| Risorsa non trovata dopo la modifica | Esegui refresh, quindi ensure |
| La risorsa non si avvia | Leggi le righe sopra Couldn't start resource |
Risposte rapide
È ancora supportato __resource.lua?
FiveM lo legge ancora per vecchie risorse, ma è deprecato e stampa un avviso. Le nuove funzionalità come lua54 esistono solo in fxmanifest.lua, quindi convertilo.
Quale fx_version dovrei usare?
cerulean è la scelta comune oggi. È la versione che la maggior parte degli script attuali dichiara, e funziona su un artefatto server attuale.
Devo mantenere resource_manifest_version?
No. fx_version lo sostituisce. Elimina la riga resource_manifest_version quando converti.
Script senza questo problema
Clothing DesignerDisegna vestiti dentro FiveM — pennello, livelli, import di immagini e IA — e poi indossali.Vedi script →
Drag RopeTrascina i giocatori con una corda e legali ai veicoli, con la lunghezza della corda in tempo reale.Vedi script →
Item Creator V2Crea oggetti utilizzabili con animazioni, props, effetti e altro — senza scrivere codice.Vedi script →