number controled object

游戏中游数量限制的物件,应继承 inherit F_CONTROL;
此限制只能针对物品，npc、room 不可作此类限制，也不
可继承 F_CONTROL ，此类设计只为游戏中非常稀少、难得、
珍贵物品，如高级兵器、铠甲或有特殊功能的物品等，避免
这类物品的拿法广为人知后无限制的在游戏中泛滥。此类物
品可以在 create 函数内设定 'valid_number' 标记来限制
此物品在游戏中最多可拥有的数量，
（如：
	set("valid_number",3);
代表游戏中最多可拥有3个此物件的副本。
）
当物件没有设定这个标记默认为 1，即游戏中只能有一个此
物件的副本。

当此类物品来源于 npc 身上并需要装备(wield)或穿戴(wear)时，
（如兵器、铠甲），此 npc 的 carry_object() 部分的写法有
所不同，因为当此 npc 被杀死东西被抢走后，此 npc 再被复制
由于游戏中已有了此物品致使 carry_object() 会返回 0，
这是如按照一般的写法 carry_object(file)->wield() 就会出现
错误。应按如下写法：

void create()
{
	object ob;

	......
	......
	......

	ob = carry_object(file);
	if(objectp(ob))
		ob->wield();
}

有一个例子： /wiz/find/stupid.c    &   /wiz/find/windspring.c

当此类数量受控制的物件来源于 add_action 时，写法要特别注意，
可以参考 /std/char/npc.c 里的 carry_object(string file) 函数。


by Find.