□ 动作(action)

    这里所谓的「动作」(action)，是指生物战斗时的行为的最小单位，可以是挥出
一拳、踢出一脚、用剑一刺、射出一支飞镖、丢出一个火球、甚至是□试一次逃跑等
等，只要是逻辑上属於「同一时间」所作的行为，都可以归类於一个动作。

    我们假设所有的动作都是在战斗状态下的行为，因为非战斗状态下的动作直接做
出来就可以了，不需要花心思用以下将提到的格式描述它。反过来说，把战斗状态下
的行为统一用「动作」来描述的理由很简单，我们不希望一个人可以藉由任何巫师意
料之外的技巧在敌人挥出一剑的同时，丢出十个火球、捡起地上的三十瓶药剂、等等
情形发生，另一方面，也提供巫师们在设计怪物、武器、物品等物件时，可以用比较
轻松的方式定义出一些变化较大的表现方式。

    在程式中，我们用一个 mapping 来表示一个动作，值得一提的是，由於mapping
这种结构在 LPC 中是以位址传递(call by address)，因此为了安全起见，我们规定
所有处理动作的程式「绝不」修改其他物件所提供的动作 mapping 的内容 ，这个原
则是预防一些未来可能发生的错误出现。

    在定义一个动作的 mapping 中，可能有以下的栏位，其中前面有 * 号的表示这
个栏位是可有可无的：

action

    执行这个动作所出现的讯息，格式是和 message_vision 这个 simul efun 要求
    的相同，例如 "$N对准$n的%s挥出一拳" ，其中的 %s 会用这个动作所攻击的部
    位名称代替。

*dodge_action
        
    当被用来躲避敌人攻击时，执行这个动作所出现的讯息，格式是和 message_vision
    这个 simul efun 要求的相同，例如 "$N对准$n的%s挥出一拳" ，其中的 %s 会
    用这个动作所攻击的部位名称代替。
    
*post_action

    这是一个 function type 的栏位，如果这个栏位被定义，combatd 会在 action
    讯息印出之後呼叫这个 function，有不少战斗中的特殊效果都是利用这个方式
    完成，如投射武器的消耗、某些战斗用的魔法等。

*damage

    执行这个动作的伤害力修正，单位是百分比，□围是大於 -100。
    default: 0

*damage_type

    攻击命中时所造成的伤害种类，如"割伤"、"瘀伤"、"灼伤"等等，详细的伤害种
    类请参考其他文件。
    default: "伤害"

*dodge

    这个动作对敌人躲避此一攻击的修正百分率。
    以下假定敌人躲避此一攻击的几率为 40%，
    +30		增加敌人躲避几率 30%，修正后几率为 .4 * (1 + 0.3) = .52 = 52%
    -30		减少敌人躲避几率 30%，修正后几率为 .4 * (1 - 0.3) = .28 = 28% 
    default: 0

*parry

    这个动作对敌人招架此一攻击的修正百分率。
    以下假定敌人招架此一攻击的几率为 60%，
    +20		增加敌人躲避几率 20%，修正后几率为 .6 * (1 + 0.2) = .72 = 72%
    -20		减少敌人躲避几率 20%，修正后几率为 .6 * (1 - 0.2) = .48 = 48% 
    default: 0

*dodge_power
	
    这个动作对自己躲避敌人攻击的修正百分率。
    以下假定自己躲避敌人攻击的几率为 50%，
    +20		增加躲避几率 20%，修正后几率为 .5 * (1 + 0.2) = .60 = 60%
    -20		减少躲避几率 20%，修正后几率为 .5 * (1 - 0.2) = .40 = 40% 
    default: 0
    

*force

    执行这个动作的 force skill 伤害力修正，单位是百分比，□围是大於 0。
    default: 0
    

        
Annihilator@ES2 (01/17/95)
tool@xyj (04/10/97)
