varios:entendiendo_la_libreria_base [Superglús]
 Superglús   Sistema de autoría de aventuras conversacionales Inicio



Entendiendo la librería base

Respuestas por defecto

La librería base es la librería con la que en principio empezaremos todos nuestros juegos. Así, la librería contiene respuestas por defecto para muchas acciones, que permiten que el jugador reciba respuestas personalizadas, de índole negativo en general, pero diferentes al simple “No puedes hacer eso.”

Así, por ejemplo, la librería tiene esta respuesta para “SALTAR”:

SALTAR _
 WRITELN "Saltas, sin conseguir nada."
 DONE

Como véis la respuesta es “negativa”, es decir, no consigues nada, pero al menos hay una respuesta.

Existen casos de acciones transitivas, es decir, que requieren un complemento directo, un nombre, en la frase, como por ejemplo “AGITAR”:

AGITAR _                        ; No hay nombre en la frase
 EQ 34 255
 WRITELN "No ves eso que dices."
 DONE
 
AGITAR _
 NOTEQ 34 255
 LT 34 50			  ; hay nombre, y es propio
 WRITELN "No creo que le guste demasiado."
 DONE
 
 
AGITAR _                        ; Hay nombre pero no es un objeto
 NOTEQ 34 255
 EQ 51 255
 WRITELN "No le ves sentido a mover eso."
 DONE


AGITAR _                        ; Es un objeto presente
 NOTEQ 51 255
 PRESENT @51
 WRITELN "No quieres mover _."
 DONE

AGITAR _                        ; Es un objeto ausente
 NOTEQ 51 255
 ABSENT @51
 WRITELN "No ves _ por aquí."
 DONE

Aquí podéis ver que existen varias respuestas, que básicamente están planteando distintos casos:

AGITAR _                        ; No hay nombre en la frase
 EQ 34 255
 WRITELN "No ves eso que dices."
 DONE
 

Esta ha comprobado que el flag 34 (que contiene el núumero del nombre de la frase actual) es 255, lo cual quiere decir que no hay nombre. En ese caso se entiende que o bien el jugador esrbió “AGITAR” a secas, sin decir que agitar, o bien escribió un nombre no contemplado por el autor. Por tanto nos indica “No veo eso que dices.” al no tener más información.

AGITAR _
 NOTEQ 34 255
 LT 34 50			  ; hay nombre, y es propio
 WRITELN "No creo que le guste demasiado."
 DONE

Esta segunda entrada sí tiene nombre (porque el flag 34 no vale 255) pero es propio, por lo cual damos una respuesta como si estuvieramos intentando agitar a alguien: “No creo que le guste demasiado.”


AGITAR _                        ; Es un objeto presente
 NOTEQ 51 255
 PRESENT @51
 WRITELN "No quieres mover _."
 DONE

El flag 51 guarda el número de objeto referenciado. Si es distinto de 255 significa no sólo que hay un nombre en la frase, sino que además es un objeto conocido. Así que después de comprobar que el objeto esta a nuestro alcance (PRESENT) indicamos que no queremos moverlo: “No quieres mover _.” Os recuerdo que el guón bajo es substituido en los mensajes por el texto del objeto referenciado.

AGITAR _                        ; Es un objeto ausente
 NOTEQ 51 255
 ABSENT @51
 WRITELN "No ves _ por aquí."
 DONE

En caso de que sea un objeto pero no este a nuestro alcance (ABSENT) pondremos un mensaje similar, pero indicando que lo tienes a mano: “No ves _ por aquí.”

Esta combinatoria de casos se dá para muchas acciones en la librería base.

Acciones sinónimas

En ocasiones hay cosas que se pueden decir de dos maneras, o que dependiendo de algo significan algo distinto.

Por ejemplo:

  • “SACAR TODO DE BOLSA” es lo mismo que “VACIAR BOLSA”
  • En “TIRAR ROCA” queremos decir “lanzar roca”, pero en “TIRAR DE ROCA” queremos decir “ARRASTRAR ROCA”.

Algunas de estas situacions están contempladas en el apartado de frases sinónimas de la librería base:

VACIAR _				
 NOTEQ 51 255
 PRESENT @51
 ONOTZERO @51 2
 COPYFF 34 44 
 COPYFF 35 45
 LET 33 &&_voc_SACAR
 LET 34 &&_voc_TODO
 LET 43 &&_voc_DE

Comprobamos que tenemos un objeto referenciado, comprobamos que esta presente y comprobamos que es un contenedor (ONOTZERO), y ahora vamos a engañar al parser:

Copiamos el flag 34 al 44 y el 35 al 45, con esto estamos haciendo que en la frase actual, el “nombre 2” pase a ser igual al “nombre 1”, y lo mismo para el adjetivo. Ahora cambiamos el verbo de la frase (flag 33) y ponemos “SACAR”. También cambiamos el nombre1 y ponemos “TODO”, y por último metemos la preposicion “DE” en el flag de preposición. Así, hemos cambiado la frase “VACIAR XXXX” por “SACAR TODO DE XXXX”.

Veamos otro ejemplo:

MIRAR _
 NOTEQ 34 255
 LET 33 &&_voc_EXAMINAR

En este caso, la accion “MIRAR” provoca redescibir la localidad, pero si ponemos “MIRAR XXXXX” (pro ejemplo, MIRAR LAGO”, lo que haremos será cambiar el verbo a “EXAMINAR”, y dejar seguir al parser, que al final ejecutará “EXAMINAR XXXXX”.

Nuestras respuestas

Obviamente, al crear nuestro juego, en ocasiones querremos que determinadas acciones no tengan la respuesta por defecto. Esto es sencillo de hacer, basta con poner las respuestas en el apartado de “ACCIONES MODIFICADAS POR EL PROGRAMADOR”. De esta manera, al estar las respuestas por encima de la respuesta por defecto, si se ejecutan, nunca se llegará a la respuesta por defecto.

 

varios/entendiendo_la_libreria_base.txt · Última modificación: 2009/04/13 11:15 por csanchez71