网络游戏《天下》 管理员手册

MudOS v21c2



	shadow()

	说明:
		shadow 直接翻译过来的意思为“影子”、“投影”,
		但是这个函数的功能很难用这个意思解释明白,因此
		改用“阻隔”这个词来描述更接近此函数的功能。

	名称:
		shadow() - 设定自己的阻隔物件。
	语法:
		int shadow( object ob );

		整数 shadow( 物件 ob );
	用法:

		将物件 ob 设定为 this_object() 的阻隔物件。

		传回值为 1,则阻隔设定成功,0 设定失败。

		valid_shadow() 函数由 MASTER_OB 物件定义。如果
		valid_shadow() 传回 1, 则阻隔被允许, 否则阻隔设
		定失败。

		如果物件 b 是物件 a 的阻隔物件,物件 a 叫做
		物件 b 的原物件。所有对原物件 a 的 call_other(func)
		函数呼叫,都会被都会被重定向到首先尝试呼叫物件
		b 中的函数 func,如果物件 b 中不存在名为 func的
		函数,才会再尝试呼叫物件 a 中的名为 func 的函数。

		只有阻隔物件才能用 call_other(func) 直接呼叫原物
		件的函数。原物件无法以 call_other() 直接呼叫自己
		中的函数,原物件中的内部函数呼叫都会被限定在物件
		内部本身。

		摧毁原物件,其阻隔物件会自动被摧毁。阻隔物件可以
		单独摧毁,这时原物件就相当于没有设定过阻隔物件。

		利用这个函数,可以在不增加一个物件代码的情况下,
		扩展一些其他的功能。尤其可以在运行过程中,灵活的
		增加、去除一些特殊的功能。

		不过,非要利用“阻隔”其他方法无法替代的情况是很
		少的。

	说明:
		由于原 MudOS 的 shadow 部分有些不合理,使用不
		方便,而且存在安全隐患,因此这部分的程序重新写
		过,shadow 部分的函数的使用和原 MudOS 提供的函
		数有很大的不同,如要在其它 MudOS 支持的游戏中
		使用 shadow 请参考它的 MudOS 的说明。

	相关函数:

		query_shadowed(), query_shadowing()

	by 发现号(Find@tx)