За выведение инфы отвечает вот этот кусок кода:

Скрытый текст

Код:
function MageNuggetsSP_OnUpdate(self, elapsed) 
 self.TimeSinceLastUpdate = self.TimeSinceLastUpdate + elapsed;
 if (self.TimeSinceLastUpdate > MNsp_UpdateInterval) then   
        if (ttwFlag == false) then
            MNTorment_Frame:Hide();
        end
        local _, _, _, _, currRank11, _ = GetTalentInfo(1,14); --torment the weak
        local spellHit = RoundCrit(GetCombatRatingBonus(8));
        local critRating = RoundCrit(GetSpellCritChance(3));
        local hasteRating = ((GetCombatRatingBonus(20)/100) + 1);
        local misFlag = false;
        local faerieFlag = false;
        local j = 1;
        local jj = 1;
        ttwFlag = false;
        local buffName3, rank3, _, count3, _, _, _, _, _, _, spellId3 = UnitAura("target", j, "HARMFUL");
        while buffName3 do
            if (MageNugz.buffmonToggle == true) then
                if (currRank11 == 3) or (currRank11 == 2) or (currRank11 == 1) then
                    if(spellId3 == 31589) or (spellId3 == 55095) or (spellId3 == 45524) or (spellId3 == 12323) or (spellId3 == 18223) then
                        ttwFlag = true;
                        MNTorment_Frame:Show();
                    elseif (spellId3 == 3600) or (spellId3 == 13809) or (spellId3 == 2974) or (spellId3 == 25809) or (spellId3 == 1715) then
                        ttwFlag = true;
                        MNTorment_Frame:Show();
                    elseif (buffName3 == frostboltId) or (buffName3 == conecoldId) or (buffName3 == blastwaveId) or (buffName3 == frostfireId) or (buffName3 == chilledId) then
                        ttwFlag = true;
                        MNTorment_Frame:Show();
                    elseif (buffName3 == judgementjustId) or (buffName3 == infectedwoundsIdthen) or (buffName3 == thunderclapId) or (buffName3 == deadlythrowId) or (buffName3 == frostshockId) or (buffName3 == mindflayId) then
                        ttwFlag = true;
                        MNTorment_Frame:Show();
                    end
                end
            end
            if(spellId3 == 33198) then --misery
                spellHit = spellHit + 3.0;
                misFlag = true;
            elseif (spellId3 == 33197) then
                spellHit = spellHit + 2.0;
                misFlag = true;
            elseif (spellId3 == 33196) then
                spellHit = spellHit + 1.0;
                misFlag = true;
            end
            if(spellId3 == 770) then --Faerie Fire
                faerieFlag = true;
            end
            if(spellId3 == 12579) then --winter's chill
                if(count3 == 1) then
                    critRating = critRating + 1.0;
                elseif(count3 == 2) then
                    critRating = critRating + 2.0;
                elseif(count3 == 3) then
                    critRating = critRating + 3.0;
                elseif(count3 == 4) then
                    critRating = critRating + 4.0;
                elseif(count3 == 5) then
                    critRating = critRating + 5.0;
                end
            end
            if(spellId3 == 22959) then --scorch
                critRating = critRating + 5.0;
            end
            if(spellId3 == 17800) then --shadow mastery
                critRating = critRating + 5.0;
            end
            j = j + 1;
            buffName3, rank3, _, count3, _, _, _, _, _, _, spellId3 = UnitAura("target", j, "HARMFUL");
        end     
        local buffName2, rank2, _, count2, _, _, _, _, _, _, spellId2 = UnitAura("player", jj, "HELPFUL");
        while buffName2 do
            if(spellId2 == 28878) then
                spellHit = spellHit + 1;
            end
            if(spellId2 == 6562) then
                spellHit = spellHit + 1;
            end
            if(spellId2 == 10060) then --pushing the limit
                hasteRating = (hasteRating*1.20);
            end
            if(spellId2 == 70753) then --pushing the limit
                hasteRating = (hasteRating*1.12);
            end
            if(spellId2 == 2895) then --wrath of air tot
                hasteRating = (hasteRating*1.05);
            end
            if(spellId2 == 24907) then --Moonkin Aura
                hasteRating = (hasteRating*1.03);
            end
            if(spellId2 == 26297) then --berserking
                hasteRating = (hasteRating*1.20);
            end
            if(spellId2 == 12472) then --icy veins
                hasteRating = (hasteRating*1.20);
            end
            if(spellId2 == 2825) then --bloodlust
                hasteRating = (hasteRating*1.30);
            end
            if(spellId2 == 65980) then --bloodlust argent turny
                hasteRating = (hasteRating*1.30);
            end
            if(spellId2 == 32182) then --heroism
                hasteRating = (hasteRating*1.30);
            end
            if(spellId2 == 65983) then --heroism argent turny
                hasteRating = (hasteRating*1.30);
            end
            if(spellId2 == 16886) then --cfocus
                hasteRating = (hasteRating*1.20);
            end
            jj = jj + 1;
            buffName2, rank2, _, count2, _, _, _, _, _, _, spellId2 = UnitAura("player", jj, "HELPFUL");
        end 
        if(misFlag == false) then
            if (faerieFlag == true) then
                spellHit = spellHit + 3;
                if(UnitClass("Player") == 'Druid') then
                    critRating = critRating + 3.0;
                end
            end
        end
        if(UnitClass("Player") == 'Druid') then
            local nameD, _, _, _, currRankD, _ = GetTalentInfo(1,11) --cfocus 
            if(currRankD == 3) then
                hasteRating = (hasteRating*1.03)
            end
            if(currRankD == 2) then
                hasteRating = (hasteRating*1.02)
            end
            if(currRankD == 1) then
                hasteRating = (hasteRating*1.01)
            end
            local namebop, _, _, _, currRankbop, _ = GetTalentInfo(1,17) --Balance of Power
            if(currRankbop == 2) then
                spellHit = spellHit + 4;
            end
            if(currRankbop == 1) then
                spellHit = spellHit + 2;
            end
        end
        if(UnitClass("Player") == 'Mage') then
            local _, _, _, _, currRank7, _ = GetTalentInfo(3,6); --precision
            local _, _, _, _, currRank8, _ = GetTalentInfo(1,2); --arcane focus  
            local _, _, _, _, currRank9, _ = GetTalentInfo(1,22); --arcane power
            local _, _, _, _, currRank10, _ = GetTalentInfo(1,28); --netherwind presence
            if(currRank7 == 1) then
                spellHit = spellHit + 1.0;
            end
            if(currRank7 == 2) then
                spellHit = spellHit + 2.0;
            end
            if(currRank7 == 3) then
                spellHit = spellHit + 3.0;
            end
            if(currRank9 == 1) then
                if(currRank8 == 1) then
                    spellHit = spellHit + 1.0;
                end
                if(currRank8 == 2) then
                spellHit = spellHit + 2.0;
                end
                if(currRank8 == 3) then
                spellHit = spellHit + 3.0;
                end
            end
            if(currRank10 == 1) then
                hasteRating = (hasteRating*1.02);
            end
            if(currRank10 == 2) then
                hasteRating = (hasteRating*1.04);
            end
            if(currRank10 == 3) then
                hasteRating = (hasteRating*1.06);
            end
        end
        if(spellHit >= 17.0) then
            spellHit = "capped";
        else
            spellHit = spellHit.."%";
        end
        hasteRating = RoundCrit((hasteRating - 1)*100)
        abCastTime = RoundThree((2.5)/(1+(hasteRating/100)))
        if(MageNugz.abCastTimeToggle == true) then
            if(abCastTime < 1) then
                MNabCast_FrameText:SetText("|cffFF0000Capped")
            else
                MNabCast_FrameText:SetText("|cffFFFFFF"..abCastTime)
            end
        end
        MageNugSP_FrameText:SetText("|cffFF0000SP:|cffFFFFFF"..GetSpellBonusDamage(3).."\n|cffFF6600Crit:|cffFFFFFF"..critRating.."%".."\n|cffCC33FFHaste:|cffFFFFFF"..hasteRating.."%".."\n|cffFFFF33 Hit:|cffFFFFFF"..spellHit);
    self.TimeSinceLastUpdate = 0;
  end
end
[свернуть]

Насколько я понимаю, надо сделать фрейм для выведения данных, массив с талантами классов и дебафами на цели, влияющими на показатели, и прочее.