![]() | ![]() | ![]() | Puntuación y otras yerbas |
Constant Historia "Monkey Island";
Constant Titular "Un plagio conversacional^
Copyright (c) 1999 de Armando Pleitos.^";
|
Todas las demás constantes que veremos aquí son opcionales.
Constant OBJETO_SACO = mochila;
Object mochila "mochila"
with descripcion "Es grande y tiene una sonrisa pintada.",
nombre 'mochila', articulo 'tu',
si_cerrada "Tu mochila está tirada en el suelo.",
si_abierta "Tu mochila está abierta en el suelo.",
has recipiente abierto abrible femenino;
|
El juego Ruinas no necesita esta característica ya que hay muy pocos objetos que el jugador pueda transportar como para necesitar un saco.
![]() |
InformATE utiliza algunas constantes más que no estaban en la
librería original:
|
Las restantes constantes están relacionadas con el sistema de puntuación, por lo que las veremos en el siguiente apartado.
La librería proporciona dos sistemas de puntuación independientes. Puedes usar ambos, o ninguno de ellos. La librería suele ocuparse de aumentar o disminuir la puntuación automáticamente, si bien tú mismo puedes modificar la variable puntuacion como y cuando quieras (el problema es que en este caso el verbo "puntuacion total", que normalmente le explica al jugador cómo ha obtenido los puntos, puede que no supiera explicarlo todo convenientemente. Según uno de los métodos de puntuación, el jugador puede obtener puntos por coger ciertos objetos o por llegar a ciertos lugares. Según el otro método, el jugador obtiene puntos por lograr completar ciertas acciones.
Las constantes relacionadas con la puntuación son:
Si vas a usar el sistema de puntuación por "tareas", además de especificar en la constante NUMERO_TAREAS cuántas tareas tiene el juego, deberás definir otra constante llamada HAY_TAREAS y además especificar cuánto puntúa cada tarea, creando un array llamado puntuacion_tareas como este:
Array puntuacion_tareas -> t0 t1 ... tn; |
donde t0 es la puntuación de la tarea 0, t1 la de la tarea 1, y así sucesivamente (n será NUMERO_TAREAS-1). Observar que este es un array de tipo byte, por lo que cada puntuación será como máximo 255.
Una vez declarado lo anterior, cada vez que el jugador complete una tarea (por ejemplo "conseguir entrar en la tumba"), el código llamará a la función Conseguido(tarea) donde tarea es el número de la tarea conseguida. Aunque llames a esa función varias veces, los puntos sólo se sumarán realmente a la puntuación la primera vez que se llama para cada tarea.
Recuerda, no obstante, que todo este asunto de las tareas es opcional. Si no defines la constante HAY_TAREAS no necesitas tampoco definir las puntuaciones de cada tarea ni utilizar la llamada a Conseguido. Pero si lo defines, el jugador podrá usar el comando "puntuacion total" para obtener un resumen de qué tareas ha conseguido y cuántos puntos ha obtenido por cada una. En este caso deberás programar también una rutina llamada ImprimirTareas que la librería llamará cuando necesite escribir la explicación de una tarea dada. Esta rutina recibe un parámetro que es el número de la tarea y debe escribir un texto que sea la descripción de esa tarea. Por ejemplo (obtenido del juego "La juguetería"):
[ ImprimirTareas cual; switch(cual) 0: "comer una golosina"; 1: "conducir el coche"; 2: "cerrar el tragaluz"; 3: "hacer una pila de cuatro"; 4: "ver hacia donde se inclina la repisa"; ];
Otra función que puedes definir (si quieres) es la llamada ImprimirRango, cuyo cometido es escribir algún texto extra tras la puntuación (tradicionalmente el rango alcanzado). Por ejemplo podríamos añadir lo siguiente a "Ruinas":
[ ImprimirRango
print ", lo que te otorga el rango de ";
switch(puntuacion)
{ 0 to 9: "humilde turista del bosque.";
10 to 19: "Investigador.";
20 to 29: "Recolector.";
30 to 49: "Arqueólogo.";
50: "Maestro Arqueólogo.";
}
];
|
Normalmente InformATE escribirá mensajes como:
[Tu puntuación ha aumentado en tres puntos.] |
Cada vez que la puntuación cambia (por la razón que sea). El jugador puede desactivar estos mensajes y activarlos de nuevo mediante el verbo notificar. Por defecto está activada (pero desde el programa puedes cambiar el valor de la variable modo_notificar para controlar esto).
Además el jugador podrá normalmente usar el comando OBJETOS para obtener un listado de todos los objetos que han estado en su poder y dónde los ha dejado, y el comando LUGARES para obtener una lista de los nombres de los lugares que ha visitado. Si no quieres que el jugador disponga de estos comandos, define la constante NO_LUGARES antes de incluir la librería.
![]() |
|
![]() | ![]() | ![]() | Puntuación y otras yerbas |