文章来自NGA:AKA_Zhouzhou (https://bbs.nga.cn/read.php?tid=41997804&rand=32 )
注意1:这些命令,只能在网页端使用,本地的Warcraft Logs Companion客户端中虽然能看到战报,但是无法使用命令查询。
注意2:删除筛选条件:点筛选条件一行最右边的叉子。
一、通用的一些查询语句
忽略某些BOOS的战斗数据
我们正常打开一个战报。然后点击第一个选项,全程战斗记录。
接下来点开伤害标签。会发现包含了无效的载具战。
现在一般团队看DPS,都会过滤掉烈焰巨兽,霍迪尔,将军这三场有失公平的战斗。那么我们只要在右侧过滤条件中输入命令后回车即可达到效果。
过滤后的数据就是我们想要的DPS伤害排名数据了。
BOSS战ID:烈焰巨兽 744,掌炉者伊格尼斯 745,锋鳞 746,XT-002拆解者 747,钢铁议会 748,科隆加恩 749,欧尔莉亚 750,霍迪尔 751,托里姆 752,弗蕾雅 753,米米尔隆 754,维扎克斯将军 755,尤格萨隆 756,观星者奥尔加隆 757。
encounterID NOT IN (744,751,755) 这个是比较简单的用于团队考核过滤某一些boos的查询语句,这个语句当中过滤了烈焰巨兽,霍迪尔,将军的,如果有需要过滤别的BOOS可以自行在后面添加战斗ID。
查询药水使用状态
选中对应战斗,选择分析->事件->摘要,输入命令。
(type = 'applybuff' AND ability.name IN ('加速','狂野魔法')) 这个可以查询本次战斗团员药水的使用情况,帮你找到团队中不吃药的混子。特别是野团,有时候缺少DPS需要吃药水的,但是总有几个混子不吃药,可以用这个查询语句直接把他查出来
查询使用药剂的角色集合
这个是使用脚本进行过滤,会更加高级和智能一点,通过wcl查询语句过滤的话只能够过滤出吃过药水的玩家,但是通过脚本可以直接过滤出没有吃药水的玩家
const castAgentiaPlayerList = new Set()
pinMatchesFightEvent = (event, fight) => {
return (event.type === 'damage' && (event.source.type === 'Player') && !(castAgentiaPlayerList.has(event.source.name)))
}
initializePinForFight = (fight) => {
fight.allEvents.forEach(event => {
if (['applybuff', 'removebuff'].includes(event.type) && ['加速', '狂野魔法', '坚不可摧'].includes(event.ability.name)) {
castAgentiaPlayerList.add(event.source.name)
}
})
}
二、XT-002拆解者
查询拆解者减伤情况
这次要选到分析->事件->摘要中,然后在过滤命令里,先输入第一行命令,回车后,再输入第二行命令,再回车就能得到我们想要的结果了。
(type = 'cast' AND source.name = 'XT-002拆解者' AND ability.name = '发脾气')
(type = 'cast' AND ability.name IN ('神圣牺牲','神圣赞美诗'))查询拆解者重力炸弹放人群
选择分析->事件->摘要,输入命令
(ability.name = '重力炸弹' AND source.type = 'player' AND target.type = 'player') 通过该语句可以查询出重力炸弹造成的队友伤害,根据上图可以理解为Duckdog术士使用了重力炸弹对下图中的那么多人造成了伤害,所以罪魁祸首就是他!这个是真的很好用,可以直观的看到是谁把重力炸弹放人群,导致吸人,因为吸人就会产生误伤被WCL所记录
查询对生命火花的伤害排行
这次要点到分析->图表->伤害,然后输入查询命令。
(target.name = '生命火花' AND rawDamage > 0) 通过该语句可以查询出团队所有人对生命火花造成的伤害,从而能够看到是谁没有转火花,导致火花打得很慢。可以从上面这张图中看到,有人的火花伤害还没有打过T,这肯定是有问题的。
三、霍迪尔
查询霍迪尔风暴雷云传云记录
点开分析->事件->摘要,然后输入查询命令回车,即可看到雷云传递情况。
(ability.name = '风暴之力' AND source.type = 'player') 通过上图可以看出远程之间传递是没有问题的,近战传给远程也是没有问题的,如果近战传给了大量近战就有问题了。
四、托里姆
查询托里姆闪电链连人
选分析->事件->摘要,输入查询命令。
(ability.name = '闪电链' AND target.type = 'player' AND source.name = '托里姆') 这里我们看同时间点谁中了闪电链,就能看出一个闪电链打了几个人,我们看到第三个和第五个闪电链打中了5人,这个站位是肯定有问题的。这个时候我们通过录像回放就能找到这个时间谁站错位置而找到问题选手了。
查询吃到3层BUFF后的闪电充能
还是选分析->事件->摘要,然后输入命令。
(type = "applybuffstack" AND ability.name = "闪电充能" AND stack >= 3) OR (target.type = 'player' AND ability.name = '闪电充能') 上图中我们看到闪电充能后面带3数字开始都是没躲开技能的。
五、维扎克斯将军
1. 查询将军打断漏断
选中将军的战斗,然后选择分析->事件->摘要,输入命令。
(type IN ('begincast','cast') AND ability.name = '灼热烈焰') OR (type = 'interrupt' AND source.type = 'player') |
这个语句可以查询到将军的打断漏断,从而找到对应的责任人
2. 查询无面者印记吸人
选中将军的战斗,然后选择分析->事件->摘要,输入命令。
(source.name = '维扎克斯将军' AND ability.name = '无面者的印记' AND target.type = 'player' AND type IN ('cast','damage')) |
通过这个语句可以查询到无面者印记吸人的记录,可以结合时间轴和当时的站位图来判断是否有出人群,或者一直站在人群当中不动的
六、尤格萨隆
查询心灵疾病相互传递记录
(type = 'applydebuff' AND ability.name = '心灵疾病' AND target.type = 'player' AND source.type = 'player') |
通过这个语句可以查询到心灵疾病的传递记录,首先是谁中了心灵疾病,然后传递给了谁。这样就属于是没有第一时间远离中了debuff的人。
七、奥尔加隆
查询观星吃到宇宙重击
选中奥尔加隆的战斗,选择分析->事件->摘要,输入命令。(这里筛选了宇宙重击伤害大于9000的数据,也就是距离太近,并且第二句筛选了死亡记录,看宇宙重击是否造成死亡)
(ability.name = '宇宙重击' AND target.type = 'player' AND effectiveDamage > 9000)
(inCategory('deaths') = true AND target.type = 'player')很清晰的就能看到谁吃到了宇宙重击,并且可以看到吃到宇宙重击之后是否死亡。可以根据团队来判断是吃到宇宙重击就罚款还是吃宇宙重击死亡罚款
查询观星死于大爆炸
依然是在观星的战斗中查询,删除之前筛选,输入命令
(ability.name = '大爆炸' AND source.name = '观察者奥尔加隆' AND target.type = 'player') 这里我们团队是正常的,AM在吃大爆炸。
查询是否毛到坍缩星
依然是在观星的战斗中查询,杀出之前的筛选,输入命令。
(target.name = '坍缩星' AND rawDamage > 0 AND source.type = 'player' AND target.marker NOT IN (8)) 这里我们看到标记为菱形的是要爆的星,其他星如果也有各种伤害,或者要爆的星有多人给到伤害,就会出问题