魔法抗性(Spell Resistance)简称魔抗,在属于魔兽争霸3的游戏中广泛使用,指的是某单位对敌人的法术攻击(Attack Type: Spell)的抵抗系数。
组成
第一部分
考虑法术攻击类型对该单位护甲类型的系数。
在标准的魔兽争霸对战中,在游戏平衡常数里,法术攻击对除了
神圣护甲类型和英雄护甲类型以外的各种护甲类型(轻甲、中甲、重甲、无甲、加强甲或称城甲)的系数都是1,对英雄护甲类型的系数是0.70,对神圣护甲类型的系数是0.05。举个例子,假设给出标定100点法术攻击魔法伤害(魔法伤害不计算护甲数值)作用到一个目标上,如果这个目标的护甲类型是英雄护甲,那么该目标实际减掉100*0.70=70点血量;如果这个目标的护甲类型是神圣护甲,那么该目标实际减掉100*0.05=5点血量;如果这个目标的护甲类型是其他的比如重甲,那么该目标实际减掉100*1=100点血量。从结果直观的看,英雄护甲类型和神圣护甲类型对法术攻击类型有一定的抵抗能力,这个抵抗能力就是魔抗,具体的说英雄护甲类型的单位有30%的魔抗,神圣护甲类型的单位有95%的魔抗。
当然,在魔兽争霸1.15版本之前,法术攻击类型对英雄护甲类型的系数是0.75,出于平衡性修正,暴雪的魔兽争霸1.15版本补丁更改了这个系数为0.70。1.15版本的changelog相关原文如下:“- Hero spell resistance increased to 30% reduction from 25% reduction.”也就是说英雄的魔法抗性从25%增加到30%,简单的说这个更改的效果就是在标准对战里同样的法术对敌人英雄单位的伤害变低了。
在DotA里面,因为其作者Icefrog对游戏平衡常数做了一些修改,和标准对战的并不相同。DotA版本的攻击类型对护甲类型的系数表格如下:
DotA攻击类型对护甲类型系数表(6.60版本以后)
从表中可以看出,法术攻击类型对英雄护甲类型的系数为0.75,所以正常英雄的魔抗为25%
第二部分
考虑该单位自身魔抗类技能。
在魔兽争霸标准对战中,有的单位自身技能能够对法术攻击类型产生抵抗,这个就是魔抗的第二个组成部分。这种技能包括1.17版本重做后的防御(Adef:Defend)和1.10版本加入的艾露尼的恩赐(Aegr:Elune's Grace )。虽然“防御”在地图编辑器里有可以被修改抵抗法术攻击的属性,但标准对战地图里这个系数设为1,也就是没有产生抵抗能力。艾露尼的恩赐的系数是0.8,换句话说拥有这个被动技能的暗夜弓箭手具有20%的魔抗,也就是一个245血的弓箭手不会被一个标定300法术攻击魔法伤害的3级死亡缠绕杀死。
在DotA中,
屠夫、冥界亚龙、
幻影长矛手、
敌法师等英雄具有自身魔抗类技能,这些英雄技能的基础技能是地图编辑器中的AIdd:防御(物品)。死灵龙的怨灵(一级33%、二级33%、三级70%)、
谜团的恶魔精神体(50%)、死灵书的死灵战士和死灵射手(40%)和roshan(75%)等单位也具有自身魔抗类技能,这些技能的基础技能是地图编辑器中的AIsr:魔法伤害减少。
第三部分
考虑该单位带有魔抗类技能的物品。
在魔兽争霸标准对战中,神秘腰带(brac)这个物品能让持有者对法术攻击类型产生抵抗,这个就是魔抗的第三个组成部分。神秘腰带这个物品的技能是AIsr:魔法伤害减少。而在DotA中,
流浪法师斗篷、
挑战头巾、
卡嘉之洞察长笛等物品同样拥有不同数据的AIsr技能,可以让持有的单位产生魔抗。这些拥有不同数据的AIsr技能物品之间效果不会叠加,后获得的物品的魔抗效用会覆盖先获得物品的魔抗效用。
计算
一个单位的魔法抗性由前述三种来源组成,最终魔法抗性数据计算按如下公式:
魔法抗性 = [1 - (1 - S1) * (1 - S2) * (1 - S3)]
其中S1、S2、S3分别代表前述三种来源的数据。
在魔兽争霸标准对战里面,不会出现同时存在魔抗三种来源的情况,一般是一个英雄带一个神秘腰带,那么其魔法抗性 = [1-(1-30%)*(1-33%)*(1-0)]= 53.1%;在DotA里面,有可能出现同时存在魔抗三种来源的情况,根据其标定数据代入上公式计算即可得出最后魔法抗性。
例如:带有流浪法师斗篷并且升级满腐蚀外表的冥界亚龙
S1 = 法术攻击类型对英雄护甲类型系数 = 25% ; S2 =
流浪法师斗篷提供的魔抗 = 15% ; S3 = 腐蚀外表提供的魔抗 = 20%
那么魔法抗性 = [1 - (1 - 25%) * (1 - 15%) * (1 - 20%)] = 49%
术语区别
魔法抗性和魔法免疫等术语的区别
对魔兽争霸不是很熟悉的人容易混淆魔法抗性和
魔法免疫这两个词语,比如错误地认为魔法免疫即是100%魔法抗性。事实上魔法抗性(Spell Resistance)和魔法免疫(Magic Immune)是单位的两个不同的属性。从英文单词可以看出来,虽然这两个词前半部分中文都翻译为“魔法”,但一个是Spell,一个是Magic,也就是说这前半部分的两个“魔法”并不相同。这里不恰当的翻译引起理解上的误导,事实上魔法抗性(Spell Resistance)应该翻译为法术抗性,这样既可以一目了然地符合文首的定义——法术抗性 “指的是某单位对敌人的法术攻击(Attack Type: Spelll )的抵抗系数”,又不会和其他常见带“魔法”前缀的术语比如魔法免疫、魔法伤害、魔法攻击、魔法值、魔法(技能)等等混淆。
如上文所说,由于历史原因,法术抗性被译成了魔法抗性并广泛使用,可能引起误解,那么使用的时候就应该特别和其他带“魔法”前缀的术语区分开来。下面简单介绍一下这些术语。
魔法免疫(Magic Immune)——根据具体语境可以理解为一个被动技能或者是具有一种被动技能的状态,在这个被动技能下,该单位具有特性:不受攻击类型为魔法攻击或者伤害类型为魔法类伤害的伤害影响;不受非大招、非特殊指定可对魔免作用的英雄技能作用;对回复性技能、光环和某些特殊的物理性技能无效。
魔法攻击(ATTACK_TYPE_MAGIC)——攻击类型的一种。标准对战里的各种族法师的攻击类型都是魔法攻击。魔法攻击对重型护甲和轻型护甲造成额外伤害,对中型护甲,加强型护甲和英雄护甲造成较少伤害。攻击类型为魔法攻击的单位可以攻击虚无态单位。攻击类型为魔法攻击的单位不能攻击魔法免疫态单位。在DotA里也是这个规律,参见上面的DotA攻击类型对护甲类型系数表,不过DotA里魔法攻击非常罕见,可以不考虑这个术语的影响。
魔法伤害(DAMAGE_TYPE_MAGIC)——伤害类型的一种。标准对战里基本上所有英雄的直接带伤害的非大招主动技能,都是法术攻击魔法伤害。伤害类型为魔法伤害的技能对魔法免疫没有伤害。伤害类型为魔法伤害的技能在受影响单位计算伤害时不考虑这些单位的护甲数值。在DotA里,大概三分之二的英雄的带伤害的技能,属于法术攻击魔法类伤害。这里的魔法类伤害,包括魔法伤害(DAMAGE_TYPE_MAGIC)、火焰伤害(DAMAGE_TYPE_FIRE)、冰冻伤害(DAMAGE_TYPE_COLD)、
神圣伤害(DAMAGE_TYPE_DIVINE)等等,在DotA里面效果没有差别,所以可以一致简单等价为魔法伤害(DAMAGE_TYPE_MAGIC)。
魔法值(Mana Point)——魔法能量点数。大多数单位释放技能需要消耗一定的魔法值。在DotA里甚至使用大多数物品也需要消耗魔法值。
法术攻击(ATTACK_TYPE_NORMAL)——攻击类型的一种。标准对战里基本上英雄的直接带伤害的主动技能,攻击类型都是法术攻击,也就是说受影响的单位计算伤害时候要计算魔法抗性。在DotA里,大概三分之二的英雄的带伤害的技能,属于法术攻击魔法类伤害,以及另外的一小部分英雄技能,属于法术攻击普通伤害。也就是说这些技能影响的单位计算伤害时候都需要考虑单位的魔法抗性。
普通伤害(DAMAGE_TYPE_NORMAL)——伤害类型的一种。标准对战里基本上所有单位正常攻击时候输出的伤害,其伤害类型都为普通伤害。DotA里许多带法球单位正常攻击时候输出的伤害可以混有其他伤害类型。DotA里一部分技能的伤害类型也是普通伤害。伤害类型为普通伤害的技能在受影响单位计算伤害时需要计算这些单位的护甲数值带来的衰减。
攻击类型(Attack Type)、伤害类型(Damage Type)——当某进攻单位通过技能或者正常攻击对某接受单位造成损伤,该攻有两个必须的属性,就是攻击类型和伤害类型。而该受也有两个主要属性,护甲类型和护甲数值。攻击者的攻击类型直接对应接受者的护甲类型,其关系例如前面给出的攻击类型对护甲类型系数表(不同的魔兽rpg地图这个关系由地图作者自己修改)。攻击者的伤害类型直接对应接受者的护甲数值,简单说就是魔法类伤害类型和某些特殊类伤害类型不考虑护甲数值,而普通伤害类型需要考虑护甲数值带来的衰减。除此之外,接受者还有一些其他属性,比如单位类型(古树、机械、守卫、树木等等)、是否魔法免疫态,是否虚无态,是否无敌态,是否空中单位等等。