Jump to content

Recommended Posts

Posted

 

local animationsCount, animations = 5, {}
local animationNum = 1
local frame, texture, alpha1, scale1, scale2, rotation2

for i = 1, animationsCount do
   frame = CreateFrame("Frame")
   texture = frame:CreateTexture() texture:SetTexture('Interface\\Cooldown\\star4') texture:SetAlpha(0) texture:SetAllPoints() texture:SetBlendMode("ADD")
   animationGroup = texture:CreateAnimationGroup()
   alpha1 = animationGroup:CreateAnimation("Alpha") alpha1:SetChange(1) alpha1:SetDuration(0) alpha1:SetOrder(1)
   scale1 = animationGroup:CreateAnimation("Scale") scale1:SetScale(1.5, 1.5) scale1:SetDuration(0) scale1:SetOrder(1)
   scale2 = animationGroup:CreateAnimation("Scale") scale2:SetScale(0, 0) scale2:SetDuration(0.3) scale2:SetOrder(2)
   rotation2 = animationGroup:CreateAnimation("Rotation") rotation2:SetDegrees(90) rotation2:SetDuration(0.3) rotation2:SetOrder(2)
   animations[i] = {frame = frame, animationGroup = animationGroup}
end

local AnimateButton = function(self)
   if not self:IsVisible() then return true end
   local animation = animations[animationNum]
   local frame = animation.frame
   local animationGroup = animation.animationGroup
   frame:SetFrameStrata(self:GetFrameStrata())
   frame:SetFrameLevel(self:GetFrameLevel() + 10)
   frame:SetAllPoints(self)
   animationGroup:Stop()
   animationGroup:Play()
   animationNum = (animationNum % animationsCount) + 1
   return true
end

hooksecurefunc('MultiActionButtonDown', function(bname, id) AnimateButton(_G[bname..'Button'..id]) end)

hooksecurefunc('ActionButtonDown', function(id) 
    local button
    if C_PetBattles.IsInBattle() then 
         if PetBattleFrame then
              if id > NUM_BATTLE_PET_HOTKEYS then return end
              button = PetBattleFrame.BottomFrame.abilityButtons[id]
              if id == BATTLE_PET_ABILITY_SWITCH then
                   button = PetBattleFrame.BottomFrame.SwitchPetButton;
              elseif id == BATTLE_PET_ABILITY_CATCH then
                   button = PetBattleFrame.BottomFrame.CatchButton;
              end
              if not button then return end
         end
         return
    end

    if OverrideActionBar and OverrideActionBar:IsShown() then
         if id > NUM_OVERRIDE_BUTTONS then return end
         button = _G["OverrideActionBarButton"..id]
    else
         button = _G["ActionButton"..id]
    end
    if not button then return end

    AnimateButton(button)
end)

 

Enjoy!

 

апд. этот код можно скопировать в луа файл любого аддона (в начало или конец файла)

апд. теперь поддерживает бартендер и bBars

 

http://s019.radikal.ru/i634/1404/4f/445c5b2cbcd5.jpg

При нажатии будет подсвечиваться клавиша.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Who's Online   2 Members, 0 Anonymous, 83 Guests (See full list)

×
×
  • Create New...