加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2008-01-17 00:05:00)
标签:

杂谈

本文介绍了魔兽争霸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. 攻击力:

http://www.ourga.com/ftp/wenziding/img/war3/1.jpg

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

http://www.ourga.com/ftp/wenziding/img/war3/2.jpg

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

http://www.ourga.com/ftp/wenziding/img/war3/3.jpg

2. 伤害输出:

http://www.ourga.com/ftp/wenziding/img/war3/4.jpg

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

 

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

3. 承受伤害:

http://www.ourga.com/ftp/wenziding/img/war3/5.jpg

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

http://www.ourga.com/ftp/wenziding/img/war3/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) * ... 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有