CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 17 Oct 2019 07:14

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 33 mensajes ]  Ir a página 1, 2, 3  Siguiente
Autor Mensaje
NotaPublicado: 16 May 2011 15:28 
Desconectado
Elfito
Elfito

Registrado: 16 May 2011 13:48
Mensajes: 18
Hola, buenas a todos.

¿Hay alguna forma de desactivar los comentarios que efectua la libreria de forma automática cuando añades un objeto a una habitación? Tipo:

"Puedes ver una mesa, una llave y una gafas aquí."

Mucha gracias de antemano.


Última edición por Melchian el 16 May 2011 17:03, editado 1 vez en total

Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 12:30 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Melchian escribió:
Hola, buenas a todos.

¿Hay alguna forma de desactivar los comentarios que efectua la libreria de forma automática cuando añades un objeto a una habitación? Tipo:

"Puedes ver una mesa, una llave y una gafas aquí."

Mucha gracias de antemano.


Bueno... esta pregunta tiene muchas respuestas posibles y no tengo muy claro cuál es la que buscas.

  • Si lo que necesitas es que un objeto desaparezca de los visibles (porque es un decorado) lo más sencillo es simplemente declararlo como tal: 'The objeto is an scenery' (capítulo 3.8 de la documentación). (También puedes usar la librería Decorations -siempre en https://sites.google.com/site/inform7sp/extensiones- https://sites.google.com/site/johanilat ... ations.i7x para evitar crearte esta clase de objetos).
  • Si lo que quieres es que sea un objeto normal pero que 'inicialmente' no sea visible hasta que ocurra algo lo mejor es no ponerlo en el sitio (ej: 'The objeto is a thing', sin indicar 'here' o 'in location-tal') y lo haces aparecer cuando sea (ej: 'After examining otroobjeto, move objeto to the location of otroobjeto.')
  • Si lo que quieres es que el objeto tenga una descripción inicial en frase separada es aún más sencillo ('The objeto is a thing here. "Esta es la descripción inicial separada del objeto"').
  • Si quieres hacer algo bastante más sofisticado tendrás que cambiar alguna actividad, tal vez la descrita en el capítulo 17.15 de la documentación.

Como ves depende de qué es lo que quieras hacer.


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 12:56 
Desconectado
Elfito
Elfito

Registrado: 16 May 2011 13:48
Mensajes: 18
Muchas gracias por tu respuesta Johan Paz

Lo que quiero hacer es que los objetos que no son scenery, es decir, llaves u objetos que puedes coger y manipular, puedan ser utilizados desde el principio en la habitacion en la que estan pero sin la tipica frase que te aparece automatica despues de poner tu la descripcion de la habitación donde estan. Por ejemplo:

"La habitación es alta osucra y rectangular. En el centro hay una mesa con una llave misteriosa.

En la habitacion hay una llave."

Quiero que desaparezca la frase "En la habitación hay una llave" pero que la llave siga estando disponible en la habitación y siga siendo utilizable.


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 13:01 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 23 Mar 2010 20:11
Mensajes: 1141
Ubicación: Valencia
scenery te debe valer perfectamente para lo que quieres.

Un objeto scenery es totalmente manipulable, cogible, examinable, y todo lo able que quieras... la única diferencia con un objeto normal es que no se describe en la descripción de la localidad...

Al menos en inform6 funciona... supongo que en el 7 seguirá funcionando.

_________________
El humor existe para recordarnos que por muy alto que sea el trono en el que uno se siente, todo el mundo usa su culo para sentarse.


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 13:08 
Desconectado
Elfito
Elfito

Registrado: 16 May 2011 13:48
Mensajes: 18
joruiru escribió:
scenery te debe valer perfectamente para lo que quieres.

Un objeto scenery es totalmente manipulable, cogible, examinable, y todo lo able que quieras... la única diferencia con un objeto normal es que no se describe en la descripción de la localidad...

Al menos en inform6 funciona... supongo que en el 7 seguirá funcionando.


Incluso una puerta seguirá siendo una puerta que se puede abrir y cerrar, que tenga una llave relacionada etc... y una llave serguirá pudiendo abrir y cerrar puertas, y una mesilla podria seguir dejando cosas encima sin ser un supporter?

Es decir, cuando pongo scenery las llaves me sale lo siguiente cuando quiero cogerlas:

>coger llave
Difícilmente podrías llevarte eso.

Y lo que tengo de la llave es lo siguiente:

A llave de la habitacion 14 are here. The printed name of llave de la habitacion 14 is "Llave de la habitación 14". They are scenery, female. The description is "Las llaves de la habitación, será mejor que las deje en recepción antes de marcharme."


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 13:14 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 23 Mar 2010 20:11
Mensajes: 1141
Ubicación: Valencia
Una cosa no quita a la otra... ser scenery no significa que no pueda ser supporter. Le puedes asignar a un objeto tantas características como quieras.

Por ejemplo: The Capitains Chair is an enterable scenery supporter in the Bridge.

_________________
El humor existe para recordarnos que por muy alto que sea el trono en el que uno se siente, todo el mundo usa su culo para sentarse.


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 13:23 
Desconectado
Elfito
Elfito

Registrado: 16 May 2011 13:48
Mensajes: 18
joruiru escribió:
Una cosa no quita a la otra... ser scenery no significa que no pueda ser supporter. Le puedes asignar a un objeto tantas características como quieras.

Por ejemplo: The Capitains Chair is an enterable scenery supporter in the Bridge.


Perfecto, muchas gracias joruiru, no sabia que las caracteristicas de thing, door, scenery y tal no eran excluyentes. Aun así cuando pongo ambas opciones (Thing y scenery) me sigue sin dejar ocger las llaves... :(


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 13:59 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
joruiru escribió:
scenery te debe valer perfectamente para lo que quieres.

Un objeto scenery es totalmente manipulable, cogible, examinable, y todo lo able que quieras... la única diferencia con un objeto normal es que no se describe en la descripción de la localidad...

Al menos en inform6 funciona... supongo que en el 7 seguirá funcionando.


No, no lo es. Un objeto 'scenery' está bastante limitado, puedes, por supuesto, añadir reglas extra para que se pueda hacer justo con ese objeto, pero serían apaños.


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 14:38 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Melchian escribió:
Muchas gracias por tu respuesta Johan Paz

Lo que quiero hacer es que los objetos que no son scenery, es decir, llaves u objetos que puedes coger y manipular, puedan ser utilizados desde el principio en la habitacion en la que estan pero sin la tipica frase que te aparece automatica despues de poner tu la descripcion de la habitación donde estan. Por ejemplo:

"La habitación es alta osucra y rectangular. En el centro hay una mesa con una llave misteriosa.

En la habitacion hay una llave."

Quiero que desaparezca la frase "En la habitación hay una llave" pero que la llave siga estando disponible en la habitación y siga siendo utilizable.


La forma 'estándar' de hacer algo así sería con este código:

Código:
The initial room is a room. "La habitación es alta, oscura y rectangular".

A mesa is a female scenery. The mesa is here.

A llave is a female thing in initial room. "En el centro hay una mesa con una llave misteriosa."


Esto tiene el problema de que la mesa 'desaparece' cuando coges la llave. Una alternativa algo mejor sería:

Código:
The initial room is a room. "La habitación es alta, oscura y rectangular".

A mesa is a female supporter. "En el centro hay una mesa [if llave is on the mesa] con una llave misteriosa[end if]."

A llave is a female thing on the mesa.


Pero este código insiste en informarte dos veces de que la llave está sobre la mesa, para evitarlo tendrías que decirle a ese soporte 'la mesa' que ya te has encargado tu:

Código:
The initial room is a room. "La habitación es alta, oscura y rectangular".

A mesa is a female supporter in initial room. "En el centro hay una mesa[if llave is on the mesa] con una llave misteriosa[end if]."

Rule for writing a paragraph about mesa:
   say initial appearance of mesa;
   say line break.
   
A llave is a female thing on the mesa.


Es decir, te estás encargando tu de formar el párrafo sobre la mesa. Normalmente solemos dejar que la librería se encarge de estas descripciones, pero como puedes ver puedes rescribir cualquier cosa usando la regla correcta.


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 14:53 
Desconectado
Elfito
Elfito
Avatar de Usuario

Registrado: 17 May 2011 12:51
Mensajes: 23
Ubicación: Barcelona
Te puedes guiar por el ejemplo del tutorial on-line de Inform 7: Empezando a programar puzzles complejos: objetos escondidos

https://sites.google.com/site/inform7sp ... zles-compl

_________________
Blog | Perfil


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 15:14 
Desconectado
Elfito
Elfito

Registrado: 16 May 2011 13:48
Mensajes: 18
Buuf necesito tiempo para digerir todo el codigo... Por cierto, pensaba que las cosas que ponias entre corchetes no te las leia el inform 7 como código. Esa es la forma de poner un If?


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 15:26 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Melchian escribió:
Buuf necesito tiempo para digerir todo el codigo... Por cierto, pensaba que las cosas que ponias entre corchetes no te las leia el inform 7 como código. Esa es la forma de poner un If?


Es la forma de poner un if dentro de un texto. :)

En I7 tienes una enorme flexibilidad en los textos. Estos dos códigos son equivalentes, por ejemplo:

Código:
Every turn:
     say "La llave [if llave is not on mesa]no[end if] está sobre la mesa.".


Código:
Every turn:
     say "La llave ";
     if llave is not on mesa:
         say "no ";
     say "está sobre la mesa.".


En este caso puedes escoger entre cualquiera de los dos, es lo mismo exactamente (aunque yo encuentro más clara la primera opción). Pero hay veces en las que tienes que poner una cadena en un atributo (The description of..., por ejemplo), por lo que sólo tienes la primera opción (meter condicionales entre corchetes dentro del texto).


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 15:30 
Desconectado
Elfito
Elfito

Registrado: 16 May 2011 13:48
Mensajes: 18
Si que hy versatibilidad si... y muchisimas cosas por aprender O_O

Sobre todo por que me tiraba de los pelos ya que no sabia meter la condicion "If..." Ahora la intento poner pero me da un error. No se si se podrá, si no se puede no veo por que no se va a poder. Lo que quiero poner es que suene un sonido si se cumpole una condicion.

If the grifo is open, play the sound grifoleak.

Por ejemplo, sin embargo me da error una y otra vez...


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 15:57 
Desconectado
Elfito
Elfito
Avatar de Usuario

Registrado: 17 May 2011 12:51
Mensajes: 23
Ubicación: Barcelona
Para poner sonidos y que te funcione tienes que poner los sonidos en la carpeta Materials de tu proyecto y compilar para Glulx. En el tutorial te lo explican:
https://sites.google.com/site/inform7sp/inform-7/7-graficos-y-sonidos#TOC-Sonidos

_________________
Blog | Perfil


Arriba
 Perfil  
 
NotaPublicado: 17 May 2011 15:58 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 24 Dic 2010 14:37
Mensajes: 929
Melchian escribió:
Si que hy versatibilidad si... y muchisimas cosas por aprender O_O

Sobre todo por que me tiraba de los pelos ya que no sabia meter la condicion "If..." Ahora la intento poner pero me da un error. No se si se podrá, si no se puede no veo por que no se va a poder. Lo que quiero poner es que suene un sonido si se cumpole una condicion.

If the grifo is open, play the sound grifoleak.

Por ejemplo, sin embargo me da error una y otra vez...


Imagino que estarás intentando poner la condición 'tal cual', pero tienes que situarla en un 'libro de reglas', es decir imagino que lo que quieres hacer es: 'en cada turno, si el grifo está abierto que suene su sonido'. Esto en I7 se escribiría así:

Código:
Every turn when the grifo is open:
      play the sound grifoleak.


'Every turn' es el 'libro de reglas', es decir el ámbito de ejecución (en nuestro caso 'cada turno', o sea después de que el jugador ejecute un comando) y tras el nombre del libro de reglas he puesto la condición 'when the grifo is open' y dentro de esa 'regla' que se ejecuta cada turno sólo si el grifo está abierto ya he puesto lo que tiene que pasar. Una forma equivalente de escribirlo y más cercana a la que estabas intentando (pero un poquito menos eficiente) sería:

Código:
Every turn:
      if the grifo is open:
             play the sound grifoleak.


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 33 mensajes ]  Ir a página 1, 2, 3  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 2 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