| ReceiveSay() |
| ============ |
| |
| FUNKTION |
| -------- |
| |
| public int* ReceiveSay(string msg, string prefix = 0, |
| struct msg_s sense_blocked = |
| ({(<msg_s> |
| msg: "@WER1 bewegt die Lippen, Du hoerst jedoch nichts.", |
| type: MT_LOOK)})) |
| |
| DEFINIERT IN |
| ------------ |
| |
| /std/living/comm.c |
| /std/room/comm.c |
| /sys/living/comm.h |
| |
| ARGUMENTE |
| --------- |
| |
| string msg |
| Die auszugebende Meldung. Sie 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. |
| string prefix |
| prefix wird als prefix an :doc:`ReceiveMsg` weitergegeben. Eine |
| Ersetzung mittels :doc:`replace_personal` findet nicht statt. |
| Wird kein Wert uebergeben, wird |
| previous_object().Name(WER, 1) + " sagt: " verwendet. Hierzu muss Name() |
| am aufrufenden Objekt definiert sein und etwas sinnvolles zurueckgeben. |
| struct msg_s sense_blocked |
| Ersatzmeldungen fuer taube Spieler. enthaelt Structs vom Typ msg_s. |
| Dieser ist in /std/living/comm_structs.c definiert und enthaelt die |
| Eintraege string msg, int type, string prefix. |
| Das Array wird von vorne nach hinten |
| abgearbeitet, bis eine Nachricht zugestellt werden konnte oder das Ende |
| erreicht ist. Auch hier findet fuer msg eine Ersetzung mittels |
| :doc:`../sefun/replace_personal` statt, fuer prefix nicht. |
| |
| BESCHREIBUNG |
| ------------ |
| |
| Sendet msg per :doc:`ReceiveMsg` mit den ueblichen Argumenten von |
| "sage" an den Empfaenger. D.h.: MT_LISTEN, MA_SAY, Name(WER, 1) + " sagt: ". Hierzu |
| muss das aufrufende Objekt :doc:`name` definiert haben und dort |
| etwas sinnvolles zurueckgeben. Falls ein anderer prefix gewaehlt wurde, |
| wird dieser statt Name(WER, 1) " sagt: " verwendet. |
| |
| RUECKGABEWERT |
| ------------- |
| |
| Ein Integer-Array mit folgenden Werten: |
| |
| 0 |
| Der Rueckgabewert von :doc:`../lfun/ReceiveMsg`. |
| 1 |
| Information, welche Meldung zugestellt wurde. -1 steht fuer msg, ein wert |
| >= 0 fuer die jeweilige Position in sense_blocked. |
| |
| Raeume definieren standardmaessig ebenfalls ein ReceiveSay(), welches in |
| jedem Objekt im Raum ReceiveSay() mit den uebergebenen Argumenten aufruft. |
| In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen |
| ReceiveSay() zurueckgelieferte Wert. |
| |
| BEISPIEL |
| -------- |
| |
| .. code-block:: pike |
| |
| SetProp(P_NAME, "Questgeber"); |
| SetProp(P_GENDER, MALE); |
| this_player().ReceiveSay( |
| "Das hast Du prima gemacht, @WER2!", |
| Name(WER, 1) + " lobt Dich: ", |
| ({ |
| (<message_> |
| msg: "@WER1 nickt Dir laechelnd zu.", |
| type: MT_LOOK), |
| (<msg_s> |
| msg: "Jemand klopft Dir lobend auf die Schulter.", |
| type: MT_FEEL)})); |
| |
| SIEHE AUCH |
| ---------- |
| |
| :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`, :doc:`name` |
| |
| Letzte Aenderung: 07.10.2021, Bugfix |