WoWInterface SVN Eui

[/] [Eui/] [script/] [SR.lua] - Rev 2

Compare with Previous | Blame | View Log

local E, C = unpack(select(2, ...))
if C["other"].sr ~= true then return end

local SR_REP_MSG = "%s: %+d (%d/%d)";
local rep = {};

local function SR_Update(self)
        local numFactions = GetNumFactions();
        
        for i = 1, numFactions, 1 do
                local name, _, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(i);
                if (not isHeader) or (hasRep) then
                        if not rep[name] then
                                rep[name] = barValue;
                        end
                        
                        local change = barValue - rep[name];
                        if (change > 0) then
                                rep[name] = barValue;
                                local msg = string.format(SR_REP_MSG, name, change, barValue - barMin, barMax - barMin);
                                
                                local info = ChatTypeInfo["COMBAT_FACTION_CHANGE"];
                                for j = 1, 4, 1 do
                                        local chatfrm = getglobal("ChatFrame"..j);
                                        for k,v in pairs(chatfrm.messageTypeList) do
                                                if v == "COMBAT_FACTION_CHANGE" then
                                                        chatfrm:AddMessage(msg, info.r, info.g, info.b, info.id);
                                                        break;
                                                end
                                        end
                                end
                        end
                end
        end
end

local frame = CreateFrame("Frame");
frame:RegisterEvent("UPDATE_FACTION");
frame:SetScript("OnEvent", SR_Update);
ChatFrame_AddMessageEventFilter("CHAT_MSG_COMBAT_FACTION_CHANGE", function() return true; end);

Compare with Previous | Blame