Ovale Spell Priority

Ovale Spell Priority

6M Downloads

Ability that applies debuff misses bug

ShmooDude opened this issue ยท 4 comments

commented

Currently, if a spell has SpellAddTargetDebuff setup, if that ability is parried (and I'm assuming misses by other means). Ovale will consider the debuff applied for quite a while, about 4 to 5 seconds, and then fixes itself. This can cause major problems as chances are we're trying to keep that ability up so Ovale needs to recognize instantly that the ability missed and didn't actually apply the debuff.

Example: SpellAddTargetDebuff(rake rake_debuff=1)

EDIT: I had initially fixed this by simply removing those lines, but that causes snapshotting issues similar to #9.

EDIT2: Removed mention of inconsistency with time stamps. Ovale always has that issue with the debug code:
OvaleAura: Snapshot stats for HARMFUL Rake (155722) on Creature-0-3136-1159-17718-87320-00001F7E4E applied by Rake (1822) from 211483.618000, now=211494.766000, aura.serial=106

commented

Pretty sure the issue is that the state doesn't have any code that forces it to pull the values from the real aura on a miss. If I bypass the state in the conditions.lua for the appropriate function and simply pull the aura information directly from OvaleAura than it works as expected. Though that's really just bypassing the bug rather than fixing it and wouldn't work for non-instant cast spells (and might cause snapshotting issues, I don't know I didn't really test it thoroughly).

Spent hours last night trying to either update the state aura from the real aura or force a reset. I managed to get the state to reset itself when the combat log detected a miss (ResetState function) but it apparently didn't fix the bug. Not sure I really understand the difference between the state and the main code well enough to fix this myself :)

commented

I will look into it when I will have sufficient time. It seems quite difficult and the code has been heavily modified by @ultijlam so I need to understand it first.

commented

#14 is a temporary patch that simply bypasses the state aura information in favor of the real aura information when a COMBAT_LOG_EVENT_UNFILTERED event of type SPELL_MISSED is detected until the state aura information has caught up with the real aura information.

Honestly, this is really a workaround as really we should be able to somehow force the state aura to match the real one. Can't really figure out how though. I tried ResetState and ClearState in either the Aura or State files. I also tried directly forcing the real aura data into the state aura data directly. None of that worked. Ovale does fix itself usually after 4-5 seconds but I have no idea exactly how this happens.

This patch should be sufficient and allow you to focus on other things until you have some time to look into it (or reach a point where you understand the state code that fixing it is easy). It's all marked at the beginning and end of the modified sections for easy removal.

commented

Going to try to tackle this next I think.