blob: cafa5bc96d20d5b49484aaa25169154d08406d1d [file] [log] [blame]
ReceiveMultisense()
===================
FUNKTION
--------
public int* ReceiveMultisense(struct msg_s* msgs,
string action = 0, int commontypes = 0)
DEFINIERT IN
------------
/std/living/comm.c
/std/room/comm.c
/sys/living/comm.h
ARGUMENTE
---------
struct msg_s* msgs
Die Auszugebenden Nachrichten mit Zusatzinformationen. (S.u.)
string action
action wird als action an ReceiveMsg() weitergegeben.
int commontypes
Muss einen oder mehrere Veroderte messagetypes aus
:doc:`ReceiveMsg` enthalten. Diese werden bei jedem Aufruf von
:doc:`ReceiveMsg` mit dem jeweiligen Messagetyp aus msgs verodert.
BESCHREIBUNG
------------
sendet die in msgs angegebenen Nachrichten an den Empfaenger, bis eine
zugestellt werden konnte oder das ende von msgs erreicht wurde.
msgs ist aufgebaut wie folt:
Der struct msg_s ist in /std/living/comm_structs.c definiert. Er hat
die Eintraege string msg, int type, string prefix.
Das Array wird abgearbeitet, bis eine Nachricht zugestellt werden konnte
oder das Ende erreicht ist. msg wird vor der Ausgabe an
:doc:`../sefun/replace_personal` uebergeben, als erstes Objekt wird das aufrufende
Objekt uebergeben, als zweites this_player(), sofern vorhanden. msg wird
automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden
dabei beibehalten. Fuer prefix findet keine Ersetzung statt.
RUECKGABEWERT
-------------
Ein Integer-Array mit folgenden Werten:
0
Der Rueckgabewert von :doc:`../lfun/ReceiveMsg`.
1
Information, welche Meldung zugestellt wurde. -1 steht fuer keine
Meldung, ein wert >= 0 fuer die jeweilige Position in msgs.
Raeume definieren standardmaessig ebenfalls ein ReceiveMultisense(), welches in
jedem Objekt im Raum ReceiveMultisense() mit den uebergebenen Argumenten aufruft.
In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen
ReceiveMultisense() zurueckgelieferte Wert.
BEISPIEL
--------
.. code-block:: pike
inherit "/std/living/comm_structs";
this_player().ReceiveMultisense(
({
(<msg_s>
msg: "Ein Drache landet neben Dir.",
type: MT_LOOK),
(<msg_s>
message: "Du hoerst ein rumpeln, als waere gerade etwas grosses "
"neben Dir eingeschlagen.",
type: MT_LISTEN),
(<msg_s>
msg: "Du spuerst einen heftigen Luftzug.",
type: MT_FEEL)})
MA_MOVE_IN);
SIEHE AUCH
----------
:doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`
Letzte Aenderung: 07.10.2021, Bugfix