
shout()
*******


FUNKTION
========

   varargs void shout( string text, mixed where )


DEFINIERT IN
============

   /secure/simul_efun.c


ARGUMENTE
=========

   text
        Der Text, der ausgegeben werden soll

   where [optional]
        Wo soll man den Text ueberall hoeren koennen?


BESCHREIBUNG
============

   Der Text 'text' wird an alle Spieler in einem Gebiet ausgegeben.
   Wird der Parameter 'where' weggelassen bzw. ist er null, so geht der
   Text an alle Spieler im Mud. Das catch_tell() von NPCs wird nicht
   ausgeloest.

   Ist 'where' eine Zahl != 0, so wird der Text nur an Spieler ausgegeben,
   die sich im selben Gebiet aufhalten wie this_player(). Dabei wird die
   Zugehoerigkeit zum selben Gebiet an den ersten zwei Ebenen des Pfades
   der Raeume festgemacht. Befindet sich this_player() z.B. in
   "/d/ebene/irgendwo", so geht der Text an alle Spieler, deren Aufenthalts-
   orte in "/d/ebene/*" liegen.

   Fuer 'where' kann auch direkt ein Pfad angegeben werden. So wuerde ein
   'shout( txt, "/players/" )' an alle Spieler gehen, die sich in
   (eigentlich nicht erwuenschten) Raeumen in /players/* befinden.

   Um mit einem Aufruf gleich mehrere Pfade abzudecken, kann auch ein Array
   von Strings uebergeben werden. Alle Pfade werden als 'regular expression'
   interpretiert. Dadurch ist es moeglich, die Zielraeume auf einfache Art
   sehr genau einzuschraenken.

   HINWEIS: Bitte ueberleg vor jedem shout() genau, ob es wirklich noetig
   ist, dass _jeder_ etwas davon mitbekommt oder ob es nicht vielleicht
   sinnvoller ist, das Zielgebiet etwas einzuschraenken. Im Zweifelsfall
   sollte der zustaendige RM aufpassen, dass die Spieler nicht durch allzu
   zahlreiche shouts belaestigt werden.


RUeCKGABEWERT
=============

   keiner


BEISPIELE
=========

   shout( "Du spuerst, wie ein Zittern durch das MorgenGrauen geht.\n" );
      Der allseits bekannte Text wird an alle Spieler im MG ausgegeben.

   shout( "Du hoerst eine gewaltige Explosion.\n", 1 );
      Von der Explosion bekommen alle Spieler in derselben Gegend etwas mit,
      aber nicht am anderen Ende des Muds.

   shout( "Irgendwo ist ein Baum umgefallen.\n", "/d/vland/" );
      ... gibt eine Meldung aus, die keinen wirklich interessiert. Aber es
      trifft eh nur Leute in einem unwichtigen Teil des MorgenGrauen. ;-)

   shout( "Aufwachen Du Idler!\n", "/players/.*/workroom" );
      Mit Hilfe von regular expressions kann man recht einfach z.B. alle
      Workrooms auf einmal adressieren.

   shout( "Halloooooo, Echoooooo!\n", ({ "/d/gebirge/", "/d/ebene/" }) );
      Wenn der Spieler hoch oben auf dem Berg laut genug ruft, hoert man
      ihn auch noch weit in der Ebene.


SIEHE AUCH
==========

   write(), say(), tell_object(), tell_room(), regexp()

Last modified: Sun Nov 28 03:00:00 1999 by Tiamak
