View Single Post
06-17-17, 04:55 AM   #10
Resike
A Pyroguard Emberseer
AddOn Author - Click to view addons
Join Date: Mar 2010
Posts: 1,290
In the long run you are better off to create your own special power bar frame rather then reusing the existing Blizzard ones, i havn't done this for every special bar but here is my combo frame, which looks (even better since the default combo frame using broken textures)/behaves exacly as the default one, just this is your own:

Lua Code:
  1. function Player:CreateComboFrame()
  2.     if self.frame.combo then
  3.         return
  4.     end
  5.  
  6.     self.frame.combo = CreateFrame("Frame", nil, self.frame, "ClassPowerBarFrame")
  7.     Mixin(self.frame.combo, ClassPowerBar, ComboPointPowerBar)
  8.     self.frame.combo:SetSize(126, 18)
  9.  
  10.     self.frame.combo.Background = self.frame.combo:CreateTexture("Overlay")
  11.     self.frame.combo.Background:SetAtlas("ComboPoints-AllPointsBG")
  12.     self.frame.combo.Background:SetAllPoints(self.frame.combo)
  13.  
  14.     self.frame.combo.Combo1 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointPlayerTemplate")
  15.     self.frame.combo.Combo1:SetPoint("TopLeft", self.frame.combo, "TopLeft", 12, -4)
  16.     self.frame.combo.Combo2 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointPlayerTemplate")
  17.     self.frame.combo.Combo2:SetPoint("Left", self.frame.combo.Combo1, "Right", 1, 0)
  18.     self.frame.combo.Combo3 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointPlayerTemplate")
  19.     self.frame.combo.Combo3:SetPoint("Left", self.frame.combo.Combo2, "Right", 1, 0)
  20.     self.frame.combo.Combo4 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointPlayerTemplate")
  21.     self.frame.combo.Combo4:SetPoint("Left", self.frame.combo.Combo3, "Right", 1, 0)
  22.     self.frame.combo.Combo5 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointPlayerTemplate")
  23.     self.frame.combo.Combo5:SetPoint("Left", self.frame.combo.Combo4, "Right", 1, 0)
  24.     self.frame.combo.Combo6 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointPlayerTemplate")
  25.     self.frame.combo.Combo6:SetPoint("Left", self.frame.combo.Combo5, "Right", 1, 0)
  26.  
  27.     self.frame.combo.ComboPoints = { }
  28.     self.frame.combo.ComboPoints[1] = self.frame.combo.Combo1
  29.     self.frame.combo.ComboPoints[2] = self.frame.combo.Combo2
  30.     self.frame.combo.ComboPoints[3] = self.frame.combo.Combo3
  31.     self.frame.combo.ComboPoints[4] = self.frame.combo.Combo4
  32.     self.frame.combo.ComboPoints[5] = self.frame.combo.Combo5
  33.     self.frame.combo.ComboPoints[6] = self.frame.combo.Combo6
  34.  
  35.     self.frame.combo.Combo1:SetSize(20, 20)
  36.     self.frame.combo.Combo2:SetSize(20, 20)
  37.     self.frame.combo.Combo3:SetSize(20, 20)
  38.     self.frame.combo.Combo4:SetSize(20, 20)
  39.     self.frame.combo.Combo5:SetSize(20, 20)
  40.     self.frame.combo.Combo6:SetSize(20, 20)
  41.  
  42.     self.frame.combo.Combo1.PointOff:SetSize(20, 20)
  43.     self.frame.combo.Combo2.PointOff:SetSize(20, 20)
  44.     self.frame.combo.Combo3.PointOff:SetSize(20, 20)
  45.     self.frame.combo.Combo4.PointOff:SetSize(20, 20)
  46.     self.frame.combo.Combo5.PointOff:SetSize(20, 20)
  47.     self.frame.combo.Combo6.PointOff:SetSize(20, 20)
  48.  
  49.     self.frame.combo.Combo1.Point:SetSize(20, 20)
  50.     self.frame.combo.Combo2.Point:SetSize(20, 20)
  51.     self.frame.combo.Combo3.Point:SetSize(20, 20)
  52.     self.frame.combo.Combo4.Point:SetSize(20, 20)
  53.     self.frame.combo.Combo5.Point:SetSize(20, 20)
  54.     self.frame.combo.Combo6.Point:SetSize(20, 20)
  55.  
  56.     self.frame.combo.Combo1.Point:SetTexture("Interface\\Common\\Indicator-Red")
  57.     self.frame.combo.Combo2.Point:SetTexture("Interface\\Common\\Indicator-Red")
  58.     self.frame.combo.Combo3.Point:SetTexture("Interface\\Common\\Indicator-Red")
  59.     self.frame.combo.Combo4.Point:SetTexture("Interface\\Common\\Indicator-Red")
  60.     self.frame.combo.Combo5.Point:SetTexture("Interface\\Common\\Indicator-Red")
  61.     self.frame.combo.Combo6.Point:SetTexture("Interface\\Common\\Indicator-Red")
  62.  
  63.     self.frame.combo.ComboBonus1 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointBonusPlayerTemplate")
  64.     self.frame.combo.ComboBonus1:SetPoint("TopLeft", self.frame.combo, "TopLeft", 7, 0)
  65.     self.frame.combo.ComboBonus2 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointBonusPlayerTemplate")
  66.     self.frame.combo.ComboBonus2:SetPoint("Left", self.frame.combo.ComboBonus1, "Right", 12, 0)
  67.     self.frame.combo.ComboBonus3 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointBonusPlayerTemplate")
  68.     self.frame.combo.ComboBonus3:SetPoint("Left", self.frame.combo.ComboBonus2, "Right", 12, 0)
  69.     self.frame.combo.ComboBonus4 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointBonusPlayerTemplate")
  70.     self.frame.combo.ComboBonus4:SetPoint("Left", self.frame.combo.ComboBonus3, "Right", 12, 0)
  71.     self.frame.combo.ComboBonus5 = CreateFrame("Frame", nil, self.frame.combo, "ComboPointBonusPlayerTemplate")
  72.     self.frame.combo.ComboBonus5:SetPoint("Left", self.frame.combo.ComboBonus4, "Right", 12, 0)
  73.  
  74.     self.frame.combo.ComboBonus = { }
  75.     self.frame.combo.ComboBonus[1] = self.frame.combo.ComboBonus1
  76.     self.frame.combo.ComboBonus[2] = self.frame.combo.ComboBonus2
  77.     self.frame.combo.ComboBonus[3] = self.frame.combo.ComboBonus3
  78.     self.frame.combo.ComboBonus[4] = self.frame.combo.ComboBonus4
  79.     self.frame.combo.ComboBonus[5] = self.frame.combo.ComboBonus5
  80.  
  81.     self.frame.combo.ComboBonus[1]:SetSize(10, 10)
  82.     self.frame.combo.ComboBonus[2]:SetSize(10, 10)
  83.     self.frame.combo.ComboBonus[3]:SetSize(10, 10)
  84.     self.frame.combo.ComboBonus[4]:SetSize(10, 10)
  85.     self.frame.combo.ComboBonus[5]:SetSize(10, 10)
  86.  
  87.     self.frame.combo:OnLoad()
  88.     self.frame.combo:SetScript("OnEvent", self.frame.combo.OnEvent)
  89.  
  90.     self.frame.combo.class = self.unitClass
  91. end

All you have to do is to :SetParent, :SetPoint after this and it works out of the box.
  Reply With Quote