forked from liza/Questionable
Merge pull request 'master' (#4) from master into Namazu-Dailies-v2
Reviewed-on: guffels/Questionable#4
This commit is contained in:
commit
3d4aa7e75f
@ -1,5 +1,5 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>4.13</Version>
|
||||
<PropertyGroup Condition="$(MSBuildProjectName) != 'GatheringPathRenderer'">
|
||||
<Version>4.15</Version>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
1
GatheringPathRenderer/.gitignore
vendored
Normal file
1
GatheringPathRenderer/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/dist
|
21
GatheringPathRenderer/DalamudPackager.targets
Normal file
21
GatheringPathRenderer/DalamudPackager.targets
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<Target Name="PackagePluginDebug" AfterTargets="Build" Condition="'$(Configuration)' == 'Debug'">
|
||||
<DalamudPackager
|
||||
ProjectDir="$(ProjectDir)"
|
||||
OutputPath="$(OutputPath)"
|
||||
AssemblyName="$(AssemblyName)"
|
||||
MakeZip="false"
|
||||
VersionComponents="2"/>
|
||||
</Target>
|
||||
|
||||
<Target Name="PackagePlugin" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
|
||||
<DalamudPackager
|
||||
ProjectDir="$(ProjectDir)"
|
||||
OutputPath="$(OutputPath)"
|
||||
AssemblyName="$(AssemblyName)"
|
||||
MakeZip="true"
|
||||
VersionComponents="2"
|
||||
Exclude="GatheringPathRenderer.deps.json;ECommons.xml;ECommons.pdb;LLib.pdb"/>
|
||||
</Target>
|
||||
</Project>
|
@ -1,4 +1,11 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/11.0.0">
|
||||
<PropertyGroup>
|
||||
<Version>0.1</Version>
|
||||
<OutputPath>dist</OutputPath>
|
||||
<PathMap Condition="$(SolutionDir) != ''">$(SolutionDir)=X:\</PathMap>
|
||||
<Platforms>x64</Platforms>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\LLib\LLib.csproj" />
|
||||
<ProjectReference Include="..\Questionable.Model\Questionable.Model.csproj" />
|
||||
@ -6,4 +13,5 @@
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="..\LLib\LLib.targets"/>
|
||||
<Import Project="..\LLib\RenameZip.targets"/>
|
||||
</Project>
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"Name": "GatheringPathRenderer",
|
||||
"Author": "Liza Carvelli",
|
||||
"Punchline": "dev only plugin: Renders gathering location.",
|
||||
"Description": "dev only plugin: Renders gathering location (without ECommons polluting the entire normal project)."
|
||||
"Punchline": "[Questionable dev plugin]: Renders gathering location.",
|
||||
"Description": "[Questionable dev plugin]: Renders gathering location using Splatoon.",
|
||||
"RepoUrl": "https://git.carvel.li/liza/Questionable/src/branch/master/GatheringPathRenderer"
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.Encodings.Web;
|
||||
@ -17,11 +18,11 @@ using ECommons.Schedulers;
|
||||
using ECommons.SplatoonAPI;
|
||||
using GatheringPathRenderer.Windows;
|
||||
using LLib.GameData;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Gathering;
|
||||
|
||||
namespace GatheringPathRenderer;
|
||||
|
||||
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
|
||||
public sealed class RendererPlugin : IDalamudPlugin
|
||||
{
|
||||
private const long OnTerritoryChange = -2;
|
||||
@ -56,8 +57,10 @@ public sealed class RendererPlugin : IDalamudPlugin
|
||||
|
||||
_editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui,
|
||||
configuration);
|
||||
_editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable)
|
||||
var configWindow = new ConfigWindow(pluginInterface, configuration);
|
||||
_editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable, configWindow)
|
||||
{ IsOpen = true };
|
||||
_windowSystem.AddWindow(configWindow);
|
||||
_windowSystem.AddWindow(_editorWindow);
|
||||
_currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer;
|
||||
|
||||
@ -78,6 +81,7 @@ public sealed class RendererPlugin : IDalamudPlugin
|
||||
{
|
||||
get
|
||||
{
|
||||
#if DEBUG
|
||||
DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent?.Parent;
|
||||
if (solutionDirectory != null)
|
||||
{
|
||||
@ -88,6 +92,12 @@ public sealed class RendererPlugin : IDalamudPlugin
|
||||
}
|
||||
|
||||
throw new Exception("Unable to resolve project path");
|
||||
#else
|
||||
var allPluginsDirectory = _pluginInterface.ConfigFile.Directory ?? throw new Exception("Unknown directory for plugin configs");
|
||||
return allPluginsDirectory
|
||||
.CreateSubdirectory("Questionable")
|
||||
.CreateSubdirectory("GatheringPaths");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,12 +113,18 @@ public sealed class RendererPlugin : IDalamudPlugin
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var expansionFolder in ExpansionData.ExpansionFolders.Values)
|
||||
#if DEBUG
|
||||
foreach (var expansionFolder in Questionable.Model.ExpansionData.ExpansionFolders.Values)
|
||||
LoadFromDirectory(
|
||||
new DirectoryInfo(Path.Combine(PathsDirectory.FullName, expansionFolder)));
|
||||
|
||||
_pluginLog.Information(
|
||||
$"Loaded {_gatheringLocations.Count} gathering root locations from project directory");
|
||||
#else
|
||||
LoadFromDirectory(PathsDirectory);
|
||||
_pluginLog.Information(
|
||||
$"Loaded {_gatheringLocations.Count} gathering root locations from {PathsDirectory.FullName} directory");
|
||||
#endif
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
33
GatheringPathRenderer/Windows/ConfigWindow.cs
Normal file
33
GatheringPathRenderer/Windows/ConfigWindow.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Plugin;
|
||||
using ImGuiNET;
|
||||
|
||||
namespace GatheringPathRenderer.Windows;
|
||||
|
||||
internal sealed class ConfigWindow : Window
|
||||
{
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
private readonly Configuration _configuration;
|
||||
|
||||
public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration)
|
||||
: base("Gathering Path Config", ImGuiWindowFlags.AlwaysAutoResize)
|
||||
{
|
||||
_pluginInterface = pluginInterface;
|
||||
_configuration = configuration;
|
||||
|
||||
AllowPinning = false;
|
||||
AllowClickthrough = false;
|
||||
}
|
||||
|
||||
public override void Draw()
|
||||
{
|
||||
string authorName = _configuration.AuthorName;
|
||||
if (ImGui.InputText("Author name for new files", ref authorName, 256))
|
||||
{
|
||||
_configuration.AuthorName = authorName;
|
||||
Save();
|
||||
}
|
||||
}
|
||||
|
||||
private void Save() => _pluginInterface.SavePluginConfig(_configuration);
|
||||
}
|
@ -6,6 +6,7 @@ using System.Numerics;
|
||||
using Dalamud.Game.ClientState.Objects;
|
||||
using Dalamud.Game.ClientState.Objects.Enums;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Interface;
|
||||
using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Plugin.Services;
|
||||
@ -32,8 +33,8 @@ internal sealed class EditorWindow : Window
|
||||
_targetLocation;
|
||||
|
||||
public EditorWindow(RendererPlugin plugin, EditorCommands editorCommands, IDataManager dataManager,
|
||||
ITargetManager targetManager, IClientState clientState, IObjectTable objectTable)
|
||||
: base("Gathering Path Editor###QuestionableGatheringPathEditor",
|
||||
ITargetManager targetManager, IClientState clientState, IObjectTable objectTable, ConfigWindow configWindow)
|
||||
: base($"Gathering Path Editor {typeof(EditorWindow).Assembly.GetName().Version!.ToString(2)}###QuestionableGatheringPathEditor",
|
||||
ImGuiWindowFlags.NoFocusOnAppearing | ImGuiWindowFlags.NoNavFocus | ImGuiWindowFlags.AlwaysAutoResize)
|
||||
{
|
||||
_plugin = plugin;
|
||||
@ -48,6 +49,20 @@ internal sealed class EditorWindow : Window
|
||||
MinimumSize = new Vector2(300, 100),
|
||||
};
|
||||
|
||||
TitleBarButtons.Add(new TitleBarButton
|
||||
{
|
||||
Icon = FontAwesomeIcon.Cog,
|
||||
IconOffset = new Vector2(1.5f, 1),
|
||||
Click = _ => configWindow.IsOpen = true,
|
||||
Priority = int.MinValue,
|
||||
ShowTooltip = () =>
|
||||
{
|
||||
ImGui.BeginTooltip();
|
||||
ImGui.Text("Open Configuration");
|
||||
ImGui.EndTooltip();
|
||||
}
|
||||
});
|
||||
|
||||
RespectCloseHotkey = false;
|
||||
ShowCloseButton = false;
|
||||
AllowPinning = false;
|
||||
|
@ -0,0 +1,138 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
|
||||
"Author": "liza",
|
||||
"Steps": [
|
||||
{
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "None"
|
||||
}
|
||||
],
|
||||
"Groups": [
|
||||
{
|
||||
"Nodes": [
|
||||
{
|
||||
"DataId": 34920,
|
||||
"Locations": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 192.6021,
|
||||
"Y": 12.31054,
|
||||
"Z": 631.2545
|
||||
}
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 194.8373,
|
||||
"Y": 12.50387,
|
||||
"Z": 646.5401
|
||||
}
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 180.8447,
|
||||
"Y": 12.43262,
|
||||
"Z": 610.7131
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 34919,
|
||||
"Locations": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 186.171,
|
||||
"Y": 12.54104,
|
||||
"Z": 634.9042
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Nodes": [
|
||||
{
|
||||
"DataId": 34917,
|
||||
"Locations": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 39.45634,
|
||||
"Y": -0.06042051,
|
||||
"Z": 502.3853
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 34918,
|
||||
"Locations": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 46.03248,
|
||||
"Y": -0.7049216,
|
||||
"Z": 491.6059
|
||||
}
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 36.15481,
|
||||
"Y": -0.0501074,
|
||||
"Z": 505.9388
|
||||
}
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 24.72226,
|
||||
"Y": 0.5922582,
|
||||
"Z": 528.0809
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Nodes": [
|
||||
{
|
||||
"DataId": 34922,
|
||||
"Locations": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 2.302937,
|
||||
"Y": -4.586716,
|
||||
"Z": 687.4797
|
||||
}
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 30.02284,
|
||||
"Y": -2.447479,
|
||||
"Z": 704.4326
|
||||
}
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 41.59287,
|
||||
"Y": -0.8454803,
|
||||
"Z": 692.0099
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 34921,
|
||||
"Locations": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 18.47237,
|
||||
"Y": -2.987581,
|
||||
"Z": 690.8011
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
29
QuestPathGenerator/RoslynElements/CombatItemUseExtensions.cs
Normal file
29
QuestPathGenerator/RoslynElements/CombatItemUseExtensions.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||
using Questionable.Model.Questing;
|
||||
using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory;
|
||||
using static Questionable.QuestPathGenerator.RoslynShortcuts;
|
||||
|
||||
namespace Questionable.QuestPathGenerator.RoslynElements;
|
||||
|
||||
internal static class CombatItemUseExtensions
|
||||
{
|
||||
public static ExpressionSyntax ToExpressionSyntax(this CombatItemUse combatItemuse)
|
||||
{
|
||||
var emptyItemuse = new CombatItemUse();
|
||||
return ObjectCreationExpression(
|
||||
IdentifierName(nameof(CombatItemUse)))
|
||||
.WithInitializer(
|
||||
InitializerExpression(
|
||||
SyntaxKind.ObjectInitializerExpression,
|
||||
SeparatedList<ExpressionSyntax>(
|
||||
SyntaxNodeList(
|
||||
Assignment(nameof(CombatItemUse.ItemId), combatItemuse.ItemId,
|
||||
emptyItemuse.ItemId)
|
||||
.AsSyntaxNodeOrToken(),
|
||||
Assignment(nameof(CombatItemUse.Condition), combatItemuse.Condition, emptyItemuse.Condition)
|
||||
.AsSyntaxNodeOrToken(),
|
||||
Assignment(nameof(combatItemuse.Value), combatItemuse.Value, emptyItemuse.Value)
|
||||
.AsSyntaxNodeOrToken()))));
|
||||
}
|
||||
}
|
@ -107,6 +107,9 @@ internal static class QuestStepExtensions
|
||||
.AsSyntaxNodeOrToken(),
|
||||
AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData)
|
||||
.AsSyntaxNodeOrToken(),
|
||||
Assignment(nameof(QuestStep.CombatItemUse), step.CombatItemUse,
|
||||
emptyStep.CombatItemUse)
|
||||
.AsSyntaxNodeOrToken(),
|
||||
Assignment(nameof(QuestStep.CombatDelaySecondsAtStart),
|
||||
step.CombatDelaySecondsAtStart,
|
||||
emptyStep.CombatDelaySecondsAtStart)
|
||||
|
@ -71,6 +71,7 @@ public static class RoslynShortcuts
|
||||
GatheringNodeGroup nodeGroup => nodeGroup.ToExpressionSyntax(),
|
||||
GatheringNode nodeLocation => nodeLocation.ToExpressionSyntax(),
|
||||
GatheringLocation location => location.ToExpressionSyntax(),
|
||||
CombatItemUse combatItemUse => combatItemUse.ToExpressionSyntax(),
|
||||
not null when value.GetType().IsEnum => MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
|
||||
IdentifierName(value.GetType().Name), IdentifierName(value.GetType().GetEnumName(value)!)),
|
||||
_ => throw new Exception($"Unsupported data type {value.GetType()} = {value}")
|
||||
|
@ -36,6 +36,16 @@
|
||||
"InteractionType": "WalkTo",
|
||||
"TargetTerritoryId": 146
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -47.50145,
|
||||
"Y": 16.362688,
|
||||
"Z": -439.62503
|
||||
},
|
||||
"TerritoryId": 146,
|
||||
"InteractionType": "WalkTo",
|
||||
"$": "vnav sometimes attempts to walk to the aetheryte using exactly one waypoint between zone boundary and aetheryte, which means walking into walls"
|
||||
},
|
||||
{
|
||||
"TerritoryId": 146,
|
||||
"InteractionType": "AttuneAetheryte",
|
||||
|
@ -103,7 +103,8 @@
|
||||
},
|
||||
"TerritoryId": 155,
|
||||
"InteractionType": "WalkTo",
|
||||
"$": "NW Skyfire Locks door (inside)"
|
||||
"$": "NW Skyfire Locks door (inside)",
|
||||
"Mount": true
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
|
@ -49,7 +49,8 @@
|
||||
},
|
||||
"TerritoryId": 155,
|
||||
"InteractionType": "WalkTo",
|
||||
"Comment": "North Whitebrim, Stairs (bottom)"
|
||||
"Comment": "North Whitebrim, Stairs (bottom)",
|
||||
"Mount": true
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
|
@ -35,10 +35,13 @@
|
||||
"Z": 89.58569
|
||||
},
|
||||
"TerritoryId": 155,
|
||||
"InteractionType": "Instruction",
|
||||
"Comment": "Use Quest item on enemy to weaken it first",
|
||||
"$": "Status Effects: 22 (HP Penalty) + 62 (Damage Down)",
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"CombatItemUse": {
|
||||
"ItemId": 2000961,
|
||||
"Condition": "MissingStatus",
|
||||
"Value": 22
|
||||
},
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 2196
|
||||
|
@ -76,6 +76,15 @@
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 303.96317,
|
||||
"Y": -36.40591,
|
||||
"Z": 316.74185
|
||||
},
|
||||
"TerritoryId": 138,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 1006501,
|
||||
"Position": {
|
||||
|
@ -26,6 +26,15 @@
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 303.96317,
|
||||
"Y": -36.40591,
|
||||
"Z": 316.74185
|
||||
},
|
||||
"TerritoryId": 138,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 1007640,
|
||||
"Position": {
|
||||
|
@ -19,6 +19,7 @@
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Comment": "'Invalid target' messages can just be bad positioning?",
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
@ -52,7 +53,6 @@
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterItemUse",
|
||||
"ItemId": 2000766,
|
||||
"GroundTarget": true,
|
||||
"KillEnemyDataIds": [
|
||||
46
|
||||
],
|
||||
@ -86,6 +86,27 @@
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -219.34567,
|
||||
"Y": 4.551038,
|
||||
"Z": -637.8296
|
||||
},
|
||||
"TerritoryId": 156,
|
||||
"InteractionType": "WalkTo",
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
8
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 2002234,
|
||||
"Position": {
|
||||
@ -161,7 +182,6 @@
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterItemUse",
|
||||
"ItemId": 2000766,
|
||||
"GroundTarget": true,
|
||||
"KillEnemyDataIds": [
|
||||
46
|
||||
],
|
||||
|
@ -72,7 +72,7 @@
|
||||
"Z": -609.4606
|
||||
},
|
||||
"TerritoryId": 156,
|
||||
"InteractionType": "UseItem",
|
||||
"InteractionType": "SinglePlayerDuty",
|
||||
"ItemId": 2000771
|
||||
}
|
||||
]
|
||||
|
@ -57,7 +57,7 @@
|
||||
},
|
||||
"TerritoryId": 152,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 0.1,
|
||||
"StopDistance": 0.25,
|
||||
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
@ -83,7 +83,7 @@
|
||||
},
|
||||
"TerritoryId": 152,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 0.1,
|
||||
"StopDistance": 0.25,
|
||||
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
@ -109,7 +109,7 @@
|
||||
},
|
||||
"TerritoryId": 152,
|
||||
"InteractionType": "Interact",
|
||||
"StopDistance": 0.1,
|
||||
"StopDistance": 0.25,
|
||||
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
|
@ -0,0 +1,61 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012145,
|
||||
"Position": {
|
||||
"X": -607.7516,
|
||||
"Y": -176.4502,
|
||||
"Z": -527.5502
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -441.42657,
|
||||
"Y": -167.25401,
|
||||
"Z": -432.4462
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4093,
|
||||
"MinimumKillCount": 5
|
||||
}
|
||||
],
|
||||
"Fly": true,
|
||||
"$": "5 in close range here, so if any dead it might be a little slower.",
|
||||
"$.1": "this is the area the quest suggests; there /are/ spinner-rooks sooner, and walking there at level w/o flying might cause interruption, but they're more spread out everywhere else - YMMV."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012145,
|
||||
"Position": {
|
||||
"X": -607.7516,
|
||||
"Y": -176.4502,
|
||||
"Z": -527.5502
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012146,
|
||||
"Position": {
|
||||
"X": -643.76294,
|
||||
"Y": -176.4502,
|
||||
"Z": -527.3976
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -439.6144,
|
||||
"Y": -186.3405,
|
||||
"Z": -617.2911
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4092,
|
||||
"MinimumKillCount": 5
|
||||
}
|
||||
],
|
||||
"Fly": true,
|
||||
"$": "by starting here we can guarantee a more sane straightline progression instead of starting in the middle, going all the way to one side, then running all the way to the other side."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012146,
|
||||
"Position": {
|
||||
"X": -643.76294,
|
||||
"Y": -176.4502,
|
||||
"Z": -527.3976
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Azys Lla - Helix"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012147,
|
||||
"Position": {
|
||||
"X": -426.627,
|
||||
"Y": -162.1281,
|
||||
"Z": -328.6031
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -528.74396,
|
||||
"Y": -143.65883,
|
||||
"Z": -580.686
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"KillEnemyDataIds": [4503],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012147,
|
||||
"Position": {
|
||||
"X": -426.627,
|
||||
"Y": -162.1281,
|
||||
"Z": -328.6031
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012148,
|
||||
"Position": {
|
||||
"X": -173.2663,
|
||||
"Y": -162.03395,
|
||||
"Z": -510.39905
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -189.43037,
|
||||
"Y": -160.1837,
|
||||
"Z": -499.3027
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4091,
|
||||
"MinimumKillCount": 3,
|
||||
"$": "Slay clockwork paladins."
|
||||
},
|
||||
{
|
||||
"DataId": 4090,
|
||||
"MinimumKillCount": 3,
|
||||
"$": "Slay clockwork engineers."
|
||||
}
|
||||
],
|
||||
"$": "they're all around so we can just start here. possible issue with a FATE spawning here, YMMV."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012148,
|
||||
"Position": {
|
||||
"X": -173.2663,
|
||||
"Y": -162.03395,
|
||||
"Z": -510.39905
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012289,
|
||||
"Position": {
|
||||
"X": 231.18933,
|
||||
"Y": -72.92926,
|
||||
"Z": -603.1434
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 517.51276,
|
||||
"Y": -40.378292,
|
||||
"Z": -785.99677
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4141,
|
||||
"MinimumKillCount": 2
|
||||
}
|
||||
],
|
||||
"Fly": true,
|
||||
"$": "FATE spawns on top of the suggested area, so we move a bit east."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012289,
|
||||
"Position": {
|
||||
"X": 231.18933,
|
||||
"Y": -72.92926,
|
||||
"Z": -603.1434
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012290,
|
||||
"Position": {
|
||||
"X": 760.5248,
|
||||
"Y": -30.307041,
|
||||
"Z": -579.67505
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 668.9029,
|
||||
"Y": -86.006,
|
||||
"Z": -775.5664
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4046,
|
||||
"MinimumKillCount": 4
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012290,
|
||||
"Position": {
|
||||
"X": 760.5248,
|
||||
"Y": -30.307041,
|
||||
"Z": -579.67505
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012291,
|
||||
"Position": {
|
||||
"X": 804.074,
|
||||
"Y": -26.326342,
|
||||
"Z": -527.48914
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 355.31863,
|
||||
"Y": -46.22946,
|
||||
"Z": -507.70428
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4072,
|
||||
"MinimumKillCount": 4
|
||||
}
|
||||
],
|
||||
"Fly": true,
|
||||
"$": "we go to the west of the marked area to avoid idling in the FATE that spawns on the east of it; we'll still path through it when we expend all the westward mobs, but that's just how they spawn, shrugging emoji."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012291,
|
||||
"Position": {
|
||||
"X": 804.074,
|
||||
"Y": -26.326342,
|
||||
"Z": -527.48914
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012292,
|
||||
"Position": {
|
||||
"X": 583.9779,
|
||||
"Y": 10.93506,
|
||||
"Z": 100.02283
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 773.4017,
|
||||
"Y": -0.06258035,
|
||||
"Z": 147.04689
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"KillEnemyDataIds": [4669, 4970, 4671, 4672, 4673],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012292,
|
||||
"Position": {
|
||||
"X": 583.9779,
|
||||
"Y": 10.93506,
|
||||
"Z": 100.02283
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012293,
|
||||
"Position": {
|
||||
"X": 573.4187,
|
||||
"Y": 13.072888,
|
||||
"Z": 329.2439
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 495.16974,
|
||||
"Y": 31.67624,
|
||||
"Z": 517.37463
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4083,
|
||||
"MinimumKillCount": 4
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012293,
|
||||
"Position": {
|
||||
"X": 573.4187,
|
||||
"Y": 13.072888,
|
||||
"Z": 329.2439
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,156 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012294,
|
||||
"Position": {
|
||||
"X": 366.4148,
|
||||
"Y": 20.214104,
|
||||
"Z": 756.7101
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 505.4667,
|
||||
"Y": 16.87959,
|
||||
"Z": 751.14856
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true,
|
||||
"$": "can get stuck on the spire structure when trying to land. could land elsewhere but we want to start with this one because it's the first on foot, so if done before flying unlocked that would necessitate walking directly past it.",
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 2005900,
|
||||
"Position": {
|
||||
"X": 506.76733,
|
||||
"Y": 16.861145,
|
||||
"Z": 750.24023
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005903,
|
||||
"Position": {
|
||||
"X": 544.64014,
|
||||
"Y": 15.945618,
|
||||
"Z": 760.61633
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
8
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005899,
|
||||
"Position": {
|
||||
"X": 545.4031,
|
||||
"Y": 20.2182,
|
||||
"Z": 802.8534
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005902,
|
||||
"Position": {
|
||||
"X": 614.6791,
|
||||
"Y": 20.2182,
|
||||
"Z": 758.938
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005901,
|
||||
"Position": {
|
||||
"X": 605.3406,
|
||||
"Y": 15.945618,
|
||||
"Z": 708.06433
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012294,
|
||||
"Position": {
|
||||
"X": 366.4148,
|
||||
"Y": 20.214104,
|
||||
"Z": 756.7101
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012295,
|
||||
"Position": {
|
||||
"X": 214.64856,
|
||||
"Y": 13.75853,
|
||||
"Z": 536.9801
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 144.31177,
|
||||
"Y": 5.9740877,
|
||||
"Z": 387.8086
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4630,
|
||||
"MinimumKillCount": 3
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012295,
|
||||
"Position": {
|
||||
"X": 214.64856,
|
||||
"Y": 13.75853,
|
||||
"Z": 536.9801
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012296,
|
||||
"Position": {
|
||||
"X": -658.32,
|
||||
"Y": -75.48534,
|
||||
"Z": 699.1531
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -345.30673,
|
||||
"Y": -89.61499,
|
||||
"Z": 353.53
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4075,
|
||||
"MinimumKillCount": 3
|
||||
}
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
{ "Low": 3 },
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
],
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -553.4664,
|
||||
"Y": -104.895905,
|
||||
"Z": 175.68343
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4668,
|
||||
"MinimumKillCount": 3
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012296,
|
||||
"Position": {
|
||||
"X": -658.32,
|
||||
"Y": -75.48534,
|
||||
"Z": 699.1531
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012297,
|
||||
"Position": {
|
||||
"X": -554.95544,
|
||||
"Y": -89.69182,
|
||||
"Z": 771.87756
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -679.16223,
|
||||
"Y": -48.151093,
|
||||
"Z": 542.7097
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4095,
|
||||
"MinimumKillCount": 4
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012297,
|
||||
"Position": {
|
||||
"X": -554.95544,
|
||||
"Y": -89.69182,
|
||||
"Z": 771.87756
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,116 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "goatzone",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012298,
|
||||
"Position": {
|
||||
"X": -192.67572,
|
||||
"Y": -102.749916,
|
||||
"Z": 476.9817
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -375.98807,
|
||||
"Y": -106.10026,
|
||||
"Z": 710.48956
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4493,
|
||||
"MinimumKillCount": 1
|
||||
}
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
],
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -372.88766,
|
||||
"Y": -105.78837,
|
||||
"Z": 746.95245
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4493,
|
||||
"MinimumKillCount": 1
|
||||
}
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -321.94852,
|
||||
"Y": -106.57244,
|
||||
"Z": 716.5662
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 4493,
|
||||
"MinimumKillCount": 1
|
||||
}
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012298,
|
||||
"Position": {
|
||||
"X": -192.67572,
|
||||
"Y": -102.749916,
|
||||
"Z": 476.9817
|
||||
},
|
||||
"TerritoryId": 402,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,126 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014133,
|
||||
"Position": {
|
||||
"X": -259.84595,
|
||||
"Y": 126.44779,
|
||||
"Z": 1.9073486
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006005,
|
||||
"Position": {
|
||||
"X": -157.70203,
|
||||
"Y": 110.73462,
|
||||
"Z": -52.414795
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2006006,
|
||||
"Position": {
|
||||
"X": -228.25977,
|
||||
"Y": 112.47424,
|
||||
"Z": -127.55017
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2006007,
|
||||
"Position": {
|
||||
"X": -348.10413,
|
||||
"Y": 116.50256,
|
||||
"Z": -91.93567
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014133,
|
||||
"Position": {
|
||||
"X": -259.84595,
|
||||
"Y": 126.44779,
|
||||
"Z": 1.9073486
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1764
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014134,
|
||||
"Position": {
|
||||
"X": -293.23267,
|
||||
"Y": 126.85495,
|
||||
"Z": 5.2643433
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014136,
|
||||
"Position": {
|
||||
"X": 292.74426,
|
||||
"Y": 132.44626,
|
||||
"Z": -244.73944
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 289.0053,
|
||||
"Y": 132.30807,
|
||||
"Z": -233.57523
|
||||
},
|
||||
"DataId": 4041,
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
4041
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014136,
|
||||
"Position": {
|
||||
"X": 292.74426,
|
||||
"Y": 132.44626,
|
||||
"Z": -244.73944
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1765
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014138,
|
||||
"Position": {
|
||||
"X": -219.19586,
|
||||
"Y": 112.21238,
|
||||
"Z": -244.1596
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 4470,
|
||||
"Position": {
|
||||
"X": -468.44992,
|
||||
"Y": 93.85853,
|
||||
"Z": -506.40417
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"KillEnemyDataIds": [
|
||||
4470
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -219.1624,
|
||||
"Y": 112.29031,
|
||||
"Z": -239.88861
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1014138,
|
||||
"Position": {
|
||||
"X": -219.19586,
|
||||
"Y": 112.21238,
|
||||
"Z": -244.1596
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1766,
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014138,
|
||||
"Position": {
|
||||
"X": -219.19586,
|
||||
"Y": 112.21238,
|
||||
"Z": -244.1596
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014140,
|
||||
"Position": {
|
||||
"X": -472.19043,
|
||||
"Y": 93.87282,
|
||||
"Z": -503.7156
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 4468,
|
||||
"Position": {
|
||||
"X": -696.8278,
|
||||
"Y": 100.08534,
|
||||
"Z": -603.926
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"KillEnemyDataIds": [
|
||||
4468
|
||||
],
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014140,
|
||||
"Position": {
|
||||
"X": -472.19043,
|
||||
"Y": 93.87282,
|
||||
"Z": -503.7156
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1769
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,185 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014142,
|
||||
"Position": {
|
||||
"X": -290.33344,
|
||||
"Y": 76.98337,
|
||||
"Z": -259.93744
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006013,
|
||||
"Position": {
|
||||
"X": -287.76996,
|
||||
"Y": 77.74463,
|
||||
"Z": -278.00415
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014142,
|
||||
"Position": {
|
||||
"X": -290.33344,
|
||||
"Y": 76.98337,
|
||||
"Z": -259.93744
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006014,
|
||||
"Position": {
|
||||
"X": -291.8593,
|
||||
"Y": 76.98169,
|
||||
"Z": -261.0056
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"DataId": 4037,
|
||||
"Position": {
|
||||
"X": -285.1214,
|
||||
"Y": 76.98337,
|
||||
"Z": -275.5287
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"KillEnemyDataIds": [4037],
|
||||
"EnemySpawnType": "AfterInteraction"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 5,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014142,
|
||||
"Position": {
|
||||
"X": -290.33344,
|
||||
"Y": 76.98337,
|
||||
"Z": -259.93744
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 6,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 7,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014144,
|
||||
"Position": {
|
||||
"X": -258.16742,
|
||||
"Y": 126.98671,
|
||||
"Z": 12.77179
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 8,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006015,
|
||||
"Position": {
|
||||
"X": -252.33844,
|
||||
"Y": 127.00073,
|
||||
"Z": 11.093262
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 9,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014144,
|
||||
"Position": {
|
||||
"X": -258.16742,
|
||||
"Y": 126.98671,
|
||||
"Z": 12.77179
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,121 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014147,
|
||||
"Position": {
|
||||
"X": -256.97723,
|
||||
"Y": 126.99508,
|
||||
"Z": 13.168518
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"Position": {
|
||||
"X": -298.8484,
|
||||
"Y": 221.68138,
|
||||
"Z": 548.0529
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"Land": true,
|
||||
"DataId": 1014149,
|
||||
"Position": {
|
||||
"X": -294.5144,
|
||||
"Y": 221.58685,
|
||||
"Z": 545.922
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006017,
|
||||
"Position": {
|
||||
"X": -253.34558,
|
||||
"Y": 221.36255,
|
||||
"Z": 528.92346
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"DataId": 4076,
|
||||
"Position": {
|
||||
"X": -257.5558,
|
||||
"Y": 221.35532,
|
||||
"Z": 520.9053
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"KillEnemyDataIds": [4076],
|
||||
"EnemySpawnType": "AfterInteraction"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014149,
|
||||
"Position": {
|
||||
"X": -294.5144,
|
||||
"Y": 221.58685,
|
||||
"Z": 545.922
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1890
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -297.49585,
|
||||
"Y": 219.87524,
|
||||
"Z": 281.65045
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"ComplexCombatData": [
|
||||
{
|
||||
"DataId": 3992,
|
||||
"MinimumKillCount": 5
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014150,
|
||||
"Position": {
|
||||
"X": 507.13354,
|
||||
"Y": 217.95148,
|
||||
"Z": 791.37854
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -110.26132,
|
||||
"Y": 153.61101,
|
||||
"Z": 10.394781
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"Flying": "Locked"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1891
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014151,
|
||||
"Position": {
|
||||
"X": -156.08453,
|
||||
"Y": 219.14235,
|
||||
"Z": 669.7031
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"DataId": 732,
|
||||
"Position": {
|
||||
"X": -151.29321,
|
||||
"Y": 218.95082,
|
||||
"Z": 669.4895
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
732
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014151,
|
||||
"Position": {
|
||||
"X": -156.08453,
|
||||
"Y": 219.14235,
|
||||
"Z": 669.7031
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014151,
|
||||
"Position": {
|
||||
"X": -156.08453,
|
||||
"Y": 219.14235,
|
||||
"Z": 669.7031
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1892
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 2006019,
|
||||
"Position": {
|
||||
"X": -152.42242,
|
||||
"Y": 219.62305,
|
||||
"Z": 669.94727
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"DataId": 4782,
|
||||
"Position": {
|
||||
"X": -158.97404,
|
||||
"Y": 219.45131,
|
||||
"Z": 672.79553
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"KillEnemyDataIds": [
|
||||
4782
|
||||
],
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006181,
|
||||
"Position": {
|
||||
"X": -152.42242,
|
||||
"Y": 219.62305,
|
||||
"Z": 669.94727
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1893
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014146,
|
||||
"Position": {
|
||||
"X": -258.74725,
|
||||
"Y": 126.98546,
|
||||
"Z": 12.649658
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1011907,
|
||||
"Position": {
|
||||
"X": -288.8686,
|
||||
"Y": 127.06639,
|
||||
"Z": 13.199036
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1011910,
|
||||
"Position": {
|
||||
"X": -298.26813,
|
||||
"Y": 126.67049,
|
||||
"Z": -1.4191895
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1014133,
|
||||
"Position": {
|
||||
"X": -259.84595,
|
||||
"Y": 126.44779,
|
||||
"Z": 1.9073486
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014152,
|
||||
"Position": {
|
||||
"X": 496.1776,
|
||||
"Y": 133.93082,
|
||||
"Z": -862.2416
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014153,
|
||||
"Position": {
|
||||
"X": -295.82666,
|
||||
"Y": 126.83744,
|
||||
"Z": 3.829956
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"NextQuestId": 1898
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,229 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014153,
|
||||
"Position": {
|
||||
"X": -295.82666,
|
||||
"Y": 126.83744,
|
||||
"Z": 3.829956
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1014154,
|
||||
"Position": {
|
||||
"X": -519.1577,
|
||||
"Y": 119.39417,
|
||||
"Z": -161.24213
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014155,
|
||||
"Position": {
|
||||
"X": -527.245,
|
||||
"Y": 118.94699,
|
||||
"Z": -163.13422
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 5,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006026,
|
||||
"Position": {
|
||||
"X": -525.7191,
|
||||
"Y": 119.06604,
|
||||
"Z": -165.72827
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 6,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 7,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"Position": {
|
||||
"X": -92.57648,
|
||||
"Y": 96.33008,
|
||||
"Z": -645.1057
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 2006027,
|
||||
"Position": {
|
||||
"X": -92.57648,
|
||||
"Y": 96.33008,
|
||||
"Z": -645.1057
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2001751
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 8,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006028,
|
||||
"Position": {
|
||||
"X": -92.5155,
|
||||
"Y": 93.52246,
|
||||
"Z": -623.621
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"DataId": 4621,
|
||||
"Position": {
|
||||
"X": -92.37683,
|
||||
"Y": 95.76039,
|
||||
"Z": -640.7043
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
4621
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 9,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006460,
|
||||
"Position": {
|
||||
"X": -92.57648,
|
||||
"Y": 96.33008,
|
||||
"Z": -645.1057
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 10,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 11,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014147,
|
||||
"Position": {
|
||||
"X": -256.97723,
|
||||
"Y": 126.99508,
|
||||
"Z": 13.168518
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1013710,
|
||||
"Position": {
|
||||
"X": -294.6975,
|
||||
"Y": 126.84874,
|
||||
"Z": 4.5318604
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012170,
|
||||
"Position": {
|
||||
"X": 102.92212,
|
||||
"Y": 3.6299734,
|
||||
"Z": 65.56799
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012162,
|
||||
"Position": {
|
||||
"X": 135.97314,
|
||||
"Y": 24.376427,
|
||||
"Z": 12.619202
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012170,
|
||||
"Position": {
|
||||
"X": 102.92212,
|
||||
"Y": 3.6299734,
|
||||
"Z": 65.56799
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014711,
|
||||
"Position": {
|
||||
"X": 58.03003,
|
||||
"Y": -7.146736,
|
||||
"Z": 82.41394
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1014712,
|
||||
"Position": {
|
||||
"X": 93.91919,
|
||||
"Y": -19.941168,
|
||||
"Z": 78.20239
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1014713,
|
||||
"Position": {
|
||||
"X": 131.9447,
|
||||
"Y": -20.000105,
|
||||
"Z": 62.027832
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014714,
|
||||
"Position": {
|
||||
"X": 23.178406,
|
||||
"Y": -12.020877,
|
||||
"Z": 35.294067
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012170,
|
||||
"Position": {
|
||||
"X": 102.92212,
|
||||
"Y": 3.6299734,
|
||||
"Z": 65.56799
|
||||
},
|
||||
"TerritoryId": 418,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,149 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012180,
|
||||
"Position": {
|
||||
"X": -174.18176,
|
||||
"Y": -12.555469,
|
||||
"Z": -21.561035
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006246,
|
||||
"Position": {
|
||||
"X": -218.40247,
|
||||
"Y": -16.037292,
|
||||
"Z": -34.683777
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2006247,
|
||||
"Position": {
|
||||
"X": -229.23633,
|
||||
"Y": -20.035156,
|
||||
"Z": -83.05487
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2006248,
|
||||
"Position": {
|
||||
"X": -252.1554,
|
||||
"Y": -20.035156,
|
||||
"Z": -57.66388
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012180,
|
||||
"Position": {
|
||||
"X": -174.18176,
|
||||
"Y": -12.555469,
|
||||
"Z": -21.561035
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014721,
|
||||
"Position": {
|
||||
"X": 119.31018,
|
||||
"Y": -12.634913,
|
||||
"Z": -13.626343
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact",
|
||||
"AethernetShortcut": [
|
||||
"[Ishgard] The Jeweled Crozier",
|
||||
"[Ishgard] Athenaeum Astrologicum"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2006330,
|
||||
"Position": {
|
||||
"X": 118.791504,
|
||||
"Y": -11.6427,
|
||||
"Z": -13.351685
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012180,
|
||||
"Position": {
|
||||
"X": -174.18176,
|
||||
"Y": -12.555469,
|
||||
"Z": -21.561035
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AethernetShortcut": [
|
||||
"[Ishgard] Athenaeum Astrologicum",
|
||||
"[Ishgard] The Jeweled Crozier"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1014718,
|
||||
"Position": {
|
||||
"X": -29.526245,
|
||||
"Y": 11.965078,
|
||||
"Z": 48.355713
|
||||
},
|
||||
"TerritoryId": 419,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1011231,
|
||||
"Position": {
|
||||
"X": 503.1051,
|
||||
"Y": 217.95148,
|
||||
"Z": 790.2189
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "Interact",
|
||||
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -110.26132,
|
||||
"Y": 153.61101,
|
||||
"Z": 10.394781
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true,
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"Flying": "Locked"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 1014719,
|
||||
"Position": {
|
||||
"X": -293.6294,
|
||||
"Y": 125.4389,
|
||||
"Z": -19.058533
|
||||
},
|
||||
"TerritoryId": 397,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "Thaksin",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1012085,
|
||||
"Position": {
|
||||
"X": 286.88477,
|
||||
"Y": 14.36517,
|
||||
"Z": 645.1666
|
||||
},
|
||||
"TerritoryId": 400,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 2005720,
|
||||
"Position": {
|
||||
"X": 565.9419,
|
||||
"Y": -9.445435,
|
||||
"Z": -14.328308
|
||||
},
|
||||
"TerritoryId": 400,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
],
|
||||
"InteractionType": "Interact"
|
||||
},
|
||||
{
|
||||
"DataId": 2005718,
|
||||
"Position": {
|
||||
"X": 664.39294,
|
||||
"Y": -0.4730835,
|
||||
"Z": -3.2807007
|
||||
},
|
||||
"Fly": true,
|
||||
"TerritoryId": 400,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005721,
|
||||
"Position": {
|
||||
"X": 653.83374,
|
||||
"Y": -0.7172241,
|
||||
"Z": -70.02368
|
||||
},
|
||||
"TerritoryId": 400,
|
||||
"Fly": true,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null, null,
|
||||
null, null,
|
||||
null, 8
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005717,
|
||||
"Position": {
|
||||
"X": 639.00195,
|
||||
"Y": 46.463623,
|
||||
"Z": -113.05414
|
||||
},
|
||||
"TerritoryId": 400,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2005719,
|
||||
"Position": {
|
||||
"X": 527.0923,
|
||||
"Y": -4.287842,
|
||||
"Z": -84.916504
|
||||
},
|
||||
"Fly": true,
|
||||
"TerritoryId": 400,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Fly": true,
|
||||
"DataId": 1012085,
|
||||
"Position": {
|
||||
"X": 286.88477,
|
||||
"Y": 14.36517,
|
||||
"Z": 645.1666
|
||||
},
|
||||
"TerritoryId": 400,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
{
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"Disabled": true,
|
||||
"Author": "pot0to",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
@ -9,9 +8,9 @@
|
||||
{
|
||||
"DataId": 1032643,
|
||||
"Position": {
|
||||
"X": 787.0145,
|
||||
"Y": -45.82774,
|
||||
"Z": -218.555
|
||||
"X": 787.0145,
|
||||
"Y": -45.82774,
|
||||
"Z": -218.555
|
||||
},
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "AcceptQuest"
|
||||
@ -22,26 +21,56 @@
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 33005,
|
||||
"Position": {
|
||||
"X": 788.1569,
|
||||
"Y": -45.82557,
|
||||
"Z": -212.9306
|
||||
"X": 214.7744,
|
||||
"Y": -19.57758,
|
||||
"Z": 623.6767
|
||||
},
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "WalkTo",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"InteractionType": "Gather",
|
||||
"RequiredQuestAcceptedJob": [
|
||||
"Miner"
|
||||
],
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"ItemId": 29537,
|
||||
"ItemCount": 3
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 33020,
|
||||
"Position": {
|
||||
"X": 226.1767,
|
||||
"Y": -20.10281,
|
||||
"Z": 643.5543
|
||||
},
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "Gather",
|
||||
"RequiredQuestAcceptedJob": [
|
||||
"Botanist"
|
||||
],
|
||||
"ItemsToGather": [
|
||||
{
|
||||
"ItemId": 29563,
|
||||
"ItemCount": 3
|
||||
}
|
||||
],
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1032643,
|
||||
"Position": {
|
||||
"X": 787.0145,
|
||||
"Y": -45.82774,
|
||||
"Z": -218.555
|
||||
"X": 787.0145,
|
||||
"Y": -45.82774,
|
||||
"Z": -218.555
|
||||
},
|
||||
"StopDistance": 7,
|
||||
"TerritoryId": 817,
|
||||
"InteractionType": "CompleteQuest"
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -0,0 +1,72 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 193.6185,
|
||||
"Y": 1.9123514,
|
||||
"Z": 713.436
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 1037622,
|
||||
"Position": {
|
||||
"X": 189.94562,
|
||||
"Y": 0.8560083,
|
||||
"Z": 702.7896
|
||||
},
|
||||
"StopDistance": 0.25,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2011979,
|
||||
"Position": {
|
||||
"X": 236.1333,
|
||||
"Y": 10.666016,
|
||||
"Z": 613.27527
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 193.6185,
|
||||
"Y": 1.9123514,
|
||||
"Z": 713.436
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1037622,
|
||||
"Position": {
|
||||
"X": 189.94562,
|
||||
"Y": 0.8560083,
|
||||
"Z": 702.7896
|
||||
},
|
||||
"StopDistance": 0.25,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037625,
|
||||
"Position": {
|
||||
"X": 176.47058,
|
||||
"Y": 1.8742183,
|
||||
"Z": 799.2217
|
||||
},
|
||||
"StopDistance": 1,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 13.657948,
|
||||
"Y": 1.6567476,
|
||||
"Z": 631.81714
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "OverworldEnemies",
|
||||
"KillEnemyDataIds": [
|
||||
13527
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037625,
|
||||
"Position": {
|
||||
"X": 176.47058,
|
||||
"Y": 1.8742183,
|
||||
"Z": 799.2217
|
||||
},
|
||||
"StopDistance": 1,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037682,
|
||||
"Position": {
|
||||
"X": -564.1108,
|
||||
"Y": 11.802608,
|
||||
"Z": 124.28467
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039378,
|
||||
"Position": {
|
||||
"X": -103.25781,
|
||||
"Y": 2.5712337,
|
||||
"Z": 597.589
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
14119,
|
||||
14120
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2011933,
|
||||
"Position": {
|
||||
"X": -102.61694,
|
||||
"Y": 3.0059814,
|
||||
"Z": 598.9319
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037682,
|
||||
"Position": {
|
||||
"X": -564.1108,
|
||||
"Y": 11.802608,
|
||||
"Z": 124.28467
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037671,
|
||||
"Position": {
|
||||
"X": -554.37555,
|
||||
"Y": 1.120665,
|
||||
"Z": 22.690125
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039384,
|
||||
"Position": {
|
||||
"X": 223.22424,
|
||||
"Y": 10.211119,
|
||||
"Z": 562.4321
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"AetheryteShortcut": "Thavnair - Yedlihmad",
|
||||
"Fly": true,
|
||||
"DialogueChoices": [
|
||||
{
|
||||
"Type": "List",
|
||||
"Prompt": "TEXT_AKTKZA021_04200_Q1_000_000",
|
||||
"Answer": "TEXT_AKTKZA021_04200_A1_000_002"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037671,
|
||||
"Position": {
|
||||
"X": -554.37555,
|
||||
"Y": 1.120665,
|
||||
"Z": 22.690125
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039516,
|
||||
"Position": {
|
||||
"X": -554.89435,
|
||||
"Y": 11.402609,
|
||||
"Z": 125.10864
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037680,
|
||||
"Position": {
|
||||
"X": -550.1946,
|
||||
"Y": 1.6023201,
|
||||
"Z": 50.766724
|
||||
},
|
||||
"StopDistance": 1,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Emote",
|
||||
"Emote": "greeting",
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1037670,
|
||||
"Position": {
|
||||
"X": -508.84262,
|
||||
"Y": -3.7109916E-05,
|
||||
"Z": -20.767578
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Emote",
|
||||
"Emote": "greeting",
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1037676,
|
||||
"Position": {
|
||||
"X": -502.95264,
|
||||
"Y": 12.375282,
|
||||
"Z": 116.31946
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Emote",
|
||||
"Emote": "greeting",
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039516,
|
||||
"Position": {
|
||||
"X": -554.89435,
|
||||
"Y": 11.402609,
|
||||
"Z": 125.10864
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,110 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039379,
|
||||
"Position": {
|
||||
"X": -478.3246,
|
||||
"Y": 39.636753,
|
||||
"Z": 95.47571
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true,
|
||||
"DialogueChoices": [
|
||||
{
|
||||
"Type": "List",
|
||||
"Prompt": "TEXT_AKTKZA023_04202_Q1_000_000",
|
||||
"Answer": "TEXT_AKTKZA023_04202_A1_000_001"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039380,
|
||||
"Position": {
|
||||
"X": -386.862,
|
||||
"Y": 21.832859,
|
||||
"Z": 206.77502
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039380,
|
||||
"Position": {
|
||||
"X": -386.862,
|
||||
"Y": 21.832859,
|
||||
"Z": 206.77502
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2011911,
|
||||
"Position": {
|
||||
"X": -387.28925,
|
||||
"Y": 21.744019,
|
||||
"Z": 208.88062
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
14118
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039380,
|
||||
"Position": {
|
||||
"X": -386.862,
|
||||
"Y": 21.832859,
|
||||
"Z": 206.77502
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039379,
|
||||
"Position": {
|
||||
"X": -478.3246,
|
||||
"Y": 39.636753,
|
||||
"Z": 95.47571
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,149 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039365,
|
||||
"Position": {
|
||||
"X": -490.37924,
|
||||
"Y": 5.667216,
|
||||
"Z": 63.553833
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039366,
|
||||
"Position": {
|
||||
"X": -385.24457,
|
||||
"Y": 15.095761,
|
||||
"Z": 62.974
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039367,
|
||||
"Position": {
|
||||
"X": -161.85254,
|
||||
"Y": 32.732735,
|
||||
"Z": 210.74231
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2011903,
|
||||
"Position": {
|
||||
"X": -161.5473,
|
||||
"Y": 32.211792,
|
||||
"Z": 225.36047
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011904,
|
||||
"Position": {
|
||||
"X": -148.57715,
|
||||
"Y": 34.10388,
|
||||
"Z": 207.84314
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011902,
|
||||
"Position": {
|
||||
"X": -170.21442,
|
||||
"Y": 31.814941,
|
||||
"Z": 193.1029
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AfterInteraction",
|
||||
"KillEnemyDataIds": [
|
||||
14117
|
||||
],
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 4,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039367,
|
||||
"Position": {
|
||||
"X": -161.85254,
|
||||
"Y": 32.732735,
|
||||
"Z": 210.74231
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039365,
|
||||
"Position": {
|
||||
"X": -490.37924,
|
||||
"Y": 5.667216,
|
||||
"Z": 63.553833
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,185 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039371,
|
||||
"Position": {
|
||||
"X": -409.93365,
|
||||
"Y": 10.751212,
|
||||
"Z": 33.035767
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039372,
|
||||
"Position": {
|
||||
"X": 195.91052,
|
||||
"Y": 4.763736,
|
||||
"Z": 658.2893
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"AetheryteShortcut": "Thavnair - Yedlihmad"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039373,
|
||||
"Position": {
|
||||
"X": -314.6258,
|
||||
"Y": 0.70631444,
|
||||
"Z": 561.12
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true,
|
||||
"DialogueChoices": [
|
||||
{
|
||||
"Type": "List",
|
||||
"Prompt": "TEXT_AKTKZA026_04205_Q1_000_000",
|
||||
"Answer": "TEXT_AKTKZA026_04205_A1_000_001"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2011905,
|
||||
"Position": {
|
||||
"X": -443.04572,
|
||||
"Y": -0.22894287,
|
||||
"Z": 800.7781
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011906,
|
||||
"Position": {
|
||||
"X": -458.42682,
|
||||
"Y": -0.19836426,
|
||||
"Z": 830.8689
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Mount": false,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -458.42682,
|
||||
"Y": -0.19836426,
|
||||
"Z": 830.8689
|
||||
},
|
||||
"StopDistance": 5,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Dive"
|
||||
},
|
||||
{
|
||||
"DataId": 2011908,
|
||||
"Position": {
|
||||
"X": -484.85547,
|
||||
"Y": -72.22095,
|
||||
"Z": 814.35876
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011907,
|
||||
"Position": {
|
||||
"X": -452.90308,
|
||||
"Y": -67.00244,
|
||||
"Z": 776.2417
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011909,
|
||||
"Position": {
|
||||
"X": -513.51184,
|
||||
"Y": -52.689453,
|
||||
"Z": 773.73914
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
8
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039371,
|
||||
"Position": {
|
||||
"X": -409.93365,
|
||||
"Y": 10.751212,
|
||||
"Z": 33.035767
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037685,
|
||||
"Position": {
|
||||
"X": -468.864,
|
||||
"Y": 6.2912574,
|
||||
"Z": 3.463745
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -568.1513,
|
||||
"Y": 40.91181,
|
||||
"Z": -451.32486
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Combat",
|
||||
"EnemySpawnType": "AutoOnEnterArea",
|
||||
"KillEnemyDataIds": [
|
||||
14116
|
||||
],
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039383,
|
||||
"Position": {
|
||||
"X": -567.6509,
|
||||
"Y": 41.313267,
|
||||
"Z": -448.41687
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037685,
|
||||
"Position": {
|
||||
"X": -468.864,
|
||||
"Y": 6.2912574,
|
||||
"Z": 3.463745
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,246 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039385,
|
||||
"Position": {
|
||||
"X": -480.12518,
|
||||
"Y": 5.362214,
|
||||
"Z": 37.582886
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039386,
|
||||
"Position": {
|
||||
"X": -431.7846,
|
||||
"Y": 72.61802,
|
||||
"Z": -555.3826
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -477.78827,
|
||||
"Y": 73.67918,
|
||||
"Z": -542.7145
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "WalkTo",
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 2011962,
|
||||
"Position": {
|
||||
"X": -477.16492,
|
||||
"Y": 74.75391,
|
||||
"Z": -544.5792
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003199,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011963,
|
||||
"Position": {
|
||||
"X": -479.2401,
|
||||
"Y": 74.784424,
|
||||
"Z": -541.619
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003199,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
],
|
||||
"DelaySecondsAtStart": 3
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -482.98328,
|
||||
"Y": 73.32367,
|
||||
"Z": -521.75024
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "WalkTo",
|
||||
"SkipConditions": {
|
||||
"StepIf": {
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"DataId": 2011964,
|
||||
"Position": {
|
||||
"X": -484.67236,
|
||||
"Y": 74.021484,
|
||||
"Z": -523.15564
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003199,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011965,
|
||||
"Position": {
|
||||
"X": -483.6042,
|
||||
"Y": 74.35718,
|
||||
"Z": -519.7986
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003199,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
16
|
||||
],
|
||||
"DelaySecondsAtStart": 3
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -475.0877,
|
||||
"Y": 73.24273,
|
||||
"Z": -512.62787
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 2011967,
|
||||
"Position": {
|
||||
"X": -476.92078,
|
||||
"Y": 74.08252,
|
||||
"Z": -511.43665
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003199,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
4
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 2011966,
|
||||
"Position": {
|
||||
"X": -473.0144,
|
||||
"Y": 74.32666,
|
||||
"Z": -512.3827
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "UseItem",
|
||||
"ItemId": 2003199,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
8
|
||||
],
|
||||
"DelaySecondsAtStart": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 3,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039386,
|
||||
"Position": {
|
||||
"X": -431.7846,
|
||||
"Y": 72.61802,
|
||||
"Z": -555.3826
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039385,
|
||||
"Position": {
|
||||
"X": -480.12518,
|
||||
"Y": 5.362214,
|
||||
"Z": 37.582886
|
||||
},
|
||||
"StopDistance": 0.5,
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037673,
|
||||
"Position": {
|
||||
"X": -517.0215,
|
||||
"Y": 11.975277,
|
||||
"Z": 100.541626
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1039370,
|
||||
"Position": {
|
||||
"X": -106.21808,
|
||||
"Y": 95.53504,
|
||||
"Z": -700.4959
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true,
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
32
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1039368,
|
||||
"Position": {
|
||||
"X": -65.07977,
|
||||
"Y": 89.860886,
|
||||
"Z": -659.8764
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
128
|
||||
]
|
||||
},
|
||||
{
|
||||
"DataId": 1039369,
|
||||
"Position": {
|
||||
"X": -66.14789,
|
||||
"Y": 89.4264,
|
||||
"Z": -635.8892
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact",
|
||||
"CompletionQuestVariablesFlags": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
64
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037673,
|
||||
"Position": {
|
||||
"X": -517.0215,
|
||||
"Y": 11.975277,
|
||||
"Z": 100.541626
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037681,
|
||||
"Position": {
|
||||
"X": -554.74176,
|
||||
"Y": 11.402611,
|
||||
"Z": 137.31592
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -281.16296,
|
||||
"Y": 94.31451,
|
||||
"Z": -289.12802
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 2011910,
|
||||
"Position": {
|
||||
"X": -280.99493,
|
||||
"Y": 95.87244,
|
||||
"Z": -287.64783
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "Interact"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1037681,
|
||||
"Position": {
|
||||
"X": -554.74176,
|
||||
"Y": 11.402611,
|
||||
"Z": 137.31592
|
||||
},
|
||||
"TerritoryId": 957,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"AetheryteShortcut": "Thavnair - Great Work",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1048605,
|
||||
"Position": {
|
||||
"X": -358.38867,
|
||||
"Y": 19.728025,
|
||||
"Z": -105.02789
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "AcceptQuest",
|
||||
"AetheryteShortcut": "Shaaloani - Sheshenewezi Springs",
|
||||
"SkipConditions": {
|
||||
"AetheryteShortcutIf": {
|
||||
"InSameTerritory": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 1,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 2014456,
|
||||
"Position": {
|
||||
"X": -128.64886,
|
||||
"Y": 16.311829,
|
||||
"Z": -290.69965
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 2,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1048608,
|
||||
"Position": {
|
||||
"X": -126.57361,
|
||||
"Y": 15.67948,
|
||||
"Z": -369.46674
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "Interact",
|
||||
"Fly": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"DataId": 1048605,
|
||||
"Position": {
|
||||
"X": -358.38867,
|
||||
"Y": 19.728025,
|
||||
"Z": -105.02789
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true,
|
||||
"NextQuestId": 5241
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
{
|
||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||
"Author": "liza",
|
||||
"QuestSequence": [
|
||||
{
|
||||
"Sequence": 0,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -363.2864,
|
||||
"Y": 20.16234,
|
||||
"Z": -90.06508
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "WalkTo"
|
||||
},
|
||||
{
|
||||
"DataId": 1051495,
|
||||
"Position": {
|
||||
"X": -365.28577,
|
||||
"Y": 20.14268,
|
||||
"Z": -88.51758
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "AcceptQuest"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Sequence": 255,
|
||||
"Steps": [
|
||||
{
|
||||
"Position": {
|
||||
"X": -354.53677,
|
||||
"Y": 19.32763,
|
||||
"Z": -99.326805
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "WalkTo",
|
||||
"Mount": true
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": -91.25145,
|
||||
"Y": 17.80576,
|
||||
"Z": -267.2748
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "WalkTo",
|
||||
"Fly": true
|
||||
},
|
||||
{
|
||||
"DataId": 1051497,
|
||||
"Position": {
|
||||
"X": -91.5694,
|
||||
"Y": 17.7503,
|
||||
"Z": -268.54352
|
||||
},
|
||||
"TerritoryId": 1190,
|
||||
"InteractionType": "CompleteQuest"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@ -96,6 +96,7 @@
|
||||
},
|
||||
"TerritoryId": 1188,
|
||||
"InteractionType": "CompleteQuest",
|
||||
"Fly": true,
|
||||
"NextQuestId": 5084
|
||||
}
|
||||
]
|
||||
|
@ -80,7 +80,7 @@
|
||||
"null"
|
||||
],
|
||||
"description": "Set if pathfinding should stop closer or further away from the default stop distance",
|
||||
"exclusiveMinimum": 0
|
||||
"minimum": 0.25
|
||||
},
|
||||
"IgnoreDistanceToObject": {
|
||||
"type": "boolean",
|
||||
@ -183,7 +183,8 @@
|
||||
"null"
|
||||
],
|
||||
"description": "The Item to use",
|
||||
"exclusiveMinimum": 0
|
||||
"exclusiveMinimum": 0,
|
||||
"maximum": 2010000
|
||||
},
|
||||
"SkipConditions": {
|
||||
"type": "object",
|
||||
@ -648,13 +649,15 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ItemId": {
|
||||
"type": "integer"
|
||||
"type": "integer",
|
||||
"maximum": 2010000
|
||||
},
|
||||
"Condition": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Incapacitated",
|
||||
"Health%"
|
||||
"Health%",
|
||||
"MissingStatus"
|
||||
]
|
||||
},
|
||||
"Value": {
|
||||
@ -859,7 +862,8 @@
|
||||
"joy",
|
||||
"mogdance",
|
||||
"salute",
|
||||
"laugh"
|
||||
"laugh",
|
||||
"greeting"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -9,5 +9,6 @@ public sealed class CombatItemUseConditionConverter() : EnumConverter<ECombatIte
|
||||
{
|
||||
{ ECombatItemUseCondition.Incapacitated, "Incapacitated" },
|
||||
{ ECombatItemUseCondition.HealthPercent, "Health%" },
|
||||
{ ECombatItemUseCondition.MissingStatus, "MissingStatus" },
|
||||
};
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
|
||||
{ EEmote.Flex, "flex" },
|
||||
{ EEmote.Respect, "respect" },
|
||||
{ EEmote.Box, "box" },
|
||||
{ EEmote.Uchiwasshoi, "uchiwasshoi" }
|
||||
{ EEmote.Greeting, "greeting" },
|
||||
{ EEmote.Uchiwasshoi, "uchiwasshoi" },
|
||||
};
|
||||
}
|
||||
|
@ -5,4 +5,5 @@ public enum ECombatItemUseCondition
|
||||
None,
|
||||
Incapacitated,
|
||||
HealthPercent,
|
||||
MissingStatus,
|
||||
}
|
||||
|
@ -44,6 +44,7 @@ public enum EEmote
|
||||
Flex = 139,
|
||||
Respect = 140,
|
||||
Box = 166,
|
||||
Greeting = 172,
|
||||
Uchiwasshoi = 278
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Game.ClientState.Objects;
|
||||
using Dalamud.Game.ClientState.Objects.Enums;
|
||||
@ -10,7 +11,8 @@ using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.UI;
|
||||
using FFXIVClientStructs.FFXIV.Common.Math;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
||||
using FFXIVClientStructs.FFXIV.Common.Component.BGCollision;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.CombatModules;
|
||||
using Questionable.Controller.Steps;
|
||||
@ -38,6 +40,7 @@ internal sealed class CombatController : IDisposable
|
||||
private CurrentFight? _currentFight;
|
||||
private bool _wasInCombat;
|
||||
private ulong? _lastTargetId;
|
||||
private List<byte>? _previousQuestVariables;
|
||||
|
||||
public CombatController(
|
||||
IEnumerable<ICombatModule> combatModules,
|
||||
@ -79,7 +82,9 @@ internal sealed class CombatController : IDisposable
|
||||
Data = combatData,
|
||||
LastDistanceCheck = DateTime.Now,
|
||||
};
|
||||
_wasInCombat = combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny;
|
||||
_wasInCombat =
|
||||
combatData.SpawnType is EEnemySpawnType.QuestInterruption or EEnemySpawnType.FinishCombatIfAny;
|
||||
UpdateLastTargetAndQuestVariables(null);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@ -115,7 +120,31 @@ internal sealed class CombatController : IDisposable
|
||||
{
|
||||
// wait until the game cleans up the target
|
||||
if (lastTarget.IsDead)
|
||||
return EStatus.InCombat;
|
||||
{
|
||||
ElementId? elementId = _currentFight.Data.ElementId;
|
||||
QuestProgressInfo? questProgressInfo = elementId != null
|
||||
? _questFunctions.GetQuestProgressInfo(elementId)
|
||||
: null;
|
||||
|
||||
if (questProgressInfo != null &&
|
||||
questProgressInfo.Sequence == _currentFight.Data.Sequence &&
|
||||
QuestWorkUtils.HasCompletionFlags(_currentFight.Data.CompletionQuestVariablesFlags) &&
|
||||
QuestWorkUtils.MatchesQuestWork(_currentFight.Data.CompletionQuestVariablesFlags,
|
||||
questProgressInfo))
|
||||
{
|
||||
// would be the final enemy of the bunch
|
||||
return EStatus.InCombat;
|
||||
}
|
||||
else if (questProgressInfo != null &&
|
||||
questProgressInfo.Sequence == _currentFight.Data.Sequence &&
|
||||
_previousQuestVariables != null &&
|
||||
!questProgressInfo.Variables.SequenceEqual(_previousQuestVariables))
|
||||
{
|
||||
UpdateLastTargetAndQuestVariables(null);
|
||||
}
|
||||
else
|
||||
return EStatus.InCombat;
|
||||
}
|
||||
}
|
||||
else
|
||||
_lastTargetId = null;
|
||||
@ -128,7 +157,7 @@ internal sealed class CombatController : IDisposable
|
||||
{
|
||||
int currentTargetPriority = GetKillPriority(target);
|
||||
var nextTarget = FindNextTarget();
|
||||
int nextTargetPriority = GetKillPriority(target);
|
||||
int nextTargetPriority = nextTarget != null ? GetKillPriority(nextTarget) : 0;
|
||||
|
||||
if (nextTarget != null && nextTarget.Equals(target))
|
||||
{
|
||||
@ -147,7 +176,7 @@ internal sealed class CombatController : IDisposable
|
||||
}
|
||||
else if (nextTarget != null)
|
||||
{
|
||||
if (nextTargetPriority > currentTargetPriority)
|
||||
if (nextTargetPriority > currentTargetPriority || currentTargetPriority == 0)
|
||||
SetTarget(nextTarget);
|
||||
}
|
||||
else
|
||||
@ -372,9 +401,18 @@ internal sealed class CombatController : IDisposable
|
||||
float hitboxOffset = player.HitboxRadius + gameObject.HitboxRadius;
|
||||
float actualDistance = Vector3.Distance(player.Position, gameObject.Position);
|
||||
float maxDistance = player.ClassJob.ValueNullable?.Role is 3 or 4 ? 20f : 2.9f;
|
||||
if (actualDistance - hitboxOffset >= maxDistance)
|
||||
bool outOfRange = actualDistance - hitboxOffset >= maxDistance;
|
||||
bool isInLineOfSight = IsInLineOfSight(gameObject);
|
||||
if (outOfRange || !isInLineOfSight)
|
||||
{
|
||||
if (actualDistance - hitboxOffset <= 5)
|
||||
bool useNavmesh = actualDistance - hitboxOffset > 5f;
|
||||
if (!outOfRange && !isInLineOfSight)
|
||||
{
|
||||
maxDistance = Math.Min(maxDistance, actualDistance) / 2;
|
||||
useNavmesh = true;
|
||||
}
|
||||
|
||||
if (!useNavmesh)
|
||||
{
|
||||
_logger.LogInformation("Moving to {TargetName} ({DataId}) to attack", gameObject.Name,
|
||||
gameObject.DataId);
|
||||
@ -391,6 +429,44 @@ internal sealed class CombatController : IDisposable
|
||||
}
|
||||
}
|
||||
|
||||
internal unsafe bool IsInLineOfSight(IGameObject target)
|
||||
{
|
||||
Vector3 sourcePos = _clientState.LocalPlayer!.Position;
|
||||
sourcePos.Y += 2;
|
||||
|
||||
Vector3 targetPos = target.Position;
|
||||
targetPos.Y += 2;
|
||||
|
||||
Vector3 direction = targetPos - sourcePos;
|
||||
float distance = direction.Length();
|
||||
|
||||
direction = Vector3.Normalize(direction);
|
||||
|
||||
Vector3 originVect = new Vector3(sourcePos.X, sourcePos.Y, sourcePos.Z);
|
||||
Vector3 directionVect = new Vector3(direction.X, direction.Y, direction.Z);
|
||||
|
||||
RaycastHit hit;
|
||||
var flags = stackalloc int[] { 0x4000, 0, 0x4000, 0 };
|
||||
var isLoSBlocked =
|
||||
Framework.Instance()->BGCollisionModule->RaycastMaterialFilter(&hit, &originVect, &directionVect, distance,
|
||||
1, flags);
|
||||
|
||||
return isLoSBlocked == false;
|
||||
}
|
||||
|
||||
private void UpdateLastTargetAndQuestVariables(IGameObject? target)
|
||||
{
|
||||
_lastTargetId = target?.GameObjectId;
|
||||
_previousQuestVariables = _currentFight!.Data.ElementId != null
|
||||
? _questFunctions.GetQuestProgressInfo(_currentFight.Data.ElementId)?.Variables
|
||||
: null;
|
||||
/*
|
||||
_logger.LogTrace("UpdateTargetData: {TargetId}; {QuestVariables}",
|
||||
target?.GameObjectId.ToString("X8", CultureInfo.InvariantCulture) ?? "null",
|
||||
_previousQuestVariables != null ? string.Join(", ", _previousQuestVariables) : "null");
|
||||
*/
|
||||
}
|
||||
|
||||
public void Stop(string label)
|
||||
{
|
||||
using var scope = _logger.BeginScope(label);
|
||||
@ -422,6 +498,8 @@ internal sealed class CombatController : IDisposable
|
||||
public sealed class CombatData
|
||||
{
|
||||
public required ElementId? ElementId { get; init; }
|
||||
public required int Sequence { get; init; }
|
||||
public required IList<QuestWorkValue?> CompletionQuestVariablesFlags { get; init; }
|
||||
public required EEnemySpawnType SpawnType { get; init; }
|
||||
public required List<uint> KillEnemyDataIds { get; init; }
|
||||
public required List<ComplexCombatData> ComplexCombatDatas { get; init; }
|
||||
|
@ -108,6 +108,7 @@ internal sealed class ItemUseModule : ICombatModule
|
||||
_delegate.Stop();
|
||||
unsafe
|
||||
{
|
||||
_logger.LogInformation("Using item {ItemId}", _combatData.CombatItemUse.ItemId);
|
||||
AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId);
|
||||
}
|
||||
_continueAt = DateTime.Now.AddSeconds(2);
|
||||
@ -147,6 +148,9 @@ internal sealed class ItemUseModule : ICombatModule
|
||||
|
||||
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent)
|
||||
return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value;
|
||||
|
||||
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.MissingStatus)
|
||||
return !battleChara->StatusManager.HasStatus((uint)_combatData.CombatItemUse.Value);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -49,9 +49,10 @@ internal sealed unsafe class GatheringController : MiniTaskController<GatheringC
|
||||
ILogger<GatheringController> logger,
|
||||
ICondition condition,
|
||||
IServiceProvider serviceProvider,
|
||||
InterruptHandler interruptHandler,
|
||||
IDataManager dataManager,
|
||||
IPluginLog pluginLog)
|
||||
: base(chatGui, condition, serviceProvider, dataManager, logger)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, logger)
|
||||
{
|
||||
_movementController = movementController;
|
||||
_gatheringPointRegistry = gatheringPointRegistry;
|
||||
|
165
Questionable/Controller/InterruptHandler.cs
Normal file
165
Questionable/Controller/InterruptHandler.cs
Normal file
@ -0,0 +1,165 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Runtime.InteropServices;
|
||||
using Dalamud.Game;
|
||||
using Dalamud.Hooking;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||
using FFXIVClientStructs.FFXIV.Common.Math;
|
||||
using JetBrains.Annotations;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Data;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed unsafe class InterruptHandler : IDisposable
|
||||
{
|
||||
private readonly Hook<ProcessActionEffect> _processActionEffectHook;
|
||||
private readonly IClientState _clientState;
|
||||
private readonly TerritoryData _territoryData;
|
||||
private readonly ILogger<InterruptHandler> _logger;
|
||||
|
||||
private delegate void ProcessActionEffect(uint sourceId, Character* sourceCharacter, Vector3* pos,
|
||||
EffectHeader* effectHeader, EffectEntry* effectArray, ulong* effectTail);
|
||||
|
||||
public InterruptHandler(IGameInteropProvider gameInteropProvider, IClientState clientState,
|
||||
TerritoryData territoryData, ILogger<InterruptHandler> logger)
|
||||
{
|
||||
_clientState = clientState;
|
||||
_territoryData = territoryData;
|
||||
_logger = logger;
|
||||
_processActionEffectHook =
|
||||
gameInteropProvider.HookFromSignature<ProcessActionEffect>(Signatures.ActionEffect,
|
||||
HandleProcessActionEffect);
|
||||
_processActionEffectHook.Enable();
|
||||
}
|
||||
|
||||
public event EventHandler? Interrupted;
|
||||
|
||||
private void HandleProcessActionEffect(uint sourceId, Character* sourceCharacter, Vector3* pos,
|
||||
EffectHeader* effectHeader, EffectEntry* effectArray, ulong* effectTail)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!_territoryData.IsDutyInstance(_clientState.TerritoryType))
|
||||
{
|
||||
for (int i = 0; i < effectHeader->TargetCount; i++)
|
||||
{
|
||||
uint targetId = (uint)(effectTail[i] & uint.MaxValue);
|
||||
EffectEntry* effect = effectArray + 8 * i;
|
||||
|
||||
if (targetId == _clientState.LocalPlayer?.GameObjectId &&
|
||||
effect->Type is EActionEffectType.Damage or EActionEffectType.BlockedDamage
|
||||
or EActionEffectType.ParriedDamage)
|
||||
{
|
||||
_logger.LogTrace("Damage action effect on self, from {SourceId} ({EffectType})", sourceId,
|
||||
effect->Type);
|
||||
Interrupted?.Invoke(this, EventArgs.Empty);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogWarning(e, "Unable to process action effect");
|
||||
}
|
||||
finally
|
||||
{
|
||||
_processActionEffectHook.Original(sourceId, sourceCharacter, pos, effectHeader, effectArray, effectTail);
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_processActionEffectHook.Disable();
|
||||
_processActionEffectHook.Dispose();
|
||||
}
|
||||
|
||||
private static class Signatures
|
||||
{
|
||||
internal const string ActionEffect = "40 ?? 56 57 41 ?? 41 ?? 41 ?? 48 ?? ?? ?? ?? ?? ?? ?? 48";
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
private struct EffectEntry
|
||||
{
|
||||
[FieldOffset(0)] public EActionEffectType Type;
|
||||
[FieldOffset(1)] public byte Param0;
|
||||
[FieldOffset(2)] public byte Param1;
|
||||
[FieldOffset(3)] public byte Param2;
|
||||
[FieldOffset(4)] public byte Mult;
|
||||
[FieldOffset(5)] public byte Flags;
|
||||
[FieldOffset(6)] public ushort Value;
|
||||
|
||||
public byte AttackType => (byte)(Param1 & 0xF);
|
||||
public uint Damage => Mult == 0 ? Value : Value + ((uint)ushort.MaxValue + 1) * Mult;
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return
|
||||
$"Type: {Type}, p0: {Param0:D3}, p1: {Param1:D3}, p2: {Param2:D3} 0x{Param2:X2} '{Convert.ToString(Param2, 2).PadLeft(8, '0')}', mult: {Mult:D3}, flags: {Flags:D3} | {Convert.ToString(Flags, 2).PadLeft(8, '0')}, value: {Value:D6} ATTACK TYPE: {AttackType}";
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
private struct EffectHeader
|
||||
{
|
||||
[FieldOffset(0)] public ulong AnimationTargetId;
|
||||
[FieldOffset(8)] public uint ActionID;
|
||||
[FieldOffset(12)] public uint GlobalEffectCounter;
|
||||
[FieldOffset(16)] public float AnimationLockTime;
|
||||
[FieldOffset(20)] public uint SomeTargetID;
|
||||
[FieldOffset(24)] public ushort SourceSequence;
|
||||
[FieldOffset(26)] public ushort Rotation;
|
||||
[FieldOffset(28)] public ushort AnimationId;
|
||||
[FieldOffset(30)] public byte Variation;
|
||||
[FieldOffset(31)] public ActionType ActionType;
|
||||
[FieldOffset(33)] public byte TargetCount;
|
||||
}
|
||||
|
||||
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
|
||||
private enum EActionEffectType : byte
|
||||
{
|
||||
None = 0,
|
||||
Miss = 1,
|
||||
FullResist = 2,
|
||||
Damage = 3,
|
||||
Heal = 4,
|
||||
BlockedDamage = 5,
|
||||
ParriedDamage = 6,
|
||||
Invulnerable = 7,
|
||||
NoEffectText = 8,
|
||||
Unknown0 = 9,
|
||||
MpLoss = 10,
|
||||
MpGain = 11,
|
||||
TpLoss = 12,
|
||||
TpGain = 13,
|
||||
ApplyStatusEffectTarget = 14,
|
||||
ApplyStatusEffectSource = 15,
|
||||
RecoveredFromStatusEffect = 16,
|
||||
LoseStatusEffectTarget = 17,
|
||||
LoseStatusEffectSource = 18,
|
||||
StatusNoEffect = 20,
|
||||
ThreatPosition = 24,
|
||||
EnmityAmountUp = 25,
|
||||
EnmityAmountDown = 26,
|
||||
StartActionCombo = 27,
|
||||
ComboSucceed = 28,
|
||||
Retaliation = 29,
|
||||
Knockback = 32,
|
||||
Attract1 = 33, //Here is an issue bout knockback. some is 32 some is 33.
|
||||
Attract2 = 34,
|
||||
Mount = 40,
|
||||
FullResistStatus = 52,
|
||||
FullResistStatus2 = 55,
|
||||
VFX = 59,
|
||||
Gauge = 60,
|
||||
JobGauge = 61,
|
||||
SetModelState = 72,
|
||||
SetHP = 73,
|
||||
PartialInvulnerable = 74,
|
||||
Interrupt = 75,
|
||||
}
|
||||
}
|
@ -17,26 +17,29 @@ using Mount = Questionable.Controller.Steps.Common.Mount;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal abstract class MiniTaskController<T>
|
||||
internal abstract class MiniTaskController<T> : IDisposable
|
||||
{
|
||||
protected readonly TaskQueue _taskQueue = new();
|
||||
|
||||
private readonly IChatGui _chatGui;
|
||||
private readonly ICondition _condition;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly InterruptHandler _interruptHandler;
|
||||
private readonly ILogger<T> _logger;
|
||||
|
||||
private readonly string _actionCanceledText;
|
||||
|
||||
protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider,
|
||||
IDataManager dataManager, ILogger<T> logger)
|
||||
InterruptHandler interruptHandler, IDataManager dataManager, ILogger<T> logger)
|
||||
{
|
||||
_chatGui = chatGui;
|
||||
_logger = logger;
|
||||
_serviceProvider = serviceProvider;
|
||||
_interruptHandler = interruptHandler;
|
||||
_condition = condition;
|
||||
|
||||
_actionCanceledText = dataManager.GetString<LogMessage>(1314, x => x.Text)!;
|
||||
_interruptHandler.Interrupted += HandleInterruption;
|
||||
}
|
||||
|
||||
protected virtual void UpdateCurrentTask()
|
||||
@ -173,7 +176,7 @@ internal abstract class MiniTaskController<T>
|
||||
if (_condition[ConditionFlag.Mounted])
|
||||
tasks.Add(new Mount.UnmountTask());
|
||||
|
||||
tasks.Add(Combat.Factory.CreateTask(null, false, EEnemySpawnType.QuestInterruption, [], [], [], null));
|
||||
tasks.Add(Combat.Factory.CreateTask(null, -1, false, EEnemySpawnType.QuestInterruption, [], [], [], null));
|
||||
tasks.Add(new WaitAtEnd.WaitDelay());
|
||||
_taskQueue.InterruptWith(tasks);
|
||||
}
|
||||
@ -198,8 +201,21 @@ internal abstract class MiniTaskController<T>
|
||||
if (!isHandled)
|
||||
{
|
||||
if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) &&
|
||||
!_condition[ConditionFlag.InFlight])
|
||||
!_condition[ConditionFlag.InFlight] &&
|
||||
_taskQueue.CurrentTaskExecutor?.ShouldInterruptOnDamage() == true)
|
||||
InterruptQueueWithCombat();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void HandleInterruption(object? sender, EventArgs e)
|
||||
{
|
||||
if (!_condition[ConditionFlag.InFlight] &&
|
||||
_taskQueue.CurrentTaskExecutor?.ShouldInterruptOnDamage() == true)
|
||||
InterruptQueueWithCombat();
|
||||
}
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
_interruptHandler.Interrupted -= HandleInterruption;
|
||||
}
|
||||
}
|
||||
|
@ -75,8 +75,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>, IDi
|
||||
YesAlreadyIpc yesAlreadyIpc,
|
||||
TaskCreator taskCreator,
|
||||
IServiceProvider serviceProvider,
|
||||
InterruptHandler interruptHandler,
|
||||
IDataManager dataManager)
|
||||
: base(chatGui, condition, serviceProvider, dataManager, logger)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, logger)
|
||||
{
|
||||
_clientState = clientState;
|
||||
_gameFunctions = gameFunctions;
|
||||
@ -801,11 +802,23 @@ internal sealed class QuestController : MiniTaskController<QuestController>, IDi
|
||||
_gatheringController.OnNormalToast(message);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
protected override void HandleInterruption(object? sender, EventArgs e)
|
||||
{
|
||||
if (!IsRunning)
|
||||
return;
|
||||
|
||||
if (AutomationType == EAutomationType.Manual)
|
||||
return;
|
||||
|
||||
base.HandleInterruption(sender, e);
|
||||
}
|
||||
|
||||
public override void Dispose()
|
||||
{
|
||||
_toastGui.ErrorToast -= OnErrorToast;
|
||||
_toastGui.Toast -= OnNormalToast;
|
||||
_condition.ConditionChange -= OnConditionChange;
|
||||
base.Dispose();
|
||||
}
|
||||
|
||||
public sealed record StepProgress(
|
||||
|
@ -234,7 +234,11 @@ internal sealed class QuestRegistry
|
||||
|
||||
public List<QuestInfo> GetKnownClassJobQuests(EClassJob classJob)
|
||||
{
|
||||
return _questData.GetClassJobQuests(classJob)
|
||||
List<QuestInfo> allQuests = [.._questData.GetClassJobQuests(classJob)];
|
||||
if (classJob.AsJob() != classJob)
|
||||
allQuests.AddRange(_questData.GetClassJobQuests(classJob.AsJob()));
|
||||
|
||||
return allQuests
|
||||
.Where(x => IsKnownQuest(x.QuestId))
|
||||
.ToList();
|
||||
}
|
||||
|
@ -110,6 +110,8 @@ internal static class Mount
|
||||
? ETaskResult.TaskComplete
|
||||
: ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
internal enum MountResult
|
||||
@ -197,6 +199,8 @@ internal static class Mount
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
public enum EMountIf
|
||||
|
@ -61,5 +61,7 @@ internal static class NextQuest
|
||||
}
|
||||
|
||||
public override ETaskResult Update() => ETaskResult.TaskComplete;
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -104,5 +104,7 @@ internal static class SendNotification
|
||||
}
|
||||
|
||||
public override ETaskResult Update() => ETaskResult.TaskComplete;
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -25,5 +25,7 @@ internal static class WaitCondition
|
||||
|
||||
return DateTime.Now >= _continueAt ? ETaskResult.TaskComplete : ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -236,6 +236,8 @@ internal static class DoGather
|
||||
EAction action = PickAction(minerAction, botanistAction);
|
||||
return ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")]
|
||||
|
@ -198,6 +198,8 @@ internal static class DoGatherCollectable
|
||||
else
|
||||
return botanistAction;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")]
|
||||
|
@ -59,5 +59,6 @@ internal static class MoveToLandingLocation
|
||||
|
||||
public override ETaskResult Update() => moveExecutor.Update();
|
||||
public bool OnErrorToast(SeString message) => moveExecutor.OnErrorToast(message);
|
||||
public override bool ShouldInterruptOnDamage() => moveExecutor.ShouldInterruptOnDamage();
|
||||
}
|
||||
}
|
||||
|
@ -80,5 +80,8 @@ internal static class TurnInDelivery
|
||||
addon->FireCallback(2, pickGatheringItem);
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
// not even sure if any turn-in npcs are NEAR mobs; but we also need to be on a gathering/crafting job
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -124,6 +124,8 @@ internal static class Action
|
||||
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
internal sealed record UseMudraOnObject(uint DataId, EAction Action) : ITask
|
||||
@ -187,5 +189,7 @@ internal static class Action
|
||||
logger.LogError("Unable to find relevant combo for {Action}", Task.Action);
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -65,5 +65,7 @@ internal static class AetherCurrent
|
||||
gameFunctions.IsAetherCurrentUnlocked(Task.AetherCurrentId)
|
||||
? ETaskResult.TaskComplete
|
||||
: ETaskResult.StillRunning;
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -53,5 +53,7 @@ internal static class AethernetShard
|
||||
aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)
|
||||
? ETaskResult.TaskComplete
|
||||
: ETaskResult.StillRunning;
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -52,5 +52,7 @@ internal static class Aetheryte
|
||||
aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)
|
||||
? ETaskResult.TaskComplete
|
||||
: ETaskResult.StillRunning;
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -102,17 +102,30 @@ internal static class Combat
|
||||
ArgumentNullException.ThrowIfNull(step.EnemySpawnType);
|
||||
|
||||
bool isLastStep = sequence.Steps.Last() == step;
|
||||
return CreateTask(quest.Id, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds,
|
||||
step.CompletionQuestVariablesFlags, step.ComplexCombatData, step.CombatItemUse);
|
||||
return CreateTask(quest.Id,
|
||||
sequence.Sequence,
|
||||
isLastStep,
|
||||
step.EnemySpawnType.Value,
|
||||
step.KillEnemyDataIds,
|
||||
step.CompletionQuestVariablesFlags,
|
||||
step.ComplexCombatData,
|
||||
step.CombatItemUse);
|
||||
}
|
||||
|
||||
internal static Task CreateTask(ElementId? elementId, bool isLastStep, EEnemySpawnType enemySpawnType,
|
||||
IList<uint> killEnemyDataIds, IList<QuestWorkValue?> completionQuestVariablesFlags,
|
||||
IList<ComplexCombatData> complexCombatData, CombatItemUse? combatItemUse)
|
||||
internal static Task CreateTask(ElementId? elementId,
|
||||
int sequence,
|
||||
bool isLastStep,
|
||||
EEnemySpawnType enemySpawnType,
|
||||
IList<uint> killEnemyDataIds,
|
||||
IList<QuestWorkValue?> completionQuestVariablesFlags,
|
||||
IList<ComplexCombatData> complexCombatData,
|
||||
CombatItemUse? combatItemUse)
|
||||
{
|
||||
return new Task(new CombatController.CombatData
|
||||
{
|
||||
ElementId = elementId,
|
||||
Sequence = sequence,
|
||||
CompletionQuestVariablesFlags = completionQuestVariablesFlags,
|
||||
SpawnType = enemySpawnType,
|
||||
KillEnemyDataIds = killEnemyDataIds.ToList(),
|
||||
ComplexCombatDatas = complexCombatData.ToList(),
|
||||
@ -177,5 +190,7 @@ internal static class Combat
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -71,6 +71,8 @@ internal static class Dive
|
||||
return base.Update();
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
|
||||
protected override ETaskResult UpdateInternal()
|
||||
{
|
||||
if (condition[ConditionFlag.Diving])
|
||||
|
@ -93,6 +93,8 @@ internal static class Duty
|
||||
? ETaskResult.TaskComplete
|
||||
: ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
internal sealed record WaitAutoDutyTask(uint ContentFinderConditionId) : ITask
|
||||
@ -117,6 +119,8 @@ internal static class Duty
|
||||
? ETaskResult.TaskComplete
|
||||
: ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
|
||||
internal sealed record OpenDutyFinderTask(uint ContentFinderConditionId) : ITask
|
||||
@ -138,5 +142,7 @@ internal static class Duty
|
||||
}
|
||||
|
||||
public override ETaskResult Update() => ETaskResult.TaskComplete;
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,8 @@ internal static class Emote
|
||||
chatFunctions.UseEmote(Task.DataId, Task.Emote);
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
|
||||
internal sealed record UseOnSelf(EEmote Emote) : ITask
|
||||
@ -65,5 +67,7 @@ internal static class Emote
|
||||
chatFunctions.UseEmote(Task.Emote);
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -183,5 +183,7 @@ internal static class EquipItem
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -98,5 +98,7 @@ internal static class EquipRecommended
|
||||
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -228,6 +228,8 @@ internal static class Interact
|
||||
}
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
|
||||
private enum EInteractionState
|
||||
{
|
||||
None,
|
||||
|
@ -80,6 +80,8 @@ internal static class Jump
|
||||
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
|
||||
internal sealed class DoSingleJump(
|
||||
|
@ -48,5 +48,7 @@ internal static class Say
|
||||
chatFunctions.ExecuteCommand($"/say {Task.ChatMessage}");
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => true;
|
||||
}
|
||||
}
|
||||
|
@ -43,5 +43,7 @@ internal static class StatusOff
|
||||
{
|
||||
return gameFunctions.HasStatus(Task.Status) ? ETaskResult.StillRunning : ETaskResult.TaskComplete;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage() => false;
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user