blob: 1c2666c4195a94f85897e632b510a96d0a35ddbd [file] [log] [blame]
Bugfixb1d9b4d2021-09-14 20:07:04 +02001ReceiveMultisense()
2===================
3
4FUNKTION
5--------
6
Zesstra77b32572022-09-21 23:27:23 +02007 public void ReceiveMultisense(struct wave_s* msgs, string action = 0, int commontypes = 0)
8
Bugfixb1d9b4d2021-09-14 20:07:04 +02009DEFINIERT IN
10------------
11
12 /std/living/comm.c
13 /std/room/comm.c
Bugfixb1d9b4d2021-09-14 20:07:04 +020014
15ARGUMENTE
16---------
17
Zesstra77b32572022-09-21 23:27:23 +020018 struct wave_s* msgs
19 Die auszugebenden Nachrichten mit Zusatzinformationen. (s.u.)
Bugfixb1d9b4d2021-09-14 20:07:04 +020020 string action
Zesstra77b32572022-09-21 23:27:23 +020021 action wird als <action> an ReceiveMsg() weitergegeben.
Bugfixb1d9b4d2021-09-14 20:07:04 +020022 int commontypes
Zesstra77b32572022-09-21 23:27:23 +020023 Muss einen oder mehrere veroderte messagetypes aus
Bugfixb1d9b4d2021-09-14 20:07:04 +020024 :doc:`ReceiveMsg` enthalten. Diese werden bei jedem Aufruf von
Zesstra77b32572022-09-21 23:27:23 +020025 :doc:`ReceiveMsg` mit dem jeweiligen Messagetyp aus <msgs> verodert.
Bugfixb1d9b4d2021-09-14 20:07:04 +020026
27BESCHREIBUNG
28------------
29
Zesstra77b32572022-09-21 23:27:23 +020030 Versucht, eine der in <msgs> angegebenen Nachrichten an den Empfaenger zuzustellen.
Bugfixb1d9b4d2021-09-14 20:07:04 +020031
Zesstra77b32572022-09-21 23:27:23 +020032 Das Array <msgs> wird der Reihe nach abgearbeitet, bis eine Nachricht zugestellt werden konnte, das Ende von <msgs> erreicht wurde oder eine Nachricht *aus anderen Gruenden* als einem blockierten Sinn abgelehnt wurde. Der Grund fuer letzteres ist, dass andere Fehler von ReceiveMsg() (fast) immer auch bei allen (weiteren) Alternativen auftreten werden.
33
34 <msgs> ist ein Array von struct wave_s. Diese ist in /secure/simul_efun/comm.c definiert (und steht allen Programmen automatisch zur Verfuegung). Sie hat die Eintraege string msg, int type, string prefix.
35 wave_s.msg wird vor der Ausgabe von :doc:`../sefun/replace_personal` verarbeitet. Als erstes Objekt wird das aufrufende Objekt uebergeben, als zweites this_player(), sofern vorhanden. wave_s.msg wird automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden dabei beibehalten. Fuer wave_s.prefix findet keine Ersetzung statt.
Bugfixb1d9b4d2021-09-14 20:07:04 +020036
37RUECKGABEWERT
38-------------
39
Zesstra77b32572022-09-21 23:27:23 +020040in Lebewesen
41^^^^^^^^^^^^
42 Der Rueckgabe ist der Rueckgabewert von ReceiveMsg() fuer die zuletzt versuchte Meldung.
Bugfixb1d9b4d2021-09-14 20:07:04 +020043
Zesstra77b32572022-09-21 23:27:23 +020044 Wenn dies einen Erfolg (MSG_DELIVERED, MSG_BUFFERED) darstellt, wurde irgendeine Meldung erfolgreich zugestellt.
45 Falls es MSG_SENSE_BLOCK ist, sind alle versuchten Sinne blockiert und keine Nachricht wurde zugestellt.
46 Ist es ein anderer Fehler ist, wurde keine Nachricht zugestellt (und ggf. nicht alle versucht).
Bugfixb1d9b4d2021-09-14 20:07:04 +020047
Zesstra77b32572022-09-21 23:27:23 +020048in Containern/Raeumen
49^^^^^^^^^^^^^^^^^^^^^
50
51 Die Funktion hat keinen Rueckgabewert. Der Grund hierfuer ist, dass dieser ein ggf. tief verschachteltes Mapping waere, was keiner mehr prueft.
Bugfixb1d9b4d2021-09-14 20:07:04 +020052
53BEISPIEL
54--------
55
56 .. code-block:: pike
57
Bugfixb1d9b4d2021-09-14 20:07:04 +020058 this_player().ReceiveMultisense(
59 ({
Zesstra77b32572022-09-21 23:27:23 +020060 (<wave_s>
Bugfixb1d9b4d2021-09-14 20:07:04 +020061 msg: "Ein Drache landet neben Dir.",
62 type: MT_LOOK),
Zesstra77b32572022-09-21 23:27:23 +020063 (<wave_s>
64 message: "Du hoerst ein Rumpeln, als waere gerade etwas Grosses "
Bugfixb1d9b4d2021-09-14 20:07:04 +020065 "neben Dir eingeschlagen.",
66 type: MT_LISTEN),
Zesstra77b32572022-09-21 23:27:23 +020067 (<wave_s>
Bugfixb1d9b4d2021-09-14 20:07:04 +020068 msg: "Du spuerst einen heftigen Luftzug.",
69 type: MT_FEEL)})
70 MA_MOVE_IN);
Zesstra77b32572022-09-21 23:27:23 +020071
Bugfixb1d9b4d2021-09-14 20:07:04 +020072SIEHE AUCH
73----------
74
75 :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`
76
Zesstra77b32572022-09-21 23:27:23 +020077Letzte Aenderung: 21.09.2022, Zesstra