WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Lua/XML Help (https://www.wowinterface.com/forums/forumdisplay.php?f=16)
-   -   Party and Raid frames (https://www.wowinterface.com/forums/showthread.php?t=56134)

doofus 03-31-18 02:13 AM

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!

doofus 03-31-18 05:35 AM

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