OverlayPlugin / cactbot

FFXIV TypeScript Raiding Overlay
Apache License 2.0
96 stars 35 forks source link

raidboss: m1s issue with mouser callouts #430

Closed Legends0 closed 2 weeks ago

Legends0 commented 3 weeks ago

Description

Incorrect or Missing Callouts for Mouser on m1s

Additional Details / Steps to Reproduce

I am not sure what the steps are to reproduce the bug, but I have seen the callouts both not call anything, call wrong, and call multiple times.

I see there is mention of not needing to use suppressSeconds, but it has a run function that deletes the data.mouserMatchedTile. Is it possible I am seeing some sort of race condition?

Log example has double callout for both mousers in my setup.

Cactbot Module

Raidboss (alerts & timelines)

Configuration Info

Plugin Name - Status - Version - Path
FFXIV_ACT_Plugin.dll - Enabled - 2.7.1.9 - <ACT Folder>\Plugins\FFXIV_ACT_Plugin.dll
OverlayPlugin.dll - Enabled - 0.19.37 - <ACT Folder>\Plugins\OverlayPlugin\OverlayPlugin.dll
CactbotOverlay.dll - Enabled - 0.32.9.0 - C:\Program Files\Advanced Combat Tracker\OverlayPlugin-nlgd\cactbot\CactbotOverlay.dll
Triggevent_Stub.dll - Disabled - 1.0.0.0 - C:\Users\<USER>\Desktop\triggevent\Triggevent_Stub.dll

Overlay Name - URL
Mini Parse - https://hibiyasleep.github.io/kagerou/overlay/
Spell Timer - file:///C:/Program Files/Advanced Combat Tracker/OverlayPlugin-nlgd/resources/spelltimer.html
Cactbot - http://localhost:8080/ui/raidboss/raidboss.html
Cactbot Fisher - http://localhost:8080/ui/fisher/fisher.html
Twitch Timeline - http://localhost:8080/ui/raidboss/raidboss.html?timeline=1&alerts=0

Various Settings - Value
Game Language - English
Plugin Language - English
Machina Region - Global
Game Version - 2024.08.21.0000.0000
Screen Mode - Borderless Windowed
ACT Process Elevation - Elevated (Admin)
FFXIV Process Elevation - Not Elevated
Inject and use Deucalion for network data - False
Hide Chat Log (for privacy) - False
Use WinPCap-compatible library for network data - False
Disable high-performance network filter - False
Disable Combine Pets with Owner - False
Disable Damage Shield estimates - False
(DEBUG) Enable Debug Options - False
Cactbot User Dir - C:\Program Files\Advanced Combat Tracker\OverlayPlugin-nlgd\cactbot\user\

Log & Screenshots

AAC Light-heavyweight M1 (Savage)_20240924_213748.533_7m.log

Confirmation

wexxlee commented 2 weeks ago

Interesting - I've never seen this happen in my setup (perhaps by good luck), but it appears to be an issue of line ordering with ActorSetPos and the StartsUsing for 996C. In your log, the StartsUsing line immediately precedes the ActorSetPos line, and so the trigger is relying on stale position data for that actor. In the first case of double-callouts in your log, that stale position data just happened to correspond to one of the two inner tiles being tracked -- unlucky coincidence -- and the ActorSetPos line then immediately moved the actor to a back tile we don't care about, but the damage was done (so to speak):

20|2024-09-24T21:40:10.7100000-04:00|4000DA9A|Black Cat|996C|unknown_996c|4000DA9A|Black Cat|0.700|95.00|105.00|0.00|0.00|
271|2024-09-24T21:40:10.6210000-04:00|4000DA9A|-0.0001|00|00|115.0000|95.0000|0.0000|

In any event, I think the fix here is simply to move the condition logic in the Mouser trigger into a separate collect trigger, and stick a delaySeconds on both the collect and call triggers (since conditions are checked before the delay applies). That seems to fix the issue when re-checking the log in RaidEmulator. I'll PR a fix for this (and for R1N while we're at it, since it uses the same logic).