Jump to content
Sign in to follow this  
caanmasu

Crea tus quest como un profesional

Recommended Posts

¡Hola a todos!

 

Esta es una guía para crear quest como un profesional.

¿Has editado una quest desde bloc de notas y parece muy difícil? realmente lo es. De hecho, yo no puedo hacer quest ahí

¿Has editado quest por Notepad++ y parece muy difícil? al principio cuando era nuevo y no configuraba Notepad++ sí. Ahora que tengo experiencia puedo decirte que existen ciertas configuraciones y reglas para facilitar la programación de quests.

 

Esta guía tiene el objetivo de facilitar la programación de quests, a tal nivel que, ahorrarás bastante tiempo haciéndolas sin cometer errores porque los verás al instante.

 

Empecemos:

 

1. Configurar Notepad++

 

Abre Notepad++ y haz lo siguiente:

1.1 Haremos que al darle a Nuevo, nos cree un archivo con la codificación correcta (ANSI) para que el servidor lea las tildes. Además, el nuevo archivo tendrá por defecto el lenguaje Lua donde resaltará las palabras reservadas (como if, for, etc)

Procedimiento:

Configuración -> Preferencias -> Archivo nuevo -> Codificación: ANSI, Lenguaje: Lua

image.png

image.png

 

1.2 Dejaremos por defecto el tamaño del tabulador en 4.

Procedimiento:

Configuración -> Preferencias -> Lenguaje -> Tamaño: 4

image.png

image.png

 

1.3 Para que se vean los tabuladores y espacios. Ver los espacios nos ayuda a diferenciar de los tabuladores cuando son muy reducidos. Los tabuladores nos ayudarán a indentar el código (ya lo veremos más adelante)

Procedimiento:

Vista -> Mostrar símbolo -> Mostrar espacios y tabulaciones

image.png

Finalmente verás los espacios y tabuladores así:

image.png

 

1.4 Crearemos una extensión del lenguaje Lua. Como sabemos, el lenguaje Quest es un derivado del lenguaje Lua y cuando abrimos un archivo .quest no lo va a reconocer como Lua.

Procedimiento:

Configuración -> Configurador de estilo... -> Lenguaje: Lua -> Ext. Usuario: quest

Nota: no cierres la ventana aún

image.png

image.png

 

1.5 Vamos a agregar la palabra reservada with a nuestro lenguaje quest. La palabra with está dentro de los conjuntos if, else, elseif, then, etc. Solo que esas están en Lua, y with está en quest porque se usa en el bloque when. Lo que hacemos es meter los conjuntos de palabras reservadas del mismo tipo de Lua en quest.

Procedimiento:

Configuración -> Configurador de estilo... -> Lenguaje: Lua -> Estilo: INSTRUCTION WORD: with, Tipo de fuente: Negrita

image.png

 

1.6 Vamos a hacer lo mismo que el paso anterior pero con las funciones.

Procedimiento:

Ir al FTP ir a la carpeta quest y copiar el contenido que tengas en quest_functions. Luego:

Configuración -> Configurador de estilo... -> Lenguaje: Lua -> Estilo: FUNC1: (pegar todas las funciones de quest_functions), Tipo de fuente: Negrita

image.png

 

1.7 Haremos lo mismo pero con las palabras reservadas de quest.

Procedimiento:

Configuración -> Configurador de estilo... -> Estilo: FUNC2: quest begin state end when, Tipo de fuente: Negrita

image.png

 

2. Hacer una quest profesional probando este entorno de desarrollo mejorado

 

Cuando hablo de indentar me refiero a jerarquizar el código. Es decir, un programa quest tiene una estructura de bloques. El bloque más poderoso, más sobresaliente, es el bloque quest.

Bloque quest:

image.png

Pero necesita un state para funcionar, y además tiene un state que se ejecuta por defecto que es el start.

image.png

¿Por qué puse los tabs y por qué ahí?

Porque el bloque quest y state no van en la misma jerarquía. Tú no puedes poner primero el state y luego el quest.

Quest identifica la quest, y state identifica el estado, o sea, el conjunto de disparadores (when) que afectan al personaje. Si el personaje está en otro state, los when de los otros state no funcionarán.

Vamos a crear un when:

image.png

Cada vez que abrimos un bloque, las siguientes líneas van con un tab nuevo.

¿Cuáles son los bloques? aquí los dejo a continuación:

image.png

No es difícil, apenas son el quest, state, when, function (que son típicos de Quest), y los if-elseif, if, for (hay otro que es repeat pero lo omitiré) que son de Lua.

Todo bloque termina en end, y ese end va en la misma jerarquía que el bloque obviamente.

¿Por qué indentar?

Después de ver tantas quest me di cuenta que podías buscar un error durante 4 horas y no encontrarlo cuando era un end que faltaba o que estaba de más.

Indentar las quest te hace tener el código más ordenado y así vas a tener éxito haciendo esto, lo digo por experiencia.

 

Tips que nadie te los dirá:

- El bloque function puede ir en cualquier state y lo puedes llamar sin problema. Si function está en state start y el personaje está en state run, puedes llamarlo desde run y funciona.

- Regla de los say, select: no debes tener ciertos caracteres especiales como tildes como último caracter y tampoco te pases de 49 caracteres (50 ya te da un salto de línea).

- Regla del with. El with sirve para separar las instrucciones de disparadores de las otras. Es decir, when login or levelup with pc.level > 10 begin, lo que está antes del with son disparadores (es decir, se activan una vez suceda) y se ponen antes del with. Nunca va un and porque es imposible que sucedan dos disparadores al mismo tiempo. Luego lo que va después del with son instrucciones en Lua normales, allí puedes jugar con las funciones sin problema.

- Abreviaciones básicas: en la parte anterior puse pc.level, esto es porque en el questlib.lua hay unas asignaciones. Puedes ver que pc.level = pc.get_level(), lo cual quiere decir que cuando pones pc.level hará referencia a lo que está después del igual. Y así con otras funciones. 

 

Puedes probar tu nuevo entorno en Notepad++ y estarás confiado si te quedó bien una función si te aparece de color morado.

 

Esto fue todo por hoy.

Ofrezco mis servicios de quest/lua y tengo una buena promoción de una misión de caza súper buena con un buscador de ítems en cofres :3

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

 

¡Que tengan muchos éxitos!

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...