□ 人物症状

所谓的症状(condition)就是一个人物因为受伤、中毒、或法术影响所产生的
各种症状，在 ES2 mudlib 里面定义成「需要每次 recover 时变化的症状」
，换句话说，人物症状是一种相当耗费系统 CPU 时间的物件，而且一发生错
误就可能导致 lost heart beat。

将一个症状加到一个人物身上十分简单，人物物件继承的 F_CONDITION 中定
义了一个界面函数 apply_condition() 让你将一个症状加诸於该名人物身上
，这个函数第一个参数是定义这个症状的物件档名，第二个参数则是一个
mixed 型态的任意参数，用来描述这名人物此一症状的资讯。

apply_condition 之所以用这种和 function 比较起来较慢的格式来定义一个
症状，主要是为了让人物的症状状态能被 save_object() 储存下来，因此当
你设计新的症状时，请注意描述这个人物症状的参数中不要使用 object 型态
的栏位，以免在 save 及 restore 之後失去这个栏位的内容。

定义症状的物件十分简单，F_CONDITION 在每次人物 recover 时间到，呼叫
heal_up() 之前，会对人物所有的症状之定义物件呼叫 update_condition()
这个自定函数，呼叫传入两个参数，第一个是 object 型态，也就是带有这个
症状的人物，第二个则是用来记录这名人物该症状资讯的 mixed 型态参数，
你在症状定义物件中宣告第二个参数的时候可以任意指定它的型态，F_CONDITION
并不会对这个变数做任何处理。

update_condition() 的传回值是一个表示多个 flag 的整数，这些 flag 都定
义在 <condition.h> 中，如果传回值为 0，这个症状会在 return 之後被从这
名人物身上移除(这样设计可以让错误的症状定义物件档名在一次呼叫之後立刻
被移除)。

CND_CONTINUE    若传回值的这个 flag 为 on，则下次 recover 时这个症状
                会再次被呼叫。

By Annihilator(10/03/95)
