魔兽世界玩家社区APP官网

标题: [70-防御] 发一个护甲和格挡值的换算表 [打印本页]

作者: 木子李皓    时间: 2023-5-27 11:36
标题: [70-防御] 发一个护甲和格挡值的换算表
15000护甲,300格挡值下护甲和格挡值在不同伤害的等价换算:
结论:考虑到现在满buff基本在18000血左右,在炽热防御者能应对的范围内,100护甲最多相当于约20格挡值。换言之,如果想要舍弃护甲堆格挡值,每点格挡值不要牺牲超过5点护甲。

基础伤害格挡后伤害100护甲等价格挡值格挡后伤害(炽热防御)100护甲等价格挡值(炽热防御)
10001171.300
150032621381.4
20005342.62841.8
25007433.34302.3
30009513.95762.7
350011604.67223.2
400013685.28683.6
450015775.910144.1
500017856.511604.6
550019947.213055
600022027.814515.5
650024118.515975.9
700026199.117436.4
750028289.818896.8
8000303610.420357.3
8500324511.121817.8
9000345311.723278.2
9500366212.424738.7
1000038701326199.1
10500407913.727659.6
11000428714.3291110
11500449615305710.5
12000470415.6320310.9
12500491316.3334911.4
13000512116.9349511.9
13500533017.6364112.3
14000553818.2378712.8
14500574718.9393313.2
15000595519.6407913.7
15500616420.2422414.1
16000637220.9437014.6
16500658121.5451615.1
17000678922.2466215.5
17500699822.8480816
18000720623.5495416.4
18500741524.1510016.9
19000762324.8524617.3
19500783225.4539217.8
20000804026.1553818.2
20500824926.7568418.7
21000845727.4583019.2
21500866628597619.6
22000887428.7612220.1
22500908329.3626820.5
23000929130641421
23500950030.6656021.4
24000970831.3670621.9
24500991731.9685222.4
250001012532.6699822.8
255001033433.2714423.3
260001054233.9728923.7
265001075134.5743524.2
270001095935.2758124.6
275001116835.8772725.1
280001137636.5787325.5
285001158537.1801926
290001179337.8816526.5
295001200238.5831126.9


做这个模拟主要是因为看到新帖iTank中直接给护甲和格挡值评分,没有考虑这两项指标的动态关系(当然我也觉得单一评分没必要考虑动态关系)。如果有玩家需要对特定boss配装,这个表格可能更有参考价值。查表时可以直接看格挡后承伤选择对应的行。比如我知道夜之魇打我大概4700一下,那么100护甲就相当于18~19格挡值。

附上源代码,可以根据自己装备修改数值:
[collapse]
  1. import numpy as np
  2. import pandas as pd
  3. def get_armor_DR(armor, attacker_level=73):
  4.     DR = armor / (armor + 400 + 85 * ((5.5 * attacker_level) - 265.5))
  5.     return DR
  6. def get_damage_before_block(raw_damage, armor, attacker_level=73):
  7.     DR = get_armor_DR(armor, attacker_level)
  8.     damage_before_block = raw_damage * (1-DR)
  9.     return damage_before_block
  10. def get_damage_after_block(raw_damage, armor, block_value, attacker_level=73, ardent_defender=False):
  11.     damage_before_block = get_damage_before_block(raw_damage, armor, attacker_level=attacker_level)
  12.     damage_before_block *= (1-0.06) # righteous fury
  13.     if ardent_defender:  
  14.         damage_before_block *= 0.7
  15.     damage_after_block = damage_before_block - block_value
  16.     if damage_after_block < 0:
  17.         damage_after_block = 0
  18.     return damage_after_block
  19. def get_equivalent_armor_block_value(base_armor, base_blockValue, raw_damage, attacker_level=73):
  20.     base_damage_after_block = get_damage_after_block(raw_damage, base_armor, base_blockValue, attacker_level)
  21.     # 10% extra armor from talent
  22.     mod_damage_after_block = get_damage_after_block(raw_damage, base_armor + 100 * 1.1, base_blockValue, attacker_level)
  23.     # 30% extra block value from talent
  24.     equivalent_block_value = (base_damage_after_block - mod_damage_after_block) / 1.3
  25.     base_damage_after_block_with_ardent_defender = get_damage_after_block(raw_damage, base_armor, base_blockValue, attacker_level, ardent_defender=True)
  26.     # 10% extra armor from talent
  27.     mod_damage_after_block_with_ardent_defender = get_damage_after_block(raw_damage, base_armor + 100 * 1.1, base_blockValue, attacker_level, ardent_defender=True)
  28.     # 30% extra block value from talent
  29.     equivalent_block_value_with_ardent_defender = (base_damage_after_block_with_ardent_defender - mod_damage_after_block_with_ardent_defender) / 1.3
  30.     return [round(raw_damage, 0), round(base_damage_after_block, 0), round(equivalent_block_value, 1),
  31.         round(base_damage_after_block_with_ardent_defender, 0), round(equivalent_block_value_with_ardent_defender, 1)]
  32. rawDamage = [*range(1000, 30000, 500)]
  33. base_armor = 15000
  34. base_blockValue = 300
  35. raw_data = list(map(lambda rd: get_equivalent_armor_block_value(base_armor, base_blockValue, rd), rawDamage))
  36. df = pd.DataFrame(np.array(raw_data), columns=[&#39;基础伤害&#39;, &#39;格挡后伤害&#39;, &#39;100护甲等价格挡值&#39;, &#39;格挡后伤害(炽热防御)&#39;, &#39;100护甲等价格挡值(炽热防御)&#39;])
  37. df.to_csv(&#39;护甲格挡值模拟_15000_300.csv&#39;)
复制代码
[/collapse]

7/3调整:表格上现在显示的是装备上的护甲和格挡值,天赋的10%护甲和30%格挡值被整合进了代码里。格挡价值稍有提升
作者: 123457108    时间: 2023-5-27 11:40
这个东西不错,很有价值,把之前群友们讨论的东西量化了
作者: 小菊花之米    时间: 2023-5-27 11:45
[del]我怎么记得,格挡成功时,是先用原始伤害值-格挡值,再进行护甲修正。   而不是先护甲修正,再减格挡值。[/del]我去翻翻WCL结论:先进行减伤修正,再进行格挡值减免。
作者: 慧眼识英雄1    时间: 2023-5-27 11:48
感谢分享,本帖由于为细分问题的提供了工具化的数据支撑,按照版规
奖励类:
一、优秀原创主题
3)技术攻略,对某一细分领域(比如某一BOSS/具体天赋/数据/物品/计算 或 原创宏/插件/工具帖)的专项攻略
技术攻略,基础奖励45声望及对应威望;排版优秀奖励30声望及对应威望;长期维护可追加奖励;奖励30声望,如有后续数据分析和总结的话,会补上其他的,
再次感谢
作者: 帆影哉    时间: 2023-5-27 11:53
我怎么记得,格挡成功时,是先用原始伤害值-格挡值,再进行护甲修正。   而不是先护甲修正,再减格挡值。我去翻翻WCL
先算格挡是dota,wow应该是先算护甲。wcl如果显示是反过来,我改代码
作者: Jacqueline季    时间: 2023-5-27 11:54
先算格挡是dota,wow应该是先算护甲。wcl如果显示是反过来,我改代码
刷了公会团的数据 (, 下载次数: 2) 可以看出,前后两击,坦克的BUFF没有变化前一击,硬吃,8850原始伤害,减免为66.67%(5590点),实际承受为2950点。后一击,格挡(343),6750原始伤害如果是先减格挡值再护甲修正,应该是(6750-343)*(100%-66.67%)= 2135
如果是先护甲修正再减格挡值,应该是  6750 *(100%-66.67%)- 343  = 1907实际承伤数据显示,应该是那我之前的记忆是错的高护甲下,格挡值的稳定减伤价值还是能看的,会被护甲修正放大。PS:图中坦克为防战,保持全程防御姿态。因此推断其他减伤效果,应该都是在格挡值修正伤害之前的。
作者: 特朗普大爷    时间: 2023-5-27 12:00
现在应该正常了吧?
作者: 小雨粑粑2012    时间: 2023-5-27 12:03
现在应该正常了吧?
Ok了 多谢
作者: JDLMDJIA    时间: 2023-5-27 12:04
面对团本boss时护甲的减伤基本优于格挡值,并且护甲受到一系列buff动态加成,在没法进一步堆护甲的情况下可以选择防御技能和格挡值并存的装备强化有效hp,减少被秒的风险。
作者: 武汉嘉瑞    时间: 2023-5-27 12:08

面对团本boss时护甲的减伤基本优于格挡值,并且护甲受到一系列buff动态加成,在没法进一步堆护甲的情况下可以选择防御技能和格挡值并存的装备强化有效hp,减少被秒的风险。
满护甲应该当前阶段还做不到,目前先不考虑。至于护甲和格挡值孰优孰劣,我觉得要算一下暴雪默认的护甲/格挡值占装等是多少。假设暴雪认为100护甲和15格挡值占同样的装等,那么单次承伤小于4000时,我会选择同装等格挡值高的,反之则会选护甲高的。另外格挡值在炽热防御者触发后收益更大,这一点也毋庸置疑。如果有生存压力,我可能会偏向参考表格中后两列。晚上有空的话我准备算一下暴雪默认的护甲/格挡值兑换比。
作者: 今夕何夕535    时间: 2023-5-27 12:14
满护甲应该当前阶段还做不到,目前先不考虑。至于护甲和格挡值孰优孰劣,我觉得要算一下暴雪默认的护甲/格挡值占装等是多少。假设暴雪认为100护甲和15格挡值占同样的装等,那么单次承伤小于4000时,我会选择同装等格挡值高的,反之则会选护甲高的。另外格挡值在炽热防御者触发后收益更大,这一点也毋庸置疑。如果有生存压力,我可能会偏向参考表格中后两列。晚上有空的话我准备算一下暴雪默认的护甲/格挡值兑换比。
建议:在精确计算时,带入常驻的6%正义之怒的免伤修正。
作者: 123457125    时间: 2023-5-27 12:17
[tid=27423022]Topic[/tid]
结论:考虑到现在满buff基本在18000血左右,在炽热防御者能应对的范围内,100护甲大约相当于20格挡值。[table]
[tr]
[td]基础伤害[/td]
[td]格挡后伤害[/td]
[td]100护甲等价格挡值[/td]
[td]格挡后伤害(炽热防御)[/td]
[td]100护甲等价格挡值(炽热防御)[/td][/tr]
[tr]
[td]1000[/td]
[
学到了
作者: 麻辣鸡翅    时间: 2023-5-27 12:18
建议:在精确计算时,带入常驻的6%正义之怒的免伤修正。
感谢,已修正。这样格挡值的收益更高了
作者: 钟情695    时间: 2023-5-27 12:25
假设主属性(力敏智精)为1,那么护甲价值=0.07,格挡值价值=0.67.
作者: 123457466    时间: 2023-5-27 12:26
格挡值就我个人的计算来看。它是不如护甲有价值的。
就按照BOSS平砍8000伤害,坦克满BUFF20000护甲,盾牌格挡值400。
经过护甲减免,减免后的伤害为2764,计算格挡值后2364。
按照暴雪的物品价值换算,提升300护甲(绿字)=提升14格挡值。
1.提升300护甲。经过护甲减免,减免后的伤害为2737,计算格挡值后2337。
2.提升14格挡值。经过护甲减免,减免后的伤害为2764,计算格挡值后2350。
这个300护甲=14格挡值有依据吗?
作者: 简0    时间: 2023-5-27 12:30
满护甲应该当前阶段还做不到,目前先不考虑。至于护甲和格挡值孰优孰劣,我觉得要算一下暴雪默认的护甲/格挡值占装等是多少。假设暴雪认为100护甲和15格挡值占同样的装等,那么单次承伤小于4000时,我会选择同装等格挡值高的,反之则会选护甲高的。另外格挡值在炽热防御者触发后收益更大,这一点也毋庸置疑。如果有生存压力,我可能会偏向参考表格中后两列。晚上有空的话我准备算一下暴雪默认的护甲/格挡值兑换比。
装等即护甲。除去绿字护甲(其实也没有几件绿字护甲装),同装等下奶装与防装护甲值都是一样的。
所以几乎不存在你所说的“同装等下,选择护甲高的装备”
说到这,我有一个很好的例子分享下。
如下图两件装备,你觉得那件好?
(, 下载次数: 8)
(, 下载次数: 11)
作者: 小雨敲窗y    时间: 2023-5-27 12:33
装等即护甲。除去绿字护甲(其实也没有几件绿字护甲装),同装等下奶装与防装护甲值都是一样的。
所以几乎不存在你所说的“同装等下,选择护甲高的装备”
说到这,我有一个很好的例子分享下。
如下图两件装备,你觉得那件好?
(, 下载次数: 9)
(, 下载次数: 7)
所以,我一直说没有真正意义上的血甲流,主要就是甲这个东西,是随着装等走的,同样装等同样护甲
作者: 陈嘉凯    时间: 2023-5-27 12:36
肯定是时光声望腿好。实际上需要考虑的是比如格挡戒指和紫罗兰戒指,魔鲨以外的防御披风和牌子格挡披风。精金雕像和巨人塑像。




欢迎光临 魔兽世界玩家社区APP官网 (https://huaijiufu.com/) Powered by Discuz! X3.5