CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 23 Sep 2017 13:51

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 3 mensajes ] 
Autor Mensaje
NotaPublicado: 30 Ago 2016 21:01 
Desconectado
Aventurero
Aventurero

Registrado: 27 Feb 2014 22:54
Mensajes: 9
Estoy haciendo mi primera aventura en AGE, y hasta el momento solo tengo experiencia en Inform, por lo que estoy adaptándome al nuevo entorno de desarrollo.
En Inform había la posibilidad de evitar que un objeto fuera mencionado al ejecutar el comando "mirar" en la habitación donde se encontraba. De esta manera uno podía mencionar el objeto en la descripción de la habitación directamente y evitar el mensaje posterior de tipo "Aquí hay una piedra, un plátano y un lápiz." que queda tan artificial.
¿Existe en AGE la posibilidad de hacer lo mismo? Juraría que en algún punto de la Wiki de AGE lo menciona, pero ahora soy incapaz de encontrarlo de nuevo.


Arriba
 Perfil  
 
NotaPublicado: 31 Ago 2016 05:28 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
La más sencilla que se me ocurre es que dejes en la pestaña "nombres" del item, los nombre para mostrar ( singular y plural ) en blanco.
O bien, puede que te interese que en algún momento sí aparezca el nombre de ese objeto listado. Puedes poner en ese caso en nombre singular para mostrar una condición que si se cumple se muestre en caso contrario no:

condición; get(self, "visible").
nombre: plátano.

Y sólo se listará el plátano cuando la propiedad "visible" sea true. Para que nunca fuera null, creo que tendrías que inicializarla en el método init del item:

Código:
void onInit() {
    set ( self, "visible", false);
}



Luego más adelante, en cualquier punto si te interesa hacerlo visible:

Código:
set ( item("platano"), "visible", true);


Por ejemplo supongamos una habitación con esta descripción;

Citar:
Tu orden: mirar
La sala en la que comienza la aventura, tiene una mesa con un frutero.


Dónde hay un frutero y un plátano ( no visible ) presentes. Ninguno sale listado al teclear "mirar".
En este caso en el item frutero dejé los nombres para mostrar en blanco y en el item plátano coloqué la condición de más arriba:
condición; get(self, "visible").
nombre: plátano.

En el método init del plátano tengo:

Código:
//código a ejecutar cuando se inicializa la cosa
void onInit()
{
    set ( self, "visible", false);
}


Y para hacerlo visible en el código del frutero tengo:

Código:
/*Método de análisis sintáctico de la entrada referida a una cosa*/
void parseCommand( Mobile aCreature , String verb , String args )
{

   if ( verb.equals ("mirar") ) {
        set ( item ("platano"), "visible", true);
   }

}


De tal forma que quedaría:

Spoiler: Mostrar
Tu orden: mirar
La sala en la que comienza la aventura, tiene una mesa con un frutero.

Tu orden: ex frutero
Un frutero, contiene un plátano.

Tu orden: m
La sala en la que comienza la aventura, tiene una mesa con un frutero.
Aquí hay un plátano.

Tu orden: ex plátano
Un plátano, de canarias.


El plátano sólo aparece listado tras examinar el frutero.

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
NotaPublicado: 01 Sep 2016 19:43 
Desconectado
Aventurero
Aventurero

Registrado: 27 Feb 2014 22:54
Mensajes: 9
Hola edlobez,
mirando tu explicación he conseguido resolver el problema utilizando la condición del nombre para mostrar.
En el caso de que el objeto esté en la habitación original, lo menciono en la descripción. Esa descripción también va condicionada tipo: room("Habitacion").hasItem(item("Objeto")).
Luego en el nombre a mostrar del objeto le he puesto la negación de la anterior.

De esta forma consigo que me salga oculto en esa habitación en concreto, pero que sí aparezca si lo tengo en el inventario o dejo el objeto en otro lugar. De momento no he tenido que usar una propiedad extra para eso, pero me apunto la idea por si la necesito más adelante.

Gracias por la ayuda. Saludos.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 3 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM