GetPlayer(source) sunucuda nil döndürdü
Sunucu bir oyuncu aradı ve bulamadı — genelde işlemin ortasında bağlantısı kopmuştur.
Önce şunu yap
Ara sıra olması normaldir. Sürekli oluyorsa, script oyuncunun hâlâ orada olup olmadığını kontrol etmiyordur.
Ne anlama gelir
Bir sunucu işleyicisi framework'ten bir oyuncu nesnesi istedi ve hiçbir şey alamadı. Ondan sonraki her alan erişimi başarısız olur.
Neden olur
Ne sıklıkla doğru cevap olduğuna göre sıralı.
- 1
Oyuncunun işlem sırasında bağlantısı koptu
Olay tetiklendiğiyle işleyici çalıştığı arasında çıktı. Gecikmeli ya da beklenen her işlemde yaygındır.
- 2
source yanlış
Bir geri çağırmanın ya da iç içe bir kapanışın içinde
sourcesandığın şey değildir. İşleyicinin başında yakalanmalıdır:local src = source
- 3
Oyuncu bağlı ama yüklenmemiş
playerConnectingsırasında ve katıldıktan sonraki bir an, henüz oyuncu nesnesi yoktur — karakter seçilmemiştir. - 4
source istemciden gelmiş
Kendi id'sini gönderen bir istemci, herkesinkini gönderebilir. Bu bir nil olduğu kadar bir güvenlik deliğidir de.
- 5
Yanlış arama fonksiyonu
GetPlayerFromId(sunucu id'si) ileGetPlayerFromIdentifier(lisans), yanlışlıkla birbirinin yerine kullanılmış.
Hangisinin seninki olduğu nasıl anlaşılır
local src = source
print('src', src, GetPlayerName(src))GetPlayerName de nil ise, oyuncu gitmiştir ya da hiç tam katılmamıştır. Ad çözülüyor ama framework nesnesi çözülmüyorsa, bağlıdır ama yüklenmemiştir.
Nereye bakmalı
Olay işleyicisinin başı, ve sourceun bir await'ten sonra okunduğu her yer.
Nasıl düzeltilir
RegisterNetEvent('shop:buy', function(item, count)
local src = source -- önce yakala, her zaman
local xPlayer = ESX.GetPlayerFromId(src)
if not xPlayer then return end -- çıktı, ya da hiç yüklenmedi
-- istemcinin verdiği bir id'ye asla güvenme: yetkili olan src'dir
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.