void catch_msg(mixed *|struct|mapping|object msg, object obj)
When say(), tell_room() or tell_object() are used with a
non-string as message, the value will be passed to catch_msg()
in all living objects that can hear it, instead of writing to
the user resp. sending to catch_tell(). This can be used to
implement communication protocols between livings. The second
argument denotes the object that has sent the message.
LDMud 3.2.11 added tell_object() to the efuns calling this
lfun for symmetry reasons.
LDMud 3.3.686 added the use of a mapping/struct/object as message
say(E), tell_room(E), catch_tell(A)