如果我们的攻略库对你有所帮助,不如ctrl+D收藏一发吧!

好的

WCL进阶技巧:寻找预读型治疗和救急型治疗

时间:2021-12-25 13:57 作者:NGA-网友 来源:NGA 手机订阅 神评论

新闻导语

大家好,我是来自祈福-小猫咪能有什么坏心思呢 公会的萨满玩家Momothewolf 在遥远的2020年11月22日,合老师提出了通过wcl的expression过滤器来实现筛选出救急治疗数据的方法 在当时受限于技术和精力,过滤方式出现了bug,然后没有都继续跟进下去,非常遗憾 不

大家好,我是来自祈福-小猫咪能有什么坏心思呢

公会的萨满玩家Momothewolf

在遥远的2020年11月22日,合老师提出了通过wcl的expression过滤器来实现筛选出救急治疗数据的方法

在当时受限于技术和精力,过滤方式出现了bug,然后没有都继续跟进下去,非常遗憾

不过,我在不久前非常有幸参与了wcl的Expression文档翻译工作,对相关功能有了更深入了理解。于是在合老师成果基础上继续进行了演进,并成功筛选出了我想要的数据。

本文将分为两部分:前半部分重点讲述分析思路与使用方法,后半部分讲述一些样板数据下我个人的分析结论。

请文明讨论,无论你怎么看待数据,数据就在那里。

本文采用CC BY 4.0协议

思路与用法

为方便讲解,我并不随意地找了一份WCL日志,并进入匿名模式进行分析:

https://classic.warcraftlogs.com/reports/a:Xrv4dWjLRQh69kfP#boss=-3&difficulty=0&type=healing

无论是合老师的“从日志中找出真正的预读型(救急型)治疗“、”如何区分纯混子和治疗量虽不高,但预读到位,救急有术的治疗”,还是为了明确治疗分工筛选“抬血”和“稳血”数据,或者是为了对一些特定条件触发的治疗特效(如卡拉波)进行预测,都是期望对治疗数据进行以下处理:

1. 设定一个合适的、可配置的阈值

2. 找出治疗生效前,目标血量在阈值内的治疗数据

3. 可以对技能进行筛选

这个需求看似简单,但因为魔兽自开放怀旧以来,战斗日志中对于开始施法的事件没有记录目标,所以无法针对治疗生效前的血量设置条件来筛选

比如在回放中经常看到治疗在发呆,就是这个缘故。没有成功加上去的治疗,在日志中是没有目标的。

因此,首先要解决的问题就是如何抓到治疗生效前的血量问题

参阅wcl expression中文指南,可以发现,要实现这个目的,可以用到的字段包括

resources.hitPoints —— 当前血量

resources.maxHitPoints —— 最大血量

resources.hpPercent —— 当前血量百分比

effectiveHealing —— 有效治疗

因为Expression的本质是面向事件的过滤,因此我们要在造成治疗事件上,计算出治疗生效前的血量,并基于它进行过滤

这很简单,直接用当前血量减去有效治疗就可以了,因此有了以下表达式

Code c:

effectiveHealing != 0 AND (resources.hitPoints - effectiveHealing)/resources.maxHitPoints < 50 AND (resources.hitPoints - effectiveHealing)/resources.maxHitPoints > 0

因为过量治疗的存在,首先要设置effectiveHealing != 0来过滤掉所有过量的事件

然后再计算治疗生效前血量,取0%~50%这个区间 (resources.hitPoints - effectiveHealing)/resources.maxHitPoints < 50 AND (resources.hitPoints - effectiveHealing)/resources.maxHitPoints > 0

大功告成,输入Filter Expression,回车然后点击治疗,就应该可以了。。。。吧?

结果如下,并不可以

过滤出了很多无效的数据,这也是当年我卡壳的原因

经过试验以及和wcl的沟通,终于确认了,因为怀旧日志中没有当前血量,因此在治疗事件中,resources.hitPoints 和 resources.maxHitPoints 都为0。上面的表达式只能在正式服工作。

好吧,难怪数据那么异常

但是resources.hpPercent是可以用的,我们可以通过它来推算治疗前的治疗

比如,假设非坦克玩家普遍为10000血,那么如果治疗者造成了5000有效治疗把目标顶满(resources.hpPercent = 100),则可以计算出治疗生效前的血量百分比为50%,没有超过期望阈值

同理,当治疗者造成4000点有效治疗时,极限目标血量百分比为90%

只需要列的条件足够多,就可以筛选出足够的符合条件的数据

因此有了以下公式

effectiveHealing != 0 AND resources.hpPercent > 0 AND target.role != "tank" AND (effectiveHealing > 5000 OR (effectiveHealing > 4000 AND resources.hpPercent < 90) OR (effectiveHealing > 3000 AND resources.hpPercent < 80) OR (effectiveHealing > 2000 AND resources.hpPercent < 70) OR (effectiveHealing > 1000 AND resources.hpPercent < 60) )

一样过滤过量治疗,过滤血量百分比为0即死亡事件。

因为假定目标是非坦克10000血作为模板,因此设置了target.role != "tank"来过滤目标是非坦克的事件

之后如 (effectiveHealing > 4000 AND resources.hpPercent < 90) 这样并列的条件,是为了根据治疗量筛选阈值范围内的事件

只列到了effectiveHealing > 1000 是为了避免被小额治疗数据干扰

输入Filter Expression,回车

大功告成,我们成功筛选出了1000有效治疗以上的,治疗生效以前目标血量约低于50%的数据

同理,如果过滤坦克的受到治疗,可以假定坦克15000血进行计算

effectiveHealing != 0 AND resources.hpPercent > 0 AND target.role = "tank" AND (effectiveHealing > 7500 OR (effectiveHealing > 6000 AND resources.hpPercent < 90) OR (effectiveHealing > 4500 AND resources.hpPercent < 80) OR (effectiveHealing > 3000 AND resources.hpPercent < 70) OR (effectiveHealing > 1500 AND resources.hpPercent < 60) )

建议根据你的需要,改变团员的平均血量、阈值、以及检测的边界

分析结论

过滤后的数据还是非常有意思的

以样板数据为例,我们可以分析一下个人发挥

团队救急治疗数据如下

可以看到主要是9号萨满在对团队进行救急,救急目标主要是术士

选择Done To Friendly可以查看治疗目标维度的急救分布

术士27需要急救的缺口特别特别多,规避伤害能力明显有问题或者明显缺爱

狂暴战36主要被链子急救,但最爱他的是15号牧师

坦克救急治疗数据如下

4号奶骑是真正意义上的坦克抬血治疗

点开4号奶骑构成可以查看主要急救技能为9级光和11级光,其中9级光施放582次,急救次数为35

一口13K的对坦克圣疗清晰可见

全程救了坦克40+次

同样可以分析团队治疗协作情况

在已经取得授权的前提下,这里使用Noobs的一次竞速log作为对比参照

https://classic.warcraftlogs.com/reports/7ajRTZLqXkyBt639

团队救急治疗数据如下

可以看到主要是千雪之訫在对团队进行救急,救急目标前七全是术士

同时千雪之訫全程施放了450个5级链子,有100跳都是救急治疗按照本次43分钟的战斗时间,全程1000hps计算,如果该萨满获得了卡拉波再来治疗,期望可以触发100次特效,特效占比约4%,约等于150治疗强度,远超过鸡蛋的奶锤

同时,需要应急治疗的成员仍然是术士,但最多也只需要80K应急治疗,规避伤害能力较好,血量够稳坦克救急治疗数据如下

仍然是奶骑对坦克救急治疗一骑绝尘,而且区分更明显了

次要抬坦克血的是奶德

同时,原本治疗第一的千雪之訫数据就很低了,难道他就是一个大毛子?

可以看到,他们坦克全程一共需要急救的治疗只有213.2k,所以是治疗配合合理,坦克长时间维持在较高的血线,不需要太多急救治疗

过滤前的对坦克治疗证明了这一点,其他治疗特别是祈晴娃娃和千雪之訫对坦克的非急救治疗很高,很好地稳了坦克血线

综上,通过分析两篇log,个人分析的结论如下:

1. 过滤后总治疗数据越少代表团队水平越高,成熟团队承伤稳定、规避伤害合理、稳血治疗够多,成员血量稳定,以至于不需要太多急救治疗

2. 奶骑是坦克的抬血主力,这和萨满、牧师稳坦克血的特性是互补的。而德鲁伊都可以。同理,因为奶骑这版本的法力甩不了那么多大光,因此需要其他治疗提供足够的支持,减少奶骑大光的使用。

3. 过滤后的数据可以作为评估卡拉波特效数据的参考,比如千雪期望特效就是4%

相关链接

原帖地址 :

https://bbs.nga.cn/read.php?tid=24295675

Wcl expression中文指南

https://bbs.nga.cn/read.php?tid=24295675

相关阅读:TBC,怀旧服,WCL,奶妈