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