RareTrackerCore (RT)

RareTrackerCore (RT)

602k Downloads

Shard change detection hiccup

Daeymien opened this issue ยท 9 comments

commented

Using version 2.1.1
Noticed the following in Mechagon when mousing between the repair vendor on my Brutosaur mount that I had been mounted on previous to logging in:

[17:22:30] <RT> Moving to shard 208. 
[17:22:32] <RT> Moving to shard 2. 
[17:22:33] <RT> Moving to shard 208. 
[17:22:41] <RT> Moving to shard 2. 
[17:22:41] <RT> Moving to shard 208. 
[17:22:41] <RT> Moving to shard 2. 
[17:22:42] <RT> Moving to shard 208. 
[17:22:43] <RT> Moving to shard 2. 
[17:22:43] <RT> Moving to shard 208. 
[17:22:43] <RT> Moving to shard 2. 
[17:22:46] <RT> Moving to shard 208. 

The 2 is mousing over the repair vendor on the mount, the 208 is mousing over an in-world vendor nearby.

Further testing shows same behaviour with any mount with vendors on it (Traveler's Mammoth, Yak, etc.) if on the mount when first logging into the world. Same behaviour also in Nazjatar and other zones where the modules are active.

Nazjatar example, with debug turned on:

[18:00:41] <RT> Moving to shard 191. 
[18:00:41] [Debug.RT] Leaving channel RT1355S31 
[18:00:41] [Debug.RT] Restoring data from previous session in shard 191 
[18:00:41] [Debug.RT] Requesting rare kill data for shard 191 
[18:00:41] [Debug.RT] Sending: A 191 10 1604530840 CHANNEL 6 
[18:00:41] [Debug.RT] [UPDATE_MOUSEOVER_UNIT] mouseover Creature-0-3878-1718-191-151909-000022D16A 
[18:00:41] [Debug.RT] Sending outdated warning over RTN31 
[18:00:41] [Debug.RT] Requesting rare kill data for shard 191 
[18:00:41] [Debug.RT] Sending: A 191 10 1604530840 CHANNEL 6 
[18:00:41] <RT> Moving to shard 31. 
[18:00:41] [Debug.RT] Leaving channel RT1355S191 
[18:00:41] [Debug.RT] Restoring data from previous session in shard 31 
[18:00:41] [Debug.RT] Joining channel RT1355S31 
[18:00:41] [Debug.RT] Joining old channel RTN31 for warning purposes 
[18:00:41] [Debug.RT] [UPDATE_MOUSEOVER_UNIT] mouseover Creature-0-3878-1718-31-142668-000023303A 
[18:00:42] [Debug.RT] Sending outdated warning over RTN191 
[18:00:42] [Debug.RT] Requesting rare kill data for shard 31 
[18:00:42] [Debug.RT] Sending: A 31 10 1604530840 CHANNEL 5 
[18:00:42] [Debug.RT] Sending outdated warning over RTN31 
[18:00:42] [Debug.RT] Requesting rare kill data for shard 31 
[18:00:42] [Debug.RT] Sending: A 31 10 1604530840 CHANNEL 5

where 31 is the mount vendor and 191 is an in-world NPC being moused-over.

More testing: Seems that the mount vendors...for some reason...exist in either a limbo or central shard if they exist at login, and that shard doesn't get updated to whichever the player is actually in unless the mount is re-summoned after entering the world.

Might want to filter out (by npcID?) the mount vendors from the detection.

List of npcIDs for mount vendors:

  • 32638 - Hakmud of Argus (Traveler's Tundra Mammoth - Alliance)
  • 32639 - Gnimo (Traveler's Tundra Mammoth - Alliance)
  • 57641 - Drix Blackwrench (Traveler's Tundra Mammoth - Horde)
  • 57642 - Mojodishu (Traveler's Tundra Mammoth - Horde)
  • 62821 - Mystic Birdhat (Grand Expedition Yak)
  • 62822 - Cousin Slowhands (Grand Expedition Yak)
  • 142666 - Collector Unta (Mighty Caravan Brutosaur)
  • 142668 - Merchant Maku (Mighty Caravan Brutosaur)
commented

Ok, a quick update... I have pushed a new version (v2.1.2) on curseforge right now that adds the npcs mentioned above and several of the bodyguard npcs native to Nazjatar to the list. I will check later whether there are other npcs that might cause similar issues.

commented

A good catch... I thought I found a solution for this issue, but it seems not. Several npcs (guardians/pets/bodyguards) do indeed keep their old zone_uid when phasing and this has already been a major issue in the past. I will add a piece of code that adds the npcs you mentioned to the internal list of ignored npcs, including some other ids that I had laying around in an older version of the addon.

commented

Because I have nothing better to do at 5:30 in the AM and the statues are active right now, I checked the only other guardian-type npc I could think of in the zones being Echo of Chi-Ji in Vale to see if it would trigger and it doesn't. Unless that was already on the list.

Other than that 2.1.2 seems to be good (so far). Can't promise I won't find/break anything else, though.

commented

Your feedback is actually very much appreciated! Testing this stuff can be rather difficult and any bug report certainly helps in making the addon better as a whole.

Regarding potential NPC ids, there is already a mechanism in place that blacklists all npcs that are potentially guardians/pets/bodyguards, but only those that appear in the combat log, since it provides a very useful unit flag for detecting issues like this. Unfortunately, this flag is not provided by targeting or mouseover events. As such, mobs like vendors on mounts don't get detected automatically and have to be added manually (and this is admittedly something I completely forgot about during the rewrite). The only other problematic NPC ids I can think about are those associated to the Chauffeured Choppers.

commented

Incase you need them:

  • 89713 - Horde Chauffeur
  • 89715 - Alliance Chauffeur

Now back to me trying to solve the riddle of the ages for the day

if continent == "Draenor" then
  if not IsFlyableArea() then
    if IsOnlyHordeCharacters then
      if IsOnlyOnOneSpecificServer then
        return confusion
      end
    end
  end
end

commented
  • 89713 - Horde Chauffeur

That is the one I was missing. However, given that it is a very minor change, I won't make a new release for it yet (besides, it isn't used that often in the current target zones).

About that code snippet... are you trying to find out whether a mount is horde only/character specific?

commented

About that code snippet... are you trying to find out whether a mount is horde only/character specific?

No, trying to figure out why IsFlyableArea() only returns false on every map in Draenor ONLY for my Horde toons and ONLY on the one server I play on and not the others.

commented

That is an interesting problem indeed... maybe it is a bug? Wouldn't be surprised given all the trivial bugs that are present lately (such as general chat not existing in several ones and certain animations missing, such as the idle animation when sitting down on night elf females and blood elf males)

commented

Yeah, it's been a problem on and off since WoD was current. It got fixed in Legion beta, now it's broken again apparently. Oddly enough, all areas in SL maps return true (including The Maw) even though you can't fly there. IsFlyableArea() and the [flyable] macro conditional are extremely low prio for Blizz, since they don't actually use them for anything internally. They just exist for player/addon use.