Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Помогите найти адончик

Упомянутые в теме пользователи:

Показано с 1 по 8 из 8

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #2
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,202
    Поблагодарил(а)
    362
    Получено благодарностей: 1,439 (сообщений: 839).
    Репутация: 2399
    Набросал в принципи. Иконки появляются при наведении мышкой и сохраняются до выхода из игры для текущих имен. При следующем входе заново мышкой водить =) Можно в принципи для юнитов сделать , но пока так.



    PHP код:
    local iconSize 30; -- размер
    local iconX 
    0; -- х позиция
    local iconY 
    0; -- у позиция

    local nameplates
    guidsselect = {}, {}, select;
    local handler CreateFrame("frame")
    handler:SetScript("OnEvent", function(selfevent, ...) self[event](self, ...) end)

    local function IsNamePlate(frame)
        if 
    frame:GetName() then return falseend
        
    if frame:GetID() ~= 0 then return falseend
        
    if frame:GetObjectType() ~= "Frame" then return falseend
        
    if frame:GetNumChildren() == 0 then return falseend
        
    if frame:GetNumRegions() == 0 then return falseend
        
    return true;
    end

    local 
    function CreateClassIcon(self)
        if 
    self.done then return; end
        
        local glow
    overlaycastbarOverlayshieldedspellIconhighlightnameTextlevelTextbossIconraidIconstateIcon self:GetRegions()

        
    local classIcon CreateFrame("frame"nilself);
            
    classIcon:SetSize(iconSize,iconSize);
            
    classIcon:SetPoint("RIGHT"self"LEFT"iconX,iconY)
        
    local classTex classIcon:CreateTexture(nil"BACKDROP");
            
    classTex:SetAllPoints();
        
        
    self.classIcon classIcon;
        
    self.classTex classTex;
        
    self.nameText nameText;
        
    self.done true;
    end

    local 
    function Plate_OnShow(self)
        if 
    self.nameText and guids[self.nameText:GetText()] then
            self
    .classTex:SetTexture("Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes")
            
    self.classTex:SetTexCoord(unpack(CLASS_ICON_TCOORDS[guids[self.nameText:GetText()]]))
        else
            
    self.classTex:SetTexture("")
        
    end
    end

    local 
    function Plate_OnHide(self)

    end

    do
        
    local function IsMouseover(frame)
            
    local region select(6frame:GetRegions());
            if 
    region and region.IsShown then
                
    return region:IsShown() and true or false;
            
    end
            
    return false
        end
        
        
    function handler:UPDATE_MOUSEOVER_UNIT()
            
    guids[select(1UnitName("mouseover"))] = select(2UnitClass("mouseover"))
            if 
    GetMouseFocus():GetName()=="WorldFrame" then
                
    for frame in pairs(nameplates) do
                    if 
    frame:IsShown() and IsMouseover(framethen
                        
    if frame.classTex then
                            frame
    .classTex:SetTexture("Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes")
                            
    frame.classTex:SetTexCoord(unpack(CLASS_ICON_TCOORDS[select(2UnitClass("mouseover"))]))
                        
    end
                    
    else
                        if 
    frame.nameText and guids[frame.nameText:GetText()] then
                            frame
    .classTex:SetTexture("Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes")
                            
    frame.classTex:SetTexCoord(unpack(CLASS_ICON_TCOORDS[guids[frame.nameText:GetText()]]))
                        else
                            
    frame.classTex:SetTexture("")
                        
    end
                    end
                end
            end
        end
    end

    local Findnameplates
    ;
    do
        
    local lastChildren 0
        local time 
    0
        Findnameplates 
    = function(selfelapsed)
            
    time time elapsed
            
    if time .2 then return end
            local curChildren 
    self:GetNumChildren()
            if 
    curChildren~=lastChildren then
                lastChildren 
    curChildren
                
    for 1curChildren do
                    
    local frame select(iself:GetChildren())
                    if 
    frame:IsShown() and IsNamePlate(frame) and not nameplates[framethen
                        CreateClassIcon
    (frame)
                        
    frame:HookScript("OnHide"Plate_OnHide)
                        
    frame:HookScript("OnShow"Plate_OnShow)
                        
    nameplates[frame] = frame
                    end
                end
            end
            time 
    0
        end
    end

    WorldFrame
    :HookScript("OnUpdate"Findnameplates)
    handler:RegisterEvent("UPDATE_MOUSEOVER_UNIT"
    Последний раз редактировалось DreamlØlz; 29.09.2015 в 20:55.

  2. 2 пользователей сказали cпасибо DreamlØlz за это полезное сообщение:

    Dety (29.09.2015),Slaytor (29.09.2015)

Похожие темы

  1. Помогите найти аддоны!
    от ivan21 в разделе Корзина
    Ответов: 3
    Последнее сообщение: 02.03.2015, 22:58
  2. Помогите найти аддоны....
    от Gerrero в разделе Аддоны
    Ответов: 1
    Последнее сообщение: 25.07.2013, 10:04
  3. Помогите найти аддоны
    от cheetos в разделе Аддоны
    Ответов: 7
    Последнее сообщение: 22.01.2013, 16:25
  4. Помогите найти аддоны
    от Flecko в разделе Корзина
    Ответов: 5
    Последнее сообщение: 03.12.2012, 13:37
  5. Помогите понять..
    от Den_ в разделе Вопросы Logon, TBC, Legion, BFa, SL
    Ответов: 3
    Последнее сообщение: 14.03.2012, 20:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •