本帖最后由 blackshow0 于 2024-11-29 05:42 PM 编辑
[Lua] 纯文本查看 复制代码 local frame = CreateFrame("Frame")
frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
frame:SetScript("OnEvent", function(self, event, ...)
local subevent = select(2, ...)
local sourceGUID = select(3, ...)
local destGUID = select(6, ...)
local spellID = select(9, ...)
local spellName = select(10, ...)
if subevent == "SPELL_CAST_SUCCESS" and sourceGUID == UnitGUID("player") then
if spellID == XXXX then
if destGUID == UnitGUID("target") then
print("施加:", spellName, "到目标:", UnitName("target"))
end
end
end
if subevent == "SPELL_AURA_REMOVED" and sourceGUID == UnitGUID("player") then
if spellID == XXXX then
if destGUID == UnitGUID("target") then
print("施加的:", spellName, "从目标:", UnitName("target"), "消失")
end
end
end
end)

还是关于DOT检测不到重复释放的问题,如果监控战斗事件做到有头有尾是不是能实现,比如:我给目标施加了一个DOT,那必然有SPELL_CAST_SUCCESS信息,如果这个DOT没了,也会有SPELL_AURA_REMOVED信息,那么施法成功就是头,DOT没了就是尾,如果必须有头有尾来判定这个DOT是否存在是不是更简单。。比如做个表,施法成功了存进去,DOT移除了清空表,如果表内没信息调用那么就代表这个DOT确实没有了。就达到了这个DOT的施放条件了。。(时间判断周期伤害我是真的不会搞了啊,特别是GetTime(),这玩意儿不是获取的游戏系统时间么。。。) |