Rarity

Rarity

17M Downloads

Duplicate attempts are added when killing Al'Akir

rdw-software opened this issue ยท 4 comments

commented

Source: Curse

Been farming Throne of the Four Winds for Drake of the South Wind. I've noticed the last few times that it is giving me credit for double attempts each kill. This has been on H-25 setting. No idea how long this might have been happening.

commented

I think this is the same issue as #213:

  • Here tooltip NPCs are added to the list of NPCs to items that we're tracking for them
  • When UNIT_DIED triggers, all items that are related to the NPCs will receive an "accidental" attempt
  • They then receive another attempt once the kill statistics are updated (this is correct)

Now, it's possible that UNIT_DIED doesn't trigger all the time, or is conditional/buggy. That just means relying on it for items that have kill statistics is a bad idea. Statistics are usually more accurate, unless Blizzard breaks them again of course, and are synchronized automatically even if players lose their settings. So ignoring UNIT_DIED for items that use statistics seems wise.

As to why the detection is working this way, not sure. Presumably, there were no kill statistics or UNIT_DIED worked differently.

commented

When testing this last, it appears the issue could not be reproduced. However, there are screenshots showing the problem:

In these, it looks like the UNIT_DIED event causes the first attempt to be counted, which should not happen at all. IIRC, the tooltipNpcs table is ONLY used to display tooltips for items when the actual Npcs field contains a dummy value (which is very odd to begin with, but alas...).

So I guess it might warrant a second glance, to see if maybe the logic is broken.

commented

I've tried replicating this on two separate runs, but neither resulted in duplicate attempts. In fact neither got the UNIT_DIED event triggered. ENCOUNTER_END was triggered and my attempt was added based on updates in statistics according to the debug output.

I'm not totally sure on all the logic behind this, but could this just have been the result of a limited time fault where both UNIT_DIED and ENCOUNTER_END got sent from the game?

commented

It's quite possible Blizzard changed how these events work. In my experience, UNIT_DIED used to only be sent if the enemy actually died (spawned a lootable or even non-lootable corpse, using Push Personal Loot). This is why the encounter detection was added in the first place, as many NPCs simply couldn't be reliably tracked IIRC.

Since there have been some reports of duplicate attempts for Timewalking bosses, like Murozond, which exhibited the same issue it might be that UNIT_DIED is sent (or I just added the bosses to the encounter detection by mistake and they actually do spawn a corpse?).

In short, it would have to be evaluated on a case-by-case basis. If there's UNIT_DIED then we can use the BOSS method in case the NPC isn't lootable. If it dies and can be looted, NPC is prefered due to adding attempts only when the corpse is looted (which fails on items delivered later via mail, by the Postmaster). The encounter detection is still hardcoded, but should be moved to a separate ENCOUNTER method after the database is refactored, and will catch anything else I think.

Of course, statistics are usually more accurate unless Blizzard broke them again, which means using them is the most reliable way to track attempts that will also persist over UI resets/clientside crashes that may render the addon's database corrupted and therefore unusable.