魔兽争霸3中的一些数学计算

本文介绍了魔兽 争霸3中技能 的一些规则 以及各种作用方式的计算公式 ,作者研究 较为深入,值得收藏!

作者:Danny(台湾)

一、技能叠加方式:

1. 一般技能:

a. Buff(强化法术)相同者,于各部分效果不可叠加,各自取最大值
例:单位A的邪黑气+10%速度,+1.0每秒回血;单位B的邪黑气+5%速度,+3.0每秒回血,若二种邪黑气Buff相同,C单位同时受到二种邪黑气的影响,则C单位+10%速度,+3.0每秒回血
b. 若一单位拥有Base ID相同的二种技能(例如二招都用Blizzard改的),则不叠加
例:某英雄穿2双+60速度的跑鞋,穿2双+80速度的跑鞋,结果+80速度

2. 可叠加型:

少数技能即使ID相同,也可以互相叠加。这些技能主要是物品技能,已知的有:+dmg、+Armor、+HP、+mana、+HP regen、+Mana Regen(%)、+攻速、+英雄属性。例如:某英雄拿3把+18dmg的剑,就+54dmg

3. 不可叠加型:

某些效果就是不能互相叠加,即使是二种ID不同的技能。如:物品加速、魔法抗性。设计 地图时最好不要有多种此类技能,否则会造成混乱。以下列出笔者的测试结果:

a. 每秒回血率(泉水,补血棒)不叠加,只取最大值。
b. 每秒回魔率(泉水)不叠加,只取最大值。
c. 预设物品加速(加固定值)不叠加,取最大值。但可以修改 游戏 常数使它变成可叠加。
d. 艾鲁恩的优雅(Elune's Grace。好烂的翻译-o-)、物品抗魔、举盾等技能的魔法抗性、Pierce抗性不互相加成。效果取最大值。
  • 物品抗魔只能抗法术,其它二者可抗Magic或Spell属性的攻击
e. 失误率的计算是各失误率取联集。但被动技Miss效果(暴击/重击/ 醉拳、闪躲)不累加,只取最大值
f. 二种灵魂连结的Buff会互相覆盖,故无法并存
g. 二种Berserk(猎头族的狂暴)的Buff会互相覆盖,故无法并存

4. 攻击被动技简介及叠加法则:

a. 碎裂击、加农炮、震波、爆裂弹、瘟疫可与其它被动技完全相容,各自有自己的效果。(以下b项的被动技皆不包括此三者)
  •  
    • 碎裂击:扩散伤害无视装甲、防御加与任何防御性被动技能。可与暴击和拆除相乘。但不会吸血或反弹
    • 加农炮:扩散伤害属性与攻击者同,考虑目标装甲及各被动技。可吸血或反弹。
    • 震波:附加伤害为法术(Spell),但是对魔法免疫者有效并对虚空单位无效。
b. 无论一个单位有多少种被动技,各被动技的发动机率互不影响。但当二者或以上的被动技同时发动时,会互相覆盖导致只有其中一种被动技能发挥效果,发动的优先度是 暴雪 内定的;如果这些技能的优先度相同,则以较晚获得的技能优先。例如当一个英雄有被动技20%机率4倍暴击,并拿了一个15%机率2倍暴击的物品时,发动暴击机率为:
4倍暴击=20%*(1-15%)
2倍暴击=(1-20)%*15%
同时发动=20%*15%(通常是先学到技能才拿物品,所以物品技能较晚获得,故2倍暴击优先;当然,如果你先拿物品再学暴击,就是4倍优先)
总计暴击机率=二个物品联集=1-(1-20%)*(1-15%)
  • 暴击/重击/醉拳:对近战单位而言,附加伤害属性为Spell(但是对魔法免疫者有效,对虚空单位无效);远程单位则先乘再加。多个暴击同时发动会跳出很多数字,但只有一个有效。附加伤害可吸血但不反弹。
  • 拆除(Demolish):附加伤害可吸血和反弹。可与暴击类累乘。多个拆除技同时发动时也可以累乘。
  • 有些人可能会问:那到底被动技的优先度是怎么看的,笔者测试后看不出任何规则-o-",不过既然知道其中一个会被覆盖掉,那么只要记得避免会被覆盖的情形就好了,谁先谁后应该不重要吧?如果读者有兴趣,可参考[其他研究资料 ]内的测试资料。

二、伤害的计算:

(累加符号:∑x = x1 + x2 + x3 + ...;累乘符号:∏(1-x) = (1-x1) * (1-x2) * (1-x3) * ...  )

  • 伤害和生命为实数值 ,你扣0.1滴血就是0.1滴血,只是扣10次才会显示少1罢了

1. 攻击力:
1.jpg

 

  • 最低攻击力:基本伤害 + 主要属性 * 1 + 骰子数
  • 最高攻击力:基本伤害 + 主要属性 * 1 + 骰子数 * 骰子面数
  • 攻击力期望值:1/2 * (最低攻击力 + 最低攻击力) = 基本伤害 + 主要属性 * 1  + 骰子数 * 1/2 * ( 1 + 骰子面数 )
  • 附加攻击力:( 攻击力期望值 + ∑主要属性 * 1 ) * ( ∑技能或物品加成% ) + ∑主要属性 * 1 + ∑技能或物品加成
    • 攻击力为整数(小数点四舍五入,但各技能的效果至少会加1或减1),因此有时会与计算结果不同。
  • 攻击力期望值 :( 攻击力期望值 + 主要属性 * 1 ) * ( 1 + ∑技能或物品加成% ) + ∑技能或物品加成
  • 随机取值(EX: 244+1d11):244 + 1颗11面骰掷出的点数和

2.jpg

 

  • 随机取值(EX: 243+2d6):243 + 2颗6面骰掷出的点数和

3.jpg


2. 伤害输出:
4.jpg

 

  • 原始输出伤害:攻击力 * ∏伤害输出率(Elune)% * 幻影伤害倍率%
  • 输出伤害:原始输出伤害经过被动技加成

 

  • 命中率= (1-Max被动闪射率%) * (1-地形失误%) * ∏(1-失误率%)
  • 反射伤害(Spell):原始输出伤害* ∑反射率% + ∑反射量

3. 承受伤害:
5.jpg

 

  • 承受伤害:(输出伤害(物理) - 硬化外皮) * 伤害倍率(狂暴)% * (1 - Max抗性%) * 装甲相克 * 防御力减成 * 幻影受伤倍率%
  • 装甲相克:

6.jpg

 

  • 防御力减成:(实数,但游戏中只显示出小数点以下二位(xx%),以下四舍五入)
Armor > 0:1/ ( 1 + Armor * 0.06 ) ≈ 1- 伤害减成%(游戏显示)
Armor < 0:2 - ( 1 - 0.06 )[-Armor] ≈ 1- 伤害减成%(游戏显示)
Armor下限-20
P.S:一点装甲(正值)≡增加6%HP
  • 英雄防御力=基本防御力 + -2 + Agility * 0.3(实数,但游戏不显示小数点,以下四舍五入)
  • 吸血量:承受伤害(物理) * ∑吸血率%
  • 灵魂连结(分担x%;连结y人):
主单位额外伤害:输出伤害 * x%
所有单位分担伤害(Spell):输出伤害 * (1-x%)/y
  • 防御力减成: (实数,但游戏中只显示出小数点以下二位(xx%),以下四舍五入)
Armor > 0:1/ ( 1 + Armor * 0.06 ) ≈ 1- 伤害减成%(游戏显示)
Armor < 0:2 - ( 1 - 0.06 )[-Armor] ≈ 1- 伤害减成%(游戏显示)
Armor下限-20
P.S:一点装甲(正值)≡增加6%HP
  • 英雄防御力=基本防御力 + -2 + Agility * 0.3(实数,但游戏不显示小数点,以下四舍五入)
  • 吸血量:承受伤害(物理) * ∑吸血率%
  • 灵魂连结(分担x%;连结y人):
主单位额外伤害:输出伤害 * x%
所有单位分担伤害(Spell):输出伤害 * (1-x%)/y
 
 


三、其它计算公式:

1.攻击冷却时间(Cooldown, CD):

  • 极快(Very Fast):        CD < 1.0
  • 快(Fast):        1.0 <= CD < 1.5
  • 中等(Average):   1.5 <= CD < 2.0
  • 慢(Slow):        2.0 <= CD < 3.0
  • 极慢(Very Slow): 3.0 <  CD

加成前CD=原始CD / ( 1 + Agility * 2% )
加成后CD=原始CD / (1+Agility *2% + ∑技能或物品加成% )

  • 20%≦(1+Agility *2% + ∑技能或物品加成% )≦500%,多退少补


2.攻速(Attack Rate): 基本上就是CD的倒数,计算上用这个比较方便看出加成的情形
加成前攻速(Attack Rate/ ATR)= 1 / 加成前冷却时间(CD) = ( 1 + Agility * 2% ) / 原始CD
加成后攻速(Attack Rate/ ATR)= 1 / 加成前冷却时间(CD) = ( 1 + Agility * 2% +  ∑技能或物品加成% ) / 原始CD

3.移动速度(Movement Speed):

  • 极快(Very Fast): 350 < 速度
  • 快(Fast):        280 < 速度 <= 350
  • 中等(Average):   220 < 速度 <= 280
  • 慢(Slow):        175 < 速度 <= 220
  • 极慢(Very Slow):       速度 <= 175

移动速度:( 原始移动速度 + Agility * 0 ) * ( 1 + ∑技能或物品加成%  ) + ∑技能或物品加成
移动速度上限400,下限150


4.每秒回血量 =日夜回血速率 + ( Strength * 0.05 ) + ∑技能或物品加成 + 每秒回血率% * 生命上限

5.每秒回魔量 =( Intelligence * 0.05 + 回魔速率 )* ( 1 + ∑技能或物品加成%  ) + ∑技能或物品加成 + 每秒回魔率% * 魔力上限

  • 如果魔力上限(Mana Maximum)设为0(内建的英雄大都如此),则回魔速率不计入,但是物品回魔率会把它乘进去(也许是b社的疏忽,谁知道呢?)

每秒回魔量=Intelligence * 0.05 * ( 1 + ∑技能或物品加成%  ) + 回魔速率 * ∑技能或物品加成% + ∑技能或物品加成 + 每秒回魔率% * 魔力上限

注释:(黑色:未加成;绿色 :加成部分;粉红 :未加成+加成 ;套绿色:可藉由改游戏常数调整)
  (累加符号:∑x = x1 + x2 + x3 + ...;累乘符号:∏(1-x) = (1-x1) * (1-x2) * (1-x3) * ...  )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值