Bugfix | b1d9b4d | 2021-09-14 20:07:04 +0200 | [diff] [blame] | 1 | ReceiveMultisense() |
| 2 | =================== |
| 3 | |
| 4 | FUNKTION |
| 5 | -------- |
| 6 | |
| 7 | public int* ReceiveMultisense(struct msg_s* msgs, |
| 8 | string action = 0, int commontypes = 0) |
| 9 | |
| 10 | DEFINIERT IN |
| 11 | ------------ |
| 12 | |
| 13 | /std/living/comm.c |
| 14 | /std/room/comm.c |
| 15 | /sys/living/comm.h |
| 16 | |
| 17 | ARGUMENTE |
| 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 | |
| 29 | BESCHREIBUNG |
| 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 | |
| 45 | RUECKGABEWERT |
| 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 | |
| 61 | BEISPIEL |
| 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 | |
| 81 | SIEHE AUCH |
| 82 | ---------- |
| 83 | |
| 84 | :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal` |
| 85 | |
| 86 | Letzte Aenderung: 07.10.2021, Bugfix |