Party and Raid frames
Hello eveyone
Working on a standard Blizzard GUI - no addons to change the party/raid frames. I have been trying to find (a) where the party/raid frames are on the screen for each player (b) what player/party/raid member each frame is attached to If you know the answer(s) to the above please let me know. ************************************************************************** After some experiments: 1) Use IsInGroup() / IsInRaid() to tell if we are in a group or in a raid party 2) Use GetNumGroupMembers() and GetRaidRosterInfo(n) to determine raid size and the "raidN" position of each player, along with the subgroup they are in (groups 1 to 8). From now on I can personally refer to each player in the raid as "raid1", "raid2", "raid3" etc and I can do, for example, UnitHealth("raid20"). I also know how many players in each subgroup. Now from here on it gets sketchy: 3) Use _G["CompactRaidGroup6Member1"] (or some such string) to get the frame handle of the party/raid frame for each player. I can determine the "Group6" component of the string from the GetRaidRosterInfo() return "subgroup". If I select an unfilled slot, then I will get the raid frame handle even if it is hidden on the screen. 4) From this raid frame handle I can find its position and size with GetLeft()/GetBottom() etc. Fstack shows it has the link I am looking for, eg "raid4" in "strings" and "unit" / "displayedUnit". But I do not know the API call to inquire this string. Something similar to GetLeft() - maybe GetStrings() ? **************************** The main problems 1) Using _G["CompactRaidGroup6Member1"] to get the frame handle sounds a bit dodgy - is it reliable? I would prefer an API method like "GetUnitRaidFrame()" 2) I do not know how to inquire the frame handle in order to retrieve the raid unit it is tied to... fstack knows how to do it however! |
OK it seems I have the answer(s).
First it is "documented" that "name" Widget attributes occupy a global table and you can therefore do EITHER of: CompactRaidGroup1Member1:GetLeft() or _G["CompactRaidGroup1Member1"]:GetLeft() Secondly, even though it was not working yesterday, today I can do CompactRaidGroup1Member1:GetAttribute("unit") and it correctly returns the raid unit it is attached to, eg "raid1". This is all the info I have needed to tie the Raid Frames (screen locations and size) to actual party/raid members! |
All times are GMT -6. The time now is 05:58 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI