|
If I understood haste correctly boss frames are now real unitframes. Thus they should poll events like UNIT_HEALTH/UNIT_POWER on unit basis.
Thus you should be able to do sth like this: Lua Code:
Either this is not working as intended or sth else is wrong. Either way. The bossframes do not update correctly atm. |
I don't think boss units are real units (maybe they changed it and they are supposed to be, but they are still not). I don't use oUF, but I have the exact same problem in my own unitframes if I don't poll boss units.
|
RegisterUnitEvent only supports up to 2 units to filter on:
frame:RegisterUnitEvent(event, unit1, unit2) |
Thanks.
I checked ShadowedUnitFrames. He is still polling boss frame updates via OnUpdate. That is because his download is version 3.8.5. The latest changelog including the clique-shiv and bossframe change is 3.8.6 but that version is not available for download. The download on wowace is working properly: http://www.wowace.com/addons/shadowe...s/9127-v3-8-6/ *edit* I checked version 3.8.6. He did remove the OnUpdate polling of the boss frames. Not sure if he has any issues though. |
Is it just one fight it bugs out on or all of them? I've only done some limited testing in RFC and it seemed that events worked properly there (with and without the boss targeted).
|
I had the same issue on the Raigonn encounter. (http://www.wowhead.com/npc=56877)
There is a green bossframe showing the weakness. It does not update properly aswell. That was the first time I encountered the bug. The bug will only appear if more that one bossframe is in place. The current bossframe you are facing will always work properly. But bossframes you are not facing (interacting with) will not update properly. Maybe it can only be tested with other players being around doing damage to units you do not interact with. Once you swap targets the bossframe will update to the proper values. Currently it seems like the bossframes get frozen in place (receive no update) until you actively interact with them. Maybe events are registered to player thus they will not fire if others interact?! Just guessing here sorry. |
Quote:
|
My boss unit frames seems to be updating correctly (at least on elder council in ToT).
My oUF is a little bit custom : in units.lua I have registered INSTANCE_ENCOUNTER_ENGAGE_UNIT to boss uf with the following : Code:
elseif(unit:match'(boss)%d?$' == 'boss') then |
Thanks. Currently trying your suggestions.
*edit* Tested it on the Raigonn encounter again. Does not work. The weak spot will not update to the correct value unless you actively damage it. |
Add true as the third argument to :RegisterEvent:
Lua Code:
It seems the event also fires during the encounters, to force updates on all boss frames. |
*edit*
Please see below... I finished my test. UNIT_HEALTH is not working properly. It does not fire if a boss unit loses HP. It will fire if you target that unit though. That explains why only the current boss that you are looking at will update. Made some shots for prove: I think this a bug of the Blizzard API. I tested the same for UNIT_POWER. Guess what. It just works. Thus UNIT_POWER is currently working properly. UNIT_HEALTH is not. *edit2* Hmmm...maybe I still forget sth. But from my understanding UNIT_HEALTH does not fire enough. It does only fire for the current target frame. Going to try sth special now...damage done with a mouseover macro while targeting a pet. Maybe UNIT_HEALTH will not fire once. This would be really bad. :-( Just tested it. As I thought. I targeted my pet and did cleave damage with mouseover macros for 3 minutes. Not a single UNIT_HEALTH event call. Not one! But the mouseover tooltip shows that the boss units have lost health. Quite a downer imo. UNIT_POWER works. UNIT_HEALTH just does not fire at all unless you are targeting one of the boss units. Then it will fire for that one unit. Sure you get updates here and there if you register "UNIT_TARGETABLE_CHANGED" or "INSTANCE_ENCOUNTER_ENGAGE_UNIT" when the bossframes swap but that is by far not enough when it comes to unit_health. The only time you will get UNIT_HEALTH to work is if you actively target a bossframe. If you do this the UNIT_HEALTH event will work. But only for the unit you are targeting. Thus I went back to the OnUpdate. That still works flawlessly. If Blizzard fixes the BUG that UNIT_HEALTH is not firing for boss units we can remove the OnUpdate. But atm it is not possible. Lua Code:
I checked the Blizzard code. They are using OnUpdates to poll HealthUpdates but as far as I can tell only for PlayerUnits or TargetTarget. https://github.com/tekkub/wow-ui-sou...Frame.xml#L483 https://github.com/tekkub/wow-ui-sou...Frame.lua#L403 https://github.com/tekkub/wow-ui-sou...Frame.lua#L765 No clue how the default bossframe health actually is capable of updating properly. There is a thread on that on wowprogramming aswell: http://wowprogramming.com/forums/development/639 |
It's probably strange, but I did some lfr today and all multiple boss encounters updated correctly as far as I can tell. Tested The Stone Guard, Council of Elders and Megaera. I use oUF 1.6.4 without any modifications. I use UNIT_HEALTH_FREQUENT though, so maybe that's the issue?
|
Could be possible that UNIT_HEALTH_FREQUENT may fire correctly even if you are not targeting the unit. On the other hand I'm pretty sure UNIT_HEALTH_FREQUENT is nothing more than a hidden OnUpdate in the back...
Same idea is used here: http://code.google.com/p/isler-wowui...=svn71&r=71#19 Gonna test it. If it works adding "self.Health.frequentUpdates = true" should fix the issue on bossframes. |
Finished my test. Thank god. UNIT_HEALTH_FREQUENT does fire correctly for all boss units. No clue what is wrong with UNIT_HEALTH. So adding frequentUpdates to the boss unit healthbars fixes the health issue.
If you are changing your health values via tags make sure that boss unit health strings use a health tag that uses UNIT_HEALTH_FREQUENT aswell. Otherwise only that statusbar will update correctly. I suggest creating a new tag for that purpose since you may not want that event on all units. I will just post some stuff I'm using atm: Boss tags Lua Code:
Boss health statusbar. The powerbar does not need frequentupdates it works properly without. Lua Code:
I added this to oUF/units.lua Lua Code:
INSTANCE_ENCOUNTER_ENGAGE_UNIT is unitless thus the third attribute has to be set to true. |
I don't register INSTANCE_ENCOUNTER_ENGAGE_UNIT, neither do the current oUF version. And it updates properly, meaning it also shows all boss units. There are 9 UNIT_HEALTH_FREQUENT events between 2 UNIT_HEALTH if I recall correctly. If UNIT_HEALTH_FREQUENT is a hidden polling, why would Blizzard not just register for it but rather poll it in lua in UnitFrame.lua and the like?
I'll try to test Omnotron Defense System as INSTANCE_ENCOUNTER_ENGAGE_UNIT probably plays a role there. |
@Raidrider
Make sure you target your pet and use only mouseover macros. UNIT_HEALTH will not fire once for your boss units. Once you activate UNIT_HEALTH_FREQUENT it will fire properly. Nevertheless...my bug is gone test is finished. Thanks for help. You don't have to register the other two events. It's just nice to do it since they fire once an encounter starts or when bossframes switch places. |
Quote:
|
Phanx, that was exactly my point, I'm sorry if I expressed it wrongly. I asume the Blizzard event dispatcher is C coded, but they set an OnUpdate script for the stock frames instead of registering UNIT_HEALTH_FREQUENT. Why would they do that? The only reason I could think of would be that UNIT_HEALTH_FREQUENT does not work like other events and simply sets an OnUpdate script on the frame it gets registered to. Hm, would that be what Zork suspects which I didn't understand in my previous post? Apart from that, OnUpdate is also a kind of event handler reacting to the event of refreshing the screen, isn't it? Please excuse me for drifting away from the thread topic.
|
All times are GMT -6. The time now is 10:48 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI