Compare commits

...

8 Commits

108 changed files with 6731 additions and 112 deletions

View File

@ -79,6 +79,9 @@ public class QuestSourceGenerator : ISourceGenerator
}
var quest = questNode.Deserialize<QuestRoot>()!;
if (quest.Disabled)
continue;
quests.Add((id, quest));
}

View File

@ -173,6 +173,8 @@ public static class RoslynShortcuts
SyntaxNodeList(
Assignment(nameof(ComplexCombatData.DataId), complexCombatData.DataId, default(uint))
.AsSyntaxNodeOrToken(),
Assignment(nameof(ComplexCombatData.MinimumKillCount), complexCombatData.MinimumKillCount, null)
.AsSyntaxNodeOrToken(),
Assignment(nameof(ComplexCombatData.RewardItemId), complexCombatData.RewardItemId, null)
.AsSyntaxNodeOrToken(),
Assignment(nameof(ComplexCombatData.RewardItemCount), complexCombatData.RewardItemCount, null)

6
QuestPaths/.editorconfig Normal file
View File

@ -0,0 +1,6 @@
root = true
[*.json]
indent_size = 2
indent_style = space
insert_final_newline = true

View File

@ -0,0 +1,82 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2001717,
"Position": {
"X": 25.497803,
"Y": 2.090454,
"Z": -0.015319824
},
"TerritoryId": 212,
"InteractionType": "Interact"
},
{
"DataId": 1007417,
"Position": {
"X": 1.2359009,
"Y": -3.0000014,
"Z": -57.66388
},
"TerritoryId": 212,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1006240,
"Position": {
"X": 14.389221,
"Y": -44.86571,
"Z": 262.65344
},
"TerritoryId": 154,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Yellow Serpent Gate (North Shroud)"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006240,
"Position": {
"X": 14.389221,
"Y": -44.86571,
"Z": 262.65344
},
"TerritoryId": 154,
"InteractionType": "Emote",
"Emote": "soothe"
}
]
}
]
}

View File

@ -0,0 +1,66 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006241,
"Position": {
"X": 17.349426,
"Y": -44.86564,
"Z": 262.745
},
"TerritoryId": 154,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 7,
"Position": {
"X": -41.58087,
"Y": -38.55963,
"Z": 233.7528
},
"TerritoryId": 154,
"InteractionType": "AttuneAetheryte",
"StopDistance": 5
},
{
"Position": {
"X": -220.29037,
"Y": -28.43536,
"Z": 283.79355
},
"TerritoryId": 154,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [
179
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006241,
"Position": {
"X": 17.349426,
"Y": -44.86564,
"Z": 262.745
},
"TerritoryId": 154,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float"
}
]
}
]
}

View File

@ -0,0 +1,101 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006279,
"Position": {
"X": -231.4336,
"Y": 21.512743,
"Z": 339.49792
},
"TerritoryId": 153,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "South Shroud - Camp Tranquil",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002646,
"Position": {
"X": -68.711426,
"Y": 1.296936,
"Z": 301.74707
},
"TerritoryId": 153,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1888
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002574,
"Position": {
"X": -68.711426,
"Y": 1.296936,
"Z": 301.74707
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1006279,
"Position": {
"X": -231.4336,
"Y": 21.512743,
"Z": 339.49792
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 20,
"Position": {
"X": -326.6194,
"Y": 10.696533,
"Z": 406.63757
},
"TerritoryId": 146,
"InteractionType": "AttuneAetheryte",
"StopDistance": 5,
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo"
},
{
"DataId": 1004917,
"Position": {
"X": -358.6328,
"Y": 8.469424,
"Z": 422.4154
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,41 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1003281,
"Position": {
"X": 97.520386,
"Y": 40.248554,
"Z": 81.1322
},
"TerritoryId": 128,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006264,
"Position": {
"X": 710.90247,
"Y": 66.027,
"Z": -277.66846
},
"TerritoryId": 135,
"InteractionType": "CompleteQuest",
"AethernetShortcut": [
"[Limsa Lominsa] The Aftcastle",
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)"
]
}
]
}
]
}

View File

@ -0,0 +1,53 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 130,
"InteractionType": "Interact",
"AetheryteShortcut": "Ul'dah"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006196,
"Position": {
"X": -63.98114,
"Y": -20.296238,
"Z": -5.142395
},
"TerritoryId": 145,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone"
}
]
}
]
}

View File

@ -0,0 +1,75 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006196,
"Position": {
"X": -63.98114,
"Y": -20.296238,
"Z": -5.142395
},
"TerritoryId": 145,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006206,
"Position": {
"X": -90.95911,
"Y": -29.465149,
"Z": -58.854065
},
"TerritoryId": 145,
"InteractionType": "Interact"
},
{
"DataId": 1006204,
"Position": {
"X": -29.34314,
"Y": -10.500086,
"Z": -7.5532227
},
"TerritoryId": 145,
"InteractionType": "Interact"
},
{
"DataId": 1006205,
"Position": {
"X": 14.480774,
"Y": -5.9663696,
"Z": 7.4310913
},
"TerritoryId": 145,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006196,
"Position": {
"X": -63.98114,
"Y": -20.296238,
"Z": -5.142395
},
"TerritoryId": 145,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006196,
"Position": {
"X": -63.98114,
"Y": -20.296238,
"Z": -5.142395
},
"TerritoryId": 145,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2001965,
"Position": {
"X": 313.46606,
"Y": 23.178406,
"Z": -253.58972
},
"TerritoryId": 145,
"InteractionType": "Combat",
"EnemySpawnType": "AfterItemUse",
"ItemId": 2000604,
"KillEnemyDataIds": [
363
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006196,
"Position": {
"X": -63.98114,
"Y": -20.296238,
"Z": -5.142395
},
"TerritoryId": 145,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,76 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006196,
"Position": {
"X": -63.98114,
"Y": -20.296238,
"Z": -5.142395
},
"TerritoryId": 145,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -171.46503,
"Y": -46.504063,
"Z": 491.88867
},
"TerritoryId": 145,
"InteractionType": "WalkTo",
"TargetTerritoryId": 146
},
{
"DataId": 19,
"Position": {
"X": -159.3805,
"Y": 30.105957,
"Z": -415.45746
},
"TerritoryId": 146,
"InteractionType": "AttuneAetheryte",
"StopDistance": 7
},
{
"DataId": 1006211,
"Position": {
"X": -217.48688,
"Y": 26.258211,
"Z": -361.2574
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,75 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006217,
"Position": {
"X": -181.04828,
"Y": 28.214073,
"Z": -402.02948
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006702,
"Position": {
"X": -186.14484,
"Y": 3.6335826,
"Z": -247.82184
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1006704,
"Position": {
"X": -174.12073,
"Y": 4.3956237,
"Z": -165.45361
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1006703,
"Position": {
"X": -187.27399,
"Y": 9.149252,
"Z": -133.22656
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006217,
"Position": {
"X": -181.04828,
"Y": 28.214073,
"Z": -402.02948
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006217,
"Position": {
"X": -181.04828,
"Y": 28.214073,
"Z": -402.02948
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"TerritoryId": 128,
"InteractionType": "UseItem",
"ItemId": 30362
},
{
"DataId": 2001711,
"Position": {
"X": -480.91858,
"Y": 17.990356,
"Z": -386.862
},
"TerritoryId": 140,
"InteractionType": "Interact"
},
{
"DataId": 2001715,
"Position": {
"X": 23.23944,
"Y": 2.090454,
"Z": -0.015319824
},
"TerritoryId": 212,
"InteractionType": "Interact"
},
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,62 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2001717,
"Position": {
"X": 25.497803,
"Y": 2.090454,
"Z": -0.015319824
},
"TerritoryId": 212,
"InteractionType": "Interact"
},
{
"DataId": 1007418,
"Position": {
"X": 9.689453,
"Y": -3.0000017,
"Z": -55.985413
},
"TerritoryId": 212,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006219,
"Position": {
"X": 193.53015,
"Y": 7.8551283,
"Z": -25.864075
},
"TerritoryId": 153,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "South Shroud - Quarrymill"
}
]
}
]
}

View File

@ -0,0 +1,70 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006219,
"Position": {
"X": 193.53015,
"Y": 7.8551283,
"Z": -25.864075
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1000327,
"Position": {
"X": 177.66077,
"Y": 8.928099,
"Z": -43.01526
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,88 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 260.3064,
"Y": 3.8526046,
"Z": 15.633602
},
"TerritoryId": 153,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [
4
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1000590,
"Position": {
"X": -165.9419,
"Y": 9.869227,
"Z": -81.34589
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006680,
"Position": {
"X": 209.30798,
"Y": 6.1041656,
"Z": -39.932922
},
"TerritoryId": 153,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,104 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006219,
"Position": {
"X": 193.53015,
"Y": 7.8551283,
"Z": -25.864075
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1006679,
"Position": {
"X": 352.49854,
"Y": -2.3331592,
"Z": 51.56018
},
"TerritoryId": 153,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1909
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1006679,
"Position": {
"X": 352.49854,
"Y": -2.3331592,
"Z": 51.56018
},
"TerritoryId": 153,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,41 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000332,
"Position": {
"X": 207.7821,
"Y": 6.103813,
"Z": -39.536194
},
"TerritoryId": 153,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "South Shroud - Quarrymill",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo"
}
]
}
]
}

View File

@ -0,0 +1,85 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006221,
"Position": {
"X": -219.65369,
"Y": 26.204851,
"Z": -337.789
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1006222,
"Position": {
"X": -207.17181,
"Y": 27.31405,
"Z": -331.34973
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1006223,
"Position": {
"X": -85.06909,
"Y": 26.222988,
"Z": -348.50085
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1006224,
"Position": {
"X": -77.74481,
"Y": 27.626602,
"Z": -325.42914
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,75 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006226,
"Position": {
"X": -225.97089,
"Y": 26.138475,
"Z": -355.0622
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006228,
"Position": {
"X": -194.75098,
"Y": 19.02249,
"Z": -557.8546
},
"TerritoryId": 146,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
2257,
2258
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1006228,
"Position": {
"X": -194.75098,
"Y": 19.02249,
"Z": -557.8546
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,125 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2001980,
"Position": {
"X": -202.22784,
"Y": 28.122314,
"Z": -318.5016
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1006225,
"Position": {
"X": -83.84839,
"Y": 39.399178,
"Z": -333.69952
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1007617,
"Position": {
"X": -114.7937,
"Y": 39.483143,
"Z": -339.71167
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 2001981,
"Position": {
"X": -78.93494,
"Y": 26.474365,
"Z": -350.08777
},
"TerritoryId": 146,
"InteractionType": "Interact"
},
{
"DataId": 1007616,
"Position": {
"X": -98.77167,
"Y": 26.161106,
"Z": -341.3291
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1006230,
"Position": {
"X": 34.89734,
"Y": 3.3969688,
"Z": -343.70947
},
"TerritoryId": 146,
"InteractionType": "SinglePlayerDuty"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006215,
"Position": {
"X": -227.34424,
"Y": 26.16842,
"Z": -352.98694
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"TerritoryId": 128,
"InteractionType": "UseItem",
"ItemId": 30362
},
{
"DataId": 2001711,
"Position": {
"X": -480.91858,
"Y": 17.990356,
"Z": -386.862
},
"TerritoryId": 140,
"InteractionType": "Interact"
},
{
"DataId": 2001715,
"Position": {
"X": 23.23944,
"Y": 2.090454,
"Z": -0.015319824
},
"TerritoryId": 212,
"InteractionType": "Interact"
},
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006242,
"Position": {
"X": 16.403442,
"Y": -44.865616,
"Z": 264.54565
},
"TerritoryId": 154,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2001982,
"Position": {
"X": -260.0901,
"Y": -56.38214,
"Z": 307.60657
},
"TerritoryId": 154,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1899
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006242,
"Position": {
"X": 16.403442,
"Y": -44.865616,
"Z": 264.54565
},
"TerritoryId": 154,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float"
}
]
}
]
}

View File

@ -0,0 +1,111 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006241,
"Position": {
"X": 17.349426,
"Y": -44.86564,
"Z": 262.745
},
"TerritoryId": 154,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -222.67735,
"Y": -66.345436,
"Z": 396.86935
},
"TerritoryId": 154,
"InteractionType": "WaitForManualProgress",
"Comment": "Use Firesand Stick on glowing spot"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2001988,
"Position": {
"X": -217.97516,
"Y": -66.086914,
"Z": 389.9137
},
"TerritoryId": 154,
"InteractionType": "Interact"
},
{
"DataId": 2001986,
"Position": {
"X": -219.71472,
"Y": -65.90375,
"Z": 383.3523
},
"TerritoryId": 154,
"InteractionType": "Interact"
},
{
"DataId": 2001987,
"Position": {
"X": -217.97516,
"Y": -65.20184,
"Z": 376.3026
},
"TerritoryId": 154,
"InteractionType": "Interact"
},
{
"DataId": 2001985,
"Position": {
"X": -233.02057,
"Y": -66.453064,
"Z": 378.95776
},
"TerritoryId": 154,
"InteractionType": "Interact"
},
{
"DataId": 2001984,
"Position": {
"X": -230.33496,
"Y": -66.819336,
"Z": 388.93713
},
"TerritoryId": 154,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006241,
"Position": {
"X": 17.349426,
"Y": -44.86564,
"Z": 262.745
},
"TerritoryId": 154,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float"
}
]
}
]
}

View File

@ -0,0 +1,70 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006240,
"Position": {
"X": 14.389221,
"Y": -44.86571,
"Z": 262.65344
},
"TerritoryId": 154,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1007541,
"Position": {
"X": -302.8459,
"Y": -51.768955,
"Z": 331.19702
},
"TerritoryId": 154,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
182
]
},
{
"DataId": 1007541,
"Position": {
"X": -302.8459,
"Y": -51.768955,
"Z": 331.19702
},
"TerritoryId": 154,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1002780,
"Position": {
"X": -89.79938,
"Y": -45.331406,
"Z": 195.88
},
"TerritoryId": 154,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float"
}
]
}
]
}

View File

@ -0,0 +1,90 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1002780,
"Position": {
"X": -89.79938,
"Y": -45.331406,
"Z": 195.88
},
"TerritoryId": 154,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "North Shroud - Fallgourd Float",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000100,
"Position": {
"X": 23.819275,
"Y": -8,
"Z": 115.92273
},
"TerritoryId": 132,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1000146,
"Position": {
"X": 49.79016,
"Y": -1.4669685,
"Z": 51.743286
},
"TerritoryId": 132,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1000248,
"Position": {
"X": 143.05322,
"Y": 14.250365,
"Z": -250.72101
},
"TerritoryId": 133,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Lancers' Guild"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006263,
"Position": {
"X": 36.819946,
"Y": 16.351469,
"Z": -334.5846
},
"TerritoryId": 133,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,113 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006263,
"Position": {
"X": 36.819946,
"Y": 16.351469,
"Z": -334.5846
},
"TerritoryId": 133,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2001999,
"Position": {
"X": -576.1349,
"Y": 68.13147,
"Z": 69.41321
},
"TerritoryId": 148,
"InteractionType": "Interact",
"AetheryteShortcut": "Central Shroud - Bentbranch Meadows"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002701,
"Position": {
"X": -574.4259,
"Y": 67.00232,
"Z": 71.39697
},
"TerritoryId": 148,
"InteractionType": "Duty",
"ContentFinderConditionId": 6
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1006263,
"Position": {
"X": 36.819946,
"Y": 16.351469,
"Z": -334.5846
},
"TerritoryId": 133,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Lancers' Guild"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"TerritoryId": 128,
"InteractionType": "UseItem",
"ItemId": 30362
},
{
"DataId": 2001711,
"Position": {
"X": -480.91858,
"Y": 17.990356,
"Z": -386.862
},
"TerritoryId": 140,
"InteractionType": "Interact"
},
{
"DataId": 2001715,
"Position": {
"X": 23.23944,
"Y": 2.090454,
"Z": -0.015319824
},
"TerritoryId": 212,
"InteractionType": "Interact"
},
{
"DataId": 1006688,
"Position": {
"X": 39.29187,
"Y": 1.2148079,
"Z": 0.8086548
},
"TerritoryId": 212,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,56 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006264,
"Position": {
"X": 710.90247,
"Y": 66.027,
"Z": -277.66846
},
"TerritoryId": 135,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002033,
"Position": {
"X": 671.1986,
"Y": 64.37781,
"Z": -205.24915
},
"TerritoryId": 135,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
2239,
2240
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006264,
"Position": {
"X": 710.90247,
"Y": 66.027,
"Z": -277.66846
},
"TerritoryId": 135,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,55 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006264,
"Position": {
"X": 710.90247,
"Y": 66.027,
"Z": -277.66846
},
"TerritoryId": 135,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002034,
"Position": {
"X": 646.1432,
"Y": 67.46008,
"Z": -263.38605
},
"TerritoryId": 135,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1900
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006264,
"Position": {
"X": 710.90247,
"Y": 66.027,
"Z": -277.66846
},
"TerritoryId": 135,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,72 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006264,
"Position": {
"X": 710.90247,
"Y": 66.027,
"Z": -277.66846
},
"TerritoryId": 135,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006265,
"Position": {
"X": 703.5171,
"Y": 65.78333,
"Z": -288.77704
},
"TerritoryId": 135,
"InteractionType": "SinglePlayerDuty"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 696.00323,
"Y": 80.20443,
"Z": -391.9752
},
"TerritoryId": 135,
"InteractionType": "WalkTo",
"TargetTerritoryId": 137
},
{
"DataId": 11,
"Position": {
"X": 489.15845,
"Y": 20.828491,
"Z": 468.80298
},
"TerritoryId": 137,
"InteractionType": "AttuneAetheryte",
"StopDistance": 5
},
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,75 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002035,
"Position": {
"X": 666.6819,
"Y": 9.018005,
"Z": 509.6361
},
"TerritoryId": 137,
"InteractionType": "UseItem",
"ItemId": 2000636
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002639,
"Position": {
"X": 652.2468,
"Y": 12.039368,
"Z": 519.8595
},
"TerritoryId": 137,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1887
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,52 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 6,
"Position": {
"X": -230.0603,
"Y": 22.62909,
"Z": 355.45886
},
"TerritoryId": 153,
"InteractionType": "AttuneAetheryte",
"StopDistance": 5,
"AetheryteShortcut": "South Shroud - Quarrymill"
},
{
"DataId": 1006279,
"Position": {
"X": -231.4336,
"Y": 21.512743,
"Z": 339.49792
},
"TerritoryId": 153,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,76 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004917,
"Position": {
"X": -358.6328,
"Y": 8.469424,
"Z": 422.4154
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Forgotten Springs",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002044,
"Position": {
"X": 75.97461,
"Y": 2.090454,
"Z": 692.9884
},
"TerritoryId": 146,
"InteractionType": "UseItem",
"ItemId": 2000643
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002045,
"Position": {
"X": 89.066895,
"Y": 3.189148,
"Z": 673.0906
},
"TerritoryId": 146,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1889
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1004917,
"Position": {
"X": -358.6328,
"Y": 8.469424,
"Z": 422.4154
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Southern Thanalan - Forgotten Springs"
}
]
}
]
}

View File

@ -0,0 +1,94 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004917,
"Position": {
"X": -358.6328,
"Y": 8.469424,
"Z": 422.4154
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Forgotten Springs",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -44.549854,
"Y": 7.3629045,
"Z": 405.72034
},
"TerritoryId": 146,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [
356
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002046,
"Position": {
"X": 42.86255,
"Y": 18.783813,
"Z": 582.5436
},
"TerritoryId": 146,
"InteractionType": "UseItem",
"ItemId": 2000645
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2002576,
"Position": {
"X": 57.99951,
"Y": 21.011597,
"Z": 569.69543
},
"TerritoryId": 146,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1890
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1004917,
"Position": {
"X": -358.6328,
"Y": 8.469424,
"Z": 422.4154
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Southern Thanalan - Forgotten Springs"
}
]
}
]
}

View File

@ -0,0 +1,41 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004917,
"Position": {
"X": -358.6328,
"Y": 8.469424,
"Z": 422.4154
},
"TerritoryId": 146,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Southern Thanalan - Forgotten Springs",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol"
}
]
}
]
}

View File

@ -0,0 +1,123 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006267,
"Position": {
"X": 340.81018,
"Y": 34.269722,
"Z": 110.27698
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1003588,
"Position": {
"X": 344.6859,
"Y": 31.889465,
"Z": 89.37195
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 12,
"Position": {
"X": -18.387146,
"Y": 72.67859,
"Z": 3.829956
},
"TerritoryId": 137,
"InteractionType": "AttuneAetheryte",
"StopDistance": 5
},
{
"DataId": 1006268,
"Position": {
"X": -334.6151,
"Y": 69.69995,
"Z": 153.79565
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2002702,
"Position": {
"X": -338.61298,
"Y": 69.01648,
"Z": 159.65515
},
"TerritoryId": 137,
"InteractionType": "Duty",
"ContentFinderConditionId": 8
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1006268,
"Position": {
"X": -334.6151,
"Y": 69.69995,
"Z": 153.79565
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol"
}
]
}
]
}

View File

@ -0,0 +1,55 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006306,
"Position": {
"X": -25.864075,
"Y": 71.787285,
"Z": -36.78955
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,65 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006309,
"Position": {
"X": -116.56372,
"Y": 86.051636,
"Z": -5.874817
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 1006308,
"Position": {
"X": -42.98468,
"Y": 75.575645,
"Z": -55.069885
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,55 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006311,
"Position": {
"X": 26.504883,
"Y": 42.202568,
"Z": 251.75854
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006312,
"Position": {
"X": -369.0395,
"Y": 54.28071,
"Z": 441.24512
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,58 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006312,
"Position": {
"X": -369.0395,
"Y": 54.28071,
"Z": 441.24512
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -309.02634,
"Y": 44.280117,
"Z": 464.14
},
"TerritoryId": 137,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [
136
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006312,
"Position": {
"X": -369.0395,
"Y": 54.28071,
"Z": 441.24512
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,76 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006312,
"Position": {
"X": -369.0395,
"Y": 54.28071,
"Z": 441.24512
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002061,
"Position": {
"X": -248.40167,
"Y": 33.98181,
"Z": 299.39722
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 2002059,
"Position": {
"X": -282.88702,
"Y": 33.951294,
"Z": 308.24744
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 2002060,
"Position": {
"X": -298.2987,
"Y": 33.89026,
"Z": 276.53918
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport"
}
]
}
]
}

View File

@ -0,0 +1,91 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Wineport",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006312,
"Position": {
"X": -369.0395,
"Y": 54.28071,
"Z": 441.24512
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002062,
"Position": {
"X": -242.63379,
"Y": 45.212402,
"Z": 495.32312
},
"TerritoryId": 137,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1910
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1006305,
"Position": {
"X": 10.60498,
"Y": 71.47817,
"Z": -16.617126
},
"TerritoryId": 137,
"InteractionType": "Interact",
"AetheryteShortcut": "Eastern La Noscea - Wineport"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol"
}
]
}
]
}

View File

@ -0,0 +1,125 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006676,
"Position": {
"X": 558.98376,
"Y": 20.706482,
"Z": 451.13293
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1006314,
"Position": {
"X": 534.8439,
"Y": 17.448048,
"Z": 450.98022
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002598,
"Position": {
"X": 524.6348,
"Y": 18.16839,
"Z": 457.1489
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1006319,
"Position": {
"X": 523.03345,
"Y": 17.44805,
"Z": 454.5509
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 1006318,
"Position": {
"X": 525.5055,
"Y": 17.448048,
"Z": 451.0719
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 1006317,
"Position": {
"X": 533.77576,
"Y": 17.654663,
"Z": 450.43103
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 1006316,
"Position": {
"X": 560.38745,
"Y": 20.721313,
"Z": 457.02295
},
"TerritoryId": 137,
"InteractionType": "Interact"
},
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006676,
"Position": {
"X": 558.98376,
"Y": 20.706482,
"Z": 451.13293
},
"TerritoryId": 137,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,97 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006266,
"Position": {
"X": 560.35706,
"Y": 20.721315,
"Z": 455.89368
},
"TerritoryId": 137,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Eastern La Noscea - Costa Del Sol",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 76.605774,
"Y": 80.43136,
"Z": -119.52899
},
"TerritoryId": 137,
"InteractionType": "WalkTo",
"TargetTerritoryId": 139,
"AetheryteShortcut": "Eastern La Noscea - Wineport"
},
{
"DataId": 15,
"Position": {
"X": 437.4303,
"Y": 5.508484,
"Z": 94.590576
},
"TerritoryId": 139,
"InteractionType": "AttuneAetheryte",
"StopDistance": 5
},
{
"DataId": 2002084,
"Position": {
"X": 437.27783,
"Y": 8.194031,
"Z": 133.04333
},
"TerritoryId": 139,
"InteractionType": "Interact"
},
{
"DataId": 2002085,
"Position": {
"X": 404.86768,
"Y": 4.3182373,
"Z": 88.45642
},
"TerritoryId": 139,
"InteractionType": "Interact"
},
{
"DataId": 2002083,
"Position": {
"X": 402.30408,
"Y": 8.712891,
"Z": 47.196045
},
"TerritoryId": 139,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006341,
"Position": {
"X": 479.39258,
"Y": 16.258692,
"Z": 128.37415
},
"TerritoryId": 139,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,71 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "JerryWester",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006341,
"Position": {
"X": 479.39258,
"Y": 16.258692,
"Z": 128.37415
},
"TerritoryId": 139,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Upper La Noscea - Camp Bronze Lake",
"SkipIf": [
"AetheryteShortcutIfInSameTerritory"
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2002086,
"Position": {
"X": 382.55884,
"Y": 25.253662,
"Z": -139.02502
},
"TerritoryId": 139,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002690,
"Position": {
"X": 381.39917,
"Y": 23.727722,
"Z": -140.79504
},
"TerritoryId": 139,
"InteractionType": "Duty",
"ContentFinderConditionId": 20002
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006343,
"Position": {
"X": 427.63403,
"Y": 4.115109,
"Z": 85.92346
},
"TerritoryId": 139,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -1,6 +1,7 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,

View File

@ -1,6 +1,7 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,

View File

@ -1,6 +1,7 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -20,6 +21,21 @@
{
"Sequence": 1,
"Steps": [
{
"DataId": 1032169,
"Position": {
"X": -423.33105,
"Y": 25.599815,
"Z": 265.94946
},
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"SkipIf": [
"NotTargetable"
],
"$": "Only if QW: 0 48 0 0 0 0"
},
{
"DataId": 1032167,
"Position": {
@ -29,7 +45,10 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true
"Fly": true,
"SkipIf": [
"NotTargetable"
]
}
]
},

View File

@ -0,0 +1,8 @@
## Raiders of the Lost Pork
QuestWork:
```
0 x 0 0 0 0
48 → Elegant Eulmoran (1032169)
?? → 1032167
```

View File

@ -1,6 +1,7 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -28,19 +29,39 @@
"Z": -55.77173
},
"TerritoryId": 816,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
11451
],
"InteractionType": "Interact",
"Fly": true,
"Comment": "TODO Combat is optional, check where we should walk"
"$": "Only if QW: 0 0 ??? 0 0 0",
"SkipIf": ["NotTargetable"]
},
{
"DataId": 2010902,
"Position": {
"X": -405.9358,
"Y": -0.07635498,
"Z": -28.397034
},
"TerritoryId": 816,
"InteractionType": "Interact",
"$": "Only if QW: 0 0 1 0 0 0 → if complete, 0 16 0 0 0 0",
"SkipIf": ["NotTargetable"]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -398.9776,
"Y": 0.82966614,
"Z": 8.668919
},
"TerritoryId": 816,
"InteractionType": "WalkTo",
"Mount": false,
"DisableNavmesh": true
},
{
"DataId": 1031809,
"Position": {

View File

@ -0,0 +1,66 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1031809,
"Position": {
"X": -454.3069,
"Y": 71.43217,
"Z": 575.1278
},
"TerritoryId": 816,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -115.77283,
"Y": 7.1942587,
"Z": 130.61378
},
"TerritoryId": 816,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2010911,
"Position": {
"X": -113.93915,
"Y": -36.087585,
"Z": 87.6936
},
"TerritoryId": 816,
"InteractionType": "Interact",
"DisableNavmesh": true,
"$": "QW: 0 2 0 0 0 0"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1031809,
"Position": {
"X": -454.3069,
"Y": 71.43217,
"Z": 575.1278
},
"TerritoryId": 816,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Il Mheg - Lydha Lran",
"Fly": true
}
]
}
]
}

View File

@ -79,7 +79,6 @@
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"Fly": true
}
]

View File

@ -65,16 +65,6 @@
"TerritoryId": 1187,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Urqopacha - Wachunpelo"
},
{
"DataId": 1050684,
"Position": {
"X": 391.37854,
"Y": -156.07434,
"Z": -388.50995
},
"TerritoryId": 1187,
"InteractionType": "CompleteQuest"
}
]
}

View File

@ -50,7 +50,7 @@
},
"StopDistance": 0.5,
"TerritoryId": 1187,
"InteractionType": "AcceptQuest",
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Urqopacha - Wachunpelo",
"Fly": true
}

View File

@ -0,0 +1,56 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048960,
"Position": {
"X": -405.84424,
"Y": 23.562847,
"Z": -476.61554
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -455.06216,
"Y": 20.027777,
"Z": 46.272446
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"KillEnemyDataIds": [
17268
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048960,
"Position": {
"X": -405.84424,
"Y": 23.562847,
"Z": -476.61554
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Iq Br'aax"
}
]
}
]
}

View File

@ -0,0 +1,102 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051071,
"Position": {
"X": -554.03986,
"Y": 1.3156406,
"Z": -489.3416
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -596.55597,
"Y": 2.3708515,
"Z": -493.64908
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -615.2386,
"Y": -44.093876,
"Z": -495.7548
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"DisableNavmesh": true
},
{
"DataId": 2014307,
"Position": {
"X": -729.7932,
"Y": -107.83557,
"Z": -674.8608
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -615.2386,
"Y": -44.093876,
"Z": -495.7548
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true
},
{
"Position": {
"X": -596.55597,
"Y": 2.3708515,
"Z": -493.64908
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"DisableNavmesh": true
},
{
"DataId": 1051071,
"Position": {
"X": -554.03986,
"Y": 1.3156406,
"Z": -489.3416
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_KINGZD002_05091_Q1_000_000",
"Answer": "TEXT_KINGZD002_05091_A1_000_001"
}
]
}
]
}
]
}

View File

@ -0,0 +1,78 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051057,
"Position": {
"X": -343.67902,
"Y": 18.885578,
"Z": -404.22675
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 158.97704,
"Y": 0.80940175,
"Z": -773.5188
},
"StopDistance": 1,
"TerritoryId": 1189,
"InteractionType": "Combat",
"AetheryteShortcut": "Tuliyollal",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
17663
],
"AethernetShortcut": [
"[Tuliyollal] Aetheryte Plaza",
"[Tuliyollal] Dirigible Landing (Yak T'el)"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1051058,
"Position": {
"X": 159.47205,
"Y": 0.81595546,
"Z": -770.19916
},
"StopDistance": 7,
"TerritoryId": 1189,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051057,
"Position": {
"X": -343.67902,
"Y": 18.885578,
"Z": -404.22675
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Iq Br'aax",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,67 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048928,
"Position": {
"X": 36.301147,
"Y": 8.205902,
"Z": -645.1362
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051072,
"Position": {
"X": -39.07837,
"Y": 4.3051004,
"Z": -332.87555
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1051072,
"Position": {
"X": -39.07837,
"Y": 4.3051004,
"Z": -332.87555
},
"TerritoryId": 1189,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048928,
"Position": {
"X": 36.301147,
"Y": 8.205902,
"Z": -645.1362
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,75 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051061,
"Position": {
"X": -407.79742,
"Y": 28.068892,
"Z": -360.55542
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051062,
"Position": {
"X": -489.5247,
"Y": -29.96456,
"Z": -94.83484
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
17664,
17665
],
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1051062,
"Position": {
"X": -489.5247,
"Y": -29.96456,
"Z": -94.83484
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"StopDistance": 7
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051061,
"Position": {
"X": -407.79742,
"Y": 28.068892,
"Z": -360.55542
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Iq Br'aax",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,99 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051065,
"Position": {
"X": 380.7583,
"Y": 21.437008,
"Z": -496.84903
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014264,
"Position": {
"X": 405.1422,
"Y": 20.85907,
"Z": -482.10883
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2014266,
"Position": {
"X": 430.83838,
"Y": 20.126648,
"Z": -456.71783
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2014265,
"Position": {
"X": 395.92578,
"Y": 20.34021,
"Z": -453.02515
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
17666
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051065,
"Position": {
"X": 380.7583,
"Y": 21.437008,
"Z": -496.84903
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,103 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051364,
"Position": {
"X": -9.353821,
"Y": 8.205902,
"Z": -652.9183
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1048961,
"Position": {
"X": -444.38855,
"Y": 28.068893,
"Z": -363.66827
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"AetheryteShortcut": "Yak T'el - Iq Br'aax",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"Position": {
"X": -632.6718,
"Y": 25.245409,
"Z": -159.94264
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"DataId": 1048995,
"Position": {
"X": -639.27673,
"Y": 26.716875,
"Z": -161.05902
},
"StopDistance": 7,
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051410,
"Position": {
"X": -9.140198,
"Y": 8.205902,
"Z": -652.9183
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Tuliyollal",
"AethernetShortcut": [
"[Tuliyollal] Aetheryte Plaza",
"[Tuliyollal] Dirigible Landing (Yak T'el)"
]
}
]
}
]
}

View File

@ -0,0 +1,185 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048996,
"Position": {
"X": -618.43286,
"Y": 25.709108,
"Z": -153.91785
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051365,
"Position": {
"X": -738.3383,
"Y": 22.137896,
"Z": -85.404785
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -580.44604,
"Y": 22.457048,
"Z": -3.286837
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"DataId": 2014313,
"Position": {
"X": -581.75024,
"Y": 23.697266,
"Z": -2.9450073
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003683,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
"X": -506.6366,
"Y": 22.817732,
"Z": 32.985153
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-64
]
},
{
"DataId": 2014314,
"Position": {
"X": -505.9129,
"Y": 23.88031,
"Z": 32.455933
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003683,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"Position": {
"X": -414.84598,
"Y": 20.493914,
"Z": 74.74898
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-32
]
},
{
"DataId": 2014315,
"Position": {
"X": -413.96204,
"Y": 21.896606,
"Z": 74.021484
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003683,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1051365,
"Position": {
"X": -738.3383,
"Y": 22.137896,
"Z": -85.404785
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048996,
"Position": {
"X": -618.43286,
"Y": 25.709108,
"Z": -153.91785
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,52 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051366,
"Position": {
"X": -399.95422,
"Y": 20.145584,
"Z": -402.4262
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051367,
"Position": {
"X": -503.95975,
"Y": 29.007706,
"Z": -394.43048
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051368,
"Position": {
"X": -501.27414,
"Y": 28.982998,
"Z": -394.3084
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,53 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048982,
"Position": {
"X": 595.45276,
"Y": -137.17401,
"Z": 564.8126
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014250,
"Position": {
"X": 598.3214,
"Y": -137.19391,
"Z": 557.7018
},
"TerritoryId": 1189,
"InteractionType": "Instruction",
"Comment": "Inspect Flag, Red Head, Blue Head"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048982,
"Position": {
"X": 595.45276,
"Y": -137.17401,
"Z": 564.8126
},
"StopDistance": 7,
"TerritoryId": 1189,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,152 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048984,
"Position": {
"X": 673.06006,
"Y": -135.17874,
"Z": 577.47766
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -92.00457,
"Y": -212.91975,
"Z": 624.4216
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"DataId": 1051049,
"Position": {
"X": -89.49426,
"Y": -213.64497,
"Z": 625.574
},
"StopDistance": 4,
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"Position": {
"X": -122.188805,
"Y": -214.08376,
"Z": 674.54083
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-32
]
},
{
"DataId": 1051051,
"Position": {
"X": -122.88098,
"Y": -213.78055,
"Z": 673.39575
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"Position": {
"X": -142.65875,
"Y": -213.42487,
"Z": 608.63165
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-64
]
},
{
"DataId": 1051050,
"Position": {
"X": -143.63324,
"Y": -213.18237,
"Z": 609.0028
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048984,
"Position": {
"X": 673.06006,
"Y": -135.17874,
"Z": 577.47766
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,116 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048988,
"Position": {
"X": 584.4967,
"Y": -143.46597,
"Z": 648.64575
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014369,
"Position": {
"X": 328.20618,
"Y": -157.21375,
"Z": 429.4651
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 2014368,
"Position": {
"X": 323.7201,
"Y": -157.76306,
"Z": 434.19543
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2014256,
"Position": {
"X": 139.17749,
"Y": -162.24927,
"Z": 679.95715
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2014257,
"Position": {
"X": 144.67078,
"Y": -163.25635,
"Z": 663.84375
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048988,
"Position": {
"X": 584.4967,
"Y": -143.46597,
"Z": 648.64575
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,163 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048987,
"Position": {
"X": 596.97876,
"Y": -142.60623,
"Z": 441.7334
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051053,
"Position": {
"X": 257.1908,
"Y": -165.78062,
"Z": 146.74597
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_KINGZD105_05104_SYSTEM_100_004",
"Yes": true
}
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 272.75598,
"Y": -161.77667,
"Z": 117.129616
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Mount": true,
"DisableNavmesh": true
},
{
"Position": {
"X": 255.7041,
"Y": -161.34225,
"Z": 101.95002
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"DataId": 1051053,
"Position": {
"X": 218.3051,
"Y": -160.72849,
"Z": 78.95244
},
"TerritoryId": 1189,
"InteractionType": "WaitForNpcAtPosition",
"DisableNavmesh": true
},
{
"DataId": 1051053,
"Position": {
"X": 168.0448,
"Y": -158.83824,
"Z": 31.171473
},
"TerritoryId": 1189,
"InteractionType": "WaitForNpcAtPosition",
"DisableNavmesh": true
},
{
"DataId": 1051053,
"Position": {
"X": 144.163,
"Y": -156.25887,
"Z": -57.818764
},
"TerritoryId": 1189,
"InteractionType": "WaitForNpcAtPosition",
"DisableNavmesh": true
},
{
"Position": {
"X": 83.32947,
"Y": -157.21858,
"Z": -67.64331
},
"StopDistance": 1,
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"DisableNavmesh": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1051054,
"Position": {
"X": 83.32947,
"Y": -157.21858,
"Z": -67.64331
},
"TerritoryId": 1189,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2014259,
"Position": {
"X": 65.049194,
"Y": -184.1612,
"Z": -70.237305
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"DisableNavmesh": true,
"Mount": false
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048987,
"Position": {
"X": 596.97876,
"Y": -142.60623,
"Z": 441.7334
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,92 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051055,
"Position": {
"X": 563.5918,
"Y": -144.04688,
"Z": 702.26587
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -45.87303,
"Y": -174.86252,
"Z": 649.25995
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1051056,
"Position": {
"X": -49.149292,
"Y": -174.58734,
"Z": 651.4839
},
"StopDistance": 5,
"TerritoryId": 1189,
"InteractionType": "Interact",
"DisableNavmesh": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1051056,
"Position": {
"X": -49.149292,
"Y": -174.58734,
"Z": 651.4839
},
"StopDistance": 5,
"TerritoryId": 1189,
"InteractionType": "Say",
"ChatMessage": {
"Key": "TEXT_KINGZD106_05105_SAYTODO_000_011"
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051055,
"Position": {
"X": 563.5918,
"Y": -144.04688,
"Z": 702.26587
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,90 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048991,
"Position": {
"X": 211.10852,
"Y": -160.27475,
"Z": 432.4253
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 178.30347,
"Y": -195.42366,
"Z": 241.28633
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2014260,
"Position": {
"X": 177.44714,
"Y": -194.11005,
"Z": 239.61243
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003667,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2014261,
"Position": {
"X": 164.47693,
"Y": -194.2627,
"Z": 237.50659
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003667,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048991,
"Position": {
"X": 211.10852,
"Y": -160.27475,
"Z": 432.4253
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,107 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048998,
"Position": {
"X": 220.29443,
"Y": -156.80957,
"Z": 457.02295
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051408,
"Position": {
"X": 631.2809,
"Y": -137.12654,
"Z": 509.6665
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1048974,
"Position": {
"X": 621.51514,
"Y": -135.12726,
"Z": 531.1207
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1048989,
"Position": {
"X": 523.4302,
"Y": -135.12724,
"Z": 578.14905
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048998,
"Position": {
"X": 220.29443,
"Y": -156.80957,
"Z": 457.02295
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_KINGZD108_05107_Q1_000_000",
"Answer": "TEXT_KINGZD108_05107_A1_000_001"
}
]
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1051067,
"Position": {
"X": -372.70166,
"Y": -162.24626,
"Z": 546.25757
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014262,
"Position": {
"X": -443.83917,
"Y": -158.1903,
"Z": 343.34326
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
17743,
17744,
17745
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1051067,
"Position": {
"X": -372.70166,
"Y": -162.24626,
"Z": 546.25757
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,97 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1048997,
"Position": {
"X": -363.9124,
"Y": -162.23582,
"Z": 550.01135
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest",
"Fly": true
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1051387,
"Position": {
"X": -383.4745,
"Y": -166.23917,
"Z": 662.95874
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -433.617,
"Y": -156.24463,
"Z": 776.9229
},
"TerritoryId": 1189,
"InteractionType": "Instruction",
"Comment": "TODO Needs item use; manual for now (also unsure on health percent)",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 17267,
"MinimumKillCount": 2,
"ItemId": 2003669,
"ItemUseHealthMaxPercent": 25,
"RewardItemId": 2003670,
"RewardItemCount": 2
}
],
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1051387,
"Position": {
"X": -383.4745,
"Y": -166.23917,
"Z": 662.95874
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1048997,
"Position": {
"X": -363.9124,
"Y": -162.23582,
"Z": 550.01135
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,97 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050873,
"Position": {
"X": -455.10034,
"Y": 17.027555,
"Z": -478.8739
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1050874,
"Position": {
"X": -508.87314,
"Y": 29.61908,
"Z": -350.1183
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1050876,
"Position": {
"X": -455.92438,
"Y": 30.374397,
"Z": -423.148
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1050875,
"Position": {
"X": -391.01245,
"Y": 28.068893,
"Z": -365.0111
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050874,
"Position": {
"X": -508.87314,
"Y": 29.61908,
"Z": -350.1183
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 5112
}
]
}
]
}

View File

@ -0,0 +1,77 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050874,
"Position": {
"X": -508.87314,
"Y": 29.61908,
"Z": -350.1183
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_KINGZD203_05112_Q1_000_000",
"Answer": "TEXT_KINGZD203_05112_A1_000_001"
}
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1050877,
"Position": {
"X": -39.871887,
"Y": 0.35915944,
"Z": -312.1233
},
"StopDistance": 1,
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2014144,
"Position": {
"X": -43.10681,
"Y": 0.503479,
"Z": -312.36743
},
"TerritoryId": 1189,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050878,
"Position": {
"X": 475.30322,
"Y": 18.197147,
"Z": -326.95508
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 5113
}
]
}
]
}

View File

@ -0,0 +1,90 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050878,
"Position": {
"X": 475.30322,
"Y": 18.197147,
"Z": -326.95508
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1050879,
"Position": {
"X": 595.7274,
"Y": 18.8562,
"Z": -85.55737
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 705.4334,
"Y": 28.302685,
"Z": 2.3153868
},
"StopDistance": 1,
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
17671,
17672
],
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1050881,
"Position": {
"X": 595.6052,
"Y": 18.84498,
"Z": -85.55737
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050882,
"Position": {
"X": -408.31616,
"Y": 20.383144,
"Z": -399.28284
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Iq Br'aax"
}
]
}
]
}

View File

@ -0,0 +1,125 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050888,
"Position": {
"X": 515.58704,
"Y": -146.73436,
"Z": 477.0122
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014147,
"Position": {
"X": 440.66528,
"Y": -150.77448,
"Z": 427.7256
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
17674
],
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2014148,
"Position": {
"X": 395.4679,
"Y": -152.42242,
"Z": 372.7931
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
17674
],
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2014149,
"Position": {
"X": 267.9026,
"Y": -160.05188,
"Z": 354.45166
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2014150,
"Position": {
"X": 236.95728,
"Y": -167.52887,
"Z": 307.97278
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050890,
"Position": {
"X": 661.7991,
"Y": -137.174,
"Z": 557.76294
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true,
"NextQuestId": 5116
}
]
}
]
}

View File

@ -0,0 +1,80 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1048985,
"Position": {
"X": 595.11694,
"Y": -143.83003,
"Z": 710.68884
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -61.729744,
"Y": -212.69492,
"Z": 523.0088
},
"TerritoryId": 1189,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2014151,
"Position": {
"X": -60.95984,
"Y": -210.83392,
"Z": 522.02637
},
"TerritoryId": 1189,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true,
"NextQuestId": 5117
}
]
}
]
}

View File

@ -0,0 +1,86 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2014153,
"Position": {
"X": 500.5111,
"Y": -150.04199,
"Z": 704.12744
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003624,
"GroundTarget": true,
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2014152,
"Position": {
"X": 486.90015,
"Y": -150.04199,
"Z": 355.8556
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003624,
"GroundTarget": true,
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true,
"NextQuestId": 5118
}
]
}
]
}

View File

@ -0,0 +1,219 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1050897,
"Position": {
"X": 755.94714,
"Y": -132.59648,
"Z": 505.94324
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_KINGZD401_05118_Q1_000_000",
"Answer": "TEXT_KINGZD401_05118_A1_000_001"
}
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1050901,
"Position": {
"X": 627.25244,
"Y": -137.174,
"Z": 591.8517
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1050900,
"Position": {
"X": 575.55493,
"Y": -137.174,
"Z": 540.0929
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1048989,
"Position": {
"X": 523.4302,
"Y": -135.12724,
"Z": 578.14905
},
"TerritoryId": 1189,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1050891,
"Position": {
"X": 662.8672,
"Y": -137.17401,
"Z": 556.115
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1050904,
"Position": {
"X": 263.84375,
"Y": -157.31726,
"Z": 738.6129
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 2014154,
"Position": {
"X": 255.9701,
"Y": -150.68292,
"Z": 807.64465
},
"TerritoryId": 1189,
"InteractionType": "UseItem",
"ItemId": 2003625,
"Fly": true
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 2014248,
"Position": {
"X": 255.9701,
"Y": -150.68292,
"Z": 807.64465
},
"TerritoryId": 1189,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
17675
]
}
]
},
{
"Sequence": 9,
"Steps": [
{
"DataId": 1050904,
"Position": {
"X": 263.84375,
"Y": -157.31726,
"Z": 738.6129
},
"TerritoryId": 1189,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1050903,
"Position": {
"X": 663.9962,
"Y": -137.17401,
"Z": 554.589
},
"TerritoryId": 1189,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Yak T'el - Mamook",
"Fly": true
}
]
}
]
}

View File

@ -13,7 +13,7 @@
"Z": -52.99463
},
"TerritoryId": 1186,
"InteractionType": "Interact",
"InteractionType": "AcceptQuest",
"Comment": "Quest is completed instantly"
}
]

View File

@ -13,7 +13,7 @@
"Z": -38.132385
},
"TerritoryId": 1186,
"InteractionType": "Interact",
"InteractionType": "AcceptQuest",
"Comment": "Quest is completed instantly"
}
]

View File

@ -1,11 +1,14 @@
using System.Collections.Generic;
using Questionable.Model.V1;
#if RELEASE
namespace Questionable.QuestPaths;
public static partial class AssemblyQuestLoader
{
public static IReadOnlyDictionary<ushort, QuestRoot> GetQuests() => Quests;
}
public static IReadOnlyDictionary<ushort, QuestRoot> GetQuests() =>
#if RELEASE
Quests;
#else
new Dictionary<ushort, QuestRoot>();
#endif
}

View File

@ -19,6 +19,9 @@
"type": "string"
}
},
"Disabled": {
"type": "boolean"
},
"Comment": {
"type": "string"
},
@ -550,6 +553,10 @@
"description": "The enemy data id which is supposed to be killed",
"type": "integer"
},
"MinimumKillCount": {
"description": "Overworld mobs: If this number of mobs has been killed, will wait a bit before attempting to pull another mob to see if the quest progresses",
"type": "integer"
},
"RewardItemId": {
"type": "integer"
},

View File

@ -5,6 +5,10 @@ namespace Questionable.Model.V1;
public sealed class ComplexCombatData
{
public uint DataId { get; set; }
// TODO Use this
public uint? MinimumKillCount { get; set; }
public uint? RewardItemId { get; set; }
public int? RewardItemCount { get; set; }
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>();

View File

@ -6,6 +6,12 @@ public sealed class QuestRoot
{
public string Author { get; set; } = null!;
public List<string> Contributors { get; set; } = new();
/// <summary>
/// This is only relevant for release builds.
/// </summary>
public bool Disabled { get; set; }
public string? Comment { get; set; }
public List<ushort> TerritoryBlacklist { get; set; } = new();
public List<QuestSequence> QuestSequence { get; set; } = new();

View File

@ -22,11 +22,14 @@ internal sealed class CommandHandler : IDisposable
private readonly QuestWindow _questWindow;
private readonly QuestSelectionWindow _questSelectionWindow;
private readonly ITargetManager _targetManager;
private readonly GameFunctions _gameFunctions;
private readonly IClientState _clientState;
public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController,
MovementController movementController, QuestRegistry questRegistry,
ConfigWindow configWindow, DebugOverlay debugOverlay, QuestWindow questWindow,
QuestSelectionWindow questSelectionWindow, ITargetManager targetManager)
QuestSelectionWindow questSelectionWindow, ITargetManager targetManager, GameFunctions gameFunctions,
IClientState clientState)
{
_commandManager = commandManager;
_chatGui = chatGui;
@ -38,6 +41,8 @@ internal sealed class CommandHandler : IDisposable
_questWindow = questWindow;
_questSelectionWindow = questSelectionWindow;
_targetManager = targetManager;
_gameFunctions = gameFunctions;
_clientState = clientState;
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand)
{
@ -77,7 +82,12 @@ internal sealed class CommandHandler : IDisposable
break;
case "which":
_questSelectionWindow.Open(_targetManager.Target);
_questSelectionWindow.OpenForTarget(_targetManager.Target);
break;
case "z":
case "zone":
_questSelectionWindow.OpenForZone(_clientState.TerritoryType);
break;
default:
@ -96,7 +106,9 @@ internal sealed class CommandHandler : IDisposable
if (arguments.Length >= 1 && ushort.TryParse(arguments[0], out ushort questId))
{
if (_questRegistry.TryGetQuest(questId, out Quest? quest))
if (_gameFunctions.IsQuestLocked(questId, 0))
_chatGui.PrintError($"[Questionable] Quest {questId} is locked.");
else if (_questRegistry.TryGetQuest(questId, out Quest? quest))
{
_debugOverlay.HighlightedQuest = questId;
_chatGui.Print($"[Questionable] Set highlighted quest to {questId} ({quest.Info.Name}).");

View File

@ -1,16 +1,21 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Linq;
using System.IO;
using System.Numerics;
using System.Text.Json;
using System.Threading.Tasks;
using Dalamud.Plugin;
using Dalamud.Plugin.Services;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Utils;
using Questionable.Data;
using Questionable.Model;
using Questionable.Model.V1;
using Questionable.Validation;
namespace Questionable.Controller;
@ -18,25 +23,50 @@ internal sealed class QuestRegistry
{
private readonly IDalamudPluginInterface _pluginInterface;
private readonly QuestData _questData;
private readonly IChatGui _chatGui;
private readonly QuestValidator _questValidator;
private readonly ILogger<QuestRegistry> _logger;
private readonly Dictionary<ushort, Quest> _quests = new();
public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData,
ILogger<QuestRegistry> logger)
public QuestRegistry(IDalamudPluginInterface pluginInterface, QuestData questData, IChatGui chatGui,
QuestValidator questValidator, ILogger<QuestRegistry> logger)
{
_pluginInterface = pluginInterface;
_questData = questData;
_chatGui = chatGui;
_questValidator = questValidator;
_logger = logger;
}
public IEnumerable<Quest> AllQuests => _quests.Values;
public int Count => _quests.Count;
public int ValidationIssueCount => _questValidator.IssueCount;
public void Reload()
{
_quests.Clear();
#if RELEASE
LoadQuestsFromAssembly();
LoadQuestsFromProjectDirectory();
try
{
LoadFromDirectory(new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "Quests")));
}
catch (Exception e)
{
_logger.LogError(e,
"Failed to load all quests from user directory (some may have been successfully loaded)");
}
ValidateQuests();
_logger.LogInformation("Loaded {Count} quests", _quests.Count);
}
[Conditional("RELEASE")]
private void LoadQuestsFromAssembly()
{
_logger.LogInformation("Loading quests from assembly");
foreach ((ushort questId, QuestRoot questRoot) in QuestPaths.AssemblyQuestLoader.GetQuests())
@ -49,7 +79,11 @@ internal sealed class QuestRegistry
};
_quests[questId] = quest;
}
#else
}
[Conditional("DEBUG")]
private void LoadQuestsFromProjectDirectory()
{
DirectoryInfo? solutionDirectory = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent;
if (solutionDirectory != null)
{
@ -75,27 +109,13 @@ internal sealed class QuestRegistry
}
}
}
#endif
}
try
{
LoadFromDirectory(new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "Quests")));
}
catch (Exception e)
{
_logger.LogError(e, "Failed to load all quests from user directory (some may have been successfully loaded)");
}
#if !RELEASE
foreach (var quest in _quests.Values)
{
int missingSteps = quest.Root.QuestSequence.Where(x => x.Sequence < 255).Max(x => x.Sequence) - quest.Root.QuestSequence.Count(x => x.Sequence < 255) + 1;
if (missingSteps != 0)
_logger.LogWarning("Quest has missing steps: {QuestId} / {QuestName} → {Count}", quest.QuestId, quest.Info.Name, missingSteps);
}
#endif
_logger.LogInformation("Loaded {Count} quests", _quests.Count);
[Conditional("DEBUG")]
private void ValidateQuests()
{
_questValidator.ClearIssues();
_questValidator.Validate(_quests.Values);
}

View File

@ -18,24 +18,33 @@ internal static class NextQuest
if (step.NextQuestId == null)
return null;
if (step.NextQuestId.Value == quest.QuestId)
return null;
return serviceProvider.GetRequiredService<SetQuest>()
.With(step.NextQuestId.Value);
.With(step.NextQuestId.Value, quest.QuestId);
}
}
internal sealed class SetQuest(QuestRegistry questRegistry, QuestController questController, ILogger<SetQuest> logger) : ITask
internal sealed class SetQuest(QuestRegistry questRegistry, QuestController questController, GameFunctions gameFunctions, ILogger<SetQuest> logger) : ITask
{
public ushort NextQuestId { get; set; }
public ushort CurrentQuestId { get; set; }
public ITask With(ushort nextQuestId)
public ITask With(ushort nextQuestId, ushort currentQuestId)
{
NextQuestId = nextQuestId;
CurrentQuestId = currentQuestId;
return this;
}
public bool Start()
{
if (questRegistry.TryGetQuest(NextQuestId, out Quest? quest))
if (gameFunctions.IsQuestLocked(NextQuestId, CurrentQuestId))
{
logger.LogInformation("Can't set next quest to {QuestId}, quest is locked", NextQuestId);
}
else if (questRegistry.TryGetQuest(NextQuestId, out Quest? quest))
{
logger.LogInformation("Setting next quest to {QuestId}: '{QuestName}'", NextQuestId, quest.Info.Name);
questController.SetNextQuest(quest);

View File

@ -1,11 +1,14 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using FFXIVClientStructs.FFXIV.Client.Game;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Shared;
using Questionable.Model;
using Questionable.Model.V1;
using AethernetShortcut = Questionable.Controller.Steps.Shared.AethernetShortcut;
namespace Questionable.Controller.Steps.Interactions;
@ -13,7 +16,7 @@ internal static class UseItem
{
public const int VesperBayAetheryteTicket = 30362;
internal sealed class Factory(IServiceProvider serviceProvider) : ITaskFactory
internal sealed class Factory(IServiceProvider serviceProvider, ILogger<Factory> logger) : ITaskFactory
{
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
@ -22,6 +25,16 @@ internal static class UseItem
ArgumentNullException.ThrowIfNull(step.ItemId);
if (step.ItemId == VesperBayAetheryteTicket)
{
unsafe
{
InventoryManager* inventoryManager = InventoryManager.Instance();
if (inventoryManager->GetInventoryItemCount(step.ItemId.Value) == 0)
return CreateVesperBayFallbackTask();
}
}
var unmount = serviceProvider.GetRequiredService<UnmountTask>();
if (step.GroundTarget == true)
{
@ -47,6 +60,23 @@ internal static class UseItem
public ITask CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
=> throw new InvalidOperationException();
private IEnumerable<ITask> CreateVesperBayFallbackTask()
{
logger.LogWarning("No vesper bay aetheryte tickets in inventory, navigating via ferry in Limsa instead");
uint npcId = 1003540;
ushort territoryId = 129;
Vector3 destination = new(-360.9217f, 8f, 38.92566f);
yield return serviceProvider.GetRequiredService<AetheryteShortcut.UseAetheryteShortcut>()
.With(null, EAetheryteLocation.Limsa, territoryId);
yield return serviceProvider.GetRequiredService<AethernetShortcut.UseAethernetShortcut>()
.With(EAetheryteLocation.Limsa, EAetheryteLocation.LimsaArcanist);
yield return serviceProvider.GetRequiredService<Move.MoveInternal>()
.With(territoryId, destination, dataId: npcId, sprint: false);
yield return serviceProvider.GetRequiredService<Interact.DoInteract>()
.With(npcId, true);
}
}
internal abstract class UseItemBase(ILogger logger) : ITask

View File

@ -45,7 +45,7 @@ internal static class AetheryteShortcut
{
private DateTime _continueAt;
public QuestStep Step { get; set; } = null!;
public QuestStep? Step { get; set; }
public EAetheryteLocation TargetAetheryte { get; set; }
/// <summary>
@ -54,7 +54,7 @@ internal static class AetheryteShortcut
/// </summary>
public ushort ExpectedTerritoryId { get; set; }
public ITask With(QuestStep step, EAetheryteLocation targetAetheryte, ushort expectedTerritoryId)
public ITask With(QuestStep? step, EAetheryteLocation targetAetheryte, ushort expectedTerritoryId)
{
Step = step;
TargetAetheryte = targetAetheryte;
@ -66,7 +66,7 @@ internal static class AetheryteShortcut
{
_continueAt = DateTime.Now.AddSeconds(8);
ushort territoryType = clientState.TerritoryType;
if (ExpectedTerritoryId == territoryType)
if (Step != null && ExpectedTerritoryId == territoryType)
{
if (Step.SkipIf.Contains(ESkipCondition.AetheryteShortcutIfInSameTerritory))
{

View File

@ -99,15 +99,7 @@ internal static class Move
if (actualDistance > distance)
{
yield return serviceProvider.GetRequiredService<MoveInternal>()
.With(Destination, m =>
{
m.NavigateTo(EMovementType.Quest, Step.DataId, Destination,
fly: Step.Fly == true && gameFunctions.IsFlyingUnlocked(Step.TerritoryId),
sprint: Step.Sprint != false,
stopDistance: distance,
ignoreDistanceToObject: Step.IgnoreDistanceToObject == true,
land: Step.Land == true);
});
.With(Step, Destination);
}
}
else
@ -116,14 +108,7 @@ internal static class Move
if (actualDistance > distance)
{
yield return serviceProvider.GetRequiredService<MoveInternal>()
.With(Destination, m =>
{
m.NavigateTo(EMovementType.Quest, Step.DataId, [Destination],
fly: Step.Fly == true && gameFunctions.IsFlyingUnlockedInCurrentZone(),
sprint: Step.Sprint != false,
stopDistance: distance,
land: Step.Land == true);
});
.With(Step, Destination);
}
}
@ -132,22 +117,68 @@ internal static class Move
}
}
internal sealed class MoveInternal(MovementController movementController, ILogger<MoveInternal> logger) : ITask
internal sealed class MoveInternal(
MovementController movementController,
GameFunctions gameFunctions,
ILogger<MoveInternal> logger) : ITask
{
public Action<MovementController> StartAction { get; set; } = null!;
public Action StartAction { get; set; } = null!;
public Vector3 Destination { get; set; }
public ITask With(Vector3 destination, Action<MovementController> startAction)
public ITask With(QuestStep step, Vector3 destination)
{
return With(
territoryId: step.TerritoryId,
destination: destination,
stopDistance: step.StopDistance,
dataId: step.DataId,
disableNavMesh: step.DisableNavmesh,
sprint: step.Sprint != false,
fly: step.Fly == true,
land: step.Land == true,
ignoreDistanceToObject: step.IgnoreDistanceToObject == true);
}
public ITask With(ushort territoryId, Vector3 destination, float? stopDistance = null, uint? dataId = null,
bool disableNavMesh = false, bool sprint = true, bool fly = false, bool land = false,
bool ignoreDistanceToObject = false)
{
Destination = destination;
StartAction = startAction;
if (!gameFunctions.IsFlyingUnlocked(territoryId))
{
fly = false;
land = false;
}
if (!disableNavMesh)
{
StartAction = () =>
movementController.NavigateTo(EMovementType.Quest, dataId, Destination,
fly: fly,
sprint: sprint,
stopDistance: stopDistance,
ignoreDistanceToObject: ignoreDistanceToObject,
land: land);
}
else
{
StartAction = () =>
movementController.NavigateTo(EMovementType.Quest, dataId, [Destination],
fly: fly,
sprint: sprint,
stopDistance: stopDistance,
ignoreDistanceToObject: ignoreDistanceToObject,
land: land);
}
return this;
}
public bool Start()
{
logger.LogInformation("Moving to {Destination}", Destination.ToString("G", CultureInfo.InvariantCulture));
StartAction(movementController);
StartAction();
return true;
}

View File

@ -29,7 +29,8 @@ internal sealed class DalamudInitializer : IDisposable
QuestWindow questWindow,
DebugOverlay debugOverlay,
ConfigWindow configWindow,
QuestSelectionWindow questSelectionWindow)
QuestSelectionWindow questSelectionWindow,
QuestValidationWindow questValidationWindow)
{
_pluginInterface = pluginInterface;
_framework = framework;
@ -44,6 +45,7 @@ internal sealed class DalamudInitializer : IDisposable
_windowSystem.AddWindow(configWindow);
_windowSystem.AddWindow(debugOverlay);
_windowSystem.AddWindow(questSelectionWindow);
_windowSystem.AddWindow(questValidationWindow);
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
_pluginInterface.UiBuilder.OpenMainUi += _questWindow.Toggle;

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Numerics;
using Dalamud.Game.ClientState.Conditions;
@ -21,6 +22,8 @@ using Lumina.Excel.CustomSheets;
using Lumina.Excel.GeneratedSheets2;
using Microsoft.Extensions.Logging;
using Questionable.Controller;
using Questionable.Data;
using Questionable.Model;
using Questionable.Model.V1;
using Action = Lumina.Excel.GeneratedSheets2.Action;
using BattleChara = FFXIVClientStructs.FFXIV.Client.Game.Character.BattleChara;
@ -45,6 +48,7 @@ internal sealed unsafe class GameFunctions
private readonly ICondition _condition;
private readonly IClientState _clientState;
private readonly QuestRegistry _questRegistry;
private readonly QuestData _questData;
private readonly IGameGui _gameGui;
private readonly Configuration _configuration;
private readonly ILogger<GameFunctions> _logger;
@ -55,6 +59,7 @@ internal sealed unsafe class GameFunctions
ICondition condition,
IClientState clientState,
QuestRegistry questRegistry,
QuestData questData,
IGameGui gameGui,
Configuration configuration,
ILogger<GameFunctions> logger)
@ -65,6 +70,7 @@ internal sealed unsafe class GameFunctions
_condition = condition;
_clientState = clientState;
_questRegistry = questRegistry;
_questData = questData;
_gameGui = gameGui;
_configuration = configuration;
_logger = logger;
@ -246,7 +252,7 @@ internal sealed unsafe class GameFunctions
public bool IsQuestAcceptedOrComplete(ushort questId)
{
return QuestManager.IsQuestComplete(questId) || IsQuestAccepted(questId);
return IsQuestComplete(questId) || IsQuestAccepted(questId);
}
public bool IsQuestAccepted(ushort questId)
@ -255,6 +261,39 @@ internal sealed unsafe class GameFunctions
return questManager->IsQuestAccepted(questId);
}
[SuppressMessage("Performance", "CA1822")]
public bool IsQuestComplete(ushort questId)
{
return QuestManager.IsQuestComplete(questId);
}
public bool IsQuestLocked(ushort questId, ushort? extraCompletedQuest = null)
{
var questInfo = _questData.GetQuestInfo(questId);
if (questInfo.QuestLocks.Count > 0)
{
var completedQuests = questInfo.QuestLocks.Count(x => IsQuestComplete(x) || x == extraCompletedQuest);
if (questInfo.QuestLockJoin == QuestInfo.QuestJoin.All && questInfo.QuestLocks.Count == completedQuests)
return true;
else if (questInfo.QuestLockJoin == QuestInfo.QuestJoin.AtLeastOne && completedQuests > 0)
return true;
}
if (questInfo.PreviousQuests.Count > 0)
{
var completedQuests = questInfo.PreviousQuests.Count(x => IsQuestComplete(x) || x == extraCompletedQuest);
if (questInfo.PreviousQuestJoin == QuestInfo.QuestJoin.All &&
questInfo.PreviousQuests.Count == completedQuests)
return false;
else if (questInfo.PreviousQuestJoin == QuestInfo.QuestJoin.AtLeastOne && completedQuests > 0)
return false;
else
return true;
}
return false;
}
public bool IsAetheryteUnlocked(uint aetheryteId, out byte subIndex)
{
subIndex = 0;

View File

@ -1,5 +1,9 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Dalamud.Game.Text;
using JetBrains.Annotations;
using ExcelQuest = Lumina.Excel.GeneratedSheets.Quest;
namespace Questionable.Model;
@ -13,6 +17,11 @@ internal sealed class QuestInfo
Level = quest.ClassJobLevel0;
IssuerDataId = quest.IssuerStart;
IsRepeatable = quest.IsRepeatable;
PreviousQuests = quest.PreviousQuest.Select(x => (ushort)(x.Row & 0xFFFF)).Where(x => x != 0).ToImmutableList();
PreviousQuestJoin = (QuestJoin)quest.PreviousQuestJoin;
QuestLocks = quest.QuestLock.Select(x => (ushort)(x.Row & 0xFFFFF)).Where(x => x != 0).ToImmutableList();
QuestLockJoin = (QuestJoin)quest.QuestLockJoin;
IsMainScenarioQuest = quest.JournalGenre?.Value?.JournalCategory?.Value?.JournalSection?.Row is 0 or 1;
}
public ushort QuestId { get; }
@ -20,7 +29,20 @@ internal sealed class QuestInfo
public ushort Level { get; }
public uint IssuerDataId { get; }
public bool IsRepeatable { get; }
public ImmutableList<ushort> PreviousQuests { get; }
public QuestJoin PreviousQuestJoin { get; }
public bool IsMainScenarioQuest { get; }
public ImmutableList<ushort> QuestLocks { get; set; }
public QuestJoin QuestLockJoin { get; set; }
public string SimplifiedName => Name
.TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' ');
[UsedImplicitly(ImplicitUseKindFlags.Assign, ImplicitUseTargetFlags.Members)]
public enum QuestJoin : byte
{
None = 0,
All = 1,
AtLeastOne = 2,
}
}

View File

@ -1,6 +1,6 @@
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
<PropertyGroup>
<Version>1.7</Version>
<Version>1.8</Version>
<OutputPath>dist</OutputPath>
<PathMap Condition="$(SolutionDir) != ''">$(SolutionDir)=X:\</PathMap>
</PropertyGroup>

View File

@ -16,6 +16,8 @@ using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Interactions;
using Questionable.Data;
using Questionable.External;
using Questionable.Validation;
using Questionable.Validation.Validators;
using Questionable.Windows;
using Action = Questionable.Controller.Steps.Interactions.Action;
@ -128,6 +130,13 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<ConfigWindow>();
serviceCollection.AddSingleton<DebugOverlay>();
serviceCollection.AddSingleton<QuestSelectionWindow>();
serviceCollection.AddSingleton<QuestValidationWindow>();
serviceCollection.AddSingleton<QuestValidator>();
serviceCollection.AddSingleton<IQuestValidator, QuestDisabledValidator>();
serviceCollection.AddSingleton<IQuestValidator, BasicSequenceValidator>();
serviceCollection.AddSingleton<IQuestValidator, UniqueStartStopValidator>();
serviceCollection.AddSingleton<IQuestValidator, CompletionFlagsValidator>();
serviceCollection.AddSingleton<CommandHandler>();
serviceCollection.AddSingleton<DalamudInitializer>();

View File

@ -0,0 +1,7 @@
namespace Questionable.Validation;
internal enum EIssueSeverity
{
None,
Error,
}

View File

@ -0,0 +1,9 @@
using System.Collections.Generic;
using Questionable.Model;
namespace Questionable.Validation;
internal interface IQuestValidator
{
IEnumerable<ValidationIssue> Validate(Quest quest);
}

View File

@ -0,0 +1,55 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Questionable.Model;
namespace Questionable.Validation;
internal sealed class QuestValidator
{
private readonly IReadOnlyList<IQuestValidator> _validators;
private readonly ILogger<QuestValidator> _logger;
private List<ValidationIssue> _validationIssues = new();
public QuestValidator(IEnumerable<IQuestValidator> validators, ILogger<QuestValidator> logger)
{
_validators = validators.ToList();
_logger = logger;
_logger.LogInformation("Validators: {Validators}",
string.Join(", ", _validators.Select(x => x.GetType().Name)));
}
public IReadOnlyList<ValidationIssue> Issues => _validationIssues;
public int IssueCount => _validationIssues.Count;
public void ClearIssues() => _validationIssues.Clear();
public void Validate(IReadOnlyCollection<Quest> quests)
{
Task.Run(() =>
{
foreach (var quest in quests)
{
foreach (var validator in _validators)
{
foreach (var issue in validator.Validate(quest))
{
_logger.LogWarning(
"Validation failed: {QuestId} ({QuestName}) / {QuestSequence} / {QuestStep} - {Description}",
issue.QuestId, quest.Info.Name, issue.Sequence, issue.Step, issue.Description);
_validationIssues.Add(issue);
}
}
}
_validationIssues = _validationIssues.OrderBy(x => x.QuestId)
.ThenBy(x => x.Sequence)
.ThenBy(x => x.Step)
.ThenBy(x => x.Description)
.ToList();
});
}
}

Some files were not shown because too many files have changed in this diff Show More