Thread Tools Display Modes
Prev Previous Post   Next Post Next
08-02-12, 10:09 AM   #1
wolftech
A Deviate Faerie Dragon
Join Date: May 2008
Posts: 14
Help! What is this n00b doing wrong?

I am working on some unit frames and I have run into an error on Beta I can not seem to nail down. When I target some NPCs and Mobs (but not players), I get a Division by Zero error in what is line 37 in this snippet. It works fine on Live, but I can't find what changed in Beta.

Can you help a n00b out?

Lua Code:
  1. local firstload = true
  2. function TUF:TargetUpdate()
  3.     if firstload and not TextUnitFramesLiteDB.general.combat then
  4.         firstload = false
  5.         target:SetPoint(TextUnitFramesLiteDB.target.loc.p, UIParent, TextUnitFramesLiteDB.target.loc.rP, TextUnitFramesLiteDB.target.loc.x, TextUnitFramesLiteDB.target.loc.y)
  6.     end
  7.     if UnitExists("target") then
  8.         TUF:LockTargetFrame()
  9.         local fg, fn = UnitFactionGroup("target")
  10.         if fg ~= nil then target.faction:SetTexture("Interface\\GROUPFRAME\\UI-Group-PVP-"..fg) else target.faction:SetTexture("Interface\\PVPFrame\\PVP-ArenaPoints-Icon") end
  11.         target.faction:Show()
  12.         target.level:SetPoint("TOPLEFT", target, "TOPLEFT", 5, -5)
  13.         target.name:SetPoint("LEFT", target.level, "RIGHT", 5, 0)
  14.         if TextUnitFramesLiteDB.target.orientation then
  15.             target.health:ClearAllPoints()
  16.             target.mana:ClearAllPoints()
  17.             target.health:SetPoint("TOPLEFT", target.level, "BOTTOMLEFT", 0, 0)
  18.             target.mana:SetPoint("TOPLEFT", target.health, "BOTTOMLEFT", 0, 0)
  19.         else
  20.             target.health:ClearAllPoints()
  21.             target.mana:ClearAllPoints()
  22.             target.health:SetPoint("LEFT", target.name, "RIGHT", 5, 0)
  23.             target.mana:SetPoint("LEFT", target.health, "RIGHT", 0, 0)
  24.         end
  25.        
  26.         target.level:SetFontObject(GameFontNormalLarge)
  27.         target.name:SetFontObject(GameFontNormalHuge)
  28.         target.health:SetFontObject(NumberFontNormalLarge)
  29.         target.mana:SetFontObject(NumberFontNormalLarge)
  30.        
  31.         target.level:SetText(UnitLevel("target"))
  32.         target.name:SetText(UnitName("target"))
  33.         local _, cls = UnitClass("target")
  34.         if cls ~= nil then target.name:SetTextColor(RAID_CLASS_COLORS[cls].r, RAID_CLASS_COLORS[cls].g, RAID_CLASS_COLORS[cls].b) end
  35.         local htxtclr = TUF:SetTextColor(UnitHealth("target")/UnitHealthMax("target")*100)
  36.         target.health:SetTextColor(htxtclr.r, htxtclr.g, htxtclr.b, 1)
  37.         local mtxtclr = TUF:SetTextColor(UnitPower("target")/UnitPowerMax("target")*100)
  38.         target.mana:SetTextColor(mtxtclr.r, mtxtclr.g, mtxtclr.b, 1)
  39.         if TextUnitFramesLiteDB.target.percent then
  40.             target.health:SetText("|Cff00ff00H|r-"..string.format("%4.0f", UnitHealth("target")/UnitHealthMax("target")*100).."%") 
  41.             if UnitPowerType("target") == 0 then -- mana
  42.                 target.mana:SetText("|cff3300cc M|r-"..string.format("%4.0f", UnitPower("target")/UnitPowerMax("target")*100).."%")    
  43.             elseif UnitPowerType("target") == 3 then -- energy
  44.                 target.mana:SetText("|cffffff00E |r-"..UnitPower("target").." |cff990099 Combo|r: "..GetComboPoints("target"))
  45.             elseif UnitPowerType("target") == 1 then -- rage
  46.                 target.mana:SetText("|cffff3333Rage|r- "..UnitPower("target").."|cff666666 /|r"..UnitPowerMax("target"))
  47.             elseif UnitPowerType("target") == 5 then
  48.                 target.mana:SetText("|cff99ccffRP|r- "..UnitPower("target").."|cff666666 /|r"..UnitPowerMax("target"))
  49.             elseif UnitPowerType("target") == 6 then-- Runic
  50.                 target.mana:SetText("|cff99ccffRP|r- "..UnitPower("target").."|cff666666 /|r"..UnitPowerMax("target"))
  51.             else -- focus, happieness
  52.                 target.mana:SetText("|cffffcc00F|r- "..UnitPower("target").."|cff666666 /|r"..UnitPowerMax("target"))
  53.             end
  54.         else
  55.             target.health:SetText("|Cff00ff00H|r- "..UnitHealth("target").."|Cff666666 /|r"..UnitHealthMax("target"))
  56.             if UnitPowerType("target") == 0 then -- mana
  57.                 target.mana:SetText("|cff3300cc M|r-"..UnitPower("target").."|Cff666666 /|r"..UnitPowerMax("target"))      
  58.             elseif UnitPowerType("target") == 3 then -- energy
  59.                 target.mana:SetText("|cffffff00E |r-"..UnitPower("target").." |Cff990099 Combo|r: "..GetComboPoints("target"))
  60.             elseif UnitPowerType("target") == 1 then -- rage
  61.                 target.mana:SetText("|cffff3333Rage|r- "..UnitPower("target").."|Cff666666 /|r"..UnitPowerMax("target"))
  62.             elseif UnitPowerType("target") == 5 then
  63.                 target.mana:SetText("|cff99ccffRP|r- "..UnitPower("target").."|Cff666666 /|r"..UnitPowerMax("target"))
  64.             elseif UnitPowerType("target") == 6 then-- Runic
  65.                 target.mana:SetText("|cff99ccffRP|r- "..UnitPower("target").."|Cff666666 /|r"..UnitPowerMax("target"))
  66.             else -- focus, happieness
  67.                 target.mana:SetText("|cffffcc00F|r- "..UnitPower("target").."|Cff666666 /|r"..UnitPowerMax("target"))
  68.             end
  69.         end
  70.        
  71.         local ll = target.level:GetStringWidth()
  72.         local nl = target.name:GetStringWidth()
  73.         local hl = target.health:GetStringWidth()
  74.         local ml = target.mana:GetStringWidth()
  75.         if not TextUnitFramesLiteDB.target.orientation and not TextUnitFramesLiteDB.general.combat then
  76.             local len = ll + nl + hl + ml + 20
  77.             target:SetWidth(len)
  78.             target:SetHeight(target.level:GetHeight() + 20)
  79.         elseif TextUnitFramesLiteDB.target.orientation and not TextUnitFramesLiteDB.general.combat then
  80.             local len = math.max(ll + nl, ml, hl)
  81.             target:SetWidth(len + 20 )
  82.             local lh = target.level:GetHeight()
  83.             local hh = target.health:GetHeight()
  84.             local mh = target.mana:GetHeight()
  85.             target:SetHeight(lh + hh + mh + 20)
  86.         end
  87.        
  88.         if UnitExists("playertargettarget") then
  89.             if TextUnitFramesLiteDB.target.targettop then
  90.                 target.target:ClearAllPoints()
  91.                 target.target:SetPoint("TOPLEFT", target, "BOTTOMLEFT", 10, 10)
  92.             else
  93.                 target.target:ClearAllPoints()
  94.                 target.target:SetPoint("LEFT", target, "RIGHT", -10, 0)
  95.             end
  96.             target.target.level:SetFontObject(GameFontNormal)
  97.             target.target.name:SetFontObject(GameFontNormal)
  98.             target.target.level:SetText(UnitLevel("playertargettarget"))
  99.             target.target.name:SetText(UnitName("playertargettarget"))
  100.             target.target.level:SetPoint("TOPLEFT", target.target, "TOPLEFT", 5, -5)
  101.             target.target.name:SetPoint("LEFT", target.target.level, "RIGHT", 5, 0)
  102.            
  103.             local ttlw = target.target.level:GetStringWidth()
  104.             local ttnw = target.target.name:GetStringWidth()
  105.             target.target:SetHeight(target.target.name:GetHeight()+12)
  106.             target.target:SetWidth(ttlw + ttnw + 10)
  107.         end
  108.        
  109.         if not TextUnitFramesLiteDB.general.combat then
  110.             if TextUnitFramesLiteDB.target.enabled then target:Show() else target:Hide() end
  111.             if UnitExists("target") then target:Show() else target:Hide() end
  112.             if TextUnitFramesLiteDB.target.target and UnitExists("playertargettarget") then target.target:Show() else target.target:Hide() end
  113.         end
  114.     else
  115.         target:Hide()
  116.     end
  117. end

This is the error I get:
Code:
339x TextUnitFramesLite-5.0\target-Target.lua:131: Division by zero
TextUnitFramesLite-5.0\target-Target.lua:131: in function "TargetUpdate"
TextUnitFramesLite-5.0\main.lua:126: in function <TextUnitFramesLite\main.lua:119>

Locals:
self = TUF {
 0 = <userdata>
 lockPetF = <func> @TextUnitFramesLite\options.lua:404
 enablePetTF = <func> @TextUnitFramesLite\options.lua:430
 lockfocusF = <func> @TextUnitFramesLite\options.lua:452
 orientPetF = <func> @TextUnitFramesLite\options.lua:396
 HideBlizzFocus = <func> @TextUnitFramesLite\focus.lua:201
 ShowBlizzFocus = <func> @TextUnitFramesLite\focus.lua:205
 hideBlizzfocusF = <func> @TextUnitFramesLite\options.lua:439
 target = TUF_Target {}
 OnUpdate = <func> @TextUnitFramesLite\main.lua:119
 pet = TUF_Pet {}
 enablePF = <func> @TextUnitFramesLite\options.lua:353
 player = TUF_Player {}
 HideBlizzPlayer = <func> @TextUnitFramesLite\player.lua:172
 percfocusF = <func> @TextUnitFramesLite\options.lua:448
 generalO_Load = <func> @TextUnitFramesLite\options.lua:315
 enablePetF = <func> @TextUnitFramesLite\options.lua:425
 focus = TUF_Focus {}
 SetTextColor = <func> @TextUnitFramesLite\util.lua:8
 orientfocusTF = <func> @TextUnitFramesLite\options.lua:483
 percPF = <func> @TextUnitFramesLite\options.lua:381
 LockTargetFrame = <func> @TextUnitFramesLite\options.lua:487
 FocusUpdate = <func> @TextUnitFramesLite\focus.lua:67
 orientfocusF = <func> @TextUnitFramesLite\options.lua:444
 enablefocusTF = <func> @TextUnitFramesLite\options.lua:479
 enablefocusF = <func> @TextUnitFramesLite\options.lua:474
 PlayerUpdate = <func> @TextUnitFramesLite\player.lua:82
 ShowBlizzPlayer = <func> @TextUnitFramesLite\player.lua:176
 hideBlizzPF = <func> @TextUnitFramesLite\options.lua:391
 OnEvent = <func> @TextUnitFramesLite\main.lua:84
 percPetF = <func> @TextUnitFramesLite\options.lua:400
 playerO_Load = <func> @TextUnitFramesLite\options.lua:321
 orientPetTF = <func> @TextUnitFramesLite\options.lua:434
 orientPF = <func> @TextUnitFramesLite\options.lua:386
 PetUpdate = <func> @TextUnitFramesLite\pet.lua:68
 TargetUpdate = <func> @TextUnitFramesLite\target.lua:96
 targetO_Load = <func> @TextUnitFramesLite\options.lua:342
 lockPF = <func> @TextUnitFramesLite\options.lua:359
}
elapsed = 0.019000001251698
And here is the section in main.lua (beginning with 119)

Lua Code:
  1. function TUF:OnUpdate(elapsed)
  2.     if not TextUnitFramesLiteDB.general then TextUnitFramesLiteDB.general = {} end
  3.     if not TextUnitFramesLiteDB.general.elapsed then TextUnitFramesLiteDB.general.elapsed = 0 end
  4.     if not TextUnitFramesLiteDB.general.updaterate then TextUnitFramesLiteDB.general.updaterate = 0.066 end
  5.     TextUnitFramesLiteDB.general.elapsed = TextUnitFramesLiteDB.general.elapsed + elapsed
  6.     if TextUnitFramesLiteDB.general.elapsed > TextUnitFramesLiteDB.general.updaterate then
  7.         if UnitExists("target") then if TextUnitFramesLiteDB.target.enabled then TUF.target:Show() end if TextUnitFramesLiteDB.target.hideblizztargetframe then TargetFrame:Hide() end end
  8.         TUF:TargetUpdate()
  9.         TUF:PlayerUpdate()
  10.         TUF:PetUpdate()
  11.         TUF:FocusUpdate()
  12.         if TextUnitFramesLiteDB.general.combat then TUF.player.combat:Show() else TUF.player.combat:Hide() end
  13.         if UnitIsPVP("player") then TUF.player.pvp:Show() else TUF.player.pvp:Hide() end
  14.         if UnitIsPVP("target") then TUF.target.pvp:Show() else TUF.target.pvp:Hide() end
  15.         local lootmethod, mlpID, mlRID = GetLootMethod()
  16.         if lootmethod == "master" then
  17.             if mlpID == nil then
  18.                 TUF.player.masterloot:Hide()
  19.             elseif mlpID == 0 then
  20.                 TUF.player.masterloot:Show()
  21.             end
  22.         end
  23.         if IsResting() then TUF.player.rest:Show() else TUF.player.rest:Hide() end
  24.         TextUnitFramesLiteDB.general.elapsed = 0
  25.     end
 
 

WoWInterface » Site Forums » Archived Beta Forums » MoP Beta archived threads » Help! What is this n00b doing wrong?

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off