本帖最后由 idlng 于 2022-7-4 07:33 PM 编辑
参考楼上根据血量变化来检测是否在攻击. 可以写个例子
[Lua] 纯文本查看 复制代码 local thp = UnitHealth("target")
if checkdelay == nil then
checkdelay = 0
end
if thp == lastgethp and
GetTime() - checkdelay > 2 then
--2秒血量 没有变化 做点什么吧
lastgethp = UnitHealth("target")
checkdelay = GetTime()
end
如果复杂一点 就要创建一个frame
获取所有当前发生的events(事件) 每一个动作都会发生事件
events = {} 它是Table
delaytime = 0
i = 0
循环找发生的事件
for a,b in ipairs(events) do
if GetTime() - delaytime > 2 do
if b == "SPELL_CAST_FAILED" then --事件发生
要不要做点什么
i = i +1
if i >= 3 then
同一事件发生3次 换目标
end
delaytime = GetTime()
end
end
遍历这个表所有事件, 查找出你角色当前什么行为造成的什么事件,
例如, SPELL_CAST_FAILED --技能总是释放失败 触发该事件
或 如 PLAYER_REGEN_DISABLED -- 自我恢复关闭 表示进入战斗了
2秒查找一次发生事件
这是最源头写法,
|