catch_tell()

SYNOPSIS:
	void catch_tell(string)

DESCRIPTION:
	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.

SEE ALSO:
	enable_commands(E), say(E), tell_object(E), tell_room(E),
	write(E), catch_msg(L) 
