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

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

Показано с 1 по 12 из 3349

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,202
    Поблагодарил(а)
    362
    Получено благодарностей: 1,439 (сообщений: 839).
    Репутация: 2399
    Цитата Сообщение от Dontcrybaby Посмотреть сообщение

    Скрытый текст













    [свернуть]


    Ну так да то то и оно , что у меня 1080р , а люди которые запускатью на других разрешениях ловят косяки ( Сейчас все работает проблем в принципи нет. Сейчас если Циклоппер поможет удалить дефолтный интерфейс (удалить под чистую) - то буду переписывать с нуля без глобальных переменных и xml близз интерфейс.

  2. #2
    Флудер года Аватар для Dontcrybaby
    Регистрация
    05.01.2012
    Адрес
    Москва / Волгоград
    Сообщений
    12,048
    Поблагодарил(а)
    57
    Получено благодарностей: 734 (сообщений: 533).
    Репутация: 1770
    Цитата Сообщение от DreamlØlz Посмотреть сообщение
    Ну так да то то и оно , что у меня 1080р , а люди которые запускатью на других разрешениях ловят косяки ( Сейчас все работает проблем в принципи нет. Сейчас если Циклоппер поможет удалить дефолтный интерфейс (удалить под чистую) - то буду переписывать с нуля без глобальных переменных и xml близз интерфейс.
    кинь кинь кинь

    - - - Updated - - -

    или подскажи как убрать кастбары

  3. #3
    Флудер года Аватар для Dontcrybaby
    Регистрация
    05.01.2012
    Адрес
    Москва / Волгоград
    Сообщений
    12,048
    Поблагодарил(а)
    57
    Получено благодарностей: 734 (сообщений: 533).
    Репутация: 1770
    Цитата Сообщение от decemberx Посмотреть сообщение
    Dontcrybaby, извращайся наздоровье, я уже всё..
    PHP код:
    local plates = {}

    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
        
        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
                    plates
    [obj] = true
                    local regions
    ={}
                    
    regions.threatglowregions.healthborderregions.castborderregions.castnostop,
                    
    regions.spelliconregions.highlightregions.nameregions.level,
                    
    regions.dangerskullregions.raidiconregions.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) -- сменил шрифт и размер текста имени
                end
                FindPlates
    (self)
            
    end
        end
    end

    WorldFrame
    :HookScript("OnUpdate"FindPlates
    это чей?

  4. #4
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,202
    Поблагодарил(а)
    362
    Получено благодарностей: 1,439 (сообщений: 839).
    Репутация: 2399
    Цитата Сообщение от decemberx Посмотреть сообщение
    Dontcrybaby, извращайся наздоровье, я уже всё..
    PHP код:
    local plates = {}

    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
        
        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
                    plates
    [obj] = true
                    local regions
    ={}
                    
    regions.threatglowregions.healthborderregions.castborderregions.castnostop,
                    
    regions.spelliconregions.highlightregions.nameregions.level,
                    
    regions.dangerskullregions.raidiconregions.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) -- сменил шрифт и размер текста имени
                end
                FindPlates
    (self)
            
    end
        end
    end

    WorldFrame
    :HookScript("OnUpdate"FindPlates
    Ммм=) Смари у меня плейты работают как ... мб немного не по русски , но если рассуждать про ооп понтах то:

    1) Этот кусок кода служит для поиска плейтов , рекурсивный перебор всего что есть на WorldFrame и счетчик (он по сути безполезен).
    2) Нужно создать класс , обозвать его к примеру plate_meta
    т.е

    PHP код:
    local plate_meta = {__index CreateFrame"frame"}
    local plate plate_meta.__index 
    В твоем случае plate это будет твой класс.

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

    тогда нужно описать этот метод , а потом его вызывать:

    PHP код:
    function plate:Init()
    --
    ## вот этот кусок кода должен создавать шаблон твоей будующей плейты и прятать дефолтный мусор
    end 
    далее наследуем методы из нашего класса в близовские плейты:

    Тут то и нужен тот кусок кода , что ты линканул , перед

    PHP код:
     plates[obj] = true 
    нужно сделать следующее:

    PHP код:
    setmetatable(objplate_meta) -- унаследовали все методы от plate B obj
    obj
    :Init() -- а вот и наша инициализация
    plates
    [obj] = true 
    Константный указатель на обьект будет self , с ним то и будем делать всякие извращения.


    PS И совершил ты грех , так прими сию скверну - ах да вот она , так называемый нагреватель cpu :

    PHP код:
    local regions={}
                    
    regions.threatglowregions.healthborderregions.castborderregions.castnostop,
                    
    regions.spelliconregions.highlightregions.nameregions.level,
                    
    regions.dangerskullregions.raidiconregions.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) -- сменил шрифт и размер текста имени 
    Прямо грубейшая ошибка , каждый раз будет рекурсивный перебор всего массива regions , пока не наткнется на ключ (то что у тебя после точки) , для получения к нему доступа . Таких ситуаций нужно избегать любой ценой.

    Когда с таким встречаешься , логичнее получить доступ к массиву 1 раз , присвоив ему локальную переменную и уже потом пользоваться этой локальной переменной , что бы каждый раз не перебирать все элементы массива. Пока код короткий , этого не заметно , но стоит ему разростись ) Привет SetBackdrop() , точнее его бортики , которые при 40 плейтах садят фпс с 130 (спрятаны плейты) до 25 (показаны плейты).
    Последний раз редактировалось DreamlØlz; 22.01.2016 в 22:06.

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

    decemberx (23.01.2016)

  6. #5
    Инопланетянин
    Регистрация
    20.03.2012
    Сообщений
    4,202
    Поблагодарил(а)
    362
    Получено благодарностей: 1,439 (сообщений: 839).
    Репутация: 2399
    Цитата Сообщение от 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 подвисание было около пол секунды , аж заметно было.

  7. #6
    Флудер года Аватар для Dontcrybaby
    Регистрация
    05.01.2012
    Адрес
    Москва / Волгоград
    Сообщений
    12,048
    Поблагодарил(а)
    57
    Получено благодарностей: 734 (сообщений: 533).
    Репутация: 1770
    Цитата Сообщение от decemberx Посмотреть сообщение
    основной код DreamlØlz писал, я тока добавил переменные которые можно менять, на стандартных неймплейтах
    там кстати кастбар не один а два, один который не сбить нечем, а второй можно сбить, я так понял
    подскажи строчку
    в файле прототип я такого не найду.

  8. #7
    Флудер года Аватар для Dontcrybaby
    Регистрация
    05.01.2012
    Адрес
    Москва / Волгоград
    Сообщений
    12,048
    Поблагодарил(а)
    57
    Получено благодарностей: 734 (сообщений: 533).
    Репутация: 1770
    Цитата Сообщение от decemberx Посмотреть сообщение
    какой прототип и какую строчку? это изменение стандартных неймплейтов.
    а мне нужно дримовских

Похожие темы

  1. И где же описание апдейта 114 ??
    от Gozya в разделе Вопросы Logon, TBC, Legion, BFa, SL
    Ответов: 2
    Последнее сообщение: 27.06.2012, 09:46
  2. Скрины интерфейса, Прото-паладин
    от amigoxxx в разделе Корзина
    Ответов: 3
    Последнее сообщение: 28.05.2012, 13:53
  3. Интерфейс
    от Romka_163 в разделе Вопросы Logon, TBC, Legion, BFa, SL
    Ответов: 0
    Последнее сообщение: 26.05.2012, 02:34
  4. Сброс рейта тим на х100
    от CriminalMind в разделе Вопросы Logon, TBC, Legion, BFa, SL
    Ответов: 1
    Последнее сообщение: 25.05.2012, 23:12

Ваши права

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