NadyaNayme / NyusNecroJobGauge

An FFXIV-inspired job gauge for Necromancy
MIT License
24 stars 2 forks source link

Skeleton conjure false positive #3

Closed misfit-sculler closed 6 months ago

misfit-sculler commented 7 months ago

When the zombie is conjured, both zombie and skeleton buff trackers are active and count down with the same duration values.

misfit-sculler commented 7 months ago

Skeleton conjured image

Zombie conjured - image

Zombie then skeleton image

Skeleton then zombie image

misfit-sculler commented 7 months ago

It seems like there's some logic that considers the skeleton as summoned whenever the zombie is summoned.

NadyaNayme commented 7 months ago

Not any special logic just bad thresholds for the matching. What's probably happening is enough of the purple gradient is causing a match.

I've noticed this bug myself a few times but never really had the time to dig into what was happening. The order of the buffs causing the issue absolutely makes sense and I should be able to address it + get the issue fixed by tweaking the thresholds a bit more.

Thanks for the report!

misfit-sculler commented 7 months ago

Accidentally closed the ticket - reopening!

I just wanted to say thanks for making this tool! I was finally able to get the reaper title, with a huge part being due to this buff tracker.

misfit-sculler commented 6 months ago

Hi @NadyaNayme, could you point me to where the thresholds that need to be tuned are? I can see if I can find ones that work for me.

NadyaNayme commented 6 months ago

Sure thing - it's the numbers in this for loop:

The numbers should be raised (require more matching pixels) and not lowered. I'd recommend 5-step (70->75->80->85) or 10-step (70->80->90) intervals. One of those things that wouldn't take me too long to fix but also just haven't had the time. :(

If I had to throw a random guess into the dark the thresholds can probably be increased to 280-300 seeing as they are opaque buffs (no transparency) that means nearly 100% of the pixels should match. Zombie has 325 pixels so increasing its threshold to 280-300 would probably do the trick.

misfit-sculler commented 6 months ago

Thanks! I haven't done extensive testing to figure out the upper and lower bounds of this threshold, but setting the skeleton to 150 has been working well for me. 280 without stacks works great, but once you start building stacks the matching is inconsistent.

NadyaNayme commented 6 months ago

Ah right, 280 was the upper bounds of the pixels. The timer and font will account for some lost pixels due to the white/black pixels of the font. Conservative amount is -30~ so a threshold of 220-250 should be good.

But if you're saying 150 has been without issues I can push it up to 150. :) Really the threshold just has to be however high enough to prevent false positives. Except when we're getting false positives there's not really any difference between low and high threshold matches - 150 is every bit as good as 200 if neither have false positives.

NadyaNayme commented 6 months ago

I've bumped the thresholds to 150 which should hopefully fix this issue for everyone. Thanks for testing thresholds!