CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 16 Jul 2020 05:50

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
NotaPublicado: 13 Oct 2010 11:13 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
He creado una propiedad de una localidad a la que he dado un valor de 1 desde el IDE de puck.

aCreature.write(" npista es "+ world.getRoom("cuarto_intro").getPropertyValueAsInteger("npista")+"\n");

Esa línea me imprime una y otra vez "0" ¿cómo puede ser?

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 13 Oct 2010 11:43 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Yo creo que seguramente sea algún despiste al definir la propiedad, ya que el sistema de propiedades está más que probado y debería funcionar.

Ten cuidado con las mayúsculas y minúsculas (no es lo mismo npista que nPista) y también ten cuidado de que no hayas puesto el valor 1 en el temporizador en lugar de en el campo de valor. Y si no es nada de eso, mira que no haya por ahí un update que la esté poniendo a cero.

_________________
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: 13 Oct 2010 11:45 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
He copiado literalmente la línea que me imprime el valor en un mundo básico.
He cambiado el nombre de la propiedad a "secuencia" en el otro.

aCreature.write(" secuencia es "+ get(room("localidad"),"secuencia")+"\n");
Y esto me imprime un 1.
Pero en el mundo de la aventura me imprime un "false".
aCreature.write(" secuencia es "+ get(room("cuarto_intro"),"secuencia")+"\n");

El xml de ambas localidades muestra lo mismo.

Código:
<Room name="localidad">


<PropertyList>
<PropertyEntry name="secuencia" timeUnitsLeft="0" value="1"/>
</PropertyList>


E de la aventura.

Código:
<Room name="cuarto_intro">



<PropertyList>
<PropertyEntry name="alarma" timeUnitsLeft="5" value="false"/>
<PropertyEntry name="secuencia" timeUnitsLeft="0" value="1"/>
</PropertyList>


No me explico qué puedo estar haciendo mal.

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 13 Oct 2010 12:02 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Igual tienes un update que estaba pensado para poner a cero otra propiedad distinta, pero que no comprueba bien el nombre de la propiedad, y por lo tanto pone a cero cualquier cosa.

Si no encuentras el fallo, esta noche me mandas el mundo y te lo busco, pero hasta la noche no tendré tiempo.

_________________
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: 13 Oct 2010 12:28 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Igual tienes un update que estaba pensado para poner a cero otra propiedad distinta, pero que no comprueba bien el nombre de la propiedad, y por lo tanto pone a cero cualquier cosa.

Si no encuentras el fallo, esta noche me mandas el mundo y te lo busco, pero hasta la noche no tendré tiempo.


Eso te iba a decir ... es un update, he hecho el viejo truco de empezar a comentar código hasta que he dado con el problema.

Código:
 void update ( PropertyEntry pe , World mundo )
{
   if ( pe.getValueAsBoolean() == true )
   {
   pe.setValue(false,5);
      room("cuarto_intro").informActionAuto(null,null,null,"\nipsun y todo eso \n",false);

   
   }
   else  {
   pe.setValue(true,5);
      room("cuarto_intro").informActionAuto(null,null,null,"\n ipsum y todo lo demás \n",false);
   
 
        }
}


Sé que puedo arreglarlo sacando el contador de ahí y mandándolo a otro objeto, pero quisiera saber cómo hacerlo desde el mismo objeto, por eso de la reutilización de código.

Saludos
Jenesis

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 13 Oct 2010 12:52 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Es que ese código que has puesto va a actuar sobre *cualquier* propiedad.

Lo único que tienes que hacer es poner una comprobación para que sólo actúe sobre la que tú quieres:

if ( equals(pe.getName(),"laPropiedadQueYoQuieroCambiar" )
hacer los cambios;

_________________
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: 13 Oct 2010 13:03 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Es que ese código que has puesto va a actuar sobre *cualquier* propiedad.

Lo único que tienes que hacer es poner una comprobación para que sólo actúe sobre la que tú quieres:

if ( equals(pe.getName(),"laPropiedadQueYoQuieroCambiar" )
hacer los cambios;


Bueno, le he echado media mañana, pero al menos he aprendido algo.
Gracias. :)

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


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