PHP код:
local Core = CreateFrame("MessageFrame", nil, UIParent);
Core:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED");
Core:SetScript("OnEvent", function(self, event, ...) return self[event](self, ...) end);
Core:SetPoint("CENTER", UIParent, 0, 0); -- Расположение фрейма относительно центра;
Core:SetSize(512, 60);
Core:SetTimeVisible(3); -- Длительность отображения текста (сек.);
Core:SetFadeDuration(0.5);
Core:SetFading(true);
Core:SetIndentedWordWrap(true);
Core:SetInsertMode("TOP");
Core:SetFrameStrata("DIALOG");
Core:SetFrameLevel(1);
Core:SetToplevel(true);
Core:SetFontObject("ErrorFont"); -- Шрифт;
local GetSpellLink, UnitGUID, select = GetSpellLink, UnitGUID, select;
local SpellSchoolID = {
[1] = "[Physical]", -- [Physical];
[2] = "[Holy]", -- [Holy];
[4] = "[Fire]", -- [Fire];
[8] = "[Nature]", -- [Nature];
[16] = "[Frost]", -- [Frost];
[32] = "[Shadow]", -- [Shadow];
[64] = "[Arcane]", -- [Arcane];
};
function Core:IsReflected(destGUID, missType)
if missType ~= "REFLECT" then return false; end;
if destGUID ~= UnitGUID("player") then return false; end;
return true;
end;
function Core:IsInterrupted(sourceGUID)
if sourceGUID == UnitGUID("player") then return true; end;
if sourceGUID == UnitGUID("pet") then return true; end;
return false;
end;
function Core:COMBAT_LOG_EVENT_UNFILTERED(...)
local _, eventType, sourceGUID, sourceName, _, destGUID, destName, _, spellId, spellName = select(1, ...);
if eventType == "SPELL_MISSED" then
local missType = select(12, ...);
if self:IsReflected(destGUID, missType) then
self:AddMessage("Reflected [|cff20B2AA" ..spellName.."|r] --> ("..sourceName..")");
SendChatMessage("Reflected "..GetSpellLink(spellId).." --> ("..sourceName..")", "PARTY");
end;
elseif eventType == "SPELL_INTERRUPT" then
if self:IsInterrupted(sourceGUID) then
local extraSpellID, extraSpellName, extraSpellSchool = select(12, ...);
self:AddMessage("Interrupted [|cff20B2AA"..extraSpellName.."|r]"..SpellSchoolID[extraSpellSchool].." --> ("..destName..")");
SendChatMessage("Interrupted "..GetSpellLink(extraSpellID)..SpellSchoolID[extraSpellSchool].." --> ("..destName..")", "PARTY");
end;
end;
end;