using System.Threading;
using System.Threading.Tasks;
using Dalamud.Game.ClientState.Conditions;
+using Dalamud.Game.ClientState.Objects.Enums;
+using Dalamud.Game.ClientState.Objects.SubKinds;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using Questionable.External;
+using Questionable.Model.V1;
+using Questionable.Model.V1.Converter;
namespace Questionable.Controller;
Vector3 localPlayerPosition = _clientState.LocalPlayer?.Position ?? Vector3.Zero;
if ((localPlayerPosition - Destination.Position).Length() < Destination.StopDistance)
{
- if (Destination.DataId != null)
+ if (Destination.DataId is 2012173 or 2012174 or 2012175 or 2012176)
+ {
+ Stop();
+ }
+ else if (Destination.DataId != null)
{
GameObject? gameObject = _gameFunctions.FindObjectByDataId(Destination.DataId.Value);
- if (gameObject != null && gameObject is Character)
+ if (gameObject is Character or EventObj)
{
if (Math.Abs(localPlayerPosition.Y - gameObject.Position.Y) < 1.95f)
Stop();
}
+ else if (gameObject != null && gameObject.ObjectKind == ObjectKind.Aetheryte)
+ {
+ if (AetheryteConverter.IsLargeAetheryte((EAetheryteLocation)Destination.DataId))
+ {
+ // TODO verify this
+ if (Math.Abs(localPlayerPosition.Y - gameObject.Position.Y) < 2.95f)
+ Stop();
+ }
+ else
+ {
+ // aethernet shard
+ if (Math.Abs(localPlayerPosition.Y - gameObject.Position.Y) < 1.95f)
+ Stop();
+ }
+ }
else
Stop();
}
using Questionable.Data;
using Questionable.External;
using Questionable.Model.V1;
+using Questionable.Model.V1.Converter;
namespace Questionable.Controller;
};
}
else
- _movementController.NavigateTo(EMovementType.Quest, null, _aetheryteData.Locations[from], false,
- 6.9f);
+ _movementController.NavigateTo(EMovementType.Quest, (uint)from, _aetheryteData.Locations[from], false,
+ AetheryteConverter.IsLargeAetheryte(from) ? 10.9f : 6.9f);
return;
}
}
else
{
+ // navmesh won't move close enough
if (actualDistance > distance)
{
+ // picking up Mehvan's baby, not sure if navmesh ignores y distance but it thinks you're close
+ // enough
+ if (step.DataId == 2012208)
+ distance /= 2;
+
_movementController.NavigateTo(EMovementType.Quest, step.DataId, [step.Position.Value],
step.Fly && _gameFunctions.IsFlyingUnlocked(_clientState.TerritoryType), distance);
return;
_gameFunctions.InteractWith(step.DataId.Value);
IncreaseStepCount();
}
+ else
+ _pluginLog.Warning("Not interacting on current step, DataId is null");
break;
private readonly IObjectTable _objectTable;
private readonly ITargetManager _targetManager;
private readonly ICondition _condition;
+ private readonly IClientState _clientState;
private readonly IPluginLog _pluginLog;
public GameFunctions(IDataManager dataManager, IObjectTable objectTable, ISigScanner sigScanner,
- ITargetManager targetManager, ICondition condition, IPluginLog pluginLog)
+ ITargetManager targetManager, ICondition condition, IClientState clientState, IPluginLog pluginLog)
{
_objectTable = objectTable;
_targetManager = targetManager;
_condition = condition;
+ _clientState = clientState;
_pluginLog = pluginLog;
_processChatBox =
Marshal.GetDelegateForFunctionPointer<ProcessChatBoxDelegate>(sigScanner.ScanText(Signatures.SendChat));
.AsReadOnly();
}
- public QuestController QuestController { private get; set; }
+ // FIXME
+ public QuestController QuestController { private get; set; } = null!;
public (ushort CurrentQuest, byte Sequence) GetCurrentQuest()
{
}
}
+ _pluginLog.Warning($"Could not find GameObject with dataId {dataId}");
return null;
}
GameObject? gameObject = FindObjectByDataId(dataId);
if (gameObject != null)
{
- _targetManager.Target = null;
+ _pluginLog.Information($"Setting target with {dataId} to {gameObject.ObjectId}");
_targetManager.Target = gameObject;
TargetSystem.Instance()->InteractWithObject(
public bool HasStatusPreventingSprintOrMount()
{
+ if (_condition[ConditionFlag.Swimming] && !IsFlyingUnlocked(_clientState.TerritoryType))
+ return true;
+
var gameObject = GameObjectManager.GetGameObjectByIndex(0);
if (gameObject != null && gameObject->ObjectKind == 1)
{
{ EAetheryteLocation.UltimaThuleAbodeOfTheEa, "Ultima Thule - Abode of the Ea" },
{ EAetheryteLocation.UltimaThuleBaseOmicron, "Ultima Thule - Base Omicron" }
};
+
+ public static bool IsLargeAetheryte(EAetheryteLocation aetheryte) => Values.ContainsKey(aetheryte);
}
--- /dev/null
+{
+ "Version": 1,
+ "Author": "liza",
+ "QuestSequence": [
+ {
+ "Sequence": 0,
+ "Steps": [
+ {
+ "DataId": 1040633,
+ "Position": {
+ "X": 496.94043,
+ "Y": 10.887661,
+ "Z": -418.57025
+ },
+ "TerritoryId": 958,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 1,
+ "Steps": [
+ {
+ "DataId": 1040634,
+ "Position": {
+ "X": 190.26465,
+ "Y": 10.5,
+ "Z": -630.2129
+ },
+ "TerritoryId": 958,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 2,
+ "Steps": [
+ {
+ "DataId": 2012377,
+ "Position": {
+ "X": 189.10498,
+ "Y": 10.482849,
+ "Z": -668.9708
+ },
+ "TerritoryId": 958,
+ "InteractionType": "ManualAction",
+ "Comment": "Follow Azure-haired Boy"
+ },
+ {
+ "DataId": 1040636,
+ "Position": {
+ "X": 21.744019,
+ "Y": 10.5,
+ "Z": -589.3187
+ },
+ "StopDistance": 1,
+ "TerritoryId": 958,
+ "InteractionType": "WalkTo"
+ }
+ ]
+ },
+ {
+ "Sequence": 3,
+ "Steps": [
+ {
+ "Position": {
+ "X": -18.56067,
+ "Y": 10.5,
+ "Z": -530.3922
+ },
+ "StopDistance": 1,
+ "TerritoryId": 958,
+ "InteractionType": "Combat",
+ "EnemySpawnType": "AutoOnEnterArea",
+ "KillEnemyDataIds": [
+ 14101
+ ]
+ }
+ ]
+ },
+ {
+ "Sequence": 4,
+ "Steps": [
+ {
+ "DataId": 1040637,
+ "Position": {
+ "X": -16.525574,
+ "Y": 10.5,
+ "Z": -532.15845
+ },
+ "StopDistance": 7,
+ "TerritoryId": 958,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 255,
+ "Steps": [
+ {
+ "DataId": 1040633,
+ "Position": {
+ "X": 496.94043,
+ "Y": 10.887661,
+ "Z": -418.57025
+ },
+ "TerritoryId": 958,
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Garlemald - Tertium"
+ }
+ ]
+ }
+ ]
+}
"Y": 4.818894,
"Z": -0.1004486
},
+ "StopDistance": 10,
"TerritoryId": 962,
"InteractionType": "AttuneAetheryte"
},
"Z": 57.99951
},
"TerritoryId": 962,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[1]",
+ "$.2": "QuestVariables if done after [3]: 2 0 0 0 0 96"
},
{
"DataId": 2011825,
"Z": 100.1449
},
"TerritoryId": 962,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[2]"
},
{
"DataId": 2011826,
"Z": 43.289795
},
"TerritoryId": 962,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[3]",
+ "$.2": "QuestVariables if used first: 1 0 0 0 0 64"
}
]
},
"Y": -14.169313,
"Z": 114.76306
},
+ "StopDistance": 7,
"TerritoryId": 962,
"InteractionType": "Interact"
}
"Y": 69.999954,
"Z": 523.39966
},
+ "StopDistance": 5,
"TerritoryId": 621,
"InteractionType": "Interact"
}
"Y": 70.139626,
"Z": 522.88086
},
- "StopDistance": 5,
+ "StopDistance": 7,
"TerritoryId": 621,
"InteractionType": "Interact"
}
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
+ "Mount": true,
"DisableNavmesh": true
},
{
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Mount": false
+ "Mount": false,
+ "Comment": "TODO Should cancel Navmesh on fade out"
}
]
},
"Y": -13.278784,
"Z": 648.249
},
+ "StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
"Y": -13.28456,
"Z": 650.26306
},
+ "StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
"Y": 22.554066,
"Z": 430.01453
},
+ "StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
"Y": 22.071072,
"Z": 434.01233
},
- "StopDistance": 6,
+ "StopDistance": 7,
"TerritoryId": 958,
"InteractionType": "Interact"
}
{
"DataId": 1039880,
"Position": {
- "X": 62.068886,
- "Y": -0.13689682,
- "Z": 150.48564
+ "X": 66.50907,
+ "Y": 0.26087344,
+ "Z": 149.46323
},
"StopDistance": 1,
"TerritoryId": 958,
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "Caeso"
+ "Comment": "Caeso",
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: 17 0 0 0 0 64"
},
{
"DataId": 1037718,
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "Octavia"
+ "Comment": "Octavia",
+ "$.0": "[2]",
+ "$.2": "QuestVariables if done after [1]: 33 1 0 0 0 80"
},
{
"Position": {
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "Sabinianus"
+ "Comment": "Sabinianus",
+ "$.0": "[3]",
+ "$.2": "QuestVariables if done after [1, 2]: 49 1 16 0 0 206"
},
{
"DataId": 1037717,
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "Marcellinus"
+ "Comment": "Marcellinus",
+ "$.0": "[4]",
+ "$.2": "QuestVariables if done after [1, 2, 3]: 65 17 16 0 0 240"
},
{
"DataId": 2012062,
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "Magitek Radio"
+ "Comment": "Magitek Radio",
+ "$.0": "[5]"
}
]
},
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "Marcellinus"
+ "Comment": "Marcellinus",
+ "$.1": "QuestVariables if done first: 16 16 0 0 0 128"
},
{
"DataId": 1038791,
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
+ "Mount": true,
"DisableNavmesh": true
},
{
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14078
- ]
+ ],
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: (before) 0 0 2 0 0 0 (after) 16 16 2 0 0 64"
},
{
"DataId": 2012109,
],
"Comment": "TODO Needs item use?",
"ItemId": 2003231,
- "ItemUseHealthMaxPercent": 10
+ "ItemUseHealthMaxPercent": 10,
+ "$.0": "[2]",
+ "$.1": "QuestVariables if done after [1]: 32 17 1 0 0 96"
},
{
"DataId": 2012108,
},
"TerritoryId": 958,
"InteractionType": "Interact",
- "Comment": "TODO Maybe move the train station aether current interaction before this"
+ "Comment": "TODO Maybe move the train station aether current interaction before this",
+ "$.0": "[3]",
+ "$.1": "QuestVariables if done after [1, 2]: 49 17 1 0 0 224"
},
{
"DataId": 2012110,
],
"Comment": "TODO Needs item use?",
"ItemId": 2003231,
- "ItemUseHealthMaxPercent": 10
+ "ItemUseHealthMaxPercent": 10,
+ "$.0": "[4]"
}
]
},
"StopDistance": 10,
"TerritoryId": 959,
"InteractionType": "AttuneAetheryte",
+ "Mount": true,
"DisableNavmesh": true
},
{
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
+ "Mount": true,
"DisableNavmesh": true
},
{
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
+ "Mount": true,
"DisableNavmesh": true
},
{
"Z": -585.7481
},
"TerritoryId": 959,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
}
]
},
"Y": -168,
"Z": -657.7402
},
+ "StopDistance": 7,
"TerritoryId": 959,
"InteractionType": "Interact"
}
"Y": 75.72459,
"Z": -23.51416
},
+ "StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}
"Y": 75.72459,
"Z": -23.51416
},
+ "StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}
"Z": -71.81973
},
"TerritoryId": 959,
- "InteractionType": "WalkTo"
+ "InteractionType": "WalkTo",
+ "Mount": true
},
{
"DataId": 2012010,
"Y": -168.00002,
"Z": -625.11633
},
+ "StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}
},
"TerritoryId": 959,
"InteractionType": "Interact",
+ "AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Comment": "Teleporter"
},
{
"Y": -1.9999963,
"Z": 93.492065
},
+ "StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}
"Y": -1.9999963,
"Z": 93.492065
},
+ "StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}
"KillEnemyDataIds": [
13987
],
- "$": "QuestVariables after: 16 1 0 0 0 128"
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: 16 1 0 0 0 128"
},
{
"Position": {
"KillEnemyDataIds": [
13986
],
- "$": "QuestVariables after: 33 1 0 0 0 192"
+ "$.0": "[2]",
+ "$.1": "QuestVariables if done after [1]: 33 1 0 0 0 192",
+ "$.2": "QuestVariables if done after [3]: 33 32 0 0 0 96"
},
{
"Position": {
"KillEnemyDataIds": [
13985,
13984
- ]
+ ],
+ "$.0": "[3]",
+ "$.2": "QuestVariables if done first: 16 32 0 0 0 32"
}
]
},
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818337
},
+ {
+ "DataId": 2011999,
+ "Position": {
+ "X": 53.177612,
+ "Y": 11.36792,
+ "Z": 187.396
+ },
+ "TerritoryId": 957,
+ "InteractionType": "AttuneAetherCurrent",
+ "AetherCurrentId": 2818338
+ },
{
"DataId": 2012207,
"Position": {
"Y": -60.471558,
"Z": 133.25696
},
- "StopDistance": 0.5,
+ "StopDistance": 1,
"TerritoryId": 957,
"InteractionType": "Interact",
"DisableNavmesh": true
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
- {
- "DataId": 2011999,
- "Position": {
- "X": 53.177612,
- "Y": 11.36792,
- "Z": 187.396
- },
- "TerritoryId": 957,
- "InteractionType": "AttuneAetherCurrent",
- "AetherCurrentId": 2818338
- },
{
"DataId": 1039052,
"Position": {
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
+ "Mount": true,
"DisableNavmesh": true
},
{
"Y": 36,
"Z": 71.70203
},
- "StopDistance": 5,
+ "StopDistance": 7,
"TerritoryId": 963,
"InteractionType": "Interact"
}
"Y": -1.9999962,
"Z": 87.44946
},
+ "StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}
},
"TerritoryId": 813,
"InteractionType": "Interact",
- "AetheryteShortcut": "Lakeland - Fort Jobb",
+ "AetheryteShortcut": "Crystarium",
+ "AethernetShortcut": [
+ "[Crystarium] Aetheryte Plaza",
+ "[Crystarium] Tessellation (Lakeland)"
+ ],
"Fly": true
}
]
"TerritoryId": 1031,
"InteractionType": "Interact",
"Comment": "Interact with Aetheryte (Navmesh can't jump)",
- "$": "QuestVariables after: 16 0 16 0 0 16"
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: 16 0 16 0 0 16"
},
{
"DataId": 1039993,
},
"TerritoryId": 1031,
"InteractionType": "Interact",
+ "$.0": "[2]",
"$": "QuestVariables after: 32 1 16 0 0 144"
},
{
},
"TerritoryId": 1031,
"InteractionType": "Interact",
- "$": "QuestVariables after: 49 1 16 0 0 208"
+ "$.0": "[3]",
+ "$.1": "QuestVariables after: 49 1 16 0 0 208"
},
{
"DataId": 1039995,
"Z": -4.1657104
},
"TerritoryId": 1031,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[4]",
+ "$.2": "QuestVariables if done first: 16 16 0 0 0 32"
}
]
},
"Y": -350.00003,
"Z": -72.19049
},
+ "StopDistance": 7,
"TerritoryId": 1056,
"InteractionType": "Interact"
}
"Y": -350,
"Z": -73.68585
},
+ "StopDistance": 5,
"TerritoryId": 1056,
"InteractionType": "Interact"
}
"Z": -148.57715
},
"TerritoryId": 963,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Radz-at-Han"
}
]
},
"Z": -210.6151
},
"TerritoryId": 963,
- "InteractionType": "AttuneAethernetShard",
- "Comment": "This is pretty late here, maybe move it to some other quest"
+ "InteractionType": "AttuneAethernetShard"
},
{
"DataId": 1039589,
"Z": 605.9204
},
"TerritoryId": 957,
- "InteractionType": "Interact"
+ "AetheryteShortcut": "Thavnair - Yedlihmad",
+ "InteractionType": "Interact",
+ "Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
+ {
+ "Position": {
+ "X": 169.31848,
+ "Y": 5.3451567,
+ "Z": 633.7924
+ },
+ "TerritoryId": 957,
+ "InteractionType": "WalkTo",
+ "Fly": true
+ },
{
"DataId": 1037631,
"Position": {
"Y": 5.34517,
"Z": 635.9807
},
+ "StopDistance": 5,
"TerritoryId": 957,
"InteractionType": "Interact"
},
"Z": -68.61987
},
"TerritoryId": 963,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Radz-at-Han",
+ "AethernetShortcut": [
+ "[Radz-at-Han] Aetheryte Plaza",
+ "[Radz-at-Han] Meghaduta"
+ ]
}
]
}
"Z": -15.243774
},
"TerritoryId": 962,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Old Sharlayan"
}
]
},
{
"DataId": 1039614,
"Position": {
- "X": -95.859055,
- "Y": 3.933468,
- "Z": 2.172171
+ "X": -94.118614,
+ "Y": 3.8989394,
+ "Z": 1.0696089
},
+ "StopDistance": 0.25,
"TerritoryId": 962,
"InteractionType": "Interact",
"AethernetShortcut": [
"Y": 19,
"Z": 69.10803
},
+ "StopDistance": 5,
"TerritoryId": 962,
"InteractionType": "Interact"
}
"Z": 29.55664
},
"TerritoryId": 957,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Thavnair - Great Work"
}
]
},
{
"Sequence": 6,
"Steps": [
+ {
+ "Position": {
+ "X": 242.9973,
+ "Y": 1.2090492,
+ "Z": 118.133255
+ },
+ "TerritoryId": 957,
+ "InteractionType": "WalkTo",
+ "AetheryteShortcut": "Thavnair - Palaka's Stand",
+ "Fly": true
+ },
{
"DataId": 2012847,
"Position": {
"Z": 26.779541
},
"TerritoryId": 957,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Thavnair - Great Work"
}
]
}
"Z": 605.9204
},
"TerritoryId": 957,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "Fly": true
}
]
},
"Y": -350,
"Z": -83.14642
},
+ "StopDistance": 5,
"TerritoryId": 1056,
"InteractionType": "Interact"
}
"Z": 108.11011
},
"TerritoryId": 957,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Thavnair - Great Work"
}
]
},
},
"TerritoryId": 963,
"InteractionType": "Interact",
+ "AetheryteShortcut": "Radz-at-Han",
"AethernetShortcut": [
"[Radz-at-Han] Aetheryte Plaza",
"[Radz-at-Han] Meghaduta"
"Z": 22.507019
},
"TerritoryId": 957,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Thavnair - Great Work"
}
]
},
"Y": 0.07863108,
"Z": 605.9204
},
+ "StopDistance": 5,
"TerritoryId": 957,
"InteractionType": "Interact"
}
"Y": 376.4496,
"Z": -158.31238
},
+ "StopDistance": 7,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
"Y": 376.38647,
"Z": -158.0072
},
+ "StopDistance": 7,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
"Z": -109.33093
},
"TerritoryId": 1089,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: 1 0 0 0 0 128"
},
{
"DataId": 1043790,
"Z": -106.70636
},
"TerritoryId": 1089,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[2]",
+ "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 192"
},
{
"DataId": 1043791,
"Z": -61.539734
},
"TerritoryId": 1089,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[3]",
+ "$.1": "QuestVariables if done after [1, 2]: 3 0 0 0 0 224"
},
{
"DataId": 1043792,
"Y": -718.33905,
"Z": 207.87354
},
+ "StopDistance": 5,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
"Y": -698.0104,
"Z": -135.63751
},
+ "StopDistance": 5,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
"Y": -698.0104,
"Z": -138.1095
},
+ "StopDistance": 5,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
"Z": -49.45453
},
"TerritoryId": 1089,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: 1 0 0 0 0 32"
},
{
"DataId": 1043791,
"Z": -61.539734
},
"TerritoryId": 1089,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[2]",
+ "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 96"
},
{
"DataId": 1043790,
"Z": -106.70636
},
"TerritoryId": 1089,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[3]"
}
]
},
"Y": -0.50953794,
"Z": 33.798706
},
+ "StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": -0.50953794,
"Z": 33.798706
},
+ "StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": -0.50953794,
"Z": 33.798706
},
+ "StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Z": -22.568176
},
"TerritoryId": 1077,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[1]"
},
{
"DataId": 1043831,
"Z": -49.45453
},
"TerritoryId": 1077,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[2]",
+ "$.1": "QuestVariables if done after [1]: 2 0 0 0 0 160"
},
{
"DataId": 1043830,
{
"DataId": 1043822,
"Position": {
- "X": 27.03395,
- "Y": -0.43000445,
- "Z": -15.432249
+ "X": 27.317875,
+ "Y": -0.43000424,
+ "Z": -13.701547
},
+ "StopDistance": 0.25,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": -0.4,
"Z": -68.223145
},
+ "StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": -0.4,
"Z": -70.72565
},
+ "StopDistance": 7,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": -19,
"Z": 176.985
},
+ "StopDistance": 5,
"TerritoryId": 1092,
"InteractionType": "ManualAction",
"Comment": "Duty - Storm's Crown"
"Y": -0.21963555,
"Z": 52.506226
},
+ "StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": -0.21963556,
"Z": 50.492065
},
+ "StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
"Y": 0.008460393,
"Z": -1.8463745
},
+ "StopDistance": 7,
"TerritoryId": 1078,
"InteractionType": "Interact"
}
"Y": 1.2359009,
"Z": 5.3864136
},
+ "StopDistance": 4,
"TerritoryId": 1078,
"InteractionType": "Interact"
},
{
"DataId": 1043852,
"Position": {
- "X": -32.992733,
- "Y": 0.59983647,
- "Z": -73.79735
+ "X": -33.52105,
+ "Y": 0.59983087,
+ "Z": -74.57541
},
+ "StopDistance": 0.25,
"TerritoryId": 963,
"InteractionType": "Interact"
}
"Y": 1.8631814,
"Z": -100.1145
},
+ "StopDistance": 7,
"TerritoryId": 963,
"InteractionType": "Interact"
}
"Y": 36.051323,
"Z": 70.24
},
+ "StopDistance": 0.25,
"TerritoryId": 963,
"InteractionType": "Interact",
"AethernetShortcut": [
"Y": 55,
"Z": -68.40625
},
+ "StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}
"Y": 55,
"Z": -68.40625
},
+ "StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}
]
}
]
+ },
+ {
+ "Sequence": 255,
+ "Steps": [
+ {
+ "DataId": 1044293,
+ "Position": {
+ "X": -346.12042,
+ "Y": 55,
+ "Z": -66.17847
+ },
+ "TerritoryId": 963,
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Radz-at-Han",
+ "AethernetShortcut": [
+ "[Radz-at-Han] Aetheryte Plaza",
+ "[Radz-at-Han] Meghaduta"
+ ]
+ }
+ ]
}
]
}
"Y": -36.65,
"Z": -185.87018
},
+ "StopDistance": 6,
"TerritoryId": 958,
"InteractionType": "Interact"
}
"Z": 485.37415
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Garlemald - Camp Broken Glass"
}
]
},
"Z": 427.87805
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "Fly": true
}
]
},
"Y": -20.207552,
"Z": 509.88013
},
+ "StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
"Z": 642.8473
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "Fly": true
}
]
},
"Z": 484.0619
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Garlemald - Camp Broken Glass"
}
]
}
"Z": 416.3423
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "Fly": true
}
]
},
},
"TerritoryId": 958,
"InteractionType": "Combat",
+ "EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
- 16028
+ 16028, 16029
],
- "Comment": "Missing second enemy data id"
+ "$.0": "[1]",
+ "$.1": "QuestVariables if done first: 16 5(enemy kill count) 0 0 0 64"
},
{
"DataId": 2013307,
"Z": 337.5448
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "$.0": "[2]",
+ "$.1": "QuestVariables if done after [1]: 33 5 0 0 0 96"
+ },
+ {
+ "DataId": 2013308,
+ "Position": {
+ "X": 75.33374,
+ "Y": -12.527649,
+ "Z": 339.40637
+ },
+ "TerritoryId": 958,
+ "InteractionType": "Interact",
+ "$.0": "[3]",
+ "$.1": "QuestVariables if done after [1, 2]: 49 21 0 0 0 112"
},
{
"DataId": 2013051,
},
"TerritoryId": 958,
"InteractionType": "Combat",
+ "EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
16030
]
- },
- {
- "DataId": 2013308,
- "Position": {
- "X": 75.33374,
- "Y": -12.527649,
- "Z": 339.40637
- },
- "TerritoryId": 958,
- "InteractionType": "Interact"
}
]
},
"Z": 144.70117
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "Fly": true
}
]
}
"Y": 10.800001,
"Z": -427.75616
},
+ "StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "ManualAction",
"Comment": "Duty - An Unforeseen Bargain"
"Y": -36.65,
"Z": -243.843
},
+ "StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
"Z": 718.8982
},
"TerritoryId": 958,
- "InteractionType": "Interact"
+ "InteractionType": "Interact",
+ "Fly": true
}
]
},
"Z": 717.7081
},
"TerritoryId": 958,
+ "StopDistance": 5,
"InteractionType": "ManualAction",
"Comment": "Duty - Lapis Manalis"
}
_framework = framework;
_gameGui = gameGui;
_commandManager = commandManager;
- _gameFunctions = new GameFunctions(dataManager, objectTable, sigScanner, targetManager, condition, pluginLog);
+ _gameFunctions = new GameFunctions(dataManager, objectTable, sigScanner, targetManager, condition, clientState,
+ pluginLog);
AetheryteData aetheryteData = new AetheryteData(dataManager);
NavmeshIpc navmeshIpc = new NavmeshIpc(pluginInterface);
{
ImGui.Separator();
ImGui.Text(string.Create(CultureInfo.InvariantCulture,
- $"Target: {_targetManager.Target.Name} ({(_targetManager.Target.Position - _clientState.LocalPlayer.Position).Length():F2})"));
+ $"Target: {_targetManager.Target.Name} ({_targetManager.Target.ObjectKind}; {_targetManager.Target.DataId})"));
+ ImGui.Text(string.Create(CultureInfo.InvariantCulture,
+ $"Distance: {(_targetManager.Target.Position - _clientState.LocalPlayer.Position).Length():F2}, Y: {_targetManager.Target.Position.Y - _clientState.LocalPlayer.Position.Y:F2}"));
ImGui.BeginDisabled(!_movementController.IsNavmeshReady);
if (!_movementController.IsPathfinding)