[Module API] Errores frecuentes |
Eliaseeg « Citoyen » 1491888120000
| 5 | ||
Si tu script no funciona, postealo aquí para que otros desarolladores puedan arreglarlo para ti. No olvides utilizar la tag [code=lua]Código aquí[/code]. En este tema explicaré los errores frecuentes a la hora de programar en LUA y también daré una explicación acerca de cómo identificarlos y resolverlos. Algunos mensajes de error contienen un número de línea que se puede utilizar para encontrar la línea de código que causó el error. El error no puede ser exactamente en la línea dada, pero puede ser un error que tenga que ver alrededor de ella. Un buen consejo para analizar el código y para averiguar dónde falló algo es mostrar print('texto') las variables y otra información en varias etapas del código. Esto puede ser útil para averiguar si una variable no es lo que esperaba que fuera, si ciertas declaraciones se están ejecutando, etcétera. Probablemente no lo arregle pero podrá ayudar a localizar lo que está mal. Leer errores ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¿Cómo puedo saber en dónde está el error? ¿A qué pestaña debo acudir? ¿En qué linea está? A continuación vamos a analizar un mensaje de error para que puedas identificar dónde está el error y cómo puedes arreglarlo. Para este caso utilizaré el siguiente código: Code Lua 1 2 3 Print('laura es bonita') Lo que nos conllevará al siguiente error: Primero que nada, los errores siempre saldrán en la pestaña de chat #lua, si tu script no funciona, lo primero que tienes que hacer es ir a revisar esa pestaña a ver si te salió un error. Ahora voy a explicar las partes del error. 1) El tipo de error. esto no nos interesa mucho pero podremos guiarnos por él en esta guía (las pestañas son el tipo de error). 2) En qué linea está ubicado el error. Esto sí que nos interesa porque aquí veremos en qué parte del código está siendo producido el error, aquí podremos ver qué está fallando. 3) El error. Con esto nos guiaremos absolutamente, esto es lo que nos indica qué está ocurriendo. ¿Qué quiere decir entonces? Que el error es de tipo Init, en la linea #1 y fue causado por Attempt to call nil. Según la pestaña Init de esta guía, Attempt to call nil se produce cuando una variable no está definida o cuando la función no existe. En este caso identificamos que es la linea #1 la de nuestro script en la que está ubicado el problema, vamos a revisar y nos damos cuenta que Print está mal escrito, ya que es print, lo corregimos y nos quedaría así: Code Lua 1 2 3 print('laura es bonita') Ese código debería funcionar correctamente y sin ningún problema. Es muy fácil detectar los errores cuando sabes en qué parte están. Agradecimientos por la creación de este hilo ♥: Init es la abreviación de "initialisation" (inicialización en español) y significa que el código falló al ejecutarse cuando fue inicializado (véase cuando le das a enviar en la consola de lua). Los errores que podras encontrar en esta categoría son: Attempt to call nil.
Index expected, got nil.
Code Lua 1 tabla[1] = "hina senpai" Para arreglarlo, sólo ocuparíamos inicializar "tabla". Code Lua 1 2 tabla = {} Code Lua 1 2 tabla = {} ')' expected (to close '(' at line [num])
Code Lua 1 print('tfm in 2k17 lul' Como puedes ver, a la función le falta un ")" para que se cierre correctamente. Code Lua 1 print('tfm in 2k17 lul') '??' expected.
Code Lua 1 2 3 elseif a < 801 then Multiple points.
Code Lua 1 print(2.01.7) Arreglado: Code Lua 1 print(201.7) Unfinished (long) comment/string.
Code Lua 1 --[[ este es un comentario que no ha sido cerrado Se puede arreglar así: Code Lua 1 --[[ este sí es un comentario que ha sido cerrado ]] Nesting of [[...]] is deprecated.
Code Lua 1 --[[ 1 [[ 2 [[ 3 ]] ]] ]] Remueve los [[ ]] innecesarios. Code Lua 1 --[[ 1 2 3 ]] Attempt to index ? (a nil value)
Code Lua 1 2 tabla = {} Para arreglarlo simplemente basta crear un elemento en el contexto de la tabla. Code Lua 1 2 tabla = {"modules in 2k17 lul"} Attempt to concatenate [tipo de dato] and [tipo de dato]
Code Lua 1 print("hola "..{}) Invalid key to 'next'.
Code Lua 1 2 3 4 5 tabla = {"tigrounette", "did", "nothing", "wrong"} Attempt to perform arithmetic [operación] on a [tipo de dato] value
Code Lua 1 print("patata" + {}) Attempt to compare [tipo de dato] with [tipo de dato]
Code Lua 1 2 3 if "kappita" > 0 then [tipo de dato] expected, got [tipo de dato]
Code Lua 1 table.insert(13, "vane<3") Lua destroyed : Runtime can't exceed 40 ms in 4 seconds !
Code Lua 1 2 3 4 5 function eventLoop() Lua destroyed: Runtime too long!
Code Lua 1 2 3 for i = 1,10000000000 do Argument must be integer
Code Lua 1 tfm.exec.movePlayer("Eliaseeg", 100, "pato") ? : argument [#] can't be NIL.
Code Lua 1 tfm.exec.movePlayer("Eliaseeg", 100, nil) ? : argument [#] can't be NIL.
Code Lua 1 tfm.exec.movePlayer("Eliaseeg", 100, nil) vm error: java.lang.ArrayIndexOutOfBoundsException: 256
Code Lua 1 2 3 4 function a() You don't have the right to use this function.
Code Lua 1 2 3 4 5 6 7 tfm.exec.chatMessage() You can't call this function [función] more than once per 1 minute.
Code Lua 1 2 system.loadFile(0) You can't call this function [tfm.exec.newGame] more than once per 3 seconds.
Code Lua 1 2 3 tunction eventLoop(elapsed, remaining) Para finalizar, un error muy común es cuando tienes 2 mismas funciones en un script. Cuando esto suceda, sólo funcionará la última. Code Lua 1 2 3 4 5 6 7 function eventPlayerRespawn(name) Para arreglarlo simplemente se juntan y ya está. Code Lua 1 2 3 4 function eventPlayerRespawn(name) Dernière modification le 1491934380000 |
Tocutoeltuco « Censeur » 1491931020000
| 2 | ||
¿Esto no debería ir en Guías y Tutoriales? Que buen hilo! Ayudará mucho a varios usuarios |
Eliaseeg « Citoyen » 1491934260000
| 0 | ||
Tocutoeltuco a dit : Decidí colocarlo aquí para que la gente pueda publicar sus errores y otros desarolladores puedan ayudarlos a resolverlos. Me gustaría agregar a los desarolladores que si arreglan el código de otra persona, por favor, explíquenle cómo hicieron para resolverlo y qué estaba mal. |
0 | ||
Excelente hilo y muy informativo, será de una excelente ayuda para aquellos que por un error dejan todo tirado porque no saben cómo resolverlo. |
Miiiclaroo « Citoyen » 1492118280000
| 0 | ||
Excelente hilo! creo que muchas personas que están comenzando en el mundo de la programación lo necesitaban |
Cracklol456 1494455580000
| | ||
[Modéré par Obemice, raison : Spam.] |
Zebiitalds 1497051900000
| | ||
[Modéré par Bog, raison : Este tema no es para apelar bans. Contacta con un moderador.] |
Anuel2blea « Censeur » 1497502620000
| 0 | ||
Hola, yo tengo un script el cual es Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 admin = "Tomaaasxddd" Pero traté de hacerlo y me quedo el script así Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 admin = "Tomaaasxddd" |
Miiiclaroo « Citoyen » 1497578880000
| 0 | ||
Bueno, en la línea 33 pusiste un símbolo de más Que era una barra invertida( \ ) lo que hacía que el script ignore la comilla que le seguía por lo que nunca se cerraba el string y te daba el error "unfinished string". En la línea 55 colocaste "[ ]" en lugar de "( )" y por lo que te daba el error " '=' expected " Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 admin = "Tomaaasxddd" |
Anuel2blea « Censeur » 1497673440000
| 0 | ||
Miiiclaroo a dit : Ahora si me sirve :DD gracias |
Zirtk 1513289820000
| | ||
[Modéré par Obemice, raison : Para apelar una sanción tienes que contactarte con un moderador por mensaje privado.] |
Atobor 1523546880000
| | ||
[Modéré par Visne, raison : Inappropriate] |
Brandonsoyp 1523685840000
| | ||
[Modéré par Bog, raison : Fuera de tema.] |
0 | ||
Por primera vez veo este hilo, está muy lindo Elias Muy buen aporte ♡ |
Kurzheki « Citoyen » 1570250160000
| 0 | ||
Hola, ¿Dónde puedo ver todos los comandos? Quisiera aprendermelo. Gracias, espero su respuesta. |
Kylian 1674960000000
| | ||
[Modéré par Stargazing, raison : Spam.] |