		< message - FF 訊息使用的函式列表 >

	上次修訂:	Spock @ FF	97.Feb.10.
	( 目前 message.c 仍在測試中, 由於原來 ES II mudlib 中並
	  無處理額外狀態的程式, 因此舊的 ES II 程式碼中可能還有
	  一些現在看來不太正常的訊息顯示, 請儘量回報此類情形.)

  FF 訊息的函式大致上與原來的 ES II mudlib  相容, 但是由於加入了
一些處理隱形訊息、睡眠不予收到訊息和載具內人物收到外界訊息, 使用
上要特別注意到函式是否有處理這些的功能.

  目前處理得比較完整的函式只有 message_vision() 和 
message_vision_exclude(), 因此請儘量使用此兩個函數處理一般的訊息.

函式定義檔案: /adm/simul_efun/message.c

varargs void tell_vehicle( string msg, object vehicle, object target )

	這個函式主要是被 message_vision() 呼叫, 用來處理送入載具
	內的外界訊息. 如果有特別的需要, 也可以用此函數處理要對載
	具內廣播的外界訊息. 所有由 tell_vehicle() 處理的訊息, 之
	前一定會加上: [載具名稱外]

	字串 msg 是欲送入物件 vehicle 的訊息.
	物件 vehicle 是被外界送入訊息的載具.
	物件 target  則是當 message_vision() 的第三個參數有指定時
	才有作用.

	tell_vehicle() 有處理載具隱形和睡眠的功能.

void tell_object( object ob, string str )

	這個函式如同原版的 ES II mudlib, 直接送訊息給一個物件.

	此函式沒有任何附加的功能.

varargs void tell_room( mixed ob, string str, object *exclude )

	這個函式可以視為告訴一個物件內的所有物件一段訊息.

	物件 ob 是被送入訊息的物件.
	字串 string 是欲送入的訊息內容.
	物件 *exclude 則是不收到訊息的物件陣列, 這個參數可以省略.

	此函式有處理睡眠及送入載具訊息的功能.

void shout( string str )

	原版的 ES II mudlib 函式, 對所有的使用者發出一段訊息.

void write( string str )

	也是原味的 ES II mudlib 函式, 送一段訊息給呼叫此函式的物件.

varargs void say( string str, mixed exclude )

	與 ES II mudlib 相同的函式, 送出一段訊息給呼叫此函式的物件
	身處環境中的所有物件. exclude 倒是不太嚴謹的定義, 當然也是
	不收到訊息的物件 (可以是單一物件, 或是物件陣列).

varargs void message_vision( string msg, object me, object you )

	送出一段訊息給物件 me 身處的環境, 收到訊息的物件也包含自己.
	這個函式的可以讓字串 msg 中有一些較方便的簡寫命令:

		$N 或 $P 代表發出訊息的物件名稱
		如果有給第三個參數 you, 則 $n 或 $p 代表接收訊息的
		物件 you 的名稱.

	以下是範例:

	先來一段最簡單的訊息:
		message_vision("哇哇哇 ! 天上掉鈔票下來啦 !\n", me );
	這樣與物件 me 同一個環境的物件都會看到:
		哇哇哇 ! 天上掉鈔票下來啦 !

	接下來是只有用到物件 me 名稱的用法:
		message_vision("$N 開始表演歌舞秀囉 !\n", me );
	物件 me 自己會看到:
		你開始表演歌舞秀囉 ! (人稱代名詞「你」視性別而定.)
	其他同一個環境的物件會看到:
		某甲開始表演歌舞秀囉 ! (某甲是物件 me 的名字)

	如果有指定第三個參數 you, 用法如下:
		message_vision("$N 往 $n 的方向扔了一隻貓.\n", me, you );
	物件 me 自己會看到:
		你往某乙的方向扔了一隻貓. (某乙是 you 的名字)
	物件 you 則看到:
		某甲往你的方向扔了一隻貓. (規則同前)
	其他在同一個環境的物件則看到:
		某甲往某乙的方向扔了一隻貓.

	message_vision() 可以讓一段訊息對不同物件有不同的輸出, 對於
	處理一般性的動作敘述非常好用.

	message_vision() 目前可以處理隱形、送入載具內、及睡眠的情形.

varargs void message_vision_exclude( string msg, object me, object *exclude )

	用法同 message_vision(), 但是沒有 you 的參數.
	物件 *exclude 則是不收到訊息的物件陣列, 這個參數可以省略.

  整理:	Spock @ FF	97.Feb.15.

  附註: 為了方便檢索, 以下簡略列出上述函式使用的場合:

	message_vision
		一般處理人物動作的訊息, 同一個房間或載具內的人均可
		看到, 但是會受到隱形和睡眠的影響.
		同一個環境的載具會收到所謂的外界訊息.

	message_vision_exclude
		同上, 但是用在同一環境中有人必須看不到此訊息的情況
		下, 通常看不到的就是自己. 如果不想讓動作訊息傳給自
		己, 就可以使用此函式.		

	tell_vehicle
		外界環境送給載具內的訊息, 會受隱形及睡眠的影響.

	tell_object
		只有指定的單一物件自己收得到的訊息, 別人無法收到.

	tell_room
		告訴房間或載具內所有人的訊息, 但是會受到睡眠影響.
		同一個環境的載具會收到所謂的外界訊息.

	shout
		告訴所有線上使用者的訊息.

	write
		對使用此函式的物件送出訊息, 通常是系統訊息.

	say
		一個人對同一個房間的所有人送出的訊息, 不受任何狀態
		影響, 只要同一房間或載具的人全部會收到, 但是同一個
		環境的載具裡的人無法收到.
