LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 249|回复: 3

[wowbee] 求大佬指教:2秒攻击不到目标切换目标的指令

[复制链接]
发表于 2022-6-18 17:31:28 | 显示全部楼层 |阅读模式
求大佬指教:2秒攻击不到目标切换目标的指令
回复

使用道具 举报

发表于 2022-6-22 16:16:31 | 显示全部楼层
说实话,这个比较复杂判断条件,职业不一样   ,可以用距离判断,目标是否可攻击,然后清除当前目标,更好用的函数,需要进阶区,我还进不去
回复 支持 反对

使用道具 举报

发表于 2022-6-24 09:26:17 | 显示全部楼层
本帖最后由 blxyz521 于 2022-6-24 09:27 AM 编辑

判断怪的血量,如果血量变少,就继续循环。如果血量没变或者变多就记录时间1,继续循环。
如果血量还是没变或者变多,时间1已经有值就记录时间2,如果时间2-时间1>2就切换目标 清空时间1 否则继续循环
如果血量变少了,就清空时间1.继续循环

回复 支持 反对

使用道具 举报

发表于 2022-7-4 18:58:23 | 显示全部楼层
本帖最后由 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秒查找一次发生事件
这是最源头写法,



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-5-6 10:32 PM , Processed in 0.104758 second(s), 20 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表