×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Modül API] Hatalar
[Modül API] Hatalar
Sha
« Consul »
1458951420000
    • Sha#0010
    • Profil
    • Derniers messages
    • Tribu
#1
  8
Script'iniz istendiği gibi çalışmıyorsa, onu bu konuya yazın ve ne olmasını beklediğinizi açıklayın.

Bu konu Lua'nın verebileceği çeşitli hataları tanımlıyor ve bu hataların nasıl düzeltileceğini ya da gerçekleşmesinin nasıl önleneceğini anlatıyor.

Kodunuzda bir hatayla karşılaştıysanız, bu hatayı çözmek için lütfen bu konuyu baştan sona okuyun. Yine de yardıma ihtiyacınız varsa, BÜTÜN kodunuzu ([alıntı] etiketleri ile ya da Paste Moepl gibi üçüncü bir site üzerinden) bu konuya yorum olarak yazın, ne olmasını beklediğinizi açıklayın ve ortaya çıkan hatadan bahsedin.


Bazı hata mesajları hataya sebep olan satır kodunu bulmada kullanılabilecek satır numarası içerir. Hata tam olarak o satırda olmayabilir ama o satırın etrafındadır.

Bir şeylerin nerede yanlış gittiğini bulmak için kod ayıklama önerisi olarak değişkenleri ve kodun çeşitli kısımlarındaki diğer bilgilerin dökümünü almak verilebilir. Bu, bir değişkenin olmasını istediğiniz halde olup olmadığını bulmak ya da belli bir if önermesinin çalışıp çalışmadığını vb. durumları bulmada faydalı olabilir. Bu kodunuzu düzeltmez ama neyin yanlış olduğunu görmenizde size yardımcı olur.



Bir şeyler düzgün bir şekilde çalışmadığında yaygın bir hata onun yeniden tanımlanmış olmasıdır. Bir veri parçasının son tanımı öncekinin yerine geçebilir ve burada örnek olarak iki eventPlayerEmotes fonksiyonunun olmasının sadece sonuncusunun çalışacağı anlamına geleceğini göreceksiniz.

a dit :
function eventEmotePlayed(name, emote)
tfm.exec.giveCheese(name, emote)
end

function eventEmotePlayed(name,emote)
print("Bu üsttekini yeniden tanımladı o yüzden sadece bu çalışacak.")
end

Bunu düzeltmek için iki fonksiyonun da içeriğini birleştirin.

a dit :
function eventEmotePlayed(name)
tfm.exec.giveCheese(name)
print("Bu artık çalışır!")
end


Aşağıdaki hatalar çeşitli hataların örneklerini gösteriyor ve kısa açıklamalar içeriyor. Belirli bir hata listelenmemişse, o hatanın da dahil edilmesi için buraya yazabilirsiniz.

Başlatma Hataları

Bu hatalar kodun yüklendikten sonra doğru bir şekilde çalışmadığı hatalardır.

[•] Attempt to call a nil.
Bir satır nil olan bir değişken kullanmaya çalıştığında bu hata ortaya çıkar. Bu genelde bir şeylerin daha oluşturulmadığında ve yanlış bir sırada olduğunda ya da belirli bir fonksiyonun çalıştırılmadığında gerçekleşir.
a dit :
print(test)
test="Merhaba."

Bu hataya sebep olabilecek başka bir örnek yanlış büyük harf kullanımı. Lua büyük ve küçük harflere duyarlıdır, o yüzden doğru büyük harf kullanımı olmayan bir değişken ya da fonksiyon yazmak aynı büyük harf kullanımından birini çağırmayı dener.
a dit :
Print("Test.")

[•] Index expected, got nil.
Var olmayan bir tablodaki bir eşyayı çağırmaya ya da tanımlamaya çalışmak böyle bir hataya sebep olur.
a dit :
tbl[1] = "tbl mevcut olmadığından bu çöker."

[•] ')' expected (to close '(' at line [num])
Bu hata oluşuyorsa, fonksiyon argümanlarında kapalı parantez eksiktir.
a dit :
print("Hi

[•] '' expected.
Bu hata birden çok durumda ortaya çıkabilse de, en yaygın durum uyumlu bir opening if olmadığı halde elseif önermesi kullanılmasıdır.
a dit :
elseif 1>2 then
print("Opening if önermesi yok.")
end

[•] Multiple points.
Sayıların sadece tek bir ondalık noktası olabilir. Tek bir sayıda birden fazla ondalık nokta kullanmak bu hatayla sonuçlanır.
a dit :
--Tek ondalık nokta, sorun yok.
20.43

--Birden fazla ondalık nokta, yanlış.
20.43.9.1

[•] Unfinished (long) comment/string.
String operatörleri ne zaman kullanılırlarsa kapatılmalıdır. Hata mesajı "uzun" bir yoruma/string'e aitse, çok satırlı operator [[...]] kullanımı hatanın sebebidir.
a dit :
text="Bu hiç bitmemiş bir değişken tanımıdır.

--[[ Bu hiç kapanmamış bir yorum örneği.

[•] Nesting of [[...]] is deprecated.
Çok satırlı string'ler içlerinde daha fazla çok satırlı string bulunduramaz.
a dit :
--[[ Bu bir yorum. [[ Bu bir iç yorum. ]] Bu, yorumun sonu.]]

[•] Attempt to index ? (a nil value).
Bu hata bir tablodaki unsur öge kullanılmaya çalıştığında ama bulunamadığında ortaya çıkar.
a dit :
tbl={}
print(tbl[1])

[•] Null
Bu Modül API üzerindeki bir hatadır ve çözülemez. Script'ler bazen belli odalarda çalıştırılamaz.

Çalışma Zamanı Hataları

[•] Attempt to concatenate [data] and [data].
String'ler ve sayılar hariç farklı veri türleri .. operatörü ile sıralanamaz.
a dit :
--Bu çalışır.
"Text "..34

--Bu çalışmaz.
{"this","is","a","table"}.."string"
nil..{"table"}
nil.."string"
function().."string"

[•] Invalid key to 'next'.
Next() fonksiyonu hareket ettirmeye çalıştığı geçersiz bir tuş bulundurduğunda ortaya çıkar. Pairs() fonksiyonu next() kullandığı için, bir tablodan bir eşyayı tekrarlarken silmeye çalışmak bu hatanın en yaygın görüldüğü durumdur.
a dit :
tbl={Something=true,somethingelse=true}

for k,v in pairs(tbl) do
tbl[k]=nil
end

[•] Attempt to perform arithmetic on a [data] value.
Farklı veri türleri sayı değillerse üzerlerinde gerçekleştirilen bir aritmetik bulunduramazlar.
a dit :
{"table"}+4

[•] Attempt to compare [data] with [data].
Aritmetiğin farklı veri türlerinde gerçekleştirilmediği gibi, karşılaştırma operatörleri ile karşılaştırılamazlar.
a dit :
if {"table"} > 4 then
print("Bu hata verir.")
end

[•] [data] expected, got [data].
Belli bir hata türü bir fonksiyonda bekleniyorsa ama başka bir tane verildiyse, bu hata ortaya çıkar.
a dit :
for key,value in pairs("string") do
print("Yukarıdaki for döngüsü bir tablo bekliyor.")
end

[•] Lua destroyed : Runtime can't exceed 40 ms in 4 seconds !

a dit :
function eventLoop()
for i=1,1000000 do
--Bu bir hataya sebep olur.
end
end

[•] Lua destroyed: Runtime too long!

a dit :
for i=1,10000000000 do
--Bu bir hataya sebep olur.
end


Argüman Hataları

Argüman hataları nadiren script'in çalışmasını engeller ve daha çok bir şeylerin düzgün çalışmadığına dair bir uyarı olarak işlev görür.

[•] Argument must be integer.
Bu hata bir fonksiyondaki bir argümanın tam bir sayı beklediğinde ama başka bir veri türü aldığında ortaya çıkar. Mesela, fm.exec.movePlayer(name,"text",200) ikinci argümanda bir sayı bekliyor.


Çeşitli Hatalar

[•] vm error: java.lang.ArrayIndexOutOfBoundsException: 256
Bu hata birden çok şey tarafından gerçekleşebilir ama daha çok bir şey sonsuz şekilde tekrarlandığında ortaya çıkar. Buna örnek olarak kendini çağıran bir fonksiyon verilebilir.
a dit :
function a()
a()
end
a()

[•] You don't have the right to use this function.
Bazı fonksiyonlar kabile evinde kullanılamaz. Bu fonksiyonlar:
a dit :
tfm.exec.chatMessage()
system.newTimer()
system.removeTimer()
system.saveFile()
system.loadFile()


Bu konu [Module API] Errors konusu üzerinden çevrilmiştir.


Dernière modification le 1458952680000
Interspeed
« Citoyen »
1458991440000
    • Interspeed#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
Teşekkürler
Yatogamichan
« Citoyen »
1458991800000
    • Yatogamichan#0000
    • Profil
    • Derniers messages
#3
  0
Teşekkürler güzel konu
Frkseket
« Citoyen »
1458992040000
    • Frkseket#4693
    • Profil
    • Derniers messages
#4
  0
Teşekkürler
Agorttbot
« Citoyen »
1458993840000
    • Agorttbot#0000
    • Profil
    • Derniers messages
#5
  0
Anaaa çok güzel teşekkürler.
Superofis
« Citoyen »
1458997500000
    • Superofis#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
Teşekkürler
Barsems
« Citoyen »
1459074000000
    • Barsems#0000
    • Profil
    • Derniers messages
#7
  0
Teşekkürler
Fororox
« Citoyen »
1459078140000
    • Fororox#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Teşekkürler!
Abertholy
« Archonte »
1468261860000
    • Abertholy#0000
    • Profil
    • Derniers messages
    • Tribu
#9
  0
Teşekkürler
Viskiyibulnadam
« Citoyen »
1468266840000
    • Viskiyibulnadam#7053
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Teşekkürler
Heydurma
« Citoyen »
1468359780000
    • Heydurma#0000
    • Profil
    • Derniers messages
#11
  0
Hoş konu olmuş, tebrikler.
Vipdtnheart
« Censeur »
1487977260000
    • Vipdtnheart#0000
    • Profil
    • Derniers messages
    • Tribu
#12
  0
Teşekkürler.
Edebiyat
« Citoyen »
1514133540000
    • Edebiyat#8245
    • Profil
    • Derniers messages
    • Tribu
#14
  1
tm lanet olsun *-*
yarın çam eğrisi var metafizikten -,-
ve ; çalışmak lzm ben halen bu oynu oynuyorum !_!
ve çevrildiğini biliyordum yinede söylemek istedim ztn sağ alt köşede not etmiş sağ olsun shaumbra -,-
ama sadice kodlama biliyormu merak ettim yinede bilinen tarcihleri bilgilendirme amaçlı tekrar ettiğiniz için teşekür ederim *-*

Dernière modification le 1514388720000
Honorabilis
« Consul »
1514136240000
    • Honorabilis#0000
    • Profil
    • Derniers messages
    • Tribu
#15
  0
Aaaaaaahidra a dit :
AMA HER AÇIDAN GÜZEL BİR UĞRAŞ KALICI ŞEYLERİ DESTEKLİYORUM ÇOK BEĞENDİM HARİKA OLMUŞ

shaumbra lua da biliyormuş xd
demekki ; adam oyun oynamıyor oyun yazıyor yani admin olacakmış gibime geliyor moderatör anonimliğini ztn hiç anlamıyorum -,-
öyle olursa tfm deki herkes hazır olsun !!!
hack yapana BAN YAĞMURU geliyor

i hate administrator !_!

#adminlere_ölüm#

Konu a dit :
Bu konu [Module API] Errors konusu üzerinden çevrilmiştir.
Dursunmert
1531999620000
    • Dursunmert#0000
    • Profil
    • Derniers messages
#16
[Modéré par Visne, raison : Konu dışı]
Bozkurt
« Citoyen »
1543768500000
    • Bozkurt#3712
    • Profil
    • Derniers messages
#17
  0
textArea parçalarına " < " işaretini koyduğumda işaret yazı olarak gözükmüyor ama " > " işareti koyduğumda gözüküyor lütfen yardım edin help kodluyorum
Mutluerkek
« Citoyen »
1543957560000
    • Mutluerkek#8315
    • Profil
    • Derniers messages
    • Tribu
#18
  0
Bozkurt a dit :
textArea parçalarına " < " işaretini koyduğumda işaret yazı olarak gözükmüyor ama " > " işareti koyduğumda gözüküyor lütfen yardım edin help kodluyorum

Bu bir hata değil.
Ozan
« Citoyen »
1546619340000
    • Ozan#2513
    • Profil
    • Derniers messages
#19
  0
düzenlendi

Dernière modification le 1546619400000
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Modül API] Hatalar
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27