Fix some movement issues
This commit is contained in:
parent
0294c433de
commit
1ea5ae9e40
@ -12,12 +12,18 @@ internal sealed class MovementOverrideController
|
||||
[
|
||||
new BlacklistedArea(1191, new(-223.0412f, 31.937134f, -584.03906f), 5f, 7.75f),
|
||||
|
||||
// New Gridania Navmesh workaround
|
||||
// limsa, aftcastle to baderon
|
||||
new BlacklistedPoint(128, new(2f, 40.25f, 36.5f), new(0.25f, 40.25f, 36.5f)),
|
||||
|
||||
// New Gridania, Carline Canopy stairs
|
||||
new BlacklistedPoint(132, new(29, -8, 120.5f), new(28.265165f, -8.000001f, 120.149734f)),
|
||||
new BlacklistedPoint(132, new(28.25f, -8, 125), new(27.372725f, -8.200001f, 125.55859f)),
|
||||
new BlacklistedPoint(132, new(32.25f, -8, 126.5f), new(32.022232f, -8.200011f, 126.86095f)),
|
||||
|
||||
// lotus stand
|
||||
new BlacklistedPoint(205, new(26.75f, 0.5f, 20.75f), new(27.179117f, 0.26728272f, 19.714373f)),
|
||||
|
||||
// New Gridania Navmesh workaround - planter box outside the Carline Canopy
|
||||
new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f)),
|
||||
|
||||
// ul'dah lamp near adventuer's guild
|
||||
|
@ -65,7 +65,8 @@ internal static class Move
|
||||
GameFunctions gameFunctions,
|
||||
IClientState clientState,
|
||||
MovementController movementController,
|
||||
TerritoryData territoryData)
|
||||
TerritoryData territoryData,
|
||||
AetheryteData aetheryteData)
|
||||
{
|
||||
public QuestStep Step { get; set; } = null!;
|
||||
public Vector3 Destination { get; set; }
|
||||
@ -91,8 +92,14 @@ internal static class Move
|
||||
var position = clientState.LocalPlayer?.Position ?? new Vector3();
|
||||
float actualDistance = (position - Destination).Length();
|
||||
|
||||
// this may otherwise sometimes skip a move step
|
||||
if (Step.AethernetShortcut != null || Step.AetheryteShortcut != null)
|
||||
// if we teleport to a different zone, assume we always need to move; this is primarily relevant for cases
|
||||
// where you're e.g. in Lakeland, and the step navigates via Crystarium → Tesselation back into the same
|
||||
// zone.
|
||||
//
|
||||
// Side effects of this check being broken include:
|
||||
// - mounting when near the target npc (if you spawn close enough for the next step)
|
||||
// - trying to fly when near the target npc (if close enough where no movement is required)
|
||||
if (Step.AetheryteShortcut != null && aetheryteData.TerritoryIds[Step.AetheryteShortcut.Value] != Step.TerritoryId)
|
||||
actualDistance = float.MaxValue;
|
||||
|
||||
if (Step.Mount == true)
|
||||
|
Loading…
Reference in New Issue
Block a user