Цитата Сообщение от decemberx Посмотреть сообщение
DreamlØlz,
поиск новой плейты я твой взял, ты говорил он меньше лагает. В таблицу regions TidyPlates складывает, от туда вырвал, только он после этого их сразу обнуляет через SetTexCoord и рисует новые, что гораздо хуже же? И это ведь происходит только когда в память сохраняется новая плейта, а это очень редко, учитывая что даже в начале бг уже много плейт загрузились в память и сохранили мои изменения.

многое из того что ты написал я как обычно,возможно, пойму через месяц другой.

а пока, то что понял- поменял
PHP код:
local FindPlates
do
    
local regionIndex 0
    local Overlay 
= [=[Interface\Tooltips\Nameplate-Border]=]
    
    
local 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
    
    local 
function izvraczhenia(obj)
        
local threatglow,healthborder,castborder,castnostop,spellicon,highlight,name,level,dangerskull,raidicon,eliteicon obj:GetRegions()
        
local healthbar,castbar=obj:GetChildren()
        
healthborder:Hide()
        
castbar:Hide() 
        
castborder:Hide()
        
castnostop:Hide()
        
name:SetFont("Fonts\\ARIALN.TTF",10)
        
level:SetFont("Fonts\\ARIALN.TTF",8)
    
end
    
    FindPlates 
= function(self
        
local numRegions self:GetNumChildren()
        if 
numRegions ~= regionIndex then
            regionIndex 
regionIndex 1
            local obj 
select(regionIndexself:GetChildren())
            if 
IsNamePlate(obj) and not plates[objthen
                izvraczhenia
(obj)
                
plates[obj] = true
            end
            FindPlates
(self)
        
end
    end
end

WorldFrame
:HookScript("OnUpdate"FindPlates
то есть, почти ничего не понял, но понимаю что через OnUpdate это плохо и надо чета другое.
почему бы сразу не нарисовать в памяти 50-100 плейтов, зачем подгружать всякий раз и бегать с включенной OnUpdate?
Ну если брать старенький интел , к примеру как был у меня е6ххх, то сравнение 2х операндов для него на столько незначительно в плане распределения проц времени , что на это можно забить. Можешьк стати убедиться сам - сделать цикл от 1 до 100 , взять {"arr"={"arr2={}}} и через слэш команду вызвать это (имею в виду около 20 раз за итерацию получить доступ к последнему элементу массива), на моем е6600 подвисание было около пол секунды , аж заметно было.