View Single Post
10/31/14, 06:12 AM   #3
Garkin
 
Garkin's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 832
If you want to store counter, you have to use saved variables - i.e. move your counter to saved variables table.

Just to show something different, I have also moved your code from XML to LUA.
Lua Code:
  1. local QuestCounter
  2. local SV
  3. local defaults = {
  4.     Count = {
  5.         offsetx = 0,
  6.         offsety = 0,
  7.         point = CENTER,
  8.         relPoint = CENTER,
  9.     },
  10.     ClickedCount = 0,
  11. }
  12.      
  13. local function ClickCount()
  14.     SV.ClickedCount = SV.ClickedCount + 1
  15.     QuestCounter.Count:SetText("Completed: " .. SV.ClickedCount)
  16. end
  17.      
  18. local function ResetCount()
  19.     SV.ClickedCount = 0
  20.     QuestCounter.Count:SetText("QuestCounter")
  21. end
  22.  
  23. local function OnMoveStop(self)
  24.     local valid, point, _, relPoint, offsetx, offsety = self:GetAnchor(0)
  25.     if valid then
  26.         SV.Count.point = point
  27.         SV.Count.relPoint = relPoint
  28.         SV.Count.offsetx = offsetx
  29.         SV.Count.offsety = offsety
  30.     end
  31. end
  32.  
  33. local function CreateAddonWindow()
  34.     --main window
  35.     QuestCounter = WINDOW_MANAGER:CreateTopLevelWindow()
  36.     QuestCounter:SetAnchor(SV.Count.point, nil, SV.Count.relPoint, SV.Count.offsetx, SV.Count.offsety)
  37.     QuestCounter:SetClampedToScreen(true)
  38.     QuestCounter:SetResizeToFitDescendents(true)
  39.     QuestCounter:SetMouseEnabled(true)
  40.     QuestCounter:SetMovable(true)
  41.     QuestCounter:SetHidden(false)
  42.            
  43.     --label
  44.     QuestCounter.Count = WINDOW_MANAGER:CreateControl(nil, QuestCounter, CT_LABEL)
  45.     QuestCounter.Count:SetAnchor(CENTER, QuestCounter, CENTER, 0, 0)
  46.     QuestCounter.Count:SetFont("ZoFontBookScroll")
  47.     QuestCounter.Count:SetColor(ZO_NORMAL_TEXT:UnpackRGBA())
  48.     QuestCounter.Count:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS)
  49.     QuestCounter.Count:SetVerticalAlignment(TEXT_ALIGN_CENTER)
  50.     QuestCounter.Count:SetHorizontalAlignment(TEXT_ALIGN_CENTER)
  51.     QuestCounter.Count:SetText("QuestCounter")
  52. end
  53.      
  54. local function OnAddOnLoaded(eventCode, addon)
  55.     if addon == "QuestCounter" then
  56.         --this event is no longer needed, unregister it
  57.         EVENT_MANAGER:UnregisterForEvent("QuestCounter", EVENT_ADD_ON_LOADED)
  58.  
  59.         --initialize saved variables
  60.         SV = ZO_SavedVars:New("Cou_Variables", 1, defaults)
  61.  
  62.         --this will create the same window as in your XML. There is just one difference - I made controls unnamed (there is no global reference to UI elements)
  63.         CreateAddonWindow()
  64.  
  65.         --mouse click handlers
  66.         QuestCounter:SetHandler("OnMoveStop", OnMoveStop)
  67.         QuestCounter:SetHandler("OnMouseDoubleClick", ClickCount)
  68.         QuestCounter:SetHandler("OnMouseWheel", ResetCount)
  69.  
  70.         --slash command
  71.         SLASH_COMMANDS["/qlc"] = function()
  72.             QuestCounter:ToggleHidden()
  73.         end
  74.     end
  75. end
  76.      
  77. EVENT_MANAGER:RegisterForEvent("QuestCounter", EVENT_ADD_ON_LOADED, OnAddOnLoaded)

Last edited by Garkin : 10/31/14 at 06:46 AM.
  Reply With Quote