最近刚好比较闲,趁着还没完全遗忘,炒一下冷饭,便于新人看看。已经了解了的同学可以无视,当然由于毕竟离开D2有一段时间,帖子中间可能存在这些那些的错误,权当抛砖引玉,敬请还战斗在D2一线的同学们批评指教。^^
Part1:防具的防御值计算
D2中防具包括头盔(Helm)、盔甲(armor)、腰带(belt)、手套(gloves)、盾牌(shield)、靴子(boot)。
所有这些防具的防御值(Defense)计算都遵循以下流程:
1.在防具基础防御值中随机选取一个值,这是在该防具掉落(Drop)是确定的。
所谓的基础防御值是指该防具在普通(Normal)形态,即通常所说的白色形态下的防御值,通常是一个 范围,比如军帽(Shako)的基础防御值是98到141。
2.如果该防具带有加xx%防御(+xx% Enhanced Defense)属性,系统在计算时就会放弃第一步得到的随机值 ,将计算所用的值直接设为防具最大基础防御值(max_basedef) + 1。
3.无形(Ethereal)检测,为无形则加50%ed,计算结果有小数时向下取整。
4.计算加xx%防御属性,计算结果有小数时向下取整。
5.计算加xx点防御值属性 ,如StormShield上的+xx defense
举例:
不死皇冠(Undead Crown),皇冠的暗金(unique)形态。
皇冠(Crown),基础防御值为25到45。
不死皇冠拥有加30%-60%防御值(+30-60% Enhanced Defense)和加40防御值(+40Defense)属性。
根据以上流程计算:
1.掉落时选取随机防御值,比如40;
2.因为UC具有+%ED属性所以将计算所需值设为最大基础防御值+1=45+1=46
3.假设无形,则+50%ED: 46 x (1+50%) = 69
4.假设+60%ED(jp^^):69 x (1+60%)=110.4=110
5.+40 Defense:110+40=150
所以一顶jp的无形的UC防御值为150。
而有形的则跳过第三步得到[46 x (1+60%)]int+40=113,与官方提供的资料是吻合的。
Part2:防具的升级Bug
在1.10里面,我们可以通过暴雪(blizzard)提供的公式将装备升级以获取更高的攻击和防御数值,但是 不少同学反映在升级过程中会出现升级后的防具防御值低于原来的,最明显的例子莫过于09著名的物免 头盔(Vampire Gaze)了。这是怎么回事呢?这就要从所谓的防具升级Bug说起。
首先要指出的是,Part1提到的计算流程是完全适用于v1.10升级的。
Bug的出现是在于计算的过程中系统跳过了第2、3步。
还是举不死皇冠(Undead Crown)为例。
皇冠(Crown)的扩展版本为巨皇冠(Grand Crown),其基础防御值为78到113。由于升级并不会带来属性 的改变,所以仍然带用UC的属性。
根据以上流程计算升级后的防御值:
1.升级时选取随机防御值,比如100;
2.因为UC具有+%ED属性所以将计算所需值设为最大基础防御值+1=113+1=114(跳过)
3.假设无形,则+50%ED: 114 x (1+50%) = 171(跳过)
4.+60%ED: 100 x (1+60%) = 160 但实际上这里本应该是171 x (1+60%)=273.6=273
5.+40 Defense: 160+40=200 但实际上这里本应该是273+40=313
所以,我们可以看出,所谓的v1.10升级Bug带来的后果是使我们不仅限于失去了无形的50%加成,还失 去了基础防御值最大化的优待。
下面,我们来看看无形物免头盔的升级:
吸血鬼凝视(Vampire Gaze),残酷头盔(Grim Helm)的暗金(Unique)形态。
残酷头盔(Grim Helm),基础防御值为60到125。拥有+100%ED的属性。
升级成为骸骨面罩(Bone Visage),其基础防御值为100到157。
1.升级时选取随机防御值,比如120;
2.因为Gaze具有+%ED属性所以将计算所需值设为最大基础防御值+1=157+1=158(跳过)
3.假设无形,则+50%ED: 158 x (1+50%)=237(跳过)
4.+100%ED: 120 x (1+100%)=240 但实际上这里本应该是237 x (1+100%)=474
5.+x Defense: Gaze没这个属性。
所以经过升级后的无形Gaze的防御值本该恒为474,结果却成了在200到314之间变化的随机数值,比如这 里计算得到的240。
而无形的不升级Gaze的防御值却固定为378。这就是为什么升级过后还会出现防御值下降的原因。
附一点小常识:所有拥有加xx%防御属性的防具,在辨识之前就可以看到修正为+1的效果。举例来说,我 们知道Unique Shako没有加xx%防御属性,所以在没辨识之前我们可以看到的防御值就是其最终防御值 。然而比如你得到一顶没辨识的Rare Shako,如果它的防御值显示为98到141,那么可以肯定辨识后也不 会有加xx%防御属性,而如果显示为142(141+1)的话,则可以肯定辨识后会出现加xx%防御属性。