blob: cafa5bc96d20d5b49484aaa25169154d08406d1d [file] [log] [blame]
Bugfixb1d9b4d2021-09-14 20:07:04 +02001ReceiveMultisense()
2===================
3
4FUNKTION
5--------
6
7 public int* ReceiveMultisense(struct msg_s* msgs,
8 string action = 0, int commontypes = 0)
9
10DEFINIERT IN
11------------
12
13 /std/living/comm.c
14 /std/room/comm.c
15 /sys/living/comm.h
16
17ARGUMENTE
18---------
19
20 struct msg_s* msgs
21 Die Auszugebenden Nachrichten mit Zusatzinformationen. (S.u.)
22 string action
23 action wird als action an ReceiveMsg() weitergegeben.
24 int commontypes
25 Muss einen oder mehrere Veroderte messagetypes aus
26 :doc:`ReceiveMsg` enthalten. Diese werden bei jedem Aufruf von
27 :doc:`ReceiveMsg` mit dem jeweiligen Messagetyp aus msgs verodert.
28
29BESCHREIBUNG
30------------
31
32 sendet die in msgs angegebenen Nachrichten an den Empfaenger, bis eine
33 zugestellt werden konnte oder das ende von msgs erreicht wurde.
34
35 msgs ist aufgebaut wie folt:
36 Der struct msg_s ist in /std/living/comm_structs.c definiert. Er hat
37 die Eintraege string msg, int type, string prefix.
38 Das Array wird abgearbeitet, bis eine Nachricht zugestellt werden konnte
39 oder das Ende erreicht ist. msg wird vor der Ausgabe an
40 :doc:`../sefun/replace_personal` uebergeben, als erstes Objekt wird das aufrufende
41 Objekt uebergeben, als zweites this_player(), sofern vorhanden. msg wird
42 automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden
43 dabei beibehalten. Fuer prefix findet keine Ersetzung statt.
44
45RUECKGABEWERT
46-------------
47
48 Ein Integer-Array mit folgenden Werten:
49
50 0
51 Der Rueckgabewert von :doc:`../lfun/ReceiveMsg`.
52 1
53 Information, welche Meldung zugestellt wurde. -1 steht fuer keine
54 Meldung, ein wert >= 0 fuer die jeweilige Position in msgs.
55
56 Raeume definieren standardmaessig ebenfalls ein ReceiveMultisense(), welches in
57 jedem Objekt im Raum ReceiveMultisense() mit den uebergebenen Argumenten aufruft.
58 In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen
59 ReceiveMultisense() zurueckgelieferte Wert.
60
61BEISPIEL
62--------
63
64 .. code-block:: pike
65
66 inherit "/std/living/comm_structs";
67 this_player().ReceiveMultisense(
68 ({
69 (<msg_s>
70 msg: "Ein Drache landet neben Dir.",
71 type: MT_LOOK),
72 (<msg_s>
73 message: "Du hoerst ein rumpeln, als waere gerade etwas grosses "
74 "neben Dir eingeschlagen.",
75 type: MT_LISTEN),
76 (<msg_s>
77 msg: "Du spuerst einen heftigen Luftzug.",
78 type: MT_FEEL)})
79 MA_MOVE_IN);
80
81SIEHE AUCH
82----------
83
84 :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`
85
86Letzte Aenderung: 07.10.2021, Bugfix