1
0
forked from liza/Questionable

EW Updates

This commit is contained in:
Liza 2024-06-01 01:26:46 +02:00
parent 2acbe97a0f
commit 488c963a22
Signed by: liza
GPG Key ID: 7199F8D727D55F67
54 changed files with 431 additions and 98 deletions
Questionable
Controller
GameFunctions.cs
Model/V1/Converter
QuestPaths/Endwalker
QuestionablePlugin.cs
Windows

View File

@ -6,10 +6,14 @@ using System.Numerics;
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;
@ -99,14 +103,33 @@ internal sealed class MovementController : IDisposable
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();
}

View File

@ -13,6 +13,7 @@ using FFXIVClientStructs.FFXIV.Client.Game;
using Questionable.Data;
using Questionable.External;
using Questionable.Model.V1;
using Questionable.Model.V1.Converter;
namespace Questionable.Controller;
@ -346,8 +347,8 @@ internal sealed class QuestController
};
}
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;
}
@ -409,8 +410,14 @@ internal sealed class QuestController
}
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;
@ -445,6 +452,8 @@ internal sealed class QuestController
_gameFunctions.InteractWith(step.DataId.Value);
IncreaseStepCount();
}
else
_pluginLog.Warning("Not interacting on current step, DataId is null");
break;

View File

@ -46,14 +46,16 @@ internal sealed unsafe class GameFunctions
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));
@ -74,7 +76,8 @@ internal sealed unsafe class GameFunctions
.AsReadOnly();
}
public QuestController QuestController { private get; set; }
// FIXME
public QuestController QuestController { private get; set; } = null!;
public (ushort CurrentQuest, byte Sequence) GetCurrentQuest()
{
@ -323,6 +326,7 @@ internal sealed unsafe class GameFunctions
}
}
_pluginLog.Warning($"Could not find GameObject with dataId {dataId}");
return null;
}
@ -331,7 +335,7 @@ internal sealed unsafe class GameFunctions
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(
@ -387,6 +391,9 @@ internal sealed unsafe class GameFunctions
public bool HasStatusPreventingSprintOrMount()
{
if (_condition[ConditionFlag.Swimming] && !IsFlyingUnlocked(_clientState.TerritoryType))
return true;
var gameObject = GameObjectManager.GetGameObjectByIndex(0);
if (gameObject != null && gameObject->ObjectKind == 1)
{

View File

@ -103,4 +103,6 @@ public sealed class AetheryteConverter() : EnumConverter<EAetheryteLocation>(Val
{ EAetheryteLocation.UltimaThuleAbodeOfTheEa, "Ultima Thule - Abode of the Ea" },
{ EAetheryteLocation.UltimaThuleBaseOmicron, "Ultima Thule - Base Omicron" }
};
public static bool IsLargeAetheryte(EAetheryteLocation aetheryte) => Values.ContainsKey(aetheryte);
}

View File

@ -0,0 +1,114 @@
{
"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"
}
]
}
]
}

View File

@ -108,6 +108,7 @@
"Y": 4.818894,
"Z": -0.1004486
},
"StopDistance": 10,
"TerritoryId": 962,
"InteractionType": "AttuneAetheryte"
},

View File

@ -73,7 +73,9 @@
"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,
@ -83,7 +85,8 @@
"Z": 100.1449
},
"TerritoryId": 962,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[2]"
},
{
"DataId": 2011826,
@ -93,7 +96,9 @@
"Z": 43.289795
},
"TerritoryId": 962,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[3]",
"$.2": "QuestVariables if used first: 1 0 0 0 0 64"
}
]
},

View File

@ -132,6 +132,7 @@
"Y": -14.169313,
"Z": 114.76306
},
"StopDistance": 7,
"TerritoryId": 962,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": 69.999954,
"Z": 523.39966
},
"StopDistance": 5,
"TerritoryId": 621,
"InteractionType": "Interact"
}
@ -27,7 +28,7 @@
"Y": 70.139626,
"Z": 522.88086
},
"StopDistance": 5,
"StopDistance": 7,
"TerritoryId": 621,
"InteractionType": "Interact"
}

View File

@ -138,6 +138,7 @@
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"Mount": true,
"DisableNavmesh": true
},
{
@ -175,7 +176,8 @@
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Mount": false
"Mount": false,
"Comment": "TODO Should cancel Navmesh on fade out"
}
]
},
@ -189,6 +191,7 @@
"Y": -13.278784,
"Z": 648.249
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -13.28456,
"Z": 650.26306
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}

View File

@ -44,6 +44,7 @@
"Y": 22.554066,
"Z": 430.01453
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
@ -59,7 +60,7 @@
"Y": 22.071072,
"Z": 434.01233
},
"StopDistance": 6,
"StopDistance": 7,
"TerritoryId": 958,
"InteractionType": "Interact"
}
@ -87,9 +88,9 @@
{
"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,

View File

@ -29,7 +29,9 @@
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Comment": "Caeso"
"Comment": "Caeso",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 17 0 0 0 0 64"
},
{
"DataId": 1037718,
@ -40,7 +42,9 @@
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Comment": "Octavia"
"Comment": "Octavia",
"$.0": "[2]",
"$.2": "QuestVariables if done after [1]: 33 1 0 0 0 80"
},
{
"Position": {
@ -60,7 +64,9 @@
},
"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,
@ -71,7 +77,9 @@
},
"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,
@ -82,7 +90,8 @@
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Comment": "Magitek Radio"
"Comment": "Magitek Radio",
"$.0": "[5]"
}
]
},

View File

@ -30,7 +30,8 @@
},
"TerritoryId": 958,
"InteractionType": "Interact",
"Comment": "Marcellinus"
"Comment": "Marcellinus",
"$.1": "QuestVariables if done first: 16 16 0 0 0 128"
},
{
"DataId": 1038791,

View File

@ -101,6 +101,7 @@
},
"TerritoryId": 958,
"InteractionType": "WalkTo",
"Mount": true,
"DisableNavmesh": true
},
{
@ -213,7 +214,9 @@
"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,
@ -230,7 +233,9 @@
],
"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,
@ -241,7 +246,9 @@
},
"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,
@ -258,7 +265,8 @@
],
"Comment": "TODO Needs item use?",
"ItemId": 2003231,
"ItemUseHealthMaxPercent": 10
"ItemUseHealthMaxPercent": 10,
"$.0": "[4]"
}
]
},

View File

@ -45,6 +45,7 @@
"StopDistance": 10,
"TerritoryId": 959,
"InteractionType": "AttuneAetheryte",
"Mount": true,
"DisableNavmesh": true
},
{

View File

@ -29,6 +29,7 @@
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
"Mount": true,
"DisableNavmesh": true
},
{

View File

@ -28,6 +28,7 @@
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
"Mount": true,
"DisableNavmesh": true
},
{

View File

@ -115,7 +115,8 @@
"Z": -585.7481
},
"TerritoryId": 959,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
}
]
},

View File

@ -12,6 +12,7 @@
"Y": -168,
"Z": -657.7402
},
"StopDistance": 7,
"TerritoryId": 959,
"InteractionType": "Interact"
}
@ -75,6 +76,7 @@
"Y": 75.72459,
"Z": -23.51416
},
"StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": 75.72459,
"Z": -23.51416
},
"StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}
@ -48,7 +49,8 @@
"Z": -71.81973
},
"TerritoryId": 959,
"InteractionType": "WalkTo"
"InteractionType": "WalkTo",
"Mount": true
},
{
"DataId": 2012010,

View File

@ -12,6 +12,7 @@
"Y": -168.00002,
"Z": -625.11633
},
"StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}
@ -29,6 +30,7 @@
},
"TerritoryId": 959,
"InteractionType": "Interact",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Comment": "Teleporter"
},
{

View File

@ -85,6 +85,7 @@
"Y": -1.9999963,
"Z": 93.492065
},
"StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -1.9999963,
"Z": 93.492065
},
"StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}

View File

@ -140,7 +140,8 @@
"KillEnemyDataIds": [
13987
],
"$": "QuestVariables after: 16 1 0 0 0 128"
"$.0": "[1]",
"$.1": "QuestVariables if done first: 16 1 0 0 0 128"
},
{
"Position": {
@ -154,7 +155,9 @@
"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": {
@ -168,7 +171,9 @@
"KillEnemyDataIds": [
13985,
13984
]
],
"$.0": "[3]",
"$.2": "QuestVariables if done first: 16 32 0 0 0 32"
}
]
},

View File

@ -31,6 +31,17 @@
"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": {
@ -69,7 +80,7 @@
"Y": -60.471558,
"Z": 133.25696
},
"StopDistance": 0.5,
"StopDistance": 1,
"TerritoryId": 957,
"InteractionType": "Interact",
"DisableNavmesh": true
@ -100,17 +111,6 @@
"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": {

View File

@ -96,6 +96,7 @@
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"Mount": true,
"DisableNavmesh": true
},
{

View File

@ -114,7 +114,7 @@
"Y": 36,
"Z": 71.70203
},
"StopDistance": 5,
"StopDistance": 7,
"TerritoryId": 963,
"InteractionType": "Interact"
}

View File

@ -143,6 +143,7 @@
"Y": -1.9999962,
"Z": 87.44946
},
"StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}

View File

@ -30,7 +30,11 @@
},
"TerritoryId": 813,
"InteractionType": "Interact",
"AetheryteShortcut": "Lakeland - Fort Jobb",
"AetheryteShortcut": "Crystarium",
"AethernetShortcut": [
"[Crystarium] Aetheryte Plaza",
"[Crystarium] Tessellation (Lakeland)"
],
"Fly": true
}
]

View File

@ -54,7 +54,8 @@
"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,
@ -65,6 +66,7 @@
},
"TerritoryId": 1031,
"InteractionType": "Interact",
"$.0": "[2]",
"$": "QuestVariables after: 32 1 16 0 0 144"
},
{
@ -76,7 +78,8 @@
},
"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,
@ -86,7 +89,9 @@
"Z": -4.1657104
},
"TerritoryId": 1031,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[4]",
"$.2": "QuestVariables if done first: 16 16 0 0 0 32"
}
]
},

View File

@ -46,6 +46,7 @@
"Y": -350.00003,
"Z": -72.19049
},
"StopDistance": 7,
"TerritoryId": 1056,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -350,
"Z": -73.68585
},
"StopDistance": 5,
"TerritoryId": 1056,
"InteractionType": "Interact"
}
@ -43,7 +44,8 @@
"Z": -148.57715
},
"TerritoryId": 963,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Radz-at-Han"
}
]
},

View File

@ -28,8 +28,7 @@
"Z": -210.6151
},
"TerritoryId": 963,
"InteractionType": "AttuneAethernetShard",
"Comment": "This is pretty late here, maybe move it to some other quest"
"InteractionType": "AttuneAethernetShard"
},
{
"DataId": 1039589,
@ -39,13 +38,25 @@
"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": {
@ -53,6 +64,7 @@
"Y": 5.34517,
"Z": 635.9807
},
"StopDistance": 5,
"TerritoryId": 957,
"InteractionType": "Interact"
},
@ -79,7 +91,12 @@
"Z": -68.61987
},
"TerritoryId": 963,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Radz-at-Han",
"AethernetShortcut": [
"[Radz-at-Han] Aetheryte Plaza",
"[Radz-at-Han] Meghaduta"
]
}
]
}

View File

@ -47,7 +47,8 @@
"Z": -15.243774
},
"TerritoryId": 962,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Old Sharlayan"
}
]
},
@ -95,10 +96,11 @@
{
"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": [

View File

@ -76,6 +76,7 @@
"Y": 19,
"Z": 69.10803
},
"StopDistance": 5,
"TerritoryId": 962,
"InteractionType": "Interact"
}
@ -92,13 +93,25 @@
"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": {
@ -122,7 +135,8 @@
"Z": 26.779541
},
"TerritoryId": 957,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Great Work"
}
]
}

View File

@ -28,7 +28,8 @@
"Z": 605.9204
},
"TerritoryId": 957,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},

View File

@ -12,6 +12,7 @@
"Y": -350,
"Z": -83.14642
},
"StopDistance": 5,
"TerritoryId": 1056,
"InteractionType": "Interact"
}
@ -43,7 +44,8 @@
"Z": 108.11011
},
"TerritoryId": 957,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Great Work"
}
]
},
@ -74,6 +76,7 @@
},
"TerritoryId": 963,
"InteractionType": "Interact",
"AetheryteShortcut": "Radz-at-Han",
"AethernetShortcut": [
"[Radz-at-Han] Aetheryte Plaza",
"[Radz-at-Han] Meghaduta"

View File

@ -28,7 +28,8 @@
"Z": 22.507019
},
"TerritoryId": 957,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Great Work"
}
]
},
@ -42,6 +43,7 @@
"Y": 0.07863108,
"Z": 605.9204
},
"StopDistance": 5,
"TerritoryId": 957,
"InteractionType": "Interact"
}
@ -88,6 +90,7 @@
"Y": 376.4496,
"Z": -158.31238
},
"StopDistance": 7,
"TerritoryId": 1089,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": 376.38647,
"Z": -158.0072
},
"StopDistance": 7,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
@ -28,7 +29,9 @@
"Z": -109.33093
},
"TerritoryId": 1089,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 1 0 0 0 0 128"
},
{
"DataId": 1043790,
@ -38,7 +41,9 @@
"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,
@ -48,7 +53,9 @@
"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,

View File

@ -12,6 +12,7 @@
"Y": -718.33905,
"Z": 207.87354
},
"StopDistance": 5,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
@ -83,6 +84,7 @@
"Y": -698.0104,
"Z": -135.63751
},
"StopDistance": 5,
"TerritoryId": 1089,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -698.0104,
"Z": -138.1095
},
"StopDistance": 5,
"TerritoryId": 1089,
"InteractionType": "Interact"
}
@ -38,7 +39,9 @@
"Z": -49.45453
},
"TerritoryId": 1089,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 1 0 0 0 0 32"
},
{
"DataId": 1043791,
@ -48,7 +51,9 @@
"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,
@ -58,7 +63,8 @@
"Z": -106.70636
},
"TerritoryId": 1089,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[3]"
}
]
},
@ -122,6 +128,7 @@
"Y": -0.50953794,
"Z": 33.798706
},
"StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -0.50953794,
"Z": 33.798706
},
"StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
@ -27,6 +28,7 @@
"Y": -0.50953794,
"Z": 33.798706
},
"StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
@ -43,7 +45,8 @@
"Z": -22.568176
},
"TerritoryId": 1077,
"InteractionType": "Interact"
"InteractionType": "Interact",
"$.0": "[1]"
},
{
"DataId": 1043831,
@ -53,7 +56,9 @@
"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,
@ -73,10 +78,11 @@
{
"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"
}
@ -167,6 +173,7 @@
"Y": -0.4,
"Z": -68.223145
},
"StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -0.4,
"Z": -70.72565
},
"StopDistance": 7,
"TerritoryId": 1077,
"InteractionType": "Interact"
}
@ -42,6 +43,7 @@
"Y": -19,
"Z": 176.985
},
"StopDistance": 5,
"TerritoryId": 1092,
"InteractionType": "ManualAction",
"Comment": "Duty - Storm's Crown"
@ -58,6 +60,7 @@
"Y": -0.21963555,
"Z": 52.506226
},
"StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": -0.21963556,
"Z": 50.492065
},
"StopDistance": 5,
"TerritoryId": 1077,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": 0.008460393,
"Z": -1.8463745
},
"StopDistance": 7,
"TerritoryId": 1078,
"InteractionType": "Interact"
}
@ -27,6 +28,7 @@
"Y": 1.2359009,
"Z": 5.3864136
},
"StopDistance": 4,
"TerritoryId": 1078,
"InteractionType": "Interact"
},
@ -105,10 +107,11 @@
{
"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"
}
@ -124,6 +127,7 @@
"Y": 1.8631814,
"Z": -100.1145
},
"StopDistance": 7,
"TerritoryId": 963,
"InteractionType": "Interact"
}
@ -139,6 +143,7 @@
"Y": 36.051323,
"Z": 70.24
},
"StopDistance": 0.25,
"TerritoryId": 963,
"InteractionType": "Interact",
"AethernetShortcut": [

View File

@ -46,6 +46,7 @@
"Y": 55,
"Z": -68.40625
},
"StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}

View File

@ -12,6 +12,7 @@
"Y": 55,
"Z": -68.40625
},
"StopDistance": 5,
"TerritoryId": 963,
"InteractionType": "Interact"
}
@ -54,6 +55,26 @@
]
}
]
},
{
"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"
]
}
]
}
]
}

View File

@ -27,6 +27,7 @@
"Y": -36.65,
"Z": -185.87018
},
"StopDistance": 6,
"TerritoryId": 958,
"InteractionType": "Interact"
}
@ -43,7 +44,8 @@
"Z": 485.37415
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Garlemald - Camp Broken Glass"
}
]
},
@ -58,7 +60,8 @@
"Z": 427.87805
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
@ -72,6 +75,7 @@
"Y": -20.207552,
"Z": 509.88013
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
@ -88,7 +92,8 @@
"Z": 642.8473
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
@ -103,7 +108,8 @@
"Z": 484.0619
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"AetheryteShortcut": "Garlemald - Camp Broken Glass"
}
]
}

View File

@ -28,7 +28,8 @@
"Z": 416.3423
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
@ -44,10 +45,12 @@
},
"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,
@ -57,7 +60,21 @@
"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,
@ -68,19 +85,10 @@
},
"TerritoryId": 958,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
16030
]
},
{
"DataId": 2013308,
"Position": {
"X": 75.33374,
"Y": -12.527649,
"Z": 339.40637
},
"TerritoryId": 958,
"InteractionType": "Interact"
}
]
},
@ -95,7 +103,8 @@
"Z": 144.70117
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
}

View File

@ -27,6 +27,7 @@
"Y": 10.800001,
"Z": -427.75616
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "ManualAction",
"Comment": "Duty - An Unforeseen Bargain"

View File

@ -27,6 +27,7 @@
"Y": -36.65,
"Z": -243.843
},
"StopDistance": 5,
"TerritoryId": 958,
"InteractionType": "Interact"
}
@ -43,7 +44,8 @@
"Z": 718.8982
},
"TerritoryId": 958,
"InteractionType": "Interact"
"InteractionType": "Interact",
"Fly": true
}
]
},
@ -58,6 +60,7 @@
"Z": 717.7081
},
"TerritoryId": 958,
"StopDistance": 5,
"InteractionType": "ManualAction",
"Comment": "Duty - Lapis Manalis"
}

View File

@ -44,7 +44,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin
_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);

View File

@ -137,7 +137,9 @@ internal sealed class DebugWindow : Window
{
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)