THE ORB
Studio başlatılıyor

NetworkGetEntityFromNetworkId 0 döndürdü

Bir oyuncunun oyununa, bir şey henüz onun ekranına ulaşmadan önce o şeyden söz edildi.

groupsAra sıra görsel bozulmalarcodeGeliştirici gerektirir

Önce şunu yap

Ara sıra olması normaldir. Sürekli olması, script'in düzgün beklemediği anlamına gelir.

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

Ne anlama gelir

Bir ağ kimliği yerel bir varlık tanıtıcısına çevrildi ve bu istemcide henüz öyle bir varlık yok. Native hata vermek yerine 0 döndürür, o yüzden arıza daha sonra bir bad argument ya da index-nil olarak yüzeye çıkar.

Bu genelde kimlikteki bir hata değil, bir YARIŞTIR: sunucu varlığı oluşturmuştur ve bu istemci onu henüz almamıştır.

Neden olur

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

  1. 1

    İstemciye, varlık eşitlenmeden önce söylendi

    Sunucu bir araç oluşturur ve hemen ağ kimliğiyle bir istemci olayı tetikler. Olay, varlıktan önce varır.

  2. 2

    Varlık kapsam dışında

    OneSync yalnızca oyuncunun yakınındaki varlıkları eşitler. Haritanın öbür ucundaki bir şeyin ağ kimliği, o istemcide hiçbir şeye çözülmez.

  3. 3

    Farklı bir routing bucket'ta

    Kapsam dışıyla aynı, ama bilerek.

  4. 4

    Varlık, gönderimle alım arasında silindi

    Mesaj yoldayken kaldırılan bir araç.

  5. 5

    Kimlik eski

    Ağ kimlikleri yeniden kullanılır. Dakikalar önceden tutulan bir kimlik artık başka bir şey, ya da hiçbir şey anlamına gelebilir.

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

print(NetworkDoesNetworkIdExist(netId), NetworkDoesEntityExistWithNetworkId(netId))

Oyuncu hemen yanında dururken ikisi de false ise gerçek bir sorundur; haritanın öbür ucundan ikisi de false ise bu sadece kapsamdır.

Nereye bakmalı

Ağ kimliğinin alındığı yer, ve varlığı bekleyen bir şey olup olmadığı.

Nasıl düzeltilir

Onu bekle, ama bir son tarihle — asla sınırsız bir döngüyle değil:

local function entityFromNet(netId, timeoutMs)
    local deadline = GetGameTimer() + (timeoutMs or 5000)
    while not NetworkDoesEntityExistWithNetworkId(netId) do
        if GetGameTimer() > deadline then return nil end
        Wait(0)
    end
    return NetToEnt(netId)
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 Güvenlik Tarayıcısı buraya götüren olay işleme biçimini işaretler.

Bununla birlikte gelen hatalar