30-50кб
да я только за, но хз как. пускай он и жрёт дофига, но не лагая он удобнее и оптимальнее для меня.
Вид для печати
Ну так да то то и оно , что у меня 1080р , а люди которые запускатью на других разрешениях ловят косяки ( Сейчас все работает проблем в принципи нет. Сейчас если Циклоппер поможет удалить дефолтный интерфейс (удалить под чистую) - то буду переписывать с нуля без глобальных переменных и xml близз интерфейс.
Ммм=) Смари у меня плейты работают как ... мб немного не по русски , но если рассуждать про ооп понтах то:
1) Этот кусок кода служит для поиска плейтов , рекурсивный перебор всего что есть на WorldFrame и счетчик (он по сути безполезен).
2) Нужно создать класс , обозвать его к примеру plate_meta
т.е
В твоем случае plate это будет твой класс.PHP код:
local plate_meta = {__index = CreateFrame"frame"}
local plate = plate_meta.__index
Далее тебе нужно создать что то , что будет инициализировать плейты (первая загрузка плейт) , назовем это что то Init
тогда нужно описать этот метод , а потом его вызывать:
далее наследуем методы из нашего класса в близовские плейты:PHP код:
function plate:Init()
--## вот этот кусок кода должен создавать шаблон твоей будующей плейты и прятать дефолтный мусор
end
Тут то и нужен тот кусок кода , что ты линканул , перед
нужно сделать следующее:PHP код:
plates[obj] = true
Константный указатель на обьект будет self , с ним то и будем делать всякие извращения.PHP код:
setmetatable(obj, plate_meta) -- унаследовали все методы от plate B obj
obj:Init() -- а вот и наша инициализация
plates[obj] = true
PS И совершил ты грех , так прими сию скверну - ах да вот она , так называемый нагреватель cpu :
Прямо грубейшая ошибка , каждый раз будет рекурсивный перебор всего массива regions , пока не наткнется на ключ (то что у тебя после точки) , для получения к нему доступа . Таких ситуаций нужно избегать любой ценой.PHP код:
local regions={}
regions.threatglow, regions.healthborder, regions.castborder, regions.castnostop,
regions.spellicon, regions.highlight, regions.name, regions.level,
regions.dangerskull, regions.raidicon, regions.eliteicon = obj:GetRegions()
regions.healthbar,regions.castbar=obj:GetChildren()
--теперь можно скрвыать, перекрашивать, менять текстуры, размер, шрифты и т.п. на каждом элементе неймплейта.
regions.healthborder:Hide() -- скрыл бордер здоровья
regions.castnostop:Hide() -- скрыл кастбар или че это? не протестил толком
regions.castborder:Hide() -- и его бордер
regions.name:SetFont("Fonts\\ARIALN.TTF",10) -- сменил шрифт и размер текста имени
Когда с таким встречаешься , логичнее получить доступ к массиву 1 раз , присвоив ему локальную переменную и уже потом пользоваться этой локальной переменной , что бы каждый раз не перебирать все элементы массива. Пока код короткий , этого не заметно , но стоит ему разростись ) Привет SetBackdrop() , точнее его бортики , которые при 40 плейтах садят фпс с 130 (спрятаны плейты) до 25 (показаны плейты).
Ну если брать старенький интел , к примеру как был у меня е6ххх, то сравнение 2х операндов для него на столько незначительно в плане распределения проц времени , что на это можно забить. Можешьк стати убедиться сам - сделать цикл от 1 до 100 , взять {"arr"={"arr2={}}} и через слэш команду вызвать это (имею в виду около 20 раз за итерацию получить доступ к последнему элементу массива), на моем е6600 подвисание было около пол секунды , аж заметно было.
Подскажите прикольную сборочку на подобие LUI V3. Только под русский клиент и что бы кушал мало памяти))))