Hola de nuevo!
Hasta ahora para mover a los PSI de una habitación a otra, de la habitación A a la habitación B (ambas habitaciones no están conectadas por ningún camino), utilizaba el método.
mobile("manolo").moveTo(room("laHabitacion"));
Para el caso de los PSI que no eran el jugador no tenía ningún problema, o por lo menos a simple vista me ha funcionado bien.
En el caso de PSI jugador no, ya que no aparecía la descripción de la habitación, lo que hacía es:
Código:
mobile("elJugadro").moveTo(room("laHabitacion"));
room("laHabitacion").onEnterRoom(mobile("elJugador");
y en la habitación:
Código:
void onEnterRoom ( Mobile aCreature )
{
aCreature.writeDescription(self.getDescription(aCreature));
aCreature.write("\n");
}
Ahora repasando la documentación:
http://www.caad.es/aetheria/doc/doku.ph ... _entidadesHe visto que está el método para establecer la nueva localidad de un jugador;
Código:
/*clase Mobile*/ void setRoom ( Room newRoom )
Lo he probado, pensando que actuaría igual que si el jugador accediese a la habitación como si entrara por un camino normal. Pero al igual que el método m.moveTo(XX),
coloca al jugador en la habitación por no muestra la descripción, debo luego llamar a onEnterRoom(), y allí dentro hacer lo que necesite que muestre.
En la habitación 1
Código:
/*Método de análisis sintáctico de la entrada en una habitación*/
void parseCommand( Mobile aCreature , String verb , String args )
{
if (equals (verb, "ir") && args.contains("este"))
{
mobile("Yo").setRoom(room("hab2"));
room("hab2").onEnterRoom(mobile("Yo"));
end();
}
}
En la habitación 2
Código:
void onEnterRoom ( Mobile aCreature )
{
aCreature.writeDescription(self.getDescription(aCreature));
aCreature.write("\n");
}
¿Existe algún método para "teletransportar" al jugador a una habitación? De tal forma que la entrada a dicha habitación sea como si hubiera accedido por un camino directo. O debo hacer de la forma que he comentado antes.
A simple vista el método ..moveTo.. y ..setRoom... me hacen lo mismo, cual es mejor usar para el caso de los PSI. En el caso de objetos uso .removeItem y .addItem.
¡Gracias de nuevo!