Popular Post ElRaulxX Posted July 19, 2012 Popular Post Report Share Posted July 19, 2012 Hace un rato vi esta guÃa, aporte (o como queráis llamarlo) que me pareció muy interesante. Se trata de los errores más comunes en la inserción de quests en nuestros servidores (errores de sintaxis, errores de compilación...). Esta guÃa la veo yo más enfocada hacia los más novatos, pues con la práctica aprendes el significado de estos errores y su solución. Aún asÃ, estoy seguro que muchas personas aprenderán algo que no sabÃan. RECALCO que esta guÃa no es creada por mÃ, sino que tan solo es traducida al español y un poco ampliada con mis conocimientos. Aquà os dejo el post original de .Alessa en elitepvpers: Debes iniciar sesión para ver el contenido del enlace en esta publicación. Bueno, pues vamos al lÃo xd Antes de empezar: Como esta guÃa es general para cualquier quest, utilizaremos variables [X]. Es decir, esta variable puede ser diferente en cada caso y substituida por cualquier cosa. 1. when doesn't have begin-end clause Error de sintaxis: when doesn't have begin-end clause. ([X]) [X]:[X]: Error occured on compile [X] Significado: "when" no sigue la estructura begin-end Análisis: Este error se produce cuando el conjunto del "when" no sigue la sintaxis apropiada. Seguramente, la razón de este error es un error de escritura o falta de un "begin". Es también común intercambiar un "begin" por un "then". Debemos recordar siempre que un when sigue la estructura: when [X] begin - end. Corrección: Buscar los "when" en nuestra quest y asegurarnos que sigue la sintaxis apropiada. when [X] begin [acción] end Imagen ejemplo: Imagen ejemplo - solución: Hemos cometido un error de escritura: ha sido intercambiado el "begin" por "begn" 2.`[X]' expected near `[X]' Error de sintaxis: syntax error : [string "[X]"]:[X]: `[X]´ expected near `[x]´ [X]:[X]: Error occured on compile [X] Significado: No ha sido especificado algo requerido por la sintaxis (acostumbra a ser especificado en el lugar de nuestras variables [X]). Análisis: Este error es similar anterior, pero acostumbra a darse en condiciones (if). La sintaxis es incorrecta: el servidor espera encontrar un "then" después de la condición, pero no lo encuentra. Como en el caso anterior, acostumbra a darse por fallos en la escritura o intercambio del "then" por "begin". Corrección: Corregir la sintaxis. Podemos saber aproximadamente donde esta el error por "expected near". Estos errores acostumbran a estar relacionados con los "if". Recordemos que la sintaxis apropiada es: if [X] == [X] then [acción] end *A veces es posible que los operadores estén invertidos. Recuerda que en todos los operadores que utilizamos que contienen más de un signo (>=, <=, !=, ==,...), el último signo siempre es es el "=". Imagen ejemplo: Imagen ejemplo - solución: Hemos cometido un error de sintaxis: el servidor espera encontrar un "then", pero no lo encuentra. La solución serÃa especificar el "then" junto a nuestra condición. 3. Calls undeclared function! Error de sintaxis: Calls undeclared function! [X] Error occured on compile [X].[X] Significado: El servidor no detecta una función. Análisis: El servidor ha encontrado en nuestra quest una función que no ha sido especificada. Por lo tanto, no posee esa información y no puede realizar ninguna acción. Corrección: Debemos revisar la sintaxis: es posible que la función no esté bien escrita. También debemos revisar que nuestra función se encuentre en el archivo quest_functions (recordemos que si queremos crear una nueva función, debemos crearla en questlib.lua y especificarla en quest_functions para que la reconozca el servidor). Si queremos especificar una función que ha sido escrita dentro de una quest, tenemos que utilizar la siguiente sintaxis: nombredelaquest.nombredelafuncion (en vez de escribir tan solo la función) Imagen ejemplo: Imagen ejemplo - solución: Debemos especificar en el archivo quest_functions la función say_item_vnum 4. assertion failure Error de sintaxis: assertion failure : nested==0 [X]:[X]:Error occured on compile [X] Significado: Estructura equivocada. Análisis:La sintaxis general de la quest no es correcta. Este error puede darse en muchas ocasiones. Por ejemplo, este error se da cuando hay demasiados "end" o falta alguno. Corrección: Revisar que la sintaxis "quest [X] begin" está cerrada con un "end". Revisar que todos los "when" están cerrados con un "end". Revisar que todas las condiciones (if) están cerradas por un "end". Revisar que todos los "state" están cerrados por un "end". Imagen ejemplo: Imagen ejemplo - solución: Nuestro "when" no está cerrado con un "end". 5. expecting state Error de sintaxis: expecting 'state' [X]:[X]:Error occured on compile [X] Significado: Es necesario un state: la estructura de "state" no es correcta. Análisis: Hay un error de sintaxis o es necesario un state. Este error sucede, por ejemplo, cuando un "when" está fuera de un "state". Corrección: Revisar que todos los "when" y "if" están dentro de un state. Revisar que los "state" están bien colocados y cerrados con un "end". Imagen ejemplo: 6. state name not found Error de sintaxis: [X]:[X]:state name not found : [X] Error occured on compile [X] Significado: El servidor no encuentra un "state". Análisis: El uso o búsqueda de un "state" no es encontrado. Este error se da, por ejemplo, cuando utilizamos la función "set_state()" y el "state" definido en esta función no se encuentra dentro de la quest. Corrección: Asegúrate que todos los "state" definidos son correctos, la función que los utiliza está el "state" bien escrito y que todos los "state" están cerrados con un "end". Imagen ejemplo: 7. must start with 'quest' Error de sintaxis: must start with 'quest' [X]:[X]:Error occured on compile [X] Significado: La quest debe empezar con 'quest'. Análisis: Toda quest debe ser iniciada con "quest [X] begin" y cerrada con un "end". Corrección: Asegúrate que la quest empieza con la sintaxis "quest [X] begin". Asegúrate que no hay nada fuera de el bloque "quest [X] begin" - end. Asegúrate que no has cometido un error de escritura en la forma tÃpica de inicio de la quest. Imagen ejemplo: 8. Trying/attempt to compare number with nil Error de sintaxis: Trying/attempt to compare number with nil (se muestra en el Syserr) Significado: Al servidor le es imposible comparar un dato con nil. Análisis: Nil es lo que se le da a algo que no tiene valor. Es similar al 0, es decir, la nada, algo que no existe. Teniendo esto en cuenta, es lógico pensar que el servidor no pueda comparar algo con la nada. Corrección: Revisar que todas las variables o funciones que se comparen (a través de una sentencia if) tengan un valor definido previamente. Y eso es todo. Si os aparece algún otro error relacionado con quest, decÃrmelo. Ampliaré la guÃa sin ayuda de Alessa xd Un saludo UnavaRicneape, Slabon, Rafa23Alzira and 20 others 20 3 Link to comment Share on other sites More sharing options...
Predator77 Posted July 19, 2012 Report Share Posted July 19, 2012 Ahi te va +1 por el aporte, Servira de mucho ! Link to comment Share on other sites More sharing options...
KeKo Posted July 19, 2012 Report Share Posted July 19, 2012 Muy buena raul, ya habia visto la guia en epvp y tmbn pensaba en tradcirla pero te me adelantaste xd. Sobre el nil es el unico que solo me salio una vez escribiendo quests. Un nil representa un conjunto vacio y las pocas veces que lo tengo visto haciendo quests es cuando aparece in input y se quiere poner la restriccion de si no escribes nada. Si a alguien le sale este error que revisen la quest porque lo mas seguro es que esten intentando mostrar un dato que no existe, cosas como un local que se muestra pero al que no se le asigna valor. Link to comment Share on other sites More sharing options...
Akroma Posted July 19, 2012 Report Share Posted July 19, 2012 buenisima tio, xd sigue asin, me servira bastante para seguir aprendiendo Link to comment Share on other sites More sharing options...
Kryzz Posted July 19, 2012 Report Share Posted July 19, 2012 Muy buena, de los errores se aprende . Link to comment Share on other sites More sharing options...
ElRaulxX Posted October 17, 2012 Author Report Share Posted October 17, 2012 Completado el apartado 8. Me olvidé completamente de acabarlo >< Link to comment Share on other sites More sharing options...
Guest Caes Posted January 31, 2014 Report Share Posted January 31, 2014 Disculpen, podrían reparar lo de las tildes, es un poco incomodo leer la guía así. Link to comment Share on other sites More sharing options...
Recommended Posts