CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 25 Ene 2021 12:58

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 15 mensajes ] 
Autor Mensaje
NotaPublicado: 03 Mar 2005 16:34 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Esto es lo que me gustarí­a saber: si se puede consultar la dirección de movimiento utilizada por el jugador para llegar satisfactoriamente a la localidad actual, o en su defecto la última acción introducida, que vendrí­a a ser lo mismo para el uso que quiero darle.

Lo que quiero es, al llegar a la siguiente localidad, poder poner en su descripcion[;], algo como:

Has caminado hacia el Norte y llegas a...
(blablabla...aquí­ ya vendrí­a la descripción estándar de la localidad).

>SUR

Vas hacia el sur y llegas a blablabla

>SUBE

Subes y llegas a blablabla...

Gracias

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 16:47 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 12:53
Mensajes: 1152
Ese efecto le da mucha vida a la aventura. Por ejemplo "Los inmortales" de Al-K* la utiliza profusamente y queda muy bien.

En la habitación de llegada pon algo de este estilo:
Código:
  despues [;
    Ir:
       if (uno == obj_n)
         {
         print "Has llegado desde el sur.";
         rfalse;
         }
      ],

El rfalse es importante para que se muestre la descripción de la habitación.

[Edito:] Releyéndote veo que lo que quieres es integrarlo en la descripción y el método que te doy construye un texto aparte que aparece incluso antes que el nombre de la habitación. Posiblemente no es lo que buscas.

_________________
- Lenko -


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 16:54 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Citar:
despues [;
Ir:
if (uno == obj_n)
{
print "Has llegado desde el sur.";
rfalse;
}
],
[/code]


[Edito:] Releyéndote veo que lo que quieres es integrarlo en la descripción y el método que te doy construye un texto aparte que aparece incluso antes que el nombre de la habitación. Posiblemente no es lo que buscas.


Efectivamente. Lo que busco es reconstruir la descripción de la localidad con el dato de la dirección tomada para llegar hasta ella.

De modo que debe ser algo que se pueda manejar desde la propiedad descripcion[;], de esas localidades donde pretendo usarlo. (Que en verdad va a ser sólo una, de momento).

Un saludo

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 18:14 
jarel escribió:
De modo que debe ser algo que se pueda manejar desde la propiedad descripcion[;], de esas localidades donde pretendo usarlo. (Que en verdad va a ser sólo una, de momento).


Lo cual descarta el modo "habitual" de hacerlo, que es con la propiedad "inicial" de la localidad (ver manual de referencia) que hace lo mismo más o menos que lo expuesto por Lenko. Pues... todo es cosa de aplicar el mismo principio dentro de la propiedad descripcion. En caso de desplazamiento la variable "uno" todaví­a conserva el objeto que hace referencia a la dirección del movimiento (obj_n, obj_s... o alguno parecido de los que hay dentro del objeto brujula), así­ que no hay más que trastear con él.

Así­ por ejemplo:

Código:
descripcion
[;
   if (accion==##Ir) print (name)uno;
   "Aquí­ ponemos la descripción normal del sitio.";
],


Imprime la dirección en la que te has acercado al sitio cuando has llegado (y, de hecho, se cuida mucho de hacerlo sólo cuando has llegado, evitando hacerlo cuando efectuas una acción "mirar", por ejemplo).
Evidentemente tu pondrí­as algo "literariamente" mucho más elaborado, como por ejemplo:

Código:
descripcion
[;
   if (accion==##Ir)
   {
      print "Llegas desde el ";
      switch (uno)
      {
         obj_n: print "sur.";
         obj_s: print "norte.";
         obj_e: print "oeste.";
         obj_o: print "este.";
      }

   }
   "Aquí­ viene la descripción estandar.";
],


Y, por supuesto, a partir de ahí­ puedes complicarlo todo lo que quieras. El único detalle es que, como no podí­a ser de otro modo, dependiendo de cual sea el valor de "modomirar" todo el tinglado podrí­a servir sólo para la primera vez que se visite la localidad (en las sucesivas podrí­a ignorarse la descripción). Una vez que querí­a conseguir un efecto parecido lo que hací­a era la pequeña trampa de usar precisamente la propiedad "inicial" de la localidad para trampear con el atributo de "visitado" del sitio y asegurarme de que siempre saliese la descripción (salvo que el jugador haya puesto por iniciativa propia el modo "superbreve"). Todo eso ya es como tu quieras controlarlo.


Arriba
  
 
 Asunto:
NotaPublicado: 03 Mar 2005 21:11 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 12:53
Mensajes: 1152
Y yo que estaba tan contento porque se me habí­a ocurrido una forma de expandir mi idea para que te sirviera y, encima, encapsulada como una clase...

Pero me abtengo porque el sistema de nuestro "pobrecito hablador" hace lo mismo pero sin clase. Igual de bueno, más bonito y más barato.

Y encima, por el mismo precio me entero que puedo usar el "inicial" en vez de mi sistema para los textos de entrada en la habitación... ¿qué más se puede pedir?

_________________
- Lenko -


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 21:59 
Lenko escribió:
Y yo que estaba tan contento porque se me habí­a ocurrido una forma de expandir mi idea para que te sirviera y, encima, encapsulada como una clase... Pero me abtengo porque el sistema de nuestro "pobrecito hablador" hace lo mismo pero sin clase.


¡Hey! y ¿por qué no? Jarel decí­a que sólo le interesaba para una localidad. Pero si alomejor a él o a otro le interesase hacerlo de un modo más general en varias o todas las localidades, pues lo mismo sacaba alguna idea interesante de tu método encapsulado!

Ya sabes, cuantas más ideas, mejor :D


Arriba
  
 
 Asunto: Muchas gracias
NotaPublicado: 03 Mar 2005 22:57 
Gracias misterioso invitado, con que salga la primera vez me basta y me sobra, pues de hecho si así­ no fuese, evitarí­a a mano que al redescribir apareciese. La intención era esa.

Lenko, si lo tienes hecho de otra forma más complicada, de todas formas publí­calo, siempre está bien como ejercicio y quizá se le pueda sacar otra aplicación a tu código.

Au revoir!

:arrow: PD: Cuando dije que era para una localidad en cierto modo mentí­, porque es una malla 2d, luego son infinitas localidades.:lol:

:arrow: PD2: Y de paso voy haciendo promoción.... EN ABRIL...tendreis noticias mí­as hua hua hua!!! :twisted:


Arriba
  
 
 Asunto: Esto...
NotaPublicado: 03 Mar 2005 22:59 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
...soy el de arriba, que se me olvidó poner el nick... :oops:

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 23:19 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 12:53
Mensajes: 1152
Bueno, pues al final no me quedó tan complicado y además me ha servido para tenerme que meter en la librerí­a a ver como funcionan por dentro los Mirar y demás.

Yo partí­a de la base de que no tení­a manera de saber la acción que se habí­a realizado, es decir, no contaba con la variable accion.

Así­ que necesitaba recordar la dirección de la que vení­amos para usarla en la descripción y lo he hecho así­:
Código:
Class Habitacion_Extendida
  private
    ultima_direccion 0,
  with
    despues [;
      Ir:
        self.ultima_direccion = uno;
        <Mirar>;
        self.ultima_direccion = 0;
        rtrue;
      ],
  has luz;

Es decir, cuando entramos en la habitación:
  • guardamos la dirección de llegada en ultima_direccion
  • hacemos un Mirar en la habitación, con lo que se puede poner código tanto en inicial como en descripcion que consulte la dirección
  • se elimina la dirección de llegada para que no afecte a próximos comandos Mirar y
  • se corta la ejecución con el rtrue para que no se muestre la descripción nuevamente provocada por la acción de Ir
La clase se usarí­a así­ de fácil:
Código:
Habitacion_Extendida "La habitación"
  with
    descripcion [;
      if (self.ultima_direccion == obj_n)
        {
        print "Caminando hacia el norte h";
        }
      else
        {
        print "H";
        }
      "as llegado a un sitio precioso.";
      ],
  has ;

Eso sí­, no sé si va bien con los modomirar y las oscuridades.

_________________
- Lenko -


Última edición por Lenko el 03 Mar 2005 23:20, editado 1 vez en total

Arriba
 Perfil  
 
 Asunto: Hmmmm
NotaPublicado: 03 Mar 2005 23:20 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Por cierto, que parece ser que para la malla 2d no me vale, supongo porque en cada movimiento paso por una función (moverse_por_malla2d) que incrementa o decrementa coordenadas y algunas cosas más, y el resultado es que la acción final que le llega a la localidad no parece ser ##ir. Como ésta parte la programé hace mucho tiempo ahora sólo puedo ceñirme a los hechos, no me voy a poner a investigar en el código enrevesado que diablos hice para que cambie la acción.

De todas formas, visto lo visto, lo que he hecho es definir una constante global CAPTURA_DIRECCION, y en la función donde hago los incrementos en base a la dirección tomada, le doy el valor 1 para el norte, 2 para el sur etc.... de modo que luego, en la descripción me baso en esos valores para hacer el switch:


Citar:
switch (captura_direccion_bosque)
{
1: print "Norte";
4: print "Sur";
7: print "Este";
8: print "Oeste";
2: print "Noreste";
6: print "Suroeste";
5: print "Sureste";
3: print "Noroeste";
default: "(SI SALE ESTO ES QUE HAY UN ERROR)";

}



y así­ sale. Pero vamos que es lo mismo que has dicho, sólo que con un paso intermedio inherente a la casuí­stica de ésta localidad concreta.

Chaox!

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 23:24 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Lenko escribió:
Bueno, pues al final no me quedó tan complicado y además me ha servido para tenerme que meter en la librerí­a a ver como funcionan por dentro los Mirar y demás.


Eso sí­, no sé si va bien con los modomirar y las oscuridades.


Con las oscuridades fijo que no, seguramente habrí­a que implementar algo parecido en la localidad oscuridad. Es más, a veces me pregunto que pasarí­a si te metes a oscuras en una habitación en la que hay un monstruo terrible que te come... ¿te comerí­a también a oscuras? :evil:

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 23:32 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 12:53
Mensajes: 1152
He hecho unas pruebas rápidas y con la oscuridad sí­ que lo muestra bien (despúes de todo el <Mirar> es el que hace todo el trabajo), pero le he puesto descripción breve y siempre da la descripción completa (algo que en este caso puede ser incluso aconsejable).

_________________
- Lenko -


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 23:36 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Lenko escribió:
He hecho unas pruebas rápidas y con la oscuridad sí­ que lo muestra bien (despúes de todo el <Mirar> es el que hace todo el trabajo), pero le he puesto descripción breve y siempre da la descripción completa (algo que en este caso puede ser incluso aconsejable).


En la oscuridad? pero la habrás incluido el código a la localidad oscuridad, porque si no, te aparecerá lo de que "andas por las tinieblas"...???

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 03 Mar 2005 23:46 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 12:53
Mensajes: 1152
Vaya, no nos entendemos. Me referí­a a que cuando entras en la habitación a oscuras te da el mensaje adecuado de que no ves nada.

_________________
- Lenko -


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 04 Mar 2005 00:15 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Lenko escribió:
Vaya, no nos entendemos. Me referí­a a que cuando entras en la habitación a oscuras te da el mensaje adecuado de que no ves nada.


Y eso que somos del mismo gremio: un pirata y un ladrón :lol:

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 15 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 3 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:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM