blob: 37ae7c79d8a62aa14b2f75f6e6b85e9f3a582441 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001shout()
2*******
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 varargs void shout( string text, mixed where )
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /secure/simul_efun.c
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 text
21 Der Text, der ausgegeben werden soll
MG Mud User88f12472016-06-24 23:31:02 +020022
Zesstra953f9972017-02-18 15:37:36 +010023 where [optional]
24 Wo soll man den Text ueberall hoeren koennen?
MG Mud User88f12472016-06-24 23:31:02 +020025
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027BESCHREIBUNG
28============
MG Mud User88f12472016-06-24 23:31:02 +020029
Zesstra953f9972017-02-18 15:37:36 +010030 Der Text 'text' wird an alle Spieler in einem Gebiet ausgegeben.
31 Wird der Parameter 'where' weggelassen bzw. ist er null, so geht der
32 Text an alle Spieler im Mud. Das catch_tell() von NPCs wird nicht
33 ausgeloest.
MG Mud User88f12472016-06-24 23:31:02 +020034
Zesstra953f9972017-02-18 15:37:36 +010035 Ist 'where' eine Zahl != 0, so wird der Text nur an Spieler ausgegeben,
36 die sich im selben Gebiet aufhalten wie this_player(). Dabei wird die
37 Zugehoerigkeit zum selben Gebiet an den ersten zwei Ebenen des Pfades
38 der Raeume festgemacht. Befindet sich this_player() z.B. in
39 "/d/ebene/irgendwo", so geht der Text an alle Spieler, deren Aufenthalts-
40 orte in "/d/ebene/*" liegen.
MG Mud User88f12472016-06-24 23:31:02 +020041
Zesstra953f9972017-02-18 15:37:36 +010042 Fuer 'where' kann auch direkt ein Pfad angegeben werden. So wuerde ein
43 'shout( txt, "/players/" )' an alle Spieler gehen, die sich in
44 (eigentlich nicht erwuenschten) Raeumen in /players/* befinden.
45
46 Um mit einem Aufruf gleich mehrere Pfade abzudecken, kann auch ein Array
47 von Strings uebergeben werden. Alle Pfade werden als 'regular expression'
48 interpretiert. Dadurch ist es moeglich, die Zielraeume auf einfache Art
49 sehr genau einzuschraenken.
50
51 HINWEIS: Bitte ueberleg vor jedem shout() genau, ob es wirklich noetig
52 ist, dass _jeder_ etwas davon mitbekommt oder ob es nicht vielleicht
53 sinnvoller ist, das Zielgebiet etwas einzuschraenken. Im Zweifelsfall
54 sollte der zustaendige RM aufpassen, dass die Spieler nicht durch allzu
55 zahlreiche shouts belaestigt werden.
56
57
58RUeCKGABEWERT
59=============
60
61 keiner
62
63
64BEISPIELE
65=========
66
67 shout( "Du spuerst, wie ein Zittern durch das MorgenGrauen geht.\n" );
68 Der allseits bekannte Text wird an alle Spieler im MG ausgegeben.
69
70 shout( "Du hoerst eine gewaltige Explosion.\n", 1 );
71 Von der Explosion bekommen alle Spieler in derselben Gegend etwas mit,
72 aber nicht am anderen Ende des Muds.
73
74 shout( "Irgendwo ist ein Baum umgefallen.\n", "/d/vland/" );
75 ... gibt eine Meldung aus, die keinen wirklich interessiert. Aber es
76 trifft eh nur Leute in einem unwichtigen Teil des MorgenGrauen. ;-)
77
78 shout( "Aufwachen Du Idler!\n", "/players/.*/workroom" );
79 Mit Hilfe von regular expressions kann man recht einfach z.B. alle
80 Workrooms auf einmal adressieren.
81
82 shout( "Halloooooo, Echoooooo!\n", ({ "/d/gebirge/", "/d/ebene/" }) );
83 Wenn der Spieler hoch oben auf dem Berg laut genug ruft, hoert man
84 ihn auch noch weit in der Ebene.
85
86
87SIEHE AUCH
88==========
89
90 write(), say(), tell_object(), tell_room(), regexp()
91
MG Mud User88f12472016-06-24 23:31:02 +020092Last modified: Sun Nov 28 03:00:00 1999 by Tiamak