| 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 |