THE ORB
Studio başlatılıyor

bad argument #N to '<fonksiyon>'

Bir script oyuna yanlış türde bir değer geçirdi — neredeyse her zaman ihtiyaç duyduğu bir şey (bir araç, bir model) hiç yüklenmediği için.

groupsBir şey hiç spawn olmuyorcodeGeliştirici gerektirir

Önce şunu yap

Kullanmaya çalıştığı modelin ya da aracın sunucunda gerçekten var olup olmadığını öğren.

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

Ne anlama gelir

Bir native ya da standart fonksiyon, o argüman yuvasında yanlış türü aldı. Mesaj hangi yuvayı ve ne istediğini söyler:

bad argument #1 to 'TaskGoToCoordAnyMeans' (number expected, got nil)

Argüman numaralandırması 1'den başlar. İki nokta üst üste ile çağrılan bir metotta argüman #1 nesnenin kendisidir, yani #2 parantez içindeki ilk şeydir.

Neden olur

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

  1. 1

    0 ya da nil olan bir varlık tanıtıcısı

    Model hiç yüklenmediği için CreateVehicle 0 döndürdü, ve tanıtıcı doğrudan başka bir native'e gitti. Açık ara en yaygın biçim.

  2. 2

    Hiç hash'lenmemiş bir model adı

    Çoğu model yuvası metin değil hash ister. GetHashKey(name) ya da ters tırnaklı sabiti kullan.

  3. 3

    Üç sayı istenen yerde bir vektör, ya da tersi

    SetEntityCoords(ped, coords.x, coords.y, coords.z, ...) beklenirken SetEntityCoords(ped, coords) başarısız olur.

  4. 4

    Bir config'ten ya da veritabanı satırından gelen bir nil

    Eksik bir anahtarı okumak sessizce nil üretir; hata bir satır sonra, burada yüzeye çıkar.

  5. 5

    Yanlış argüman sırası

    Yeri değişmiş iki sayı hata vermez. Metin gereken yerdeki bir sayı verir.

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

Üstteki satırda her argümanı türüyle birlikte yazdır:

print(('ped=%s type=%s'):format(tostring(ped), type(ped)))

Değer nil değil 0 ise, asıl hata yukarıdadır: bir şey başarısız bir tanıtıcı döndürdü ve kimse kontrol etmedi.

Nereye bakmalı

Adı geçen satır, sonra kötü argümanı ÜRETEN satır.

Nasıl düzeltilir

Spawn'lamadan önce modelleri yükle, kullanmadan önce tanıtıcıları kontrol et:

local model = GetHashKey('adder')
RequestModel(model)
local deadline = GetGameTimer() + 5000
while not HasModelLoaded(model) and GetGameTimer() < deadline do Wait(0) end
if not HasModelLoaded(model) then return end

local veh = CreateVehicle(model, coords.x, coords.y, coords.z, heading, true, false)
if not DoesEntityExist(veh) then return end
SetModelAsNoLongerNeeded(model)

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 Optimizer script'i okur ve bunun arkasındaki kodu onarır.

Bununla birlikte gelen hatalar