View Single Post
07-01-12, 01:52 AM   #2
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,617
Your code is currently saying "if this event is PLAYER_REGEN_DISABLED, show this frame, but if it's any other event, hide this frame". If you have any other events registered to the frame, the frame will be hidden whenever any event that is not PLAYER_REGEN_DISABLED occurs.

There are many ways to solve this problem. With no idea what the rest of your code looks like, I can't tell you which way is "best", though, so here are several:

(1) Unregister all other events on the same frame.

(2) Modify your event handler code to explicitly check whether the fired event is PLAYER_REGEN_ENABLED before hiding the frame:

Code:
if event == "PLAYER_REGEN_DISABLED" then
	self:Show()
elseif event == "PLAYER_REGEN_ENABLED" then
	self:Hide() 
end
(3) Modify your event handler code to show/hide the frame based on whether the player is currently engaged in combat, instead of based on which event fired:

Code:
if UnitAffectingCombat("player") then
	self:Show()
else
	self:Hide() 
end
Finally, when posting code and asking for help with it, please:

(1) Use indentation. It's not that bad when it's only 5 lines of code, but when you're posting 100+ lines of code with no indentation, it's basically unreadable, and nobody is going to bother trying to read it.

(2) Post all of your code, or at least all of the function you're having trouble with. If you really believe your code is so precious and secret that you can't let us see anything other than the 5 lines of code you think are relevant, at least make sure you're not including random snippets like the extra "end)" at the end of yours.
__________________
Retired author of too many addons.
Message me if you're interested in taking over one of my addons.
Don’t message me about addon bugs or programming questions.

Last edited by Phanx : 07-02-12 at 07:09 PM.
  Reply With Quote