Lpc Manpages

AddRoomMessage()

FUNKTION:
     void AddRoomMessage(string msg, int time, mixed func);

DEFINIERT IN:
     /std/room/description.c

ARGUMENTE:
     msg
          Array von Strings mit den Meldungen.
     time
          Der Abstand zwischen zwei Meldungen in Sekunden.
     func (optional)
          String oder Array von Strings mit Funktionsnamen

BESCHREIBUNG:
     Mit dieser Funktion legt man fest, dass in bestimmten Zeitabstaenden
     Meldungen an den Raum geschickt werden sollen.

     Es wird alle time Sekunden zufaellig eine der in msg angegebenen
     Meldungen ausgegeben. Hat man auch noch func angegeben, so wird
     zusaetzlich diese Funktion (bei einem Array: eine zufaellig ausgesuchte
     Funktion) im Raum aufgerufen. Als Parameter bekommt die Funktion die
     Nummer der ausgegebenen Meldung.

     Bevor man allerdings jeden Raum mit AddRoomMessage() pflastert, sollte
     man folgendes bedenken:
        o Viele Meldungen in vielen Raeumen tendieren dazu, den Spielern auf
          die Nerven zu gehen!
        o Da das Timing ueber einen call_out() gesteuert wird, ist das Ganze
          aus Sicht des GameDrivers auch noch relativ teuer!
     Fazit: weniger ist mehr!

RUECKGABEWERT:
     keiner

BEMERKUNGEN:
     Falls time < 15 Sekunden ist, wird auf 15 Sekunden aufgerundet.
     
BEISPIELE:
     Es soll alle halbe Minute eine Meldung ausgegeben werden. Falls es
     unter den Fuessen knackt, soll man zudem mit 30%-iger
     Wahrscheinlichkeit zusammenzucken:

     inherit "/std/room";

     create() {
       ::create();
       AddRoomMessage( ({ "In der Ferne schreit ein Kaeuzchen.\n",
                          "Es raschelt im Gebuesch.\n",
                          "Etwas knackt unter Deinen Fuessen.\n" }),
                        30, "sound" );
       ...
     }

     sound(int msg)
     {
       if (msg == 2)         // Es hat geknackt...
         if (random(10) < 3) // Schreck lass nach! 😉
           tell_room(this_object(), "Erschrocken faehrst Du zusammen!\n" );
     }

SIEHE AUCH:
     room, /std/room/description.c