Rough Update for Labyrinthos2 up to Alzadaals Legacy + remaining EW Aethercurrent quests

This commit is contained in:
Liza 2024-05-29 21:22:58 +02:00
parent adf8674fe4
commit 5ed1aa641d
Signed by: liza
GPG Key ID: 7199F8D727D55F67
50 changed files with 1338 additions and 253 deletions

View File

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/Environment/AutoImport2/=CSHARP/BlackLists/=Newtonsoft_002E_002A/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -264,6 +264,13 @@ internal sealed class QuestController
return; return;
Debug.Assert(CurrentQuest != null, nameof(CurrentQuest) + " != null"); Debug.Assert(CurrentQuest != null, nameof(CurrentQuest) + " != null");
if (step.Disabled)
{
_pluginLog.Information("Skipping step, as it is disabled");
IncreaseStepCount();
return;
}
if (!CurrentQuest.StepProgress.AetheryteShortcutUsed && step.AetheryteShortcut != null) if (!CurrentQuest.StepProgress.AetheryteShortcutUsed && step.AetheryteShortcut != null)
{ {
bool skipTeleport = false; bool skipTeleport = false;
@ -308,6 +315,13 @@ internal sealed class QuestController
} }
} }
if (step.SkipIf.Contains(ESkipCondition.FlyingUnlocked) && _gameFunctions.IsFlyingUnlocked(step.TerritoryId))
{
_pluginLog.Information("Skipping step, as flying is unlocked");
IncreaseStepCount();
return;
}
if (!CurrentQuest.StepProgress.AethernetShortcutUsed) if (!CurrentQuest.StepProgress.AethernetShortcutUsed)
{ {
if (step.AethernetShortcut != null && if (step.AethernetShortcut != null &&
@ -357,7 +371,8 @@ internal sealed class QuestController
if (step.Mount == true && !_gameFunctions.HasStatusPreventingSprintOrMount()) if (step.Mount == true && !_gameFunctions.HasStatusPreventingSprintOrMount())
{ {
if (!_condition[ConditionFlag.Mounted] && _territoryData.CanUseMount(_clientState.TerritoryType)) if (!_condition[ConditionFlag.Mounted] && !_condition[ConditionFlag.InCombat] &&
_territoryData.CanUseMount(_clientState.TerritoryType))
{ {
if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, 71) == 0) if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, 71) == 0)
ActionManager.Instance()->UseAction(ActionType.Mount, 71); ActionManager.Instance()->UseAction(ActionType.Mount, 71);
@ -376,7 +391,7 @@ internal sealed class QuestController
if (!step.DisableNavmesh) if (!step.DisableNavmesh)
{ {
if (step.Mount != false && actualDistance > 30f && !_condition[ConditionFlag.Mounted] && if (step.Mount != false && actualDistance > 30f && !_condition[ConditionFlag.Mounted] &&
_territoryData.CanUseMount(_clientState.TerritoryType) && !_condition[ConditionFlag.InCombat] && _territoryData.CanUseMount(_clientState.TerritoryType) &&
!_gameFunctions.HasStatusPreventingSprintOrMount()) !_gameFunctions.HasStatusPreventingSprintOrMount())
{ {
if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, 71) == 0) if (ActionManager.Instance()->GetActionStatus(ActionType.Mount, 71) == 0)

View File

@ -393,7 +393,7 @@ internal sealed unsafe class GameFunctions
{ {
var battleChara = (BattleChara*)gameObject; var battleChara = (BattleChara*)gameObject;
StatusManager* statusManager = battleChara->GetStatusManager; StatusManager* statusManager = battleChara->GetStatusManager;
return statusManager->HasStatus(565) || statusManager->HasStatus(404); return statusManager->HasStatus(565) || statusManager->HasStatus(404) || statusManager->HasStatus(2730);
} }
return false; return false;

View File

@ -1,6 +1,10 @@
namespace Questionable.Model.V1; using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
public class AethernetShortcut namespace Questionable.Model.V1;
[JsonConverter(typeof(AethernetShortcutConverter))]
public sealed class AethernetShortcut
{ {
public EAetheryteLocation From { get; set; } public EAetheryteLocation From { get; set; }
public EAetheryteLocation To { get; set; } public EAetheryteLocation To { get; set; }

View File

@ -1,14 +1,10 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.V1.Converter; namespace Questionable.Model.V1.Converter;
public sealed class AetheryteConverter : JsonConverter<EAetheryteLocation> public sealed class AetheryteConverter() : EnumConverter<EAetheryteLocation>(Values)
{ {
private static readonly Dictionary<EAetheryteLocation, string> EnumToString = new() private static readonly Dictionary<EAetheryteLocation, string> Values = new()
{ {
{ EAetheryteLocation.Limsa, "Limsa Lominsa" }, { EAetheryteLocation.Limsa, "Limsa Lominsa" },
{ EAetheryteLocation.Gridania, "Gridania" }, { EAetheryteLocation.Gridania, "Gridania" },
@ -67,29 +63,7 @@ public sealed class AetheryteConverter : JsonConverter<EAetheryteLocation>
{ EAetheryteLocation.ElpisTwelveWonders, "Elpis - Twelve Wonders" }, { EAetheryteLocation.ElpisTwelveWonders, "Elpis - Twelve Wonders" },
{ EAetheryteLocation.ElpisPoietenOikos, "Elpis - Poieten Oikos" }, { EAetheryteLocation.ElpisPoietenOikos, "Elpis - Poieten Oikos" },
{ EAetheryteLocation.UltimaThuleReahTahra, "Ultima Thule - Reah Tahra" }, { EAetheryteLocation.UltimaThuleReahTahra, "Ultima Thule - Reah Tahra" },
{ EAetheryteLocation.UltimaThuleAbodeOfTheEa, "Ultima Thula - Abode of the Ea" }, { EAetheryteLocation.UltimaThuleAbodeOfTheEa, "Ultima Thule - Abode of the Ea" },
{ EAetheryteLocation.UltimaThuleBaseOmicron, "Ultima Thule - Base Omicron" } { EAetheryteLocation.UltimaThuleBaseOmicron, "Ultima Thule - Base Omicron" }
}; };
private static readonly Dictionary<string, EAetheryteLocation> StringToEnum =
EnumToString.ToDictionary(x => x.Value, x => x.Key);
public override EAetheryteLocation Read(ref Utf8JsonReader reader, Type typeToConvert,
JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.String)
throw new JsonException();
string? str = reader.GetString();
if (str == null)
throw new JsonException();
return StringToEnum.TryGetValue(str, out EAetheryteLocation value) ? value : throw new JsonException();
}
public override void Write(Utf8JsonWriter writer, EAetheryteLocation value, JsonSerializerOptions options)
{
ArgumentNullException.ThrowIfNull(writer);
writer.WriteStringValue(EnumToString[value]);
}
} }

View File

@ -1,40 +1,16 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.V1.Converter; namespace Questionable.Model.V1.Converter;
public class EmoteConverter : JsonConverter<EEmote> public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
{ {
private static readonly Dictionary<EEmote, string> EnumToString = new() private static readonly Dictionary<EEmote, string> Values = new()
{ {
{ EEmote.Stretch, "stretch" }, { EEmote.Stretch, "stretch" },
{ EEmote.Wave, "wave" }, { EEmote.Wave, "wave" },
{ EEmote.Rally, "rally" }, { EEmote.Rally, "rally" },
{ EEmote.Deny, "deny" }, { EEmote.Deny, "deny" },
{ EEmote.Pray, "pray" },
}; };
private static readonly Dictionary<string, EEmote> StringToEnum =
EnumToString.ToDictionary(x => x.Value, x => x.Key);
public override EEmote Read(ref Utf8JsonReader reader, Type typeToConvert,
JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.String)
throw new JsonException();
string? str = reader.GetString();
if (str == null)
throw new JsonException();
return StringToEnum.TryGetValue(str, out EEmote value) ? value : throw new JsonException();
}
public override void Write(Utf8JsonWriter writer, EEmote value, JsonSerializerOptions options)
{
ArgumentNullException.ThrowIfNull(writer);
writer.WriteStringValue(EnumToString[value]);
}
} }

View File

@ -1,38 +1,12 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.V1.Converter; namespace Questionable.Model.V1.Converter;
public class EnemySpawnTypeConverter : JsonConverter<EEnemySpawnType> public sealed class EnemySpawnTypeConverter() : EnumConverter<EEnemySpawnType>(Values)
{ {
private static readonly Dictionary<EEnemySpawnType, string> EnumToString = new() private static readonly Dictionary<EEnemySpawnType, string> Values = new()
{ {
{ EEnemySpawnType.AfterInteraction, "AfterInteraction" }, { EEnemySpawnType.AfterInteraction, "AfterInteraction" },
{ EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" }, { EEnemySpawnType.AutoOnEnterArea, "AutoOnEnterArea" },
}; };
private static readonly Dictionary<string, EEnemySpawnType> StringToEnum =
EnumToString.ToDictionary(x => x.Value, x => x.Key);
public override EEnemySpawnType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.String)
throw new JsonException();
string? str = reader.GetString();
if (str == null)
throw new JsonException();
return StringToEnum.TryGetValue(str, out EEnemySpawnType value) ? value : throw new JsonException();
}
public override void Write(Utf8JsonWriter writer, EEnemySpawnType value, JsonSerializerOptions options)
{
ArgumentNullException.ThrowIfNull(writer);
writer.WriteStringValue(EnumToString[value]);
}
} }

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.V1.Converter;
public abstract class EnumConverter<T> : JsonConverter<T>
where T : Enum
{
private readonly ReadOnlyDictionary<T, string> _enumToString;
private readonly ReadOnlyDictionary<string, T> _stringToEnum;
protected EnumConverter(IReadOnlyDictionary<T, string> values)
{
_enumToString = values is IDictionary<T, string> dict
? new ReadOnlyDictionary<T, string>(dict)
: values.ToDictionary(x => x.Key, x => x.Value).AsReadOnly();
_stringToEnum = _enumToString.ToDictionary(x => x.Value, x => x.Key)
.AsReadOnly();
}
public override T? Read(ref Utf8JsonReader reader, Type typeToConvert,
JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.String)
throw new JsonException();
string? str = reader.GetString();
if (str == null)
throw new JsonException();
return _stringToEnum.TryGetValue(str, out T? value) ? value : throw new JsonException();
}
public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options)
{
ArgumentNullException.ThrowIfNull(writer);
writer.WriteStringValue(_enumToString[value]);
}
}

View File

@ -1,14 +1,10 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.V1.Converter; namespace Questionable.Model.V1.Converter;
public sealed class InteractionTypeConverter : JsonConverter<EInteractionType> public sealed class InteractionTypeConverter() : EnumConverter<EInteractionType>(Values)
{ {
private static readonly Dictionary<EInteractionType, string> EnumToString = new() private static readonly Dictionary<EInteractionType, string> Values = new()
{ {
{ EInteractionType.Interact, "Interact" }, { EInteractionType.Interact, "Interact" },
{ EInteractionType.WalkTo, "WalkTo" }, { EInteractionType.WalkTo, "WalkTo" },
@ -22,25 +18,4 @@ public sealed class InteractionTypeConverter : JsonConverter<EInteractionType>
{ EInteractionType.WaitForObjectAtPosition, "WaitForNpcAtPosition" }, { EInteractionType.WaitForObjectAtPosition, "WaitForNpcAtPosition" },
{ EInteractionType.ManualAction, "ManualAction" } { EInteractionType.ManualAction, "ManualAction" }
}; };
private static readonly Dictionary<string, EInteractionType> StringToEnum =
EnumToString.ToDictionary(x => x.Value, x => x.Key);
public override EInteractionType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.String)
throw new JsonException();
string? str = reader.GetString();
if (str == null)
throw new JsonException();
return StringToEnum.TryGetValue(str, out EInteractionType value) ? value : throw new JsonException();
}
public override void Write(Utf8JsonWriter writer, EInteractionType value, JsonSerializerOptions options)
{
ArgumentNullException.ThrowIfNull(writer);
writer.WriteStringValue(EnumToString[value]);
}
} }

View File

@ -0,0 +1,11 @@
using System.Collections.Generic;
namespace Questionable.Model.V1.Converter;
public sealed class SkipConditionConverter() : EnumConverter<ESkipCondition>(Values)
{
private static readonly Dictionary<ESkipCondition, string> Values = new()
{
{ ESkipCondition.FlyingUnlocked, "FlyingUnlocked" },
};
}

View File

@ -1,5 +1,9 @@
namespace Questionable.Model.V1; using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
namespace Questionable.Model.V1;
[JsonConverter(typeof(AetheryteConverter))]
public enum EAetheryteLocation public enum EAetheryteLocation
{ {
None = 0, None = 0,

View File

@ -1,5 +1,9 @@
namespace Questionable.Model.V1; using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
namespace Questionable.Model.V1;
[JsonConverter(typeof(EmoteConverter))]
public enum EEmote public enum EEmote
{ {
None = 0, None = 0,
@ -8,4 +12,5 @@ public enum EEmote
Wave = 16, Wave = 16,
Rally = 34, Rally = 34,
Deny = 25, Deny = 25,
Pray = 58,
} }

View File

@ -1,5 +1,9 @@
namespace Questionable.Model.V1; using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
namespace Questionable.Model.V1;
[JsonConverter(typeof(EnemySpawnTypeConverter))]
public enum EEnemySpawnType public enum EEnemySpawnType
{ {
None = 0, None = 0,

View File

@ -1,5 +1,9 @@
namespace Questionable.Model.V1; using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
namespace Questionable.Model.V1;
[JsonConverter(typeof(InteractionTypeConverter))]
public enum EInteractionType public enum EInteractionType
{ {
Interact, Interact,

View File

@ -0,0 +1,11 @@
using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
namespace Questionable.Model.V1;
[JsonConverter(typeof(SkipConditionConverter))]
public enum ESkipCondition
{
None,
FlyingUnlocked,
}

View File

@ -7,7 +7,6 @@ namespace Questionable.Model.V1;
public class QuestStep public class QuestStep
{ {
[JsonConverter(typeof(InteractionTypeConverter))]
public EInteractionType InteractionType { get; set; } public EInteractionType InteractionType { get; set; }
public uint? DataId { get; set; } public uint? DataId { get; set; }
@ -25,22 +24,20 @@ public class QuestStep
public bool Fly { get; set; } public bool Fly { get; set; }
public string? Comment { get; set; } public string? Comment { get; set; }
[JsonConverter(typeof(AetheryteConverter))]
public EAetheryteLocation? AetheryteShortcut { get; set; } public EAetheryteLocation? AetheryteShortcut { get; set; }
[JsonConverter(typeof(AethernetShortcutConverter))]
public AethernetShortcut? AethernetShortcut { get; set; } public AethernetShortcut? AethernetShortcut { get; set; }
public uint? AetherCurrentId { get; set; } public uint? AetherCurrentId { get; set; }
public uint? ItemId { get; set; } public uint? ItemId { get; set; }
public bool? GroundTarget { get; set; } public bool? GroundTarget { get; set; }
[JsonConverter(typeof(EmoteConverter))]
public EEmote? Emote { get; set; } public EEmote? Emote { get; set; }
public string ChatMessage { get; set; } public string? ChatMessage { get; set; }
[JsonConverter(typeof(EnemySpawnTypeConverter))]
public EEnemySpawnType? EnemySpawnType { get; set; } public EEnemySpawnType? EnemySpawnType { get; set; }
public IList<uint>? KillEnemyDataIds { get; set; } public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>();
public IList<ESkipCondition> SkipIf { get; set; } = new List<ESkipCondition>();
} }

View File

@ -0,0 +1,68 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1041313,
"Position": {
"X": 89.28052,
"Y": -17.530382,
"Z": -74.906555
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1041314,
"Position": {
"X": 78.3855,
"Y": -29.79994,
"Z": 159.5636
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2012494,
"Position": {
"X": 78.96533,
"Y": -29.098999,
"Z": 161.02844
},
"StopDistance": 5,
"TerritoryId": 956,
"InteractionType": "Emote",
"Emote": "pray"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1041313,
"Position": {
"X": 89.28052,
"Y": -17.530382,
"Z": -74.906555
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,71 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1041129,
"Position": {
"X": -23.575256,
"Y": -31.53021,
"Z": 1.8463135
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 262.07907,
"Y": -18.527845,
"Z": 183.61182
},
"StopDistance": 1,
"TerritoryId": 956,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14123
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1041128,
"Position": {
"X": 263.1112,
"Y": -18.597479,
"Z": 185.99219
},
"StopDistance": 5,
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1041129,
"Position": {
"X": -23.575256,
"Y": -31.53021,
"Z": 1.8463135
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,118 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1041667,
"Position": {
"X": 443.96118,
"Y": 65.162,
"Z": -105.4552
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2012725,
"Position": {
"X": 693.1715,
"Y": 99.01575,
"Z": 123.52173
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2012726,
"Position": {
"X": 806.79016,
"Y": 154.10083,
"Z": -149.64526
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1041681,
"Position": {
"X": 436.69788,
"Y": 166.19273,
"Z": -430.4723
},
"TerritoryId": 956,
"InteractionType": "Interact",
"AetheryteShortcut": "Labyrinthos - Archeion"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1041668,
"Position": {
"X": 394.12524,
"Y": 173.82095,
"Z": -646.75366
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1041670,
"Position": {
"X": 285.23682,
"Y": 185.65448,
"Z": -729.67114
},
"StopDistance": 1,
"TerritoryId": 956,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14069
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1041670,
"Position": {
"X": 285.23682,
"Y": 185.65448,
"Z": -729.67114
},
"StopDistance": 5,
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,51 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1041683,
"Position": {
"X": -29.984009,
"Y": -31.53043,
"Z": -23.758362
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1041684,
"Position": {
"X": 50.43103,
"Y": -29.530062,
"Z": 27.115234
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1041685,
"Position": {
"X": 154.89429,
"Y": -17.530376,
"Z": -66.2395
},
"TerritoryId": 956,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,77 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1037867,
"Position": {
"X": -301.62512,
"Y": -144.00002,
"Z": -491.14215
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1041132,
"Position": {
"X": -558.1293,
"Y": -168,
"Z": -475.3338
},
"TerritoryId": 959,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14053
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -719.5691,
"Y": -152.90369,
"Z": -807.82135
},
"TerritoryId": 959,
"InteractionType": "ManualAction",
"Comment": "Navmesh can't jump (TODO this is super out of the way)"
},
{
"DataId": 2012018,
"Position": {
"X": -733.63855,
"Y": -139.6659,
"Z": -733.30286
},
"TerritoryId": 959,
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818367
},
{
"DataId": 1037867,
"Position": {
"X": -301.62512,
"Y": -144.00002,
"Z": -491.14215
},
"TerritoryId": 959,
"InteractionType": "Interact",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
}
]
}
]
}

View File

@ -0,0 +1,98 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039520,
"Position": {
"X": -287.8615,
"Y": -143.50005,
"Z": -520.28687
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -345.7338,
"Y": -161.8501,
"Z": -646.97064
},
"TerritoryId": 959,
"InteractionType": "ManualAction",
"Comment": "Navmesh can't jump"
},
{
"DataId": 1041789,
"StopDistance": 3,
"TerritoryId": 959,
"InteractionType": "Say",
"ChatMessage": "carrot of happiness"
},
{
"DataId": 1041790,
"Position": {
"X": -482.01727,
"Y": -167.50002,
"Z": -545.6169
},
"StopDistance": 3,
"TerritoryId": 959,
"InteractionType": "Say",
"ChatMessage": "carrot of happiness",
"$.1": "QuestVariables if done after [1]: 2 0 0 0 0 192"
},
{
"Position": {
"X": -438.33246,
"Y": -168.00002,
"Z": -420.43494
},
"TerritoryId": 959,
"InteractionType": "ManualAction",
"Comment": "Navmesh can't jump"
},
{
"DataId": 1041791,
"StopDistance": 3,
"TerritoryId": 959,
"InteractionType": "Say",
"ChatMessage": "carrot of happiness"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -376.5167,
"Y": -168,
"Z": -432.03497
},
"TerritoryId": 959,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"DataId": 1039520,
"Position": {
"X": -287.8615,
"Y": -143.50005,
"Z": -520.28687
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,153 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1041123,
"Position": {
"X": -81.864685,
"Y": -132.74333,
"Z": -521.6602
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2012015,
"Position": {
"X": 591.3633,
"Y": 149.33997,
"Z": 114.91565
},
"StopDistance": 4,
"TerritoryId": 959,
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818364,
"Comment": "TODO Unsure if this can be reached via navmesh directly from Bestways Burrows"
},
{
"DataId": 1041127,
"Position": {
"X": 537.3159,
"Y": 132.40395,
"Z": 233.81396
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2012338,
"Position": {
"X": 700.19055,
"Y": 135.21008,
"Z": 229.48035
},
"TerritoryId": 959,
"InteractionType": "Interact",
"$.1": "QuestVariables if done first: 17 0 0 0 0 32"
},
{
"DataId": 1041125,
"Position": {
"X": 735.5,
"Y": 151.08012,
"Z": 189.01343
},
"TerritoryId": 959,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14050
],
"$.1": "QuestVariables if done after [1]: 33 1 0 0 0 160"
},
{
"DataId": 1041124,
"Position": {
"X": 663.6301,
"Y": 128.48961,
"Z": 188.18945
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1041127,
"Position": {
"X": 537.3159,
"Y": 132.40395,
"Z": 233.81396
},
"StopDistance": 1,
"TerritoryId": 959,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14049
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1041127,
"Position": {
"X": 537.3159,
"Y": 132.40395,
"Z": 233.81396
},
"StopDistance": 5,
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 2012016,
"Position": {
"X": 388.3573,
"Y": 99.90076,
"Z": 306.05017
},
"TerritoryId": 959,
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818365
},
{
"DataId": 1041123,
"Position": {
"X": -81.864685,
"Y": -132.74333,
"Z": -521.6602
},
"TerritoryId": 959,
"InteractionType": "Interact",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
}
]
}
]
}

View File

@ -0,0 +1,93 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1041555,
"Position": {
"X": 26.443848,
"Y": -129.20917,
"Z": -536.9497
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1041556,
"Position": {
"X": 113.14563,
"Y": -133.07352,
"Z": -465.17133
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1041745,
"Position": {
"X": 66.23938,
"Y": -133.00002,
"Z": -432.8222
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Comment": "Cheerful Loporrit",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 1 0 0 0 0 64"
},
{
"DataId": 1041746,
"Position": {
"X": -85.83203,
"Y": -133.0356,
"Z": -507.1336
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Comment": "Stern Loporrit",
"$.0": "[2]",
"$.1": "QuestVariables if done after [1]: 2 0 0 0 0 96"
},
{
"DataId": 1041744,
"Position": {
"X": -110.12439,
"Y": -133.07341,
"Z": -556.7865
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Comment": "Easygoing Loporrit"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1041556,
"Position": {
"X": 113.14563,
"Y": -133.07352,
"Z": -465.17133
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,52 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1040876,
"Position": {
"X": 49.42395,
"Y": 269.25684,
"Z": -523.2472
},
"TerritoryId": 960,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -41.26438,
"Y": 274.85336,
"Z": -523.8633
},
"TerritoryId": 960,
"InteractionType": "ManualAction",
"Comment": "Kill 2 Drifting Ea",
"$": "QuestVariables: 0 0-16-32 0 0 0 0"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1040876,
"Position": {
"X": 49.42395,
"Y": 269.25684,
"Z": -523.2472
},
"TerritoryId": 960,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,76 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1038016,
"Position": {
"X": 105.42456,
"Y": 269.29584,
"Z": -454.3069
},
"TerritoryId": 960,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1040880,
"Position": {
"X": -110.185425,
"Y": 269.2062,
"Z": -713.5271
},
"TerritoryId": 960,
"InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Abode of the Ea"
},
{
"DataId": 1040881,
"Position": {
"X": -201.86163,
"Y": 288.6714,
"Z": -466.331
},
"TerritoryId": 960,
"InteractionType": "Interact",
"$.0": "[2]",
"$.1": "QuestVariables if done after [3]: 32 17 0 0 0 160"
},
{
"DataId": 1040879,
"Position": {
"X": -184.52734,
"Y": 267.47086,
"Z": -292.65283
},
"TerritoryId": 960,
"InteractionType": "Interact",
"$.0": "[3]",
"$.1": "QuestVariables if done first: 16 1 0 0 0 128"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1038016,
"Position": {
"X": 105.42456,
"Y": 269.29584,
"Z": -454.3069
},
"TerritoryId": 960,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -0,0 +1,56 @@
{
"Version": 1,
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1038043,
"Position": {
"X": 470.4203,
"Y": 437.00183,
"Z": 315.81592
},
"TerritoryId": 960,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 656.94653,
"Y": 437.98502,
"Z": 302.6322
},
"StopDistance": 0.5,
"TerritoryId": 960,
"InteractionType": "ManualAction",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14044
],
"Comment": "Can maybe be automated to use item depending on quest vars??"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1038043,
"Position": {
"X": 470.4203,
"Y": 437.00183,
"Z": 315.81592
},
"TerritoryId": 960,
"InteractionType": "Interact"
}
]
}
]
}

View File

@ -21,47 +21,6 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"Position": {
"X": -102.94707,
"Y": -29.933468,
"Z": 674.6727
},
"TerritoryId": 956,
"InteractionType": "WalkTo"
},
{
"Position": {
"X": -118.62926,
"Y": -22.071072,
"Z": 681.35846
},
"TerritoryId": 956,
"InteractionType": "ManualAction",
"DisableNavmesh": true,
"Comment": "Navmesh can't jump"
},
{
"DataId": 2011986,
"Position": {
"X": -128.06903,
"Y": -20.523438,
"Z": 676.7223
},
"TerritoryId": 956,
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818317
},
{
"Position": {
"X": -114.01625,
"Y": -30.313616,
"Z": 670.05585
},
"TerritoryId": 956,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{ {
"Position": { "Position": {
"X": 79.66557, "X": 79.66557,
@ -69,7 +28,8 @@
"Z": 457.04776 "Z": 457.04776
}, },
"TerritoryId": 956, "TerritoryId": 956,
"InteractionType": "WalkTo" "InteractionType": "WalkTo",
"Comment": "TODO verify this is correct, there was an aether current prior to this"
}, },
{ {
"DataId": 2011989, "DataId": 2011989,

View File

@ -83,6 +83,47 @@
"InteractionType": "AttuneAetherCurrent", "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818316 "AetherCurrentId": 2818316
}, },
{
"Position": {
"X": -102.94707,
"Y": -29.933468,
"Z": 674.6727
},
"TerritoryId": 956,
"InteractionType": "WalkTo"
},
{
"Position": {
"X": -118.62926,
"Y": -22.071072,
"Z": 681.35846
},
"TerritoryId": 956,
"InteractionType": "ManualAction",
"DisableNavmesh": true,
"Comment": "Navmesh can't jump"
},
{
"DataId": 2011986,
"Position": {
"X": -128.06903,
"Y": -20.523438,
"Z": 676.7223
},
"TerritoryId": 956,
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818317
},
{
"Position": {
"X": -114.01625,
"Y": -30.313616,
"Z": 670.05585
},
"TerritoryId": 956,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{ {
"DataId": 1040455, "DataId": 1040455,
"Position": { "Position": {

View File

@ -20,6 +20,16 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"Position": {
"X": 5.4520116,
"Y": -28.723352,
"Z": -42.992764
},
"AetheryteShortcut": "Labyrinthos - Sharlayan Hamlet",
"TerritoryId": 956,
"InteractionType": "WalkTo"
},
{ {
"DataId": 2012226, "DataId": 2012226,
"Position": { "Position": {
@ -58,7 +68,8 @@
"Z": 301.93018 "Z": 301.93018
}, },
"TerritoryId": 956, "TerritoryId": 956,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Labyrinthos - Aporia"
} }
] ]
}, },

View File

@ -1,7 +1,6 @@
{ {
"Version": 1, "Version": 1,
"Author": "liza", "Author": "liza",
"Comment": "Sequence 2 is 'Enter' dungeon, Sequence 3 is 'Clear' dungeon",
"QuestSequence": [ "QuestSequence": [
{ {
"Sequence": 0, "Sequence": 0,
@ -91,6 +90,7 @@
}, },
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact", "InteractionType": "Interact",
"StopDistance": 5,
"AethernetShortcut": [ "AethernetShortcut": [
"[Old Sharlayan] The Rostra", "[Old Sharlayan] The Rostra",
"[Old Sharlayan] The Baldesion Annex" "[Old Sharlayan] The Baldesion Annex"

View File

@ -12,6 +12,7 @@
"Y": 3.9334679, "Y": 3.9334679,
"Z": 1.3884888 "Z": 1.3884888
}, },
"StopDistance": 7,
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -96,6 +97,7 @@
"Y": 5.1499996, "Y": 5.1499996,
"Z": -65.87323 "Z": -65.87323
}, },
"StopDistance": 5,
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact" "InteractionType": "Interact"
} }

View File

@ -65,6 +65,7 @@
"Y": -13.777, "Y": -13.777,
"Z": 149.70618 "Z": 149.70618
}, },
"StopDistance": 5,
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -114,8 +115,13 @@
"Y": 4.357494, "Y": 4.357494,
"Z": 0.7476196 "Z": 0.7476196
}, },
"StopDistance": 5,
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact" "InteractionType": "Interact",
"AethernetShortcut": [
"[Old Sharlayan] The Leveilleur Estate",
"[Old Sharlayan] The Baldesion Annex"
]
} }
] ]
} }

View File

@ -12,6 +12,7 @@
"Y": 4.357494, "Y": 4.357494,
"Z": 0.7476196 "Z": 0.7476196
}, },
"StopDistance": 5,
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -29,6 +30,7 @@
}, },
"TerritoryId": 956, "TerritoryId": 956,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Labyrinthos - Aporia",
"SkipIf": [ "SkipIf": [
"FlyingUnlocked" "FlyingUnlocked"
] ]
@ -41,7 +43,8 @@
"Z": 301.56396 "Z": 301.56396
}, },
"TerritoryId": 956, "TerritoryId": 956,
"InteractionType": "Interact" "InteractionType": "Interact",
"Fly": true
} }
] ]
}, },
@ -70,6 +73,7 @@
"Y": 80.7959, "Y": 80.7959,
"Z": 607.6904 "Z": 607.6904
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }

View File

@ -12,6 +12,7 @@
"Y": 80.86001, "Y": 80.86001,
"Z": 606.53076 "Z": 606.53076
}, },
"StopDistance": 7,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -43,7 +44,9 @@
"Z": 533.6842 "Z": 533.6842
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 16 1 0 0 0 128"
}, },
{ {
"DataId": 1040292, "DataId": 1040292,
@ -53,7 +56,9 @@
"Z": 554.4059 "Z": 554.4059
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[2]",
"$.2": "QuestVariables if done after [1]: 33 1 0 0 0 192"
}, },
{ {
"DataId": 1040293, "DataId": 1040293,

View File

@ -12,6 +12,7 @@
"Y": 73.47535, "Y": 73.47535,
"Z": 309.86487 "Z": 309.86487
}, },
"StopDistance": 7,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -27,8 +28,11 @@
"Y": 72.5362, "Y": 72.5362,
"Z": 332.23462 "Z": 332.23462
}, },
"StopDistance": 8,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 1 0 0 0 0 64"
}, },
{ {
"DataId": 1038008, "DataId": 1038008,
@ -37,8 +41,11 @@
"Y": 78.6382, "Y": 78.6382,
"Z": 303.8529 "Z": 303.8529
}, },
"StopDistance": 8,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[2]",
"$.1": "QuestVariables if done after [1]: 2 0 0 0 0 96"
}, },
{ {
"DataId": 179, "DataId": 179,
@ -47,6 +54,7 @@
"Y": 74.34187, "Y": 74.34187,
"Z": 269.6726 "Z": 269.6726
}, },
"StopDistance": 10,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetheryte" "InteractionType": "AttuneAetheryte"
}, },
@ -57,6 +65,7 @@
"Y": 88.871994, "Y": 88.871994,
"Z": 207.35486 "Z": 207.35486
}, },
"StopDistance": 8,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -88,17 +97,9 @@
"Z": -30.71643 "Z": -30.71643
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
}, "$.0": "[1]",
{ "$.1": "QuestVariables if done first: 1 0 0 0 0 ??"
"DataId": 2012283,
"Position": {
"X": -465.1103,
"Y": 56.47351,
"Z": -30.71643
},
"TerritoryId": 960,
"InteractionType": "Interact"
}, },
{ {
"DataId": 2012282, "DataId": 2012282,
@ -108,6 +109,18 @@
"Z": -33.676758 "Z": -33.676758
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done after [1]: 2 0 0 0 0 ??"
},
{
"DataId": 2012281,
"Position": {
"X": -472.25153,
"Y": 56.26001,
"Z": -20.676025
},
"TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
] ]
@ -137,8 +150,10 @@
"Y": 64.78333, "Y": 64.78333,
"Z": -200.3357 "Z": -200.3357
}, },
"StopDistance": 1,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Combat", "InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
14002 14002
] ]

View File

@ -28,7 +28,8 @@
"Z": 273.9757 "Z": 273.9757
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Reah Tahra"
} }
] ]
}, },
@ -42,6 +43,7 @@
"Y": 59.814697, "Y": 59.814697,
"Z": 55.954834 "Z": 55.954834
}, },
"StopDistance": 8,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -82,6 +84,7 @@
"Y": 232.19641, "Y": 232.19641,
"Z": -253.10144 "Z": -253.10144
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }

View File

@ -12,6 +12,7 @@
"Y": 232.2548, "Y": 232.2548,
"Z": -252.8573 "Z": -252.8573
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -58,7 +59,8 @@
"Z": -361.50153 "Z": -361.50153
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818389
}, },
{ {
"DataId": 2012035, "DataId": 2012035,
@ -68,7 +70,8 @@
"Z": -295.15533 "Z": -295.15533
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818394
}, },
{ {
"DataId": 1040317, "DataId": 1040317,
@ -78,7 +81,8 @@
"Z": -312.58112 "Z": -312.58112
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"DisableNavmesh": true
} }
] ]
}, },
@ -107,8 +111,11 @@
"Y": 272.51086, "Y": 272.51086,
"Z": -600.7019 "Z": -600.7019
}, },
"StopDistance": 4,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 1 0 0 0 0 128"
}, },
{ {
"DataId": 2012355, "DataId": 2012355,
@ -117,8 +124,11 @@
"Y": 272.4497, "Y": 272.4497,
"Z": -616.4492 "Z": -616.4492
}, },
"StopDistance": 4,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[2]",
"$.1": "QuestVariables if done after [1]: 2 0 0 0 0 192"
}, },
{ {
"DataId": 180, "DataId": 180,
@ -127,6 +137,7 @@
"Y": 272.48022, "Y": 272.48022,
"Z": -657.49603 "Z": -657.49603
}, },
"StopDistance": 8,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetheryte" "InteractionType": "AttuneAetheryte"
}, },
@ -137,8 +148,11 @@
"Y": 272.99915, "Y": 272.99915,
"Z": -617.853 "Z": -617.853
}, },
"StopDistance": 4,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[3]",
"$.1": "QuestVariables if done after [2]: 3 0 0 0 0 224"
}, },
{ {
"DataId": 2012357, "DataId": 2012357,
@ -147,8 +161,11 @@
"Y": 272.9381, "Y": 272.9381,
"Z": -592.5841 "Z": -592.5841
}, },
"StopDistance": 4,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[4]",
"$.1": "QuestVariables if done first: TODO"
} }
] ]
}, },

View File

@ -72,6 +72,7 @@
"Y": 269.0949, "Y": 269.0949,
"Z": -491.66098 "Z": -491.66098
}, },
"StopDistance": 7,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }

View File

@ -12,6 +12,7 @@
"Y": 269.0903, "Y": 269.0903,
"Z": -490.44025 "Z": -490.44025
}, },
"StopDistance": 7,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -50,6 +51,35 @@
{ {
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [
{
"Position": {
"X": -353.82343,
"Y": 263.4366,
"Z": -458.5238
},
"TerritoryId": 960,
"InteractionType": "WalkTo",
"Mount": true
},
{
"Position": {
"X": -394.40567,
"Y": 266.7831,
"Z": -478.6604
},
"TerritoryId": 960,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"Position": {
"X": -408.86514,
"Y": 266.81473,
"Z": -519.4911
},
"TerritoryId": 960,
"InteractionType": "WalkTo"
},
{ {
"DataId": 2012036, "DataId": 2012036,
"Position": { "Position": {
@ -58,7 +88,21 @@
"Z": -629.8772 "Z": -629.8772
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818395
},
{
"DataId": 2012031,
"Position": {
"X": 13.107483,
"Y": 275.56262,
"Z": -756.40497
},
"TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent",
"AetheryteShortcut": "Ultima Thule - Abode of the Ea",
"AetherCurrentId": 2818390,
"Comment": "TODO Verify"
}, },
{ {
"DataId": 1039778, "DataId": 1039778,

View File

@ -12,6 +12,7 @@
"Y": 269.0203, "Y": 269.0203,
"Z": -633.5393 "Z": -633.5393
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -20,6 +21,17 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"DataId": 2012034,
"Position": {
"X": 424.55164,
"Y": 283.37524,
"Z": -679.7742
},
"TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818393
},
{ {
"DataId": 1039787, "DataId": 1039787,
"Position": { "Position": {
@ -54,6 +66,7 @@
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Combat", "InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
14000, 14000,
14001 14001
@ -86,6 +99,7 @@
"Y": 439.695, "Y": 439.695,
"Z": 155.59619 "Z": 155.59619
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -118,6 +132,7 @@
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Combat", "InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [ "KillEnemyDataIds": [
13999 13999
] ]
@ -135,7 +150,8 @@
"Z": 239.39868 "Z": 239.39868
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818392
}, },
{ {
"DataId": 1039791, "DataId": 1039791,
@ -194,29 +210,10 @@
"Y": 437.5829, "Y": 437.5829,
"Z": 333.63843 "Z": 333.63843
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetheryte" "InteractionType": "AttuneAetheryte"
}, },
{
"DataId": 2012031,
"Position": {
"X": 13.107483,
"Y": 275.56262,
"Z": -756.40497
},
"TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent"
},
{
"DataId": 2012034,
"Position": {
"X": 424.55164,
"Y": 283.37524,
"Z": -679.7742
},
"TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent"
},
{ {
"DataId": 1039791, "DataId": 1039791,
"Position": { "Position": {

View File

@ -12,6 +12,7 @@
"Y": 437.9998, "Y": 437.9998,
"Z": 301.4419 "Z": 301.4419
}, },
"StopDistance": 5,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -28,7 +29,8 @@
"Z": 402.12085 "Z": 402.12085
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818398
}, },
{ {
"DataId": 2012032, "DataId": 2012032,
@ -38,7 +40,8 @@
"Z": 411.73413 "Z": 411.73413
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818391
}, },
{ {
"DataId": 1040343, "DataId": 1040343,
@ -110,7 +113,16 @@
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent", "InteractionType": "AttuneAetherCurrent",
"Comment": "Unsure if this is the right spot" "AetherCurrentId": 2818396
},
{
"Position": {
"X": 639.9123,
"Y": 438.7276,
"Z": 293.33954
},
"TerritoryId": 960,
"InteractionType": "WalkTo"
}, },
{ {
"DataId": 2012038, "DataId": 2012038,
@ -120,7 +132,9 @@
"Z": 289.66187 "Z": 289.66187
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "AttuneAetherCurrent" "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818397,
"DisableNavmesh": true
}, },
{ {
"DataId": 1040349, "DataId": 1040349,

View File

@ -28,7 +28,8 @@
"Z": 303.8529 "Z": 303.8529
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Base Omicron"
} }
] ]
}, },
@ -44,7 +45,7 @@
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "ManualAction", "InteractionType": "ManualAction",
"Comment": "Identify Anomaly (Elbow)" "Comment": "Identify Anomaly (Elbow/Knee)"
} }
] ]
}, },

View File

@ -28,7 +28,8 @@
"Z": 360.46387 "Z": 360.46387
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Base Omicron"
} }
] ]
}, },
@ -82,6 +83,7 @@
"Y": 566, "Y": 566,
"Z": 317.96698 "Z": 317.96698
}, },
"StopDistance": 1,
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact"
} }

View File

@ -28,7 +28,9 @@
"Z": 296.98633 "Z": 296.98633
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 16 0 0 16 0 128"
}, },
{ {
"DataId": 2012367, "DataId": 2012367,
@ -38,7 +40,9 @@
"Z": 240.03955 "Z": 240.03955
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[2]",
"$.1": "QuestVariables if done after [1]: 32 16 0 16 0 144"
}, },
{ {
"DataId": 2012368, "DataId": 2012368,
@ -48,7 +52,9 @@
"Z": 280.93384 "Z": 280.93384
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[3]",
"$.1": "QuestVariables if done after [1, 2]: 48 17 0 16 0 152"
}, },
{ {
"DataId": 2012366, "DataId": 2012366,
@ -58,7 +64,9 @@
"Z": 295.97925 "Z": 295.97925
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[4]",
"$.1": "QuestVariables if done after [1, 2, 3]: 65 17 0 16 0 184"
}, },
{ {
"DataId": 2012369, "DataId": 2012369,
@ -68,7 +76,9 @@
"Z": 297.16943 "Z": 297.16943
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[5]",
"$.1": "QuestVariables if done after [1, 2, 3, 4]: 81 17 16 16 0 188"
}, },
{ {
"DataId": 2012365, "DataId": 2012365,
@ -121,8 +131,8 @@
"Y": 637.1029, "Y": 637.1029,
"Z": 2.690414 "Z": 2.690414
}, },
"TerritoryId": 960, "TerritoryId": 1027,
"InteractionType": "Interact" "InteractionType": "WalkTo"
} }
] ]
}, },

View File

@ -46,6 +46,7 @@
"Y": 0, "Y": 0,
"Z": 106 "Z": 106
}, },
"StopDistance": 5,
"TerritoryId": 1029, "TerritoryId": 1029,
"InteractionType": "ManualAction", "InteractionType": "ManualAction",
"Comment": "Duty - The Final Day" "Comment": "Duty - The Final Day"
@ -78,8 +79,11 @@
"Y": 0, "Y": 0,
"Z": 0.8086548 "Z": 0.8086548
}, },
"StopDistance": 5,
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[1]",
"$.1": "QuestVariables if done first: 1 0 0 0 0 1"
}, },
{ {
"DataId": 1041181, "DataId": 1041181,
@ -88,8 +92,11 @@
"Y": 0, "Y": 0,
"Z": 0.6560669 "Z": 0.6560669
}, },
"StopDistance": 5,
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[2]",
"$.1": "QuestVariables if done after [1]: 2 0 0 0 0 129"
}, },
{ {
"DataId": 1041182, "DataId": 1041182,
@ -99,7 +106,9 @@
"Z": -4.7455444 "Z": -4.7455444
}, },
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[3]",
"$.1": "QuestVariables if done after [1, 2]: 3 0 0 0 0 193"
}, },
{ {
"DataId": 1041184, "DataId": 1041184,
@ -108,8 +117,11 @@
"Y": 0, "Y": 0,
"Z": -5.8442383 "Z": -5.8442383
}, },
"StopDistance": 5,
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[4]",
"$.1": "QuestVariables if done after [1, 2, 3]: 4 0 0 0 0 209"
}, },
{ {
"DataId": 1041183, "DataId": 1041183,
@ -119,7 +131,9 @@
"Z": -6.790344 "Z": -6.790344
}, },
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[5]",
"$.1": "QuestVariables if done after [1, 2, 3, 4]: 5 0 0 0 0 241"
}, },
{ {
"DataId": 1041187, "DataId": 1041187,
@ -129,7 +143,9 @@
"Z": -8.255188 "Z": -8.255188
}, },
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[6]",
"$.1": "QuestVariables if done after [1, 2, 3, 4, 5]: 6 0 0 0 0 243"
}, },
{ {
"DataId": 1041185, "DataId": 1041185,
@ -139,7 +155,9 @@
"Z": -5.7526855 "Z": -5.7526855
}, },
"TerritoryId": 351, "TerritoryId": 351,
"InteractionType": "Interact" "InteractionType": "Interact",
"$.0": "[7]",
"$.1": "QuestVariables if done after [1, 2, 3, 4, 5, 6]: 7 0 0 0 0 251"
}, },
{ {
"DataId": 1041186, "DataId": 1041186,

View File

@ -29,6 +29,7 @@
}, },
"TerritoryId": 963, "TerritoryId": 963,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Radz-at-Han",
"AethernetShortcut": [ "AethernetShortcut": [
"[Radz-at-Han] Aetheryte Plaza", "[Radz-at-Han] Aetheryte Plaza",
"[Radz-at-Han] Mehryde's Meyhane" "[Radz-at-Han] Mehryde's Meyhane"
@ -77,6 +78,7 @@
"Y": -3.2177195E-06, "Y": -3.2177195E-06,
"Z": -13.687378 "Z": -13.687378
}, },
"StopDistance": 5,
"TerritoryId": 963, "TerritoryId": 963,
"InteractionType": "Interact" "InteractionType": "Interact"
} }
@ -93,7 +95,9 @@
"Z": 570.94666 "Z": 570.94666
}, },
"TerritoryId": 957, "TerritoryId": 957,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"Fly": true
} }
] ]
} }

View File

@ -27,8 +27,10 @@
"Y": 4.357494, "Y": 4.357494,
"Z": 0.7476196 "Z": 0.7476196
}, },
"StopDistance": 5,
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Old Sharlayan",
"AethernetShortcut": [ "AethernetShortcut": [
"[Old Sharlayan] Aetheryte Plaza", "[Old Sharlayan] Aetheryte Plaza",
"[Old Sharlayan] The Baldesion Annex" "[Old Sharlayan] The Baldesion Annex"
@ -39,6 +41,19 @@
{ {
"Sequence": 2, "Sequence": 2,
"Steps": [ "Steps": [
{
"Position": {
"X": -350.9551,
"Y": 18.999998,
"Z": 56.043774
},
"TerritoryId": 962,
"InteractionType": "WalkTo",
"AethernetShortcut": [
"[Old Sharlayan] The Baldesion Annex",
"[Old Sharlayan] The Studium"
]
},
{ {
"DataId": 1039581, "DataId": 1039581,
"Position": { "Position": {
@ -47,11 +62,7 @@
"Z": 92.48486 "Z": 92.48486
}, },
"TerritoryId": 962, "TerritoryId": 962,
"InteractionType": "Interact", "InteractionType": "Interact"
"AethernetShortcut": [
"[Old Sharlayan] The Baldesion Annex",
"[Old Sharlayan] The Studium"
]
} }
] ]
}, },
@ -67,6 +78,7 @@
}, },
"TerritoryId": 956, "TerritoryId": 956,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Labyrinthos - Aporia",
"SkipIf": [ "SkipIf": [
"FlyingUnlocked" "FlyingUnlocked"
] ]
@ -79,7 +91,8 @@
"Z": 298.39014 "Z": 298.39014
}, },
"TerritoryId": 956, "TerritoryId": 956,
"InteractionType": "Interact" "InteractionType": "Interact",
"Fly": true
} }
] ]
}, },
@ -94,7 +107,9 @@
"Z": 603.41797 "Z": 603.41797
}, },
"TerritoryId": 957, "TerritoryId": 957,
"InteractionType": "Interact" "InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"Fly": true
} }
] ]
} }

View File

@ -103,7 +103,7 @@
] ]
}, },
"Disabled": { "Disabled": {
"description": "Unused (TODO)", "description": "Whether this step is disabled (see SkipIf for more control)",
"type": "boolean" "type": "boolean"
}, },
"DisableNavmesh": { "DisableNavmesh": {
@ -301,7 +301,8 @@
"stretch", "stretch",
"wave", "wave",
"rally", "rally",
"deny" "deny",
"pray"
] ]
}, },
"ChatMessage": { "ChatMessage": {

View File

@ -57,6 +57,7 @@ internal sealed class DebugWindow : Window
{ {
ImGui.TextUnformatted($"Quest: {currentQuest.Quest.Name} / {currentQuest.Sequence} / {currentQuest.Step}"); ImGui.TextUnformatted($"Quest: {currentQuest.Quest.Name} / {currentQuest.Sequence} / {currentQuest.Step}");
ImGui.BeginDisabled();
var questWork = _gameFunctions.GetQuestEx(currentQuest.Quest.QuestId); var questWork = _gameFunctions.GetQuestEx(currentQuest.Quest.QuestId);
if (questWork != null) if (questWork != null)
{ {
@ -78,6 +79,7 @@ internal sealed class DebugWindow : Window
ImGui.TextUnformatted("(Not accepted)"); ImGui.TextUnformatted("(Not accepted)");
ImGui.TextUnformatted(_questController.DebugState ?? "--"); ImGui.TextUnformatted(_questController.DebugState ?? "--");
ImGui.EndDisabled();
ImGui.TextUnformatted(_questController.Comment ?? "--"); ImGui.TextUnformatted(_questController.Comment ?? "--");
var nextStep = _questController.GetNextStep(); var nextStep = _questController.GetNextStep();