Herramientas de usuario

Herramientas del sitio


notificacion_de_acciones_y_sucesos

Notificación de acciones y sucesos

Notificar sobre algo que ha ocurrido en una habitación

En la clase Room tenemos los siguientes métodos:

void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , boolean self_included )
void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , String style , boolean self_included )

Informa a todos los jugadores presentes en la habitación de un suceso que se ha producido, donde:

  • source es el sujeto del suceso (por ejemplo, Juan),
  • target es el objeto del suceso (por ejemplo, un goblin),
  • objects son otras entidades que hayan intervenido en el suceso (por ejemplo, una espada),
  • thirdPersonDes es la descripción en tercera persona con los objetos parametrizados con $1 (sujeto), $2 (objeto), $3…$n (resto). Por ejemplo: “$1 ataca a $2 con $3”.
  • sufferDes es la descripción que se mostrará al objeto del suceso (“$1 te ataca con $3”).
  • execDes es la descripción que es mostrará al sujeto del suceso (“Atacas a $1 con $3”).
  • style permite especificar un estilo (color) para mostrar el texto a los jugadores (puede ser “story”, “description”, “action”, etc.)
  • self_included: si es true, se muestra el texto también para el sujeto, si no, sólo para el resto de jugadores/criaturas.
void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , boolean self_included )
void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String style , boolean self_included )

Hace lo mismo que reportAction; pero sólo proporcionamos la descripción en tercera persona y AGE intenta generar las otras dos mediante sus tablas de “tercera a segunda”. Utilizar sólo en los dos casos siguientes:

  • Si realmente no es necesario el grado de detalle que da reportAction, pues no hay que emitir descripciones distintas en primera, segunda y tercera persona (por ejemplo, en juegos monojugador).
  • Si sí es necesario emitir descripciones distintas en primera, segunda y tercera persona; pero la oración es lo suficientemente sencilla como para que AGE pueda convertirla (en el futuro se darán más detalles de cuáles se pueden convertir automáticamente y cuáles no, de momento se puede saber por prueba y error).
Notificar sobre algo que ha ocurrido con una cosa

En la clase Item tenemos los siguientes métodos:

void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes  , boolean self_included )
void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , String style , boolean self_included )
void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes ,  boolean self_included )
void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String style , boolean self_included )

Funcionan exactamente igual que los de la clase Room, y lo que hacen es mostrar la notificación en todas las habitaciones en las que esté el Item dado.

Notificar sobre algo que ha ocurrido con una criatura

No hay métodos específicos en la clase Mobile, ya que una criatura siempre está en una sola habitación, fácilmente accesible mediante getRoom(). Por lo tanto, podemos hacer estas notificaciones fácilmente así:

elMobile.getRoom().informAction(…)
elMobile.getRoom().informActionAuto(…)

notificacion_de_acciones_y_sucesos.txt · Última modificación: 2010/12/10 13:51 por al-khwarizmi