Thread Tools Display Modes
Prev Previous Post   Next Post Next
12/11/18, 01:37 PM   #1
TheCrzyDoctor
Join Date: Dec 2018
Posts: 5
Event not being called?

I've been playing ESO on and off for a while. I've finally got around to looking into making my own addons. So I fillowed the Writing your first addon tutorial. Though Instead of doing incombat, i'm using zone change. I believe I have it set up correctly but when I change zones the label in the UI won't update nor will the new location be added to the chat.

my lua file
Code:
-- First, we create a namespace for our addon by declaring a top-level table that will hold everything else.
    TCDInfoPanel = {}

-- This isn't strictly necessary, but we'll use this string later when registering events.
-- Better to define it in a single place rather than retyping the same string.
    TCDInfoPanel.name = "TCDInfoPanel"

function TCDInfoPanel:RestorePosition()
    local left = self.savedVariables.left
    local top = self.savedVariables.top
    
    TCDInfoPanelUI:ClearAnchors()
    TCDInfoPanelUI:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, left, top)
end

-- Then we create an event handler function which will be called when the "addon loaded" event
-- occurs. We'll use this to initialize our addon after all of its resources are fully loaded.
function TCDInfoPanel.OnAddOnLoaded(event, addonName)
    -- The event fires each time *any* addon loads - but we only care about when our own addon loads.
    if addonName == TCDInfoPanel.name then
        TCDInfoPanel:Initialize()
    end
end

function TCDInfoPanel.OnIndicatorMoveStop()
    TCDInfoPanel.savedVariables.left = TCDInfoPanelUI:GetLeft()
    TCDInfoPanel.savedVariables.top = TCDInfoPanelUI:GetTop()
end

function TCDInfoPanel.ZoneChanged(eventCode, zoneName, subZoneName, newSubzone, zoneId, subZoneID)
    local zoneText
    -- Get the location of player
    zoneText=zoneName
    -- Debug testing post in chat.    
    d("zone changed to: " )
    d(zoneText)
    -- Update the label of the location.
    TCDInfoPanelUILocationLabel:SetText("Location Updated")
end

-- Initialize the addon
    function TCDInfoPanel:Initialize()
        -- Create saved variables.
        self.savedVariables = ZO_SavedVars:New("TCDInfoPanelAddonSavedVariables", 1, nil, {})
    
        -- Set up event changes to update location on info bar.
        EVENT_MANAGER:RegisterForEvent(self.name, EVENT_ZONE_CHANGED, self.ZoneChanged)
    
        -- Restore the previous location of the Addon.
        self:RestorePosition()
    end

-- Finally, we'll register our event handler function to be called when the proper event occurs.
EVENT_MANAGER:RegisterForEvent(TCDInfoPanel.name, EVENT_ADD_ON_LOADED, TCDInfoPanel.OnAddOnLoaded)
my xml file
Code:
<GuiXml>
    <Controls>
        <TopLevelControl name="TCDInfoPanelUI" mouseEnabled="true" movable="true" clampedToScreen="true">
            <Dimensions x="500" y="35" />
            <Anchor point="BOTTOM" relativeTo="GuiRoot" relativePoint="CENTER" />

            <OnMoveStop>
                TCDInfoPanel.OnIndicatorMoveStop()
            </OnMoveStop>

            <Controls>
                <Backdrop name="$(parent)BG" inherits="ZO_DefaultBackdrop" excludeFromResizeToFitExtents="true">
                    <AnchorFill />
                </Backdrop>
                <Control name="$(parent)Location">
                    <Dimensions x="80" y="35" />
                    <Anchor point="RIGHT" relativeTo="$(parent)" relativePoint="CENTER" />
                    <Controls>
                        <Label name="$(parent)LocationLabel" font="ZoFontGameMedium" inheritAlpha="true" color="ffffff"
                        wrapMode="TRUNCATE" verticalAlignment="CENTER" horizontalAlignment="CENTER" text="Location:">
                            <AnchorFill />
                        </Label>
                    </Controls>
                </Control>                
            </Controls>
        </TopLevelControl>
    </Controls>
</GuiXml>
Im a Python developer who is new to Lua. I'm sure I'm just over looking something very simple. Any points in the right direction would be awesome. This is all a base for a WoW UI mod I really enjoyed back when I played wow and havent found something similiar in ESO yet. SO I figured I'd bring it over.
  Reply With Quote
 

ESOUI » Developer Discussions » Lua/XML Help » Event not being called?


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