Minor cleanup for HW part 2
This commit is contained in:
parent
bfc107dc6d
commit
fd62d925e4
@ -270,6 +270,10 @@ public static class RoslynShortcuts
|
|||||||
skipStepConditions.NotInTerritory).AsSyntaxNodeOrToken(),
|
skipStepConditions.NotInTerritory).AsSyntaxNodeOrToken(),
|
||||||
Assignment(nameof(SkipStepConditions.Item), skipStepConditions.Item, emptyStep.Item)
|
Assignment(nameof(SkipStepConditions.Item), skipStepConditions.Item, emptyStep.Item)
|
||||||
.AsSyntaxNodeOrToken(),
|
.AsSyntaxNodeOrToken(),
|
||||||
|
AssignmentList(nameof(SkipStepConditions.QuestsAccepted),
|
||||||
|
skipStepConditions.QuestsAccepted).AsSyntaxNodeOrToken(),
|
||||||
|
AssignmentList(nameof(SkipStepConditions.QuestsCompleted),
|
||||||
|
skipStepConditions.QuestsCompleted).AsSyntaxNodeOrToken(),
|
||||||
Assignment(nameof(SkipStepConditions.ExtraCondition),
|
Assignment(nameof(SkipStepConditions.ExtraCondition),
|
||||||
skipStepConditions.ExtraCondition, emptyStep.ExtraCondition)
|
skipStepConditions.ExtraCondition, emptyStep.ExtraCondition)
|
||||||
.AsSyntaxNodeOrToken()))));
|
.AsSyntaxNodeOrToken()))));
|
||||||
|
@ -20,6 +20,58 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -526.363,
|
||||||
|
"Y": 50.165375,
|
||||||
|
"Z": 407.25165
|
||||||
|
},
|
||||||
|
"TerritoryId": 400,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -533.25507,
|
||||||
|
"Y": 53.07081,
|
||||||
|
"Z": 414.5445
|
||||||
|
},
|
||||||
|
"TerritoryId": 400,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -515.5652,
|
||||||
|
"Y": 57.261906,
|
||||||
|
"Z": 444.5247
|
||||||
|
},
|
||||||
|
"TerritoryId": 400,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-64
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013424,
|
"DataId": 1013424,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -29,7 +81,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 17 0 0 0 0 64"
|
"$": "0 0 0 0 0 0 -> 17 0 0 0 0 64",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013425,
|
"DataId": 1013425,
|
||||||
@ -40,7 +100,58 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "17 0 0 0 0 64 -> 33 16 0 0 0 96"
|
"$": "17 0 0 0 0 64 -> 33 16 0 0 0 96",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -456.7709,
|
||||||
|
"Y": 43.310535,
|
||||||
|
"Z": 387.23517
|
||||||
|
},
|
||||||
|
"TerritoryId": 400,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -445.09866,
|
||||||
|
"Y": 51.348675,
|
||||||
|
"Z": 390.17886
|
||||||
|
},
|
||||||
|
"StopDistance": 0.25,
|
||||||
|
"TerritoryId": 400,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"DisableNavmesh": true,
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": -441.6318,
|
||||||
|
"Y": 53.80215,
|
||||||
|
"Z": 380.9018
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013421,
|
"DataId": 1013421,
|
||||||
@ -50,7 +161,15 @@
|
|||||||
"Z": 379.3545
|
"Z": 379.3545
|
||||||
},
|
},
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -65,7 +184,8 @@
|
|||||||
"Z": 347.0968
|
"Z": 347.0968
|
||||||
},
|
},
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest",
|
||||||
|
"DisableNavmesh": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 16 16 16 0 0 64"
|
"$": "0 0 0 0 0 0 -> 16 16 16 0 0 64",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005879,
|
"DataId": 2005879,
|
||||||
@ -50,7 +58,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "16 16 16 0 0 64 -> 32 17 32 0 0 96"
|
"$": "16 16 16 0 0 64 -> 32 17 32 0 0 96",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005877,
|
"DataId": 2005877,
|
||||||
@ -60,7 +76,15 @@
|
|||||||
"Z": 34.74475
|
"Z": 34.74475
|
||||||
},
|
},
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -52,17 +52,27 @@
|
|||||||
"Z": 82.59637
|
"Z": 82.59637
|
||||||
},
|
},
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Combat",
|
"InteractionType": "WalkTo"
|
||||||
"EnemySpawnType": "AutoOnEnterArea",
|
|
||||||
"KillEnemyDataIds": [
|
|
||||||
5042
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -403.42465,
|
||||||
|
"Y": 154.8542,
|
||||||
|
"Z": 82.59637
|
||||||
|
},
|
||||||
|
"TerritoryId": 399,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
5042
|
||||||
|
],
|
||||||
|
"CombatDelaySecondsAtStart": 1
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005885,
|
"DataId": 2005885,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -29,7 +29,14 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 463,
|
"TerritoryId": 463,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"TargetTerritoryId": 399
|
"TargetTerritoryId": 399,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NotInTerritory": [
|
||||||
|
463
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006061,
|
"DataId": 2006061,
|
||||||
@ -44,7 +51,15 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
44
|
44
|
||||||
],
|
],
|
||||||
"$": "0 0 0 0 0 0 -> 16 1 0 0 0 128"
|
"$": "0 0 0 0 0 0 -> 16 1 0 0 0 128",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006062,
|
"DataId": 2006062,
|
||||||
@ -59,7 +74,15 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
44
|
44
|
||||||
],
|
],
|
||||||
"$": "16 1 0 0 0 128 -> 33 1 0 0 0 192"
|
"$": "16 1 0 0 0 128 -> 33 1 0 0 0 192",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006063,
|
"DataId": 2006063,
|
||||||
@ -73,6 +96,14 @@
|
|||||||
"EnemySpawnType": "AfterInteraction",
|
"EnemySpawnType": "AfterInteraction",
|
||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
44
|
44
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -29,7 +29,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 16 1 16 0 0 128"
|
"$": "0 0 0 0 0 0 -> 16 1 16 0 0 128",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005826,
|
"DataId": 2005826,
|
||||||
@ -40,7 +48,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "16 1 16 0 0 128 -> 32 17 32 0 0 160"
|
"$": "16 1 16 0 0 128 -> 32 17 32 0 0 160",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005825,
|
"DataId": 2005825,
|
||||||
@ -50,7 +66,15 @@
|
|||||||
"Z": -564.3549
|
"Z": -564.3549
|
||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -29,7 +29,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 16 16 0 0 0 64"
|
"$": "0 0 0 0 0 0 -> 16 16 0 0 0 64",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1012071,
|
"DataId": 1012071,
|
||||||
@ -40,7 +48,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "16 16 0 0 0 64 -> 32 17 0 0 0 96"
|
"$": "16 16 0 0 0 64 -> 32 17 0 0 0 96",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1012069,
|
"DataId": 1012069,
|
||||||
@ -50,7 +66,15 @@
|
|||||||
"Z": -417.74628
|
"Z": -417.74628
|
||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
"AetheryteShortcutIf": {
|
"AetheryteShortcutIf": {
|
||||||
"InSameTerritory": true
|
"InSameTerritory": true
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"Fly": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -26,6 +26,17 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 465.77087,
|
||||||
|
"Y": 367.76678,
|
||||||
|
"Z": -658.1668
|
||||||
|
},
|
||||||
|
"TerritoryId": 155,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1014199,
|
"DataId": 1014199,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -35,8 +46,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 155,
|
"TerritoryId": 155,
|
||||||
"InteractionType": "SinglePlayerDuty",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -26,6 +26,34 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1011920,
|
||||||
|
"Position": {
|
||||||
|
"X": 519.8595,
|
||||||
|
"Y": -51.071976,
|
||||||
|
"Z": 88.24292
|
||||||
|
},
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 502.8876,
|
||||||
|
"Y": -48.989826,
|
||||||
|
"Z": 34.93356
|
||||||
|
},
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1011919,
|
"DataId": 1011919,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -35,7 +63,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 398,
|
"TerritoryId": 398,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 1 0 0 0 0 128"
|
"$": "0 0 0 0 0 0 -> 1 0 0 0 0 128",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1011921,
|
"DataId": 1011921,
|
||||||
@ -46,17 +82,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 398,
|
"TerritoryId": 398,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "1 0 0 0 0 128 -> 2 0 0 0 0 160"
|
"$": "1 0 0 0 0 128 -> 2 0 0 0 0 160",
|
||||||
},
|
"CompletionQuestVariablesFlags": [
|
||||||
{
|
null,
|
||||||
"DataId": 1011920,
|
null,
|
||||||
"Position": {
|
null,
|
||||||
"X": 519.8595,
|
null,
|
||||||
"Y": -51.071976,
|
null,
|
||||||
"Z": 88.24292
|
32
|
||||||
},
|
]
|
||||||
"TerritoryId": 398,
|
|
||||||
"InteractionType": "Interact"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -78,7 +78,8 @@
|
|||||||
"TerritoryId": 138,
|
"TerritoryId": 138,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"Fly": true,
|
"Fly": true,
|
||||||
"StopDistance": 1
|
"StopDistance": 1,
|
||||||
|
"AetheryteShortcut": "Western La Noscea - Aleport"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -47,6 +47,7 @@
|
|||||||
"Y": 37.760002,
|
"Y": 37.760002,
|
||||||
"Z": 78.812744
|
"Z": 78.812744
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 131,
|
"TerritoryId": 131,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 37.760002,
|
"Y": 37.760002,
|
||||||
"Z": 78.812744
|
"Z": 78.812744
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 131,
|
"TerritoryId": 131,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -44,6 +45,7 @@
|
|||||||
"Y": 0,
|
"Y": 0,
|
||||||
"Z": -9.079163
|
"Z": -9.079163
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 351,
|
"TerritoryId": 351,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 0,
|
"Y": 0,
|
||||||
"Z": -9.079163
|
"Z": -9.079163
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 351,
|
"TerritoryId": 351,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -62,6 +63,7 @@
|
|||||||
"Y": -9.313226E-10,
|
"Y": -9.313226E-10,
|
||||||
"Z": 5.9052124
|
"Z": 5.9052124
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 433,
|
"TerritoryId": 433,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -77,6 +79,7 @@
|
|||||||
"Y": 1.1443481,
|
"Y": 1.1443481,
|
||||||
"Z": 13.199036
|
"Z": 13.199036
|
||||||
},
|
},
|
||||||
|
"StopDistance": 4,
|
||||||
"TerritoryId": 433,
|
"TerritoryId": 433,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"TargetTerritoryId": 419
|
"TargetTerritoryId": 419
|
@ -56,6 +56,7 @@
|
|||||||
"Y": -1.1916885,
|
"Y": -1.1916885,
|
||||||
"Z": -354.94012
|
"Z": -354.94012
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -1.1916885,
|
"Y": -1.1916885,
|
||||||
"Z": -354.94012
|
"Z": -354.94012
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -29,6 +30,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 400,
|
"TerritoryId": 400,
|
||||||
"InteractionType": "CompleteQuest",
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "The Churning Mists - Zenith",
|
||||||
"Fly": true
|
"Fly": true
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -27,6 +27,7 @@
|
|||||||
"Y": 27.979128,
|
"Y": 27.979128,
|
||||||
"Z": -116.41113
|
"Z": -116.41113
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 27.979128,
|
"Y": 27.979128,
|
||||||
"Z": -116.41113
|
"Z": -116.41113
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -47,6 +48,7 @@
|
|||||||
"Y": -9.313226E-10,
|
"Y": -9.313226E-10,
|
||||||
"Z": 7.6447144
|
"Z": 7.6447144
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 433,
|
"TerritoryId": 433,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -9.313226E-10,
|
"Y": -9.313226E-10,
|
||||||
"Z": 6.362976
|
"Z": 6.362976
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 433,
|
"TerritoryId": 433,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -20,17 +21,6 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
|
||||||
"DataId": 2005334,
|
|
||||||
"Position": {
|
|
||||||
"X": -0.015319824,
|
|
||||||
"Y": 1.1443481,
|
|
||||||
"Z": 13.199036
|
|
||||||
},
|
|
||||||
"TerritoryId": 433,
|
|
||||||
"InteractionType": "Interact",
|
|
||||||
"TargetTerritoryId": 419
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"DataId": 1013381,
|
"DataId": 1013381,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -59,7 +49,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 1 0 0 0 0 32"
|
"$": "0 0 0 0 0 0 -> 1 0 0 0 0 32",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013341,
|
"DataId": 1013341,
|
||||||
@ -70,7 +68,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "1 0 0 0 0 32 -> 2 0 0 0 0 96"
|
"$": "1 0 0 0 0 32 -> 2 0 0 0 0 96",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013340,
|
"DataId": 1013340,
|
||||||
@ -80,7 +86,15 @@
|
|||||||
"Z": 54.276245
|
"Z": 54.276245
|
||||||
},
|
},
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
@ -57,6 +57,7 @@
|
|||||||
"Y": -12.020914,
|
"Y": -12.020914,
|
||||||
"Z": 48.41687
|
"Z": 48.41687
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -87,6 +88,7 @@
|
|||||||
"Y": 23.979128,
|
"Y": 23.979128,
|
||||||
"Z": 12.802246
|
"Z": 12.802246
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 23.979128,
|
"Y": 23.979128,
|
||||||
"Z": 12.802246
|
"Z": 12.802246
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -27,6 +28,7 @@
|
|||||||
"Y": 23.979126,
|
"Y": 23.979126,
|
||||||
"Z": 10.452393
|
"Z": 10.452393
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -62,7 +64,19 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 4
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 5,
|
"Sequence": 5,
|
||||||
@ -74,6 +88,7 @@
|
|||||||
"Y": 42.34489,
|
"Y": 42.34489,
|
||||||
"Z": -207.04968
|
"Z": -207.04968
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -105,6 +120,7 @@
|
|||||||
"Y": 16.009666,
|
"Y": 16.009666,
|
||||||
"Z": -4.196289
|
"Z": -4.196289
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 16.009666,
|
"Y": 16.009666,
|
||||||
"Z": -4.196289
|
"Z": -4.196289
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
@ -20,6 +20,25 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 90.44213,
|
||||||
|
"Y": -3.7030487,
|
||||||
|
"Z": 76.662605
|
||||||
|
},
|
||||||
|
"TerritoryId": 418,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 101.28695,
|
||||||
|
"Y": -20.020874,
|
||||||
|
"Z": 76.39896
|
||||||
|
},
|
||||||
|
"TerritoryId": 418,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1012169,
|
"DataId": 1012169,
|
||||||
"Position": {
|
"Position": {
|
@ -20,6 +20,25 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 90.44213,
|
||||||
|
"Y": -3.7030487,
|
||||||
|
"Z": 76.662605
|
||||||
|
},
|
||||||
|
"TerritoryId": 418,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 101.28695,
|
||||||
|
"Y": -20.020874,
|
||||||
|
"Z": 76.39896
|
||||||
|
},
|
||||||
|
"TerritoryId": 418,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013340,
|
"DataId": 1013340,
|
||||||
"Position": {
|
"Position": {
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 24.390423,
|
"Y": 24.390423,
|
||||||
"Z": -4.4709473
|
"Z": -4.4709473
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
@ -28,7 +28,11 @@
|
|||||||
"Z": -26.199768
|
"Z": -26.199768
|
||||||
},
|
},
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Ishgard] Skysteel Manufactory",
|
||||||
|
"[Ishgard] Athenaeum Astrologicum"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
@ -38,7 +38,7 @@
|
|||||||
"Z": 113.54166
|
"Z": 113.54166
|
||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "Emote",
|
"InteractionType": "SinglePlayerDuty",
|
||||||
"Emote": "lookout",
|
"Emote": "lookout",
|
||||||
"StopDistance": 0.25
|
"StopDistance": 0.25
|
||||||
}
|
}
|
||||||
@ -71,6 +71,7 @@
|
|||||||
"Y": -35.95642,
|
"Y": -35.95642,
|
||||||
"Z": 18.722778
|
"Z": 18.722778
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -35.95642,
|
"Y": -35.95642,
|
||||||
"Z": 18.722778
|
"Z": 18.722778
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -35,6 +36,22 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -756.4804,
|
||||||
|
"Y": -13.877342,
|
||||||
|
"Z": -121.33485
|
||||||
|
},
|
||||||
|
"TerritoryId": 401,
|
||||||
|
"InteractionType": "Jump",
|
||||||
|
"JumpDestination": {
|
||||||
|
"Position": {
|
||||||
|
"X": -759.4263,
|
||||||
|
"Y": -9.201294,
|
||||||
|
"Z": -110.85681
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006229,
|
"DataId": 2006229,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -44,7 +61,17 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "AttuneAetherCurrent",
|
"InteractionType": "AttuneAetherCurrent",
|
||||||
"AetherCurrentId": 2818117
|
"AetherCurrentId": 2818117,
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -755.9033,
|
||||||
|
"Y": -14.112402,
|
||||||
|
"Z": -177.06593
|
||||||
|
},
|
||||||
|
"TerritoryId": 401,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1013090,
|
"DataId": 1013090,
|
@ -100,6 +100,7 @@
|
|||||||
"Y": -14.153766,
|
"Y": -14.153766,
|
||||||
"Z": -543.0228
|
"Z": -543.0228
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -14.153766,
|
"Y": -14.153766,
|
||||||
"Z": -543.0228
|
"Z": -543.0228
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -14.153783,
|
"Y": -14.153783,
|
||||||
"Z": -541.558
|
"Z": -541.558
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 401,
|
"TerritoryId": 401,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -27,6 +28,7 @@
|
|||||||
"Y": -15.134373,
|
"Y": -15.134373,
|
||||||
"Z": 37.094604
|
"Z": 37.094604
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -15.134371,
|
"Y": -15.134371,
|
||||||
"Z": 38.52893
|
"Z": 38.52893
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
@ -29,6 +29,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 133,
|
"TerritoryId": 133,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"TargetTerritoryId": 205,
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
{
|
{
|
||||||
"Type": "YesNo",
|
"Type": "YesNo",
|
||||||
@ -93,6 +94,7 @@
|
|||||||
"Y": -8,
|
"Y": -8,
|
||||||
"Z": 98.13074
|
"Z": 98.13074
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 132,
|
"TerritoryId": 132,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -8,
|
"Y": -8,
|
||||||
"Z": 98.13074
|
"Z": 98.13074
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 132,
|
"TerritoryId": 132,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -33,6 +34,14 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Gridania] Aetheryte Plaza",
|
"[Gridania] Aetheryte Plaza",
|
||||||
"[Gridania] Leatherworkers' Guild & Shaded Bower"
|
"[Gridania] Leatherworkers' Guild & Shaded Bower"
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -47,6 +56,14 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Gridania] Leatherworkers' Guild & Shaded Bower",
|
"[Gridania] Leatherworkers' Guild & Shaded Bower",
|
||||||
"[Gridania] Conjurers' Guild"
|
"[Gridania] Conjurers' Guild"
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -67,6 +67,11 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"TerritoryId": 478,
|
||||||
|
"InteractionType": "AttuneAethernetShard",
|
||||||
|
"AethernetShard": "[Idyllshire] West Idyllshire"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1012097,
|
"DataId": 1012097,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -75,7 +80,11 @@
|
|||||||
"Z": 23.483582
|
"Z": 23.483582
|
||||||
},
|
},
|
||||||
"TerritoryId": 478,
|
"TerritoryId": 478,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Idyllshire] West Idyllshire",
|
||||||
|
"[Idyllshire] Aetheryte Plaza"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -20,16 +20,6 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
{
|
|
||||||
"Position": {
|
|
||||||
"X": 148.52824,
|
|
||||||
"Y": 207,
|
|
||||||
"Z": 117.84323
|
|
||||||
},
|
|
||||||
"TerritoryId": 478,
|
|
||||||
"InteractionType": "WalkTo",
|
|
||||||
"TargetTerritoryId": 399
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"DataId": 1012416,
|
"DataId": 1012416,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -38,7 +28,11 @@
|
|||||||
"Z": 6.3324585
|
"Z": 6.3324585
|
||||||
},
|
},
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "SinglePlayerDuty"
|
"InteractionType": "SinglePlayerDuty",
|
||||||
|
"AethernetShortcut": [
|
||||||
|
"[Idyllshire] Aetheryte Plaza",
|
||||||
|
"[Idyllshire] Epilogue Gate (Eastern Hinterlands)"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -52,6 +46,7 @@
|
|||||||
"Y": 77.859474,
|
"Y": 77.859474,
|
||||||
"Z": -5.9052734
|
"Z": -5.9052734
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
@ -42,6 +42,7 @@
|
|||||||
"Y": 203.98,
|
"Y": 203.98,
|
||||||
"Z": 127.91626
|
"Z": 127.91626
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 478,
|
"TerritoryId": 478,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 203.98,
|
"Y": 203.98,
|
||||||
"Z": 127.91626
|
"Z": 127.91626
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 478,
|
"TerritoryId": 478,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": 38.43,
|
"Y": 38.43,
|
||||||
"Z": 15.854065
|
"Z": 15.854065
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 463,
|
"TerritoryId": 463,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -27,6 +28,7 @@
|
|||||||
"Y": 38.43,
|
"Y": 38.43,
|
||||||
"Z": 15.854065
|
"Z": 15.854065
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 463,
|
"TerritoryId": 463,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -42,6 +44,7 @@
|
|||||||
"Y": 38.43,
|
"Y": 38.43,
|
||||||
"Z": 3.5552979
|
"Z": 3.5552979
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 463,
|
"TerritoryId": 463,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -59,7 +62,23 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 463,
|
"TerritoryId": 463,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"TargetTerritoryId": 399
|
"TargetTerritoryId": 399,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NotInTerritory": [
|
||||||
|
463
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 228.06944,
|
||||||
|
"Y": 228.11594,
|
||||||
|
"Z": 767.1184
|
||||||
|
},
|
||||||
|
"TerritoryId": 399,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1012427,
|
"DataId": 1012427,
|
||||||
@ -69,7 +88,8 @@
|
|||||||
"Z": 767.87964
|
"Z": 767.87964
|
||||||
},
|
},
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"DisableNavmesh": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -86,6 +106,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 228.06944,
|
||||||
|
"Y": 228.11594,
|
||||||
|
"Z": 767.1184
|
||||||
|
},
|
||||||
|
"TerritoryId": 399,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005336,
|
"DataId": 2005336,
|
||||||
"Position": {
|
"Position": {
|
@ -27,6 +27,7 @@
|
|||||||
"Y": 137.42972,
|
"Y": 137.42972,
|
||||||
"Z": 701.4724
|
"Z": 701.4724
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 399,
|
"TerritoryId": 399,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -14.34896,
|
"Y": -14.34896,
|
||||||
"Z": 51.651733
|
"Z": 51.651733
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 419,
|
"TerritoryId": 419,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -48,6 +49,14 @@
|
|||||||
"AethernetShortcut": [
|
"AethernetShortcut": [
|
||||||
"[Ishgard] Athenaeum Astrologicum",
|
"[Ishgard] Athenaeum Astrologicum",
|
||||||
"[Ishgard] The Forgotten Knight"
|
"[Ishgard] The Forgotten Knight"
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -59,7 +68,50 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "16 1 0 0 0 128 -> 33 1 0 0 0 192"
|
"$": "16 1 0 0 0 128 -> 33 1 0 0 0 192",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 89.00678,
|
||||||
|
"Y": 1.6069314,
|
||||||
|
"Z": 67.770386
|
||||||
|
},
|
||||||
|
"TerritoryId": 418,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 74.918564,
|
||||||
|
"Y": -13.879314,
|
||||||
|
"Z": 68.86857
|
||||||
|
},
|
||||||
|
"TerritoryId": 418,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1012251,
|
"DataId": 1012251,
|
||||||
@ -69,7 +121,15 @@
|
|||||||
"Z": 40.268433
|
"Z": 40.268433
|
||||||
},
|
},
|
||||||
"TerritoryId": 418,
|
"TerritoryId": 418,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -98,6 +158,7 @@
|
|||||||
"Y": -9.313226E-10,
|
"Y": -9.313226E-10,
|
||||||
"Z": 5.661072
|
"Z": 5.661072
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 433,
|
"TerritoryId": 433,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
@ -29,7 +29,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "0 0 0 0 0 0 -> 17 0 0 0 0 64"
|
"$": "0 0 0 0 0 0 -> 17 0 0 0 0 64",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006236,
|
"DataId": 2006236,
|
||||||
@ -40,7 +48,15 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"$": "17 0 0 0 0 64 -> 33 1 0 0 0 192"
|
"$": "17 0 0 0 0 64 -> 33 1 0 0 0 192",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006238,
|
"DataId": 2006238,
|
||||||
@ -50,7 +66,15 @@
|
|||||||
"Z": -477.92786
|
"Z": -477.92786
|
||||||
},
|
},
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
@ -12,6 +12,7 @@
|
|||||||
"Y": -176.4502,
|
"Y": -176.4502,
|
||||||
"Z": -579.3393
|
"Z": -579.3393
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "AcceptQuest",
|
"InteractionType": "AcceptQuest",
|
||||||
"DialogueChoices": [
|
"DialogueChoices": [
|
||||||
@ -34,6 +35,7 @@
|
|||||||
"Y": -176.4502,
|
"Y": -176.4502,
|
||||||
"Z": -577.5082
|
"Z": -577.5082
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "Interact"
|
"InteractionType": "Interact"
|
||||||
}
|
}
|
||||||
@ -57,6 +59,24 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 3,
|
"Sequence": 3,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -138.06377,
|
||||||
|
"Y": -158.1412,
|
||||||
|
"Z": -496.24612
|
||||||
|
},
|
||||||
|
"TerritoryId": 402,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -147.24174,
|
||||||
|
"Y": -154.81604,
|
||||||
|
"Z": -498.42224
|
||||||
|
},
|
||||||
|
"TerritoryId": 402,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006363,
|
"DataId": 2006363,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -80,7 +100,8 @@
|
|||||||
"Z": -619.8978
|
"Z": -619.8978
|
||||||
},
|
},
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest",
|
||||||
|
"DisableNavmesh": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -48,7 +48,15 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
4942
|
4942
|
||||||
],
|
],
|
||||||
"$": "0 0 0 0 0 0 -> 18 0 0 0 0 64"
|
"$": "0 0 0 0 0 0 -> 18 0 0 0 0 64",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005569,
|
"DataId": 2005569,
|
||||||
@ -64,7 +72,15 @@
|
|||||||
4943,
|
4943,
|
||||||
4623
|
4623
|
||||||
],
|
],
|
||||||
"$": "18 0 0 0 0 64 -> 34 48 0 0 0 96"
|
"$": "18 0 0 0 0 64 -> 34 48 0 0 0 96",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2005567,
|
"DataId": 2005567,
|
||||||
@ -79,6 +95,14 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
4614,
|
4614,
|
||||||
4942
|
4942
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -101,6 +125,24 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 255,
|
"Sequence": 255,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 780.2551,
|
||||||
|
"Y": -21.268166,
|
||||||
|
"Z": -478.28162
|
||||||
|
},
|
||||||
|
"TerritoryId": 402,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 778.6274,
|
||||||
|
"Y": -17.943024,
|
||||||
|
"Z": -487.80676
|
||||||
|
},
|
||||||
|
"TerritoryId": 402,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2006364,
|
"DataId": 2006364,
|
||||||
"Position": {
|
"Position": {
|
@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"$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": "JerryWester",
|
"Author": "JerryWester",
|
||||||
|
"TerritoryBlacklist": [
|
||||||
|
459
|
||||||
|
],
|
||||||
"QuestSequence": [
|
"QuestSequence": [
|
||||||
{
|
{
|
||||||
"Sequence": 0,
|
"Sequence": 0,
|
||||||
@ -12,6 +15,7 @@
|
|||||||
"Y": 10.474376,
|
"Y": 10.474376,
|
||||||
"Z": 77.50049
|
"Z": 77.50049
|
||||||
},
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest"
|
||||||
}
|
}
|
||||||
@ -82,7 +86,8 @@
|
|||||||
"Z": 456.53467
|
"Z": 456.53467
|
||||||
},
|
},
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest",
|
||||||
|
"DisableNavmesh": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -13,7 +13,8 @@
|
|||||||
"Z": -5.2339478
|
"Z": -5.2339478
|
||||||
},
|
},
|
||||||
"TerritoryId": 402,
|
"TerritoryId": 402,
|
||||||
"InteractionType": "AcceptQuest"
|
"InteractionType": "AcceptQuest",
|
||||||
|
"Fly": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -66,7 +67,19 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 4
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 0,
|
||||||
|
"Y": 0,
|
||||||
|
"Z": 0
|
||||||
|
},
|
||||||
|
"TerritoryId": 1,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "Filler"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sequence": 5,
|
"Sequence": 5,
|
||||||
@ -88,6 +101,7 @@
|
|||||||
"Y": 0.022254243,
|
"Y": 0.022254243,
|
||||||
"Z": 4.623413
|
"Z": 4.623413
|
||||||
},
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
"TerritoryId": 433,
|
"TerritoryId": 433,
|
||||||
"InteractionType": "CompleteQuest"
|
"InteractionType": "CompleteQuest"
|
||||||
}
|
}
|
@ -325,14 +325,24 @@
|
|||||||
"if": {
|
"if": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"InteractionType": {
|
"InteractionType": {
|
||||||
"anyOf": [
|
|
||||||
{
|
|
||||||
"const": "Interact"
|
"const": "Interact"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
|
"required": [
|
||||||
|
"DataId"
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"if": {
|
||||||
|
"properties": {
|
||||||
|
"InteractionType": {
|
||||||
"const": "SinglePlayerDuty"
|
"const": "SinglePlayerDuty"
|
||||||
}
|
},
|
||||||
]
|
"Emote": {
|
||||||
|
"not": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -607,6 +617,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"const": "CompleteQuest"
|
"const": "CompleteQuest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"const": "SinglePlayerDuty"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -1009,7 +1022,9 @@
|
|||||||
"not": {
|
"not": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"required": ["SkipIf"]
|
"required": [
|
||||||
|
"SkipIf"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,12 @@ public sealed class SkipStepConditions
|
|||||||
{
|
{
|
||||||
if (Never)
|
if (Never)
|
||||||
return false;
|
return false;
|
||||||
return Flying != null || Chocobo != null || InTerritory.Count > 0 || NotInTerritory.Count > 0 || Item != null;
|
return Flying != null ||
|
||||||
|
Chocobo != null ||
|
||||||
|
InTerritory.Count > 0 ||
|
||||||
|
NotInTerritory.Count > 0 ||
|
||||||
|
Item != null ||
|
||||||
|
QuestsAccepted.Count > 0 ||
|
||||||
|
QuestsCompleted.Count > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
@ -110,8 +111,24 @@ internal sealed class MovementController : IDisposable
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!Destination.IsFlying)
|
if (!Destination.IsFlying)
|
||||||
_movementOverrideController.AdjustPath(navPoints);
|
{
|
||||||
|
(navPoints, bool recalculateNavmesh) = _movementOverrideController.AdjustPath(navPoints);
|
||||||
|
if (recalculateNavmesh && Destination.NavmeshCalculations < 10)
|
||||||
|
{
|
||||||
|
Destination.NavmeshCalculations++;
|
||||||
|
Destination.PartialRoute.AddRange(navPoints);
|
||||||
|
_logger.LogInformation("Running navmesh recalculation with fudged point ({From} to {To})", navPoints.Last(), Destination.Position);
|
||||||
|
|
||||||
|
_cancellationTokenSource = new();
|
||||||
|
_cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30));
|
||||||
|
_pathfindTask =
|
||||||
|
_navmeshIpc.Pathfind(navPoints.Last(), Destination.Position, Destination.IsFlying,
|
||||||
|
_cancellationTokenSource.Token);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
navPoints = Destination.PartialRoute.Concat(navPoints).ToList();
|
||||||
_logger.LogInformation("Navigating via route: [{Route}]",
|
_logger.LogInformation("Navigating via route: [{Route}]",
|
||||||
string.Join(" → ",
|
string.Join(" → ",
|
||||||
_pathfindTask.Result.Select(x => x.ToString("G", CultureInfo.InvariantCulture))));
|
_pathfindTask.Result.Select(x => x.ToString("G", CultureInfo.InvariantCulture))));
|
||||||
@ -245,6 +262,7 @@ internal sealed class MovementController : IDisposable
|
|||||||
return pointOnFloor != null && Math.Abs(pointOnFloor.Value.Y - p.Y) > 0.5f;
|
return pointOnFloor != null && Math.Abs(pointOnFloor.Value.Y - p.Y) > 0.5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MemberNotNull(nameof(Destination))]
|
||||||
private void PrepareNavigation(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint,
|
private void PrepareNavigation(EMovementType type, uint? dataId, Vector3 to, bool fly, bool sprint,
|
||||||
float? stopDistance, bool ignoreDistanceToObject, bool land, bool useNavmesh)
|
float? stopDistance, bool ignoreDistanceToObject, bool land, bool useNavmesh)
|
||||||
{
|
{
|
||||||
@ -271,6 +289,7 @@ internal sealed class MovementController : IDisposable
|
|||||||
PrepareNavigation(type, dataId, to, fly, sprint, stopDistance, ignoreDistanceToObject, land, true);
|
PrepareNavigation(type, dataId, to, fly, sprint, stopDistance, ignoreDistanceToObject, land, true);
|
||||||
_logger.LogInformation("Pathfinding to {Destination}", Destination);
|
_logger.LogInformation("Pathfinding to {Destination}", Destination);
|
||||||
|
|
||||||
|
Destination.NavmeshCalculations++;
|
||||||
_cancellationTokenSource = new();
|
_cancellationTokenSource = new();
|
||||||
_cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30));
|
_cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30));
|
||||||
_pathfindTask =
|
_pathfindTask =
|
||||||
@ -336,7 +355,11 @@ internal sealed class MovementController : IDisposable
|
|||||||
bool CanSprint,
|
bool CanSprint,
|
||||||
bool IgnoreDistanceToObject,
|
bool IgnoreDistanceToObject,
|
||||||
bool Land,
|
bool Land,
|
||||||
bool UseNavmesh);
|
bool UseNavmesh)
|
||||||
|
{
|
||||||
|
public int NavmeshCalculations { get; set; }
|
||||||
|
public List<Vector3> PartialRoute { get; } = [];
|
||||||
|
}
|
||||||
|
|
||||||
public sealed class PathfindingFailedException : Exception
|
public sealed class PathfindingFailedException : Exception
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
using System.Globalization;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
namespace Questionable.Controller.NavigationOverrides;
|
||||||
|
|
||||||
|
public sealed record AlternateLocation(Vector3 Point, bool RecalculateNavmesh)
|
||||||
|
{
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return string.Create(CultureInfo.InvariantCulture,
|
||||||
|
$"{nameof(Point)}: {Point:G}, {nameof(RecalculateNavmesh)}: {RecalculateNavmesh}");
|
||||||
|
}
|
||||||
|
}
|
@ -6,14 +6,15 @@ internal sealed record BlacklistedArea(
|
|||||||
ushort TerritoryId,
|
ushort TerritoryId,
|
||||||
Vector3 Center,
|
Vector3 Center,
|
||||||
float MinDistance,
|
float MinDistance,
|
||||||
float MaxDistance) : IBlacklistedLocation
|
float MaxDistance,
|
||||||
|
bool RecalculateNavmesh = false) : IBlacklistedLocation
|
||||||
{
|
{
|
||||||
public Vector3? AdjustPoint(Vector3 point)
|
public AlternateLocation? AdjustPoint(Vector3 point)
|
||||||
{
|
{
|
||||||
float distance = (point - Center).Length();
|
float distance = (point - Center).Length();
|
||||||
if (distance < MinDistance || distance > MaxDistance)
|
if (distance < MinDistance || distance > MaxDistance)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return Center + Vector3.Normalize(point - Center) * MaxDistance;
|
return new AlternateLocation(Center + Vector3.Normalize(point - Center) * MaxDistance, RecalculateNavmesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,15 @@ public sealed record BlacklistedPoint(
|
|||||||
ushort TerritoryId,
|
ushort TerritoryId,
|
||||||
Vector3 Original,
|
Vector3 Original,
|
||||||
Vector3 Replacement,
|
Vector3 Replacement,
|
||||||
float CheckDistance = 0.05f) : IBlacklistedLocation
|
float CheckDistance = 0.05f,
|
||||||
|
bool RecalculateNavmesh = false) : IBlacklistedLocation
|
||||||
{
|
{
|
||||||
public Vector3? AdjustPoint(Vector3 point)
|
public AlternateLocation? AdjustPoint(Vector3 point)
|
||||||
{
|
{
|
||||||
float distance = (point - Original).Length();
|
float distance = (point - Original).Length();
|
||||||
if (distance > CheckDistance)
|
if (distance > CheckDistance)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return Replacement;
|
return new AlternateLocation(Replacement, RecalculateNavmesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,5 +6,5 @@ internal interface IBlacklistedLocation
|
|||||||
{
|
{
|
||||||
ushort TerritoryId { get; }
|
ushort TerritoryId { get; }
|
||||||
|
|
||||||
Vector3? AdjustPoint(Vector3 point);
|
AlternateLocation? AdjustPoint(Vector3 point);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@ -25,6 +26,7 @@ internal sealed class MovementOverrideController
|
|||||||
|
|
||||||
// New Gridania Navmesh workaround - planter box outside the Carline Canopy
|
// New Gridania Navmesh workaround - planter box outside the Carline Canopy
|
||||||
new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f)),
|
new BlacklistedPoint(132, new(45.5f, -8f, 101f), new(50.53978f, -8.046954f, 101.06045f)),
|
||||||
|
new BlacklistedPoint(132, new(48.5f, -8f, 98.25f), new(50.53978f, -8.046954f, 101.06045f)),
|
||||||
|
|
||||||
// ul'dah lamp near adventuer's guild
|
// ul'dah lamp near adventuer's guild
|
||||||
new BlacklistedPoint(130, new(59.5f, 4.25f, -118f), new(60.551353f, 4f, -119.76446f)),
|
new BlacklistedPoint(130, new(59.5f, 4.25f, -118f), new(60.551353f, 4f, -119.76446f)),
|
||||||
@ -53,6 +55,9 @@ internal sealed class MovementOverrideController
|
|||||||
// moghome, mogmug's trial
|
// moghome, mogmug's trial
|
||||||
new BlacklistedPoint(400, new(384, -74, 648.75f), new(386.0543f, -72.409454f, 652.0184f), 3),
|
new BlacklistedPoint(400, new(384, -74, 648.75f), new(386.0543f, -72.409454f, 652.0184f), 3),
|
||||||
|
|
||||||
|
// leaving idyllshiret through the west gate attempts to run into this wall
|
||||||
|
new BlacklistedPoint(399, new(-514.4851f, 149.63762f, -480.58087f), new(-528.78656f, 151.17374f, -473.07077f), 5, true),
|
||||||
|
|
||||||
new BlacklistedPoint(1189, new(574f, -142.25f, 504.25f), new(574.44183f, -142.12766f, 507.60065f)),
|
new BlacklistedPoint(1189, new(574f, -142.25f, 504.25f), new(574.44183f, -142.12766f, 507.60065f)),
|
||||||
|
|
||||||
// kholusia, random rocks
|
// kholusia, random rocks
|
||||||
@ -84,7 +89,7 @@ internal sealed class MovementOverrideController
|
|||||||
/// walked on without jumping, but if you teleport to the wrong side you're fucked otherwise.
|
/// walked on without jumping, but if you teleport to the wrong side you're fucked otherwise.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="navPoints">list of points to check</param>
|
/// <param name="navPoints">list of points to check</param>
|
||||||
public void AdjustPath(List<Vector3> navPoints)
|
public (List<Vector3>, bool) AdjustPath(List<Vector3> navPoints)
|
||||||
{
|
{
|
||||||
foreach (var blacklistedArea in BlacklistedLocations)
|
foreach (var blacklistedArea in BlacklistedLocations)
|
||||||
{
|
{
|
||||||
@ -93,17 +98,21 @@ internal sealed class MovementOverrideController
|
|||||||
|
|
||||||
for (int i = 0; i < navPoints.Count; ++i)
|
for (int i = 0; i < navPoints.Count; ++i)
|
||||||
{
|
{
|
||||||
Vector3? updatedPoint = blacklistedArea.AdjustPoint(navPoints[i]);
|
AlternateLocation? alternateLocation = blacklistedArea.AdjustPoint(navPoints[i]);
|
||||||
|
|
||||||
if (updatedPoint != null)
|
if (alternateLocation != null)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Fudging navmesh point from {Original} to {Replacement} in blacklisted area",
|
_logger.LogInformation("Fudging navmesh point from {Original} to {Replacement} in blacklisted area",
|
||||||
navPoints[i].ToString("G", CultureInfo.InvariantCulture),
|
navPoints[i].ToString("G", CultureInfo.InvariantCulture),
|
||||||
updatedPoint.Value.ToString("G", CultureInfo.InvariantCulture));
|
alternateLocation);
|
||||||
|
|
||||||
navPoints[i] = updatedPoint.Value;
|
navPoints[i] = alternateLocation.Point;
|
||||||
|
if (alternateLocation.RecalculateNavmesh)
|
||||||
|
return (navPoints.Take(i + 1).ToList(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return (navPoints, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using Dalamud.Game.ClientState.Conditions;
|
using Dalamud.Game.ClientState.Conditions;
|
||||||
using Dalamud.Game.ClientState.Keys;
|
using Dalamud.Game.ClientState.Keys;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Questionable.Controller.Steps;
|
using Questionable.Controller.Steps;
|
||||||
using Questionable.Controller.Steps.Shared;
|
using Questionable.Controller.Steps.Shared;
|
||||||
@ -28,7 +29,7 @@ internal sealed class QuestController
|
|||||||
private readonly YesAlreadyIpc _yesAlreadyIpc;
|
private readonly YesAlreadyIpc _yesAlreadyIpc;
|
||||||
private readonly IReadOnlyList<ITaskFactory> _taskFactories;
|
private readonly IReadOnlyList<ITaskFactory> _taskFactories;
|
||||||
|
|
||||||
private readonly object _lock = new();
|
private readonly object _progressLock = new();
|
||||||
|
|
||||||
private QuestProgress? _startedQuest;
|
private QuestProgress? _startedQuest;
|
||||||
private QuestProgress? _nextQuest;
|
private QuestProgress? _nextQuest;
|
||||||
@ -37,6 +38,13 @@ internal sealed class QuestController
|
|||||||
private ITask? _currentTask;
|
private ITask? _currentTask;
|
||||||
private bool _automatic;
|
private bool _automatic;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Some combat encounters finish relatively early (i.e. they're done as part of progressing the quest, but not
|
||||||
|
/// technically necessary to progress the quest if we'd just run away and back). We add some slight delay, as
|
||||||
|
/// talking to NPCs, teleporting etc. won't successfully execute.
|
||||||
|
/// </summary>
|
||||||
|
private DateTime _safeAnimationEnd = DateTime.MinValue;
|
||||||
|
|
||||||
public QuestController(
|
public QuestController(
|
||||||
IClientState clientState,
|
IClientState clientState,
|
||||||
GameFunctions gameFunctions,
|
GameFunctions gameFunctions,
|
||||||
@ -90,13 +98,14 @@ internal sealed class QuestController
|
|||||||
|
|
||||||
public void Reload()
|
public void Reload()
|
||||||
{
|
{
|
||||||
lock (_lock)
|
lock (_progressLock)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Reload, resetting curent quest progress");
|
_logger.LogInformation("Reload, resetting curent quest progress");
|
||||||
|
|
||||||
_startedQuest = null;
|
_startedQuest = null;
|
||||||
_nextQuest = null;
|
_nextQuest = null;
|
||||||
_simulatedQuest = null;
|
_simulatedQuest = null;
|
||||||
|
_safeAnimationEnd = DateTime.MinValue;
|
||||||
|
|
||||||
DebugState = null;
|
DebugState = null;
|
||||||
|
|
||||||
@ -106,6 +115,20 @@ internal sealed class QuestController
|
|||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
ActionManager* actionManager = ActionManager.Instance();
|
||||||
|
if (actionManager != null)
|
||||||
|
{
|
||||||
|
float animationLock = Math.Max(actionManager->AnimationLock,
|
||||||
|
actionManager->CastTimeElapsed > 0
|
||||||
|
? actionManager->CastTimeTotal - actionManager->CastTimeElapsed
|
||||||
|
: 0);
|
||||||
|
if (animationLock > 0)
|
||||||
|
_safeAnimationEnd = DateTime.Now.AddSeconds(1 + animationLock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UpdateCurrentQuest();
|
UpdateCurrentQuest();
|
||||||
|
|
||||||
if (!_clientState.IsLoggedIn || _condition[ConditionFlag.Unconscious])
|
if (!_clientState.IsLoggedIn || _condition[ConditionFlag.Unconscious])
|
||||||
@ -116,7 +139,8 @@ internal sealed class QuestController
|
|||||||
_movementController.Stop();
|
_movementController.Stop();
|
||||||
_combatController.Stop();
|
_combatController.Stop();
|
||||||
}
|
}
|
||||||
} else if (_keyState[VirtualKey.ESCAPE])
|
}
|
||||||
|
else if (_keyState[VirtualKey.ESCAPE])
|
||||||
{
|
{
|
||||||
if (_currentTask != null || _taskQueue.Count > 0)
|
if (_currentTask != null || _taskQueue.Count > 0)
|
||||||
{
|
{
|
||||||
@ -134,7 +158,7 @@ internal sealed class QuestController
|
|||||||
&& CurrentQuest is { Sequence: 0, Step: 0 } or { Sequence: 0, Step: 255 }
|
&& CurrentQuest is { Sequence: 0, Step: 0 } or { Sequence: 0, Step: 255 }
|
||||||
&& DateTime.Now >= CurrentQuest.StepProgress.StartedAt.AddSeconds(15))
|
&& DateTime.Now >= CurrentQuest.StepProgress.StartedAt.AddSeconds(15))
|
||||||
{
|
{
|
||||||
lock (_lock)
|
lock (_progressLock)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Quest accept apparently didn't work out, resetting progress");
|
_logger.LogWarning("Quest accept apparently didn't work out, resetting progress");
|
||||||
CurrentQuest.SetStep(0);
|
CurrentQuest.SetStep(0);
|
||||||
@ -149,7 +173,7 @@ internal sealed class QuestController
|
|||||||
|
|
||||||
private void UpdateCurrentQuest()
|
private void UpdateCurrentQuest()
|
||||||
{
|
{
|
||||||
lock (_lock)
|
lock (_progressLock)
|
||||||
{
|
{
|
||||||
DebugState = null;
|
DebugState = null;
|
||||||
|
|
||||||
@ -249,6 +273,12 @@ internal sealed class QuestController
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (DateTime.Now < _safeAnimationEnd)
|
||||||
|
{
|
||||||
|
DebugState = "Waiting for Animation";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (questToRun.Sequence != currentSequence)
|
if (questToRun.Sequence != currentSequence)
|
||||||
{
|
{
|
||||||
questToRun.SetSequence(currentSequence);
|
questToRun.SetSequence(currentSequence);
|
||||||
@ -302,7 +332,7 @@ internal sealed class QuestController
|
|||||||
|
|
||||||
public void IncreaseStepCount(ushort? questId, int? sequence, bool shouldContinue = false)
|
public void IncreaseStepCount(ushort? questId, int? sequence, bool shouldContinue = false)
|
||||||
{
|
{
|
||||||
lock (_lock)
|
lock (_progressLock)
|
||||||
{
|
{
|
||||||
(QuestSequence? seq, QuestStep? step) = GetNextStep();
|
(QuestSequence? seq, QuestStep? step) = GetNextStep();
|
||||||
if (CurrentQuest == null || seq == null || step == null)
|
if (CurrentQuest == null || seq == null || step == null)
|
||||||
@ -587,7 +617,7 @@ internal sealed class QuestController
|
|||||||
|
|
||||||
public void Skip(ushort questQuestId, byte currentQuestSequence)
|
public void Skip(ushort questQuestId, byte currentQuestSequence)
|
||||||
{
|
{
|
||||||
lock (_lock)
|
lock (_progressLock)
|
||||||
{
|
{
|
||||||
if (_currentTask is ISkippableTask)
|
if (_currentTask is ISkippableTask)
|
||||||
_currentTask = null;
|
_currentTask = null;
|
||||||
|
@ -79,6 +79,20 @@ internal static class SkipCondition
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SkipConditions.InTerritory.Count > 0 &&
|
||||||
|
SkipConditions.InTerritory.Contains(clientState.TerritoryType))
|
||||||
|
{
|
||||||
|
logger.LogInformation("Skipping step, as in a skip.InTerritory");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SkipConditions.NotInTerritory.Count > 0 &&
|
||||||
|
!SkipConditions.NotInTerritory.Contains(clientState.TerritoryType))
|
||||||
|
{
|
||||||
|
logger.LogInformation("Skipping step, as not in a skip.NotInTerritory");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (SkipConditions.QuestsCompleted.Count > 0 &&
|
if (SkipConditions.QuestsCompleted.Count > 0 &&
|
||||||
SkipConditions.QuestsCompleted.All(gameFunctions.IsQuestComplete))
|
SkipConditions.QuestsCompleted.All(gameFunctions.IsQuestComplete))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user