Thank you for that.
Out of curiousity I also had a check how the 'Recount' addon handling this whacky behavior. Lo and behold, its the exact same thing you do:
Code:
function Recount.playerExitCombat()
if (Recount.inCombat == true) and (Recount.onExitCombat == false) then
Recount.onExitCombat = true;
zo_callLater(Recount.doPlayerExitCombat, 1000)
end
end
Only difference is the 1second vs 500ms delay. I am going to implement this the same way, with zo_callLater(), at least until ZO fixes the event triggering!
EDIT: Testing and this is working great, even with a 1ms delay - no need for 500ms