Thread Tools Display Modes
Prev Previous Post   Next Post Next
03/14/24, 08:51 AM   #1
Saint-Ange
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 10
Need help with an addon writting

Hi, sorry I know everyone is very busy atm but I'm getting crazy over here. Yesterday I finished testing an addon and all was fine and published it: ToggleGroupFrame. Today I log in and catastrophe I got this error:
Code:
:1: function expected instead of nil
stack traceback:
:1: in function '(main chunk)'
	<Locals> keybind = "TOGGLE_GROUP_FRAME" </Locals>
and I'm unable to solve the problem. I'm a beginner, I try to follow guides, I've spent alone more time on this than I'd like to admit, my energy is depleted and my capacities aren't what they were. I need help to sort this out, especially now that I've clearly made the mistake to upload too early.

Here's the lua:
Code:
local addon = { name = "ToggleGroupFrame" }
local em = GetEventManager()
local groupFrameHidden = true
local showInCombat = true

ZO_CreateStringId("SI_BINDING_NAME_TOGGLE_GROUP_FRAME", "Show/Hide group frame")
ZO_CreateStringId("SI_BINDING_NAME_TOGGLE_GROUP_FRAME_IN_COMBAT", "Show/Hide in combat")

local function OnAddOnLoaded(event, addonName)
   if addonName ~= addon.name then return end
   Initialize()
end

function Initialize()
   ZO_UnitFramesGroups:SetHidden(true)

   local savedVariables = ZO_SavedVars:New("ToggleGroupFrameSavedVariables", 1, nil, {}, GetWorldName())

   SLASH_COMMANDS['/togglegroupframe'] = function()
      groupFrameHidden = not groupFrameHidden
      ZO_UnitFramesGroups:SetHidden(groupFrameHidden)
      savedVariables.groupFrameHidden = groupFrameHidden
   end
   SLASH_COMMANDS['/tgf'] = SLASH_COMMANDS['/togglegroupframe']
   
   SLASH_COMMANDS['/togglegroupframeincombat'] = function()
      showInCombat = not showInCombat
      savedVariables.showInCombat = showInCombat
      UpdateGroupFrameVisibility()
   end
   SLASH_COMMANDS['/tgfc'] = SLASH_COMMANDS['/togglegroupframeincombat']
   SLASH_COMMANDS['/tgfic'] = SLASH_COMMANDS['/togglegroupframeincombat']

   em:RegisterForEvent(addon.name, EVENT_PLAYER_COMBAT_STATE, OnCombatStateChanged)
   em:UnregisterForEvent(addon.name, EVENT_ADD_ON_LOADED)
end

function UpdateGroupFrameVisibility()
   if IsUnitInCombat("player") then
      if showInCombat then
         ZO_UnitFramesGroups:SetHidden(false)
      else
         ZO_UnitFramesGroups:SetHidden(true)
      end
   else
      ZO_UnitFramesGroups:SetHidden(groupFrameHidden)
   end
end

function OnCombatStateChanged(event, inCombat)
   if not groupFrameHidden then
      return
   end

   UpdateGroupFrameVisibility()
end

em:RegisterForEvent(addon.name, EVENT_ADD_ON_LOADED, OnAddOnLoaded)
and the xml just to be sure:
Code:
<Bindings>
  <Layer name="SI_KEYBINDINGS_LAYER_GENERAL">
    <Category name="ToggleGroupFrame">
      <Action name="TOGGLE_GROUP_FRAME">
        <Down>SLASH_COMMANDS["/togglegroupframe"]()</Down>
      </Action>
      <Action name="TOGGLE_GROUP_FRAME_IN_COMBAT">
        <Down>SLASH_COMMANDS["/togglegroupframeincombat"]()</Down>
      </Action>
    </Category>
  </Layer>
</Bindings>
Any help would be much much much appreciated.
  Reply With Quote
 

ESOUI » AddOns » AddOn Help/Support » Need help with an addon writting


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