CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 22 Oct 2019 16:12

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: 06 Jun 2012 15:08 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
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.


Arriba
 Perfil  
 
NotaPublicado: 07 Jun 2012 12:06 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 09 Sep 2004 18:26
Mensajes: 502
Ubicación: Sanlúcar de Bda. (Cádiz)
Yo hice algunas correcciones en la rutina ParseNoun original de INFSP6. ¿Has comprobado si te va mejor con esos cambios?

_________________
<= Alpha Aventuras =>
Amplificando tu mente


Arriba
 Perfil  
 
NotaPublicado: 07 Jun 2012 13:32 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
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í?


Arriba
 Perfil  
 
NotaPublicado: 07 Jun 2012 17:32 
Desconectado
Archivero
Archivero

Registrado: 19 Nov 2008 12:32
Mensajes: 268
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.


Arriba
 Perfil  
 
NotaPublicado: 08 Jun 2012 18:02 
Desconectado
Archivero
Archivero

Registrado: 19 Nov 2008 12:32
Mensajes: 268
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!


Arriba
 Perfil  
 
NotaPublicado: 11 Jun 2012 11:30 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
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.)


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 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