Problem with Suramar World Quest id 44067
ggiovannelli opened this issue ยท 8 comments
Hi p3lim,
I am using ExtraQuestButton and I have noticed that in the questid 44067 the item to be used itemid:141253 is always overwritten by the spell used as disguised night elf (spellid 204477).
The problem is that the quest item is to be used when you have to fight some elites, but when you fight you are not disguised anymore and so the the other spell appears (even if in combat) overwritten the first.
Thanks if you can check it .
I'm aware of this, but to fix this I would have to ditch the whole idea of a synergy between the button created by the addon and the ExtraActionButton, as I doubt I can manipulate the EAB like I'd want to.
Contradicting labels, I know, but I will investigate it, just no guaranteed fix for now.
It seems simple in practice, but when you have to account for the secure environment buttons are limited to, you start running out of options quick.
As a potential solution for this;
Why not have the Suramar disguise EAB only override the EQB if the nightborne disguise buff is not present? It would be a single conditional, and would allow you to programatically address other situations like this? For example, there are vehicle quests where you summon the vehicle using the quest item, if you are in the vehicle it makes sense to no longer show the quest button, and if the vehicle gets destroyed it makes sense to then show the button again.
Seems like a reasonable, polished approach to this type of situation.
function ExtraQuestButton:SetItem(itemLink, texture)
if(HasExtraActionBar()) then
local button = _G['ExtraActionButton1']
local slot = ActionButton_GetPagedID(button) or ActionButton_CalculateAction(button) or button:GetAttribute('action') or 0
if HasAction(slot) then
local actionName, _
local actionType, id = GetActionInfo(slot)
if actionType == 'spell' or (actionType == 'macro' and id) then
actionName = GetSpellinfo(id)
end
if actionName == "Masquerade" then
if UnitBuff("player", "Masquerade") then
DEFAULT_CHAT_FRAME:AddMessage("Player has Masquerade, we can hide the ExtraActionButton1")
else
DEFAULT_CHAT_FRAME:AddMessage("Masquerade not present, let the ExtraActionButton1 show")
return
end
end
end
end
Something like this?