z22904220 发表于 2023-6-12 11:02:18

实现转身功能遇到坎坷,帮忙看下呗~

本帖最后由 z22904220 于 2023-6-12 11:02 AM 编辑

受某论坛朋友启发
想实现副号焦点跟随主号,对着焦点的目标输出,如果出现关键字“你必须面对目标。”,就TurnLeftStart()。如果出现SPELL_CAST_SUCCEED,就TurnLeftStop()。跟随输出用魔蜂实现,转身功能写入插件。代码片段如下:local function I(frame,event,...)
    if event == "COMBAT_LOG_EVENT_UNFILTERED" then
      local _,evnt,_,playername,_,_,_,_,_,_,_,face = ...
      if evnt == "SPELL_CAST_FAILED" and playername == UnitName('player') and face == "你必须面对目标。" then
                TurnLeftStart()
      else
                TurnLeftStop()

      end
    end
end
local F = CreateFrame("Frame")
F:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
F:SetScript("OnEvent",I)
能力实在有限,只能搞这种简单的。
用魔蜂打的太快,就会出现一帧一帧转身的情况,第05行的左转身能否有更优函数替换?



z22904220 发表于 2023-6-12 11:04:06

没有高级版权限,只能先来研究研究~

vshrd 发表于 2023-6-12 13:27:58

既然已经用到了事件
那么为什么不监测到一次关键字就直接一次性转一段时间呢

yuxi7yuxi 发表于 2023-6-12 14:40:55

看不懂不明觉厉~!~!

z22904220 发表于 2023-6-14 19:42:32

vshrd 发表于 2023-6-12 01:27 PM
既然已经用到了事件
那么为什么不监测到一次关键字就直接一次性转一段时间呢

大佬你好,感谢回复,目前的确实现了您说的一次性转一段时间,只是魔蜂那边一直在施法,会出现打一个技能,出一次关键字,执行一次左转,然后转了几毫秒,又开始打技能,又出关键字,又左转,反复这样就会出现一顿一顿的左转,知道侧面向目标。莫非要在输出魔蜂里加一段判断,判断关键字嘛?

vshrd 发表于 2023-6-16 09:07:46

z22904220 发表于 2023-6-14 07:42 PM
大佬你好,感谢回复,目前的确实现了您说的一次性转一段时间,只是魔蜂那边一直在施法,会出现打一个技能 ...

在进进阶区之前
这种需求肯定没办法做到完美
半自动和全自动之间的操作冲突一直都很让人头疼
我提出的思路也只是一个稍微优化一点的效果
没办法从根源解决
不过有一个问题你看我说的对不对
关于面向一定是个布尔值
也就是说要么是面向。要么就一定是背对
所以。假设你在背对的任何一个角度时转180度
那么结果就一定会从背对换成面向
你看是这个道理不
页: [1]
查看完整版本: 实现转身功能遇到坎坷,帮忙看下呗~