tell_room
*********


BEMERKUNGEN
===========

   Wird in einem catch_msg() der Wert von <msg> veraendert, erhalten
   alle nachfolgenden Objekte das veraenderte <msg> (Referenz!)


BEISPIELE
=========

      // Dies ist ein einfaches Beispiel fuer eine Meldung an alle An-
      // wesenden im Raum.

      tell_room(this_object(),"Ein leichter Wind kommt auf.\n");

      // Diese Meldung wird im Raum /d/ebene/ark/raum.c ausgegeben, dieser
      // Raum muss nicht derjenige sein, in dem das tell_room() ausgefuehrt
      // wird.

      tell_room("/d/ebene/ark/raum","Ein leichter Wind kommt auf.\n");


      // Diese Meldung wird an alle Anwesenden im Raum AUSSER this_player()
      // (der diese Meldung ausgeloest hat) ausgegeben. Der muss eine ge-
      // sonderte Meldung ueber sein Stolpern per write() oder
      // tell_object() bekommen.
      tell_room(this_object(),
                break_string(this_player()->Name()+" stolpert.", 78),
                ({ this_player() }));
      tell_object(this_player(), "Du stolperst.\n");

      // Ein Beispiel mit zwei Objekten, das zeigt, wie das Zusammenspiel
      // von catch_tell() und tell_room() ablaueft. Objekt1 ist ein
      // Lebewesen mit Namen "Dummymonster", Objekt2 verteilt die Meldung:

      Objekt1 (ein Lebewesen, steht im Env von this_player()):
          void catch_tell(string str) {
              write("Empfangen: "+str+"\n");
          }

      Objekt2:
          void fun() {
              tell_room(environment(this_player()), "Hallo Welt!\n");
          }
