When a message is sent to a noninteractive player, via say(),
tell_object, tell_room(), printf() or write(), it will get to the
function catch_tell(string). This will enable communications between
NPCs and from a player to an NPC.
Also, if an interactive object is being shadowed and the
shadow has catch_tell() defined, it will receive all output
that would otherwise be written to the user.
If a message is sent by an interactive object, catch_tell() is
not called in that object, to prevent recursive calls. Thus
catch_tell() in interactive objects can be used to filter the
output that goes to the users.
The efun shout() sends to interactive objects only.