THE ORB
Uruchamiam studio

Tablica prac jest nil

Nie dało się odczytać twojej listy prac. Jedna literówka w pliku prac psuje naraz każdy skrypt związany z pracami.

groupsWszystkie prace przestają działaćpersonMożesz to naprawić

Zrób najpierw to

Jeśli ostatnio edytowałeś plik prac, cofnij tę zmianę i zrestartuj.

bug_reportWklej zamiast tego całą konsolę

Co to znaczy

Kod odczytał rejestr prac frameworka, a tego rejestru nie było. W QBCore to QBCore.Shared.Jobs, w ESX wczytuje się on z tabeli jobs w bazie danych. Każdy skrypt zależny od pracy pada naraz, przez co wygląda to na większy problem, niż jest.

Co to powoduje

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

  1. 1

    Błąd składni w konfiguracji prac

    qb-core/shared/jobs.lua to Lua. Jeden brakujący nawias klamrowy i cały plik się nie wczytuje, więc tablica nigdy nie zostaje przypisana — a błąd, który widzisz, jest w skrypcie, który ją czyta, nie w pliku, który się zepsuł.

  2. 2

    Tabela jobs nigdy nie została zaimportowana (ESX)

    ESX czyta prace z bazy danych. Brak wierszy, brak prac.

  3. 3

    Praca, która istnieje w jednym miejscu, a w drugim nie

    Gracz, którego kolumna job nazywa pracę niezdefiniowaną w konfiguracji. Rejestr jest w porządku; nil jest ten jeden odczyt.

  4. 4

    Odczyt przed wczytaniem rdzenia

    Ten sam problem z czasem co przy samym obiekcie rdzenia.

  5. 5

    Edytowany plik shared nadpisany przez aktualizację

    Aktualizacja nadpisała twoje własne prace.

Jak poznać, który jest twój

Przewiń w górę w poszukiwaniu błędu ładowania w plikach samego frameworka — zepsuty jobs.lua zawsze zgłasza się przed czymkolwiek innym. Potem:

print(json.encode(QBCore.Shared.Jobs and 'loaded' or 'nil'))

Gdzie szukać

qb-core/shared/jobs.lua albo tabela jobs w bazie, jeśli używasz ESX.

Jak to naprawić

Zwaliduj plik konfiguracji przed restartem:

luac -p qb-core/shared/jobs.lua

I zabezpiecz odczyt pojedynczej pracy, bo to prawdziwie brakujący klucz, a nie zepsuta tablica:

local job = QBCore.Shared.Jobs[player.PlayerData.job.name]
if not job then return end

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

Dla tego rodzaju błędu Konwerter skryptów przenosi zasób między ESX, QBCore i Qbox.

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