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.
Önce şunu yap
Kullanmaya çalıştığı modelin ya da aracın sunucunda gerçekten var olup olmadığını öğren.
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
0 ya da nil olan bir varlık tanıtıcısı
Model hiç yüklenmediği için
CreateVehicle0 döndürdü, ve tanıtıcı doğrudan başka bir native'e gitti. Açık ara en yaygın biçim. - 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
Üç sayı istenen yerde bir vektör, ya da tersi
SetEntityCoords(ped, coords.x, coords.y, coords.z, ...)beklenirkenSetEntityCoords(ped, coords)başarısız olur. - 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
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.