Affdots无法正确判断灵魂交换后的Dot强度。你可以通过修改下面的代码进行修复
编辑插件文件夹里的AffDots.lua文件,将其中的CombatLog function, local CombatLog = {.... }替换为
Code (c):
local soulswapstorage = {}
local CombatLog = {
function(_,_,timestamp,event,_,source_GUID,_,_,_,dest_GUID,_,_,_, ...)
if dest_GUID == playerGuid and DmgBuffEvents[event] then AffDots:CheckDmgBuffs() end
if(source_GUID ~= playerGuid or (event ~= "SPELL_AURA_REFRESH" and event ~= "SPELL_AURA_APPLIED" and event ~= "SPELL_DAMAGE" and event ~= "SPELL_CAST_SUCCESS")) then return end
spell = select(1, ...)
if(event == "SPELL_CAST_SUCCESS" and spell == 86121) then --Inhale
soulswapstorage[30108] = targets[dest_GUID.."30108"]
soulswapstorage[corr_id] = targets[dest_GUID..corr_id]
soulswapstorage[980] = targets[dest_GUID.."980"]
end
if(event == "SPELL_CAST_SUCCESS" and spell == 86213) then --Exhale
soulswapstorage['time'] = timestamp
if soulswapstorage[30108] then targets[dest_GUID.."30108"] = {soulswapstorage[30108][1], GetTime(), soulswapstorage[30108][3] } end
if soulswapstorage[corr_id] then targets[dest_GUID..corr_id] = {soulswapstorage[corr_id][1], GetTime(), soulswapstorage[corr_id][3] } end
if soulswapstorage[980] then targets[dest_GUID.."980"] = {soulswapstorage[980][1], GetTime(), soulswapstorage[980][3], 0 } end
end
if(event == "SPELL_AURA_APPLIED" or event == "SPELL_AURA_REFRESH") then
if (((timestamp - (soulswapstorage['time'] or 0)) > .8))then
if(spell == 30108) then
targets[dest_GUID.."30108"] = { dot_damage[30108][1], GetTime(), dot_damage[30108][2] }
elseif(spell == corr_id or spell == 87389) then
targets[dest_GUID..corr_id] = { dot_damage[corr_id][1], GetTime(), dot_damage[corr_id][2] }
elseif(spell == 980) then
targets[dest_GUID.."980"] = { dot_damage[980][1], GetTime(), dot_damage[980][2], 0 }
end
end
end
end,
function(_,_,_,event,_,source_GUID,_,_,_,dest_GUID,_,_,_, ...)
if dest_GUID == playerGuid and DmgBuffEvents[event] then AffDots:CheckDmgBuffs() end
if(source_GUID ~= playerGuid or (event ~= "SPELL_AURA_REFRESH" and event ~= "SPELL_AURA_APPLIED" and event ~= "SPELL_DAMAGE")) then return end
spell = select(1, ...)
if(event == "SPELL_AURA_APPLIED" or event == "SPELL_AURA_REFRESH") then
if(spell == corr_id) then
targets[dest_GUID..corr_id] = {dot_damage[corr_id][1],GetTime(),dot_damage[corr_id][2]}
elseif(spell == 603) then
targets[dest_GUID.."603"] = {dot_damage[603][1],GetTime(),dot_damage[603][2],dot_damage[603][3]}
end
elseif(event == "SPELL_DAMAGE" and spell == 103964) then
targets[dest_GUID..corr_id] = {dot_damage[corr_id][1],GetTime(),dot_damage[corr_id][2]}
end
end,
function(_,_,_,event,_,source_GUID,_,_,_,dest_GUID,_,_,_, ...)
if dest_GUID == playerGuid and DmgBuffEvents[event] then AffDots:CheckDmgBuffs() end
if(source_GUID ~= playerGuid or (event ~= "SPELL_AURA_REFRESH" and event ~= "SPELL_AURA_APPLIED" and event ~= "SPELL_DAMAGE")) then return end
spell = select(1, ...)
if(event == "SPELL_AURA_APPLIED" or event == "SPELL_AURA_REFRESH") then
if(spell == 348) then
targets[dest_GUID.."348"] = {dot_damage[348][1],GetTime(),dot_damage[348][2]}
elseif(spell == 108686) then
targets[dest_GUID.."108686"] = {dot_damage[108686][1],GetTime(),dot_damage[108686][2]}
end
end
end,
}
或者直接用楼主上传的文件进行替换。
楼主附:还是有个小BUG。举个例子,三Dot中的无常消失后如果你在吸 放中补无常的话还是无法正确判断无常的强度