近战伤害的计算以及ED/Min/Max珠的效果
Diablo2Version1.10beta2
近战伤害的计算以及ED/Min/Max珠的效果.
一.前言
以下均为我个人测试的结果,仅测试了野蛮人使用剑的情况.其它角色,武器和远战
未做测试,我认为效果应与此相同.欢迎各位爱好暗黑的朋友批评指正.
二.文法约定
1.Weapon_Base_Damage_Min
武器在未带任何魔法属性时的最小伤害值.
2.Weapon_Base_Damage_Max
武器在未带任何魔法属性时的最大伤害值.
3.Weapon_Damage_Min
武器带上魔法属性后,显示出的最小伤害值.
4.Weapon_Damage_Max
武器带上魔法属性后,显示出的最大伤害值.
5.ED
EnhancedDamage(提升伤害)的缩写.
6.Weapon_ED
武器上的提升伤害的百分比总和.绝大多数武器的提升伤害既作用于最小伤害值,又作用
于最大伤害值,因此在这里我统一用Weapon_ED来表示.对于个别武器,对最小伤害
和最大伤害的提升幅度不相等,那就需要分别计算.计算方法与普通算法相同.
7.Weapon_Damage_Bonus_Min
武器上增加的最小伤害.
8.Weapon_Damage_Bonus_Max
武器上增加的最大伤害.
9.Total_Damage_Min
人物装备武器后的实际最小伤害值.
10.Total_Damage_Max
人物装备武器后的实际最大伤害值.
11.Non_Weapon_ED
非武器提供的提升伤害总和.
12.Total_Damage_Bonus_Min
非武器提供的最小伤害值.
13.Total_Damage_Bonus_Max
非武器提供的最大伤害值.
14.Strength
力量
15.Dexterity
敏捷
16.Str_Multiplier
力量对伤害力的影响因子.
17.Dex_Multiplier
敏捷对伤害力的影响因子.
18."[]"方括号表示向下取整数.所有的计算结果,若未特殊说明,都向下取整数.
三.Weapon_Damage_Min/Max的计算
在1.09里,如果武器上带有提升伤害,则武器的基础伤害值要先加1.这在1.10不存在.
1.Ethereal的影响.
Ethereal武器的伤害力将增加一半.例如,MythicalSword的伤害力为
40-50,当它变成ethereal时,伤害力为60-75.我将经ethereal效果提升后的伤
害力做为ethereal武器的基础伤害力,即EtherealMythicalSword的
Weapon_Base_Damage_Min=60,
Weapon_Base_Damage_Max=75,
来参加以后的计算.因此,下面的计算对于Ethereal武器也是适用的,只是要记得
ethereal武器的基础伤害要比非ethereal增加一半而已.
2.Weapon_Damage_Min/Max的计算
Weapon_Damage_Min=Weapon_Base_Damage_Min*(1+Weapon_ED)
+Weapon_Damage_Bonus_Min
Weapon_Damage_Max=Weapon_Base_Damage_Max*(1+Weapon_ED)
+Weapon_Damage_Bonus_Max
3.计算举例
一把MythicalSword,
Weapon_Base_Damage_Min=40
Weapon_Base_Damage_Max=50
镶40ed15max珠,
Weapon_ED=0.4
Weapon_Damage_Bonus_Max=15
此剑的伤害力:
Weapon_Damage_Min=40*(1+0.4)=56
Weapon_Damage_Max=50*(1+0.4)+15=85
四.防具上不带ED属性时人物伤害值的计算
实际上,武器上提供的Max/Min增加值与非武器提供的Max/Min增加值效果相同.
也就是Weapon_Damage_Bonus_Min与Total_Damage_Bonus_Min效果相同,
Weapon_Damage_Bonus_Max与Total_Damage_Bonus_Max效果相同.
在1.09中,我认为也是这么计算的,可有些权威站点却不这么认为.
Total_Damage_Min=(Weapon_Damage_Min+Total_Damage_Bonus_Min)
*(1+Strength*Str_Multiplier/100+
Dexterity*Dex_Multiplier/100)
Total_Damage_Max=(Weapon_Damage_Max+Total_Damage_Bonus_Max)
*(1+Strength*Str_Multiplier/100+
Dexterity*Dex_Multiplier/100)
五.防具上带ED属性但不是ED/MaxED/Min珠时人物伤害值的计算
一个难以置信的事实是,当装备上带ED属性时,人物的伤害值与穿装备的顺序有关!
这显然是个巨大的Bug.不过更巨大的Bug将在第六部分讨论ED/Max/Min珠时揭晓.
1.先拿武器,再穿ED装备的伤害值
Total_Damage_Min=[(Weapon_Damage_Min+Total_Damage_Bonus_Min)
*(1+Non_Weapon_ED)]*
*(1+Strength*Str_Multiplier/100+
Dexterity*Dex_Multiplier/100)
Total_Damage_Max=[(Weapon_Damage_Max+Total_Damage_Bonus_Max)
*(1+Non_Weapon_ED)]*
*(1+Strength*Str_Multiplier/100+
Dexterity*Dex_Multiplier/100)
与1.09明显不同,Non_Weapon_ED现在单独起作用,而不是与力量敏捷混在一起了.
反复拿放武器,伤害值不变.
2.先穿ED装备,再拿武器
Total_Damage_Min=[(Weapon_Damage_Min+Total_Damage_Bonus_Min)
*(1+Non_Weapon_ED)]*
*(1+Strength*Str_Multiplier/100+
Dexterity*Dex_Multiplier/100+Non_Weapon_ED)
Total_Damage_Max=[(Weapon_Damage_Max+Total_Damage_Bonus_Max)
*(1+Non_Weapon_ED)]*
*(1+Strength*Str_Multiplier/100+
Dexterity*Dex_Multiplier/100+Non_Weapon_ED)
Non_Weapon_ED错误地计算了两次,估计是更改Non_Weapon_ED时没改彻底,有所遗
留-_-b反复拿放ED装备,伤害值将变回先拿武器后穿装备的伤害值.
六.Ed/MinED/Max珠
这是一个巨大无比的Bug,随着我的讨论你将深信这一点.
1.ED/Min珠
ED/Min珠的ED效果对Total_Damage_Min不起作用.
2.ED/Max珠
ED/Max珠的ED效果对Total_Damage_Max不起作用.
3.ED/MinED/Max同时使用,但不镶在同一物品上
效果同1和2.
4.ED/MinED/Max混镶于同一物品上
与不同珠的镶嵌顺序有关!根据测试,可以推断出电脑采用如下判断程式:
当发现第一个效果不同的珠后,该珠及其后的珠上的ED都失效,但Min/Max有效.
举例子说明:
在一个四孔衣服上,依次镶嵌如下四个珠:
37ed/10min38ed/10min39ed/15max40ed/15max
结果:37ed和38ed这两个ED效果仅对Total_Damage_Max起作用(同1);
39ed和40ed这两个ED效果完全失效.
在一个四孔衣服上,依次镶嵌如下四个珠:
37ed/10max38ed/10min39ed/15max40ed/15min
结果:37ed这个ED效果仅对Total_Damage_Min起作用(同2);
38ed39ed40ed这三个ED效果完全失效.
七.技能提供的ED
与1.09效果相同,与力量和敏捷的作用直接相加.
八.总结
1.ED/Min和ED/Max珠不要镶在防具上.
2.ED珠镶在防具上的效果比1.09更明显.
3.穿装备时,先穿带ED属性的防具,再拿武器,伤害力有额外提高.