THE ORB
Uruchamiam studio

Config jest nil

Skrypt próbował odczytać własne ustawienia, zanim się wczytały. To błąd kolejności wewnątrz skryptu.

groupsTen skrypt nic nie robicodePotrzebny programista

Zrób najpierw to

Jeśli edytowałeś jego plik konfiguracyjny, najpierw to cofnij. W przeciwnym razie potrzebna jest drobna poprawka w kodzie.

bug_reportWklej zamiast tego całą konsolę

Co to znaczy

Skrypt odczytał Config, zanim wykonał się plik, który go definiuje. Tablica budowana jest w czasie ładowania, a o kolejności ładowania plików decyduje fxmanifest, więc to prawie zawsze problem kolejności, a nie brakującego pliku.

Co to powoduje

Uszeregowane według tego, jak często są odpowiedzią.

  1. 1

    config.lua jest wymieniony po pliku, który go używa

    Pliki ładują się w kolejności, w jakiej wymienia je manifest, z góry na dół, wewnątrz każdej sekcji.

  2. 2

    config.lua jest tylko w client_scripts, a czyta go serwer

    Konfiguracja, której potrzebują obie strony, należy do shared_scripts.

  3. 3

    Konfiguracja deklaruje tablicę LOKALNĄ

    local Config = {} jest niewidoczne dla każdego innego pliku. Musi to być globalna albo celowo wyeksportowana.

  4. 4

    Glob zgarnął konfigurację w złym miejscu

    client_scripts { 'client/*.lua' }, przy config.lua leżącym w client/, wstawia go w kolejności alfabetycznej, a nie tej, którą chciałeś.

  5. 5

    Dwa pliki konfiguracji, jeden nadpisujący drugi

    config.lua i config_custom.lua, oba przypisujące Config = {}.

Jak poznać, który jest twój

print('config loaded', Config ~= nil)

na początku pliku, który pada. Potem przenieś config.lua na początek shared_scripts i zobacz, czy komunikat się zmieni.

Gdzie szukać

fxmanifest.lua, kolejność wewnątrz shared_scripts i client_scripts.

Jak to naprawić

fx_version 'cerulean'
game 'gta5'

shared_scripts {
    'config.lua',            -- pierwszy, i shared, żeby OBIE strony go widziały
}
client_scripts { 'client/*.lua' }
server_scripts { 'server/*.lua' }

I zrób z niego globalną:

Config = {}                  -- nie `local Config = {}`

Wciąż utknąłeś na własnym kodzie?

Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.

bug_reportOtwórz Server Fixer

Błędy, które chodzą z tym w parze