CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 17 Oct 2019 02:45

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 28 mensajes ]  Ir a página Anterior  1, 2
Autor Mensaje
NotaPublicado: 05 Feb 2012 00:02 
Desconectado
Archivero
Archivero

Registrado: 19 Nov 2008 12:32
Mensajes: 268
baltasarq escribió:
Hola !
¿Te refieres a Inform7 o a alguna otra cosa que se me escapa?


Sip, a I7. En realidad, infsp7 existe en parte gracias a infsp6.


Arriba
 Perfil  
 
NotaPublicado: 07 Feb 2012 20:37 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Sothoth:

Muchas gracias por corregir el bug tú mismo y también por haberlo identificado y reportado. Yo he estado muy ocupado estas últimas semanas, y además desconectado de la internet, por lo que se me iba a hacer muy difícil parchear la lib.

En fin, que si tienes el trabajo hecho, agradecería mucho que me mandaras los archivos corregidos, indicando, por favor, los números de lineas afectados. (archivos + info de num. lineas afectadas), para darle una mirada. En cualquier caso, confío en tu habilidad y subiré una versión con tus cambios a la brevedad, pues estaba planificando ya una gran subida de archivos, así que es buen momento de poner tu aportación.

Por favor, enviar archivos completos, no solo diffs, pues no me manejo muy bien con esas herramientas todavía y no tengo mucho tiempo para aprenderlas, de momento.

Agrega cualquier información adicional que consideres pertinente, para evitarnos preguntas (recuerda que ando offline). Manda todo a mi email, por favor. En mi firma, en este post, está.

Yo subiré la nueva versión al ftp de INFSP6 y agregaré un enlace en la wiki. Así la nueva versión corregida estará accesible y nos sirve para darle tiempo a Tesheñes, que se lo tome con calma, y pueda revisar si aprueba estos cambios y los sube todos al repo oficial en Google (que por cierto, yo tampoco conocía su existencia. xD)

Gracias por tu tiempo,
Ah, y saludos Tesheñes, hace un montón que no se te ve. ;)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 08 Feb 2012 12:28 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 09 Sep 2004 18:26
Mensajes: 502
Ubicación: Sanlúcar de Bda. (Cádiz)
Ya te lo he mandado, Eliuk. Cualquier duda que tengas, me la comentas ;)

¡Saludos!

Sothoth

_________________
<= Alpha Aventuras =>
Amplificando tu mente


Arriba
 Perfil  
 
NotaPublicado: 11 Feb 2012 21:38 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 09 Sep 2004 18:26
Mensajes: 502
Ubicación: Sanlúcar de Bda. (Cádiz)
Buenas otra vez:

Me he liado la manta a la cabeza y me he puesto a toquetear. El resultado son dos repositorios que os propongo a continuación:

  • En https://github.com/ricpelo/informlibrary611_fix podréis encontrar la librería Inform 6/11 oficial a la que he aplicado los parches de http://www.inform-fiction.org/patches/library.html
  • En https://github.com/ricpelo/infsp6_fix tenéis la librería INFSP6 con los parches anteriores aplicados (sólo algunos, los que ha sido necesario aplicar, sobre todo en las rutinas hackeadas), más otros cambios de mi propia cosecha, entre los que destacan:
    • Las correcciones aplicadas también a InformATE, como el buen uso de la partícula'del'.
    • Una versión preliminar (pero funcional) de Spanish.h con soporte para primera, segunda y tercera persona, del singular y el plural.

Probablemente haya algún que otro fallo (sobre todo en el tema de la primera, segunda y tercera persona) pero he estado trasteando bastante y parece que va bastante bien. Lo estoy usando con la versión INFSP6 de mi A·L·I·E·N y por ahora todo va como la seda, aunque me queda probar más, claro.

Espero que os sea de utilidad a vosotros también ;).

Saludos,

Sothoth

_________________
<= Alpha Aventuras =>
Amplificando tu mente


Arriba
 Perfil  
 
NotaPublicado: 11 Feb 2012 22:02 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
Sothoth escribió:
[*] Una versión preliminar (pero funcional) de Spanish.h con soporte para primera, segunda y tercera persona, del singular y el plural.


¡Ostras, qué bueno! No me había fijado en eso.


Arriba
 Perfil  
 
NotaPublicado: 11 Feb 2012 23:32 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 09 Sep 2004 18:26
Mensajes: 502
Ubicación: Sanlúcar de Bda. (Cádiz)
Makinaimo escribió:
Sothoth escribió:
[*] Una versión preliminar (pero funcional) de Spanish.h con soporte para primera, segunda y tercera persona, del singular y el plural.


¡Ostras, qué bueno! No me había fijado en eso.


La idea consiste en usar la propiedad 'persona' del objeto player, de manera que si pones, por ejemplo:

Código:
player.persona = PRIMERA_PERSONA + PERSONA_PLURAL


a partir de ese momento se mostrarán los mensajes en primera persona del plural ;).

Hay que probarlo bien a fondo, pero la idea básicamente está implantada, y no parece que vaya nada mal. Lo bueno de este sistema, además, es que los mensajes pueden cambiar a lo largo de la aventura, simplemente cambiando el valor de esa propiedad.

_________________
<= Alpha Aventuras =>
Amplificando tu mente


Arriba
 Perfil  
 
NotaPublicado: 12 Feb 2012 00:30 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
¿Y se puede cambiar también el tiempo verbal? Yo tengo algo parecido implementado usando una variable global GRAMMATICAL_FLEXION y omitiendo todos los mensajes de la librería para utilizar mi propia LanguageLM():

Código:
Default   GRAMMATICAL_FLEXION = 2;
[LanguageLM n x1;
   Attack:
      switch (GRAMMATICAL_FLEXION) {
      1,2,3:   "La violencia no es la solución.";
      4,5,6:   "La violencia no era la solución.";
      }

   Blow:
      switch (GRAMMATICAL_FLEXION) {
      1:   "Mi soplido no produce ningún efecto.";
      2:   "Tu soplido no produce ningún efecto.";
      3:   "Su soplido no produce ningún efecto.";
      4:   "Mi soplido no produjo ningún efecto.";
      5:   "Tu soplido no produjo ningún efecto.";
      6:   "Su soplido no produjo ningún efecto.";
      }

   Enter:
      !!   1:   Error, el jugador ya está en/sobre el objeto.
      !!   2:   Error, el objeto al que intenta entrar/subirse el jugador no
      !!      tiene el atributo "enterable".
      !!   3:   Error, el objeto al que intenta entrar/subirse el jugador tiene
      !!      los atributos "container" y "enterable", pero está cerrado.
      !!   4:   Error, el objeto al que intenta entrar/subirse el jugador está
      !!      en poder del propio jugador.
      !!   5:   Éxito, el jugador entra/sube al objeto.
      !!   6:   Aviso, el jugador estaba en otro objeto, la lib. intentará la
      !!      acción SALIR automáticamente antes de reintentar entrar el
      !!      nuevo objeto.
      !!   7:   Aviso, el objeto al que intenta entrar/subirse el jugador está
      !!      dentro de otros objeto. La lib. intentará automáticamente meter
      !!      al jugador en el objeto desde el cual pueda acceder al que el
      !!      jugador le ha indicado.
      switch (n) {
         1:   switch (GRAMMATICAL_FLEXION) {
            1,4:   print "Ya estaba ";
            2,5:   print "Ya estabas ";
            3,6:   print "Ya estaba ";
            }
            if (x1 has supporter) print "sobre "; else print "en ";
            print_ret (the) x1, ".";
         2:   switch (GRAMMATICAL_FLEXION) {
            1:   "No es algo donde pueda entrar.";
            2:   "No es algo donde puedas entrar.";
            3:   "No es algo donde pueda entrar.";
            4:   "No era algo donde pudiese entrar.";
            5:   "No era algo donde pudieses entrar.";
            6:   "No era algo donde pudiese entrar.";
            }
         3:   switch (GRAMMATICAL_FLEXION) {
            1:   "No puedo entrar en ", (the) x1 ," porque está",
               (n) x1, " cerrad", (o) x1 ,".";
            2:   "No puedes entrar en ", (the) x1, " porque está",
               (n) x1, " cerrad", (o) x1, ".";
            3:   "No puede entrar en ", (the) x1, " porque está",
               (n) x1, " cerrad", (o) x1, ".";
            4:   "No podía entrar en ", (the) x1, " porque estaba",
               (n) x1, " cerrad", (o) x1, ".";
            5:   "No podías entrar en ", (the) x1, " porque estaba",
               (n) x1, " cerrad", (o) x1, ".";
            6:   "No podía entrar en ", (the) x1, " porque estaba",
               (n) x1, " cerrad", (o) x1, ".";
            }
         4:   switch (GRAMMATICAL_FLEXION) {
            1:   "No puedo entrar ahí mientras no lo suelte.";
            2:   "No puedes entrar ahí mientras no lo sueltes.";
            3:   "No puede entrar ahí mientras no lo suelte.";
            4:   "No podía entrar ahí mientras no lo soltase.";
            5:   "No podías entrar ahí mientras no lo soltases.";
            6:   "No podía entrar ahí mientras no lo soltase.";
            }
         5:   switch (GRAMMATICAL_FLEXION) {
            1:   if (x1 has supporter) print "Subo ", (al) x1;
               else print "Entro en ", (the) x1;
               ".";
            2:   if (x1 has supporter) print "Subes ", (al) x1;
               else print "Entras en ", (the) x1;
               ".";
            3:   if (x1 has supporter) print "Sube ", (al) x1;
               else print "Entra en ", (the) x1;
               ".";
            4:   if (x1 has supporter) print "Subí ", (al) x1;
               else print "Entré en ", (the) x1;
               ".";
            5:   if (x1 has supporter) print "Subiste ", (al) x1;
               else print "Entraste en ", (the) x1;
               ".";
            6:   if (x1 has supporter) print "Subió ", (al) x1;
               else print "Entró en ", (the) x1;
               ".";
            }
         6:   switch (GRAMMATICAL_FLEXION) {
            1:   if (x1 has supporter) print "(Me bajo ";
               else print "(Salgo ";
            2:   if (x1 has supporter) print "(Te bajas ";
               else print "(Sales ";
            3:   if (x1 has supporter) print "(Se baja ";
               else print "(Sale ";
            4:   if (x1 has supporter) print "(Me bajé ";
               else print "(Salí ";
            5:   if (x1 has supporter) print "(Te bajaste ";
               else print "(Saliste ";
            6:   if (x1 has supporter) print "(Se bajó ";
               else print "(Salió ";
            } print_ret (del) x1, ".)";
         7:   switch (GRAMMATICAL_FLEXION) {
            1:   if (x1 has supporter) "(Me subo ", (al) x1, ".)^";
               if (x1 has container) "(Me meto en ", (the) x1, ".)^";
               "(Entro en ", (the) x1, ".)^";
            2:   if (x1 has supporter) "(Te subes ", (al) x1, ".)^";
               if (x1 has container) "(Te metes en ", (the) x1, ".)^";
               "(Entras en ", (the) x1, ".)^";
            3:   if (x1 has supporter) "(Se sube ", (al) x1, ".)^";
               if (x1 has container) "(Se mete en ", (the) x1, ".)^";
               "(Entra en ", (the) x1, ".)^";
            4:   if (x1 has supporter) "(Me subí ", (al) x1, ".)^";
               if (x1 has container) "(Me metí en ", (the) x1, ".)^";
               "(Entré en ", (the) x1, ".)^";
            5:   if (x1 has supporter) "(Te subiste ", (al) x1, ".)^";
               if (x1 has container) "(Te metiste en ", (the) x1,".)^";
               "(Entraste en ", (the) x1, ".)^";
            6:   if (x1 has supporter) "(Se subió ", (al) x1, ".)^";
               if (x1 has container) "(Se metió en ", (the) x1, ".)^";
               "(Entró en ", (the) x1, ".)^";
            }
      }
[...]

Así a mitad de aventura se llama a un SetGrammaticalFlexion(5), por ejemplo, y se te imprimen los mensajes a pasado. Sospecho que es bastante chapucero y tal vez se pueda hacer de otra manera, pero funcionar, funciona.

Código:
[ SetGrammaticalFlexion gf gender;
   if ( gender == 0 ) {   !! género masculino
      switch ( gf ) {
      1:   GRAMMATICAL_FLEXION = 1;
         FORMER__TX      = "mi antiguo ~yo~";
         YOURSELF__TX   = "mi mismo";
         CANTGO__TX      = "No puedo ir por ahí.";
         IS__TX         = " hay";
         ARE__TX         = " hay";
         IS2__TX         = "hay ";
         ARE2__TX      = "hay ";
         YOU__TX         = "Yo";
         PARTICULA_TE   = "me";
      2:   GRAMMATICAL_FLEXION = 2;
         FORMER__TX      = "tu antiguo ~yo~";
         YOURSELF__TX   = "ti mismo";
         CANTGO__TX      = "No puedes ir por ahí.";
         IS__TX         = " hay";
         ARE__TX         = " hay";
         IS2__TX         = "hay ";
         ARE2__TX      = "hay ";
         YOU__TX         = "Tú";
         PARTICULA_TE   = "te";
      3:   GRAMMATICAL_FLEXION = 3;
         FORMER__TX      = "su antiguo ~yo~";
         YOURSELF__TX   = "si mismo";
         CANTGO__TX      = "No puede ir por ahí.";
         IS__TX         = " hay";
         ARE__TX         = " hay";
         IS2__TX         = "hay ";
         ARE2__TX      = "hay ";
         YOU__TX         = "Él";
         PARTICULA_TE   = "se";
      4:   GRAMMATICAL_FLEXION = 4;
         FORMER__TX      = "mi antiguo ~yo~";
         YOURSELF__TX   = "mi mismo";
         CANTGO__TX      = "No podía ir por ahí.";
         IS__TX         = " había";
         ARE__TX         = " había";
         IS2__TX         = "había ";
         ARE2__TX      = "había ";
         YOU__TX         = "Yo";
         PARTICULA_TE   = "me";
      5:   GRAMMATICAL_FLEXION = 5;
         FORMER__TX      = "tu antiguo ~yo~";
         YOURSELF__TX   = "ti mismo";
         CANTGO__TX      = "No podías ir por ahí.";
         IS__TX         = " había";
         ARE__TX         = " había";
         IS2__TX         = "había ";
         ARE2__TX      = "había ";
         YOU__TX         = "Tú";
         PARTICULA_TE   = "te";
      6:   GRAMMATICAL_FLEXION = 6;
         FORMER__TX      = "su antiguo ~yo~";
         YOURSELF__TX   = "si mismo";
         CANTGO__TX      = "No podía ir por ahí.";
         IS__TX         = " había";
         ARE__TX         = " había";
         IS2__TX         = "había ";
         ARE2__TX      = "había ";
         YOU__TX         = "Él";
         PARTICULA_TE   = "se";
         }
      } else {            !! género femenino
         switch ( gf ) {
      1:   GRAMMATICAL_FLEXION = 1;
         FORMER__TX      = "mi antigua ~yo~";
         YOURSELF__TX   = "mi misma";
         CANTGO__TX      = "No puedo ir por ahí.";
         IS__TX         = " hay";
         ARE__TX         = " hay";
         IS2__TX         = "hay ";
         ARE2__TX      = "hay ";
         YOU__TX         = "Yo";
         PARTICULA_TE   = "me";
      2:   GRAMMATICAL_FLEXION = 2;
         FORMER__TX      = "tu antigua ~yo~";
         YOURSELF__TX   = "ti misma";
         CANTGO__TX      = "No puedes ir por ahí.";
         IS__TX         = " hay";
         ARE__TX         = " hay";
         IS2__TX         = "hay ";
         ARE2__TX      = "hay ";
         YOU__TX         = "Tú";
         PARTICULA_TE   = "te";
      3:   GRAMMATICAL_FLEXION = 3;
         FORMER__TX      = "su antigua ~yo~";
         YOURSELF__TX   = "si misma";
         CANTGO__TX      = "No puede ir por ahí.";
         IS__TX         = " hay";
         ARE__TX         = " hay";
         IS2__TX         = "hay ";
         ARE2__TX      = "hay ";
         YOU__TX         = "Ella";
         PARTICULA_TE   = "se";
      4:   GRAMMATICAL_FLEXION = 4;
         FORMER__TX      = "mi antigua ~yo~";
         YOURSELF__TX   = "mi misma";
         CANTGO__TX      = "No podía ir por ahí.";
         IS__TX         = " había";
         ARE__TX         = " había";
         IS2__TX         = "había ";
         ARE2__TX      = "había ";
         YOU__TX         = "Yo";
         PARTICULA_TE   = "me";
      5:   GRAMMATICAL_FLEXION = 5;
         FORMER__TX      = "tu antigua ~yo~";
         YOURSELF__TX   = "ti misma";
         CANTGO__TX      = "No podías ir por ahí.";
         IS__TX         = " había";
         ARE__TX         = " había";
         IS2__TX         = "había ";
         ARE2__TX      = "había ";
         YOU__TX         = "Tú";
         PARTICULA_TE   = "te";
      6:   GRAMMATICAL_FLEXION = 6;
         FORMER__TX      = "su antigua ~yo~";
         YOURSELF__TX   = "si misma";
         CANTGO__TX      = "No podía ir por ahí.";
         IS__TX         = " había";
         ARE__TX         = " había";
         IS2__TX         = "había ";
         ARE2__TX      = "había ";
         YOU__TX         = "Ella";
         PARTICULA_TE   = "se";
      }
   }
];


Arriba
 Perfil  
 
NotaPublicado: 12 Feb 2012 00:39 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 09 Sep 2004 18:26
Mensajes: 502
Ubicación: Sanlúcar de Bda. (Cádiz)
¡Qué buena pinta tiene eso! Pues no, por ahora sólo he tenido en cuenta la persona, singulares y plurales, pero eso que comentas de usar tiempos verbales distintos suena genial :). A ver si entre todos buscamos una solución que combine ambas técnicas ;).

_________________
<= Alpha Aventuras =>
Amplificando tu mente


Arriba
 Perfil  
 
NotaPublicado: 12 Feb 2012 09:56 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5308
Ubicación: Coruña
Aunque igual no os importa mucho, a título informativo, la palabra "flexión" en sentido gramatical se dice en inglés "inflection".

_________________
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: 12 Feb 2012 13:35 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 04 Sep 2008 17:23
Mensajes: 735
:) GRAMMATICAL_INFLECTION pues. Cambiado.
Gracias por el apunte Al-k.


Arriba
 Perfil  
 
NotaPublicado: 19 Feb 2012 00:44 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Yo tenía escrito por ahí un hack para cambiar el tiempo verbal y la persona de TODOS los mensajes por defecto de la librería. Y se podía cambiar de un tiempo y persona a otros, en runtime. Aunque claro, le hacían falta testeos y cosas así, pensando sobre todo en la cantidad de mensajes editados a mano para toda la librería.

Pero funcionaba. Revisaré entre mis cosas. Mi solución hacía uso del mecanismo de reemplazo de mensajes en Spanish.h, que yo mismo implanté en INFSP6 hace un par de años atrás. Así que podríamos decir que es "estándar".

Por cierto, Sothoth, esos repos están de la pinta. :D Voy a utilizarlos para el kit de INFSP6 para Linux que lanzaré en los próximos días. Ya casi está terminado. Así que supongo que servirá para hacerle testeo a todos tus cambios (tanto de Lib. 6/11 como de INFSP6). Si pasan la prueba del tiempo (;)), pues entonces creo que podríamos pasarlos a la repos oficiales. [y a la web principal] :) ¿Qué te parece?

Enhorabuena!

P.S: Como ando offline, agradecería una enormidad que me pudieras explicar con un poquito de detalle en un mail todos los cambios aplicados a Lib 6/11 y a INFSP6 (sólo para tenerlos en mi mente). Cuando tengas algo de tiempo... :)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 19 Feb 2012 07:04 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 22 May 2004 10:50
Mensajes: 890
Lo del cambio de persona en tiempo real lo tenéis en los fuentes del TC: Msg1P2P3P.h pero claro es para informate :)

_________________
---
KMBR! http://www.aliensuavito.com @lecambre


Arriba
 Perfil  
 
NotaPublicado: 02 Mar 2012 12:46 
Desconectado
Grafista
Grafista
Avatar de Usuario

Registrado: 09 Sep 2004 18:26
Mensajes: 502
Ubicación: Sanlúcar de Bda. (Cádiz)
Eliuk Blau escribió:
Por cierto, Sothoth, esos repos están de la pinta. :D Voy a utilizarlos para el kit de INFSP6 para Linux que lanzaré en los próximos días. Ya casi está terminado. Así que supongo que servirá para hacerle testeo a todos tus cambios (tanto de Lib. 6/11 como de INFSP6). Si pasan la prueba del tiempo (;)), pues entonces creo que podríamos pasarlos a la repos oficiales. [y a la web principal] :) ¿Qué te parece?

Enhorabuena!

P.S: Como ando offline, agradecería una enormidad que me pudieras explicar con un poquito de detalle en un mail todos los cambios aplicados a Lib 6/11 y a INFSP6 (sólo para tenerlos en mi mente). Cuando tengas algo de tiempo... :)


¡Vaya! Se me había pasado este mensaje totalmente, y no me he dado cuenta hasta ahora. Lo siento, Eliuk :( .

Por supuesto, puedes usar mis repositorios como quieras, que para eso están, y de hecho seguro que así se pillan más bugs y se pueden depurar mejor :). En cuanto a los cambios que he hecho a la 6/11 y a INFSP6... ¡uf! Pues son unos pocos, y la verdad es que no los tengo documentados, más allá de los mensajes de los commit que he ido generando con git. Te recomiendo que mires el historial de cambios en ambos repositorios, y así podrás comprobar en qué consisten dichos cambios y qué líneas se ven afectadas en cada uno de ellos:

https://github.com/ricpelo/informlibrar ... ts/master/
https://github.com/ricpelo/infsp6_fix/commits/master/

Espero que te sirva ;)

¡Saludos!

Sothoth

_________________
<= Alpha Aventuras =>
Amplificando tu mente


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 28 mensajes ]  Ir a página Anterior  1, 2

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 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