CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 28 Sep 2020 20:32

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 719 mensajes ]  Ir a página Anterior  1 ... 44, 45, 46, 47, 48  Siguiente
Autor Mensaje
NotaPublicado: 06 May 2009 10:12 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
jenesis escribió:
.
Lo curioso es que el parser lo ha entendido perfectamente.




args.replace("guerrero", "")

Tal vez eso crea un espacio en donde debería ir "guerrero". :roll:
Si tengo un rato lo comprobaré. :)


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 10:37 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
include("lib/inventory.bsh");
SHOW_LIMB_FOR_WEARABLE = false;

Me pareció entender que ese código debería ir en el onInit() del jugador, pero no funciona.

¿Lo entendí mal?


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 10:44 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
jenesis escribió:
include("lib/inventory.bsh");
SHOW_LIMB_FOR_WEARABLE = false;

Me pareció entender que ese código debería ir en el onInit() del jugador, pero no funciona.

¿Lo entendí mal?


Sí, no es en el onInit() sino antes de abrir ningún método. Al principio de todo del código del jugador. Ya que lo que hace el include es definir un método (que por lo tanto debe ir fuera de otros métodos), y la otra línea define una constante.

_________________
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  
 
 Asunto:
NotaPublicado: 06 May 2009 11:54 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
He borrado mi anterior post porque lo había puesto mal, o eso me ha parecido... :roll:
Cuando las cosas empiezan a ir mal, ya no sé ni dónde tengo los pies. :lol:


Este es el código al que hacía referencia.
Código:
void parseCommandObj1 ( Mobile aPlayer , String verb , String args1 , String args2 , Entity obj2 )
{
aPlayer.write("\nverbo_pila " + verb + "\nargs1 " + args1 + "\nargs2 "+  args2 + "\nobj2 " + obj2 + "\n");

   if(verb.equalsIgnoreCase("tapar") && (obj2 == tocino))
   {
   aPlayer.write("estamos en el primer bucle");   
      end();   
   }      
}



Es el famoso aquél en el que me dejé el write fuera de las llaves del if, y que al parecer era lo que hacía que ese mensaje se imprimiera, porque ahora que el write está puesto correctamente, "tapar" ha dejado de funcionar. :(

Código:
COMANDO>>  tapa pila con tocino

verbo_pila tapar
args1 pila
args2 con tocino
obj2 [ eu.irreality.age.Item:30000051:el tocino ]

verbo_mundo: eu.irreality.age.World@1b41b4
verb: tapar
args: pila con tocino
¿Cómo? ¿tapar pila con tocino?


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 11:59 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Cuando pones obj2 == tocino, ¿la variable tocino la has definido en alguna parte?

Tal vez deberías poner

obj2.equals(world.getItem("tocino"))

_________________
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  
 
 Asunto:
NotaPublicado: 06 May 2009 12:30 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Cuando pones obj2 == tocino, ¿la variable tocino la has definido en alguna parte?

Tal vez deberías poner

obj2.equals(world.getItem("tocino"))


Pues no, estaba sin definir... y de hecho ése era el fallo. :oops:

He estado repasando el hilo, y la verdad es que una vez resuelto el problema que hacía que siempre se cumpliera el bucle interno, y quedando pendiente el tema de la captura del verbo coger por el tocino, ya no hice más comprobaciones con el verbo tapar. :roll:

Esto de dejar cosas por ahí a medio depurar conociendo lo despistada que soy es un verdadero peligro. Estaba convencida de que tapar funcionaba correctamente, cuando no era así, y si no me di cuenta entonces fue porque usaba la acción meter, para poner el tocino en la pila...

A veces creo que esto me viene grande. :(


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 14:23 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Me está mareando un poco el tema de hacer compatible "ponerse" con "vestir", y "quitarse" con "desvestir".
Ahora resulta que no puedo poner cosas como:

>Ponte el sombrero en la cabeza.
>Quítate el cuchillo de la boca.

Porque se traduce a:

>Viste el sombrero en la cabeza.
>Desviste el cuchillo de la boca.

Y la robustez del parser, se va a la porra. :lol:
Me río por no llorar... :lol:


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 14:54 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
jenesis escribió:
Me está mareando un poco el tema de hacer compatible "ponerse" con "vestir", y "quitarse" con "desvestir".
Ahora resulta que no puedo poner cosas como:

>Ponte el sombrero en la cabeza.
>Quítate el cuchillo de la boca.

Porque se traduce a:

>Viste el sombrero en la cabeza.
>Desviste el cuchillo de la boca.

Y la robustez del parser, se va a la porra. :lol:
Me río por no llorar... :lol:


Uhm, no se debería ir a la porra. ¿En dónde estás poniendo el parseCommand exactamente?

_________________
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  
 
 Asunto:
NotaPublicado: 06 May 2009 15:20 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Uhm, no se debería ir a la porra. ¿En dónde estás poniendo el parseCommand exactamente?


En el "mundo".

Código:
   if ( verb.equalsIgnoreCase("poner") && args.contains("guerrero") )      
    {
   argumentos = args;
   args2 = args.replace("guerrero", "");   
   aPlayer.forceCommand("vestir " + args2);   
   end();   
   }

   if ( verb.equalsIgnoreCase("coger") && args.contains("guerrero") )      
    {
   argumentos = args;
   args2 = args.replace("guerrero", "");   
   aPlayer.forceCommand("desvestir " + args2);   
   end();   
   }


La salida es:

Código:
COMANDO>>  coge cuchillo

verbo_mundo: eu.irreality.age.World@f4da6d
verb: coger
args: cuchillo
Coges el cuchillo.
descripción del cuchillo

COMANDO>>  ponte el cuchillo en la boca

verbo_mundo: eu.irreality.age.World@f4da6d
verb: poner
args: guerrero el cuchillo en la boca

verbo_mundo: eu.irreality.age.World@f4da6d
verb: vestir
args: el cuchillo en la boca
¿Qué pretendes vestir?


¿Dónde puede estar el fallo?


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 15:48 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Ah, vale, no estás parseando tú sino que se trata de un parseo por defecto, para el verbo vestir.

Bueno, ahí lo que pasa es simplemente que no está contemplada respuesta por defecto para "vestir X en Y". El parsing es robusto pero se puede restringir en los casos que se quiera, y por defecto no está configurado como 100% robusto en todas las acciones, y ésa es una de ellas. En este caso se admite vestir (lo que sea) entidad, pero no se admite vestir entidad (lo que sea).

La verdad es que creo que no hay motivo para que esté configurado así. En el caso de "coger" por ejemplo tiene sentido, porque "coger X con Y" y cosas así hay que tratarlas con cuidado. Pero para "vestir", seguramente podría simplemente ponerle el modo robusto 100%.

_________________
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  
 
 Asunto:
NotaPublicado: 06 May 2009 15:59 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Pero para "vestir", seguramente podría simplemente ponerle el modo robusto 100%.


Hombre pues si no es muy engorroso vendría bien, porque tal vez para cosas como "ponerte el sombrero", se deduce que es en la cabeza, pero siempre habrá casos como el del cuchillo que hay que especificar que se pone en un sitio inusual, como es la boca.

Tendría que hacer una lista ToDo, pero no la hago porque yo me fío de que tú vas tomando nota ¿no?

Es que si no se me quedan cosas por ahí sin depurar, y ya verás cuando la pille el primer betatester. :lol:


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 16:03 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Sí que voy tomando nota, pero aun así tampoco veo mal que lleves otra lista tú si quieres, dado que soy muy despistado y no me extrañaría que al final se me acabara olvidando algún detalle (sobre todo teniendo en cuenta que mi lista es kilométrica).

_________________
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  
 
 Asunto:
NotaPublicado: 06 May 2009 18:37 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4651
Hola

Escribo para decir más o menos lo que dijo Jarel en otro hilo de Inform: este hilo, no solo copa injustamente el top de popularidad, cosa que me da igual, sino que es inútil el incómodo para futuros autores de AGE, porque es un patiburrillo de cosa, muchas no relacionadas con PUCK. Yo leo de vez en cuando pero no lo leo todo porque el subject (re: puck) no atrae nada. De otro modo incluso podría dar ideas.

Entiendo por que se hace pero también creo que, al igual que en el hilo de inform, es un error :)

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 19:41 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Uto escribió:
Hola

Escribo para decir más o menos lo que dijo Jarel en otro hilo de Inform: este hilo, no solo copa injustamente el top de popularidad, cosa que me da igual, sino que es inútil el incómodo para futuros autores de AGE, porque es un patiburrillo de cosa, muchas no relacionadas con PUCK. Yo leo de vez en cuando pero no lo leo todo porque el subject (re: puck) no atrae nada. De otro modo incluso podría dar ideas.

Entiendo por que se hace pero también creo que, al igual que en el hilo de inform, es un error :)


En todos los hilos se habla de cosas que no tienen que ver con el propio hilo, pero teniendo en cuenta la extensión de éste, me atrevería a decir que es el menos contaminado del Caad.

Ya pregunté hace un tiempo si molestaba que todo fuera en un mismo hilo, porque tampoco me parecía bien inundar el foro de cientos de hilos con mis dudas y problemas respecto a PUCK.

Imagino que no serían tantas si la herramienta hubiera tenido la documentación e incluso los tutoriales que tienen otras y si hubiera sido testeada por alguien más que no fuera el propio autor y lo cierto es que me es mucho más cómodo hacer las consultas por aquí que hacerlas por mail como hice en un principio.
También hice alguna por privado, hasta que me di cuenta que el espacio para ello es limitado...

Bueno, no importa..
Ahora mismo me monto un foro en algún hosting de esos gratuitos, registro a Alk* y seguimos nuestra conversación por allí.

Un saludo y perdón por las molestias.
Jenesis


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 06 May 2009 21:59 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Sep 2004 12:53
Mensajes: 1150
Pero ¿por qué te lo vas a llevar? Yo quiero seguir leyéndolo.

Lo que tal vez puedas hacer es dividir a partir de ahora cada cosa en un hilo, pero por lo de ayudar a otros usuarios.

Creo que, hablando mal, a todos aquí nos la pela lo de la popularidad.

_________________
- Lenko -


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 719 mensajes ]  Ir a página Anterior  1 ... 44, 45, 46, 47, 48  Siguiente

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:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM