×

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
  • /
  • [Module API] Errores
[Module API] Errores
Thetroz
« Citoyen »
1380994920000
    • Thetroz#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  0
Hilo re-traducido al español, tema original en idioma inglés por Shamousey (Topic-458983)


http://i.imgur.com/4vSFf.png
Este tema describe los diversos tipos de errores que LUA puede devolver y cubre brevemente cómo arreglarlos o evitar que suceda.

Si encuentras un error en tu código, lee este tema y trata de resolverlo, si de veras necesitas ayuda puedes postear acá el código con etiqueta [spoiler] o subirlo a una web externa de códigos, como Pastebin, postea el error y los demás te ayudarán a resolverlo.

Algunos mensajes de error contienen el número de línea, esto puede ser utilizado para encontrar donde está el errror. El error puede no estar en la línea exacta dada en el mensaje, pero puede encontrarse cerca.

Un buen consejo es para saber cual es el error, es hacer print con las variables u otra información en diferentes lugares del código. Le puede resultar útil para saber si algo que usted hizo sirve o no. Esto no arreglará el código, pero puede servir para que veas que está mal.


http://i.imgur.com/4vSFf.png
Un error común cuando algo no funciona correctamente es que se ha redefinido. La última definición de código reemplaza la primera, por ejemplo aquí hay dos eventPlayerEmotes e indica que solo la última función funcionará.

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

function eventEmotePlayed(name,emote)
print("Éste ha redefinido la función anterior, tan sólo éste funcionará.")
end


Para solucionarlo, combina el contenido de ambas funciones.

function eventEmotePlayed(name)
tfm.exec.giveCheese(name)
print("Esto funciona.")
end



http://i.imgur.com/4vSFf.png

Debajo de todos los errores hay un ejemplo de los diferentes tipos de errores y una breve descripción.

http://i.imgur.com/4vSFf.png

http://i.imgur.com/dvIDHof.png
Init es una abreviación de "inicialización" y significa que el código no conseguía ejecutar correctamente como se cargó.

[•] Attempt to call nil.

Este error se produce cuando una línea está intentando utilizar una variable que es nil (nula, nada). Esto ocurre a menudo cuando las cosas todavía no han sido creadas y están en el orden equivocado o una cierta función no ha sido ejecutada.

print(test)
test="Hola."


Otro ejemplo que puede causar este error es incorrecta capitalización. LUA es sensible a mayúsculas, para escribir una función o el nombre de variable sin la capitalización correcta intentará llamar a uno de la misma capitalización.


Print("Test.")[


[•] Index expected, got nil.

Tratando de definir o llamar a un elemento en una tabla que no existe causará un error como este.

tbl[1] = "Esto se romperá, ya que no existe "tbl"."

[•] ')' expected (to close '(' at line [num])

Si se produce este error, es por que falta un paréntesis que cierre los argumentos de la función.

print("Hola

[•] '' expected.

Este error puede aparecer en varias situaciones diferentes, el más común es cuando se utiliza una instrucción elseif cuando no tiene ninguna abertura correspondiente if.

elseif < then
print("No hay ninguna apertura if.")
end


[•] Multiple points.

Los números sólo pueden tener un único punto decimal, tratando de tener múltiples puntos decimales en un número dará error.

--Único punto decimal, esto está bien.
20.43

--Múltiples puntos decimales, esto está mal.
20.43.9.1


[•] Unfinished (long) comment/string.

Los operadores de la cadena deben estar cerrados cuando se utilizan. Si el mensaje de error se refiere a un "long" comment/string, usando el operador multilínea [[...]] fue la causa del error.

text="Esto es una definición de variable que nunca termine

--[[ Este comentario que no está cerrado, por ejemplo.


[•] Nesting of [[...]] is deprecated.

Strings multi-línea no pueden tener más líneas múltiples dentro.

--[[Esto es un comentario [[esto es dentro del comentario.]] Este es el final del comentario.]]

[•] Attempt to index ? (a nil value).

Este error ocurre cuando se trata de usar un elemento de una tabla que no existe.


tbl={}
print(tbl[1])


[•] Null

Este es un error causado en el Module API y no puede ser resuelto. En ocasiones no se puede ejecutar algunos comando en una sala.

http://i.imgur.com/4vSFf.png

http://i.imgur.com/Jnfam49.png
[•] Attempt to concatenate [data] and [data].

Diferentes tipos de datos no pueden ser concatenados junto con el operador, con la excepción de los strings y los números.

--Esto funcionará
"Text "..34

--Esto no funcionará
{"Esto","es","una","tabla"}.."string"
nil..{"tabla"}
nil.."string"
function().."string"


[•] Attempt to perform arithmetic on a [data] value.

Diferentes tipos de datos no pueden tener ninguna aritmética realizada en ellos a menos que sean números.

{"tabla"}+4

[•] Attempt to compare [data] with [data].

Tanto cómo la aritmética no se puede realizar en diferentes tipos de datos, ellos no pueden compararse con los operadores de comparación.

if {"tabla"} > 4 then
print("Esto le dará un error.")
end


[•] [data] expected, got [data].

Cuando se espera un cierto tipo de datos en una función, pero se da otro, se producirá este error.


for key,value in pairs("string") do
print("El de bucle anterior está esperando una tabla")
end


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

function eventLoop()
for i=1,1000000 do
--Esta es la causa del error.
end
end


[•] Lua destroyed: Runtime too long!


for i=1,10000000000 do
--Esto causa el error.
end


http://i.imgur.com/4vSFf.png

http://i.imgur.com/RLLpc0w.png
Errores de argumento raramente dejan que el script deje de trabajar, y actuan con mas precaución cuando la propiedad no funciona.

[•] Argument must be integer.

Este error se produce cuando un argumento en una función está esperando un número entero pero está recibiendo otro tipo de datos. Por ejemplo, tfm.exec.movePlayer(name,"text",200) espera un número en el segundo argumento.

http://i.imgur.com/4vSFf.png

http://i.imgur.com/DqkR3tv.png
[•] vm error: java.lang.ArrayIndexOutOfBoundsException: 256

Este error puede ser causado por varias cosas, pero es más comúnmente cuando algo se repite indefinidamente. Un ejemplo podría ser una función que llama a sí mismo.

function a()
a()
end
a()


[•] You don't have the right to use this function.

Algunas funciones están deshabilitadas en la casa de la tribu, incluyendo las siguientes.

tfm.exec.chatMessage()
system.newTimer()
system.removeTimer()
system.saveFile()
system.loadFile()

Dernière modification le 1434329760000
Mitsnara
« Citoyen »
1380995040000
    • Mitsnara#8643
    • Profil
    • Derniers messages
    • Tribu
#2
  0
errores, errores everywhere

-------


buen hilo troz :D
Alejocapocr
« Citoyen »
1380997500000
    • Alejocapocr#0000
    • Profil
    • Derniers messages
#3
  0
a nadie le interesa imprimir de 1000 maneraaaaaaaas :D
Phyrra
« Citoyen »
1381012200000
    • Phyrra#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  0
Gracias por la traduccion, ahora la comunidad hispana tenemos tutorial para que podamos aprender sin limitaciones por no comprender el idioma (Ya que el otro estaba en ingles y tal) con tu traduccion y la de gastuu.

Saludos
Norsewolf
« Citoyen »
1381054200000
    • Norsewolf#0000
    • Profil
    • Derniers messages
    • Tribu
#5
  0
Buen hilo, pero te digo lo mismo que a Gastuu, te recomiendo releer lo que has escrito y editar algunas expresiones que suenan mal.

Gracias por el aporte!!
Thetroz
« Citoyen »
1381071360000
    • Thetroz#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
Phyrra a dit :
Gracias por la traduccion, ahora la comunidad hispana tenemos tutorial para que podamos aprender sin limitaciones por no comprender el idioma (Ya que el otro estaba en ingles y tal) con tu traduccion y la de gastuu.

Saludos

Gracias^^'

Norsewolf a dit :
Buen hilo, pero te digo lo mismo que a Gastuu, te recomiendo releer lo que has escrito y editar algunas expresiones que suenan mal.

Gracias por el aporte!!

Listo, cualquier cosa mala, me avisan y se los agradecería!
Gracias^^'
Trust
« Citoyen »
1381073520000
    • Trust#3045
    • Profil
    • Derniers messages
    • Tribu
#7
  0
google traductor doesnt work my friend
Thetroz
« Citoyen »
1381075200000
    • Thetroz#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Moderar post

Dernière modification le 1434327840000
Trust
« Citoyen »
1381075800000
    • Trust#3045
    • Profil
    • Derniers messages
    • Tribu
#9
  0
no necesito pruebas tu mismo lo sabes
Thetroz
« Citoyen »
1381076340000
    • Thetroz#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Moderar post

Dernière modification le 1434327900000
Trust
« Citoyen »
1381076340000
    • Trust#3045
    • Profil
    • Derniers messages
    • Tribu
#11
  0
es lo mismo, lo hiciste con traductor, so tenia razon
Thetroz
« Citoyen »
1381076460000
    • Thetroz#0000
    • Profil
    • Derniers messages
    • Tribu
#12
  0
Moderar post

Dernière modification le 1434327900000
Superclubss
1382409960000
    • Superclubss#0000
    • Profil
    • Derniers messages
#13
[Modéré par Mintflowers, raison : Insultos / Spam]
Thetroz
« Citoyen »
1434329820000
    • Thetroz#0000
    • Profil
    • Derniers messages
    • Tribu
#14
  0
Se ha corregido un poco lo que es la traducción y diseño.

Errores o algo que no entiendan avisarme.
Bbrando
« Citoyen »
1587346740000
    • Bbrando#0000
    • Profil
    • Derniers messages
    • Tribu
#15
  0
k = {
type = 0, -- Cambialo por la ID de un suelo.
width = 100,
height = 30,
friction = 1,
restitution = 1,
}
x = {


type = 0, -- Cambialo por la ID de un suelo.
width = 100,
height = 30,
friction = 1,
restitution = 0,
}

como ago para que funsione los 2
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Module API] Errores
© Atelier801 2018

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

Version 1.27