想自己写一个利用事件监测技能有没有施放成功并计时的脚本。但是老是获取不到技能施放成功的数据,,不知道是哪里没写对
[Lua] 纯文本查看 复制代码 lua
local SPELL_NAME = "复仇者之盾" -- 要检测的技能名称
local IN_COMBAT = false -- 标记玩家是否处于战斗状态
local function CheckCombatLog()
local _, event, _, sourceName, _, _, _, destName, _, _, _, spellName = CombatLogGetCurrentEventInfo()
if event == "COMBAT_LOG_EVENT_UNFILTERED" and spellName == SPELL_NAME and sourceName == UnitName("player") and string.find(arg1, "复仇者之盾命中") then
print("技能命中目标:" .. destName)
end
end
local function ToggleInCombat()
IN_COMBAT = not IN_COMBAT
if IN_COMBAT then
print("进入战斗状态")
else
print("脱离战斗状态")
end
end
local frame = CreateFrame("Frame")
frame:SetScript("OnEvent", function(self, event, ...)
if event == "PLAYER_REGEN_DISABLED" then
ToggleInCombat()
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
elseif event == "PLAYER_REGEN_ENABLED" then
ToggleInCombat()
frame:UnregisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
elseif event == "COMBAT_LOG_EVENT_UNFILTERED" and IN_COMBAT then
CheckCombatLog()
end
end)
frame:RegisterEvent("PLAYER_REGEN_DISABLED")
frame:RegisterEvent("PLAYER_REGEN_ENABLED")
|