• 1882阅读
  • 0回复

改变mana伤害的机理 [复制链接]

上一主题 下一主题
离线铃铛
 

发帖
59624
金钱
6311
91币
0
信誉
0
资产
0 IST
在线时间
3431 小时
注册时间
2009-08-31
最后登录
2021-02-27
只看楼主 倒序阅读 使用道具 楼主  发表于: 2010-11-20 15:17:17
[转载]改变mana伤害的机理
编者:Pansesus


与Life伤害类似,mana伤害也有一套系统的计算公式,有几个特定的属性和技能会直接影响mana的得失情况,下面我将具体进行介绍。

一、普通情况下的法力损耗 / 恢复

1. 法力的损耗

使用技能时用去多少法力就会直接从法力条中扣除相应数量的法力值,这里有几个需要注意的地方:

地狱火Inferno / 极寒冰暴Arctic Blast的消耗法力是固定的了,不像原来那样每秒扣除一定数目的法力值

野蛮人的双手挥舞Double Swing在高等级下不会获取mana值,最多为mana条不发生变化。

2. 法力的恢复

法力的恢复需要一段时间,有几个固定属性 / 技能决定着法力回复速度的快慢:

Energy:最基础的人物属性之一,它决定着人物法力值的多少。在饮用法力药剂时,还影响着双倍回复几率的高低。

Regenerate Mana %:直接作用于法力回复速度的物品属性,例如:暗金手套法师之拳(25%加快回复速度)

Warmth:女巫的特有技能,作用原理同Regenerate Mana %基本相同。注意Warmth也属于火系技能,所以+ Fire Skills对它完全有效

Meditation:骑士的光环,也可以提高mana回复速度。

法力药剂:可以迅速地补充你所损失的Mana,并有一定几率得到双倍的法力回复

双倍法力回复几率公式
Energy小于200的时候:Energy / 4
Energy大于等于200的时候:100 - (10000 / Energy)

法力回复速度公式
25 * [[256 * max_mana / (25 * 120)] * (100 + %Mana Regeneration) / 100] / 256

max_mana:法力全满时的数值
Mana Regeneration:提升法力回复速度的数值
[ ]:表示四舍五入取整

二、受打击时改变Mana数值的属性

1 减少Mana的属性

Energy Shield:女巫的技能,直接吸收所受到的所有伤害(除毒系)并转为mana损耗,伤害计算中这一步发生在PvP伤害惩罚之后,也就是所有其他改变伤害因素之前进行作用。

Mana Drain(MD) / Mana Burn(MB)怪物的mana伤害属性,MD与怪物的种类、级别有很大关系。MB是Unique级怪物的特有属性,它会直接消掉玩家特定数量的Mana。由于程序代码的一点疏漏,带有MB属性的Unique Monster每次击中消耗的法力数值都误乘了256。而造成的后果就是,它每次攻击都会把你的法力打空。它的仆从同样如此。

2 增加Mana的属性

X% Damage Goes To Mana (Vulpine items),含有Vulpine词缀的魔法物品和一些特定的暗金物品拥有这项属性,它可以将%的角色所受最终物理伤害转化为Mana的获得。

三、受打击时Mana伤害的计算

1. 作用顺序

程序首先将法力值增加X% Damage Goes To Mana所确定的数值。进而减掉所有法力伤害之和(ES + MD + MB)

2. 公式的计算与讨论

Telekinesis心灵传送对Energy Shield有加成作用,每升一级基础Telekinesis技能等级(即不算物品及技能的总加成)就能抵消部分Mana损失。具体公式如下:

最终ES造成Mana损失 = (32 - TelekinesisBaseLevel) / 16 * (Damage - PoisonDamage) * XvX / 100 * ES / 100

TelekinesisBaseLevel为心灵传动的基础等级,XvX为总伤害改变量,PvP时取17,其他时候取100,ES是Energy Shield所吸收伤害百分比的分子。
(32 - TelekinesisBaseLevel) / 16是ES吸收伤害转化为法力伤害的改变参数,最大为31 / 16,最小为3 /4,即每一点吸收伤害最多能转化为31 / 16点Mana伤害,最少能转化为0.75点法力伤害。实际上,每提升一点Telekinesis基础等级就能使每点吸收伤害少消耗1 / 16(0.0625)点法力值。

下面是Mana获得及损失的公式:

Mana的损失(Mana Damage Taken)
Mana Damage Taken = ManaDamage + (32 - TelekinesisBaseLevel) / 16 * (Damage - PoisonDamage) * XvX / 100 * ES / 100

Mana的获得(Mana Gained)
Mana Gained = (PhysicalDamage * XvX / 100 * (1 - ES / 100) - BoneArmor - DR) * (1 - PhysicalResistance / 100) * Vulpine%

ManaDamage是怪物MD / MB造成的Mana总伤害。
Bonearmor是骨甲可以吸收的总伤害。
DR是魔法属性“物理伤害减少XX”的数值。
PhysicalResistance是物理抗性(百分数的分子)。
Vulpine%是X% Damage Goes To Mana中的X%。
PoisonDamage是怪物的初始毒系总伤害,这是不受ES影响的。
PhysicalDamage是怪物的初始物理伤害。

最终Mana伤害计算公式:

Final Mana Damage (最终Mana伤害)= Mana Damage Taken (Mana损失)- Mana Gained(Mana获得)

或者写成:

{ManaDamage + (32 - TelekinesisBaseLevel) / 16 * (Damage - PoisonDamage) * XvX / 100 * ES / 100} – {(PhysicalDamage * XvX / 100 * (1 - ES / 100) - BoneArmor - DR) * (1 - PhysicalResistance / 100) * Vulpine% }

这就是Mana伤害的最终表达式,结果为正说明Mana减少,结果为负说明Mana增加。

四、mana伤害的举例说明

污染怪的近战攻击:

Act1污染怪的肉搏伤害是典型的物理+元素伤害,设普通怪物的一次肉搏攻击初始物理伤害50点,电系伤害10点,打击对象是女巫,心灵传动1级(过路点),ES靠物品加到7点(50%吸收),DR%为10%(军帽),同时穿有一条Nightsmoke(50% Damage Taken Goes to Mana),没有DR,LR为50%,这样将数值带入公式:

{(32-1)/16 * 60 * 50% } – { (50 * (1 – 50%))* (1 – 10%)* 50% } = 46. 875,即损失mana46.875即47点,同时受到伤害25 * 90% + 5 * 50% = 25点,显然这是很不合算的。

如果提升Tele到基础等级20级,结果变为受到Mana伤害11.25,受到Life伤害依然是25点,这说明Tele的作用效果是巨大的。

同样是这个例子,如果换成一条其他的腰带,那么当Tele Max的时候受到的Mana伤害为22.5,比原先的情况整整高了1倍的Mana伤害,所以说Damage Taken Goes to Mana属性在对抗物理性伤害的敌人时有很好的减少mana消耗的作用。

当然,我在这里没有讨论MD / MB的情况,还有很多例子没有列举出来。因为写得比较仓促,很多想法没有成型,这里只是给出一个大体的框架而已。有关mana damage的问题我可能会写一些后续文章出来。不过那就要有耐心=了。

主要参考文献:

1 Weapon Damage Calculations(Diablo II Expansion, patch 1.10),Tommi Gustafsson,2003
2 Damage Modification Mechanics(Diablo II Expansion, v. 1.10),Tommi Gustafsson,2003
3 Areat Summit,Blizzard Entertainment,http://www.battle.net/diablo2exp/

Thanks for the discussion and discovery on http://bbs.chinabn.net,http://bbs.blizzardcn.com and http://www.lurkerlounge.com/forums.

快速回复
限100 字节
 
上一个 下一个