名称：
	shadow() - 投影 (shadow) 一些物件的一个或多个函式。
语法：
	object shadow( object ob, int flag );

	物件 shadow( 物件 物件, 整数 旗标 );
用法：
	本函式仅在不定义 NO_SHADOWS 时生效。

	如果 flag 是 1 或是不指定 flag，则目前的物件将会投影 ob。如果 flag
	是 0，则不是传回 0，就是传回早已投影 ob 的物件。 

	“valid_shadow()”函式由主宰物件定义。如果 valid_shadow() 传回 0，
	就无法投影该物件，而 shadow() 函式此时会传回 0 而不是 ob。
		
	如果物件 a 投影物件 b，则所有对 b 的“call_other(func)”将会重新导
	向 (redirect) 到 a。如果物件 a 没有定义 func 函式，则
	call_other(func) 会向 b 呼叫 func〈等于是 a 没有投影 b〉。只有 a
	可以用 call_other() 呼叫 b 的函式。b 无法以 call_other() 呼叫自己
	。所有 b 里头正常的〈内部〉函式呼叫仅限于 b 自己本身呼叫。

	有两个方法可以取消投影。摧毁投影的物件，或是摧毁被投影的物件。后者
	的情形下，投影它的物件会自动销毁。而定义 PACKAGE_CONTRIB 就可以使
	用 remove_shadow() 函式取消投影。

	利用投影，可以使一个物件遮盖另一个物件，而运作时又像是没有遮盖住。
	shadow() 可以在不更动原来的物件程式码，而改变一个物件的行为。举例
	来说，shadow() 可以为玩家增加一些职业上的特殊能力，像是贼、战士、
	魔法师等等的特殊能力。这样一来，可以撰写各种职业的程式码，而让玩家
	的物件不会变得太复杂。
参考：
	destruct, query_shadowing, valid_shadow
作者：
	Tim Hollebeek  Beek@ZorkMUD, Lima Bean, IdeaExchange, and elsewhere
翻译：
	spock@muds.net		2000.May.27.	v22 版
