THE ORB
Studio başlatılıyor

ESX / QBCore / Core nesnesi nil

Bir script framework'ünü bulamadı (ESX, QBCore, Qbox) — ya çalışmıyor, ya da bu script'ten sonra başlıyor.

groupsO script hiçbir şey yapmıyorpersonBunu düzeltebilirsin

Önce şunu yap

server.cfg içinde framework'ünün, başarısız olan script'in ÜSTÜNDE listelendiğinden emin ol.

bug_reportBunun yerine tüm konsolunu yapıştır

Ne anlama gelir

Script, framework'ün paylaşılan nesnesini o nesneye sahip olmadan kullanmaya çalıştı. Hatanın kendisi genelde attempt to index a nil value (global 'ESX') olarak gelir, ama neden kendi yanıtını hak edecek kadar belirgindir.

Neden olur

Ne sıklıkla doğru cevap olduğuna göre sıralı.

  1. 1

    Eski getSharedObject kalıbı, hâlâ dosya kapsamında

    ESX = nil
    TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

    Bu asenkrondur. Altındaki her kod, geri çağırmadan önce çalışır. ESX Legacy olayı tamamen kaldırdı, o yüzden modern bir sunucuda hiç tetiklenmez.

  2. 2

    Framework başlatılmamış, ya da senin kaynağından sonra başlıyor

    server.cfg'de ensure my-script satırının altında ensure es_extended.

  3. 3

    Kurulu sürüm için yanlış erişimci

    ESX Legacy getSharedObject sunar; QBCore GetCoreObject sunar; Qbox kendi modülünü require etmeyi tercih eder. Diğer framework'ün çağrısını kullanmak nil verir.

  4. 4

    Yanlış tarafta kullanmak

    İstemci ve sunucu nesneleri farklıdır. Yalnızca sunucuya ait bir metot, istemcide nesne yüklenmiş olsa bile nil'dir.

Hangisinin seninki olduğu nasıl anlaşılır

print(GetResourceState('es_extended'), ESX ~= nil)

Durum started ama ESX nil ise, sorun erişimci ya da zamanlamadır. Durum başka bir şeyse, sorun server.cfg'dir.

Nereye bakmalı

Başarısız olan dosyanın başı, ve server.cfg'deki ensure sırası.

Nasıl düzeltilir

ESX Legacy — doğrudan, eşzamanlı, geri çağırma yok:

ESX = exports['es_extended']:getSharedObject()

QBCore:

local QBCore = exports['qb-core']:GetCoreObject()

Qbox:

local qbx = exports.qbx_core

Eski bir ESX'i desteklemek zorundaysan, en azından kullanmadan önce bekle:

CreateThread(function()
    while ESX == nil do
        TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
        Wait(100)
    end
end)

Hâlâ kendi kodunda mı takıldın?

Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.

bug_reportServer Fixer'ı aç

Bu tür bir hata için Script Çevirici bir kaynağı ESX, QBCore ve Qbox arasında çevirir.

Bununla birlikte gelen hatalar