concepts/
efun/
CONCEPT
	messages

DESCRIPTION
	Messages are a way to make communication between user objects
	and non player (monster) objects easier. A efun, send_msg, is
	used to 'broadcast' actions to other living objects in a room.
	The living objects can catch those broadcasts with its lfun
	catch_msg(), which is applied by the driver.

	The mechanismus is similar to the efun say() and the receiving
	lfun catch_tell() in the living object. But while say() can only
	be used to send simple strings, send_msg() can send any type
	of information. While send_msg can be used to talk to other
	livings in the room, it is not limited to that. The idea is to
	have several types of messages. These include saying something
	in the room, informing others that someone has picked up 
	something, has left the room, and more. This scheme should
	it make much easier for npcs to react to actions.

	The following principle is established to provide a standard
	way of using the message system. The message types are
	represented as integers, which have symbolic representations
	in <messsages.h>. There is a special message type,
	MSG_PRIVATE, which can be used for private messages which
	are only understood by some objects of a speific wizard or
	domain. The MSG_PRIVATE type code must be followed by a 
	unique string type (use your imagination to find something
	unique, preferred would be something like "<wizname>_<action>".

	The standard types require a special set of parameters for
	each standard type. The description of the parameters follow.

	MSG_SAY, object *from, varargs...
	  Used when object <from> says something in the room.
	
	MSG_ENTER, object *from
	  Used when object <from> enters the room.
	
	MSG_LEAVE, object *from, string direction
	  Used when object <from> leaves to <direction>.

	MSG_ATTACK, object *attacker, object *attacked
	  Used when object <attacker> makes an attack on <attacked>.
	
	MSG_PRIVATE, string unique_string, varargs...
	  Used for private messages. <unique_string> must be a string
	  unique within the system.
	  

SEE ALSO
	send_msg(E), catch_msg(A), say(E)