I hate to pseudonecro this thread, but I found a solution to this if you still cared.
I did some intense digging, and came up with:
Lua Code:
hooksecurefunc('ActionBarController_UpdateAll', function()
for i = 1, 12 do
local button = _G['ActionButton'..i]
local overrideButton = _G['OverrideActionBarButton'..i]
local _, spellID
if overrideButton then
_, spellID = GetActionInfo(overrideButton.action)
end
if ((HasOverrideActionBar() or HasVehicleActionBar()) and (spellID and spellID > 0)) or (not HasOverrideActionBar() and not HasVehicleActionBar()) then
button:SetAttribute('statehidden', false)
button:Show()
else
button:SetAttribute('statehidden', true)
button:Hide()
end
end
end)
the key thing is the SetAttribute('statehidden') for the buttons. The page changes early on in this quest (as soon as you mount the gryphon) but then the attributes are changed after the page change. I found the function above to hook and it works
HOWEVER, by using SetAttribute outside of a secure environment, this does cause tainting.
I've conversely come up with:
Lua Code:
frame:SetAttribute('_onattributechanged', [[
for i = 1, 12 do
local button = _G['ActionButton'..i]
local overrideButton = _G['OverrideActionBarButton'..i]
local _, spellID
if overrideButton then
_, spellID = GetActionInfo(overrideButton.action)
end
if ((HasOverrideActionBar() or HasVehicleActionBar()) and (spellID and spellID > 0)) or (not HasOverrideActionBar() and not HasVehicleActionBar()) then
button:SetAttribute('statehidden', false)
button:Show()
else
button:SetAttribute('statehidden', true)
button:Hide()
end
end
]])
but IDK if it works and it takes like 2-3 hours of questing to get to that particular quest to test it. If anyone can test that, let me know, if not, I'll post back when I have the time to get another character to that quest.