forked from liza/Questionable
Compare commits
42 Commits
NeverPortI
...
master
Author | SHA1 | Date | |
---|---|---|---|
295274143d | |||
de90882ecb | |||
e1b146ee1e | |||
b2c0934f07 | |||
a7706a11e7 | |||
25f98b97e4 | |||
0a22db23f3 | |||
b30c1b29d8 | |||
e305bbfea9 | |||
004d9756d7 | |||
ffccd347bd | |||
2ebc4b5a0d | |||
d85b204c79 | |||
7731dd0658 | |||
21031db45d | |||
587c78ae49 | |||
4f61ea45ed | |||
4e427e4309 | |||
e0580239e4 | |||
5e45af38d1 | |||
05d6394264 | |||
2cf059ec38 | |||
b3d9ce382d | |||
3a3196d869 | |||
325d5368a5 | |||
3a763d625a | |||
f12b777d12 | |||
4b9eae916a | |||
e0f416a5cd | |||
|
b2d57ae5a7 | ||
|
99b5ef42a6 | ||
7734692b0f | |||
16b62316c5 | |||
4576cec1ab | |||
143cb90506 | |||
a0a719fa1c | |||
49ade84737 | |||
8b9e7e5557 | |||
b2e268700b | |||
aa2ba3ca9a | |||
7ae2bdcc45 | |||
|
3c9e14e891 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,4 +2,5 @@
|
|||||||
bin/
|
bin/
|
||||||
/.idea
|
/.idea
|
||||||
/.vs
|
/.vs
|
||||||
|
/.vscode
|
||||||
*.user
|
*.user
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup Condition="$(MSBuildProjectName) != 'GatheringPathRenderer'">
|
<PropertyGroup Condition="$(MSBuildProjectName) != 'GatheringPathRenderer'">
|
||||||
<Version>4.14</Version>
|
<Version>4.16</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -82,7 +82,7 @@ public sealed class RendererPlugin : IDalamudPlugin
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent?.Parent;
|
DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent;
|
||||||
if (solutionDirectory != null)
|
if (solutionDirectory != null)
|
||||||
{
|
{
|
||||||
DirectoryInfo pathProjectDirectory =
|
DirectoryInfo pathProjectDirectory =
|
||||||
@ -91,7 +91,7 @@ public sealed class RendererPlugin : IDalamudPlugin
|
|||||||
return pathProjectDirectory;
|
return pathProjectDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception("Unable to resolve project path");
|
throw new Exception($"Unable to resolve project path ({_pluginInterface.AssemblyLocation.Directory})");
|
||||||
#else
|
#else
|
||||||
var allPluginsDirectory = _pluginInterface.ConfigFile.Directory ?? throw new Exception("Unknown directory for plugin configs");
|
var allPluginsDirectory = _pluginInterface.ConfigFile.Directory ?? throw new Exception("Unknown directory for plugin configs");
|
||||||
return allPluginsDirectory
|
return allPluginsDirectory
|
||||||
|
@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "None"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Groups": [
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32320,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 609.3118,
|
||||||
|
"Y": -21.51083,
|
||||||
|
"Z": 558.524
|
||||||
|
},
|
||||||
|
"MinimumAngle": 90,
|
||||||
|
"MaximumAngle": 270,
|
||||||
|
"MaximumDistance": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32321,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 609.9794,
|
||||||
|
"Y": -21.53052,
|
||||||
|
"Z": 579.6443
|
||||||
|
},
|
||||||
|
"MinimumAngle": 90,
|
||||||
|
"MaximumAngle": 135,
|
||||||
|
"MaximumDistance": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32322,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 588.3865,
|
||||||
|
"Y": -20.42655,
|
||||||
|
"Z": 561.5663
|
||||||
|
},
|
||||||
|
"MinimumAngle": 45,
|
||||||
|
"MaximumAngle": 315,
|
||||||
|
"MaximumDistance": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "None"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Groups": [
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32326,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -515.5125,
|
||||||
|
"Y": 65.79073,
|
||||||
|
"Z": -386.0356
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32327,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -527.5466,
|
||||||
|
"Y": 64.7018,
|
||||||
|
"Z": -379.2951
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32328,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -505.5859,
|
||||||
|
"Y": 64.95732,
|
||||||
|
"Z": -367.5692
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "None"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Groups": [
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32332,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 573.6873,
|
||||||
|
"Y": -20.41718,
|
||||||
|
"Z": 582.5559
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32333,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 579.1252,
|
||||||
|
"Y": -20.40873,
|
||||||
|
"Z": 565.84
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32334,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 608.5944,
|
||||||
|
"Y": -21.23272,
|
||||||
|
"Z": 571.2001
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "None"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Groups": [
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32338,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 727.463,
|
||||||
|
"Y": 14.92286,
|
||||||
|
"Z": -477.1528
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32339,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 721.5626,
|
||||||
|
"Y": 24.81664,
|
||||||
|
"Z": -499.1444
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32340,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 702.1278,
|
||||||
|
"Y": 27.92893,
|
||||||
|
"Z": -505.186
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/GatheringPaths/gatheringlocation-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "None"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Groups": [
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32341,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 615.4055,
|
||||||
|
"Y": 31.42307,
|
||||||
|
"Z": -475.3718
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32342,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 612.0082,
|
||||||
|
"Y": 25.45944,
|
||||||
|
"Z": -442.0886
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Nodes": [
|
||||||
|
{
|
||||||
|
"DataId": 32343,
|
||||||
|
"Locations": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 634.1258,
|
||||||
|
"Y": 21.76424,
|
||||||
|
"Z": -436.3917
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
2
LLib
2
LLib
@ -1 +1 @@
|
|||||||
Subproject commit b1059871154b84401020c0072fd089fcc022fb77
|
Subproject commit 746d14681baa91132784ab17f8f49671e86ea211
|
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(),
|
.AsSyntaxNodeOrToken(),
|
||||||
AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData)
|
AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData)
|
||||||
.AsSyntaxNodeOrToken(),
|
.AsSyntaxNodeOrToken(),
|
||||||
|
Assignment(nameof(QuestStep.CombatItemUse), step.CombatItemUse,
|
||||||
|
emptyStep.CombatItemUse)
|
||||||
|
.AsSyntaxNodeOrToken(),
|
||||||
Assignment(nameof(QuestStep.CombatDelaySecondsAtStart),
|
Assignment(nameof(QuestStep.CombatDelaySecondsAtStart),
|
||||||
step.CombatDelaySecondsAtStart,
|
step.CombatDelaySecondsAtStart,
|
||||||
emptyStep.CombatDelaySecondsAtStart)
|
emptyStep.CombatDelaySecondsAtStart)
|
||||||
|
@ -71,6 +71,7 @@ public static class RoslynShortcuts
|
|||||||
GatheringNodeGroup nodeGroup => nodeGroup.ToExpressionSyntax(),
|
GatheringNodeGroup nodeGroup => nodeGroup.ToExpressionSyntax(),
|
||||||
GatheringNode nodeLocation => nodeLocation.ToExpressionSyntax(),
|
GatheringNode nodeLocation => nodeLocation.ToExpressionSyntax(),
|
||||||
GatheringLocation location => location.ToExpressionSyntax(),
|
GatheringLocation location => location.ToExpressionSyntax(),
|
||||||
|
CombatItemUse combatItemUse => combatItemUse.ToExpressionSyntax(),
|
||||||
not null when value.GetType().IsEnum => MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
|
not null when value.GetType().IsEnum => MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
|
||||||
IdentifierName(value.GetType().Name), IdentifierName(value.GetType().GetEnumName(value)!)),
|
IdentifierName(value.GetType().Name), IdentifierName(value.GetType().GetEnumName(value)!)),
|
||||||
_ => throw new Exception($"Unsupported data type {value.GetType()} = {value}")
|
_ => throw new Exception($"Unsupported data type {value.GetType()} = {value}")
|
||||||
|
@ -329,9 +329,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": -0.75614685,
|
"X": 3.8795898,
|
||||||
"Y": 38.80212,
|
"Y": 38.80212,
|
||||||
"Z": -11.007636
|
"Z": 0.40251642
|
||||||
},
|
},
|
||||||
"TerritoryId": 146,
|
"TerritoryId": 146,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
@ -359,7 +359,8 @@
|
|||||||
null,
|
null,
|
||||||
128
|
128
|
||||||
],
|
],
|
||||||
"Fly": true
|
"Fly": true,
|
||||||
|
"DisableNavmesh": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2000078,
|
"DataId": 2000078,
|
||||||
|
@ -112,9 +112,18 @@
|
|||||||
"SkipConditions": {
|
"SkipConditions": {
|
||||||
"AetheryteShortcutIf": {
|
"AetheryteShortcutIf": {
|
||||||
"InSameTerritory": true
|
"InSameTerritory": true
|
||||||
|
},
|
||||||
|
"StepIf": {
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"Comment": "TODO Verify enemy id"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2002309,
|
"DataId": 2002309,
|
||||||
|
@ -21,16 +21,30 @@
|
|||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"DataId": 1001426,
|
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": 123.33862,
|
"X": 2.7922537,
|
||||||
"Y": 30.999996,
|
"Y": 8.206551,
|
||||||
"Z": -384.9394
|
"Z": -274.32318
|
||||||
},
|
},
|
||||||
"TerritoryId": 141,
|
"TerritoryId": 141,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "WalkTo",
|
||||||
"Comment": "'Forging the Spirit'",
|
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
|
||||||
"AetheryteShortcut": "Central Thanalan - Black Brush Station"
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"InSameTerritory": true
|
||||||
|
},
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 123.33862,
|
||||||
|
"Y": 30.999996,
|
||||||
|
"Z": -384.9394
|
||||||
|
},
|
||||||
|
"TerritoryId": 141,
|
||||||
|
"MaximumDistance": 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1001426,
|
"DataId": 1001426,
|
||||||
@ -40,8 +54,8 @@
|
|||||||
"Z": -384.9394
|
"Z": -384.9394
|
||||||
},
|
},
|
||||||
"TerritoryId": 141,
|
"TerritoryId": 141,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "AcceptQuest",
|
||||||
"Comment": "Quest Turn-In 'Forging the Spirit'"
|
"PickUpQuestId": 638
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1001425,
|
"DataId": 1001425,
|
||||||
|
@ -36,6 +36,16 @@
|
|||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"TargetTerritoryId": 146
|
"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,
|
"TerritoryId": 146,
|
||||||
"InteractionType": "AttuneAetheryte",
|
"InteractionType": "AttuneAetheryte",
|
||||||
|
@ -67,7 +67,7 @@
|
|||||||
"TerritoryId": 148,
|
"TerritoryId": 148,
|
||||||
"InteractionType": "Duty",
|
"InteractionType": "Duty",
|
||||||
"ContentFinderConditionId": 6,
|
"ContentFinderConditionId": 6,
|
||||||
"AutoDutyEnabled": true
|
"AutoDutyEnabled": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
"TerritoryId": 137,
|
"TerritoryId": 137,
|
||||||
"InteractionType": "Duty",
|
"InteractionType": "Duty",
|
||||||
"ContentFinderConditionId": 8,
|
"ContentFinderConditionId": 8,
|
||||||
"AutoDutyEnabled": true
|
"AutoDutyEnabled": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -103,7 +103,8 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 155,
|
"TerritoryId": 155,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"$": "NW Skyfire Locks door (inside)"
|
"$": "NW Skyfire Locks door (inside)",
|
||||||
|
"Mount": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -49,7 +49,8 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 155,
|
"TerritoryId": 155,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"Comment": "North Whitebrim, Stairs (bottom)"
|
"Comment": "North Whitebrim, Stairs (bottom)",
|
||||||
|
"Mount": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -35,10 +35,13 @@
|
|||||||
"Z": 89.58569
|
"Z": 89.58569
|
||||||
},
|
},
|
||||||
"TerritoryId": 155,
|
"TerritoryId": 155,
|
||||||
"InteractionType": "Instruction",
|
"InteractionType": "Combat",
|
||||||
"Comment": "Use Quest item on enemy to weaken it first",
|
|
||||||
"$": "Status Effects: 22 (HP Penalty) + 62 (Damage Down)",
|
|
||||||
"EnemySpawnType": "AfterInteraction",
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"CombatItemUse": {
|
||||||
|
"ItemId": 2000961,
|
||||||
|
"Condition": "MissingStatus",
|
||||||
|
"Value": 22
|
||||||
|
},
|
||||||
"ComplexCombatData": [
|
"ComplexCombatData": [
|
||||||
{
|
{
|
||||||
"DataId": 2196
|
"DataId": 2196
|
||||||
|
@ -76,6 +76,15 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 303.96317,
|
||||||
|
"Y": -36.40591,
|
||||||
|
"Z": 316.74185
|
||||||
|
},
|
||||||
|
"TerritoryId": 138,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1006501,
|
"DataId": 1006501,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -26,6 +26,15 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 303.96317,
|
||||||
|
"Y": -36.40591,
|
||||||
|
"Z": 316.74185
|
||||||
|
},
|
||||||
|
"TerritoryId": 138,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1007640,
|
"DataId": 1007640,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
|
"Comment": "'Invalid target' messages can just be bad positioning?",
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -50,9 +51,9 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 156,
|
"TerritoryId": 156,
|
||||||
"InteractionType": "Combat",
|
"InteractionType": "Combat",
|
||||||
|
"DelaySecondsAtStart": 2,
|
||||||
"EnemySpawnType": "AfterItemUse",
|
"EnemySpawnType": "AfterItemUse",
|
||||||
"ItemId": 2000766,
|
"ItemId": 2000766,
|
||||||
"GroundTarget": true,
|
|
||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
46
|
46
|
||||||
],
|
],
|
||||||
@ -86,6 +87,27 @@
|
|||||||
64
|
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,
|
"DataId": 2002234,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -159,9 +181,9 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 156,
|
"TerritoryId": 156,
|
||||||
"InteractionType": "Combat",
|
"InteractionType": "Combat",
|
||||||
|
"DelaySecondsAtStart": 2,
|
||||||
"EnemySpawnType": "AfterItemUse",
|
"EnemySpawnType": "AfterItemUse",
|
||||||
"ItemId": 2000766,
|
"ItemId": 2000766,
|
||||||
"GroundTarget": true,
|
|
||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
46
|
46
|
||||||
],
|
],
|
||||||
@ -218,7 +240,8 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 156,
|
"TerritoryId": 156,
|
||||||
"InteractionType": "UseItem",
|
"InteractionType": "UseItem",
|
||||||
"ItemId": 2000766
|
"ItemId": 2000766,
|
||||||
|
"DelaySecondsAtStart": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
"Z": -609.4606
|
"Z": -609.4606
|
||||||
},
|
},
|
||||||
"TerritoryId": 156,
|
"TerritoryId": 156,
|
||||||
"InteractionType": "UseItem",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"ItemId": 2000771
|
"ItemId": 2000771
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -35,13 +35,163 @@
|
|||||||
"Z": -225.17743
|
"Z": -225.17743
|
||||||
},
|
},
|
||||||
"TerritoryId": 147,
|
"TerritoryId": 147,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"InSameTerritory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
|
"$": "This doesn't include the DRK/MCH/AST coffers that exist at level 50, but you cannot obtain them until HW",
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 31337,
|
||||||
|
"$": "Lv49 Weapon Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20642,
|
||||||
|
"$": "Lv50 PLD Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20643,
|
||||||
|
"$": "Lv50 MNK Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20644,
|
||||||
|
"$": "Lv50 WAR Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20645,
|
||||||
|
"$": "Lv50 DRG Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20646,
|
||||||
|
"$": "Lv50 BRD Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20647,
|
||||||
|
"$": "Lv50 NIN Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20648,
|
||||||
|
"$": "Lv50 WHM Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20649,
|
||||||
|
"$": "Lv50 BLM Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20650,
|
||||||
|
"$": "Lv50 SMN Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 147,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 20651,
|
||||||
|
"$": "Lv50 SCH Coffer",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Item": {
|
||||||
|
"NotInInventory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"TerritoryId": 147,
|
"TerritoryId": 147,
|
||||||
"InteractionType": "Duty",
|
"InteractionType": "Duty",
|
||||||
|
@ -5,6 +5,71 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 132,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 30362,
|
||||||
|
"TargetTerritoryId": 140,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"InTerritory": [
|
||||||
|
140,
|
||||||
|
212
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -492.96475,
|
||||||
|
"Y": 20.999884,
|
||||||
|
"Z": -380.82272
|
||||||
|
},
|
||||||
|
"TerritoryId": 140,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"$": "Avoid walking around Waking Sands table",
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"InTerritory": [
|
||||||
|
212
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2001711,
|
||||||
|
"Position": {
|
||||||
|
"X": -480.9181,
|
||||||
|
"Y": 18.00103,
|
||||||
|
"Z": -386.862
|
||||||
|
},
|
||||||
|
"TerritoryId": 140,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"TargetTerritoryId": 212,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"InTerritory": [
|
||||||
|
212
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2001715,
|
||||||
|
"Position": {
|
||||||
|
"X": 23.23944,
|
||||||
|
"Y": 2.090454,
|
||||||
|
"Z": -0.015319824
|
||||||
|
},
|
||||||
|
"TerritoryId": 212,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"TargetTerritoryId": 212,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"ExtraCondition": "WakingSandsSolar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1006690,
|
"DataId": 1006690,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -29,7 +94,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 212,
|
"TerritoryId": 212,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"TargetTerritoryId": 212
|
"TargetTerritoryId": 212,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"InTerritory": [
|
||||||
|
140
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2001716,
|
"DataId": 2001716,
|
||||||
@ -40,7 +112,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 212,
|
"TerritoryId": 212,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"TargetTerritoryId": 140
|
"TargetTerritoryId": 140,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"InTerritory": [
|
||||||
|
140
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1006578,
|
"DataId": 1006578,
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1001426,
|
||||||
|
"Position": {
|
||||||
|
"X": 123.33862,
|
||||||
|
"Y": 30.999996,
|
||||||
|
"Z": -384.9394
|
||||||
|
},
|
||||||
|
"TerritoryId": 141,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1001426,
|
||||||
|
"Position": {
|
||||||
|
"X": 123.33862,
|
||||||
|
"Y": 30.999996,
|
||||||
|
"Z": -384.9394
|
||||||
|
},
|
||||||
|
"TerritoryId": 141,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -17,7 +17,15 @@
|
|||||||
"AetheryteShortcut": "Azim Steppe - Dawn Throne",
|
"AetheryteShortcut": "Azim Steppe - Dawn Throne",
|
||||||
"SkipConditions": {
|
"SkipConditions": {
|
||||||
"AetheryteShortcutIf": {
|
"AetheryteShortcutIf": {
|
||||||
"InSameTerritory": true
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 79.24011,
|
||||||
|
"Y": 114.90497,
|
||||||
|
"Z": 95.994385
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025769,
|
||||||
|
"Position": {
|
||||||
|
"X": 511.43652,
|
||||||
|
"Y": 29.907833,
|
||||||
|
"Z": -404.9287
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 5,
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025770,
|
||||||
|
"Position": {
|
||||||
|
"X": 511.65015,
|
||||||
|
"Y": 30.105957,
|
||||||
|
"Z": -407.24805
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22725,
|
||||||
|
"ItemCount": 2,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22621,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22647,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025769,
|
||||||
|
"Position": {
|
||||||
|
"X": 511.43652,
|
||||||
|
"Y": 29.907833,
|
||||||
|
"Z": -404.9287
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2009491,
|
||||||
|
"Position": {
|
||||||
|
"X": -70.81714,
|
||||||
|
"Y": 66.9718,
|
||||||
|
"Z": -421.89673
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Say",
|
||||||
|
"Fly": true,
|
||||||
|
"ChatMessage": {
|
||||||
|
"Key": "TEXT_BANNAM302_03104_SAYTODO_000_050"
|
||||||
|
},
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2009492,
|
||||||
|
"Position": {
|
||||||
|
"X": 725.307,
|
||||||
|
"Y": -1.5717163,
|
||||||
|
"Z": -423.81934
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Say",
|
||||||
|
"Fly": true,
|
||||||
|
"ChatMessage": {
|
||||||
|
"Key": "TEXT_BANNAM302_03104_SAYTODO_000_050"
|
||||||
|
},
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025641,
|
||||||
|
"Position": {
|
||||||
|
"X": -54.398438,
|
||||||
|
"Y": 76.83682,
|
||||||
|
"Z": -560.8148
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 5,
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025642,
|
||||||
|
"Position": {
|
||||||
|
"X": -50.370117,
|
||||||
|
"Y": 76.798584,
|
||||||
|
"Z": -558.77014
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22726,
|
||||||
|
"ItemCount": 1,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025773,
|
||||||
|
"Position": {
|
||||||
|
"X": -311.29932,
|
||||||
|
"Y": 50.549908,
|
||||||
|
"Z": -225.8183
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 5,
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025774,
|
||||||
|
"Position": {
|
||||||
|
"X": -308.73578,
|
||||||
|
"Y": 50.247925,
|
||||||
|
"Z": -226.09296
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22727,
|
||||||
|
"ItemCount": 2,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,129 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025775,
|
||||||
|
"Position": {
|
||||||
|
"X": -145.4032,
|
||||||
|
"Y": 27.922167,
|
||||||
|
"Z": -36.05713
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 5,
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025776,
|
||||||
|
"Position": {
|
||||||
|
"X": -143.45007,
|
||||||
|
"Y": 27.66455,
|
||||||
|
"Z": -39.139465
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22728,
|
||||||
|
"ItemCount": 3,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22624,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22650,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025777,
|
||||||
|
"Position": {
|
||||||
|
"X": -596.9177,
|
||||||
|
"Y": 64.000984,
|
||||||
|
"Z": -285.0843
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 5,
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025778,
|
||||||
|
"Position": {
|
||||||
|
"X": -597.0398,
|
||||||
|
"Y": 63.82837,
|
||||||
|
"Z": -288.65497
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22729,
|
||||||
|
"ItemCount": 1,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22625,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22651,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025777,
|
||||||
|
"Position": {
|
||||||
|
"X": -596.9177,
|
||||||
|
"Y": 64.000984,
|
||||||
|
"Z": -285.0843
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -642.094,
|
||||||
|
"Y": 18.562637,
|
||||||
|
"Z": 399.83704
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1019330,
|
||||||
|
"Position": {
|
||||||
|
"X": -746.7918,
|
||||||
|
"Y": 7.8459983,
|
||||||
|
"Z": 398.27563
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 5,
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,142 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025779,
|
||||||
|
"Position": {
|
||||||
|
"X": 194.04845,
|
||||||
|
"Y": 13.27476,
|
||||||
|
"Z": 121.84426
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dawn Throne",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025780,
|
||||||
|
"Position": {
|
||||||
|
"X": 192.30945,
|
||||||
|
"Y": 13.260071,
|
||||||
|
"Z": 122.545166
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22730,
|
||||||
|
"ItemCount": 2,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22626,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22652,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025779,
|
||||||
|
"Position": {
|
||||||
|
"X": 193.04187,
|
||||||
|
"Y": 13.040566,
|
||||||
|
"Z": 120.19531
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,160 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025781,
|
||||||
|
"Position": {
|
||||||
|
"X": 573.96814,
|
||||||
|
"Y": -19.505817,
|
||||||
|
"Z": 427.66455
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Reunion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025782,
|
||||||
|
"Position": {
|
||||||
|
"X": 573.7544,
|
||||||
|
"Y": -19.516357,
|
||||||
|
"Z": 430.10596
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22731,
|
||||||
|
"ItemCount": 1,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22627,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22653,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025781,
|
||||||
|
"Position": {
|
||||||
|
"X": 573.96814,
|
||||||
|
"Y": -19.505817,
|
||||||
|
"Z": 427.66455
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2009494,
|
||||||
|
"Position": {
|
||||||
|
"X": 575.09717,
|
||||||
|
"Y": -19.272217,
|
||||||
|
"Z": 424.97888
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,143 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025783,
|
||||||
|
"Position": {
|
||||||
|
"X": 122.6062,
|
||||||
|
"Y": 39.55857,
|
||||||
|
"Z": -336.5683
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dawn Throne",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 122.6062,
|
||||||
|
"Y": 39.55857,
|
||||||
|
"Z": -336.5683
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025784,
|
||||||
|
"Position": {
|
||||||
|
"X": 125.68848,
|
||||||
|
"Y": 39.96338,
|
||||||
|
"Z": -335.8969
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22732,
|
||||||
|
"ItemCount": 2,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22628,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22654,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025787,
|
||||||
|
"Position": {
|
||||||
|
"X": 389.70007,
|
||||||
|
"Y": -8.514979,
|
||||||
|
"Z": 487.93762
|
||||||
|
},
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Reunion",
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025788,
|
||||||
|
"Position": {
|
||||||
|
"X": 391.9889,
|
||||||
|
"Y": -8.529846,
|
||||||
|
"Z": 489.55518
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22734,
|
||||||
|
"ItemCount": 2,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22630,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22656,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025787,
|
||||||
|
"Position": {
|
||||||
|
"X": 389.70007,
|
||||||
|
"Y": -8.514979,
|
||||||
|
"Z": 487.93762
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025789,
|
||||||
|
"Position": {
|
||||||
|
"X": 594.93384,
|
||||||
|
"Y": 23.164816,
|
||||||
|
"Z": -421.80518
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dawn Throne",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025790,
|
||||||
|
"Position": {
|
||||||
|
"X": 594.41516,
|
||||||
|
"Y": 23.208984,
|
||||||
|
"Z": -423.81934
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22735,
|
||||||
|
"ItemCount": 3,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22631,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22657,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025789,
|
||||||
|
"Position": {
|
||||||
|
"X": 594.93384,
|
||||||
|
"Y": 23.164816,
|
||||||
|
"Z": -421.80518
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,125 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025805,
|
||||||
|
"Position": {
|
||||||
|
"X": 733.6079,
|
||||||
|
"Y": 0.64432836,
|
||||||
|
"Z": -164.78223
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dawn Throne",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025806,
|
||||||
|
"Position": {
|
||||||
|
"X": 733.15015,
|
||||||
|
"Y": 0.5340576,
|
||||||
|
"Z": -162.21869
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22739,
|
||||||
|
"ItemCount": 1,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22635,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22661,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025602,
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,225 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025605,
|
||||||
|
"Position": {
|
||||||
|
"X": -766.7506,
|
||||||
|
"Y": 127.43907,
|
||||||
|
"Z": 91.11157
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025601,
|
||||||
|
"Position": {
|
||||||
|
"X": -766.7506,
|
||||||
|
"Y": 127.43907,
|
||||||
|
"Z": 91.11157
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -283.0104,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 508.54376
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025702,
|
||||||
|
"Position": {
|
||||||
|
"X": -279.25543,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 489.2804
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025768,
|
||||||
|
"Position": {
|
||||||
|
"X": -292.2561,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 489.76868
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025701,
|
||||||
|
"Position": {
|
||||||
|
"X": -280.81183,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 524.52893
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025605,
|
||||||
|
"Position": {
|
||||||
|
"X": -766.7506,
|
||||||
|
"Y": 127.43907,
|
||||||
|
"Z": 91.11157
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025703,
|
||||||
|
"Position": {
|
||||||
|
"X": -734.0658,
|
||||||
|
"Y": 127.41788,
|
||||||
|
"Z": 100.8468
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1025609,
|
||||||
|
"Position": {
|
||||||
|
"X": -770.4738,
|
||||||
|
"Y": 127.42798,
|
||||||
|
"Z": 85.28259
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Craft",
|
||||||
|
"ItemId": 22721,
|
||||||
|
"ItemCount": 2,
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"DoH"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22617,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Miner"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "Gather",
|
||||||
|
"ItemsToGather": [
|
||||||
|
{
|
||||||
|
"ItemId": 22643,
|
||||||
|
"ItemCount": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"RequiredQuestAcceptedJob": [
|
||||||
|
"Botanist"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1025704,
|
||||||
|
"Position": {
|
||||||
|
"X": -734.8898,
|
||||||
|
"Y": 127.42169,
|
||||||
|
"Z": 99.99231
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Mount": true,
|
||||||
|
"AetheryteShortcut": "Azim Steppe - Dhoro Iloh",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -780.148,
|
||||||
|
"Y": 128.25195,
|
||||||
|
"Z": 97.154175
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,95 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019262,
|
||||||
|
"Position": {
|
||||||
|
"X": 445.76172,
|
||||||
|
"Y": 58.67623,
|
||||||
|
"Z": -155.62683
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 445.76172,
|
||||||
|
"Y": 58.67623,
|
||||||
|
"Z": -155.62683
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2008520,
|
||||||
|
"Position": {
|
||||||
|
"X": 476.85962,
|
||||||
|
"Y": 58.304688,
|
||||||
|
"Z": -178.08807
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Mount": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2008521,
|
||||||
|
"Position": {
|
||||||
|
"X": 477.8667,
|
||||||
|
"Y": 59.098145,
|
||||||
|
"Z": -177.66083
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019302,
|
||||||
|
"Position": {
|
||||||
|
"X": -279.347,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 498.49683
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2748
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,140 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 472.4036,
|
||||||
|
"Y": 58.568016,
|
||||||
|
"Z": -181.87
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2008459,
|
||||||
|
"Position": {
|
||||||
|
"X": 394.5525,
|
||||||
|
"Y": 80.88806,
|
||||||
|
"Z": -194.17108
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022399,
|
||||||
|
"Position": {
|
||||||
|
"X": 392.69092,
|
||||||
|
"Y": 80.90235,
|
||||||
|
"Z": -194.9035
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Emote",
|
||||||
|
"Emote": "rally"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 497.38757,
|
||||||
|
"Y": 55.17306,
|
||||||
|
"Z": 191.36812
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"Fly": true,
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
7539
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022400,
|
||||||
|
"Position": {
|
||||||
|
"X": 499.9618,
|
||||||
|
"Y": 55.28981,
|
||||||
|
"Z": 191.18018
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_STMBDZ413_02736_Q1_000_000",
|
||||||
|
"Answer": "TEXT_STMBDZ413_02736_A1_000_002"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 435.81787,
|
||||||
|
"Y": 68.84845,
|
||||||
|
"Z": -94.02999
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 150
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2737
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,132 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 472.4036,
|
||||||
|
"Y": 58.568016,
|
||||||
|
"Z": -181.87
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022399,
|
||||||
|
"Position": {
|
||||||
|
"X": 392.69092,
|
||||||
|
"Y": 80.90235,
|
||||||
|
"Z": -194.9035
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022421,
|
||||||
|
"Position": {
|
||||||
|
"X": 634.5464,
|
||||||
|
"Y": 86.07644,
|
||||||
|
"Z": -146.74603
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022423,
|
||||||
|
"Position": {
|
||||||
|
"X": 499.71765,
|
||||||
|
"Y": 66.36111,
|
||||||
|
"Z": -16.586609
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"Fly": true,
|
||||||
|
"InteractionType": "Emote",
|
||||||
|
"Emote": "psych"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022424,
|
||||||
|
"Position": {
|
||||||
|
"X": 475.51685,
|
||||||
|
"Y": 68.02852,
|
||||||
|
"Z": -106.30963
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 435.81787,
|
||||||
|
"Y": 68.84845,
|
||||||
|
"Z": -94.02999
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 150
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2738
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 472.4036,
|
||||||
|
"Y": 58.568016,
|
||||||
|
"Z": -181.87
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022414,
|
||||||
|
"Position": {
|
||||||
|
"X": 605.249,
|
||||||
|
"Y": 67.79578,
|
||||||
|
"Z": -137.49908
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_STMBDZ415_02738_Q1_000_000",
|
||||||
|
"Answer": "TEXT_STMBDZ415_02738_A1_000_001"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2008490,
|
||||||
|
"Position": {
|
||||||
|
"X": 627.8019,
|
||||||
|
"Y": 84.97742,
|
||||||
|
"Z": -98.49707
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2008491,
|
||||||
|
"Position": {
|
||||||
|
"X": 664.8203,
|
||||||
|
"Y": 92.088135,
|
||||||
|
"Z": -107.774536
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
],
|
||||||
|
"Mount": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2008492,
|
||||||
|
"Position": {
|
||||||
|
"X": 657.98413,
|
||||||
|
"Y": 85.22156,
|
||||||
|
"Z": -150.56079
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
],
|
||||||
|
"Mount": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022414,
|
||||||
|
"Position": {
|
||||||
|
"X": 605.249,
|
||||||
|
"Y": 67.79578,
|
||||||
|
"Z": -137.49908
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 435.81787,
|
||||||
|
"Y": 68.84845,
|
||||||
|
"Z": -94.02999
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 150
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2739
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,151 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022425,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.3806,
|
||||||
|
"Y": 58.51295,
|
||||||
|
"Z": -180.95679
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 472.4036,
|
||||||
|
"Y": 58.568016,
|
||||||
|
"Z": -181.87
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022417,
|
||||||
|
"Position": {
|
||||||
|
"X": 365.6825,
|
||||||
|
"Y": 100.83898,
|
||||||
|
"Z": -93.91931
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022416,
|
||||||
|
"Position": {
|
||||||
|
"X": 675.92883,
|
||||||
|
"Y": 98.45921,
|
||||||
|
"Z": -103.80713
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022418,
|
||||||
|
"Position": {
|
||||||
|
"X": 734.5845,
|
||||||
|
"Y": 119.698425,
|
||||||
|
"Z": -35.05005
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 720.75977,
|
||||||
|
"Y": 116.93192,
|
||||||
|
"Z": -60.349487
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"Fly": true,
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
7540
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022418,
|
||||||
|
"Position": {
|
||||||
|
"X": 734.5845,
|
||||||
|
"Y": 119.698425,
|
||||||
|
"Z": -35.05005
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019312,
|
||||||
|
"Position": {
|
||||||
|
"X": 473.80774,
|
||||||
|
"Y": 58.448307,
|
||||||
|
"Z": -182.78784
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 435.81787,
|
||||||
|
"Y": 68.84845,
|
||||||
|
"Z": -94.02999
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"MaximumDistance": 150
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2740
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1022399,
|
||||||
|
"Position": {
|
||||||
|
"X": 392.69092,
|
||||||
|
"Y": 80.90235,
|
||||||
|
"Z": -194.9035
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023463,
|
||||||
|
"Position": {
|
||||||
|
"X": 563.8666,
|
||||||
|
"Y": 68.09528,
|
||||||
|
"Z": -11.306946
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023465,
|
||||||
|
"Position": {
|
||||||
|
"X": 462.76025,
|
||||||
|
"Y": 68.01855,
|
||||||
|
"Z": -106.55377
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 462.13455,
|
||||||
|
"Y": 68.01515,
|
||||||
|
"Z": -104.52245
|
||||||
|
},
|
||||||
|
"TerritoryId": 622,
|
||||||
|
"MaximumDistance": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -297.51367,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 508.2195
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1019298,
|
||||||
|
"Position": {
|
||||||
|
"X": -318.87692,
|
||||||
|
"Y": 17.974895,
|
||||||
|
"Z": 508.29004
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"StopDistance": 0.25
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019261,
|
||||||
|
"Position": {
|
||||||
|
"X": 403.00586,
|
||||||
|
"Y": 76.169815,
|
||||||
|
"Z": -148.8518
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -297.51367,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 508.2195
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1019298,
|
||||||
|
"Position": {
|
||||||
|
"X": -318.87692,
|
||||||
|
"Y": 17.974895,
|
||||||
|
"Z": 508.29004
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"StopDistance": 0.25
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1019261,
|
||||||
|
"Position": {
|
||||||
|
"X": 403.00586,
|
||||||
|
"Y": 76.169815,
|
||||||
|
"Z": -148.8518
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Yanxia - Namai",
|
||||||
|
"NextQuestId": 2740
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,143 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023236,
|
||||||
|
"Position": {
|
||||||
|
"X": -300.06866,
|
||||||
|
"Y": 16.806112,
|
||||||
|
"Z": 539.45215
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -463.34363,
|
||||||
|
"Y": 1.3011811,
|
||||||
|
"Z": 578.3476
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1023238,
|
||||||
|
"Position": {
|
||||||
|
"X": -464.49988,
|
||||||
|
"Y": 1.3011812,
|
||||||
|
"Z": 577.32495
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -487.5986,
|
||||||
|
"Y": -0.5999999,
|
||||||
|
"Z": 578.5466
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Dive",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2008799,
|
||||||
|
"Position": {
|
||||||
|
"X": -549.7063,
|
||||||
|
"Y": -109.51398,
|
||||||
|
"Z": 569.32935
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"Mount": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -487.5986,
|
||||||
|
"Y": -0.5999999,
|
||||||
|
"Z": 578.5466
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true,
|
||||||
|
"RestartNavigationIfCancelled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -463.34363,
|
||||||
|
"Y": 1.3011811,
|
||||||
|
"Z": 578.3476
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1023238,
|
||||||
|
"Position": {
|
||||||
|
"X": -464.49988,
|
||||||
|
"Y": 1.3011812,
|
||||||
|
"Z": 577.32495
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2749
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,138 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023239,
|
||||||
|
"Position": {
|
||||||
|
"X": -392.72144,
|
||||||
|
"Y": 46.670254,
|
||||||
|
"Z": 452.93335
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -239.56377,
|
||||||
|
"Y": 49.354053,
|
||||||
|
"Z": 284.94565
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"Flying": "Locked"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1023240,
|
||||||
|
"Position": {
|
||||||
|
"X": -258.6557,
|
||||||
|
"Y": 38.181896,
|
||||||
|
"Z": 217.9751
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -287.37323,
|
||||||
|
"Y": 39.150906,
|
||||||
|
"Z": 206.95801
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"Fly": true,
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
7541
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023240,
|
||||||
|
"Position": {
|
||||||
|
"X": -258.6557,
|
||||||
|
"Y": 38.181896,
|
||||||
|
"Z": 217.9751
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2008801,
|
||||||
|
"Position": {
|
||||||
|
"X": -234.24127,
|
||||||
|
"Y": 17.593567,
|
||||||
|
"Z": 486.9917
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2750
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 151.29321,
|
||||||
|
"Y": -0.2997286,
|
||||||
|
"Z": 229.44983
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"Fly": true,
|
||||||
|
"EnemySpawnType": "OverworldEnemies",
|
||||||
|
"ComplexCombatData": [
|
||||||
|
{
|
||||||
|
"DataId": 6682,
|
||||||
|
"KillCount": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2008802,
|
||||||
|
"Position": {
|
||||||
|
"X": -235.03479,
|
||||||
|
"Y": 17.654663,
|
||||||
|
"Z": 487.32727
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023243,
|
||||||
|
"Position": {
|
||||||
|
"X": -88.85327,
|
||||||
|
"Y": -0.35101318,
|
||||||
|
"Z": 654.4442
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2751
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,121 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "Theo",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023237,
|
||||||
|
"Position": {
|
||||||
|
"X": -233.72241,
|
||||||
|
"Y": 17.628202,
|
||||||
|
"Z": 485.3131
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023244,
|
||||||
|
"Position": {
|
||||||
|
"X": -290.15033,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 490.86743
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023245,
|
||||||
|
"Position": {
|
||||||
|
"X": 133.1654,
|
||||||
|
"Y": 13.172864,
|
||||||
|
"Z": 483.7871
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023246,
|
||||||
|
"Position": {
|
||||||
|
"X": 401.3275,
|
||||||
|
"Y": 14.6418705,
|
||||||
|
"Z": 630.15173
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 447.20697,
|
||||||
|
"Y": 14.621715,
|
||||||
|
"Z": 673.4272
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"Fly": true,
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
7525
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023246,
|
||||||
|
"Position": {
|
||||||
|
"X": 401.3275,
|
||||||
|
"Y": 14.6418705,
|
||||||
|
"Z": 630.15173
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1023244,
|
||||||
|
"Position": {
|
||||||
|
"X": -290.15033,
|
||||||
|
"Y": 17.31996,
|
||||||
|
"Z": 490.86743
|
||||||
|
},
|
||||||
|
"TerritoryId": 614,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
|
"NextQuestId": 2747
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
"Author": "liza",
|
"Author": "pot0to",
|
||||||
"Disabled": true,
|
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
@ -9,9 +8,9 @@
|
|||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": 787.0145,
|
"X": 787.0145,
|
||||||
"Y": -45.82774,
|
"Y": -45.82774,
|
||||||
"Z": -218.555
|
"Z": -218.555
|
||||||
},
|
},
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
@ -22,26 +21,56 @@
|
|||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
{
|
||||||
|
"DataId": 33005,
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": 788.1569,
|
"X": 214.7744,
|
||||||
"Y": -45.82557,
|
"Y": -19.57758,
|
||||||
"Z": -212.9306
|
"Z": 623.6767
|
||||||
},
|
},
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "Gather",
|
||||||
"AetheryteShortcut": "Rak'tika - Fanow",
|
"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
|
"Fly": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032643,
|
"DataId": 1032643,
|
||||||
"Position": {
|
"Position": {
|
||||||
"X": 787.0145,
|
"X": 787.0145,
|
||||||
"Y": -45.82774,
|
"Y": -45.82774,
|
||||||
"Z": -218.555
|
"Z": -218.555
|
||||||
},
|
},
|
||||||
"StopDistance": 7,
|
|
||||||
"TerritoryId": 817,
|
"TerritoryId": 817,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Rak'tika - Fanow",
|
||||||
|
"Fly": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,161 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050871,
|
||||||
|
"Position": {
|
||||||
|
"X": -51.895935,
|
||||||
|
"Y": -17.97287,
|
||||||
|
"Z": 182.7268
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] The For'ard Cabins"
|
||||||
|
],
|
||||||
|
"SkipConditions": {
|
||||||
|
"AetheryteShortcutIf": {
|
||||||
|
"InSameTerritory": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1001657,
|
||||||
|
"Position": {
|
||||||
|
"X": 94.80432,
|
||||||
|
"Y": 7.9804688,
|
||||||
|
"Z": -34.042908
|
||||||
|
},
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Ul'dah",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Ul'dah] Aetheryte Plaza",
|
||||||
|
"[Ul'dah] Sapphire Avenue Exchange"
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1006440,
|
||||||
|
"Position": {
|
||||||
|
"X": 140.3982,
|
||||||
|
"Y": 4,
|
||||||
|
"Z": -54.154297
|
||||||
|
},
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1051655,
|
||||||
|
"Position": {
|
||||||
|
"X": 137.74304,
|
||||||
|
"Y": 4,
|
||||||
|
"Z": 5.9662476
|
||||||
|
},
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 146.12386,
|
||||||
|
"Y": 4,
|
||||||
|
"Z": -23.562449
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Emote",
|
||||||
|
"Emote": "angry"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051656,
|
||||||
|
"Position": {
|
||||||
|
"X": 56.443115,
|
||||||
|
"Y": 10,
|
||||||
|
"Z": 5.935669
|
||||||
|
},
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2012114,
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 1.15,
|
||||||
|
"Z": 10.23451
|
||||||
|
},
|
||||||
|
"TerritoryId": 1255,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"TargetTerritoryId": 131,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"InTerritory": [
|
||||||
|
131
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1051656,
|
||||||
|
"Position": {
|
||||||
|
"X": 56.443115,
|
||||||
|
"Y": 10,
|
||||||
|
"Z": 5.935669
|
||||||
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"NextQuestId": 5189
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
129
QuestPaths/7.x - Dawntrail/Role Quests/5189_Imposing Views.json
Normal file
129
QuestPaths/7.x - Dawntrail/Role Quests/5189_Imposing Views.json
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051656,
|
||||||
|
"Position": {
|
||||||
|
"X": 56.443115,
|
||||||
|
"Y": 10,
|
||||||
|
"Z": 5.935669
|
||||||
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
|
"TerritoryId": 131,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014419,
|
||||||
|
"Position": {
|
||||||
|
"X": -158.86176,
|
||||||
|
"Y": 7.4921875,
|
||||||
|
"Z": 493.88867
|
||||||
|
},
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Southern Thanalan - Forgotten Springs",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051661,
|
||||||
|
"Position": {
|
||||||
|
"X": 1.7852783,
|
||||||
|
"Y": 19.026453,
|
||||||
|
"Z": 581.62805
|
||||||
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_KINGBZ002_05189_Q1_000_000",
|
||||||
|
"Answer": "TEXT_KINGBZ002_05189_A1_000_001"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051663,
|
||||||
|
"Position": {
|
||||||
|
"X": 51.68225,
|
||||||
|
"Y": 0.7631253,
|
||||||
|
"Z": 711.57385
|
||||||
|
},
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
18178
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051663,
|
||||||
|
"Position": {
|
||||||
|
"X": 51.68225,
|
||||||
|
"Y": 0.7631253,
|
||||||
|
"Z": 711.57385
|
||||||
|
},
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051668,
|
||||||
|
"Position": {
|
||||||
|
"X": 170.42798,
|
||||||
|
"Y": 15.943722,
|
||||||
|
"Z": 897.94763
|
||||||
|
},
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051668,
|
||||||
|
"Position": {
|
||||||
|
"X": 170.42798,
|
||||||
|
"Y": 15.943722,
|
||||||
|
"Z": 897.94763
|
||||||
|
},
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"NextQuestId": 5190
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,175 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051668,
|
||||||
|
"Position": {
|
||||||
|
"X": 170.42798,
|
||||||
|
"Y": 15.943722,
|
||||||
|
"Z": 897.94763
|
||||||
|
},
|
||||||
|
"TerritoryId": 146,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050871,
|
||||||
|
"Position": {
|
||||||
|
"X": -51.895935,
|
||||||
|
"Y": -17.97287,
|
||||||
|
"Z": 182.7268
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] The For'ard Cabins"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051670,
|
||||||
|
"Position": {
|
||||||
|
"X": -15.976257,
|
||||||
|
"Y": -19.928413,
|
||||||
|
"Z": 224.90259
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051675,
|
||||||
|
"Position": {
|
||||||
|
"X": 358.23608,
|
||||||
|
"Y": 5.957184,
|
||||||
|
"Z": 428.36658
|
||||||
|
},
|
||||||
|
"StopDistance": 1,
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Shaaloani - Hhusatahwi",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 363.81656,
|
||||||
|
"Y": 5.9295864,
|
||||||
|
"Z": 435.17932
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1051677,
|
||||||
|
"Position": {
|
||||||
|
"X": 371.4198,
|
||||||
|
"Y": 5.95728,
|
||||||
|
"Z": 425.4978
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051677,
|
||||||
|
"Position": {
|
||||||
|
"X": 371.4198,
|
||||||
|
"Y": 5.95728,
|
||||||
|
"Z": 425.4978
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "Emote",
|
||||||
|
"Emote": "unbound"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 6,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051682,
|
||||||
|
"Position": {
|
||||||
|
"X": 387.5028,
|
||||||
|
"Y": -0.60167974,
|
||||||
|
"Z": 426.99304
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 7,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 425.24307,
|
||||||
|
"Y": 0.7699772,
|
||||||
|
"Z": 473.79095
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1051684,
|
||||||
|
"Position": {
|
||||||
|
"X": 426.04712,
|
||||||
|
"Y": 0.7461932,
|
||||||
|
"Z": 472.3125
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050871,
|
||||||
|
"Position": {
|
||||||
|
"X": -51.895935,
|
||||||
|
"Y": -17.97287,
|
||||||
|
"Z": 182.7268
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] The For'ard Cabins"
|
||||||
|
],
|
||||||
|
"NextQuestId": 5191
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
182
QuestPaths/7.x - Dawntrail/Role Quests/5191_Bar the Passage.json
Normal file
182
QuestPaths/7.x - Dawntrail/Role Quests/5191_Bar the Passage.json
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050871,
|
||||||
|
"Position": {
|
||||||
|
"X": -51.895935,
|
||||||
|
"Y": -17.97287,
|
||||||
|
"Z": 182.7268
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051689,
|
||||||
|
"Position": {
|
||||||
|
"X": 273.33484,
|
||||||
|
"Y": 15.999998,
|
||||||
|
"Z": 740.6576
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "SinglePlayerDuty",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] The For'ard Cabins",
|
||||||
|
"[Tuliyollal] Xak Tural Skygate (Shaaloani)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051691,
|
||||||
|
"Position": {
|
||||||
|
"X": 273.85364,
|
||||||
|
"Y": 15.999996,
|
||||||
|
"Z": 738.2771
|
||||||
|
},
|
||||||
|
"TerritoryId": 1190,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050871,
|
||||||
|
"Position": {
|
||||||
|
"X": -51.895935,
|
||||||
|
"Y": -17.97287,
|
||||||
|
"Z": 182.7268
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Tuliyollal",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] The For'ard Cabins"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051672,
|
||||||
|
"Position": {
|
||||||
|
"X": -14.816589,
|
||||||
|
"Y": -19.881973,
|
||||||
|
"Z": 223.3158
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 6,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051673,
|
||||||
|
"Position": {
|
||||||
|
"X": -15.243774,
|
||||||
|
"Y": -19.762682,
|
||||||
|
"Z": 221.72876
|
||||||
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 7,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051670,
|
||||||
|
"Position": {
|
||||||
|
"X": -15.976257,
|
||||||
|
"Y": -19.928413,
|
||||||
|
"Z": 224.90259
|
||||||
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 8,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051671,
|
||||||
|
"Position": {
|
||||||
|
"X": -17.95996,
|
||||||
|
"Y": -19.784014,
|
||||||
|
"Z": 224.17017
|
||||||
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 9,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051674,
|
||||||
|
"Position": {
|
||||||
|
"X": -16.617126,
|
||||||
|
"Y": -19.752277,
|
||||||
|
"Z": 222.64429
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -44.643284,
|
||||||
|
"Y": -17.972864,
|
||||||
|
"Z": 203.87883
|
||||||
|
},
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1046521,
|
||||||
|
"Position": {
|
||||||
|
"X": -46.616333,
|
||||||
|
"Y": -17.97287,
|
||||||
|
"Z": 180.3158
|
||||||
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
|
"TerritoryId": 1185,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -96,6 +96,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 1188,
|
"TerritoryId": 1188,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true,
|
||||||
"NextQuestId": 5084
|
"NextQuestId": 5084
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -47,6 +47,10 @@
|
|||||||
},
|
},
|
||||||
"Comment": {
|
"Comment": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
},
|
||||||
|
"$": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Dev Comment (not visible in-game)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
@ -183,7 +187,8 @@
|
|||||||
"null"
|
"null"
|
||||||
],
|
],
|
||||||
"description": "The Item to use",
|
"description": "The Item to use",
|
||||||
"exclusiveMinimum": 0
|
"exclusiveMinimum": 0,
|
||||||
|
"maximum": 2010000
|
||||||
},
|
},
|
||||||
"SkipConditions": {
|
"SkipConditions": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
@ -212,7 +217,10 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Diving": {
|
"Diving": {
|
||||||
"type": ["boolean", "null"]
|
"type": [
|
||||||
|
"boolean",
|
||||||
|
"null"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"NotTargetable": {
|
"NotTargetable": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
@ -291,6 +299,7 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"WakingSandsMainArea",
|
"WakingSandsMainArea",
|
||||||
|
"WakingSandsSolar",
|
||||||
"RisingStonesSolar",
|
"RisingStonesSolar",
|
||||||
"RoguesGuild",
|
"RoguesGuild",
|
||||||
"DockStorehouse"
|
"DockStorehouse"
|
||||||
@ -648,13 +657,15 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"ItemId": {
|
"ItemId": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"maximum": 2010000
|
||||||
},
|
},
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"Incapacitated",
|
"Incapacitated",
|
||||||
"Health%"
|
"Health%",
|
||||||
|
"MissingStatus"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Value": {
|
"Value": {
|
||||||
@ -695,9 +706,7 @@
|
|||||||
"const": "UseItem"
|
"const": "UseItem"
|
||||||
},
|
},
|
||||||
"ItemId": {
|
"ItemId": {
|
||||||
"not": {
|
"minimum": 2000000
|
||||||
"const": 30362
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -709,25 +718,37 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"if": {
|
"if": {
|
||||||
"anyOf": [
|
"properties": {
|
||||||
{
|
"InteractionType": {
|
||||||
"properties": {
|
"const": "UseItem"
|
||||||
"InteractionType": {
|
|
||||||
"const": "UseItem"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"InteractionType": {
|
|
||||||
"const": "Combat"
|
|
||||||
},
|
|
||||||
"EnemySpawnType": {
|
|
||||||
"const": "AfterItemUse"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"properties": {
|
||||||
|
"GroundTarget": {
|
||||||
|
"type": [
|
||||||
|
"boolean",
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"ItemId"
|
||||||
]
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"properties": {
|
||||||
|
"InteractionType": {
|
||||||
|
"const": "Combat"
|
||||||
|
},
|
||||||
|
"EnemySpawnType": {
|
||||||
|
"const": "AfterItemUse"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"then": {
|
"then": {
|
||||||
"properties": {
|
"properties": {
|
||||||
@ -860,7 +881,9 @@
|
|||||||
"mogdance",
|
"mogdance",
|
||||||
"salute",
|
"salute",
|
||||||
"laugh",
|
"laugh",
|
||||||
"greeting"
|
"greeting",
|
||||||
|
"angry",
|
||||||
|
"unbound"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,5 +9,6 @@ public sealed class CombatItemUseConditionConverter() : EnumConverter<ECombatIte
|
|||||||
{
|
{
|
||||||
{ ECombatItemUseCondition.Incapacitated, "Incapacitated" },
|
{ ECombatItemUseCondition.Incapacitated, "Incapacitated" },
|
||||||
{ ECombatItemUseCondition.HealthPercent, "Health%" },
|
{ ECombatItemUseCondition.HealthPercent, "Health%" },
|
||||||
|
{ ECombatItemUseCondition.MissingStatus, "MissingStatus" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
|
|||||||
{
|
{
|
||||||
private static readonly Dictionary<EEmote, string> Values = new()
|
private static readonly Dictionary<EEmote, string> Values = new()
|
||||||
{
|
{
|
||||||
|
{ EEmote.Angry, "angry" },
|
||||||
{ EEmote.Bow, "bow" },
|
{ EEmote.Bow, "bow" },
|
||||||
{ EEmote.Cheer, "cheer" },
|
{ EEmote.Cheer, "cheer" },
|
||||||
{ EEmote.Clap, "clap" },
|
{ EEmote.Clap, "clap" },
|
||||||
@ -45,5 +46,6 @@ public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
|
|||||||
{ EEmote.Box, "box" },
|
{ EEmote.Box, "box" },
|
||||||
{ EEmote.Greeting, "greeting" },
|
{ EEmote.Greeting, "greeting" },
|
||||||
{ EEmote.Uchiwasshoi, "uchiwasshoi" },
|
{ EEmote.Uchiwasshoi, "uchiwasshoi" },
|
||||||
|
{ EEmote.Unbound, "unbound" },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ public sealed class SkipConditionConverter() : EnumConverter<EExtraSkipCondition
|
|||||||
private static readonly Dictionary<EExtraSkipCondition, string> Values = new()
|
private static readonly Dictionary<EExtraSkipCondition, string> Values = new()
|
||||||
{
|
{
|
||||||
{ EExtraSkipCondition.WakingSandsMainArea, "WakingSandsMainArea" },
|
{ EExtraSkipCondition.WakingSandsMainArea, "WakingSandsMainArea" },
|
||||||
|
{ EExtraSkipCondition.WakingSandsSolar, "WakingSandsSolar" },
|
||||||
{ EExtraSkipCondition.RisingStonesSolar, "RisingStonesSolar"},
|
{ EExtraSkipCondition.RisingStonesSolar, "RisingStonesSolar"},
|
||||||
{ EExtraSkipCondition.RoguesGuild, "RoguesGuild"},
|
{ EExtraSkipCondition.RoguesGuild, "RoguesGuild"},
|
||||||
{ EExtraSkipCondition.DockStorehouse, "DockStorehouse"},
|
{ EExtraSkipCondition.DockStorehouse, "DockStorehouse"},
|
||||||
|
@ -5,4 +5,5 @@ public enum ECombatItemUseCondition
|
|||||||
None,
|
None,
|
||||||
Incapacitated,
|
Incapacitated,
|
||||||
HealthPercent,
|
HealthPercent,
|
||||||
|
MissingStatus,
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ public enum EEmote
|
|||||||
{
|
{
|
||||||
None = 0,
|
None = 0,
|
||||||
|
|
||||||
|
Angry = 2,
|
||||||
Bow = 5,
|
Bow = 5,
|
||||||
Cheer = 6,
|
Cheer = 6,
|
||||||
Clap = 7,
|
Clap = 7,
|
||||||
@ -45,6 +46,7 @@ public enum EEmote
|
|||||||
Respect = 140,
|
Respect = 140,
|
||||||
Box = 166,
|
Box = 166,
|
||||||
Greeting = 172,
|
Greeting = 172,
|
||||||
Uchiwasshoi = 278
|
Uchiwasshoi = 278,
|
||||||
|
Unbound = 282,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ public enum EExtraSkipCondition
|
|||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
WakingSandsMainArea,
|
WakingSandsMainArea,
|
||||||
|
WakingSandsSolar,
|
||||||
RisingStonesSolar,
|
RisingStonesSolar,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -157,7 +157,7 @@ internal sealed class CombatController : IDisposable
|
|||||||
{
|
{
|
||||||
int currentTargetPriority = GetKillPriority(target);
|
int currentTargetPriority = GetKillPriority(target);
|
||||||
var nextTarget = FindNextTarget();
|
var nextTarget = FindNextTarget();
|
||||||
int nextTargetPriority = GetKillPriority(target);
|
int nextTargetPriority = nextTarget != null ? GetKillPriority(nextTarget) : 0;
|
||||||
|
|
||||||
if (nextTarget != null && nextTarget.Equals(target))
|
if (nextTarget != null && nextTarget.Equals(target))
|
||||||
{
|
{
|
||||||
@ -176,7 +176,7 @@ internal sealed class CombatController : IDisposable
|
|||||||
}
|
}
|
||||||
else if (nextTarget != null)
|
else if (nextTarget != null)
|
||||||
{
|
{
|
||||||
if (nextTargetPriority > currentTargetPriority)
|
if (nextTargetPriority > currentTargetPriority || currentTargetPriority == 0)
|
||||||
SetTarget(nextTarget);
|
SetTarget(nextTarget);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -108,6 +108,7 @@ internal sealed class ItemUseModule : ICombatModule
|
|||||||
_delegate.Stop();
|
_delegate.Stop();
|
||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
|
_logger.LogInformation("Using item {ItemId}", _combatData.CombatItemUse.ItemId);
|
||||||
AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId);
|
AgentInventoryContext.Instance()->UseItem(_combatData.CombatItemUse.ItemId);
|
||||||
}
|
}
|
||||||
_continueAt = DateTime.Now.AddSeconds(2);
|
_continueAt = DateTime.Now.AddSeconds(2);
|
||||||
@ -147,6 +148,9 @@ internal sealed class ItemUseModule : ICombatModule
|
|||||||
|
|
||||||
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent)
|
if (_combatData.CombatItemUse.Condition == ECombatItemUseCondition.HealthPercent)
|
||||||
return (100f * battleChara->Health / battleChara->MaxHealth) < _combatData.CombatItemUse.Value;
|
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;
|
return false;
|
||||||
|
@ -3,6 +3,7 @@ using Dalamud.Game.Addon.Lifecycle;
|
|||||||
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
|
using LLib.GameUI;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace Questionable.Controller.GameUi;
|
namespace Questionable.Controller.GameUi;
|
||||||
@ -11,17 +12,45 @@ internal sealed class HelpUiController : IDisposable
|
|||||||
{
|
{
|
||||||
private readonly QuestController _questController;
|
private readonly QuestController _questController;
|
||||||
private readonly IAddonLifecycle _addonLifecycle;
|
private readonly IAddonLifecycle _addonLifecycle;
|
||||||
|
private readonly IGameGui _gameGui;
|
||||||
private readonly ILogger<HelpUiController> _logger;
|
private readonly ILogger<HelpUiController> _logger;
|
||||||
|
|
||||||
public HelpUiController(QuestController questController, IAddonLifecycle addonLifecycle, ILogger<HelpUiController> logger)
|
public HelpUiController(
|
||||||
|
QuestController questController,
|
||||||
|
IAddonLifecycle addonLifecycle,
|
||||||
|
IGameGui gameGui,
|
||||||
|
ILogger<HelpUiController> logger)
|
||||||
{
|
{
|
||||||
_questController = questController;
|
_questController = questController;
|
||||||
_addonLifecycle = addonLifecycle;
|
_addonLifecycle = addonLifecycle;
|
||||||
|
_gameGui = gameGui;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|
||||||
|
_questController.AutomationTypeChanged += CloseHelpWindowsWhenStartingQuests;
|
||||||
|
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
||||||
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup);
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup);
|
||||||
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "JobHudNotice", JobHudNoticePostSetup);
|
||||||
|
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, "Guide", GuidePostSetup);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void CloseHelpWindowsWhenStartingQuests(object sender, QuestController.EAutomationType e)
|
||||||
|
{
|
||||||
|
if (e is QuestController.EAutomationType.Manual)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (_gameGui.TryGetAddonByName("Guide", out AtkUnitBase* addonGuide))
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Guide window is open");
|
||||||
|
GuidePostSetup(addonGuide);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_gameGui.TryGetAddonByName("JobHudNotice", out AtkUnitBase* addonJobHudNotice))
|
||||||
|
{
|
||||||
|
_logger.LogInformation("JobHudNotice window is open");
|
||||||
|
JobHudNoticePostSetup(addonJobHudNotice);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void UnendingCodexPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void UnendingCodexPostSetup(AddonEvent type, AddonArgs args)
|
||||||
@ -36,7 +65,7 @@ internal sealed class HelpUiController : IDisposable
|
|||||||
|
|
||||||
private unsafe void ContentsTutorialPostSetup(AddonEvent type, AddonArgs args)
|
private unsafe void ContentsTutorialPostSetup(AddonEvent type, AddonArgs args)
|
||||||
{
|
{
|
||||||
if (_questController.StartedQuest?.Quest.Id.Value == 245)
|
if (_questController.StartedQuest?.Quest.Id.Value is 245 or 3872)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Closing ContentsTutorial");
|
_logger.LogInformation("Closing ContentsTutorial");
|
||||||
AtkUnitBase* addon = (AtkUnitBase*)args.Addon;
|
AtkUnitBase* addon = (AtkUnitBase*)args.Addon;
|
||||||
@ -58,10 +87,38 @@ internal sealed class HelpUiController : IDisposable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private unsafe void JobHudNoticePostSetup(AddonEvent type, AddonArgs args)
|
||||||
|
{
|
||||||
|
if (_questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual)
|
||||||
|
JobHudNoticePostSetup((AtkUnitBase*)args.Addon);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void JobHudNoticePostSetup(AtkUnitBase* addon)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Clicking the JobHudNotice window to open the relevant Guide page");
|
||||||
|
addon->FireCallbackInt(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void GuidePostSetup(AddonEvent type, AddonArgs args)
|
||||||
|
{
|
||||||
|
if (_questController.IsRunning || _questController.AutomationType != QuestController.EAutomationType.Manual)
|
||||||
|
GuidePostSetup((AtkUnitBase*)args.Addon);
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void GuidePostSetup(AtkUnitBase* addon)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Closing Guide window");
|
||||||
|
addon->FireCallbackInt(-1);
|
||||||
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "Guide", GuidePostSetup);
|
||||||
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "JobHudNotice", JobHudNoticePostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "MultipleHelpWindow", MultipleHelpWindowPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "ContentsTutorial", ContentsTutorialPostSetup);
|
||||||
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, "AkatsukiNote", UnendingCodexPostSetup);
|
||||||
|
|
||||||
|
_questController.AutomationTypeChanged -= CloseHelpWindowsWhenStartingQuests;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,9 +49,10 @@ internal sealed unsafe class GatheringController : MiniTaskController<GatheringC
|
|||||||
ILogger<GatheringController> logger,
|
ILogger<GatheringController> logger,
|
||||||
ICondition condition,
|
ICondition condition,
|
||||||
IServiceProvider serviceProvider,
|
IServiceProvider serviceProvider,
|
||||||
|
InterruptHandler interruptHandler,
|
||||||
IDataManager dataManager,
|
IDataManager dataManager,
|
||||||
IPluginLog pluginLog)
|
IPluginLog pluginLog)
|
||||||
: base(chatGui, condition, serviceProvider, dataManager, logger)
|
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, logger)
|
||||||
{
|
{
|
||||||
_movementController = movementController;
|
_movementController = movementController;
|
||||||
_gatheringPointRegistry = gatheringPointRegistry;
|
_gatheringPointRegistry = gatheringPointRegistry;
|
||||||
|
164
Questionable/Controller/InterruptHandler.cs
Normal file
164
Questionable/Controller/InterruptHandler.cs
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
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 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,31 @@ using Mount = Questionable.Controller.Steps.Common.Mount;
|
|||||||
|
|
||||||
namespace Questionable.Controller;
|
namespace Questionable.Controller;
|
||||||
|
|
||||||
internal abstract class MiniTaskController<T>
|
internal abstract class MiniTaskController<T> : IDisposable
|
||||||
{
|
{
|
||||||
protected readonly TaskQueue _taskQueue = new();
|
protected readonly TaskQueue _taskQueue = new();
|
||||||
|
|
||||||
private readonly IChatGui _chatGui;
|
private readonly IChatGui _chatGui;
|
||||||
private readonly ICondition _condition;
|
private readonly ICondition _condition;
|
||||||
private readonly IServiceProvider _serviceProvider;
|
private readonly IServiceProvider _serviceProvider;
|
||||||
|
private readonly InterruptHandler _interruptHandler;
|
||||||
private readonly ILogger<T> _logger;
|
private readonly ILogger<T> _logger;
|
||||||
|
|
||||||
private readonly string _actionCanceledText;
|
private readonly string _actionCanceledText;
|
||||||
|
private readonly string _cantExecuteDueToStatusText;
|
||||||
|
|
||||||
protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider,
|
protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider,
|
||||||
IDataManager dataManager, ILogger<T> logger)
|
InterruptHandler interruptHandler, IDataManager dataManager, ILogger<T> logger)
|
||||||
{
|
{
|
||||||
_chatGui = chatGui;
|
_chatGui = chatGui;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_serviceProvider = serviceProvider;
|
_serviceProvider = serviceProvider;
|
||||||
|
_interruptHandler = interruptHandler;
|
||||||
_condition = condition;
|
_condition = condition;
|
||||||
|
|
||||||
_actionCanceledText = dataManager.GetString<LogMessage>(1314, x => x.Text)!;
|
_actionCanceledText = dataManager.GetString<LogMessage>(1314, x => x.Text)!;
|
||||||
|
_cantExecuteDueToStatusText = dataManager.GetString<LogMessage>(7728, x => x.Text)!;
|
||||||
|
_interruptHandler.Interrupted += HandleInterruption;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void UpdateCurrentTask()
|
protected virtual void UpdateCurrentTask()
|
||||||
@ -65,7 +70,7 @@ internal abstract class MiniTaskController<T>
|
|||||||
{
|
{
|
||||||
_logger.LogError(e, "Failed to start task {TaskName}", upcomingTask.ToString());
|
_logger.LogError(e, "Failed to start task {TaskName}", upcomingTask.ToString());
|
||||||
_chatGui.PrintError(
|
_chatGui.PrintError(
|
||||||
$"[Questionable] Failed to start task '{upcomingTask}', please check /xllog for details.");
|
$"Failed to start task '{upcomingTask}', please check /xllog for details.", CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
Stop("Task failed to start");
|
Stop("Task failed to start");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -90,7 +95,7 @@ internal abstract class MiniTaskController<T>
|
|||||||
_logger.LogError(e, "Failed to update task {TaskName}",
|
_logger.LogError(e, "Failed to update task {TaskName}",
|
||||||
_taskQueue.CurrentTaskExecutor.CurrentTask.ToString());
|
_taskQueue.CurrentTaskExecutor.CurrentTask.ToString());
|
||||||
_chatGui.PrintError(
|
_chatGui.PrintError(
|
||||||
$"[Questionable] Failed to update task '{_taskQueue.CurrentTaskExecutor.CurrentTask}', please check /xllog for details.");
|
$"Failed to update task '{_taskQueue.CurrentTaskExecutor.CurrentTask}', please check /xllog for details.", CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
Stop("Task failed to update");
|
Stop("Task failed to update");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -180,6 +185,19 @@ internal abstract class MiniTaskController<T>
|
|||||||
else
|
else
|
||||||
_taskQueue.InterruptWith([new WaitAtEnd.WaitDelay()]);
|
_taskQueue.InterruptWith([new WaitAtEnd.WaitDelay()]);
|
||||||
|
|
||||||
|
LogTasksAfterInterruption();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InterruptWithoutCombat()
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Interrupted, attempting to redo previous tasks (not in combat)");
|
||||||
|
_taskQueue.InterruptWith([new WaitAtEnd.WaitDelay()]);
|
||||||
|
|
||||||
|
LogTasksAfterInterruption();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LogTasksAfterInterruption()
|
||||||
|
{
|
||||||
_logger.LogInformation("Remaining tasks after interruption:");
|
_logger.LogInformation("Remaining tasks after interruption:");
|
||||||
foreach (ITask task in _taskQueue.RemainingTasks)
|
foreach (ITask task in _taskQueue.RemainingTasks)
|
||||||
_logger.LogInformation("- {TaskName}", task);
|
_logger.LogInformation("- {TaskName}", task);
|
||||||
@ -198,8 +216,23 @@ internal abstract class MiniTaskController<T>
|
|||||||
if (!isHandled)
|
if (!isHandled)
|
||||||
{
|
{
|
||||||
if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) &&
|
if (GameFunctions.GameStringEquals(_actionCanceledText, message.TextValue) &&
|
||||||
!_condition[ConditionFlag.InFlight])
|
!_condition[ConditionFlag.InFlight] &&
|
||||||
|
_taskQueue.CurrentTaskExecutor?.ShouldInterruptOnDamage() == true)
|
||||||
InterruptQueueWithCombat();
|
InterruptQueueWithCombat();
|
||||||
|
else if (GameFunctions.GameStringEquals(_cantExecuteDueToStatusText, message.TextValue))
|
||||||
|
InterruptWithoutCombat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual void HandleInterruption(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!_condition[ConditionFlag.InFlight] &&
|
||||||
|
_taskQueue.CurrentTaskExecutor?.ShouldInterruptOnDamage() == true)
|
||||||
|
InterruptQueueWithCombat();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Dispose()
|
||||||
|
{
|
||||||
|
_interruptHandler.Interrupted -= HandleInterruption;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ using Quest = Questionable.Model.Quest;
|
|||||||
|
|
||||||
namespace Questionable.Controller;
|
namespace Questionable.Controller;
|
||||||
|
|
||||||
internal sealed class QuestController : MiniTaskController<QuestController>, IDisposable
|
internal sealed class QuestController : MiniTaskController<QuestController>
|
||||||
{
|
{
|
||||||
private readonly IClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
private readonly GameFunctions _gameFunctions;
|
private readonly GameFunctions _gameFunctions;
|
||||||
@ -75,8 +75,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>, IDi
|
|||||||
YesAlreadyIpc yesAlreadyIpc,
|
YesAlreadyIpc yesAlreadyIpc,
|
||||||
TaskCreator taskCreator,
|
TaskCreator taskCreator,
|
||||||
IServiceProvider serviceProvider,
|
IServiceProvider serviceProvider,
|
||||||
|
InterruptHandler interruptHandler,
|
||||||
IDataManager dataManager)
|
IDataManager dataManager)
|
||||||
: base(chatGui, condition, serviceProvider, dataManager, logger)
|
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, logger)
|
||||||
{
|
{
|
||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
_gameFunctions = gameFunctions;
|
_gameFunctions = gameFunctions;
|
||||||
@ -110,9 +111,13 @@ internal sealed class QuestController : MiniTaskController<QuestController>, IDi
|
|||||||
_logger.LogInformation("Setting automation type to {NewAutomationType} (previous: {OldAutomationType})",
|
_logger.LogInformation("Setting automation type to {NewAutomationType} (previous: {OldAutomationType})",
|
||||||
value, _automationType);
|
value, _automationType);
|
||||||
_automationType = value;
|
_automationType = value;
|
||||||
|
AutomationTypeChanged?.Invoke(this, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public delegate void AutomationTypeChangedEventHandler(object sender, EAutomationType e);
|
||||||
|
public event AutomationTypeChangedEventHandler? AutomationTypeChanged;
|
||||||
|
|
||||||
public (QuestProgress Progress, ECurrentQuestType Type)? CurrentQuestDetails
|
public (QuestProgress Progress, ECurrentQuestType Type)? CurrentQuestDetails
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -622,7 +627,7 @@ internal sealed class QuestController : MiniTaskController<QuestController>, IDi
|
|||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
_logger.LogError(e, "Failed to create tasks");
|
_logger.LogError(e, "Failed to create tasks");
|
||||||
_chatGui.PrintError("[Questionable] Failed to start next task sequence, please check /xllog for details.");
|
_chatGui.PrintError("Failed to start next task sequence, please check /xllog for details.", CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
Stop("Tasks failed to create");
|
Stop("Tasks failed to create");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -801,11 +806,23 @@ internal sealed class QuestController : MiniTaskController<QuestController>, IDi
|
|||||||
_gatheringController.OnNormalToast(message);
|
_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.ErrorToast -= OnErrorToast;
|
||||||
_toastGui.Toast -= OnNormalToast;
|
_toastGui.Toast -= OnNormalToast;
|
||||||
_condition.ConditionChange -= OnConditionChange;
|
_condition.ConditionChange -= OnConditionChange;
|
||||||
|
base.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed record StepProgress(
|
public sealed record StepProgress(
|
||||||
|
@ -234,7 +234,11 @@ internal sealed class QuestRegistry
|
|||||||
|
|
||||||
public List<QuestInfo> GetKnownClassJobQuests(EClassJob classJob)
|
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))
|
.Where(x => IsKnownQuest(x.QuestId))
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
@ -110,6 +110,8 @@ internal static class Mount
|
|||||||
? ETaskResult.TaskComplete
|
? ETaskResult.TaskComplete
|
||||||
: ETaskResult.StillRunning;
|
: ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum MountResult
|
internal enum MountResult
|
||||||
@ -197,6 +199,8 @@ internal static class Mount
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum EMountIf
|
public enum EMountIf
|
||||||
|
@ -61,5 +61,7 @@ internal static class NextQuest
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override ETaskResult Update() => ETaskResult.TaskComplete;
|
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 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;
|
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);
|
EAction action = PickAction(minerAction, botanistAction);
|
||||||
return ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0;
|
return ActionManager.Instance()->GetActionStatus(ActionType.Action, (uint)action) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")]
|
[SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")]
|
||||||
|
@ -198,6 +198,8 @@ internal static class DoGatherCollectable
|
|||||||
else
|
else
|
||||||
return botanistAction;
|
return botanistAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
[SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")]
|
[SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")]
|
||||||
|
@ -59,5 +59,6 @@ internal static class MoveToLandingLocation
|
|||||||
|
|
||||||
public override ETaskResult Update() => moveExecutor.Update();
|
public override ETaskResult Update() => moveExecutor.Update();
|
||||||
public bool OnErrorToast(SeString message) => moveExecutor.OnErrorToast(message);
|
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);
|
addon->FireCallback(2, pickGatheringItem);
|
||||||
return ETaskResult.StillRunning;
|
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;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record UseMudraOnObject(uint DataId, EAction Action) : ITask
|
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);
|
logger.LogError("Unable to find relevant combo for {Action}", Task.Action);
|
||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@ internal static class AetherCurrent
|
|||||||
if (!aetherCurrentData.IsValidAetherCurrent(step.TerritoryId, step.AetherCurrentId.Value))
|
if (!aetherCurrentData.IsValidAetherCurrent(step.TerritoryId, step.AetherCurrentId.Value))
|
||||||
{
|
{
|
||||||
chatGui.PrintError(
|
chatGui.PrintError(
|
||||||
$"[Questionable] Aether current with id {step.AetherCurrentId} is referencing an invalid aether current, will skip attunement");
|
$"Aether current with id {step.AetherCurrentId} is referencing an invalid aether current, will skip attunement",
|
||||||
|
CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,5 +66,7 @@ internal static class AetherCurrent
|
|||||||
gameFunctions.IsAetherCurrentUnlocked(Task.AetherCurrentId)
|
gameFunctions.IsAetherCurrentUnlocked(Task.AetherCurrentId)
|
||||||
? ETaskResult.TaskComplete
|
? ETaskResult.TaskComplete
|
||||||
: ETaskResult.StillRunning;
|
: ETaskResult.StillRunning;
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,5 +53,7 @@ internal static class AethernetShard
|
|||||||
aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)
|
aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)
|
||||||
? ETaskResult.TaskComplete
|
? ETaskResult.TaskComplete
|
||||||
: ETaskResult.StillRunning;
|
: ETaskResult.StillRunning;
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,5 +52,7 @@ internal static class Aetheryte
|
|||||||
aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)
|
aetheryteFunctions.IsAetheryteUnlocked(Task.AetheryteLocation)
|
||||||
? ETaskResult.TaskComplete
|
? ETaskResult.TaskComplete
|
||||||
: ETaskResult.StillRunning;
|
: ETaskResult.StillRunning;
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -190,5 +190,7 @@ internal static class Combat
|
|||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,8 @@ internal static class Dive
|
|||||||
return base.Update();
|
return base.Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
|
|
||||||
protected override ETaskResult UpdateInternal()
|
protected override ETaskResult UpdateInternal()
|
||||||
{
|
{
|
||||||
if (condition[ConditionFlag.Diving])
|
if (condition[ConditionFlag.Diving])
|
||||||
|
@ -93,6 +93,8 @@ internal static class Duty
|
|||||||
? ETaskResult.TaskComplete
|
? ETaskResult.TaskComplete
|
||||||
: ETaskResult.StillRunning;
|
: ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record WaitAutoDutyTask(uint ContentFinderConditionId) : ITask
|
internal sealed record WaitAutoDutyTask(uint ContentFinderConditionId) : ITask
|
||||||
@ -117,6 +119,8 @@ internal static class Duty
|
|||||||
? ETaskResult.TaskComplete
|
? ETaskResult.TaskComplete
|
||||||
: ETaskResult.StillRunning;
|
: ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record OpenDutyFinderTask(uint ContentFinderConditionId) : ITask
|
internal sealed record OpenDutyFinderTask(uint ContentFinderConditionId) : ITask
|
||||||
@ -138,5 +142,7 @@ internal static class Duty
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override ETaskResult Update() => ETaskResult.TaskComplete;
|
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);
|
chatFunctions.UseEmote(Task.DataId, Task.Emote);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record UseOnSelf(EEmote Emote) : ITask
|
internal sealed record UseOnSelf(EEmote Emote) : ITask
|
||||||
@ -65,5 +67,7 @@ internal static class Emote
|
|||||||
chatFunctions.UseEmote(Task.Emote);
|
chatFunctions.UseEmote(Task.Emote);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,5 +183,7 @@ internal static class EquipItem
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,9 +40,11 @@ internal static class EquipRecommended
|
|||||||
public override string ToString() => "EquipRecommended";
|
public override string ToString() => "EquipRecommended";
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed unsafe class DoEquipRecommended(IClientState clientState, IChatGui chatGui, ICondition condition) : TaskExecutor<EquipTask>
|
internal sealed unsafe class DoEquipRecommended(IClientState clientState, IChatGui chatGui, ICondition condition)
|
||||||
|
: TaskExecutor<EquipTask>
|
||||||
{
|
{
|
||||||
private bool _equipped;
|
private bool _checkedOrTriggeredEquipmentUpdate;
|
||||||
|
private DateTime _continueAt = DateTime.MinValue;
|
||||||
|
|
||||||
protected override bool Start()
|
protected override bool Start()
|
||||||
{
|
{
|
||||||
@ -59,44 +61,53 @@ internal static class EquipRecommended
|
|||||||
if (recommendedEquipModule->IsUpdating)
|
if (recommendedEquipModule->IsUpdating)
|
||||||
return ETaskResult.StillRunning;
|
return ETaskResult.StillRunning;
|
||||||
|
|
||||||
if (!_equipped)
|
if (!_checkedOrTriggeredEquipmentUpdate)
|
||||||
{
|
{
|
||||||
InventoryManager* inventoryManager = InventoryManager.Instance();
|
if (!IsAllRecommendeGearEquipped())
|
||||||
InventoryContainer* equippedItems =
|
|
||||||
inventoryManager->GetInventoryContainer(InventoryType.EquippedItems);
|
|
||||||
bool isAllEquipped = true;
|
|
||||||
foreach (var recommendedItemPtr in recommendedEquipModule->RecommendedItems)
|
|
||||||
{
|
{
|
||||||
var recommendedItem = recommendedItemPtr.Value;
|
chatGui.Print("Equipping recommended gear.", CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
if (recommendedItem == null || recommendedItem->ItemId == 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
bool isEquipped = false;
|
|
||||||
for (int i = 0; i < equippedItems->Size; ++i)
|
|
||||||
{
|
|
||||||
var equippedItem = equippedItems->Items[i];
|
|
||||||
if (equippedItem.ItemId != 0 && equippedItem.ItemId == recommendedItem->ItemId)
|
|
||||||
{
|
|
||||||
isEquipped = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isEquipped)
|
|
||||||
isAllEquipped = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isAllEquipped)
|
|
||||||
{
|
|
||||||
chatGui.Print("Equipping recommended gear.", "Questionable");
|
|
||||||
recommendedEquipModule->EquipRecommendedGear();
|
recommendedEquipModule->EquipRecommendedGear();
|
||||||
|
_continueAt = DateTime.Now.AddSeconds(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
_equipped = true;
|
_checkedOrTriggeredEquipmentUpdate = true;
|
||||||
return ETaskResult.StillRunning;
|
return ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ETaskResult.TaskComplete;
|
return DateTime.Now >= _continueAt ? ETaskResult.TaskComplete : ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsAllRecommendeGearEquipped()
|
||||||
|
{
|
||||||
|
var recommendedEquipModule = RecommendEquipModule.Instance();
|
||||||
|
InventoryManager* inventoryManager = InventoryManager.Instance();
|
||||||
|
InventoryContainer* equippedItems =
|
||||||
|
inventoryManager->GetInventoryContainer(InventoryType.EquippedItems);
|
||||||
|
bool isAllEquipped = true;
|
||||||
|
foreach (var recommendedItemPtr in recommendedEquipModule->RecommendedItems)
|
||||||
|
{
|
||||||
|
var recommendedItem = recommendedItemPtr.Value;
|
||||||
|
if (recommendedItem == null || recommendedItem->ItemId == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
bool isEquipped = false;
|
||||||
|
for (int i = 0; i < equippedItems->Size; ++i)
|
||||||
|
{
|
||||||
|
var equippedItem = equippedItems->Items[i];
|
||||||
|
if (equippedItem.ItemId != 0 && equippedItem.ItemId == recommendedItem->ItemId)
|
||||||
|
{
|
||||||
|
isEquipped = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isEquipped)
|
||||||
|
isAllEquipped = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isAllEquipped;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,6 +228,8 @@ internal static class Interact
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
|
|
||||||
private enum EInteractionState
|
private enum EInteractionState
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
|
@ -80,6 +80,8 @@ internal static class Jump
|
|||||||
|
|
||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed class DoSingleJump(
|
internal sealed class DoSingleJump(
|
||||||
|
@ -48,5 +48,7 @@ internal static class Say
|
|||||||
chatFunctions.ExecuteCommand($"/say {Task.ChatMessage}");
|
chatFunctions.ExecuteCommand($"/say {Task.ChatMessage}");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,5 +43,7 @@ internal static class StatusOff
|
|||||||
{
|
{
|
||||||
return gameFunctions.HasStatus(Task.Status) ? ETaskResult.StillRunning : ETaskResult.TaskComplete;
|
return gameFunctions.HasStatus(Task.Status) ? ETaskResult.StillRunning : ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -205,6 +205,8 @@ internal static class UseItem
|
|||||||
else
|
else
|
||||||
return TimeSpan.FromSeconds(5);
|
return TimeSpan.FromSeconds(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record UseOnGround(
|
internal sealed record UseOnGround(
|
||||||
|
@ -50,6 +50,8 @@ internal static class InitiateLeve
|
|||||||
|
|
||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record OpenJournal(ElementId ElementId) : ITask
|
internal sealed record OpenJournal(ElementId ElementId) : ITask
|
||||||
@ -85,6 +87,8 @@ internal static class InitiateLeve
|
|||||||
|
|
||||||
return ETaskResult.StillRunning;
|
return ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record Initiate(ElementId ElementId) : ITask
|
internal sealed record Initiate(ElementId ElementId) : ITask
|
||||||
@ -111,6 +115,8 @@ internal static class InitiateLeve
|
|||||||
|
|
||||||
return ETaskResult.StillRunning;
|
return ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed class SelectDifficulty : ITask
|
internal sealed class SelectDifficulty : ITask
|
||||||
@ -138,5 +144,7 @@ internal static class InitiateLeve
|
|||||||
|
|
||||||
return ETaskResult.StillRunning;
|
return ETaskResult.StillRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -179,10 +179,12 @@ internal static class AethernetShortcut
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (clientState.TerritoryType == aetheryteData.TerritoryIds[Task.To])
|
||||||
logger.LogWarning(
|
logger.LogWarning(
|
||||||
"Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), walking manually",
|
"Aethernet shortcut not unlocked (from: {FromAetheryte}, to: {ToAetheryte}), skipping as we are already in the destination territory",
|
||||||
Task.From, Task.To);
|
Task.From, Task.To);
|
||||||
|
else
|
||||||
|
throw new TaskException($"Aethernet shortcut not unlocked (from: {Task.From}, to: {Task.To})");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -267,5 +269,7 @@ internal static class AethernetShortcut
|
|||||||
|
|
||||||
return ETaskResult.TaskComplete;
|
return ETaskResult.TaskComplete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@ internal static class AetheryteShortcut
|
|||||||
|
|
||||||
if (!aetheryteFunctions.IsAetheryteUnlocked(Task.TargetAetheryte))
|
if (!aetheryteFunctions.IsAetheryteUnlocked(Task.TargetAetheryte))
|
||||||
{
|
{
|
||||||
chatGui.PrintError($"[Questionable] Aetheryte {Task.TargetAetheryte} is not unlocked.");
|
chatGui.PrintError($"Aetheryte {Task.TargetAetheryte} is not unlocked.", CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
throw new TaskException("Aetheryte is not unlocked");
|
throw new TaskException("Aetheryte is not unlocked");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,12 +215,14 @@ internal static class AetheryteShortcut
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
chatGui.Print("[Questionable] Unable to teleport to aetheryte.");
|
chatGui.Print("Unable to teleport to aetheryte.", CommandHandler.MessageTag, CommandHandler.TagColor);
|
||||||
throw new TaskException("Unable to teleport to aetheryte");
|
throw new TaskException("Unable to teleport to aetheryte");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool WasInterrupted() => condition[ConditionFlag.InCombat] || base.WasInterrupted();
|
public override bool WasInterrupted() => condition[ConditionFlag.InCombat] || base.WasInterrupted();
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed record MoveAwayFromAetheryte(EAetheryteLocation TargetAetheryte) : ITask
|
internal sealed record MoveAwayFromAetheryte(EAetheryteLocation TargetAetheryte) : ITask
|
||||||
@ -264,5 +266,7 @@ internal static class AetheryteShortcut
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override ETaskResult Update() => moveExecutor.Update();
|
public override ETaskResult Update() => moveExecutor.Update();
|
||||||
|
|
||||||
|
public override bool ShouldInterruptOnDamage() => true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user