WeakAuras

WeakAuras

206M Downloads

Inbuilt swing timer trigger doesn't reset progress on extra attacks!

Palemand opened this issue ยท 2 comments

commented

Description

When you gain an extra attack in the middle of your swing timer, it will do the extra attack and then reset the timer, but WA does not represent this reset in the inbuilt swing timer trigger. This means that the progress bar simply stops at the end and waits for the actual swing to occur, which is wrong.

Linked here is a showcase of the issue, but in general its a very simple situation to recreate. All WA's that use the trigger share the issue.

WA.Swingtimer.mp4

WeakAuras Version

WeakAuras 3.7.8

World of Warcraft Flavor

Classic

Tested with only WeakAuras

  • Yes
  • No

Lua Error

No response

Reproduction Steps

  1. Go on ptr with the newest WA's installed
  2. Make a 60 warrior
  3. Create a swingtimer WA with the inbuilt mainhand trigger
  4. Get a friend to make a shaman (or just equip hand of justice if you want to test it alone)
  5. Let him drop windfury totem for you in front of Orgrimmar
  6. Press hamstring close to the end of the swingtimer and hope for an extra attack
  7. Done! You should get the same result, where the swing timer WA does not reset, and just stops at the end

Last Good Version

No response

Screenshots

No response

Export String

!WA:2!1vvZUTTrqytOw0cIEW2i19qtbmAbccABmsCstZLyxrzQyfllPssf)tDJ8sURe3eQD3S7sllFuiOOOh95Esh6dGEckYLELWO3lGFe8lq6SKYwUbn6GWmlxoZ8nZ38rRQl2Fr8I4F1pmvrKDgAnMgXz(8uze5MZvC4XwNHs1XCztHMYzk7jyQsKGggqowF(o1ASr12E7T8wUBTJTCyZUDve9M)q179xZn3Cwx0Llj9K8ugUcpHlFAj43zkbs(spUgzcO1efQpXeSuj5WlcrrV86VqRs3DLV7D(lVk7eDvapvrs62Itz6qNMbbn3EuisonFwwLgJjkeeDKMepsEzAD6YzAX8vL0tw(htry4XOLdcEtEXvaJ9SCs4iC1qnkHW0l51pnrtTDucs0szFMTxucsPmwok6jeJXf6cGSJej2MJjIBuPE5TBf00PE5kBvEJnQfu7zUJvAKuxM1lHyDMkgH5d2TiLLeZdD9Y4xKQ0embVnLfpgAHqfhmuqKiaga4onekiSjbEo1DBSXPQeetB8dR1WV2gUYP1XiNe6jNGK4cCnTnlUDnMMi7IIihubP0uwphK8G21UZmV74NpLYFT4rr8(cjrPI9qjIyuPvtP4jVAV4xT3d2D)W23ECx6Xe8ouSo(1FIy(ztXcy9HGToHYiYMTdQxRH71BZ7A5fDnYrE7yVIhDZ5e3y20Z5QOglMpc6q8(ga1wGHh6rocMrNdCvEFychLxloLb3RhIQxXhJhPL0E9is1ZVLCQ5F4OHMStkJQphgdDqjdqdvAzk5WZvPH5zWpTlG1jDQu2pOJFqzVGShnUcNHP5RhzRhAwoiYraljjPgwzpYektmp0JbuDL9vXQLKaXYZVLB96alnecD(uEt36TQ2U(PPSPfM9TYE8VK90STYwlBDNyed70hrz5r24D4zgljXCim(IZwpBJShnXFa4SCaTprMv9WS657UViLfPPhrwfXgkwaLBhuKgdb6dhbmRCQ5Rx6cQHMWqjpdAta6iNIy0(57pp0lNdx9neKI4RLewpD8hLTMddU2zytZgUvht)uQiW(kwnYCvd(Y2pRr1S9GBdw)u2bz)C2(HDHkxf)UhpwZJoQi5F83(BJHgNx(YG6RxkBTZa3zmTPhmtXjmMq7fdIrp53F1)823(whJSr84CM3m1OZZ9DUCFAvyh9D3brhhlwywIUCj6HZwIkJXqnDWoe0lldqxDql(aIm3CBcMIoO4uZ)3pmsYfDoU1hC3vEW9MWLuGiK3SelUztVA73Srq56DQ14zUE(UIf(pILMk0PC7GMILVMkChaZWuPJOJgg1t9Sc7tLsUCkGZxh(u5XtfO)tXt(cqGEUlqSiqBVQ0ObdJMq)kEUUngzeh9bnTOtZ1AvuqPXR2t2mq8vV)edkeruZOQ0K8CUjfJjmVgUauMEs(e5XIp))nifgEMyHdH02L2ZUOBnSOBjnJeA3HGMx1Grd4sSrND0otn(sk2RbzWYRk(M3FrIhclH0Oo6yqplMNGhoPRb9ahg(cqjVbfAytkAmfFvPIBJaxpXcZ4wt5azVqszg(jjwA2KasWdZ21o752oaDwBpPqnRGTzz(wu0vkf2tOSIsd8SDoHZ7BTOY7(R89R8Ofp6V39Fp

commented

The WeakAuras code displays this:
Note: Due to how complicated the swing timer behaviour is and the lack of APIs from Blizzard, results are inaccurate in edge cases.

We do mean that.

In this case, I think, you can actually see the source of problems in the combat log. Due to the combat log not being clear on which attacks are genuine melee swings or triggered from extra attacks, we can't distinguish them from each other.

commented

I saw that note aswell ofc. I am sadly not a skilled enough coder to be able to write a fix myself, but i don't understand why a classic only piece of code wouldn't be possible.

When SPELL_EXTRA_ATTACK do new timer == current timer - current timer

It is obviously not this simple i understand, but even without knowing in the combat log what swing is the extra swing, you can still assume that 99% of the time any "you have gained one extra attack from X" happens, it will instantly reset the actual ingame timer. Worst case scenario is that the hit that triggers the extra attack kills the mob, and then you target another mob and it swings instantly. But that would still be an even smaller edge case.
Anyways sry for bothering with a "not a bug" :p