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)

DESCRIPTION
        There are two major modes of calling:

        If the first argument is a string , it will be send to
        all livings in the current room except to the initiator.

        If the first argument is an array/mapping/struct/object , the
        lfun catch_msg() of all living objects except the initiator will be
        called.
        This  will be given as first argument to the lfun, and
        the initiating object as the second.
        CAVEAT: If the lfun catch_msg() modifies the content of , all
        subsequent objects will receive the modified .

        By specifying a second argument to the efun one can exclude
        more objects than just the initiator. If the second argument
        is a single object , both the given object and the
        initiator are excluded from the call. If the second argument
        is an array , all objects and just the objects in
        this array are excluded from the call.

        The 'initiator' is determined according to these rules:
          - if the say() is called from within a living object, this
            becomes the initiator
          - if the say() is called from within a dead object as result
            of a user action (i.e. this_player() is valid), this_player()
            becomes the initiator.
          - Else the object calling the say() becomes the initiator.

EXAMPLES
        say("Hi!\n");
        say("Hi!\n", this_player());
        Both calls are equal when called by a not living object.

        Object 1 (living):
           void catch_tell(string str) {
              write("Received: "+str+"\n");
           }
        Object 2 (not living):
           void func() {
              ...
              say("HiHo!\n");
              ...
           }

        This examples shows how say() together with catch_tell()
        works. The 2nd object must not be living so the write() will
        go to the current user.


        Object 1 (living):
           void catch_msg(mixed *arr, object who) {
              int i;
              if(!arr) return;
              for(i=0; i        write(E), tell_object(E), tell_room(E)


zurück zur Übersicht

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