indy_logo.gif (3362 bytes)

Paso 4: haciéndolo más difícil para el jugador.

Esto será también hacerlo también más difícil para el programador ;-).
En este momento, el jugador tendrá una conversación en orden con alguien para conseguir un objeto.


ROOM main
{
	IMAGE { "gr/street_2.gif" }
	WALK { "gr/street_2_bm.gif" }

	ITEM Indy       // Mi héroe   :)
	{
		ANIMATION
		{
			// --- imágenes en reposo ---
			0  0  "gr/indy_d.gif"  1 // Mirando al Sur
			0  1  "gr/indy_r.gif"  1 // Mirando al Oeste
			0  2  "gr/indy_u.gif"  1 // Mirando al Norte
			0  3  "gr/indy_l.gif"  1 // Mirando al Este
			// --- animaciones caminando ---
			1  0  "gr/indy_wd.gif" 4 // Mirando al Sur
			1  1  "gr/indy_wr.gif" 6 // Mirando al Oeste
			1  2  "gr/indy_wu.gif" 4 // Mirando al Norte
			1  3  "gr/indy_wl.gif" 6 // Mirando al Este
			// --- animaciones hablando ---
			2  0  "gr/indy_td.gif" 7 // Mirando al Sur
			2  1  "gr/indy_tr.gif" 4 // Mirando al Oeste
			2  2  "gr/indy_tu.gif" 1 // Mirando al Norte
			2  3  "gr/indy_tl.gif" 4 // Mirando al Este
		}
		POSITION { 140 140 0 }
	}

	ITEM sophia
	{
		ANIMATION
		{
			// --- imágenes en reposo ---
			0  1  "gr/sophia_r.gif" 1 // Mirando al Oeste
			0  3  "gr/sophia_l.gif" 1 // Mirando al Este
			// --- animaciones caminando ---
			1  1  "gr/sophia_r.gif" 1 // Mirando al Oeste
			1  3  "gr/sophia_l.gif" 1 // Mirando al Este
			// --- animaciones hablando ---
			2  1  "gr/sophia_tr.gif" 4 // Mirando al Oeste
			2  3  "gr/sophia_tl.gif" 4 // Mirando al Este
		}
		INK { 3 }	// Sophia habla con la letra rosa  :)
		POSITION { 250 143 0 }
		ITEM medallion
		{
			ICON { "gr/medalion.gif" }
		}
		INTEGER { f }	// una simple variable
		COMMAND "look at" sophia
		{
			SAY indy "Mi chica favorita."
		}
		COMMAND "talk to" sophia
		{
			IF
			{
				EQ f 0	// ( f=0 ?) ¿Ha hablado con ella antes?
			}
			THEN
			{
				MOVE indy 210 142 0	// Muévelo a su izquierda.
				WAIT indy
				TURN indy sophia	// Mírala.
				TURN sophia indy	// Mírale!
				SAY indy "¡Sophia!  Te perdí desde Atlantis."
				WAIT indy		// Espera esta sentencia para finalizar.
				SAY sophia "¿Tu? ¡Pero si casi me matas allí!."
				WAIT sophia
				SAY sophia "¡Nunca jugare ninguna otra aventura contigo!"
				WAIT sophia
				SAY indy "¡Sophia!.  ¡Espera!"
			}

			IF
			{
				EQ f 1	// f=1 ?
			}
			THEN
			{
				MOVE indy 210 142 0	// Muévele a su izquierda.
				WAIT indy
				TURN indy sophia	// Mírala.
				TURN sophia indy	// ¡Mírale!
				SAY indy "Te necesito. Dame otra oportunidad."
				WAIT indy
				SAY sophia "Mmmmm..."
				WAIT sophia
				SAY sophia "Toma esto, te ayudara."
				GIVE indy medallion	// Bingo!
				SOUND "snd/medal.au"
			}

			IF
			{
				EQ f 2	// ( f=2 ?) ¿Ha conseguido Indy ya el medallón?
			}
			THEN
			{
				SAY indy "Mejor será que la deje sola, por ahora."
			}

			ADD f 1		// (f=f+1) Incrementa la variable "f"
		}
	}
}

COMMAND "look at" *
{
	SAY indy "No veo nada especial."
}
COMMAND * *
{
	SAY indy "No puedo hacer eso"
}
COMMAND * * *
{
	SAY indy "No puedo hacer eso."
}


Mira el bloque COMMAND que a través de la conversación dirige una variable entera (son variables enteras todas aquellas que pueden contener un número sin decimales y entero, p.e. 0, 2, 120, 2000, 1474).
La variable f indica el nivel de progresión en el que nos encontramos dentro de la conversación. El jugador tendrá que conversar con la chica mas de una vez para conseguir algo.
Todas las variables (ya sean globales o locales) serán siempre "estáticas", significa que ellas retendrán sus valores durante todo el juego. También, todas las variables enteras tendrán el valor 0 al comenzar.

La palabra reservada WAIT es esencial en las "escenas cortadas" (son aquellas que hablan los personajes sin el control del jugador). Esta palabra (WAIT) congela la ejecución, dejando el control fuera del jugador, Mientras el orador finaliza la sentencia.

El color de las frases puede ser especificado para cada carácter (Mira el Manual de Referencia para ver el código de colores de la sentencia SETINK). Usando diferentes colores será más fácil para el jugador seguir la conversación.

Siguiente >>

Volver a la página principal