Jaksuhn / Automaton

BSD 3-Clause "New" or "Revised" License
2 stars 10 forks source link

[Feature Request] Date with Destiny failure avoidance checks #9

Open Flavescent opened 2 months ago

Flavescent commented 2 months ago

When left to run for a time, the Date with Destiny function (the FATE bot) will eventually get stuck in one of three ways:

  1. The player is stuck in the environment on the way to the next FATE because of deficiencies in vnavmesh pathfinding.
  2. The player is pushed out of the FATE area by evading AOEs and the FATE stops progressing.
  3. The player does not move to the next FATE because vnavmesh has ceased to function (this appears to happen after half a day or so). If one attempts to unload vnavmesh, the game hangs.

To address failure modes 1 and 2, I suggest a function that regularly checks if, as long as an an eligible FATE exists, the player is in it or is moving while underway to it. If the answer is no, the vnavmesh navigation command should be reissued, and if that does not fix the problem, another eligible FATE should be targeted, and the problematic FATE blacklisted after a few attempts.

Jaksuhn commented 2 months ago

I don't think reissuing a pathfind would really work for 1 but I can mess around with it. If you have specific coords to test where that occurs (a starting and end pos) that'd be helpful

2 shouldn't be occurring at all. Vbm ai sets the bounds of the arena its allowed to move in to the fate circle itself.

I assume 3 is when vnav queues a path but gets stuck finding the actual path. That one's completely on vnav to fix

Flavescent commented 2 months ago

Thanks! With respect to 1, I have observed two circumstances that cause this problem:

1a. Some environmental features have collision enabled, but this is not registered by vnavmesh, which tries to path through them. One such example is the gate-like wooden structure in Rak'tika Greatwood at X 12.7, Y 33.9, Z 0 (image below). My character has repeatedly gotten stuck in it while on a path like the one in the image.

image

1b. vnavmesh does not account for the mount flight height ceiling of the map and tries to guide the character over a mountain that cannot be flown over, as in the image below in Central Thanalan at X 16.9, Y 18.4, Z 0.8.

image

While fixing these problems is obviously beyond the scope of Automaton, it can try to account for them. Sometimes reissuing the nav command does help, because the recalculated path will sometimes be more considerate of the environment than the original, longer path. But more often, these problems can only be addressed by navigating to the target from another angle altogether. One way to do this would be to select a different FATE as the target, as suggested. Another way might be to navigate the character to the center of the map first (or to hardcoded "safe spots"), and restarting navigation from there.

As regards 2, it does occur for me, but maybe because of a Bossmod [Reborn] misconfiguration? When I am in a FATE, no boss arena window with borders is displayed for me.

Jaksuhn commented 2 months ago

As for 2, I have no support of the reborn version. I don't know what they do, nor am I interested. But I personally made the fate bounds check for the real/original vbm. It's not meant to show on the minimap because it's not a module, but a change to the ai that is independent of modules.