blob: f6a82ab4a1c6a314858d823c029c3c8e970f6a62 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001send_room()
2===========
3
4FUNKTION
5--------
Zesstra18626972017-01-31 10:38:27 +01006
Deaddyecef4d92018-01-27 00:21:45 +01007 varargs void send_room(object|string room, string msg, int msg_type,
Zesstra57d22b22018-02-02 18:18:21 +01008 string msg_action, string msg_prefix, object \*exclude,
Deaddyecef4d92018-01-27 00:21:45 +01009 object origin)
Zesstra18626972017-01-31 10:38:27 +010010
11BESCHREIBUNG
12------------
Zesstra18626972017-01-31 10:38:27 +010013
Deaddyecef4d92018-01-27 00:21:45 +010014 Sendet msg an alle Objekte in room durch Aufruf von ReceiveMsg() mit
15 den uebergebenen Argumenten.
16 Zur Bedeutung der Argumente siehe Manpage von ReceiveMsg().
Zesstra18626972017-01-31 10:38:27 +010017
Deaddyecef4d92018-01-27 00:21:45 +010018 Wenn das Raumobjekt mit seinem Namen angegeben ist, wird das Objekt
19 unter diesem Namen gesucht und und geladen, falls notwendig.
Zesstra18626972017-01-31 10:38:27 +010020
Deaddyecef4d92018-01-27 00:21:45 +010021 Mit dem Array exclude kann man verhindern, dass die Nachricht an
22 die darin enthaltenen Objekte gesendet wird.
23 Das ist sinnvoll, wenn beispielsweise ein Spieler Ausloeser einer Meldung
24 ist und diese selbst nicht erhalten soll.
Zesstra18626972017-01-31 10:38:27 +010025
Deaddyecef4d92018-01-27 00:21:45 +010026 origin gibt an, welches Objekt die Meldung ausloest (muss nicht das
27 sendende Objekt selber) und wird vor allem fuer die Ignorierepruefung
28 verwendet. Default ist das sendende Objekt.
Zesstra18626972017-01-31 10:38:27 +010029
Deaddyecef4d92018-01-27 00:21:45 +010030 Letztendlich ist die sefun vergleichbar zu `tell_room()`.
31
32BEISPIEL
33--------
34
35 Oft moechte man einfach nur, dass an den Spieler, der eine Aktion
36 oder aehnliches ausloest, eine andere Meldung gegeben wird, als an
37 andere im Raum befindliche Spieler. Folgenden Code koente man dann
38 verwenden:
39
40 .. code-block:: pike
41
42 /* Zuerst senden wir eine Nachricht nur an den Spieler.
43 * Ziel: der Spieler riecht etwas und schuettelt sich fuer alle im
44 * Raum sichtbar darauf.
45 */
46 this_player()->ReceiveMsg("Buah stinkt das. Du schuettelst Dich.\n",
47 MT_NOTIFICATION|MT_SMELL, MA_SMELL);
48 send_room(environment(this_player()),
49 // der Raum in dem der Spieler ist
50 this_player()->Name(WER) + " schuettelt sich. Wieso nur?\n",
51 // die eigentliche Nachricht
52 MT_LOOK, // man sieht das schuetteln
53 MA_UNKNOWN, // MA_SMELL moeglich; im Zweifel immer MA_UNKNOWN
54 "", // wir wollen kein Praefix vor der Ausgabe haben
55 ({this_player()}));
56 // Array nur mit dem Spieler, der das nicht noch
57 // mitbekommen soll.
58
59 Fuer weitere Optionen fuer `msg_type` und `msg_action` siehe die manpage
60 zu ReceiveMsg. Natuerlich haben `this_player` und `environment` auch
61 manpages.
62
63
Zesstra18626972017-01-31 10:38:27 +010064
65SIEHE AUCH
66----------
Zesstra18626972017-01-31 10:38:27 +010067
Deaddyecef4d92018-01-27 00:21:45 +010068 :doc:`../lfun/ReceiveMsg`
69 tell_object(E), tell_room(E), say(E), write(E)
Zesstra18626972017-01-31 10:38:27 +010070
Deaddyecef4d92018-01-27 00:21:45 +01007131.01.2018, Deaddy
Zesstra18626972017-01-31 10:38:27 +010072