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

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

Страница 2 из 2 ПерваяПервая 12
Показано с 13 по 23 из 23
  1. #13
    Ветеран форума Аватар для Chrone
    Регистрация
    14.03.2013
    Адрес
    Дарнас
    Сообщений
    1,005
    Поблагодарил(а)
    181
    Получено благодарностей: 89 (сообщений: 71).
    Репутация: 537
    Цитата Сообщение от DreamlØlz Посмотреть сообщение
    Да , там при обновлении кадров берет значение статусбара и записывает его в строчку.

    - - - Updated - - -

    Ща сек))
    а то с моей машинкой мне порой на бг тяжко
    https://www.heroicstrike.org/
    Цитата Сообщение от Netherheal Посмотреть сообщение
    Кап защиты: 560 для цлк+рс, а не 540. 540 только для ргеров. в ЦЛК лвл боссов 85.
    .
    Цитата Сообщение от Dmitry272 Посмотреть сообщение
    Предложение вааще убрать ворота , нет ворот - нечему ломаться
    Цитата Сообщение от Wpq Посмотреть сообщение
    ПОСЛЕ КАЖДОГО ВАЙПА КАЖДЫЙ ЧЕЛОВЕК УМИРАЕТ И БЕЖИТ В ИНСТ А НЕ ВСТАЁТ ПЕРЕРОЖДЕНИЕМ ИЛИ ЭСЭСОМ ИЛИ ХАНТЫ ПРИТВОРЯТСЯ.

  2. #14
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,182
    Поблагодарил(а)
    359
    Получено благодарностей: 1,438 (сообщений: 838).
    Репутация: 2398
    Немного много текста вышло , такой метод наиболее производительный будет.

    OnUpdate идет только проверка num ~= lastChildren , т.е 1 if , 1 фрейму обрабатывает только 1 раз, после того как плейта обработана обновление текста будет только при появлении плейты на экране и обновлении значения статус бара (при получении обьектом урона).

    PHP код:
    local __plates__hooks = {}, {["OnShow"] = {}, ["OnValueChanged"] = {}}

    local Update
    do
        
    local selectselectformat
        Update 
    = function(obj)
            
            if 
    obj.__text and obj.__owner:IsShown() then obj.__text:Update() end
            
            
    if obj.__text then return end
                
                local __text 
    obj:CreateFontString()
                
    __text:SetFont("Fonts\\ARIALN.TTF"10"OUTLINEMONOCHROME")
                
    __text:SetPoint("CENTER"obj)
                
    __text.__owner obj
                
                
    function __text:Update()
                    
    local __owner self.__owner
                    local min
    max __owner:GetValue(), select(2__owner:GetMinMaxValues())
                    
    self:SetFormattedText("%s - %d%s",(min>999999 and f("%.1fm"min/1e6)) or (min>999 and f("%.1fk"min/1e3)) or f("%d"min), min/max*100"%")
                
    end
            obj
    .__text __text
        end
    end

    local SetHooks
    do
        
    local pairs pairs
        local frame
        SetHooks 
    = function(obj)
            
    frame obj:GetChildren() or false
            frame
    .__owner obj
            
    for hooktable in pairs(__hooks) do
                if 
    frame and frame:HasScript(hook) and not __hooks[hook][framethen
                    frame
    :HookScript(hookUpdate)
                    
    Update(frame)
                    
    __hooks[hook][frame] = true
                end
            end
        end
    end

    local IsNamePlate
    do
        
    local Overlay = [=[Interface\Tooltips\Nameplate-Border]=]
        
    IsNamePlate = function(obj)
            
    local Name obj:GetName()
            
    local _OverlayRegion obj:GetRegions()
            if(
    Name)then return end
            
    return OverlayRegion and OverlayRegion:GetObjectType() == "Texture" and OverlayRegion:GetTexture() == Overlay
        end
    end

    local FindPlates
    do
        
    local selectrawgetrawsetlastChildren selectrawgetrawset0
        FindPlates 
    = function(self)
            
    local num self:GetNumChildren()
            if 
    num ~= lastChildren then
                
    for 1num do
                    
    local obj select(iself:GetChildren())
                    if 
    IsNamePlate(obj) and not rawget(__platesobjthen
                        SetHooks
    (obj)
                        
    rawset(__platesobjtrue)
                    
    end
                end
                lastChildren 
    num
            end
        end
    end

    WorldFrame
    :HookScript("OnUpdate"FindPlates

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

    Chrone (28.11.2015)

  4. #15
    Ветеран форума Аватар для Chrone
    Регистрация
    14.03.2013
    Адрес
    Дарнас
    Сообщений
    1,005
    Поблагодарил(а)
    181
    Получено благодарностей: 89 (сообщений: 71).
    Репутация: 537
    Цитата Сообщение от DreamlØlz Посмотреть сообщение
    Немного много текста вышло , такой метод наиболее производительный будет.

    OnUpdate идет только проверка num ~= lastChildren , т.е 1 if , 1 фрейму обрабатывает только 1 раз, после того как плейта обработана обновление текста будет только при появлении плейты на экране и обновлении значения статус бара (при получении обьектом урона).

    PHP код:
    local __plates__hooks = {}, {["OnShow"] = {}, ["OnValueChanged"] = {}}

    local Update
    do
        
    local selectselectformat
        Update 
    = function(obj)
            
            if 
    obj.__text and obj.__owner:IsShown() then obj.__text:Update() end
            
            
    if obj.__text then return end
                
                local __text 
    obj:CreateFontString()
                
    __text:SetFont("Fonts\\ARIALN.TTF"10"OUTLINEMONOCHROME")
                
    __text:SetPoint("CENTER"obj)
                
    __text.__owner obj
                
                
    function __text:Update()
                    
    local __owner self.__owner
                    local min
    max __owner:GetValue(), select(2__owner:GetMinMaxValues())
                    
    self:SetFormattedText("%s - %d%s",(min>999999 and f("%.1fm"min/1e6)) or (min>999 and f("%.1fk"min/1e3)) or f("%d"min), min/max*100"%")
                
    end
            obj
    .__text __text
        end
    end

    local SetHooks
    do
        
    local pairs pairs
        local frame
        SetHooks 
    = function(obj)
            
    frame obj:GetChildren() or false
            frame
    .__owner obj
            
    for hooktable in pairs(__hooks) do
                if 
    frame and frame:HasScript(hook) and not __hooks[hook][framethen
                    frame
    :HookScript(hookUpdate)
                    
    Update(frame)
                    
    __hooks[hook][frame] = true
                end
            end
        end
    end

    local IsNamePlate
    do
        
    local Overlay = [=[Interface\Tooltips\Nameplate-Border]=]
        
    IsNamePlate = function(obj)
            
    local Name obj:GetName()
            
    local _OverlayRegion obj:GetRegions()
            if(
    Name)then return end
            
    return OverlayRegion and OverlayRegion:GetObjectType() == "Texture" and OverlayRegion:GetTexture() == Overlay
        end
    end

    local FindPlates
    do
        
    local selectrawgetrawsetlastChildren selectrawgetrawset0
        FindPlates 
    = function(self)
            
    local num self:GetNumChildren()
            if 
    num ~= lastChildren then
                
    for 1num do
                    
    local obj select(iself:GetChildren())
                    if 
    IsNamePlate(obj) and not rawget(__platesobjthen
                        SetHooks
    (obj)
                        
    rawset(__platesobjtrue)
                    
    end
                end
                lastChildren 
    num
            end
        end
    end

    WorldFrame
    :HookScript("OnUpdate"FindPlates
    скоро спасибки на вас закончатся

    кстати можно в филгере сделать проки в 2 строки ?
    https://www.heroicstrike.org/
    Цитата Сообщение от Netherheal Посмотреть сообщение
    Кап защиты: 560 для цлк+рс, а не 540. 540 только для ргеров. в ЦЛК лвл боссов 85.
    .
    Цитата Сообщение от Dmitry272 Посмотреть сообщение
    Предложение вааще убрать ворота , нет ворот - нечему ломаться
    Цитата Сообщение от Wpq Посмотреть сообщение
    ПОСЛЕ КАЖДОГО ВАЙПА КАЖДЫЙ ЧЕЛОВЕК УМИРАЕТ И БЕЖИТ В ИНСТ А НЕ ВСТАЁТ ПЕРЕРОЖДЕНИЕМ ИЛИ ЭСЭСОМ ИЛИ ХАНТЫ ПРИТВОРЯТСЯ.

  5. #16
    Эксперт Аватар для BahnY[Vipous]
    Регистрация
    15.09.2013
    Адрес
    Казахстан. Алматы.
    Сообщений
    500
    Поблагодарил(а)
    691
    Получено благодарностей: 152 (сообщений: 104).
    Репутация: 152
    Ппц у вас столько не нужных аддонов, которые попосту мешают.

  6. #17
    Ветеран форума Аватар для Chrone
    Регистрация
    14.03.2013
    Адрес
    Дарнас
    Сообщений
    1,005
    Поблагодарил(а)
    181
    Получено благодарностей: 89 (сообщений: 71).
    Репутация: 537
    Цитата Сообщение от Bahamut(Platinum) Посмотреть сообщение
    Ппц у вас столько не нужных аддонов, которые попосту мешают.
    кто сказал не нужных на бгшке к примеру не помешает знать где шелуха всякая бродит
    https://www.heroicstrike.org/
    Цитата Сообщение от Netherheal Посмотреть сообщение
    Кап защиты: 560 для цлк+рс, а не 540. 540 только для ргеров. в ЦЛК лвл боссов 85.
    .
    Цитата Сообщение от Dmitry272 Посмотреть сообщение
    Предложение вааще убрать ворота , нет ворот - нечему ломаться
    Цитата Сообщение от Wpq Посмотреть сообщение
    ПОСЛЕ КАЖДОГО ВАЙПА КАЖДЫЙ ЧЕЛОВЕК УМИРАЕТ И БЕЖИТ В ИНСТ А НЕ ВСТАЁТ ПЕРЕРОЖДЕНИЕМ ИЛИ ЭСЭСОМ ИЛИ ХАНТЫ ПРИТВОРЯТСЯ.

  7. #18
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    Цитата Сообщение от DreamlØlz Посмотреть сообщение
    Да , там при обновлении кадров берет значение статусбара и записывает его в строчку.

    - - - Updated - - -

    Ща сек))
    Ну это сотря с кокой стороны посмотреть, даже проверил, при малом количестве плейтов к примеру если это будет арена то через онапдейт грузит меньше, но при большом, ситуация координально меняется)

  8. #19
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,182
    Поблагодарил(а)
    359
    Получено благодарностей: 1,438 (сообщений: 838).
    Репутация: 2398
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Ну это сотря с кокой стороны посмотреть, даже проверил, при малом количестве плейтов к примеру если это будет арена то через онапдейт грузит меньше, но при большом, ситуация координально меняется)
    OnUpdate при каждом обновлении кадра берет GetMinMaxValues , GetValue , string.format и записывает это в строчку , мой же вариант делает то же самое , только при появлении плейты на экране 1 раз и только при изменении значения статус бара. По поводу OnUpdate , нужно всеми возможными способами избегать его , особенно где много обьектов.

  9. #20
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    Да я понимаю что OnUpdate нужно избегать, просто я к чему, что если верить аддонам потипу InterfaceUsage и тд, то когда плейтов мало то грузит проц меньше чем твой вариант, но када много то беда, если тока к примеру заходить арену то можно не заморачиваться))

  10. #21
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,182
    Поблагодарил(а)
    359
    Получено благодарностей: 1,438 (сообщений: 838).
    Репутация: 2398
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Да я понимаю что OnUpdate нужно избегать, просто я к чему, что если верить аддонам потипу InterfaceUsage и тд, то когда плейтов мало то грузит проц меньше чем твой вариант, но када много то беда, если тока к примеру заходить арену то можно не заморачиваться))
    Этот аддон какую то билеберду пишет) Как может пустой аддон что то кушать кроме памяти? Верно - нет вызовов нет и нагрузки на проц. Хз как ты тестил хуки с онупдейтом. В любом случаи хук будет стоять и ничего не делать , а онупдейт будет 60 раз в секунду менять текущее значение.

  11. #22
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    180
    Поблагодарил(а)
    46
    Получено благодарностей: 114 (сообщений: 60).
    Репутация: 114
    Ну я просто сравнил результат в этом аддоне на фане при малом количестве плейтов(тут результат получился у онапдейта лучше) и в самой толпе с вендорами (ну тут результат очевидный), мб я несовсем правильно понимаю как он считает но тем не менее, чем ниже циферка в CPU Time тем лучше)). вроде коректно считает смотря на результаты и других аддонов что висели. зы Enable Script Profiling не забыть галочку поставить)

  12. #23
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,182
    Поблагодарил(а)
    359
    Получено благодарностей: 1,438 (сообщений: 838).
    Репутация: 2398
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Ну я просто сравнил результат в этом аддоне на фане при малом количестве плейтов(тут результат получился у онапдейта лучше) и в самой толпе с вендорами (ну тут результат очевидный), мб я несовсем правильно понимаю как он считает но тем не менее, чем ниже циферка в CPU Time тем лучше)). вроде коректно считает смотря на результаты и других аддонов что висели. зы Enable Script Profiling не забыть галочку поставить)
    Ну да все верно. Тебе нужно время, затраченное процессором на обработку задачи . Вопрос только в том , в какой величине он это измеряет? Это секунды , тики или же он отображает загрузку процессора?

    - - - Updated - - -

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

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. ник нейми
    от омг в разделе WoW Circle 4.3.4 x100(УСТАРЕЛ)
    Ответов: 9
    Последнее сообщение: 12.03.2015, 16:03
  2. Иконки тотемов на неймплейнтах
    от Breakdown в разделе Аддоны
    Ответов: 12
    Последнее сообщение: 12.10.2014, 14:31
  3. Ищу неймплейты
    от Creation в разделе Корзина
    Ответов: 6
    Последнее сообщение: 04.02.2014, 21:04
  4. Баг или хитрость на смену ник-нейма :)
    от FeaTuRinG в разделе Баги веб ресурсов
    Ответов: 1
    Последнее сообщение: 29.01.2013, 21:44

Ваши права

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