我新发个帖子总结一下吧。
计算伤害(强度护甲是否暴击什么的在此之前计算,输入值是计算过暴击后的伤害):
0.1.全体伤害转换:计算转换伤害,并将原伤害减去转换掉的伤害;暂时取消伤害转换效果;造成转换伤害;恢复伤害转换效果。好像全体伤害转换后获得的会覆盖以前的效果。
0.2.元素之怒戒指:结果就是把伤害分成4元素,每部分伤害都要重新经历一次从1开始的过程,但是不会再经历2(保证只分一次).
0.3.护身符Pendant of the Sun and Moons的效果(兽人战役的?我反正没见过),和元素之怒没什么区别,就是分成光暗。
0.4.如果击中一个单位则进行以下判定:
1.1.计算没被敌人发现时的额外伤害(玩家就只有shadowstrike吧)
a.如果是暴击,一定概率摆脱暴击伤害,如果摆脱了,伤害设回暴击钱原始值
b.如果摆脱了暴击伤害,或者本身并不是暴击,不执行1.1剩余判断
c.如果没发现攻击者,潜行暴击伤害加成生效,并随距离减少。
d.受到不可见的人的暴击伤害减少,得到最后的潜行暴击加成,记为unseen_crit。
e.伤害变为dam = dam * (crit_power + unseen_crit)/crit_power
注:由于输入值dam是已经计算过暴击之后的,若把原伤害记为odam, 则在执行e之前 dam == odam * crit_power, 于是最终伤害还是变为odam * (crit_power + unseen_crit)
1.2. easy难度玩家减伤百分之30
1.3. 命中对proc damage的加成(伤害来源是法杖或者盾就有加成。源技能这点比较复杂。)
1.4. 如果攻击者处于dazed伤害减半
1.5. 攻击者stunned:造成百分之40伤害
1.6. 处于隐身状态造成伤害降低(比如phantasm T4)
1.7. 处于冥想状态下造成伤害降低(自然召唤T1)
1.8. 各种时空克隆体什么的只能造成一定百分比的伤害
1.9. 预感的减伤(Divination T4)
1.10. 来自物品的ward技能
1.11. 格挡
1.12. 梦之熔炉T1格挡
----------从此处开始计算一些伤害加成---------------------
1.13. 攻击者的对应伤害类型的伤害加成(全伤害加成应该在此前就已经计算并加到面板上了,和抗性类似,但是没看代码不清楚是叠乘还是叠加)再加上恶魔之力T3加成,作用方式为线性叠加。
1.14. 对特定怪物类型的伤害增加(恶魔,不死,生物等)
1.15. 梦魇系(nightmare)T4 伤害增加
1.16. 失眠状态受到伤害增加
1.17. Mind Link(Mentalism T4)伤害增加
1.18. Rigor Mortis(居然是拉丁语,估计也是有什么来源的吧,就像coup de grace是法语,Gestalt是德语)状态受到死灵法宝宝伤害增加。
1.19. 对creeping darkness里的单位伤害增加
1.20. 背刺伤害增加
-------------以上伤害加成均为叠加计算,增加量存在inc变量里---------------
1.21. 计算增伤后的伤害dam = dam + (dam * inc / 100)
1.22. 被冰冻了的话,冰块受到数值为dam的伤害
1.23. Ureslak's Molten Scales的效果,增加对应伤害抗性
1.24. 计算伤害吸收。
1.25. 来自特定生物类型则减少伤害(比如减少来自召唤物的伤害)
1.26. 计算伤害抗性与抗性穿透:先计算各种减少抗性的技能,以及增加抗穿的技能,得到最终的抗性与抗穿。如果最后抗性大于0,则计算抗穿。如果计算抗穿后抗性大于100则伤害为0;如果小于-100则伤害乘2;如果在2者之间正常计算伤害。
1.27. 对自己造成伤害的减免。
1.28. 心灵杀手的三个盾吸收伤害
1.29. 恶魔之力T4减伤
1.30. 反魔盾
1.31. 直接减伤(日志里会显示resist armour,比如蒸汽系的那个减伤斗篷技能)
1.32. 觉醒技roll with it减伤
1.33. 受到不可见敌人伤害减少:注意和1.1b的区别,1.1b是作用在潜行暴击伤害加成上的,对应技能有生存系T4;这里的减伤是作用在现在的dam上的,对应的有Yaldan Baoth的效果以及项链上的随机属性。
1.34. 黑暗光环庇护所减伤:对于抛射物计算抛射物发出的位置,对于非抛射物计算实际相对位置。
1.35. 灵魂出窍且不在dream scape的话只能对精神链接的单位或是鬼魂造成伤害,否则伤害设为0.
1.36. 死灵的宝宝友军伤害降低。
1.37. Curse of Misfortune几率伤害增加。
1.38. Obliterator的伤害增加。
注:1.37和1.38虽然描述是如果能击杀目标则增加伤害,但实际上是在此处按敌人血量算的,还没计算后面的各种减伤,实际效果比说明更好。
1.39. 调用所有callbackOnTakeDamage的技能,比如时空energy系T1减伤以及trained reaction减伤
1.40. 对目标造成伤害前,进行以下判定(2开头的内容,百度把我的制表符都吃了):
2.1.取消daze
2.2.取消domination hex
2.3.几率无视伤害(比如狙击系T1)
2.4.几率移动到另一格并无视伤害(比如幸运日闪避)
2.5.retribution伤害吸收(光盾那一系的)
2.6.一些伤害减免:目前只看到狙击T4。
2.7.软泥的分裂和减伤都在此计算(先计算分裂在计算减伤,要不然软泥使就哭了)
2.8.displacement shield几率转移伤害(Conveyance系 T3)
2.9.时光盾
2.10.伤害护盾(damage shield),反射符文的反射盾也是伤害盾
2.11.shadow empathy(One With Shadows系T2),百分比伤害转移给随机阴影.
2.12.干扰护盾
2.13.骨系的骨盾
2.14.触发被攻击目标诅咒形态系的T3T4
2.15.意志之力系偏转盾。
2.16.暴走系T3减伤
2.17.几率移除endless hunt系T2的效果
2.18.计算伤害很重要的成就
2.19.冰块吸收伤害
2.20.唯我T4的伤害减免(越靠后越好,在这个位置效率还是不错的)
2.21.反馈值获取,计算discharge系T3的反弹伤害
2.22.反馈系共鸣护盾减伤
2.23.伤害减少睡眠时间(开了盾就杯具了)
2.24.计算唯我主义T1的psi伤害(留到后面用)
2.25.大伤害秒杀石化目标
2.26.被打增加仇恨
2.27.打人增加仇恨
2.28.触发掠夺格斗T2
2.29.被动触发暴走
2.30.唯我T1减伤+造成超能力值伤害
此时如果伤害小于等于0,则跳过后面的31到47执行48。
2.31.如果目前生命大于一半,减去当前算出的伤害值会小于一半,则触发活力
2.32.触发体质强化系T3
2.33.圣光沁盾回复,如果伤害为1只吸一点正能量(有鬼用啊!),每回合只计算一次暴击,第一次触发暴击则后面全是暴击,否则全不暴击。
2.34.开启无双时伤害不高于生命值-1,伤害不低于0
2.35.触发second life,不会和die at冲突
2.36.One With Shadows系Shadow decoy续命。 shadow:“-1s。”
2.37.vim sense 被打回血回活力
2.38.觉醒技血泉触发
2.39.半身人被动闪避触发
2.40.触发torment系T4的减CD效果(和说明不符的是,只要是人物自身的talent,什么CD都能减)
2.41.计算吸血:不包含恶魔学家的吸血。似乎死灵法的吸血和吸血戒指的吸血概率和百分比是直接相加的?不太确定。
2.42.武器提供的吸血SKULLCLEAVER,Spellblaze Shard,Sanguine Shield,Malediction等
注:武器提供的吸血,命中加成什么的都是临时效果,只在武器命中期间有效。所以附加伤害,包括奥刃魔法格斗的射线类技能(因为能立刻造成伤害),武器的命中和暴击特效,是可以受到命中加成和武器吸血影响的。(奥刃果然高富帅)。c.f. 1.3
2.43.flat damage cap就和字面意思一样,单次伤害不超过生命百分比。目前玩家能有的是食尸鬼种族技能,链锯战场控制,太阳骑士太阳斗篷,死灵法骨盾。
2.44.岩石守卫ELDRITCH STONE的护盾
2.45.岩石守卫矮人分身的伤害转移
2.46.callbackOnHit的技能:Flux T2; gardian unity;rot T1;链锯战场控制T2减伤(近战范围内就减,无论是什么伤害);火焰之心火盾。作用顺序不太清楚,和检索顺序有关,只记得火盾比较靠前。
2.47.觉醒技DRACONIC BODY触发
2.48 callbackondealdamage触发,我记得的技能有死龙raze,死龙吸血,demonic pact T4吸血(怪不得你们俩吸得这么少,如果敌人有火盾不是一滴都吸不到?),黑魔法悲惨结局,魔法大爆炸 only ashes left, 恶魔形态doomelf造成的一半aoe伤害(又得从0.1走一遍,而且如果是武器攻击触发的,那么武器加成还在,因为武器的伤害调用还没结束,于是理论上伤害百分比,武器命中,武器吸血都有二次加成。可惜恶魔太难变了),远程行动系的负反馈。
2.49.处理overkill(于是也受武器命中和吸血加成。。。效果是加在玩家身上的,武器攻击相当于开关)
回到1开头的函数,返回值为实际伤害
1.42. 太阳骑士combatT3 martyrdom的伤害(攻击者受到一定百分比自己造成的伤害)
注:这里包括其他的新产生的伤害比如附加伤害什么的显然都要经历一遍从0.1开始的判断
1.43.傀儡的反伤(玩家是没有的)
1.44.触发反魔T1
1.45.伤害共鸣效果(比如telos法杖+15),好像是受攻击获得伤害加成
1.46.punishment T4触发
1.47.给CURSE OF NIGHTMARES添加被攻击过标记
1.48.元素和谐触发
1.49.觉醒技ENDLESS WOES触发
1.50.伤害吸收造成治疗效果,使用1.24处计算的值
1.51.超魔系法术冲击
1.52.使用法术,使用自然力量,使用精神力量的触发效果,类型按攻击源技能计算(这个有可能会比较复杂,和具体的技能有关,比如我记得好像raze伤害的来源并不是raze,而是触发raze的攻击,所以命中类型也是触发raze的技能类型,不一定是spell)。比如物品提供的使用法术有几率触发法术。法术,自然力量,精神力量的触发分别计算。对于每一类而言,每使用一次天赋,所有可以被触发的技能都会经过一次判定,在这次循环内可能有多个技能被触发,但是只要有一个技能被触发,此次循环结束后本回合内的其他天赋不会再次触发任何技能。
1.53.觉醒技meteoric crash触发,类型计算同上
1.54.觉醒技spell feedback触发,类型计算同上
1.55.高人born into magic 触发
1.56.觉醒技Elemental Surge触发
计算伤害(强度护甲是否暴击什么的在此之前计算,输入值是计算过暴击后的伤害):
0.1.全体伤害转换:计算转换伤害,并将原伤害减去转换掉的伤害;暂时取消伤害转换效果;造成转换伤害;恢复伤害转换效果。好像全体伤害转换后获得的会覆盖以前的效果。
0.2.元素之怒戒指:结果就是把伤害分成4元素,每部分伤害都要重新经历一次从1开始的过程,但是不会再经历2(保证只分一次).
0.3.护身符Pendant of the Sun and Moons的效果(兽人战役的?我反正没见过),和元素之怒没什么区别,就是分成光暗。
0.4.如果击中一个单位则进行以下判定:
1.1.计算没被敌人发现时的额外伤害(玩家就只有shadowstrike吧)
a.如果是暴击,一定概率摆脱暴击伤害,如果摆脱了,伤害设回暴击钱原始值
b.如果摆脱了暴击伤害,或者本身并不是暴击,不执行1.1剩余判断
c.如果没发现攻击者,潜行暴击伤害加成生效,并随距离减少。
d.受到不可见的人的暴击伤害减少,得到最后的潜行暴击加成,记为unseen_crit。
e.伤害变为dam = dam * (crit_power + unseen_crit)/crit_power
注:由于输入值dam是已经计算过暴击之后的,若把原伤害记为odam, 则在执行e之前 dam == odam * crit_power, 于是最终伤害还是变为odam * (crit_power + unseen_crit)
1.2. easy难度玩家减伤百分之30
1.3. 命中对proc damage的加成(伤害来源是法杖或者盾就有加成。源技能这点比较复杂。)
1.4. 如果攻击者处于dazed伤害减半
1.5. 攻击者stunned:造成百分之40伤害
1.6. 处于隐身状态造成伤害降低(比如phantasm T4)
1.7. 处于冥想状态下造成伤害降低(自然召唤T1)
1.8. 各种时空克隆体什么的只能造成一定百分比的伤害
1.9. 预感的减伤(Divination T4)
1.10. 来自物品的ward技能
1.11. 格挡
1.12. 梦之熔炉T1格挡
----------从此处开始计算一些伤害加成---------------------
1.13. 攻击者的对应伤害类型的伤害加成(全伤害加成应该在此前就已经计算并加到面板上了,和抗性类似,但是没看代码不清楚是叠乘还是叠加)再加上恶魔之力T3加成,作用方式为线性叠加。
1.14. 对特定怪物类型的伤害增加(恶魔,不死,生物等)
1.15. 梦魇系(nightmare)T4 伤害增加
1.16. 失眠状态受到伤害增加
1.17. Mind Link(Mentalism T4)伤害增加
1.18. Rigor Mortis(居然是拉丁语,估计也是有什么来源的吧,就像coup de grace是法语,Gestalt是德语)状态受到死灵法宝宝伤害增加。
1.19. 对creeping darkness里的单位伤害增加
1.20. 背刺伤害增加
-------------以上伤害加成均为叠加计算,增加量存在inc变量里---------------
1.21. 计算增伤后的伤害dam = dam + (dam * inc / 100)
1.22. 被冰冻了的话,冰块受到数值为dam的伤害
1.23. Ureslak's Molten Scales的效果,增加对应伤害抗性
1.24. 计算伤害吸收。
1.25. 来自特定生物类型则减少伤害(比如减少来自召唤物的伤害)
1.26. 计算伤害抗性与抗性穿透:先计算各种减少抗性的技能,以及增加抗穿的技能,得到最终的抗性与抗穿。如果最后抗性大于0,则计算抗穿。如果计算抗穿后抗性大于100则伤害为0;如果小于-100则伤害乘2;如果在2者之间正常计算伤害。
1.27. 对自己造成伤害的减免。
1.28. 心灵杀手的三个盾吸收伤害
1.29. 恶魔之力T4减伤
1.30. 反魔盾
1.31. 直接减伤(日志里会显示resist armour,比如蒸汽系的那个减伤斗篷技能)
1.32. 觉醒技roll with it减伤
1.33. 受到不可见敌人伤害减少:注意和1.1b的区别,1.1b是作用在潜行暴击伤害加成上的,对应技能有生存系T4;这里的减伤是作用在现在的dam上的,对应的有Yaldan Baoth的效果以及项链上的随机属性。
1.34. 黑暗光环庇护所减伤:对于抛射物计算抛射物发出的位置,对于非抛射物计算实际相对位置。
1.35. 灵魂出窍且不在dream scape的话只能对精神链接的单位或是鬼魂造成伤害,否则伤害设为0.
1.36. 死灵的宝宝友军伤害降低。
1.37. Curse of Misfortune几率伤害增加。
1.38. Obliterator的伤害增加。
注:1.37和1.38虽然描述是如果能击杀目标则增加伤害,但实际上是在此处按敌人血量算的,还没计算后面的各种减伤,实际效果比说明更好。
1.39. 调用所有callbackOnTakeDamage的技能,比如时空energy系T1减伤以及trained reaction减伤
1.40. 对目标造成伤害前,进行以下判定(2开头的内容,百度把我的制表符都吃了):
2.1.取消daze
2.2.取消domination hex
2.3.几率无视伤害(比如狙击系T1)
2.4.几率移动到另一格并无视伤害(比如幸运日闪避)
2.5.retribution伤害吸收(光盾那一系的)
2.6.一些伤害减免:目前只看到狙击T4。
2.7.软泥的分裂和减伤都在此计算(先计算分裂在计算减伤,要不然软泥使就哭了)
2.8.displacement shield几率转移伤害(Conveyance系 T3)
2.9.时光盾
2.10.伤害护盾(damage shield),反射符文的反射盾也是伤害盾
2.11.shadow empathy(One With Shadows系T2),百分比伤害转移给随机阴影.
2.12.干扰护盾
2.13.骨系的骨盾
2.14.触发被攻击目标诅咒形态系的T3T4
2.15.意志之力系偏转盾。
2.16.暴走系T3减伤
2.17.几率移除endless hunt系T2的效果
2.18.计算伤害很重要的成就
2.19.冰块吸收伤害
2.20.唯我T4的伤害减免(越靠后越好,在这个位置效率还是不错的)
2.21.反馈值获取,计算discharge系T3的反弹伤害
2.22.反馈系共鸣护盾减伤
2.23.伤害减少睡眠时间(开了盾就杯具了)
2.24.计算唯我主义T1的psi伤害(留到后面用)
2.25.大伤害秒杀石化目标
2.26.被打增加仇恨
2.27.打人增加仇恨
2.28.触发掠夺格斗T2
2.29.被动触发暴走
2.30.唯我T1减伤+造成超能力值伤害
此时如果伤害小于等于0,则跳过后面的31到47执行48。
2.31.如果目前生命大于一半,减去当前算出的伤害值会小于一半,则触发活力
2.32.触发体质强化系T3
2.33.圣光沁盾回复,如果伤害为1只吸一点正能量(有鬼用啊!),每回合只计算一次暴击,第一次触发暴击则后面全是暴击,否则全不暴击。
2.34.开启无双时伤害不高于生命值-1,伤害不低于0
2.35.触发second life,不会和die at冲突
2.36.One With Shadows系Shadow decoy续命。 shadow:“-1s。”
2.37.vim sense 被打回血回活力
2.38.觉醒技血泉触发
2.39.半身人被动闪避触发
2.40.触发torment系T4的减CD效果(和说明不符的是,只要是人物自身的talent,什么CD都能减)
2.41.计算吸血:不包含恶魔学家的吸血。似乎死灵法的吸血和吸血戒指的吸血概率和百分比是直接相加的?不太确定。
2.42.武器提供的吸血SKULLCLEAVER,Spellblaze Shard,Sanguine Shield,Malediction等
注:武器提供的吸血,命中加成什么的都是临时效果,只在武器命中期间有效。所以附加伤害,包括奥刃魔法格斗的射线类技能(因为能立刻造成伤害),武器的命中和暴击特效,是可以受到命中加成和武器吸血影响的。(奥刃果然高富帅)。c.f. 1.3
2.43.flat damage cap就和字面意思一样,单次伤害不超过生命百分比。目前玩家能有的是食尸鬼种族技能,链锯战场控制,太阳骑士太阳斗篷,死灵法骨盾。
2.44.岩石守卫ELDRITCH STONE的护盾
2.45.岩石守卫矮人分身的伤害转移
2.46.callbackOnHit的技能:Flux T2; gardian unity;rot T1;链锯战场控制T2减伤(近战范围内就减,无论是什么伤害);火焰之心火盾。作用顺序不太清楚,和检索顺序有关,只记得火盾比较靠前。
2.47.觉醒技DRACONIC BODY触发
2.48 callbackondealdamage触发,我记得的技能有死龙raze,死龙吸血,demonic pact T4吸血(怪不得你们俩吸得这么少,如果敌人有火盾不是一滴都吸不到?),黑魔法悲惨结局,魔法大爆炸 only ashes left, 恶魔形态doomelf造成的一半aoe伤害(又得从0.1走一遍,而且如果是武器攻击触发的,那么武器加成还在,因为武器的伤害调用还没结束,于是理论上伤害百分比,武器命中,武器吸血都有二次加成。可惜恶魔太难变了),远程行动系的负反馈。
2.49.处理overkill(于是也受武器命中和吸血加成。。。效果是加在玩家身上的,武器攻击相当于开关)
回到1开头的函数,返回值为实际伤害
1.42. 太阳骑士combatT3 martyrdom的伤害(攻击者受到一定百分比自己造成的伤害)
注:这里包括其他的新产生的伤害比如附加伤害什么的显然都要经历一遍从0.1开始的判断
1.43.傀儡的反伤(玩家是没有的)
1.44.触发反魔T1
1.45.伤害共鸣效果(比如telos法杖+15),好像是受攻击获得伤害加成
1.46.punishment T4触发
1.47.给CURSE OF NIGHTMARES添加被攻击过标记
1.48.元素和谐触发
1.49.觉醒技ENDLESS WOES触发
1.50.伤害吸收造成治疗效果,使用1.24处计算的值
1.51.超魔系法术冲击
1.52.使用法术,使用自然力量,使用精神力量的触发效果,类型按攻击源技能计算(这个有可能会比较复杂,和具体的技能有关,比如我记得好像raze伤害的来源并不是raze,而是触发raze的攻击,所以命中类型也是触发raze的技能类型,不一定是spell)。比如物品提供的使用法术有几率触发法术。法术,自然力量,精神力量的触发分别计算。对于每一类而言,每使用一次天赋,所有可以被触发的技能都会经过一次判定,在这次循环内可能有多个技能被触发,但是只要有一个技能被触发,此次循环结束后本回合内的其他天赋不会再次触发任何技能。
1.53.觉醒技meteoric crash触发,类型计算同上
1.54.觉醒技spell feedback触发,类型计算同上
1.55.高人born into magic 触发
1.56.觉醒技Elemental Surge触发