这礼拜打大秘 那个尸爆+地震实在是太销魂
所以就做了一个aura来监控地震周期
刚好有几个东西可以讲
0. 地震从第一次施放以后每20秒丢一次骰子
有骰中就放出来 不会因为任何事情(甚至灭团) 而delay这个周期
-> 所以来做个每20秒固定触发的aura
想法是让他20秒结束 并且结束时丢一个事件出来给自己接
因此我们会用到Scanevents
1. WeakAuras.Scanevents
https://github.com/WeakAuras/WeakAuras2/wiki/The-Aura-Environment
假如你已经会接事件的话 Weakaura可以提供自订的事件名称和参数
这在不同Aura要互相接收资讯时非常好用
语法上是WeakAuras.ScanEvents("事件名称",["参数1","参数2",...)
( [后面都是可省略的 要接的话用args[n]去接)
所以我做了 WeakAuras.ScanEvents("WA_EARTHQUAKED")
把他放在要用的Aura的 动作->事件隐藏视窗时触发
- http://i.imgur.com/W8DyiwQ.jpg http://i.imgur.com/Rq6sl43.jpg
但是当然这个Aura不会自己启动 那就再加两个触发:
a. 事件 / 战斗纪录 / 法术 / 光环应用 / 法术ID 240447 / 隐藏 3 秒
- http://i.imgur.com/sv2fTSI.jpg http://i.imgur.com/g1aokK9.jpg
b. 自订 / 事件 / WA_EARTHQUAKED
事件的触发内容里面写:
function(event, args)
if event == "WA_EARTHQUAKED" then
return true
end
end
拿来接我们刚刚用的WA_EARTHQUAKED
- http://i.imgur.com/FQnudjY.jpg
a,b 两个只要有一个触发就好 所以关系是任意触发
(BTW, 那个连结内还有讲aura_env 是另外一个好用的东西 改天再说!)
2. call DBM slash command
接事件不够 还要有个时间条
可是用Weakaura自带的progressbar又不能ping给队友看
那干脆直接call DBM的倒数条 简单轻松
-> 目标是做出打 "/dbm timer 20 地震预报" 会出现的效果
可是要怎么call?
来看DBM-Core/DBM-Core.lua 的code 里面有这段:
SlashCmdList["DEADLYBOSSMODS"] = function(msg)
...
elseif cmd:sub(1, 5) == "timer" then
代表这个是我们要的 跟timer有关的函数
所以把刚刚的触发内容改成:
function(event, args)
if event == "WA_EARTHQUAKED" then
RunScript('SlashCmdList["DEADLYBOSSMODS"]("timer 20 地震预报")')
return true
end
end
其中的RunScript代表他会跑像是宏内打 /run 后面接的内容
- http://i.imgur.com/g8wCg5O.jpg
这样就完成一个每20秒自动跑dbm计时条的aura了
还可以按shift ping给队友看XD
(然后就有人一直跟我说预报完没中有bug 阿就没出阿~~)
完成品: https://pastebin.com/zFF7ypwm
顺便附上一个倒数宏:
/run local GM,DPULL=GetMouseButtonClicked,SlashCmdList["DEADLYBOSSMODSPULL"]
if GM()=="RightButton" then num="8" elseif GM()=="MiddleButton" then num="0"
SendChatMessage("──暂停!──",(UnitInRaid("player")and "RAID" or "PARTY"))
else num="3" end DPULL(num)
左键数3秒 右键数8秒 中键停手XD