SYNOPSIS void say(string str) void say(string str, object obj) void say(string str, object *objs) void say(mixed *arr) void say(mixed *arr, object obj) void say(mixed *arr, object *objs) DESCRIPTION There are two major modes of calling: If the first argument is a string and no second argument is given, str will be send to all livings in the current room except to the living object which called the say() function. If the second argument is an object the str also won't be sent to this on. If the second argument is an array of objects the message won't be sent to the objects in the array. If the receiving object(s) is not interactive, the lfun catch_tell() will be applied to the object, with str as argument. If the first argument is an array, the lfun catch_msg() of all living objects (except the one which invoked the say() function) will be called. This array will be given as first argument and the one who invoked say() as second argument to lfun catch_msg(). If the second argument to say() is an object or an array of objects then those objects will also be excluded from the call of catch_msg(). The message will be sent to the environment of the current user when the call of say() is the cause of a user action. Else the message will go to the environment of the calling object. For example when called from a heart_beat(), or via call_out. 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<sizeof(arr);i++) tell_object(who, (stringp(arr[i]) ? arr[i] : "-/-")+"\n"); } Object 2 (not living): void func() { ... say( ({ "Hello", "there!" }) ); ... } This is a bit complex example to demonstrate how say() and catch_msg() works. Here we also use a non living object to send the message so the who in catch_msg() will be the current user. SEE ALSO write(E), shout(E), tell_object(E), tell_room(E)