Цитата Сообщение от bulgakovt Посмотреть сообщение
Точнее помогает, но только показывает те классы на котором и стоит аддон. Не подскажешь как нужно его переписать чтобы показывал и для других классов? Многим будет интересно наверняка)

т.е. меня интересует именно отображение таргета и фокуса. а проблема в том, что хоть их и показывает, но только класс за который я играю. Например я играя за приста, могу видеть только что юзает другие присты(будь они в фокусе/таргете) а вот остальные классы не отображаются
Ну можно и так ...

- - - Updated - - -

Как то так:

Возможно будут дублироваться спелы , к примеру удар смерти у дк одновременно наносит урон и одновременно хилит , заглушку уже сам придумай, пока что нет времени.
PHP код:
local selectpairssortUnitGUIDUnitExistsGetSpellInfo selectpairstable.sortUnitGUIDUnitExistsGetSpellInfo

local showAnchors 
false
local units 
= {
    [
"player"] = {siz 32,sp 2growth "UP"limit 10hold 40= -250},
    [
"target"] = {siz 32sp 2growth "RIGHT"limit 10hold 4= -100280},
    [
"focus"] = {siz 32sp 2growth "RIGHT"limit 10hold 4= -10030},
}

local f CreateFrame"frame"

local frames = {}
for 
unitcfg in pairs(units) do
    
local anc CreateFrame("Frame"nilUIParent)
    
anc:SetSize(cfg.sizcfg.siz)
    
anc:SetPoint("CENTER"cfg.xcfg.y)
    if 
showAnchors then
        anc
.tex anc:CreateTexture()
        
anc.tex:SetAllPoints()
        
anc.tex:SetTexture(1,1,1)
    
end
    frames
[unit] = anc
end

local OnUpdate 
= function(selfelapsed)
    
self.hold self.hold elapsed

    
if self.hold 0 then
        self
:Hide()
    else
        
self:SetAlpha(self.hold)
    
end
end

local Compare 
= function(ab)
    if 
and b then
        
return a.hold b.hold
    end
end

local UpdatePosition 
= function(selfcfg)
    
sort(selfCompare)

    
local gsiz cfg.growthcfg.siz+cfg.sp
    
for 1#self do
        
local icon self[i]
        
        if 
not icon then return end
        icon
:ClearAllPoints()
        
local col = (1)
        
icon:SetPoint("CENTER"self, ((g=="LEFT" and -1) or (g=="RIGHT" and 1) or 0)*col*siz, ((g=="DOWN" and -1) or (g=="UP" and 1) or 0)*col*siz)
    
end
end

local CreateIcon 
= function(selfsiz)
    
local icon CreateFrame("frame"nilself)
    
icon:Hide()
    
icon:SetSize(sizsiz)
    
    
local tex icon:CreateTexture()
    
tex:SetAllPoints()
    
icon.tex tex
    
    icon
.hold 0
    icon
.parent self
    
    icon
:SetScript("OnUpdate"OnUpdate)
    
    
table.insert(selficon)
    
    return 
icon
end

local UpdateIcons 
= function(selftexturecfg)

    
local index 1
    local icon
    
    
for cfg.limit do
        
local tmp self[i] or CreateIcon(selfcfg.siz)
        
        if 
tmp:IsShown() then
            index 
index 1
        
else
            
icon self[index]
        
end
    end
    
    
if not icon then return end
    
    icon
.tex:SetTexture(texture)
    
icon.hold cfg.hold
    icon
:SetAlpha(1)
    
icon:Show()
    
    
UpdatePosition(selfcfg)
end

f
:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
f:SetScript("OnEvent", function(selfeventtimestampeventTypesourceGUIDsourceNamesourceFlagsdestGUIDdestNamedestFlags, ...)
    if 
eventType == "SPELL_CAST_SUCCESS" or eventType == "SPELL_HEAL" or eventType == "SPELL_DAMAGE" then
        local spellID 
= ...
        for 
unitcfg in pairs(units) do
            if 
UnitExists(unitthen
                
if UnitGUID(unit) == sourceGUID then
                    UpdateIcons
(frames[unit], select(3GetSpellInfo(spellID)), cfg)
                
end
            end
        end
    end
end