Pages - Menu

jueves, 26 de diciembre de 2013

RPG Maker VX Ace: Sistema de Misiones Secundarias

En el post de ayer pudimos ver cómo crear un sistema de mensajes emergentes usando las librerías CSCA. El objetivo de implementar ese simple pero elegante sistema fue para poder aprovechar al máximo las funcionalidades de los nuevos scripts que vamos a implementar. En éste post vamos a ver cómo crear un sistema de misiones secundarias.


Misiones Secundarias.

Las misiones secundarias en un RPG son un elemento indispensable, damos variedad al juego y alargamos su duración además de poder otorgar recompensas especiales si así lo deseamos.

CSCA Sidequest.

El usuario Casper Gaming nos brida un sistema de misiones secundarias muy famoso y que muchos de los seguidores de la saga Final Fantasy Tactics reconoceremos. Las misiones se presentan al estilo de un tablón de anuncios o una persona encargada de gestionar las misiones, nosotros elegimos la que queramos, ésta misión se activará y en el momento de cumplirla recibiremos una recompensa además de desbloquear nuevas misiones secundarias.

Instalar CSCA Sidequest.

Lo primero que debemos hacer es copiar el código, éste se puede descargar de éste enlace.

Lo siguiente es abrir nuestro proyecto en el editor y pulsar F11 para abrir la ventana de scripts.

Insertamos una nueva línea, la nombramos como "CSCA Sidequests" y pegamos el código en la parte de la derecha.


Con esto hemos implementado perfectamente el sistema de misiones secundarias. Ahora vamos a crear un evento para poder acceder a la ventana de gestión de misiones secundarias. En mi caso el evento es el siguiente:


De nuevo he añadido un script para llamar al proceso que muestra la ventana.


Pulsamos F12 para probar el juego.


Al hablar con el personaje aparecerá la ventana de misiones.


Además gracias al CSCA Menu Organizer tenemos en el menú la opción de ver la misión actual que hayamos aceptado.



Completando misiones.

Vamos a plantear un caso de prueba de éste sistema, vamos a hacer que al abrir el cofre del pueblo se complete la primera misión. Modificamos el evento del cofre tal que así:


Lo que he hecho es añadir dos scripts al final del código.



El primero completará la misión y el segundo mostrará un mensaje emergente de que la misión ha sido completada.

Pulsamos F12 para testear el juego.


Como podemos ver, sólo tenemos la primera misión activada, ahora vamos a abrir el cofre.


Ahora vamos de nuevo a hablar con el personaje para mostrar la lista de las misiones.


Como se puede ver, al completar la primera misión se nos ha activado la segunda, ahora podemos elegir cualquiera de las dos.

Agregar o Modificar Misiones Secundarias.

Como hemos podido comprobar, ya tenemos implementado correctamente el sistema de misiones secundarias, ahora podemos agregar nuevas misiones mediante código, veamos como:

Pulsamos F11 para abrir la ventana de scripts y nos vamos a la parte donde está este código.


#TASK[x] = ["Task array.","Separate tasks with commas!"]
TASKS[0] = ["Objective one","Objective two","Objective three"]
TASKS[1] = ["Do this","Then do this","And finally do this"]
TASKS[2] = ["This","Is","A","Lot","Of","Tasks","For","A","Tutorial"]
 
#SIDEQUESTS[x] = {"tasks" => TASK ARRAY VALUE, "name" => "Mission Name",
#"switch" => [switch_id, true/false](leave nil to not use a switch)
#"variable" => [variable_id, value](leave nil to not use a variable)
SIDEQUESTS[0] = {"tasks" => TASKS[0], "name" => "Tutorial", "switch" => nil, "variable" => nil, "sidequest" => nil}
SIDEQUESTS[1] = {"tasks" => TASKS[1], "name" => "Tutorial 2", "switch" => [1, true], "variable" => nil, "sidequest" => 0}
SIDEQUESTS[2] = {"tasks" => TASKS[2], "name" => "Tutorial 3", "switch" => nil, "variable" => [2, 10], "sidequest" => 1}

Podemos ver dos arrays, TASK y SIDEQUEST. En el array TASK rellenamos las instrucciones de la misión, esto será lo que se muestre en pantalla.

El array SIDEQUEST es el que crea la misión secundaria, se rellena media un registro del array TASK (para las instrucciones), un interruptor que definamos (si queremos), una variable (si queremos) y un indicador de si la misión está completa o no.

Para habilitar y completar las misiones podemos usar interruptores y variables del propio juego, al igual que hemos hecho en otras ocasiones con otras cosas.

Personalizando la ventana de Misiones Secundarias.

Al igual que podíamos personalizar el coliseo, también podemos personalizar la ventana del gestor de misiones secundarias, para ello pulsamos F11 para irnos a la ventana de scripts y buscamos los siguientes:

HEADER = "Message Board" - Mensaje que aparece en la cabecera de la ventana.
HEADER2 = "Current Mission" - Mensaje que aparece en la cabecera de la ventana de misión actual.
TASK_TEXT = "Objectives" - Mensaje que aparece en la ventana de objetivos de la misión.

Conclusiones.

Hemos terminado de crear un sistema de misiones secundarias para nuestro RPG, ahora sólo falta dotar ese sistema de muchas misiones y recompensas, esto le dará mucha variedad al juego proporcionando una forma de obtener objetos poderosos o de subir experiencia facilmente.

¿Qué tipo de misiones secundarías crearías en RPG Maker VX Ace?