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:
local QuestCounter
local SV
local defaults = {
Count = {
offsetx = 0,
offsety = 0,
point = CENTER,
relPoint = CENTER,
},
ClickedCount = 0,
}
local function ClickCount()
SV.ClickedCount = SV.ClickedCount + 1
QuestCounter.Count:SetText("Completed: " .. SV.ClickedCount)
end
local function ResetCount()
SV.ClickedCount = 0
QuestCounter.Count:SetText("QuestCounter")
end
local function OnMoveStop(self)
local valid, point, _, relPoint, offsetx, offsety = self:GetAnchor(0)
if valid then
SV.Count.point = point
SV.Count.relPoint = relPoint
SV.Count.offsetx = offsetx
SV.Count.offsety = offsety
end
end
local function CreateAddonWindow()
--main window
QuestCounter = WINDOW_MANAGER:CreateTopLevelWindow()
QuestCounter:SetAnchor(SV.Count.point, nil, SV.Count.relPoint, SV.Count.offsetx, SV.Count.offsety)
QuestCounter:SetClampedToScreen(true)
QuestCounter:SetResizeToFitDescendents(true)
QuestCounter:SetMouseEnabled(true)
QuestCounter:SetMovable(true)
QuestCounter:SetHidden(false)
--label
QuestCounter.Count = WINDOW_MANAGER:CreateControl(nil, QuestCounter, CT_LABEL)
QuestCounter.Count:SetAnchor(CENTER, QuestCounter, CENTER, 0, 0)
QuestCounter.Count:SetFont("ZoFontBookScroll")
QuestCounter.Count:SetColor(ZO_NORMAL_TEXT:UnpackRGBA())
QuestCounter.Count:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS)
QuestCounter.Count:SetVerticalAlignment(TEXT_ALIGN_CENTER)
QuestCounter.Count:SetHorizontalAlignment(TEXT_ALIGN_CENTER)
QuestCounter.Count:SetText("QuestCounter")
end
local function OnAddOnLoaded(eventCode, addon)
if addon == "QuestCounter" then
--this event is no longer needed, unregister it
EVENT_MANAGER:UnregisterForEvent("QuestCounter", EVENT_ADD_ON_LOADED)
--initialize saved variables
SV = ZO_SavedVars:New("Cou_Variables", 1, defaults)
--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)
CreateAddonWindow()
--mouse click handlers
QuestCounter:SetHandler("OnMoveStop", OnMoveStop)
QuestCounter:SetHandler("OnMouseDoubleClick", ClickCount)
QuestCounter:SetHandler("OnMouseWheel", ResetCount)
--slash command
SLASH_COMMANDS["/qlc"] = function()
QuestCounter:ToggleHidden()
end
end
end
EVENT_MANAGER:RegisterForEvent("QuestCounter", EVENT_ADD_ON_LOADED, OnAddOnLoaded)