CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 29 Oct 2020 20:58

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: 22 May 2009 09:05 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Quiero que en un momento dado uno de los psis, se ponga una prenda y ahora mismo no se me ocurre cómo.
Se me ocurre cómo pasar el objeto al inventario del Psi, pero no cómo conseguir que salga como que lo lleva puesto... :roll:

¿Cómo puedo conseguir ese efecto?

Un saludo y gracias.
Jenesis

(Editado para cambiar el asunto. )


Última edición por jenesis el 22 May 2009 11:07, editado 1 vez en total

Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 22 May 2009 10:34 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
La manera "bonita" sería usando el método

boolean wear ( Item item )

que te comentaba en la página 42 del macro-hilo; pero aún no lo he puesto como público. Lo puedo hacer en un momento, sin embargo. Con esto ya obtendrías el mensaje de "X se pone Y", etc.

Si lo quieres hacer a mano, sin mensajes por defecto ni nada, simplemente se trataría de fijar la relación "wears" entre un miembro del PSI y la prenda.

_________________
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  
 
 Asunto:
NotaPublicado: 22 May 2009 10:52 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
La manera "bonita" sería usando el método

boolean wear ( Item item )

que te comentaba en la página 42 del macro-hilo; pero aún no lo he puesto como público. Lo puedo hacer en un momento, sin embargo. Con esto ya obtendrías el mensaje de "X se pone Y", etc.

Si lo quieres hacer a mano, sin mensajes por defecto ni nada, simplemente se trataría de fijar la relación "wears" entre un miembro del PSI y la prenda.


Yo quería que el protagonista fuera testigo de cómo el psi se pone la corona, que tiene más fuerza dramática, y además queda guapo que la corona que hasta ese momento estaba en mesa, pase a estar en la cabeza del rey.
Es que es uno de los momentos más estelares de la aventura, cuando se descubre quién es el rey. :D

Pero no tengo prisa, ya lo apunto en el TODO, por ahora me basta con hacer desaparecer la corona de la habitación. :)

Un saludo y gracias.


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 22 May 2009 11:05 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Repasando ese hilo, he encontrado esto:

Código:
void onEnterRoom ( Mobile b )
{
...
}


Eso genera que el psi reaccione cuando otra criatura entra en la habitación en la que él se encuentra.

Pero los informáticos tenéis la manía de hablar con variables en vez de hablar con ejemplos y no es lo más claro para el resto de los mortales. ;)

¿Qué tal si cambiamos esos puntos suspensivos por un ejemplo práctico? :)

También me gustaría saber cómo hacer lo contrario, o sea, que el psi reaccione cuando entre a una habitación en la que se encuentra el protagonista.

Un saludo y gracias.


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 22 May 2009 11:47 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
jenesis escribió:
Repasando ese hilo, he encontrado esto:

Código:
void onEnterRoom ( Mobile b )
{
...
}


Eso genera que el psi reaccione cuando otra criatura entra en la habitación en la que él se encuentra.

Pero los informáticos tenéis la manía de hablar con variables en vez de hablar con ejemplos y no es lo más claro para el resto de los mortales. ;)

¿Qué tal si cambiamos esos puntos suspensivos por un ejemplo práctico? :)[/code]

Bueno, la única variable aquí es la que representa cuál es el la criatura con la que te has "encontrado". Pero va un ejemplo:

Código:
void onEnterRoom ( Mobile b )
{
       if ( !b.getRelationshipPropertyValueAsBoolean(self,"conoce") )
       {
       self.say("Hola, y bienvenido a mi tienda. Aquí puedes comprar las mejores espadas de la comarca.\n");
       }
       else
       {
       self.say("Bienvenido de vuelta, siempre es un placer verte de nuevo por aquí.\n");
       }
       b.setRelationshipProperty(self,"conoce",true);
}



jenesis escribió:
También me gustaría saber cómo hacer lo contrario, o sea, que el psi reaccione cuando entre a una habitación en la que se encuentra el protagonista.

Un saludo y gracias.


Puedes usar el mismo evento, que también se ejecuta para la misma criatura. Quiero decir que, cuando un PSI Manolito entra en una habitación, los otros PSI's que haya en la habitación ejecutan el onEnterRoom, pero Manolito también lo ejecuta (recibiéndose como parámetro a sí mismo). Luego, lo de si en la habitación está el protagonista, ya lo tendrías que comprobar con un if.

Código:
void onEnterRoom ( Mobile b )
{
       if ( self.equals(b) ) //me he movido yo
       {
          if ( self.getRoom().hasMobile(world.getMobile("jugador") )
          {
               //hemos entrado en la habitación donde está el jugador,
               //aquí haremos lo que haya que hacer. 
          }
       }
}

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