CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 20 Sep 2018 10:57

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 3 mensajes ] 
Autor Mensaje
NotaPublicado: 07 Feb 2011 09:55 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
En un momento de mi aventura el protagonista no puede sujetar mas que dos objetos a la vez. Para ello hago que cuando coja un tercero pierda otro de los que tenía.
El problema llega con las órdenes múltiples.

Código:
>coge el antídoto y bébelo

desde guerrero coger  antidoto
Tus manos temblorosas  dejan caer algo al suelo...

desde guerrero dejar  cuchillo
Has dejado el cuchillo

desde guerrero beber cuchillo
La fiebre te hace pensar en cosas extrañas.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 07 Feb 2011 10:01 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5303
Ubicación: Coruña
Bueno, me temo que eso es lo más normal del mundo si usas forceCommand. Tendrás que hacer que la forma de dejar el objeto no sea con un forceCommand, simplemente no es la herramienta adecuada para lo que tú quieres programar.

Ya sabes que, con la última modificación que hice al forceCommand, lo que hace es básicamente meter un comando en la cola. Así que "coge el antídoto y bébelo" se convierte en:

1. "coge el antídoto"
2. "bébelo"

Al procesar "coge el antídoto", si haces un forceCommand, metes "deja el cuchillo" en la cola, así que ahora la cola de comandos es

1. "deja el cuchillo"
2. "bébelo"

Y cuando se ejecutan esos comandos, pues lógicamente... te bebes el cuchillo.

La solución es simplemente no hacer forceCommand, realmente no hay mucho motivo para que tengas que hacerlo para programar ese comportamiento, ya que puedes darle y quitarle objetos al jugador con una línea de código.

Otra posible alternativa sería usar el forceCommand de estilo antiguo (que ahora se llama enqueueCommand); pero con eso dejarías el cuchillo después de beberte el antídoto que tampoco es lo que quieres.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
NotaPublicado: 07 Feb 2011 10:48 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:

La solución es simplemente no hacer forceCommand, realmente no hay mucho motivo para que tengas que hacerlo para programar ese comportamiento, ya que puedes darle y quitarle objetos al jugador con una línea de código.

Otra posible alternativa sería usar el forceCommand de estilo antiguo (que ahora se llama enqueueCommand); pero con eso dejarías el cuchillo después de beberte el antídoto que tampoco es lo que quieres.


Después de estudiar las consecuencias de la forma anterior de forceCommand, he decidido aplicarla con enqueueCommand, a este caso en particular.
He hecho comprobaciones y parece que todo funciona correctamente, si acaso notara que algo no va bien, aplicaría el método de hacer todo eso a mano.

El ejemplo que he puesto no se corresponde exactamente con el real, porque de haberlo hecho hubiera reventado uno de los puzles, así que la impresión del mensaje tras la segunda acción, no queda mal.

Gracias por recordarme lo del enqueueCommand, que mi cabeza tiene la ram cada vez más inestable. :ops:

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


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 1 invitado


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