One more time (lua uses "elseif" instead of "else if" like every other C-style language, and I tend to forget):
function eePanels2:RaidPanelVisibility(self, event, ...)
-- Not in a raid
if GetNumRaidMembers() < 1 then
-- Just you / not in a party
if GetNumPartyMembers() < 1 then
eePanel4:Hide()
eePanel5:Hide()
eePanel6:Hide()
eePanel7:Hide()
-- You plus 1 other person
elseif GetNumPartyMembers() == 1 then
eePanel4:Show()
eePanel5:Hide()
eePanel6:Hide()
eePanel7:Hide()
-- You plus 2 other people
elseif GetNumPartyMembers() == 2 then
eePanel4:Show()
eePanel5:Show()
eePanel6:Hide()
eePanel7:Hide()
-- You plus 3 other people
elseif GetNumPartyMembers() == 3 then
eePanel4:Show()
eePanel5:Show()
eePanel6:Show()
eePanel7:Hide()
-- You in a full group
elseif GetNumPartyMembers() == 4 then
eePanel4:Show()
eePanel5:Show()
eePanel6:Show()
eePanel7:Show()
end
-- In a raid, hide all panels
else
eePanel4:Hide()
eePanel5:Hide()
eePanel6:Hide()
eePanel7:Hide()
end
end
-- Ace2 event listeners; can't do this in more than one script
eePanels2:RegisterEvent("PLAYER_ENTERING_WORLD", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("PARTY_MEMBERS_CHANGED", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("RAID_ROSTER_UPDATE", eePanels2.RaidPanelVisibility)
And the script needs to be in the highest eePanel that it references (which is eePanel7 in this code), or an eePanel with an even larger number.
Yeah, I wish that worked =( Already tried hooking it to
QuartzMirrorBar
Quartz Mirror Bar
QuartzMirrorCastBar
Quartz Mirror Cast Bar
MirrorBar
Mirror Bar
All of which failed. I have been unable to find a clear answer to this question. Just thought I would ask here. Any help is greatly appreciated.
It's because the mirror frame doesn't have a name, and thus can't be parented.
You can try asking Nymbia if he'd give it a name.
Edit: I'm not sure if he will after looking at the code. It looks like he actually creates multiple mirror bars, and there's no one frame used to hold them all together (like there are with the other named bars). It's probably intentional that the mirror bar(s) doesn't have a name.
Hope eePanels2 can do like this Windows Control.
That's will economize any space.
PS:My English is pool...=.=0
It doesn't do this because it doesn't fall under the scope of this addon (it wouldn't even be worth doing unless you had some information to display in the tabs, which isn't what eePanels was meant to do).
Dont know if it has been asked before but,
Is it possible to make a frame become visable if a mob got a debuff and dissepear if the mob do not have the debuff?
If it can be scripted, could any1 make one for me?
One more time (lua uses "elseif" instead of "else if" like every other C-style language, and I tend to forget),
And the script needs to be in the highest eePanel that it references (which is eePanel7 in this code), or an eePanel with an even larger number.
Hi EE,
Those changes did the trick! I also realized that I wanted to have my party frames (and hence their respective eePanels) visible also when I was in a raid (just not any of the other non-party raid members), so I made this change which fixed that:
function eePanels2:RaidPanelVisibility(self, event, ...)
-- Just you / not in a party
if GetNumPartyMembers() < 1 then
eePanel6:Hide()
eePanel7:Hide()
eePanel8:Hide()
eePanel9:Hide()
-- You plus 1 other person
elseif GetNumPartyMembers() == 1 then
eePanel6:Show()
eePanel7:Hide()
eePanel8:Hide()
eePanel9:Hide()
-- You plus 2 other people
elseif GetNumPartyMembers() == 2 then
eePanel6:Show()
eePanel7:Show()
eePanel8:Hide()
eePanel9:Hide()
-- You plus 3 other people
elseif GetNumPartyMembers() == 3 then
eePanel6:Show()
eePanel7:Show()
eePanel8:Show()
eePanel9:Hide()
-- You in a full group
elseif GetNumPartyMembers() == 4 then
eePanel6:Show()
eePanel7:Show()
eePanel8:Show()
eePanel9:Show()
end
end
-- Ace2 event listeners; can't do this in more than one script
eePanels2:RegisterEvent("PLAYER_ENTERING_WORLD", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("PARTY_MEMBERS_CHANGED", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("RAID_ROSTER_UPDATE", eePanels2.RaidPanelVisibility)
Once again, you rock! Hopefully this info will also be really valuable to any other PitBull user trying to achieve the same thing, but can't do it due to the parenting issue with PB's party/raid frame.
I'm using the following script for a panel serving as the background for grid:
local gridExists = getglobal("GridLayoutFrame")
if gridExists then
eePanel5_Hook = AceLibrary("AceAddon-2.0"):new("AceHook-2.1")
eePanel5:SetWidth(GridLayoutFrame:GetWidth()+13)
eePanel5:SetHeight(GridLayoutFrame:GetHeight()+13)
function eePanel5_Hook:OnSizeChanged(frame, ...)
eePanel5:SetWidth(frame:GetWidth()+13)
eePanel5:SetHeight(frame:GetHeight()+13)
end
eePanel5_Hook:HookScript(GridLayoutFrame, "OnSizeChanged")
end
Until recently, this worked pretty well when Grid changed its size. As of now, i often have to "edit" the Script (not actually changing anything) and click ok in order to have the panel resize to grids actual size .. i couldn't find a script on the wiki-page and googling didn't really help .. is there a better way to do this?
Hey, I'm rather new to eePanels, and I'm having a few problems.
1. How do I make a Panel show up when ever the casting bar(Quartz) shows up? I tried ataching it to the castingbar via the options but after I reloaded my UI the panel would not show up at all after. Im guessing I need a Lua script to do this.
2. Everytime I reload my UI or quit/log back in my eePanels all are above the other frames, I then need to go to eePanels options change the "Strata" from Background down to something else and then back up to Background. Fixed this, All my eePanels are bound to my simpleMinimap to center everything perfectly and my simpleminimap "Strata" was maxed out.
I'm using the following script for a panel serving as the background for grid:
local gridExists = getglobal("GridLayoutFrame")
if gridExists then
eePanel5_Hook = AceLibrary("AceAddon-2.0"):new("AceHook-2.1")
eePanel5:SetWidth(GridLayoutFrame:GetWidth()+13)
eePanel5:SetHeight(GridLayoutFrame:GetHeight()+13)
function eePanel5_Hook:OnSizeChanged(frame, ...)
eePanel5:SetWidth(frame:GetWidth()+13)
eePanel5:SetHeight(frame:GetHeight()+13)
end
eePanel5_Hook:HookScript(GridLayoutFrame, "OnSizeChanged")
end
Until recently, this worked pretty well when Grid changed its size. As of now, i often have to "edit" the Script (not actually changing anything) and click ok in order to have the panel resize to grids actual size .. i couldn't find a script on the wiki-page and googling didn't really help .. is there a better way to do this?
It sounds like the script is being run before Grid is loaded. Open the eePanels2.toc file, and add Grid to the OptDeps list.
Hey, I'm rather new to eePanels, and I'm having a few problems.
1. How do I make a Panel show up when ever the casting bar(Quartz) shows up? I tried ataching it to the castingbar via the options but after I reloaded my UI the panel would not show up at all after. Im guessing I need a Lua script to do this.
Works great until I /rl or log out/back in :/ After I do one of those two it doesn't show up at all, resizing or anything like that wont get it to show again :/ Only way to fix it from this point is parent it to something else or delete it. --Edit changing its position back to 0x0 fixs it (says its at 0x0 in the gui but doesnt show up)
I'm trying to enhance the script I posted before, here's the code I have atm but it's not quite working right and I'm sure it's possible to simplify it. I haven't done much scripting since my school days (and that was mostly PHP, not LUA, similar but actually quite different, heh), though, so I don't know how. Help me out. :)
function eePanels2:RaidPanelVisibility(self, event, ...)
if GetNumPartyMembers() > 4 or GetNumRaidMembers() > 0 then
eePanel4:Show()
eePanel6:Show()
else
eePanel4:Hide()
eePanel6:Hide()
end
if GetNumPartyMembers() > 4 then
eePanel8:Show()
eePanel9:Show()
eePanel10:Show()
eePanel11:Show()
else
eePanel8:Hide()
eePanel9:Hide()
eePanel10:Hide()
eePanel11:Hide()
end
if GetNumPartyMembers() > 3 then
eePanel8:Show()
eePanel9:Show()
eePanel10:Show()
else
eePanel8:Hide()
eePanel9:Hide()
eePanel10:Hide()
end
if GetNumPartyMembers() > 2 then
eePanel8:Show()
eePanel9:Show()
else
eePanel8:Hide()
eePanel9:Hide()
end
if GetNumPartyMembers() > 1 then
eePanel8:Show()
else
eePanel8:Hide()
end
end
-- Ace2 event listeners; can't do this in more than one script
eePanels2:RegisterEvent("PLAYER_ENTERING_WORLD", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("PARTY_MEMBERS_CHANGED", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("RAID_ROSTER_UPDATE", eePanels2.RaidPanelVisibility)
As you might see, I'm trying to show panels depending on how many people are in my party, besides showing 2 unrelated panels when I'm in a raid in general. The party part isn't working properly, I can't seem to figure out how to make it work, if possible at all.
EDIT: I just noticed that somebody had a similar problem just a few posts back, heh... I'm gonna try that.
EDIT 2: Yep, seems to work. :D
Here's the code in case somebody else finds or will find it useful:
function eePanels2:RaidPanelVisibility(self, event, ...)
if GetNumPartyMembers() > 4 or GetNumRaidMembers() > 0 then
eePanel4:Show()
eePanel6:Show()
else
eePanel4:Hide()
eePanel6:Hide()
end
-- Just you / not in a party
if GetNumPartyMembers() < 1 then
eePanel8:Hide()
eePanel9:Hide()
eePanel10:Hide()
eePanel11:Hide()
-- You plus 1 other person
elseif GetNumPartyMembers() == 1 then
eePanel8:Show()
eePanel9:Hide()
eePanel10:Hide()
eePanel11:Hide()
-- You plus 2 other people
elseif GetNumPartyMembers() == 2 then
eePanel8:Show()
eePanel9:Show()
eePanel10:Hide()
eePanel11:Hide()
-- You plus 3 other people
elseif GetNumPartyMembers() == 3 then
eePanel8:Show()
eePanel9:Show()
eePanel10:Show()
eePanel11:Hide()
-- You in a full group
elseif GetNumPartyMembers() == 4 then
eePanel8:Show()
eePanel9:Show()
eePanel10:Show()
eePanel11:Show()
end
end
-- Ace2 event listeners; can't do this in more than one script
eePanels2:RegisterEvent("PLAYER_ENTERING_WORLD", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("PARTY_MEMBERS_CHANGED", eePanels2.RaidPanelVisibility)
eePanels2:RegisterEvent("RAID_ROSTER_UPDATE", eePanels2.RaidPanelVisibility)
Sorry for asking what some may view as a dumb question, but I think this will fix my problem as well. I just don't understand the adding Quartz to Opt Deps of eePanels part. Is anyone able to explain this to me so I can do the same and hopefully fix my problem as well?
Some people ask for it, I made a little script to adjust size of a panel with elkBuffBars.
function eePanel8_update()
local i = 1
while true do
local buffIndex, untilCancelled = GetPlayerBuff(i, "HELPFUL")
if buffIndex == 0 then break end
i = i + 1
end
eePanel8:SetHeight(2 + i * 16)
end
-- "16" is the height of one bar.
eePanels2:RegisterEvent("PLAYER_AURAS_CHANGED",eePanel8_update)
It needs some tuning, maybe, but it works pretty well for me atm.
should be
That's will economize any space.
PS:My English is pool...=.=0
Hmmmm, yeah I tried that, but still generates the same message. I also noticed that () were not present after:
GetNumPartyMembers == 2
GetNumPartyMembers == 3
GetNumPartyMembers == 4
so I tried changing to:
GetNumPartyMembers() == 2
GetNumPartyMembers() == 3
GetNumPartyMembers() == 4
but still same message.........
And the script needs to be in the highest eePanel that it references (which is eePanel7 in this code), or an eePanel with an even larger number.
It's because the mirror frame doesn't have a name, and thus can't be parented.
You can try asking Nymbia if he'd give it a name.
Edit: I'm not sure if he will after looking at the code. It looks like he actually creates multiple mirror bars, and there's no one frame used to hold them all together (like there are with the other named bars). It's probably intentional that the mirror bar(s) doesn't have a name.
It doesn't do this because it doesn't fall under the scope of this addon (it wouldn't even be worth doing unless you had some information to display in the tabs, which isn't what eePanels was meant to do).
Is it possible to make a frame become visable if a mob got a debuff and dissepear if the mob do not have the debuff?
If it can be scripted, could any1 make one for me?
Hi EE,
Those changes did the trick! I also realized that I wanted to have my party frames (and hence their respective eePanels) visible also when I was in a raid (just not any of the other non-party raid members), so I made this change which fixed that:
Once again, you rock! Hopefully this info will also be really valuable to any other PitBull user trying to achieve the same thing, but can't do it due to the parenting issue with PB's party/raid frame.
Until recently, this worked pretty well when Grid changed its size. As of now, i often have to "edit" the Script (not actually changing anything) and click ok in order to have the panel resize to grids actual size .. i couldn't find a script on the wiki-page and googling didn't really help .. is there a better way to do this?
1. How do I make a Panel show up when ever the casting bar(Quartz) shows up? I tried ataching it to the castingbar via the options but after I reloaded my UI the panel would not show up at all after. Im guessing I need a Lua script to do this.
2. Everytime I reload my UI or quit/log back in my eePanels all are above the other frames, I then need to go to eePanels options change the "Strata" from Background down to something else and then back up to Background. Fixed this, All my eePanels are bound to my simpleMinimap to center everything perfectly and my simpleminimap "Strata" was maxed out.
Any help? Thanks :)
It sounds like the script is being run before Grid is loaded. Open the eePanels2.toc file, and add Grid to the OptDeps list.
Parent the panel to QuartzCastBar
Works great until I /rl or log out/back in :/ After I do one of those two it doesn't show up at all, resizing or anything like that wont get it to show again :/ Only way to fix it from this point is parent it to something else or delete it. --Edit changing its position back to 0x0 fixs it (says its at 0x0 in the gui but doesnt show up)
As you might see, I'm trying to show panels depending on how many people are in my party, besides showing 2 unrelated panels when I'm in a raid in general. The party part isn't working properly, I can't seem to figure out how to make it work, if possible at all.
EDIT: I just noticed that somebody had a similar problem just a few posts back, heh... I'm gonna try that.
EDIT 2: Yep, seems to work. :D
Here's the code in case somebody else finds or will find it useful:
:)
That did it, thanks a ton!
Sorry for asking what some may view as a dumb question, but I think this will fix my problem as well. I just don't understand the adding Quartz to Opt Deps of eePanels part. Is anyone able to explain this to me so I can do the same and hopefully fix my problem as well?
Go into your Interface\Addons folder, find eePanels2, edit the eePanels2.toc file and at the end of this line
## OptionalDeps: Ace2, FuBar, DewdropLib, FuBarPlugin-2.0, LibSharedMedia-2.0, SharedMedia-2.0, Waterfall-1.0
add Quartz
It needs some tuning, maybe, but it works pretty well for me atm.
Lanffeust (sorry for my Bad English)
Thank You sooooo much. This did the trick. Thanks again.