Ir a contenido

Foto

Capítulo II - Estructura de una quest


  • Please log in to reply
8 Respuesta(s) a este Tema
Metin2

#1
KeKo

KeKo

    Forero Experto

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.475 Mensaje(s)

*
MENSAJE POPULAR!

Buenas zone!

Llega el segundo capítulo del esperado curso de creacion de quests. Tras un primer episodio lleno de aventuras, romance e intriga en esta entrega os voi a explicar como se estructura una quest.

Antes de nada recordaré las palabras de un sabio llamado raul sobre: qué es una quest? Y además tened esto en mente siempre durante este capítulo.

una quest es cualquier archivo que utilice el lenguaje quest


es importante que aprendáis a hablar y pensar en lenguaje informático.



Lo primero de todo cuando vas a hacer una quest es crear el archivo de la quest en si. Como es un archivo de una quest debe tener la extension .quest, para lo que le damos a boton derecho -> nuevo -> documento de texto y una vez creado el archivo. txt le cambiamos el nombre a .quest.

Bueno, después de esta ardua tarea nos encontraremos cara a cara con un archivo en blanco en el que tendremos que vertir nuestras ideas para que se convierta en una quest hecha y derecha. Voi entonces a explicaros como se estructura una quest estándar para que sepais como enfrentaros a nuestro terrible enemigo durante todo el curso: la quest en blanco.

Una quest se divide en 3 partes que podreis distinguir fácilmente:

- Apertura: Son siempre las 2 primeras lineas de una quest.

- Cuerpo: Es lo que podriamos llamar la quest en si, ya que es la parte de la quest que contiene todas las cosas que queremos que haga la quest.

- Cierre: Son siempre ends (a los que dedicare un apartado especial en este capitulo) que hacen que nuestra quest acabe correctamente.

Vamos a hablar ahora en profundidad de cada una de estas partes:

1 - La apertura:

La primera parte de una quest es la que llamaremos apertura a lo largo del curso (ya parezco un profesor ) y que como dije arriba son siempre las dos primeras lineas de una quest.

Veamos un ejemplo de como se debe hacer una apertura:

Please Login or Register to see this Hidden Content


Bien, ahora vamos a centrarnos en qué hace cada una de esas dos líneas:

Please Login or Register to see this Hidden Content


La linea más básica de toda una quest, simplemente manda la orden de que comience la quest.

*Desmitificando las quests v1: Se que mucha gente tiene la creencia pagana de que el nombre que va despues de quest en la primera linea de la apertura tiene que ser el mismo que el nombre del archivo .quest PERO ES MENTIRA!!

El nombre que ponemos ahi puede ser el que nos apetezca, ya que simplemente es lo que el juego al cargar la quest para ver que está empezando una.

Bien, ahora la segunda linea:

Please Login or Register to see this Hidden Content


Esta linea lo que hace es que comience el estado "start" , es decir: que podemos empezar a escribir nuestra quest.

*Es muy importante que sepais que este estado va a continuar activo hasta el final de la quest, a expecion de casos en los que usemos otros estados aparte del inicial (en lo que profundizará raul en el capítulo de los estados).
Esto es todo sobre la apertura, espero aver resuelto dudas y enseñado algo que no sepais, y si no lo habreis leido pa na


2 - El cuerpo de una quest:

Ahora que ya hemos mandado la orden de que la quest comience (primera linea de la apertura) y hemos activo el estado de start (para poder empezar a escribir quest) nos toca elaborar nuestra quest para hacer eso que queríamos hacer para dejar de ver la temible quest en blanco.

Please Login or Register to see this Hidden Content


De momento tenemos esto, pero ahora queremos hacerlo más digo yo, no? Pues sí! Me remitiré de nuevo a la cita de mi colega raul:

Pienso en levantarme.


Acción de levantarse: ¿se ha ejecutado correctamente? Si es así, voy al siguiente punto


Como veis, cuando pensamos en lenguaje de quest nos planteamos hacer una acción y por lo tanto en el cuerpo de una quest puede suceder varias cosas:

- Que una accion comience.
- Que pongamos una condicion para que una accion se desarrolle.
- Que una accion se desarrole.
- Que comprobemos que una accion se esta desarrolando.
- Que una accion termine.

Es por eso que en el cuerpo de una quest vamos a usar una serie de operadores logísticos que nos permitiran desarrollar nuestra quest, y que son los siguientes:

Please Login or Register to see this Hidden Content


De ellos:

* when y while sirven para comenzar acciones.
* with and or if elseif y else sirven para poner condiciones.
* > < >= <= == ~= sirven para hacer comprobaciones entre acciones.

Primero veremos un ejemplo sencillo de quest que te pone un mensaje en la barra de chat cuando te logeas:

Please Login or Register to see this Hidden Content


Como veis tenemos apertura, la orden de que comience una accion cuando nos logeemos y luego la accion que se desarrola cuando nos logeamos.

Vamos a ver ahora mas fondo esto con un ejemplo de quest que envia un mensaje a todos cuando un nuevo pj comienza el juego:

Please Login or Register to see this Hidden Content


Como veis empieza con la apertura.

Luego tenemos una orden para comnenzar una accion: en este caso la accion comenzará cuando nos logeemos con un personaje.

Please Login or Register to see this Hidden Content


Y este comienzo además tiene una comprobación antes de que se desarrolle la accion:

Please Login or Register to see this Hidden Content


En este caso no solo llega con que nos logeemos con un personaje, ya que tiene que además ser nivel 1, porque tenemos una orden de login, pero con la orden with seguida de una funcion: pc.get_level() y como veis un == que sirve para comprobar que el valor del nivel del personaje es igual a 1.

Please Login or Register to see this Hidden Content


Y ahi ya está todo entero. Como veis una vez echa la orden de comenzar la accion cuando nos logeemos, con la condicion de que el personaje sea nivel 1 ponemos la orden begin, para que comience la accion.

Por último simplemente ponemos la accion que se va a desarrollar:

Please Login or Register to see this Hidden Content


Bien, creo que ahora ya vais entendiendo como va el cuerpo de una quest, quedaros con el dato de que siempre habrá una orden que haga que comience una mision, ya sea con el when, while, if.... y luego despues de especificar que tiene que pasar para que comience la accion usaremos funciones de quest para desarrolar esa acción.

Bueno pues ahora ya tenemos nuestra accion desarrolandose, pero que hacemos con ella? Como las acciones no pueden ser eternas tenemos que acabarla, y para eso usaremos la palabra end, que indica que la accion termina.

----------------------------------------------------------------------------------------------------------------------------------------------------------------
*Apartado especial, nuestros amigos los ends:

Como muchos sabeis uno de los errores más comunes a la hora de hacer quests es poner o bien ends de más o bien ends de menos, lo que hará que nuestras quests no funcionen. Por lo tanto antes de nada parémonos a pensar en que es lo que es un end.

Procediente del inglés la palabra end es un verbo que significa terminar, lo que no nos puede dejar más claro cual es su función en una quest: terminar una acción.

Por lo tanto cada vez que tengamos una accion tendremos que ponerle un end al final para acabarla. Y de que manera vamos a hacer eso? Os lo diremos en el proximo capitulo , na en serio, asi funcionan los ends:

- Por cada begin que tengamos en nuestra quest nosotros le colocaremos un end.
- Por cada if que haya en la quest pondremos un end.

Veamos algunos ejemplos:

Please Login or Register to see this Hidden Content


Por cada begin corresponde a un end

Please Login or Register to see this Hidden Content


En este caso hay un if asi que ponemos un end

*Desmitificando las quest v2: Mucha gente comete el error de pensar que si ves un elseif como lleva la palabra if pues debe tener un end también, pero NO!!! Y es porque un elseif es una continuacion de una condición y no una nueva condicion

Ejemplo:

Please Login or Register to see this Hidden Content


Como veis solo hay un end, el correspondiente al primer if.

------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bien ahora que ya conocemos mejor a los ends (de los cuales os seguiremos hablando en posteriores capitulos) ya podemos acabar el cuerpo de nuestra quest, cerrando la accion que habeis comenzado.


Please Login or Register to see this Hidden Content



Pero los listos os habreis dado cuenta de que en nuestra quest quedan 2 begins (de la apertura) que no tienen su end y eso lo voi a explicar ahora en la ultima parte de la estructura de una quest.

3 - Cierre de una quest:

Cada vez que acabemos una quest vamos a tener que poner dos ends para cerrar la quest, y os estareis preguntando, y porque??? Pues la explicacion es esta:

Please Login or Register to see this Hidden Content


Os acordais de la apertura? Si lo haceis os acordareis de que para hacer una quest tenemos que hacer un estado de comienzo (state start), que logicamente acabara cuando acabe la quest. De ahi viene el primer end del cierre de una quest.

*Detalle importante: algún espabilado habrá visto quests en los que se usan otros states aparte del start. En eses casos el cierre solo lleva un end (el que explico abajo) ya que acabaremos el start antes de lo normal para poner nuestro nuevo estado (para mas info sobre estado atentos al capítulo dedicado a ellos que hará raul).

Y ahora el segundo end del cierre:

Please Login or Register to see this Hidden Content


De nuevo dire si os acordais de la apertura (que espero que os acordeis ) sabreis que cada quest empieza con esa orden, y como os fijareis tiene un begin al final por lo que le corresponde un end, pero no se lo podemos poner en cualquier momento, ya que (me quoteo a mi mismo):

Procediente del inglés la palabra end es un verbo que significa terminar, lo que no nos puede dejar más claro cual es su función en una quest: terminar una acción.


Es decir, si acabamos la accion de que comience la quest, acabamos la quest (genial deduccion). Siguiendo este hilo de deduccion os habreis dado cuenta de que es por eso por lo que el end correspondiente al begin del quest nombre begin siempre va al final de la quest.

Y ahora ya podemos ver nuestra quest completa y lista para cargar

Please Login or Register to see this Hidden Content


Y eso es todo por el capítulo de hoy, espero que lo hayas disfrutado y pronto llegará el 3er episodio de manos de raul.
  • A fuuton97, Gabiii, Joakin47 y a 10 más les gusta esto

#2
Akroma

Akroma

    Forero Profesional

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 719 Mensaje(s)
omg, interesante leccion, la aplicare ahora mismo.

#3
Santy!.

Santy!.

    Forero Experto

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.047 Mensaje(s)
joer 1 mas largo que el otro jajaj gracias por hacer estos cursos por asi llamarlo me aclaran muchas dudas!

#4
Pathits!

Pathits!

    Experimentado

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 315 Mensaje(s)
Gracias Me servirá de Mucho, los pondré en practica de inmediato

#5
Rafa23Alzira

Rafa23Alzira

    Forero Experto

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 2.015 Mensaje(s)
Muchas gracias, ya espero ansioso el 3 capitulo.

#6
Croqueta

Croqueta

    Experimentado

  • Quest Master
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 309 Mensaje(s)
se te olbido desir q cuando una quest tiene el id de un bicho no se puede usar el id.kill sino la quest no funciona

#7
Melany

Melany

    Experimentado

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 357 Mensaje(s)
  • Sexo:Masculino
a mrd ya me isieron marear , pero aun no entiendo casi nada

#8
Miguelito

Miguelito

    Ayudando en Metin2

  • Miembro
  • MarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcarMarcar
  • 1.717 Mensaje(s)
  • Skype:No Uso SKYPE
  • Sexo:Masculino
  • Localización:Santiago, Chile

muy buena explicacion :)


www.mt2frontier.com cada dia somos mas, y cada dia vamos mejorando!
Que esperas para unirte?

141126064536865083.png

 

Una nueva comunidad de metin2 http://www.metin2area.net/


#9
Desagradable

Desagradable

    Interesado

  • Miembro
  • MarcarMarcarMarcarMarcar
  • 57 Mensaje(s)

gracias por tu me gusta






0 Usuario(s) están leyendo este Tema

0 miembro(s), 0 invitado(s), 0 usuario(s) anónimo(s)