blob: 5afd6d80a34f3c76accfa0e31c977dda22023a30 [file] [log] [blame]
ReceiveWave()
=============
FUNKTION
--------
public int ReceiveDynWave(struct wave_s wave, string msg_action = comm_guess_action(), object origin = previous_object());
DEFINIERT IN
------------
/std/living/comm.c
ARGUMENTE
---------
struct wave_s* wave
Die auszugebende Nachrichten mit Zusatzinformationen. (s.u.)
string action
action wird als <action> an ReceiveMsg() weitergegeben
object origin
Absenderobjekt der Nachricht (Default: previous_object())
BESCHREIBUNG
------------
Sendet die in <wave> angegebene Nachricht an den Empfaenger.
Im Unterschied zu ReceiveWave() wird ein Variable namens cl in <wave> vorher ausgewertet und kann dynamisch eine neue/geaenderte <wave> liefern, welche dann ausgegeben wird.
Hierbei ist <wave> also eine von wave_s erbende struct, welche (mindestens) eine Variable <cl> vom Typ closure zusaetzlich besitzt.
RUECKGABEWERT
-------------
Der Rueckgabe ist der Rueckgabewert von ReceiveMsg().
BEISPIEL
--------
.. code-block:: pike
// von wave_s abgeleitete struct
struct dynwave_s (wave_s) {
closure cl;
}
struct dynwave_s wave = (<dynwave_s> msg: "Pass auf! Ein boeser, schwarzer Drache!",
type: MT_LISTEN, prefix: "Humni ruft: ");
wave.cl = function struct wave_s (struct wave_s wave)
{ wave.prefix = ({"Humni","Jof","Zook"})[random(3)] + " ruft: ";
return wave;
};
ReceiveWave(wave, MA_LISTEN);
SIEHE AUCH
----------
:doc:`ReceiveMsg`, :doc:`ReceiveWave`
Letzte Aenderung: 30.07.2025, Zesstra