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(regionIndex, self:GetChildren())
if IsNamePlate(obj) and not plates[obj] then
izvraczhenia(obj)
plates[obj] = true
end
FindPlates(self)
end
end
end
WorldFrame:HookScript("OnUpdate", FindPlates)
то есть, почти ничего не понял, но понимаю что через OnUpdate это плохо и надо чета другое.
почему бы сразу не нарисовать в памяти 50-100 плейтов, зачем подгружать всякий раз и бегать с включенной OnUpdate?