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

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

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 12 из 13
  1. #1
    Старожил
    Регистрация
    15.10.2017
    Сообщений
    130
    Поблагодарил(а)
    71
    Получено благодарностей: 141 (сообщений: 83).
    Репутация: 141
    del
    Последний раз редактировалось Сарыч; 24.07.2022 в 17:53.

  2. 1 пользователь сказал cпасибо Сарыч за это полезное сообщение:

    Musly (23.08.2018)

  3. #2
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    183
    Поблагодарил(а)
    46
    Получено благодарностей: 115 (сообщений: 60).
    Репутация: 115
    Цитата Сообщение от Сарыч Посмотреть сообщение

    2)Так же есть скрипт на скрытие боковых панелей и при наведении на них курсором они появляются

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

    Код:
     MultiBarRight:SetAlpha(0)
    MultiBarRight:EnableMouse(true)
    MultiBarRight:SetScript("OnEnter",function(self)MultiBarRight:SetAlpha(1);MultiBarLeft:SetAlpha(1)end)
    MultiBarRight:SetScript("OnLeave",function(self)MultiBarRight:SetAlpha(0)MultiBarLeft:SetAlpha(0)end)
    MultiBarRight:SetFrameLevel(0)
    
    for i =1,12 do
        _G["MultiBarRightButton"..i]:HookScript("OnEnter",function(self)MultiBarRight:SetAlpha(1);MultiBarLeft:SetAlpha(1)end)
        _G["MultiBarRightButton"..i]:HookScript("OnLeave",function(self)MultiBarRight:SetAlpha(0);MultiBarLeft:SetAlpha(0)end)
    end;
    
    MultiBarLeft:SetAlpha(0)
    MultiBarLeft:EnableMouse(true)
    MultiBarLeft:SetScript("OnEnter",function(self)MultiBarLeft:SetAlpha(1);MultiBarRight:SetAlpha(1)end)
    MultiBarLeft:SetScript("OnLeave",function(self)MultiBarLeft:SetAlpha(0);MultiBarRight:SetAlpha(0)end)
    MultiBarLeft:SetFrameLevel(0)
    
    for i =1,12 do
        _G["MultiBarLeftButton"..i]:HookScript("OnEnter",function(self)MultiBarRight:SetAlpha(1);MultiBarLeft:SetAlpha(1)end)
        _G["MultiBarLeftButton"..i]:HookScript("OnLeave",function(self)MultiBarRight:SetAlpha(0);MultiBarLeft:SetAlpha(0)end)
    end;
    [свернуть]


    Как добавить таймер исчезновения ? как в Bartender 4 (допустим 0,6)

    Ну первое что пришло в голову
    PHP код:
    local Core CreateFrame("Frame");
    local _G _G;
    function 
    Core:OnLeave()
        
    local Update 0;
        
    self:SetScript("OnUpdate", function(selfelapsed)
            
    Update Update elapsed;
            if 
    Update >= 0.6 then
                self
    :SetScript("OnUpdate"nil);
                
    MultiBarLeft:SetAlpha(0);
                
    MultiBarRight:SetAlpha(0)
            
    end;
        
    end);
    end;
    function 
    Core:OnEnter()
        
    self:SetScript("OnUpdate"nil); 
        
    MultiBarRight:SetAlpha(1); 
        
    MultiBarLeft:SetAlpha(1);
    end;


    local function MBarAlpha(frameName)
        
    local frame _G[frameName];
        
    frame:SetAlpha(0);
        
    frame:EnableMouse(true);
        
    frame:SetScript("OnEnter",function(selfCore:OnEnter(); end);
        
    frame:SetScript("OnLeave",function(selfCore:OnLeave(); end);
        
    frame:SetFrameLevel(0);
        
        for 
    112 do
            
    _G[frameName.."Button"..i]:HookScript("OnEnter",function(selfCore:OnEnter(); end);
            
    _G[frameName.."Button"..i]:HookScript("OnLeave",function(selfCore:OnLeave(); end);
        
    end;    
    end;

    MBarAlpha("MultiBarRight");
    MBarAlpha("MultiBarLeft"); 

  4. #3
    Заблокирован
    Регистрация
    09.06.2016
    Адрес
    Rivne, Ukraine
    Сообщений
    907
    Поблагодарил(а)
    244
    Получено благодарностей: 412 (сообщений: 237).
    Репутация: 412
    4)
    Код:
    local z
    do
        local f = {PartyMemberFrame1,PartyMemberFrame2,PartyMemberFrame3,PartyMemberFrame4}
        local function u(s)
            local x,y = IsInInstance()
            if x and y == "arena" then
                for i = 1,GetNumPartyMembers() do
                    f[i]:Show()
                end
            else
                for i = 1,GetNumPartyMembers() do
                    f[i]:Hide()
                end
            end
        end
        z = function(s)
            if UnitInParty('player') then
                if s.c == 1 then
                    s.x = 1
                    return
                end
                u()
                s.x = nil
            end
        end
    end
    
    
    local f = CreateFrame'frame'
    f:RegisterEvent'PARTY_MEMBERS_CHANGED'
    f:RegisterEvent'PLAYER_ENTERING_WORLD'
    f:RegisterEvent'PLAYER_REGEN_ENABLED'
    f:RegisterEvent'PLAYER_REGEN_DISABLED'
    
    
    f:SetScript('OnEvent',function(s,e)
        if e == 'PLAYER_REGEN_DISABLED' then
            s.c = 1
            return
        elseif e == 'PLAYER_REGEN_ENABLED' then
            s.c = 0
            if s.x then
                z(s)
                s.x = nil
            end
            return
        end
        z(s)
    end)
    Особо не тестил

    - - - Updated - - -

    Цитата Сообщение от Сарыч Посмотреть сообщение
    1) Решил сам . Кому надо такие индикаторы (30 000 (100%) :
    Вложение 659848

    Вот код :

    Код:
        GF=CreateFrame("Frame")GFHB=PlayerFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        TF=CreateFrame("Frame")TFHB=TargetFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        LF=CreateFrame("Frame")LFHB=FocusFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        GF:SetScript("OnUpdate",function(player)GFHB:SetText(TTSB(UnitHealth("player")).." ") end)
        LF:SetScript("OnUpdate",function(Focus)LFHB:SetText(TTSB(UnitHealth("Focus")).." ") end)
        TF:SetScript("OnUpdate",function(target)TFHB:SetText(TTSB(UnitHealth("target")).." ("..format("%.0f",((UnitHealth("target")/UnitHealthMax("target"))*100)).."%)") end)
            local CurrentValues = CreateFrame("Frame")
            CurrentValues:SetScript("OnUpdate", function(self, e)
             
                    local PlayerMana = UnitMana("player") 
                    local TargetMana = UnitMana("target")
                    local FocusMana = UnitMana("focus")
                           
                            PlayerFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(PlayerMana))
                           
                            TargetFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(TargetMana))
        
                            FocusFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(FocusMana))
            end)
    И для тех кто не шарит в кодах, просто ссылка на аддон : http://rgho.st/7pwRBgqjY
    Я б сделал так
    Код:
    hooksecurefunc("TextStatusBar_UpdateTextString",function(s)
         local n = s:GetName()
         if n == "TargetFrameHealthBar" or n == "PlayerFrameManaBar" or n == "TargetFrameManaBar" or n == "FocusFrameManaBar" then
          local t,v = s.TextString,s:GetValue()
          if v and v > 0 and t then
            t:SetFormattedText("%u (%u%%)",v,v/select(2,s:GetMinMaxValues())*100)
          end
        end
    end)

  5. #4
    Старожил
    Регистрация
    17.06.2018
    Сообщений
    264
    Поблагодарил(а)
    6
    Получено благодарностей: 150 (сообщений: 107).
    Репутация: 150
    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Ну первое что пришло в голову
    мой вариант
    PHP код:
    for _,v in ipairs{"Left","Right"} do
        
    local f _G["MultiBar"..v]
        
    f:SetAlpha(0)
        for 
    1,12 do 
            
    local b _G["MultiBar"..v.."Button"..i]
            
    b:HookScript("OnEnter", function() f:SetScript("OnUpdate",nilf:SetAlpha(1end)
            
    b:HookScript("OnLeave",function() 
                
    local d 1
                f
    :SetScript("OnUpdate",function(s,e)
                    
    e
                    f
    :SetAlpha(d*1.66)
                    if 
    0 then s:SetScript("OnUpdate",nilend
                end
    )
            
    end)
        
    end
    end 
    Цитата Сообщение от Сарыч Посмотреть сообщение
    Осталась последняя проблема этой темы . Когда слезаешь с коня в комбате
    можно так попробовать
    PHP код:
    do local _ = function() end PlayerFrame_AnimateOutPlayerFrame_AnimFinishedPlayerFrame_ToPlayerArtPlayerFrame_ToVehicleArt _,_,_,_ end 
    правда уже не увидеть невероятно красивые текстуры транспорта вместо плеера и анимацию их смены, транспорт будет в пет фрейме.

  6. #5
    Эксперт Аватар для Crendos
    Регистрация
    22.12.2015
    Адрес
    Оргриммар
    Сообщений
    602
    Поблагодарил(а)
    66
    Получено благодарностей: 27 (сообщений: 25).
    Репутация: 27
    Можно фулл скрипт мне в пм, За раниее спасибо

  7. #6
    Инопланетянин Аватар для Musly
    Регистрация
    09.02.2015
    Сообщений
    3,155
    Поблагодарил(а)
    400
    Получено благодарностей: 682 (сообщений: 495).
    Репутация: 2001
    Цитата Сообщение от Сарыч Посмотреть сообщение
    1) Решил сам . Кому надо такие индикаторы (30 000 (100%) :
    Вложение 659848

    Вот код :

    Код:
        GF=CreateFrame("Frame")GFHB=PlayerFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        TF=CreateFrame("Frame")TFHB=TargetFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        LF=CreateFrame("Frame")LFHB=FocusFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        GF:SetScript("OnUpdate",function(player)GFHB:SetText(TTSB(UnitHealth("player")).." ") end)
        LF:SetScript("OnUpdate",function(Focus)LFHB:SetText(TTSB(UnitHealth("Focus")).." ") end)
        TF:SetScript("OnUpdate",function(target)TFHB:SetText(TTSB(UnitHealth("target")).." ("..format("%.0f",((UnitHealth("target")/UnitHealthMax("target"))*100)).."%)") end)
            local CurrentValues = CreateFrame("Frame")
            CurrentValues:SetScript("OnUpdate", function(self, e)
             
                    local PlayerMana = UnitMana("player") 
                    local TargetMana = UnitMana("target")
                    local FocusMana = UnitMana("focus")
                           
                            PlayerFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(PlayerMana))
                           
                            TargetFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(TargetMana))
        
                            FocusFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(FocusMana))
            end)
    И для тех кто не шарит в кодах, просто ссылка на аддон : http://rgho.st/7pwRBgqjY
    Ещё бы всё это не прорисовывалось по верх "цель мертва".
    Последний раз редактировалось Musly; 23.08.2018 в 22:25.

  8. #7
    Старожил Аватар для alexdubovyck
    Регистрация
    24.04.2014
    Сообщений
    193
    Поблагодарил(а)
    178
    Получено благодарностей: 71 (сообщений: 41).
    Репутация: 71
    Цитата Сообщение от Сарыч Посмотреть сообщение
    Вот аддон : http://rgho.st
    на паст? выложить можешь. (ни хочу ничего ни откуда качать)

    - - - Updated - - -

    Цитата Сообщение от Wbtest2 Посмотреть сообщение
    Как добавить таймер исчезновения ? как в Bartender 4 (допустим 0,6)
    Плюсую! найс вышло.

    Ещё бы добавить медленную анимацию затухания - вообще норм было бы. FadeOut.

  9. #8
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    183
    Поблагодарил(а)
    46
    Получено благодарностей: 115 (сообщений: 60).
    Репутация: 115
    Цитата Сообщение от alexdubovyck Посмотреть сообщение

    Плюсую! найс вышло.

    Ещё бы добавить медленную анимацию затухания - вообще норм было бы. FadeOut.
    ну в том варианте функцию Core:OnLeave() изменить на
    PHP код:
    function Core:OnLeave()
        
    local Update 1;
        
    self:SetScript("OnUpdate", function(selfelapsed)
            
    Update Update elapsed;
            
    MultiBarLeft:SetAlpha(Update*1.6);
            
    MultiBarRight:SetAlpha(Update*1.6);
            if 
    Update <= 0 then self:SetScript("OnUpdate"nil); end;
        
    end);
    end
    Последний раз редактировалось Wbtest2; 25.08.2018 в 11:57.

  10. #9
    Старожил Аватар для Wbtest2
    Регистрация
    21.02.2015
    Адрес
    Minsk
    Сообщений
    183
    Поблагодарил(а)
    46
    Получено благодарностей: 115 (сообщений: 60).
    Репутация: 115
    Цитата Сообщение от Сарыч Посмотреть сообщение
    Почти идеально , ни как нельзя сделать автоматическое затухание после тп ? Просто когда из другой локи тп делаешь, приходится навести мышкой, чтобы они пропали .
    да затухает и так после тп но не сразу , ну если нужно чтоб сразу после тп то как вариант
    PHP код:
    local Core CreateFrame("Frame");
    Core:RegisterEvent("PLAYER_ENTERING_WORLD");
    Core:SetScript("OnEvent", function(selfevent, ...) return self[event](self, ...) end);
    local _G _G;
    function 
    Core:OnLeave()
        
    local Update 5;
        
    self:SetScript("OnUpdate", function(selfelapsed)
            
    Update Update elapsed;
            
    MultiBarLeft:SetAlpha(Update*1.6);
            
    MultiBarRight:SetAlpha(Update*1.6);
            if 
    Update <= 0 then self:SetScript("OnUpdate"nil); end;
        
    end);
    end;
    function 
    Core:OnEnter()
        
    self:SetScript("OnUpdate"nil); 
        
    MultiBarRight:SetAlpha(1); 
        
    MultiBarLeft:SetAlpha(1);
    end;

    function 
    Core:PLAYER_ENTERING_WORLD()
        
    self:SetScript("OnUpdate"nil); 
        
    MultiBarLeft:SetAlpha(0);
        
    MultiBarRight:SetAlpha(0);
    end;

    local function MBarAlpha(frameName)
        
    local frame _G[frameName];
        
    frame:SetAlpha(0);
        
    frame:EnableMouse(true);
        
    frame:SetScript("OnEnter",function(selfCore:OnEnter(); end);
        
    frame:SetScript("OnLeave",function(selfCore:OnLeave(); end);
        
    frame:SetFrameLevel(0); 
        
        for 
    112 do
            
    _G[frameName.."Button"..i]:HookScript("OnEnter",function(selfCore:OnEnter(); end);
            
    _G[frameName.."Button"..i]:HookScript("OnLeave",function(selfCore:OnLeave(); end);
        
    end;    
    end;

    MBarAlpha("MultiBarRight");
    MBarAlpha("MultiBarLeft"); 
    Последний раз редактировалось Wbtest2; 25.08.2018 в 15:01.

  11. #10
    Новичок
    Регистрация
    19.08.2018
    Сообщений
    9
    Поблагодарил(а)
    0
    Получено благодарностей: 4 (сообщений: 3).
    Репутация: 4
    вот два моих варианта на вертикальные акшнбары

    раздельно


    PHP код:
    do 
        
    local rMultiBarRightMultiBarLeft
        r
    :RegisterEvent("PLAYER_ENTERING_WORLD")
        
    r:SetScript("OnEvent", function() r:SetAlpha(0l:SetAlpha(0end)
        for 
    _,v in ipairs{"Left","Right"} do
            
    local f _G["MultiBar"..v]
            
    f:SetAlpha(0)
            for 
    1,12 do 
                
    local b _G["MultiBar"..v.."Button"..i]
                
    b:HookScript("OnEnter", function() f:SetScript("OnUpdate",nilf:SetAlpha(1end)
                
    b:HookScript("OnLeave",function() 
                    
    local d .6
                    f
    :SetScript("OnUpdate",function(s,e)
                        
    e
                        f
    :SetAlpha(d*1.66)
                        if 
    0 then s:SetScript("OnUpdate",nilend
                    end
    )
                
    end)
            
    end
        end
    end 
    [свернуть]


    вместе


    PHP код:
    do
        
    local rMultiBarRightMultiBarLeft
        r
    :RegisterEvent("PLAYER_ENTERING_WORLD")
        
    r:SetScript("OnEvent", function() r:SetAlpha(0l:SetAlpha(0end)
        for 
    _,v in ipairs{"Left","Right"} do 
            
    local f _G["MultiBar"..v]
            
    f:SetAlpha(0
            for 
    1,12 do  
                
    local b _G["MultiBar"..v.."Button"..i
                
    b:HookScript("OnEnter", function() r:SetScript("OnUpdate",nilr:SetAlpha(1l:SetAlpha(1end
                
    b:HookScript("OnLeave",function()  
                    
    local d .6
                    r
    :SetScript("OnUpdate",function(s,e
                        

                        r
    :SetAlpha(d*1.66l:SetAlpha(d*1.66)
                        if 
    0 then s:SetScript("OnUpdate",nilend 
                    end

                
    end
            
    end 
        end
    end 
    [свернуть]

    наверное нужно пояснить, сразу было лень, есть две причины не вешать скрипты на бары (невидимые фреймы под кнопками).
    во первых, если перемещать правый бар, то в бою когда садишься/слазиешь с транспорта, он будет вставать на старое место.
    обойти это можно меняя позицию первой кнопки правого бара, а не сам правый бар. в этом случае они могут быть в совершенно разных местах.
    да, можно легко сделать другие фреймы, подложить их под кнопки и на них повешать эти скрипты, но есть вторая причина этого не делать.
    например у вас пять первых кнопок занято спеллами/макросами, а остальные пустые и под ними ну например неймплейта. вы такие по этому неймплейту клац клац, но в цель он не возьмется по тому что вы клацаете по невидимому фрейму.

  12. #11
    Почетный флудер Аватар для Foximys
    Регистрация
    22.10.2012
    Сообщений
    2,017
    Поблагодарил(а)
    55
    Получено благодарностей: 347 (сообщений: 300).
    Репутация: 347
    Цитата Сообщение от Сарыч Посмотреть сообщение
    Может кто скрипт дописать, чтобы не было поверх "цель мертва" ?

    PHP код:
        GF=CreateFrame("Frame")GFHB=PlayerFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        TF
    =CreateFrame("Frame")TFHB=TargetFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        LF
    =CreateFrame("Frame")LFHB=FocusFrameHealthBar.TextString;TTSB=TextStatusBar_CapDisplayOfNumericValue
        GF
    :SetScript("OnUpdate",function(player)GFHB:SetText(TTSB(UnitHealth("player")).." "end)
        
    LF:SetScript("OnUpdate",function(Focus)LFHB:SetText(TTSB(UnitHealth("Focus")).." "end)
        
    TF:SetScript("OnUpdate",function(target)TFHB:SetText(TTSB(UnitHealth("target")).." ("..format("%.0f",((UnitHealth("target")/UnitHealthMax("target"))*100)).."%)"end)
            
    local CurrentValues CreateFrame("Frame")
            
    CurrentValues:SetScript("OnUpdate", function(selfe)
             
                    
    local PlayerMana UnitMana("player"
                    
    local TargetMana UnitMana("target")
                    
    local FocusMana UnitMana("focus")
                           
                            
    PlayerFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(PlayerMana))
                           
                            
    TargetFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(TargetMana))
        
                            
    FocusFrameManaBar.TextString:SetText(TextStatusBar_CapDisplayOfNumericValue(FocusMana))
            
    end
    Вложение 661202
    Можешь передвинуть или скрыть ее.
    PHP код:
        TargetFrame.deadText:ClearAllPoints()
        
    TargetFrame.deadText:SetPoint("CENTER"TargetFrameHealthBar"CENTER"00

  13. #12
    Старожил Аватар для (Станислав)
    Регистрация
    09.06.2016
    Сообщений
    152
    Поблагодарил(а)
    89
    Получено благодарностей: 27 (сообщений: 17).
    Репутация: 27
    PHP код:
    do
        
    local rMultiBarRightMultiBarLeft
        r
    :RegisterEvent("PLAYER_ENTERING_WORLD")
        
    r:SetScript("OnEvent", function() r:SetAlpha(0l:SetAlpha(0end)
        for 
    _,v in ipairs{"Left","Right"} do 
            
    local f _G["MultiBar"..v]
            
    f:SetAlpha(0
            for 
    1,12 do  
                
    local b _G["MultiBar"..v.."Button"..i
                
    b:HookScript("OnEnter", function() r:SetScript("OnUpdate",nilr:SetAlpha(1l:SetAlpha(1end
                
    b:HookScript("OnLeave",function()  
                    
    local d .6
                    r
    :SetScript("OnUpdate",function(s,e
                        

                        r
    :SetAlpha(d*1.66l:SetAlpha(d*1.66)
                        if 
    0 then s:SetScript("OnUpdate",nilend 
                    end

                
    end
            
    end 
        end
    end 
    Может кто-то помочь дописать? нужно чтобы во время боя, панель автоматически отображалась, а после боя, снова скрывалась.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. [Wotlk] Помогите подключиться
    от AlexanderShoarAx в разделе Проблемы с подключением(logon, tbc, legion, bfa, sl)
    Ответов: 1
    Последнее сообщение: 27.04.2017, 19:27
  2. Помогите разобраться.
    от Kkainn в разделе Проблемы с подключением(logon, tbc, legion, bfa, sl)
    Ответов: 1
    Последнее сообщение: 26.03.2014, 03:13
  3. Помогите
    от Kkainn в разделе Вопросы Logon, TBC, Legion, BFa, SL
    Ответов: 4
    Последнее сообщение: 25.03.2014, 22:54

Ваши права

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