Buenas,
Necesito comprobar que al entrar en determinadas estancias, si está el malo malísimo, el jugador muere. El malo malísimo se mueve de forma aleatoria por cuatro estancias, así que en principio no sabemos en cual de las cuatro estancias está.
Pensaba programarlo en el método
void onEnterRoom ( Mobile aCreature ), de tal forma que al entrar el jugador, comprobar si está el malo y mueres, pero creo que podría quedar mejor usando las propiedades
"state" y
"target" del jugador.
Estaba haciendo pruebas, y mirando en la documentación:
http://www.caad.es/aetheria/doc/doku.ph ... _criaturas.
¿Puede que exista un error en la documentación?, en el enlace que pongo aparece:
Código:
room(get(mobile(“Manolo”),”target”))
Pero me da error, ya que get(mobile("manolo"), "target"), retorna un integer:
Código:
*Offending text: room ( get ( self , "target" ) )
*Message: Sourced file: inline evaluation of: ``update( arg0, arg1);'' : Command not found: room( java.lang.Integer )
Probé el siguiente código:
Código:
void update ( PropertyEntry pe , World w )
{
if ( equals ( get (self,"state") , Mobile.MOVING ) ) {
if (Debug.evalEnabled) {
self.write("\n***** Te mueves hacia " + get (self, "target" ) + "******\n");
}
}
}
Y el resultado es:
Código:
>> e
***** Te mueves hacia 10000005******
He probado pensado que get ( mobile("jugador"), "target") retorna un orden en la lista de todas las "room's", y me funciona, pero con una pequeña "ñapa":
Código:
void update ( PropertyEntry pe , World w )
{
EntityList rs = world.getAllRooms();
if ( equals ( get (self,"state") , Mobile.MOVING ) ) {
if (Debug.evalEnabled) {
self.write("\n***** Te mueves hacia " + rs.get ( get (self, "target" ) - 10000000 ).getUniqueName() + "******\n");
}
}
}
... le tengo que restar 10000000.
¿Es la mejor forma?, ¿cómo evitar es "ñapa"?