Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//efun/say

SYNOPSIS
        void say(string str)
        void say(string str, object exclude)
        void say(string str, object *excludes)

        void say(mixed *|mapping|struct|object|lwobject msg)
        void say(mixed *|mapping|struct|object|lwobject msg, object exclude)
        void say(mixed *|mapping|struct|object|lwobject msg, object *excludes)

BESCHREIBUNG
        Es bestehen zwei Hauptanwendungen fuer say():

        Wenn das erste Argument ein String  ist, wird er an alle
        lebendigen Objekte im aktuellen Raum gesendet, ausser zum Objekt,
        das die Funktion aufgerufen hat.

        Wenn das erste Argument ein nicht-String  ist, wird die Lfun
        catch_msg() in allen lebendigen Objekt im Raum aufgerufen, ausser im
        Objekt, das say() aufgerufen hat. Der Wert  wird als erstes
        Argument an catch_msg() uebergeben, das aufrufende Objekt als zweites
        Argument.

        MERKE: Wenn die Lfun catch_msg() den Wert  veraendert, erhalten
        alle nachfolgenden Objekte das veraenderte .

        Wird der Efun say() ein zweites Argument angegeben, kann man andere
        Objekte als nur das aufrufende Objekt ausschliessen. Wenn das zweite
        Argument ein einzelnes Objekt  ist, werden das aufrufende
        Objekt und  von der Meldung ausgeschlossen. Wenn das zweite
        Argument ein Array  ist, werden alle Objekte aus dieser
        Liste zusaetzlich zum aufrufenden Objekt als Empfaenger von say()
        ausgeschlossen.

        Das aufrufende Objekt wird nach folgenden Regeln bestimmt:
          - Wenn say() aus einem lebendigen Objekt aufgerufen wird, gilt
            dieses als das aufrufende Objekt.
          - Wenn say() aus einem nicht-lebendigen Objekt als Resultat einer
            Handlung eines Benutzers aufgerufen wird (das heisst,
            this_player() ist gueltig), gilt this_player() als aufrufendes
            Objekt.
          - In allen anderen Faellen gilt das Objekt, das say() aufgerufen
            hat, als aufrufendes Objekt.

BEISPIELE
        Folgende Aufrufe sind gleich, wenn sie aus einem nicht lebendigen
        Objekt aufgerufen werden:

            say("Hi!\n");
            say("Hi!\n", this_player());

        Das folgende Beispiel zeigt, wie say() zusammen mit catch_tell()
        funktioniert. Das zweite Objekt darf nicht lebendig sein, sodass
        write() an den aktuellen Benutzer geht.

        Objekt 1 (living):
            void catch_tell(string str)
            {
                write("Empfangen: "+str+"\n");
            }

        Objekt 2 (nicht living):
            void func()
            {
                ...
                say("HiHo!\n");
                ...
            }

        Ein etwas komplexeres Beispiel zeigt das Zusammenspiel von say()
        und catch_msg(). Auch hier wird ein nicht-lebendiges Objekt
        verwendet, das die Nachricht ausgibt, sodass das 'wer' in
        catch_msg() auf den aktuellen Benutzer zeigt.

        Object 1 (living):
            void catch_msg(mixed *arr, object who) {
                int i;
                if (!arr) return;
                for (i=0;i veraendert, erhalten alle
        nachfolgenden Objekte das veraenderte .

GESCHICHTE
        LDMud 3.3.686 erlaubt die Verwendung eines mapping/struct/object als
        zweites Argument.

SIEHE AUCH
        write(E), tell_object(E), tell_room(E)


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.