CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 23 Sep 2018 06:05

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 13 mensajes ] 
Autor Mensaje
NotaPublicado: 27 Ago 2009 01:21 
Desconectado
Aventurero
Aventurero
Avatar de Usuario

Registrado: 19 Jul 2009 18:19
Mensajes: 8
Ubicación: Cuenca (España)
¡Hola!

Aquí estoy con otra de mis dudas con InformATE... La explicaré más detalladamente:

Cuando un jugador escribe "MÍRATE" (o cosas similares), se suele dar una descripción del personaje. Tengo entendido que esto es porque llama al objeto "objjugador".

Pues bien, ¿se puede personalizar el objeto objugador como tal? Es decir, cambiar la descripción resultante de la acción "MIRAR A TI", "MIRATE" O "MIRAME", que supongo que es como "EXAMINAR", ¿verdad?

Para ello, yo he intentado lo siguiente pero no me ha servido, no he podido compilarlo si quiera...:

Código:
Object objjugador "María (tú)"
antes [;
          Examinar: print "Ni demasiado flaca ni demasiado gorda. Me consideran una chica muy guapa... pero pero ahora mismo tengo un aspecto lamentable.";
         rtrue;
                 ],
has femenino;


Probablemente no me haya explicado bien... como de costumbre. Ni yo mismo sé lo que quiero decir. Pero espero que me entendáis y me digáis cómo se haría, en caso de poder hacerse.

¿Que por qué me interesa esto? Pues básicamente porque se trata de una aventura en primera persona... El jugador es el protagonista... no da órdenes a nadie... sólo escribe lo que quiere hacer o lo que piensa que debería hacer... pero no se lo ordena a otro...

En fin, gracias por adelantado.

_________________
"La SINCERIDAD es lo primero"


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 27 Ago 2009 01:43 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Debes hacerlo así...

Código:
Object Maria "María" Limbo
  with
    nombre 'maria',
    cantidad 0, ! esta propiedad es obligatoria
    descripcion "Ni demasiado flaca ni demasiado gorda. Me consideran
        una chica muy guapa... pero pero ahora mismo tengo un aspecto
        lamentable.",
  has
    femenino animado nombrepropio
;


La propiedad "cantidad" es obligatoria, con valor cero, y la usa el parser para sus propios fines. Fuera de esto, todo lo que tienes que configurar es "descripcion".

Tu nuevo objeto "jugador" no puede estar suelto en el árbol de objetos, así que debes incluirlo en algún lugar temporal antes de que inicie el juego en sí, por ejemplo, en algún objeto "Limbo" donde guardes las cosas que no quieres que estén en el juego todavía.

Cuando inicie el juego, haz el cambiazo. Así, en Inicializar() haces un CambiarJugador(Maria).

Código:
[ Inicializar;
    ! bla bla bla
    CambiarJugador(Maria);
    ! bla bla bla
];


Eso sería. =)

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


Arriba
 Perfil  
 
 Asunto: InformATE!
NotaPublicado: 27 Ago 2009 13:24 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2909
Ubicación: España (Galicia)
Hola !

Eliuk Blau escribió:
La propiedad "cantidad" es obligatoria, con valor cero, y la usa el parser para sus propios fines. Fuera de esto, todo lo que tienes que configurar es "descripcion".


Curioso esto, cuando programaba para InformATE! nunca utilicé esa propiedad en mis objetos jugador. ¿Seguro que es obligatorio? ¿Desde qué versión?

Citar:
Tu nuevo objeto "jugador" no puede estar suelto en el árbol de objetos, así que debes incluirlo en algún lugar temporal antes de que inicie el juego en sí, por ejemplo, en algún objeto "Limbo" donde guardes las cosas que no quieres que estén en el juego todavía.


Si cambias el jugador, y después asignas la localidad, no creo que sea necesario que tengas en cuenta todo esto:

Código:
[ Inicializar;
    cambiarJugador( Maria );
    localizacion = LOC1;
];


Entiendo que el problema sólo podría venir si lo hicieras al revés.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 27 Ago 2009 15:45 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
baltasarq escribió:
Curioso esto, cuando programaba para InformATE! nunca utilicé esa propiedad en mis objetos jugador. ¿Seguro que es obligatorio? ¿Desde qué versión?

Si cambias el jugador, y después asignas la localidad, no creo que sea necesario que tengas en cuenta todo esto:


Es OBLIGATORIO en INFSP6 lo del meter el objeto jugador en el arbol de objetos. Si no lo haces, el juego manda mensaje de error en tiempo de ejecución. Es cierto que InformATE! no hace esa comprobación, o si la hace, no la muestra, pero nunca es buena idea tener objetos sueltos del árbol de objetos. Si tienes un montón de objetos sueltos, mételos en alguna raíz, por ejemplo un objeto Limbo. Siempre es recomendable. Por orden (y por comprobaciones internas que hace el parser sin avisar, usualmente).

Si posteriormente quisieras reutilizar ese código entre INFSP6/InformATE!, seguir este consejo sobre el objeto jugador te evitará problemas inesperados.

Por otro lado, lo de la propiedad cantidad... bueno, tal vez en InformATE! no sea usada explicitamente, o tal vez no con ese nombre (pero tengo entendido que la propiedad "number" de Inform es el equivalente de "cantidad" de InformATE!).

En manual "InfoLib at your fingertips" de Roger Firth se menciona lo siguiente:

Citar:
number
For an object or room: the value is a general-purpose
variable freely available for use by the program. A player
object must provide (but not use) this variable.


Saludos!

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


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 27 Ago 2009 20:40 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2909
Ubicación: España (Galicia)
Hola !

Eliuk Blau escribió:
baltasarq escribió:
Curioso esto, cuando programaba para InformATE! nunca utilicé esa propiedad en mis objetos jugador. ¿Seguro que es obligatorio? ¿Desde qué versión?


Es OBLIGATORIO en INFSP6 lo del meter el objeto jugador en el arbol de objetos. Si no lo haces, el juego manda mensaje de error en tiempo de ejecución.


Pues me temo que no es así, o al menos no en la práctica. La aventura espacial (InfSp6) no da mensaje de error, desde luego. Y el objeto jugador reemplazado no está metido en ninguna raiz, aunque sí exista un limbo. En InformATE!, jamás lo he hecho así y tampoco da ningún error.

Vamos, que puede parece que estoy "discutiendo" esto por fastidiar, pero yo no lo hago así y nunca ha pasado absolutamente nada.

Citar:
Por otro lado, lo de la propiedad cantidad... bueno, tal vez en InformATE! no sea usada explicitamente, o tal vez no con ese nombre (pero tengo entendido que la propiedad "number" de Inform es el equivalente de "cantidad" de InformATE!).

En manual "InfoLib at your fingertips" de Roger Firth se menciona lo siguiente:

Citar:
number
For an object or room: the value is a general-purpose
variable freely available for use by the program. A player
object must provide (but not use) this variable.



Bueno, todo esto está muy bien, pero sigue sin haber un motivo sustancial. Si así fuera, mis aventuras fallarían, y no lo hacen. Por cierto, cuando necesito una propiedad en un objeto, la creo y le doy un nombre significativo, no reutilizo una variable genérica, me parece un tanto absurdo.

Bueno, realmente todo esto no tiene ninguna importancia, pero me extrañaba un tanto.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 27 Ago 2009 21:26 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
baltasarq escribió:
Pues me temo que no es así, o al menos no en la práctica. La aventura espacial (InfSp6) no da mensaje de error, desde luego. Y el objeto jugador reemplazado no está metido en ninguna raiz, aunque sí exista un limbo.


Baltasar, por favor sé tan amable de compilar el siguiente código fuente usando modo DEBUG (D) y modo estricto (S). Adjunto el fuente y un binario precompilado. Ocupa INFSP6.

Si compilas en modo RELEASE, los mensajes de depuración jamás son mostrados.

http://www.caad.es/eliukblau/temp/player.zip

(Incluyo copia del código en SPOILER, porque el ZIP será sólo temporal)

[spoiler]
Código:
!% -SD
!% +language_name=Spanish
!%
Constant Story "Titulo del Juego";
Constant Headline "^Nombre del Autor y Copyright^";

Include "Parser";

Include "VerbLib";

[ Initialise ;
    print "^^^";
    ChangePlayer(Pepito);
    print "^^";
    location = Localidad;
];

Include "SpanishG";

Object Localidad "En el vacío absoluto..."
  has light,
  with
    description "No estás en ninguna parte",
;

!Object Pepito "Pepito" Localidad ! (esto evita el error)
Object Pepito "Pepito" ! (no esta en arbol, salta el error)
  has animate proper
  with
    name 'pepito',
    number 0,
    description "Eres Pepito.",
;
[/spoiler]

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


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 27 Ago 2009 23:46 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Esto no es un complot ;), pero al igual que a Balta, también me funciona en InfSP6 sin definir la propiedad number/cantidad en el objeto jugador.

Al margen de que lo diga el manual, claro. ¿Quizá se corrigió la necesidad de ser definida la propiedad por el programador y luego se olvidaron de modificar el manual?

Saludos

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 28 Ago 2009 02:15 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
jarel escribió:
Esto no es un complot ;), pero al igual que a Balta, también me funciona en InfSP6 sin definir la propiedad number/cantidad en el objeto jugador.

Al margen de que lo diga el manual, claro. ¿Quizá se corrigió la necesidad de ser definida la propiedad por el programador y luego se olvidaron de modificar el manual?

Saludos


Sí, es muy probable. De hecho, yo al principio tampoco lo usaba. =) Y ahora la pongo sólo por lo que dice el manual. En fin... no se pierde nada.

Por otro lado, lo del árbol, bueno, ese es otro cuento... :P que es el motivo del ZIP que colgué.

P.S: A todo esto, como dato curioso, así está definido el jugador en Inform 6/11:

[spoiler]
Código:
Object  selfobj "(self object)"
  with  short_name  [;  return L__M(##Miscellany, 18); ],
        description [;  return L__M(##Miscellany, 19); ],
        before NULL,
        after NULL,
        life NULL,
        each_turn NULL,
        time_out NULL,
        describe NULL,
        add_to_scope 0,
        capacity 100,
        parse_name 0,
        orders 0,
        number 0,
        before_implicit NULL,
  has   concealed animate proper transparent;
[/spoiler]

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


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 29 Ago 2009 04:39 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2909
Ubicación: España (Galicia)
Hola !

Eliuk Blau escribió:
Baltasar, por favor sé tan amable de compilar el siguiente código fuente usando modo DEBUG (D) y modo estricto (S). Adjunto el fuente y un binario precompilado. Ocupa INFSP6.


He visto tu código, compilado, y, efectivamente, falla. No he podido, sin embargo, repetirlo en mi código, ni para Glulx, ni para Z, pese a utilizar la misma librería.

De todas formas, si dices que el mensaje sólo sale cuando tienes la aventura en modo debug estricto, pues no creo que pase nada. Además, el objeto jugador pasa a estar colgado de la localidad enseguida.

Vamos, que te creo, que tienes razón, pero sigo sin verle la lógica, y por alguna razón a veces sucede a veces no.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
 Asunto: Re: InformATE!
NotaPublicado: 29 Ago 2009 21:46 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
baltasarq escribió:
sigo sin verle la lógica, y por alguna razón a veces sucede a veces no.


En eso, amigo mío, estoy en total acuerdo contigo. Yo también pienso que es una comprobación estúpida.

Lo que sí puedo decirte es que, por algún extraño motivo, al parser le gusta hacer comprobaciones raras con los objetos existentes en el juego, estén colgados de una raíz o no. Y en lo que me ha tocado probar, al final es mejor no dejarlos sueltos, mejor es meterlos en un limbo o algo así para evitar este tipo de mensajitos desagradables (al menos en Lib. Inform 6/11). Por otro lado, no son mensajes de error catastróficos y el juego no fallará, como tú mismo lo has dicho. De ahí que concuerde contigo que son mensajes bastante estúpidos. :lol:

En fin,
Saludos! :P

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


Arriba
 Perfil  
 
NotaPublicado: 03 Sep 2009 12:58 
Desconectado
Aventurero
Aventurero
Avatar de Usuario

Registrado: 19 Jul 2009 18:19
Mensajes: 8
Ubicación: Cuenca (España)
Quería agradeceros vuestra ayuda con esta duda que tenía.

Soy todavía principiante, así que lo del orden lo mantendré, aunque sea para saber yo mismo qué es cada cosa y cómo cambiarla de sitio en el momento adecuado, etc...
Igual, cuando ya sea un profesional en esto de las aventuras conversacionales como vosotros no me haga falta, pero de momento... prefiero ir a lo seguro, aunque sea absurdo y con algo más de código.

En cuanto a lo de la propiedad "cantidad" voy a probarlo con esa propiedad y sin ella... si funciona sin ella, deduzco que es porque da por echo (por defecto) que la cantidad es 0. En ese caso, es posible que sí lo deje sin la propiedad "cantidad".

Por otra parte, todavía no lo he probado, porque ahora no estoy en mi casa... pero si cambio de personaje... ¿saldrá esa descripción cuanto escriba MÍRAME, MÍRATE y similares? Doy por hecho que sí, ya que no dudo de vosotros. Pero preguntaba por-si-acaso.

Nada más. Muchas gracias y ya os diré qué tal me ha ido cuando lo pruebe.

_________________
"La SINCERIDAD es lo primero"


Arriba
 Perfil  
 
NotaPublicado: 11 Sep 2009 22:06 
Desconectado
Aventurero
Aventurero
Avatar de Usuario

Registrado: 19 Jul 2009 18:19
Mensajes: 8
Ubicación: Cuenca (España)
¡Hola!
Quería daros las gracias por todo nuevamente y confirmar que funciona perfectamente, tanto con la propiedad "cantidad"(con valor 0) como sin esa propiedad.
Espero no tener que preguntaros más... porque si no, a este paso, el juego final va a ser más vuestro que mío, jajaja :D
¡Saludos y hasta otra!

Por cierto, sólo un pequeño fallito... No es "nombrepropio", sino "propio". Al menos, escribiendo "nombrepropio" no me dejaba compilar... me daba error. Hasta que puse simplemente propio". Al menos, repito, en mi versión de InformATE que yo tengo (6/10, número de serie 080625). Si hay alguno más actual, avisadme...

_________________
"La SINCERIDAD es lo primero"


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 11 Sep 2009 22:17 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Cool! :D

Tengo entendido que la última versión es 6/10+ (aunque no recuerdo el número de release).

Sí, es probable que lo de "nombrepropio" haya sido un error mío, confundiéndome con pluralname. xD Es que como no soy un usuario de InformATE! frecuente... ya ves tú. xD, sólo de Inform 6 + INFSP6.

Saludos! :)

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


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 13 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:  
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM