WeakAuras

WeakAuras

206M Downloads

GCD trigger inaccurate

Dsune0 opened this issue ยท 3 comments

commented

Description

This is a very niche issue but regardless i believe the code for the GCD trigger could be looked over.

The GCD trigger is not coherent to that of GetSpellCooldown(61304) which it is supposed to be tracking(?) and sometimes resets to 0 when GetSpellCooldown(61304) does not.

WeakAuras Version

Weakauas 4.0.2

World of Warcraft Flavor

Retail (Default)

Tested with only WeakAuras

  • Yes
  • No

Lua Error

No response

Reproduction Steps

How to reproduce: Have very high haste, especially obvious when casting wrath as balance druid in incarnation (eventually wrath casttime becomes shorter than 0.75s GCD) and track both the value of the trigger and GetSpellCooldown(61304) while continously casting.

This is the Aura that was used to detect the problem https://wago.io/sR_y_Wzzz

Here is image of that aura outputting different results from trigger and GetSpellCooldown(61304)
image

Here is a link to a video in slow motion when the trigger is reset to 0 while the GCD is still active:
https://cdn.discordapp.com/attachments/598903823800467496/992917530429636648/2022-07-03.mp4

Last Good Version

No response

Screenshots

No response

Export String

No response

commented

@Dsune0 sorry if we didn't reply sooner, reproduction steps are not precise and seems not easy to do.
The wago link has expired, could you re-upload the test aura?

commented

@mrbuds
https://wago.io/LC-4sFNZ7 here is recreated aura for testing
image

Image showing the GCD Spellcooldown from GetSpellCooldown(61304) with a value >0 while the GCD trigger == 0

Reproduction steps:
Increase haste to +60% (dont know any exact number for when its starts happening)
continously alternate between casting a spell with a short casttime (<1.5s) and a instant cast, eventually the GCD trigger will count down to 0 while the actual SpellCooldown starts over, displaying the real value

commented

I've tried reproducing that and got to 80% haste but could not see the problem you are demonstrating in the video.
In your video a GCD is completely missed, that what leads to the gcd trigger going down to 0.

The difference between a custom trigger that each frame calls GetSpellCooldown and the built-in trigger is that we only update the cooldown information if the game tells us via a event that the spell cooldowns have changed.

Now, in my video I saw a few instances where that event appears one frame late, but not that a GCD event was missed.

I checked the code, and while that can't rule out any bug, I'm still confident that if the game sends us a SPELL_UPDATE_COOLDOWN event, the gcd trigger updates itself. Thus I think this might be the game not sending a SPELL_UPDATE_COOLDOWN event.

Which we can't obviously fix.

Anyway, I would need to be able to reproduce to look further into this.