CAAD
https://foro.caad.es/

[INFSP6] Sobre ParseNoun y GNA de los objetos
https://foro.caad.es/viewtopic.php?f=12&t=5258
Página 1 de 1

Autor:  Makinaimo [ 06 Jun 2012 15:08 ]
Asunto:  [INFSP6] Sobre ParseNoun y GNA de los objetos

Enredando con la rutina para tomar inventario del personaje me encontré hace unos días con lo que parecía un error:

Tenía una línea más o menos así: print "Llevas puest", (o) obj, " ", (a) obj, ".";. El resultado de (o) obj depende del GNA del objeto (que es el género, número y animación de su nombre corto), y suponía entonces que no debía cambiar a menos que el programador cambie el nombre corto del objeto. Pero resulta que si que cambia, si el jugador utiliza para referirse a él un sinónimo con diferente género o número al del nombre corto (definido con alguno de los atributos name_m, name_f, name_mp o name_fp) --si además se ha definido también su atributo gender. De forma que esa línea había veces que imprimía cosas como "Llevas puesta una chaqueta.", y otras veces "Llevas puesto una chaqueta.".

He visto este código en la rutina ParseNoun de SpanishG.h:
Código:
if (obj provides gender) {
   switch (gen) {
      1: give obj ~female ~pluralname;
      2: give obj female ~pluralname;
      3: give obj ~female pluralname;
      4: give obj female pluralname;
   }
}

En el que gen coge el valor del género del nombre que haya utilizado el jugador para referirse al objeto. En un objeto chaqueta con nombre corto "chaqueta" definido con name_f 'chaqueta', name_m 'chaqueton' y gender G_FEMENINO, esa variable gen es 1 o 2 dependiendo de que el jugador haya utilizado chaquetón o chaqueta para referirse al objeto. El código modifica las propiedades female y pluralname del objeto, con lo que cambia su GNA, que en realidad creo que debería ser siempre femenino singular inanimado (a menos que cambie su nombre corto). ¿No es así?

Nunca he cacharreado en profundidad en las tripas de la INFSP, así que no sé muy bien los motivos del fragmento de código ese de ParseNoun, ni si hay ahí un error o no. Pero bueno, yo lo comento por si sirve de algo.

Autor:  Sothoth [ 07 Jun 2012 12:06 ]
Asunto:  Re: [INFSP6] Sobre ParseNoun y GNA de los objetos

Yo hice algunas correcciones en la rutina ParseNoun original de INFSP6. ¿Has comprobado si te va mejor con esos cambios?

Autor:  Makinaimo [ 07 Jun 2012 13:32 ]
Asunto:  Re: [INFSP6] Sobre ParseNoun y GNA de los objetos

Vi que el código de tu ParseNoun es algo diferente al de la rutina original, pero no he tenido tiempo de ojearlo en condiciones ni de probarlo. En cuanto pueda hacerlo vuelvo a comentar a ver qué tal.

En cualquier caso, ¿sabéis el por qué de dar o quitar los atributos female y pluralname de un objeto en función del nombre que haya utilizado el jugador para referirse a él? ¿Es algo que ver con la forma en que se gestionan los pronombres o algo así?

Autor:  tesheñes [ 07 Jun 2012 17:32 ]
Asunto:  Re: [INFSP6] Sobre ParseNoun y GNA de los objetos

satamente.
De memoria, creo recordar que eso da flexibilidad a la hora de decir:

Código:
>coge chaqueta
Cogida.

>deja chaqueton
Dejado.


(y similares). Es decir, idealmente ajusta el GNA al GNA que mapea el jugador en su propia cabeza, en ese instante.

Pero debería ser robusto como para no pifiarle al listar inventario.

Autor:  tesheñes [ 08 Jun 2012 18:02 ]
Asunto:  Re: [INFSP6] Sobre ParseNoun y GNA de los objetos

Por otro lado, (oh, mi memoria comienza a marchar..), fijate que la propiedad gender (exclusiva de informATE/infsp6) es fija, NO VARIA, y es la que guarda el genero del nombre corto del objeto.
Asi, cuando inform debe imprimir el NOMBRE CORTO, actualiza el GNA del objeto segun su propiedad gender. (Ref: Spanish.h/LanguagePrintShortName). Pero cuando lo que imprime es una respuesta con la inflexión dependiendo del genero/numero, retoca el GNA segun las propiedades sinonimos que hayan matcheado (SpanishG/ParseNoun), que es el pedazo de código que tu has puesto.

Puedes revisar el informateREF (pdf) p23. o la seccion del documentatE!

Con este concepto, no deberia haber incoherencias al imprimir el nombre corto. Pero tal vez sea un bug.


Saludos!

Autor:  Makinaimo [ 11 Jun 2012 11:30 ]
Asunto:  Re: [INFSP6] Sobre ParseNoun y GNA de los objetos

Muchas gracias por la explicación, tesheñes. Me ha ayudado a corregir los problemas que tenía con el inventario. (Creo que el error estaba en mi rutina.)

Página 1 de 1 Todos los horarios son UTC + 1 hora
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/