Compare commits

..

80 Commits

Author SHA1 Message Date
Plogon Enjoyer
46b462dfb3 Added action Fiery Breath 2024-11-04 21:08:20 +08:00
cc599b3645
Update waypoint order in 'Braced for Trouble' 2024-11-04 01:37:18 +01:00
f42540bd66
Add notification settings for when manual interactions are required 2024-11-03 22:25:03 +01:00
eb81c74930
Add missing SB MCH quests 2024-11-03 21:26:57 +01:00
6bed108c70 Merge pull request '[Stormblood][MCH] Job Quest' (#94) from UcanPatates/Questionable:master into master
Reviewed-on: liza/Questionable#94
2024-11-03 19:58:25 +00:00
cc3dc7b4ff
Add second half of 'The Merchant of Komra' 2024-11-03 20:56:22 +01:00
fb0180ce3b
Minor DRG updates 2024-11-03 20:42:33 +01:00
b02a24ee32 Merge pull request '[HW][DRG] Job Quests' (#88) from AnimaMachinae/Questionable:drg into master
Reviewed-on: liza/Questionable#88
2024-11-03 19:18:40 +00:00
1f5b9ac687
Update THM paths; fix /cry being the wrong emote 2024-11-03 20:18:00 +01:00
9aad77e486
Close window when clicking 'FInish setup' 2024-11-03 19:28:16 +01:00
bd38b330ed
Add plugin setup window 2024-11-03 19:25:46 +01:00
ad76bb88c0
Update distances when following NPC in 'Scales of Blue' 2024-11-02 15:51:29 +01:00
fb975363d2 Merge pull request '[EW][Lopporits] Sparking Artist (last lopporit daily quest~)' (#96) from pot0to/Questionable:master into master
Reviewed-on: liza/Questionable#96
2024-10-28 09:07:40 +00:00
5aa44b2f53
Add 'Braving New Depths' 2024-10-28 10:07:14 +01:00
pot0to
5161971bbb restoring quest after accidental overwrite 2024-10-27 15:38:13 -07:00
pot0to
88df503f43 last 2 lopporit dailies 2024-10-27 15:36:08 -07:00
c7d359430c
Add 'Gilding the Bilious' 2024-10-27 17:16:02 +01:00
2bd649af33
Use modified position when trying to fly in Camp Dragonhead 2024-10-27 16:58:43 +01:00
f9e02640d9
Update flying waypoint for 'Returning Home' 2024-10-27 00:24:52 +02:00
7fe0b06add
Adjust jump timings in 'A Taste of the Moon' 2024-10-26 23:50:51 +02:00
31991e12a6
Add one of the missing weekly NieR quests 2024-10-26 17:28:52 +02:00
4cb3a9a221 Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1695_Dragoon's Fate.json 2024-10-26 02:37:10 +00:00
4b8049d699 Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1694_Sanguine Dragoon.json 2024-10-26 02:36:54 +00:00
1ffffd0e83 Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1693_Dragoon's Errand.json 2024-10-26 02:36:39 +00:00
b2c42a8c49 Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1692_Sworn Upon a Lance.json 2024-10-26 02:36:24 +00:00
23f93f7de5 Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1691_Heart of Justice.json 2024-10-26 02:36:13 +00:00
9a550fe8e0 Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1690_Days of Azure.json 2024-10-26 02:36:00 +00:00
23256c6abf Update QuestPaths/3.x - Heavensward/Class Quests/DRG/1689_Sky's the Limit.json 2024-10-26 02:35:48 +00:00
55ec23f6ec Dosyaları "QuestPaths/4.x - Stormblood/Class Quests/MCH" dizinine yükle 2024-10-25 20:34:38 +00:00
6fcfe77b21 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2909_The Mongrel and the Knight.json Sil 2024-10-25 20:33:34 +00:00
d41febd9f3 QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2908_Snouts Down, Tails Up.json Sil 2024-10-25 20:33:30 +00:00
d5a9a6b06c QuestPaths/5.x - Shadowbringers/Class Quests/MCH/2907_Release the Hounds.json Sil 2024-10-25 20:33:25 +00:00
49321ad6cf Merge pull request '[SB][Allied Society][Kojin] Added new daily quests. For additional verification.' (#75) from plogon_enjoyer/Questionable:kojin-special into master
Reviewed-on: liza/Questionable#75
2024-10-25 19:28:08 +00:00
64e45c72c2 Dosyaları "QuestPaths/5.x - Shadowbringers/Class Quests/MCH" dizinine yükle 2024-10-25 16:41:04 +00:00
eec08014e0 Dosyaları "QuestPaths/5.x - Shadowbringers/Class Quests/MCH" dizinine yükle 2024-10-25 15:33:45 +00:00
cd9600d840
Version bump 2024-10-24 20:24:57 +02:00
ca20cfcd88
Add NextQuestId to some quests 2024-10-24 20:18:45 +02:00
01ba0cebae Merge pull request 'master' (#84) from UcanPatates/Questionable:master into master
Reviewed-on: liza/Questionable#84
2024-10-24 17:04:45 +00:00
c3dbb144e4 Merge pull request '[ARR][THM] thaumaturge quests + [EW][Loporrit] one more loporrit daily' (#92) from pot0to/Questionable:master into master
Reviewed-on: liza/Questionable#92
2024-10-24 15:04:33 +00:00
1e1c6f9c11
Minor PLD updates 2024-10-24 16:54:56 +02:00
2c989d0aa2
Fix wrong $schema declarations 2024-10-24 16:23:42 +02:00
8e2ceff3c4
Minor code cleanup 2024-10-24 16:20:14 +02:00
faeeb93f01 Merge pull request '[HW][Job Quests][Paladin] Added paths.' (#82) from goatzone/Questionable:hw-paladin into master
Reviewed-on: liza/Questionable#82
2024-10-24 14:17:08 +00:00
abbe52e67f Merge pull request '[EW][Loporrit]Story Quest 4' (#87) from AnimaMachinae/Questionable:loporrit into master
Reviewed-on: liza/Questionable#87
2024-10-24 14:16:56 +00:00
4edf8cfeb6 Merge pull request '[HW][Vanu]Dailies and Story Quest' (#86) from AnimaMachinae/Questionable:vanu-vanu into master
Reviewed-on: liza/Questionable#86
2024-10-24 14:16:26 +00:00
c9484c481f Merge pull request '[HW][Vath] Story and Dailies' (#93) from AnimaMachinae/Questionable:vath into master
Reviewed-on: liza/Questionable#93
2024-10-24 14:15:48 +00:00
1f709cdc5c Upload files to "QuestPaths/3.x - Heavensward/Class Quests/DRG" 2024-10-22 00:28:16 +00:00
78ca9f2c91 Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vath/Dailies" 2024-10-22 00:27:23 +00:00
126ad5a5fb Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vath/Story" 2024-10-22 00:26:45 +00:00
dec4fb64c8 Upload files to "QuestPaths/3.x - Heavensward/Class Quests/DRG" 2024-10-22 00:25:35 +00:00
ec36e7bebf Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" 2024-10-22 00:24:50 +00:00
b6b0644aa6 Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" 2024-10-22 00:24:38 +00:00
786f79a75a Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Story" 2024-10-22 00:23:35 +00:00
pot0to
c176bc2b79 cleaned up omicrons quest 2024-10-21 11:56:55 -07:00
pot0to
eabea17d92 Merge branch 'master' of https://git.carvel.li/liza/Questionable 2024-10-20 02:35:27 -07:00
pot0to
f336de8f9b adding all ARR thaumaturge quests and one more loporrit 2024-10-20 02:27:30 -07:00
0b8a18cd2a Update QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story/4684_Teamwork Makes the Dream Work.json 2024-10-20 06:05:46 +00:00
08f2be449a Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" 2024-10-20 06:01:24 +00:00
04c96efbe0 Update QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2173_Endymion Disco.json 2024-10-20 05:25:45 +00:00
2dfd1c2b0f Update QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies/2183_Fishing in Troubled Waters.json
Adds a jump to fly to prevent pathfinding errors to the opposite corner of map
2024-10-20 05:11:22 +00:00
8b8c940d34 Upload files to "QuestPaths/3.x - Heavensward/Class Quests/DRG"
50-54 quests
2024-10-18 08:40:08 +00:00
afdc92cc8c Upload files to "QuestPaths/3.x - Heavensward/Allied Societies/Vanu Vanu/Dailies" 2024-10-18 08:36:52 +00:00
1cd11e8375 Upload files to "QuestPaths/6.x - Endwalker/Allied Societies/Loporrits/Story"
Story Rank 5-6 quest
2024-10-18 08:35:40 +00:00
5b0b6c688d QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/972_This One's for the Lovers.json Ekle 2024-10-17 19:08:14 +00:00
87765768ad QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/970_Some Seedy Business.json Ekle 2024-10-17 18:59:26 +00:00
e2c93942de QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/969_Adventurer for Hire.json Ekle 2024-10-17 13:01:10 +00:00
156721c57f QuestPaths/2.x - A Realm Reborn/Side Quests/Black Shroud/Gridania/27_Preserving the Past.json Ekle 2024-10-17 12:49:27 +00:00
eebae38db9 QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/117_A Thousand Words.json Ekle 2024-10-17 12:03:32 +00:00
5f12f8f78e QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/116_A Sheepish Request.json Ekle 2024-10-17 11:52:39 +00:00
d21f3bbf49 QuestPaths/2.x - A Realm Reborn/Side Quests/La Noscea/Limsa/661_The Rats in the Wharf.json Ekle 2024-10-17 11:16:08 +00:00
a27fc8400d QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json Sil 2024-10-17 09:44:04 +00:00
8fadd31e9b QuestPaths/3.x - Heavensward/Unlocks/Dungeons/2386_Let Me Gubal That for You.json Ekle 2024-10-17 09:42:53 +00:00
849ebac0ca QuestPaths/3.x - Heavensward/Unlocks/Instant/2386_Let Me Gubal That for You.json Ekle 2024-10-17 09:31:47 +00:00
14ec0d6213
+2037, +comment on 2033, nix errant skipcondition on 2036 2024-10-15 00:25:17 +01:00
955c02b454
+2036, added forgotten NextQuestIds 2024-10-14 23:46:27 +01:00
bb6a2178fb
+2035 2024-10-14 08:07:46 +01:00
e411608375
+2034 2024-10-14 07:55:21 +01:00
e04432ea49
+2033, formatting in 2032 2024-10-14 07:31:07 +01:00
6515a88066
+2032 2024-10-14 05:56:33 +01:00
Plogon Enjoyer
6f18796642 Added the following daily quests:
- Best Served Foul
- A Real Pearler
2024-09-30 00:27:27 +08:00
90 changed files with 7926 additions and 195 deletions

3
.gitmodules vendored
View File

@ -4,3 +4,6 @@
[submodule "vendor/ECommons"] [submodule "vendor/ECommons"]
path = vendor/ECommons path = vendor/ECommons
url = https://github.com/NightmareXIV/ECommons.git url = https://github.com/NightmareXIV/ECommons.git
[submodule "vendor/NotificationMasterAPI"]
path = vendor/NotificationMasterAPI
url = https://github.com/NightmareXIV/NotificationMasterAPI.git

View File

@ -1,5 +1,5 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>3.11</Version> <Version>3.13</Version>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

2
LLib

@ -1 +1 @@
Subproject commit 6dfc18ee6a187138036ee2d51ba2257741c1e568 Subproject commit 912a7b04ce180e337af9beeef2d1393b040c1ba8

View File

@ -36,7 +36,7 @@
"Yes": true "Yes": true
} }
], ],
"NextQuestId": 553 "NextQuestId": 351
} }
] ]
} }

View File

@ -36,7 +36,8 @@
"Prompt": "TEXT_CLSTHM020_00345_Q1_001_1", "Prompt": "TEXT_CLSTHM020_00345_Q1_001_1",
"Yes": true "Yes": true
} }
] ],
"NextQuestId": 351
} }
] ]
} }

View File

@ -0,0 +1,151 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -71.92632,
"Y": 9.839797,
"Z": 283.98495
},
"TerritoryId": 141,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 351,
"MinimumKillCount": 3,
"$": "Slay star marmots as a thaumaturge",
"CompletionQuestVariablesFlags": [
{
"Low": 3
},
null,
null,
null,
null,
null
]
},
{
"DataId": 385,
"MinimumKillCount": 3,
"$": "Slay huge hornets as a thaumaturge",
"CompletionQuestVariablesFlags": [
null,
{
"High": 3
},
null,
null,
null,
null
]
}
],
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Thaumaturges' Guild",
"[Ul'dah] Gate of Nald (Central Thanalan)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
141
]
}
},
"CompletionQuestVariablesFlags": [
{
"Low": 3
},
{
"High": 3
},
null,
null,
null,
null
]
},
{
"Position": {
"X": 39.449,
"Y": 3.082914,
"Z": 272.46896
},
"TerritoryId": 141,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 205,
"MinimumKillCount": 3,
"$": "Slay snapping shrews as a thaumaturge"
}
],
"CompletionQuestVariablesFlags": [
null,
{
"Low": 3
},
null,
null,
null,
null
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"NextQuestId": 351
}
]
}
]
}

View File

@ -0,0 +1,140 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1001709,
"Position": {
"X": -240.4975,
"Y": 18.7,
"Z": 85.58777
},
"TerritoryId": 130,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2001468,
"Position": {
"X": -87.38843,
"Y": 50.614136,
"Z": 315.6023
},
"TerritoryId": 140,
"InteractionType": "UseItem",
"ItemId": 2000414,
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Thaumaturges' Guild",
"[Ul'dah] Gate of the Sultana (Western Thanalan)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
140
]
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2001469,
"Position": {
"X": -74.96759,
"Y": 53.238647,
"Z": 336.78186
},
"TerritoryId": 140,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
12
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -253.97243,
"Y": 33.2412,
"Z": 408.68488
},
"TerritoryId": 140,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1002027,
"Position": {
"X": -255.23767,
"Y": 33.238777,
"Z": 407.27856
},
"TerritoryId": 140,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001709,
"Position": {
"X": -240.4975,
"Y": 18.7,
"Z": 85.58777
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"NextQuestId": 349
}
]
}
]
}

View File

@ -0,0 +1,215 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1001710,
"Position": {
"X": -240.2533,
"Y": 18.8,
"Z": 86.900024
},
"TerritoryId": 130,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 130,
"InteractionType": "None",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Thaumaturges' Guild",
"[Ul'dah] Gate of Nald (Central Thanalan)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
141
],
"AetheryteUnlocked": "Central Thanalan - Black Brush Station"
},
"AethernetShortcutIf": {
"AetheryteUnlocked": "Central Thanalan - Black Brush Station"
}
}
},
{
"Position": {
"X": -62.183617,
"Y": -3.6582246,
"Z": 145.88391
},
"InteractionType": "WalkTo",
"TerritoryId": 141,
"SkipConditions": {
"StepIf": {
"Flying": "Unlocked",
"AetheryteUnlocked": "Central Thanalan - Black Brush Station"
}
}
},
{
"Position": {
"X": 149.07747,
"Y": -2,
"Z": -225.21188
},
"TerritoryId": 141,
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"Fly": true,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 160,
"MinimumKillCount": 8,
"$": "Slay efts",
"CompletionQuestVariablesFlags": [
{
"Low": 8
},
null,
null,
null,
null,
null
]
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1001710,
"Position": {
"X": -240.2533,
"Y": 18.8,
"Z": 86.900024
},
"TerritoryId": 130,
"InteractionType": "Interact",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_CLSTHM101_00349_Q_000_1",
"Answer": "TEXT_CLSTHM101_00349_A_000_3"
}
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2001512,
"Position": {
"X": -366.29285,
"Y": -34.989014,
"Z": 293.56824
},
"TerritoryId": 145,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
166
],
"Fly": true,
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 2001499,
"Position": {
"X": -366.29285,
"Y": -34.989014,
"Z": 293.56824
},
"TerritoryId": 145,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001710,
"Position": {
"X": -240.2533,
"Y": 18.8,
"Z": 86.900024
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"NextQuestId": 350
}
]
}
]
}

View File

@ -0,0 +1,149 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1001711,
"Position": {
"X": -241.62665,
"Y": 18.8,
"Z": 83.32947
},
"TerritoryId": 130,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1002301,
"Position": {
"X": -178.2102,
"Y": 18,
"Z": 61.41748
},
"TerritoryId": 130,
"InteractionType": "Emote",
"Emote": "cry"
},
{
"DataId": 1002300,
"Position": {
"X": -176.9284,
"Y": 18,
"Z": 62.363525
},
"TerritoryId": 130,
"InteractionType": "Emote",
"Emote": "cry"
},
{
"DataId": 1002302,
"Position": {
"X": -176.71478,
"Y": 18,
"Z": 64.34729
},
"TerritoryId": 130,
"InteractionType": "Emote",
"Emote": "cry"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1001711,
"Position": {
"X": -241.62665,
"Y": 18.8,
"Z": 83.32947
},
"TerritoryId": 130,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2001470,
"Position": {
"X": -24.887512,
"Y": -25.345276,
"Z": 321.94995
},
"TerritoryId": 145,
"InteractionType": "SinglePlayerDuty",
"Fly": true,
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001711,
"Position": {
"X": -241.62665,
"Y": 18.8,
"Z": 83.32947
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_CLSTHM150_00350_Q1_000_1",
"Answer": "TEXT_CLSTHM150_00350_A1_000_1"
}
],
"NextQuestId": 352
}
]
}
]
}

View File

@ -209,7 +209,8 @@
"Z": 80.88806 "Z": 80.88806
}, },
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "CompleteQuest" "InteractionType": "CompleteQuest",
"NextQuestId": 352
} }
] ]
} }

View File

@ -0,0 +1,199 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001709,
"Position": {
"X": -240.4975,
"Y": 18.7,
"Z": 85.58777
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
130
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1002309,
"Position": {
"X": -374.28857,
"Y": -57.079987,
"Z": 144.12134
},
"TerritoryId": 145,
"InteractionType": "Interact",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
145
]
}
}
},
{
"DataId": 1002308,
"Position": {
"X": -386.7094,
"Y": -59.300003,
"Z": 166.39954
},
"TerritoryId": 145,
"InteractionType": "Interact"
},
{
"DataId": 1002307,
"Position": {
"X": -396.65833,
"Y": -48.15,
"Z": 99.68713
},
"TerritoryId": 145,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "Interact",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
130
]
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1001709,
"Position": {
"X": -240.4975,
"Y": 18.7,
"Z": 85.58777
},
"TerritoryId": 130,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"Position": {
"X": 222.64497,
"Y": 5.099169,
"Z": -265.77835
},
"TerritoryId": 145,
"Fly": true,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Eastern Thanalan - Camp Drybone",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
145
]
}
}
},
{
"DataId": 1002310,
"Position": {
"X": 184.89343,
"Y": 3.1809213,
"Z": -338.64355
},
"TerritoryId": 145,
"InteractionType": "SinglePlayerDuty"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
130
]
}
},
"NextQuestId": 353
}
]
}
]
}

View File

@ -0,0 +1,183 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "pot0to",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
130
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"TerritoryId": 145,
"InteractionType": "UseItem",
"ItemId": 30362,
"TargetTerritoryId": 140,
"SkipConditions": {
"StepIf": {
"InTerritory": [
140
]
}
}
},
{
"DataId": 1004070,
"Position": {
"X": -455.86328,
"Y": 23.11398,
"Z": -326.92456
},
"TerritoryId": 140,
"InteractionType": "Interact"
},
{
"DataId": 1004096,
"Position": {
"X": -444.75476,
"Y": 25,
"Z": -324.26947
},
"TerritoryId": 140,
"InteractionType": "Interact"
},
{
"DataId": 1004094,
"Position": {
"X": -413.47375,
"Y": 23.113977,
"Z": -383.71863
},
"TerritoryId": 140,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1002316,
"Position": {
"X": -436.72852,
"Y": 23.774809,
"Z": -350.8202
},
"TerritoryId": 140,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1002315,
"Position": {
"X": -392.32477,
"Y": 23.557693,
"Z": -546.9902
},
"TerritoryId": 140,
"InteractionType": "Combat",
"Fly": true,
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
1239
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1002315,
"Position": {
"X": -392.32477,
"Y": 23.557693,
"Z": -546.9902
},
"TerritoryId": 140,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1002317,
"Position": {
"X": -269.85577,
"Y": 15.346575,
"Z": -718.1354
},
"TerritoryId": 140,
"InteractionType": "SinglePlayerDuty",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_CLSTHM300_00353_Q_000_1",
"Answer": "TEXT_CLSTHM300_00353_A_000_2"
}
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1001708,
"Position": {
"X": -250.3548,
"Y": 18,
"Z": 80.88806
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Thaumaturges' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
130
]
}
}
}
]
}
]
}

View File

@ -0,0 +1,76 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000194,
"Position": {
"X": -16.281433,
"Y": -3.2499998,
"Z": 41.000854
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Gridania",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000686,
"Position": {
"X": -66.36151,
"Y": -3.896366,
"Z": 67.00232
},
"TerritoryId": 132,
"InteractionType": "Interact",
"AetheryteShortcut": "Gridania",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000789,
"Position": {
"X": -33.76825,
"Y": 7.3172073,
"Z": -117.052
},
"TerritoryId": 133,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Mih Khetto's Amphitheatre"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
132
]
}
}
}
]
}
]
}

View File

@ -0,0 +1,60 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006711,
"Position": {
"X": -140.39832,
"Y": 7.8986163,
"Z": -142.99237
},
"TerritoryId": 133,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Gridania",
"AethernetShortcut": [
"[Gridania] Aetheryte Plaza",
"[Gridania] Mih Khetto's Amphitheatre"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
},
"AetheryteShortcutIf": {
"InTerritory": [
132,
133
]
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000617,
"Position": {
"X": 5.722107,
"Y": -7.2786255,
"Z": 270.95447
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"NextQuestId": 970
}
]
}
]
}

View File

@ -0,0 +1,164 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000617,
"Position": {
"X": 5.722107,
"Y": -7.2786255,
"Z": 270.95447
},
"TerritoryId": 152,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000587,
"Position": {
"X": -7.248047,
"Y": -8.407776,
"Z": 268.23828
},
"TerritoryId": 152,
"InteractionType": "Interact",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2002191,
"Position": {
"X": 189.6543,
"Y": 7.94989,
"Z": 133.65369
},
"TerritoryId": 152,
"InteractionType": "Interact",
"StopDistance": 0.1,
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2002192,
"Position": {
"X": 181.04822,
"Y": 0.07623291,
"Z": 43.289795
},
"TerritoryId": 152,
"InteractionType": "Interact",
"StopDistance": 0.1,
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2002190,
"Position": {
"X": 233.66138,
"Y": 6.42395,
"Z": 199.11487
},
"TerritoryId": 152,
"InteractionType": "Interact",
"StopDistance": 0.1,
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 124.74073,
"Y": 6.729165,
"Z": 190.69174
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
},
{
"DataId": 1006715,
"Position": {
"X": -170.67218,
"Y": 56.713512,
"Z": -255.9701
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest",
"Fly": true,
"NextQuestId": 972
}
]
}
]
}

View File

@ -0,0 +1,80 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006715,
"Position": {
"X": -170.67218,
"Y": 56.713512,
"Z": -255.9701
},
"TerritoryId": 152,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -193.69008,
"Y": 55.59636,
"Z": -177.57457
},
"TerritoryId": 152,
"InteractionType": "WalkTo",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
},
{
"DataId": 1007568,
"Position": {
"X": -183.88647,
"Y": 57.451885,
"Z": -143.93835
},
"TerritoryId": 152,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1006715,
"Position": {
"X": -170.67218,
"Y": 56.713512,
"Z": -255.9701
},
"TerritoryId": 152,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "East Shroud - Hawthorne Hut",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,176 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000959,
"Position": {
"X": -65.62909,
"Y": 41.999985,
"Z": -139.45221
},
"TerritoryId": 128,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Culinarians' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1003603,
"Position": {
"X": 20.34021,
"Y": 20,
"Z": 4.3182373
},
"TerritoryId": 129,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Culinarians' Guild",
"[Limsa Lominsa] Aetheryte Plaza"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
},
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 64.20255,
"Y": 19.94936,
"Z": 1.0639327
},
"TerritoryId": 129,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Limsa Lominsa",
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
134,
129
]
},
"StepIf": {
"InTerritory": [
134
]
}
}
},
{
"DataId": 338,
"Position": {
"X": 130.05261,
"Y": 51.719154,
"Z": 185.6565
},
"TerritoryId": 134,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"ComplexCombatData": [
{
"DataId": 338,
"CompletionQuestVariablesFlags": [
{
"Low": 4
},
null,
null,
null,
null,
null
],
"MinimumKillCount": 4
}
],
"CompletionQuestVariablesFlags": [
{
"Low": 4
},
null,
null,
null,
null,
null
],
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -57.281883,
"Y": 33.088005,
"Z": 160.24603
},
"TerritoryId": 134,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"NotInTerritory": [
134
]
}
},
"Fly": true
},
{
"DataId": 1000959,
"Position": {
"X": -65.62909,
"Y": 41.999985,
"Z": -139.45221
},
"TerritoryId": 128,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Culinarians' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
}
]
}

View File

@ -0,0 +1,118 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001537,
"Position": {
"X": -58.854065,
"Y": 42.299744,
"Z": -164.08032
},
"TerritoryId": 128,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Culinarians' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1000957,
"Position": {
"X": -49.271423,
"Y": 43.999977,
"Z": -146.37988
},
"TerritoryId": 128,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Culinarians' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1000937,
"Position": {
"X": -12.222534,
"Y": 44.99988,
"Z": -251.88074
},
"TerritoryId": 128,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Marauders' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000957,
"Position": {
"X": -49.271423,
"Y": 43.999977,
"Z": -146.37988
},
"TerritoryId": 128,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Marauders' Guild",
"[Limsa Lominsa] Culinarians' Guild"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
}
]
}

View File

@ -0,0 +1,158 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1001000,
"Position": {
"X": -32.028687,
"Y": 41.499985,
"Z": 208.39233
},
"TerritoryId": 128,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 25.29642,
"Y": 44.499924,
"Z": 184.26752
},
"TerritoryId": 128,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
},
"StepIf": {
"InTerritory": [
135
]
}
}
},
{
"Position": {
"X": 21.738638,
"Y": 61.836372,
"Z": 139.60422
},
"TerritoryId": 135,
"InteractionType": "Combat",
"EnemySpawnType": "OverworldEnemies",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)"
],
"ComplexCombatData": [
{
"DataId": 347,
"CompletionQuestVariablesFlags": [
{
"Low": 5
},
null,
null,
null,
null,
null
],
"MinimumKillCount": 5
}
],
"CompletionQuestVariablesFlags": [
{
"Low": 5
},
null,
null,
null,
null,
null
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
135
]
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -67.00804,
"Y": 75.84114,
"Z": 116.815384
},
"TerritoryId": 135,
"InteractionType": "WalkTo",
"SkipConditions": {
"StepIf": {
"NotInTerritory": [
135
]
}
}
},
{
"DataId": 1000972,
"Position": {
"X": 20.279175,
"Y": 40.19993,
"Z": -6.1189575
},
"TerritoryId": 128,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [
129,
128
]
}
}
}
]
}
]
}

View File

@ -29,7 +29,8 @@
}, },
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true
} }
] ]
}, },

View File

@ -29,7 +29,8 @@
}, },
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true
} }
] ]
}, },

View File

@ -29,7 +29,8 @@
}, },
"TerritoryId": 155, "TerritoryId": 155,
"InteractionType": "Interact", "InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead" "AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true
} }
] ]
}, },

View File

@ -0,0 +1,99 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1003281,
"Position": {
"X": 97.520386,
"Y": 40.248554,
"Z": 81.1322
},
"TerritoryId": 128,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 126.33908,
"Y": 31.31262,
"Z": -772.82794
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"TargetTerritoryId": 155,
"AetheryteShortcut": "Mor Dhona",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"AetheryteLocked": "Mor Dhona",
"InTerritory": [
155
]
},
"StepIf": {
"AetheryteLocked": "Mor Dhona",
"InTerritory": [
155
]
}
}
},
{
"DataId": 1007625,
"Position": {
"X": -354.1772,
"Y": 214.60808,
"Z": 692.65283
},
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 155,
"InteractionType": "Duty",
"ContentFinderConditionId": 5
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1003281,
"Position": {
"X": 97.520386,
"Y": 40.248554,
"Z": 81.1322
},
"TerritoryId": 128,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
]
}
]
}
]
}

View File

@ -0,0 +1,95 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1000168,
"Position": {
"X": -75.48645,
"Y": -0.5013741,
"Z": -5.081299
},
"TerritoryId": 132,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 126.33908,
"Y": 31.31262,
"Z": -772.82794
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"TargetTerritoryId": 155,
"AetheryteShortcut": "Mor Dhona",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"AetheryteLocked": "Mor Dhona",
"InTerritory": [
155
]
},
"StepIf": {
"AetheryteLocked": "Mor Dhona",
"InTerritory": [
155
]
}
}
},
{
"DataId": 1007625,
"Position": {
"X": -354.1772,
"Y": 214.60808,
"Z": 692.65283
},
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 155,
"InteractionType": "Duty",
"ContentFinderConditionId": 5
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1000168,
"Position": {
"X": -75.48645,
"Y": -0.5013741,
"Z": -5.081299
},
"TerritoryId": 132,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Gridania"
}
]
}
]
}

View File

@ -0,0 +1,95 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 130,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 126.33908,
"Y": 31.31262,
"Z": -772.82794
},
"TerritoryId": 156,
"InteractionType": "WalkTo",
"TargetTerritoryId": 155,
"AetheryteShortcut": "Mor Dhona",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"AetheryteLocked": "Mor Dhona",
"InTerritory": [
155
]
},
"StepIf": {
"AetheryteLocked": "Mor Dhona",
"InTerritory": [
155
]
}
}
},
{
"DataId": 1007625,
"Position": {
"X": -354.1772,
"Y": 214.60808,
"Z": 692.65283
},
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 155,
"InteractionType": "Duty",
"ContentFinderConditionId": 5
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1004576,
"Position": {
"X": -141.64954,
"Y": 4.1,
"Z": -114.67157
},
"TerritoryId": 130,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ul'dah"
}
]
}
]
}

View File

@ -0,0 +1,48 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1005021,
"Position": {
"X": -472.49567,
"Y": 23.008797,
"Z": -355.00116
},
"TerritoryId": 140,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": -157.07425,
"Y": 24.884384,
"Z": -354.37775
},
"TerritoryId": 146,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Southern Thanalan - Little Ala Mhigo",
"Fly": true
},
{
"DataId": 1006220,
"Position": {
"X": 185.74805,
"Y": 13.721187,
"Z": -443.1983
},
"TerritoryId": 146,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,153 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1016093,
"Position": {
"X": -776.0281,
"Y": -133.35559,
"Z": -414.32825
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -544.89056,
"Y": 61.602722,
"Z": -373.9669
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2006649,
"Position": {
"X": -539.0555,
"Y": 64.22522,
"Z": -377.0047
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet (Sanuwa)",
"StopDistance": 3,
"$": "0 0 0 0 0 0 --> 1 0 0 0 0 16",
"CompletionQuestVariablesFlags": [null,null,null,null,null,16]
},
{
"Position": {
"X": -505.35422,
"Y": -28.166508,
"Z": -528.1072
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2006647,
"Position": {
"X": -504.78372,
"Y": -26.68805,
"Z": -530.93774
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet (Sanuwa)",
"StopDistance": 3,
"$": "1 0 0 0 0 16 --> 2 0 0 0 0 80",
"CompletionQuestVariablesFlags": [null,null,null,null,null,64]
},
{
"Position": {
"X": -478.25208,
"Y": -31.101946,
"Z": -663.0455
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2006648,
"Position": {
"X": -477.40906,
"Y": -28.885437,
"Z": -668.32996
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet (Sanuwa)",
"StopDistance": 3,
"$": "2 0 0 0 0 80 --> 3 0 0 0 0 112",
"CompletionQuestVariablesFlags": [null,null,null,null,null,32]
},
{
"Position": {
"X": -102.45963,
"Y": -1.2632592,
"Z": -619.294
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2006646,
"Position": {
"X": -96.20813,
"Y": 0.32037354,
"Z": -620.26404
},
"TerritoryId": 401,
"InteractionType": "Action",
"Action": "Buffet (Sanuwa)",
"StopDistance": 3,
"$": "3 0 0 0 0 112 --> 0 0 0 0 0 0"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,129 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -797.36957,
"Y": -130.0076,
"Z": -404.2746
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2006651,
"Position": {
"X": 664.3624,
"Y": -30.86908,
"Z": -137.0108
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2006652,
"Position": {
"X": 847.2876,
"Y": -50.58368,
"Z": 7.2174683
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2006653,
"Position": {
"X": 860.2273,
"Y": -84.45868,
"Z": 19.272095
},
"TerritoryId": 401,
"InteractionType": "Combat",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
],
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
5235
]
},
{
"DataId": 2006654,
"Position": {
"X": 642.63354,
"Y": -92.57648,
"Z": 63.035034
},
"TerritoryId": 401,
"InteractionType": "Combat",
"Fly": true,
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
5235
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu"
}
]
}
]
}

View File

@ -0,0 +1,104 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1016093,
"Position": {
"X": -776.0281,
"Y": -133.35559,
"Z": -414.32825
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006655,
"Position": {
"X": -48.325317,
"Y": 17.990356,
"Z": -852.47577
},
"TerritoryId": 401,
"InteractionType": "Action",
"Fly": true,
"Action": "Buffet (Sanuwa)"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2006656,
"Position": {
"X": 95.23157,
"Y": -11.886841,
"Z": -817.6242
},
"TerritoryId": 401,
"InteractionType": "Action",
"Fly": true,
"Action": "Buffet (Sanuwa)"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2006657,
"Position": {
"X": 205.8899,
"Y": -6.9123535,
"Z": -785.70233
},
"TerritoryId": 401,
"InteractionType": "Action",
"Fly": true,
"Action": "Buffet (Sanuwa)"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu"
}
]
}
]
}

View File

@ -0,0 +1,108 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1011952,
"Position": {
"X": -277.63788,
"Y": -184.59735,
"Z": 741.60376
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006662,
"Position": {
"X": 150.77429,
"Y": -133.98956,
"Z": 610.00977
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
]
},
{
"DataId": 2006661,
"Position": {
"X": 207.2633,
"Y": -124.101685,
"Z": 631.8303
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 2006658,
"Position": {
"X": 407.187,
"Y": -122.51471,
"Z": 724.0558
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu"
}
]
}
]
}

View File

@ -0,0 +1,169 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016089,
"Position": {
"X": -799.46594,
"Y": -133.2695,
"Z": -404.1352
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1016091,
"Position": {
"X": -804.25726,
"Y": -133.2695,
"Z": -390.89038
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006705,
"Position": {
"X": -356.1914,
"Y": -153.21588,
"Z": 246.23486
},
"TerritoryId": 401,
"InteractionType": "Interact",
"AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop",
"Fly": true,
"$": "QW: 1 0 16 0 0 2",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
2
]
},
{
"DataId": 2006706,
"Position": {
"X": -292.34766,
"Y": -142.2904,
"Z": 325.91736
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"$": "QW: 2 0 32 0 0 3",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
1
]
},
{
"DataId": 2006704,
"Position": {
"X": -281.11694,
"Y": -133.13501,
"Z": 345.2964
},
"TerritoryId": 401,
"InteractionType": "Interact",
"$": "QW: 19 0 48 0 0 7",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
4
]
},
{
"DataId": 2006670,
"Position": {
"X": 165.85034,
"Y": -86.13721,
"Z": 415.94556
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"$": "QW: 19 17 48 0 0 39",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2006669,
"Position": {
"X": 282.88696,
"Y": -82.26141,
"Z": 366.07922
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"$": "QW: 19 34 48 0 0 103",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2006671,
"Position": {
"X": 129.8695,
"Y": -92.17981,
"Z": 293.11047
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016091,
"Position": {
"X": -804.25726,
"Y": -133.2695,
"Z": -390.89038
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu"
}
]
}
]
}

View File

@ -71,7 +71,8 @@
"TerritoryId": 401, "TerritoryId": 401,
"InteractionType": "Action", "InteractionType": "Action",
"Action": "Buffet (Sanuwa)", "Action": "Buffet (Sanuwa)",
"Fly": true "Fly": true,
"CompletionQuestVariablesFlags": [null,null,null,null,null,32]
}, },
{ {
"DataId": 1016221, "DataId": 1016221,
@ -83,7 +84,8 @@
"TerritoryId": 401, "TerritoryId": 401,
"InteractionType": "Action", "InteractionType": "Action",
"Action": "Buffet (Sanuwa)", "Action": "Buffet (Sanuwa)",
"Fly": true "Fly": true,
"CompletionQuestVariablesFlags": [null,null,null,null,null,64]
}, },
{ {
"DataId": 1016220, "DataId": 1016220,

View File

@ -36,6 +36,16 @@
{ {
"Sequence": 2, "Sequence": 2,
"Steps": [ "Steps": [
{
"Position": {
"X": -834.9571,
"Y": -130.33038,
"Z": -386.03116
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{ {
"Position": { "Position": {
"X": 833.7674, "X": 833.7674,

View File

@ -0,0 +1,216 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016087,
"Position": {
"X": -796.7498,
"Y": -133.2695,
"Z": -410.6966
},
"TerritoryId": 401,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -790.3409,
"Y": -129.17549,
"Z": -409.1912
},
"TerritoryId": 401,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1016166,
"Position": {
"X": 557.885,
"Y": -126.23241,
"Z": 283.07007
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006627,
"Position": {
"X": 583.52014,
"Y": -126.81775,
"Z": 268.0857
},
"TerritoryId": 401,
"InteractionType": "UseItem",
"ItemId": 2001901,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2006628,
"Position": {
"X": 632.95935,
"Y": -111.680786,
"Z": 157.85449
},
"TerritoryId": 401,
"InteractionType": "UseItem",
"ItemId": 2001901,
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 2006629,
"Position": {
"X": 688.5939,
"Y": -95.99457,
"Z": 101.27405
},
"TerritoryId": 401,
"InteractionType": "UseItem",
"ItemId": 2001901,
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2006630,
"Position": {
"X": 709.86475,
"Y": -85.19116,
"Z": 29.892456
},
"TerritoryId": 401,
"InteractionType": "UseItem",
"ItemId": 2001901,
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
16
]
},
{
"DataId": 2006631,
"Position": {
"X": 722.8656,
"Y": -65.84277,
"Z": -57.938538
},
"TerritoryId": 401,
"InteractionType": "UseItem",
"ItemId": 2001901,
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
8
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1016166,
"Position": {
"X": 557.885,
"Y": -126.23241,
"Z": 283.07007
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1016166,
"Position": {
"X": 557.885,
"Y": -126.23241,
"Z": 283.07007
},
"TerritoryId": 401,
"InteractionType": "Emote",
"Emote": "dance"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1012064,
"Position": {
"X": -542.7787,
"Y": -37.11544,
"Z": -386.7094
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Ok' Zundu"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016087,
"Position": {
"X": -796.7498,
"Y": -133.2695,
"Z": -410.6966
},
"TerritoryId": 401,
"InteractionType": "CompleteQuest",
"Fly": true
}
]
}
]
}

View File

@ -0,0 +1,114 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016803,
"Position": {
"X": 57.297607,
"Y": -47.842846,
"Z": -174.63953
},
"TerritoryId": 398,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1017031,
"Position": {
"X": 74.20459,
"Y": -48.533592,
"Z": -171.12994
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006915,
"Position": {
"X": 96.45227,
"Y": -66.2395,
"Z": 616.6017
},
"TerritoryId": 398,
"InteractionType": "Action",
"Action": "Fumigate",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2006916,
"Position": {
"X": -149.95044,
"Y": -55.25299,
"Z": 541.37476
},
"TerritoryId": 398,
"InteractionType": "Action",
"Action": "Fumigate",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2006917,
"Position": {
"X": -625.0859,
"Y": -49.94281,
"Z": 491.02002
},
"TerritoryId": 398,
"InteractionType": "Action",
"Action": "Fumigate",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 59.511234,
"Y": -48,
"Z": -171.35385
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Anyx Trine"
},
{
"DataId": 1016803,
"Position": {
"X": 57.297607,
"Y": -47.842846,
"Z": -174.63953
},
"TerritoryId": 398,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,173 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016803,
"Position": {
"X": 57.297607,
"Y": -47.842846,
"Z": -174.63953
},
"TerritoryId": 398,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 449.65012,
"Y": -51.141403,
"Z": 106.932205
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather"
},
{
"DataId": 1011922,
"Position": {
"X": 448.56934,
"Y": -51.141407,
"Z": 108.93408
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2006918,
"Position": {
"X": 475.69995,
"Y": -44.174927,
"Z": -231.46417
},
"TerritoryId": 398,
"InteractionType": "Combat",
"EnemySpawnType": "AfterItemUse",
"ItemId": 2001961,
"KillEnemyDataIds": [
71224
],
"Fly": true,
"Land": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2006920,
"Position": {
"X": 329.4879,
"Y": -45.487183,
"Z": -262.13477
},
"TerritoryId": 398,
"InteractionType": "Combat",
"EnemySpawnType": "AfterItemUse",
"ItemId": 2001961,
"KillEnemyDataIds": [
5548
],
"Fly": true,
"Land": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 2006919,
"Position": {
"X": 535.45435,
"Y": -32.39496,
"Z": -410.60504
},
"TerritoryId": 398,
"InteractionType": "Combat",
"EnemySpawnType": "AfterItemUse",
"ItemId": 2001961,
"KillEnemyDataIds": [
71224
],
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 449.65012,
"Y": -51.141403,
"Z": 106.932205
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather"
},
{
"DataId": 1011922,
"Position": {
"X": 448.56934,
"Y": -51.141407,
"Z": 108.93408
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 59.511234,
"Y": -48,
"Z": -171.35385
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Fly": true,
"Land": true
},
{
"DataId": 1016803,
"Position": {
"X": 57.297607,
"Y": -47.842846,
"Z": -174.63953
},
"TerritoryId": 398,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,194 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1016802,
"Position": {
"X": 53.360718,
"Y": -48.000004,
"Z": -169.97028
},
"TerritoryId": 398,
"InteractionType": "AcceptQuest",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Anyx Trine",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1016841,
"Position": {
"X": 842.9846,
"Y": -8.926968,
"Z": 338.2467
},
"TerritoryId": 398,
"InteractionType": "Combat",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
5541
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1016841,
"Position": {
"X": 842.9846,
"Y": -8.926968,
"Z": 338.2467
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 875.1023,
"Y": -3.6736863,
"Z": 355.24545
},
"TerritoryId": 398,
"InteractionType": "WalkTo",
"Fly": true,
"Land": true
},
{
"DataId": 1016842,
"Position": {
"X": -791.9585,
"Y": 113.93191,
"Z": -624.59753
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1011907,
"Position": {
"X": -288.8686,
"Y": 127.06639,
"Z": 13.199036
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 2006877,
"Position": {
"X": -276.63086,
"Y": 122.27051,
"Z": -45.02942
},
"TerritoryId": 397,
"InteractionType": "UseItem",
"ItemId": 2001950
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1016890,
"Position": {
"X": -273.91473,
"Y": 122.361694,
"Z": -43.320435
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1011928,
"Position": {
"X": 73.19751,
"Y": -49.19563,
"Z": -139.05548
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Anyx Trine"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1016843,
"Position": {
"X": 103.16626,
"Y": -50.70595,
"Z": -184.31378
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1016802,
"Position": {
"X": 53.360718,
"Y": -48.000004,
"Z": -169.97028
},
"TerritoryId": 398,
"InteractionType": "CompleteQuest",
"Fly": true,
"Land": true
}
]
}
]
}

View File

@ -0,0 +1,108 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1013437,
"Position": {
"X": -580.5906,
"Y": 206.85785,
"Z": -407.64478
},
"TerritoryId": 155,
"InteractionType": "Combat",
"Land": true,
"Fly": true,
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
4478
],
"CompletionQuestVariablesFlags": [
1,
null,
null,
null,
null,
null
]
},
{
"DataId": 1013437,
"Position": {
"X": -580.5906,
"Y": 206.85785,
"Z": -407.64478
},
"TerritoryId": 155,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"NextQuestId": 1690
}
]
}
]
}

View File

@ -0,0 +1,112 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1013441,
"Position": {
"X": 468.58923,
"Y": 166.28001,
"Z": 256.73303
},
"TerritoryId": 397,
"InteractionType": "Combat",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Land": true,
"Fly": true,
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
4504
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1013441,
"Position": {
"X": 468.58923,
"Y": 166.28001,
"Z": 256.73303
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2006182,
"Position": {
"X": 197.40588,
"Y": 184.00854,
"Z": -102.80011
},
"TerritoryId": 397,
"InteractionType": "Combat",
"Land": true,
"Fly": true,
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
4486
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1013445,
"Position": {
"X": 202.19727,
"Y": 183.6595,
"Z": -96.11658
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,81 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1013445,
"Position": {
"X": 202.19727,
"Y": 183.6595,
"Z": -96.11658
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1013448,
"Position": {
"X": 83.26843,
"Y": 23.979126,
"Z": 2.3345947
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Forgotten Knight"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"NextQuestId": 1690
}
]
}
]
}

View File

@ -0,0 +1,146 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1013450,
"Position": {
"X": 84.30603,
"Y": 23.979128,
"Z": -12.802368
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Forgotten Knight"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1013456,
"Position": {
"X": 489.82983,
"Y": 164.7244,
"Z": 266.25464
},
"TerritoryId": 397,
"InteractionType": "SinglePlayerDuty",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Land": true,
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1013457,
"Position": {
"X": 492.88147,
"Y": 164.6694,
"Z": 265.06445
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1013464,
"Position": {
"X": 133.47058,
"Y": 24.400866,
"Z": -6.149414
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Forgotten Knight"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"NextQuestId": 1690
}
]
}
]
}

View File

@ -0,0 +1,165 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -48.009445,
"Y": 98.00955,
"Z": 106.47891
},
"TerritoryId": 397,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Fly": true,
"Land": true
},
{
"DataId": 1013467,
"Position": {
"X": -51.10254,
"Y": 98.63026,
"Z": 105.1499
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1013466,
"Position": {
"X": -155.5047,
"Y": 175.79733,
"Z": 693.26306
},
"TerritoryId": 397,
"InteractionType": "Combat",
"Fly": true,
"Land": true,
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
4482,
5049
],
"CompletionQuestVariablesFlags": [
2,
null,
null,
null,
null,
null
]
},
{
"DataId": 1013466,
"Position": {
"X": -155.5047,
"Y": 175.79733,
"Z": 693.26306
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1012163,
"Position": {
"X": 128.25195,
"Y": 24.458832,
"Z": -0.6867676
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Forgotten Knight"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true
},
{
"DataId": 1013470,
"Position": {
"X": 218.00562,
"Y": 222,
"Z": 346.45605
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_JOBDRG560_01693_Q1_000_000",
"Answer": "TEXT_JOBDRG560_01693_A1_000_002"
}
]
}
]
}
]
}

View File

@ -0,0 +1,141 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1013471,
"Position": {
"X": 503.53247,
"Y": -51.363117,
"Z": 79.941895
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"Land": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1013472,
"Position": {
"X": 396.35315,
"Y": -50.87535,
"Z": 73.04492
},
"TerritoryId": 398,
"InteractionType": "Combat",
"Fly": true,
"Land": true,
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
4497
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1013471,
"Position": {
"X": 503.53247,
"Y": -51.363117,
"Z": 79.941895
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1013476,
"Position": {
"X": 571.5571,
"Y": -36.290947,
"Z": 359.3651
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "CompleteQuest",
"NextQuestId": 1690
}
]
}
]
}

View File

@ -0,0 +1,123 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"Position": {
"X": 215.65454,
"Y": 222.1,
"Z": 345.1806
},
"TerritoryId": 155,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Land": true,
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"$": "Alberic"
},
{
"DataId": 1006748,
"Position": {
"X": 217.88354,
"Y": 222,
"Z": 345.3269
},
"TerritoryId": 155,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1013483,
"Position": {
"X": -272.26672,
"Y": 124.213005,
"Z": -23.361572
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"Land": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1013485,
"Position": {
"X": -360.1892,
"Y": 101.91492,
"Z": -178.79004
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1013489,
"Position": {
"X": -429.099,
"Y": 121.59912,
"Z": -309.49878
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1013494,
"Position": {
"X": -505.30255,
"Y": 120.61159,
"Z": -311.39087
},
"TerritoryId": 397,
"InteractionType": "SinglePlayerDuty",
"Fly": true,
"Land": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1013494,
"Position": {
"X": -505.30255,
"Y": 120.61159,
"Z": -311.39087
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,149 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1006747,
"Position": {
"X": -20.828613,
"Y": 29.999964,
"Z": -2.4262085
},
"TerritoryId": 131,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] The Chamber of Rule"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [131]
},
"AethernetShortcutIf": { "InSameTerritory": true }
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014046,
"Position": {
"X": 38.223755,
"Y": 5.000002,
"Z": 404.28784
},
"TerritoryId": 147,
"InteractionType": "Interact",
"AetheryteShortcut": "Northern Thanalan - Camp Bluefog",
"SkipConditions": {
"AetheryteShortcutIf": { "InSameTerritory": true }
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1014121,
"Position": {
"X": 47.104614,
"Y": 14.24741,
"Z": 197.92468
},
"TerritoryId": 147,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2005978,
"Position": {
"X": 1.5715942,
"Y": 21.316772,
"Z": 181.8722
},
"TerritoryId": 147,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [4686]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014121,
"Position": {
"X": 47.104614,
"Y": 14.24741,
"Z": 197.92468
},
"TerritoryId": 147,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1006747,
"Position": {
"X": -20.828613,
"Y": 29.999964,
"Z": -2.4262085
},
"TerritoryId": 131,
"InteractionType": "Interact",
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] The Chamber of Rule"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [131]
},
"AethernetShortcutIf": { "InSameTerritory": true }
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1003995,
"Position": {
"X": 75.33374,
"Y": 2.135708,
"Z": 316.33472
},
"TerritoryId": 141,
"InteractionType": "CompleteQuest",
"Fly": true,
"AethernetShortcut": [
"[Ul'dah] The Chamber of Rule",
"[Ul'dah] Gate of Thal (Central Thanalan)"
],
"$": "nald and thal are approx. the same distance but coming from nald requires an extra walkto because it tries and fails to land on the ledge",
"NextQuestId": 2033
}
]
}
]
}

View File

@ -0,0 +1,150 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1003995,
"Position": {
"X": 75.33374,
"Y": 2.135708,
"Z": 316.33472
},
"TerritoryId": 141,
"InteractionType": "AcceptQuest",
"Fly": true,
"AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [
"[Ul'dah] Aetheryte Plaza",
"[Ul'dah] Gate of Thal (Central Thanalan)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [141]
},
"AethernetShortcutIf": { "InSameTerritory": true }
},
"$":"you could swap this shortcut out for black brush station, just figured it worked once."
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1011237,
"Position": {
"X": 447.3181,
"Y": 212.53984,
"Z": 725.00183
},
"TerritoryId": 397,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": { "InSameTerritory": true }
},
"CompletionQuestVariablesFlags": [null, null, null, null, null, 32],
"$": "0 0 0 0 0 0 -> 1 0 0 0 0 32"
},
{
"DataId": 1011233,
"Position": {
"X": 518.9136,
"Y": 217.95152,
"Z": 769.9243
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [null, null, null, null, null, 128],
"$": "1 0 0 0 0 32 -> 2 0 0 0 0 160"
},
{
"DataId": 1011235,
"Position": {
"X": 522.54517,
"Y": 228.3512,
"Z": 723.5675
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [null, null, null, null, null, 64],
"$": "if done as second step, 1 0 0 0 0 32 -> 2 0 0 0 0 96"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1014052,
"Position": {
"X": 458.12158,
"Y": 200.23763,
"Z": 658.0757
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 50.883884,
"Y": 124.41451,
"Z": 174.64914
},
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"Fly": true,
"KillEnemyDataIds": [5043, 4619],
"CompletionQuestVariablesFlags": [
{ "Low": 3 },
null,
null,
null,
null,
null
]
},
{
"DataId": 1014053,
"Position": {
"X": 48.966187,
"Y": 124.34676,
"Z": 175.73816
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014054,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"NextQuestId": 2034
}
]
}
]
}

View File

@ -0,0 +1,194 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014054,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014055,
"Position": {
"X": 173.69336,
"Y": 133.38922,
"Z": -413.47375
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2005983,
"Position": {
"X": 108.07959,
"Y": 129.41174,
"Z": -403.52484
},
"TerritoryId": 397,
"InteractionType": "Interact"
},
{
"DataId": 2005980,
"Position": {
"X": 64.68298,
"Y": 128.61829,
"Z": -397.42126
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014055,
"Position": {
"X": 173.69336,
"Y": 133.38922,
"Z": -413.47375
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 2005981,
"Position": {
"X": 15.487854,
"Y": 106.09595,
"Z": -419.30273
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 2005982,
"Position": {
"X": -4.6845703,
"Y": 94.13281,
"Z": -506.15704
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": -134.89986,
"Y": 88.67885,
"Z": -576.3159
},
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"Fly": true,
"KillEnemyDataIds": [4360, 4619],
"CompletionQuestVariablesFlags": [
{ "Low": 3 },
null,
null,
null,
null,
null
]
},
{
"DataId": 1014058,
"Position": {
"X": -138.35364,
"Y": 88.59643,
"Z": -577.0504
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1014059,
"Position": {
"X": -788.02167,
"Y": 113.151276,
"Z": -589.807
},
"TerritoryId": 397,
"InteractionType": "SinglePlayerDuty",
"Fly": true
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1014064,
"Position": {
"X": -788.02167,
"Y": 113.151276,
"Z": -589.807
},
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014065,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"NextQuestId": 2035
}
]
}
]
}

View File

@ -0,0 +1,91 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014065,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1011922,
"Position": {
"X": 448.56934,
"Y": -51.141407,
"Z": 108.93408
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1014067,
"Position": {
"X": 451.34656,
"Y": -24.978418,
"Z": -496.39127
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 2005986,
"Position": {
"X": 507.86584,
"Y": -21.927307,
"Z": -524.4374
},
"TerritoryId": 398,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014068,
"Position": {
"X": 51.132935,
"Y": 124.95631,
"Z": 178.69836
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"Fly": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"SkipConditions": {
"AetheryteShortcutIf": { "InSameTerritory": true }
},
"NextQuestId": 2036
}
]
}
]
}

View File

@ -0,0 +1,170 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014068,
"Position": {
"X": 51.132935,
"Y": 124.95631,
"Z": 178.69836
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest",
"Fly": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014069,
"Position": {
"X": 460.5935,
"Y": 200.23763,
"Z": 658.56396
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1011233,
"Position": {
"X": 518.9136,
"Y": 217.95152,
"Z": 769.9243
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014073,
"Position": {
"X": -693.8125,
"Y": -109.83532,
"Z": 490.95898
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "The Sea of Clouds - Camp Cloudtop"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014075,
"Position": {
"X": -272.17517,
"Y": -184.2003,
"Z": 736.0493
},
"TerritoryId": 401,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"Position": {
"X": -43.012157,
"Y": -176.80112,
"Z": 753.7885
},
"TerritoryId": 401,
"InteractionType": "Combat",
"Fly": true,
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [5048, 5049]
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": 207.48586,
"Y": -176.39336,
"Z": 721.5167
},
"TerritoryId": 401,
"InteractionType": "Combat",
"Fly": true,
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [4687, 4688]
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1014088,
"Position": {
"X": 200.42712,
"Y": -176.62952,
"Z": 737.0565
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1014089,
"Position": {
"X": 205.98145,
"Y": -176.69763,
"Z": 739.52844
},
"TerritoryId": 401,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1015055,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"NextQuestId": 2037
}
]
}
]
}

View File

@ -0,0 +1,135 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "goatzone",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014092,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014094,
"Position": {
"X": 457.51123,
"Y": 200.23764,
"Z": 660.8834
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2005990,
"Position": {
"X": 51.865356,
"Y": 125.26123,
"Z": 179.85803
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014096,
"Position": {
"X": 458.64026,
"Y": 200.23764,
"Z": 659.7848
},
"TerritoryId": 397,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1014097,
"Position": {
"X": 452.90295,
"Y": 130.79962,
"Z": -850.1869
},
"TerritoryId": 397,
"InteractionType": "Interact",
"Fly": true,
"$": "it might be faster to shortcut to ok' zundu and fly to the adjoiner? this is simpler; smacks into the North Star but doesn't get stuck."
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1014099,
"Position": {
"X": 457.20605,
"Y": 130.79962,
"Z": -848.6
},
"TerritoryId": 397,
"InteractionType": "SinglePlayerDuty"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1014102,
"Position": {
"X": 454.5204,
"Y": 130.79962,
"Z": -850.2479
},
"StopDistance": 5,
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1014103,
"Position": {
"X": 509.17822,
"Y": 212.5399,
"Z": 695.796
},
"TerritoryId": 397,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest"
}
]
}
]
}

View File

@ -0,0 +1,100 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012133,
"Position": {
"X": -26.840637,
"Y": 206.49944,
"Z": 28.67163
},
"TerritoryId": 478,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
478
]
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 148.23425,
"Y": 207,
"Z": 119.497574
},
"TerritoryId": 478,
"InteractionType": "WalkTo",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
399
]
},
"StepIf": {
"InTerritory": [
399
]
}
}
},
{
"DataId": 1018367,
"Position": {
"X": 302.11328,
"Y": 232.54102,
"Z": 767.14734
},
"TerritoryId": 399,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 399,
"InteractionType": "Duty",
"ContentFinderConditionId": 196
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012133,
"Position": {
"X": -26.840637,
"Y": 206.49944,
"Z": 28.67163
},
"TerritoryId": 478,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,146 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "plogon_enjoyer",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1024217,
"Position": {
"X": 394.39978,
"Y": -119.58932,
"Z": -232.28815
},
"TerritoryId": 613,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1024538,
"Position": {
"X": 703.7003,
"Y": 0.73878324,
"Z": -26.077698
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2009241,
"Position": {
"X": 532.6465,
"Y": 0.99176025,
"Z": -201.2818
},
"TerritoryId": 613,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [8234],
"Fly": true,
"RequiredQuestVariables": [null, null, [34], null, null, null]
},
{
"DataId": 8234,
"Position": {
"X": 534.78296,
"Y": 1,
"Z": -193.164
},
"TerritoryId": 613,
"InteractionType": "UseItem",
"ItemId": 2002398,
"RequiredQuestVariables": [null, null, [34], null, null, null]
},
{
"DataId": 2009240,
"Position": {
"X": 620.2334,
"Y": 0.10675049,
"Z": -315.9076
},
"TerritoryId": 613,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [8233],
"Fly": true,
"RequiredQuestVariables": [null, null, [18, 35], null, null, null]
},
{
"DataId": 8233,
"Position": {
"X": 616.9984,
"Y": 0.04129504,
"Z": -318.1964
},
"TerritoryId": 613,
"InteractionType": "UseItem",
"ItemId": 2002398,
"RequiredQuestVariables": [null, null, [18, 35], null, null, null]
},
{
"DataId": 2009239,
"Position": {
"X": 762.9358,
"Y": 0.44250488,
"Z": -286.7323
},
"TerritoryId": 613,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [8232],
"Fly": true,
"RequiredQuestVariables": [null, null, [19], null, null, null]
},
{
"DataId": 8232,
"Position": {
"X": 760.98267,
"Y": 0.36481446,
"Z": -290.0893
},
"TerritoryId": 613,
"InteractionType": "UseItem",
"ItemId": 2002398,
"RequiredQuestVariables": [null, null, [19], null, null, null]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 391.50903,
"Y": -119.58932,
"Z": -236.18898
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Ruby Sea - Tamamizu"
},
{
"DataId": 1024217,
"Position": {
"X": 394.39978,
"Y": -119.58932,
"Z": -232.28815
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,206 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "plogon_enjoyer",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1024217,
"Position": {
"X": 394.39978,
"Y": -119.58932,
"Z": -232.28815
},
"TerritoryId": 613,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": 291.9449,
"Y": -62.62814,
"Z": -214.1033
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"Fly": true,
"RestartNavigationIfCancelled": false
},
{
"DataId": 2009094,
"Position": {
"X": 211.078,
"Y": -135.14917,
"Z": 56.168457
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
[1, 3, 5, 6, 7, 8],
null,
null,
null,
null
]
},
{
"DataId": 2009095,
"Position": {
"X": 163.0426,
"Y": -148.05829,
"Z": 72.28198
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [null, [2, 9, 21], null, null, null, null]
},
{
"DataId": 2009096,
"Position": {
"X": 134.23352,
"Y": -161.21161,
"Z": 70.450806
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [null, [24, 37], null, null, null, null]
},
{
"DataId": 2009080,
"Position": {
"X": 196.27673,
"Y": -146.685,
"Z": 40.45166
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [null, [4, 19], null, null, null, null]
},
{
"DataId": 2009081,
"Position": {
"X": 151.56775,
"Y": -168.1087,
"Z": 49.454468
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [null, [22, 23, 40], null, null, null, null]
},
{
"DataId": 2009082,
"Position": {
"X": 141.86316,
"Y": -170.30597,
"Z": 96.75745
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
[18, 17, 20, 35, 38],
null,
null,
null,
null
]
},
{
"DataId": 2009083,
"Position": {
"X": 165.08728,
"Y": -143.54169,
"Z": 116.227905
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
[25, 33, 36, 39],
null,
null,
null,
null
]
},
{
"DataId": 2009084,
"Position": {
"X": 173.81543,
"Y": -167.3457,
"Z": 114.61047
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [null, [34, 41], null, null, null, null]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": 804.21405,
"Y": 1.4000988,
"Z": 720.92487
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1024460,
"Position": {
"X": 873.9298,
"Y": 1.1792068,
"Z": 851.9568
},
"TerritoryId": 613,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 255,
"Steps": [
{
"Position": {
"X": 392.59683,
"Y": -119.589325,
"Z": -234.30063
},
"TerritoryId": 613,
"InteractionType": "WalkTo",
"Fly": true,
"AetheryteShortcut": "Ruby Sea - Tamamizu"
},
{
"DataId": 1024217,
"Position": {
"X": 394.39978,
"Y": -119.58932,
"Z": -232.28815
},
"TerritoryId": 613,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -0,0 +1,141 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1014577,
"Position": {
"X": -154.31458,
"Y": 16.999992,
"Z": -53.3609
},
"TerritoryId": 418,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Skysteel Manufactory"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1022146,
"Position": {
"X": 56.321045,
"Y": 207.33994,
"Z": -31.937195
},
"TerritoryId": 478,
"InteractionType": "Interact",
"AetheryteShortcut": "Idyllshire"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1017656,
"Position": {
"X": 70.7561,
"Y": 207.28993,
"Z": 0.59503174
},
"TerritoryId": 478,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1013721,
"Position": {
"X": 17.380005,
"Y": 205.38686,
"Z": 37.491333
},
"TerritoryId": 478,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1012133,
"Position": {
"X": -26.840637,
"Y": 206.49944,
"Z": 28.67163
},
"TerritoryId": 478,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1022148,
"Position": {
"X": -78.965515,
"Y": 206.50021,
"Z": 23.575134
},
"TerritoryId": 478,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
]
}
]
}
]
}

View File

@ -0,0 +1,145 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1022151,
"Position": {
"X": 115.098755,
"Y": 24.398598,
"Z": 2.822876
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Ishgard] The Brume",
"[Ishgard] The Forgotten Knight"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1022152,
"Position": {
"X": 3.9215698,
"Y": 27.790508,
"Z": -150.83551
},
"TerritoryId": 419,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Ishgard] The Forgotten Knight",
"[Ishgard] Saint Reymanaud's Cathedral"
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1014577,
"Position": {
"X": -154.31458,
"Y": 16.999992,
"Z": -53.3609
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Ishgard] Saint Reymanaud's Cathedral",
"[Ishgard] Skysteel Manufactory"
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": 660.36426,
"Y": 202.54167,
"Z": -180.60214
},
"StopDistance": 1,
"TerritoryId": 397,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
7486
],
"AetheryteShortcut": "Coerthas Western Highlands - Falcon's Nest",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1022153,
"Position": {
"X": 662.95874,
"Y": 202.59106,
"Z": -177.14203
},
"StopDistance": 7,
"TerritoryId": 397,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
]
}
]
}
]
}

View File

@ -0,0 +1,127 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1022157,
"Position": {
"X": -323.9643,
"Y": 239.9684,
"Z": 372.91516
},
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1022163,
"Position": {
"X": -395.95636,
"Y": 240.14958,
"Z": 340.59656
},
"TerritoryId": 155,
"InteractionType": "SinglePlayerDuty",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1022167,
"Position": {
"X": -385.36664,
"Y": 232.23338,
"Z": 314.65625
},
"StopDistance": 5,
"TerritoryId": 155,
"InteractionType": "Interact",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,184 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1022169,
"Position": {
"X": -58.854065,
"Y": 20.000334,
"Z": 42.83203
},
"TerritoryId": 129,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1022170,
"Position": {
"X": -172.6253,
"Y": 41.10136,
"Z": 175.89062
},
"TerritoryId": 128,
"InteractionType": "Interact",
"AetheryteShortcut": "Limsa Lominsa",
"AethernetShortcut": [
"[Limsa Lominsa] Aetheryte Plaza",
"[Limsa Lominsa] The Aftcastle"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true,
"InTerritory": [
128
]
},
"AethernetShortcutIf": {
"InSameTerritory": true
}
},
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_JOBMCH680_02908_Q1_000_000",
"Answer": "TEXT_JOBMCH680_02908_A1_000_001"
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1022173,
"Position": {
"X": 356.5575,
"Y": 351.0862,
"Z": -545.2201
},
"TerritoryId": 155,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"AetheryteShortcut": "Coerthas Central Highlands - Camp Dragonhead",
"Fly": true,
"ComplexCombatData": [
{
"DataId": 7487,
"MinimumKillCount": 2
}
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1022173,
"Position": {
"X": 356.5575,
"Y": 351.0862,
"Z": -545.2201
},
"TerritoryId": 155,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1022151,
"Position": {
"X": 115.098755,
"Y": 24.398598,
"Z": 2.822876
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Forgotten Knight"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] The Forgotten Knight",
"[Ishgard] The Brume"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,102 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "UcanPatates",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Ishgard",
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] The Brume"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1014577,
"Position": {
"X": -154.31458,
"Y": 16.999992,
"Z": -53.3609
},
"TerritoryId": 418,
"InteractionType": "Interact",
"AetheryteShortcut": "Ishgard",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"AethernetShortcut": [
"[Ishgard] Aetheryte Plaza",
"[Ishgard] Skysteel Manufactory"
]
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "SinglePlayerDuty",
"AetheryteShortcut": "Ishgard",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"AethernetShortcut": [
"[Ishgard] Skysteel Manufactory",
"[Ishgard] Aetheryte Plaza"
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1012251,
"Position": {
"X": 12.313965,
"Y": -12.020877,
"Z": 40.268433
},
"TerritoryId": 418,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Ishgard",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,359 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1036043,
"Position": {
"X": 653.8948,
"Y": 297.51984,
"Z": -171.80133
},
"TerritoryId": 814,
"InteractionType": "AcceptQuest",
"Fly": true,
"AetheryteShortcut": "Kholusia - Stilltide",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_LUCKTA522_04051_Q1_000_000",
"Answer": "TEXT_LUCKTA522_04051_A1_000_001"
}
]
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2011154,
"Position": {
"X": 703.1509,
"Y": 295.3993,
"Z": -160.20447
},
"TerritoryId": 814,
"InteractionType": "Interact",
"TargetTerritoryId": 928,
"SkipConditions": {
"StepIf": {
"InTerritory": [
928
]
}
}
},
{
"Position": {
"X": -352.89597,
"Y": 106.840775,
"Z": 337.33798
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"RestartNavigationIfCancelled": false
},
{
"TerritoryId": 928,
"InteractionType": "None",
"DelaySecondsAtStart": 3
},
{
"Position": {
"X": -271.62762,
"Y": 69.97228,
"Z": 273.0655
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"RestartNavigationIfCancelled": false
},
{
"TerritoryId": 928,
"InteractionType": "None",
"DelaySecondsAtStart": 2
},
{
"Position": {
"X": -234.40671,
"Y": 30,
"Z": 168.78214
},
"TerritoryId": 928,
"InteractionType": "WalkTo"
},
{
"Position": {
"X": -237.90593,
"Y": 36.4109,
"Z": 107.25123
},
"TerritoryId": 928,
"InteractionType": "WalkTo"
},
{
"Position": {
"X": -264.81836,
"Y": 20.597822,
"Z": 72.87652
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"Position": {
"X": -246.3392,
"Y": 2.727209,
"Z": 47.629112
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"DataId": 2011477,
"Position": {
"X": -233.6004,
"Y": 2.5177002,
"Z": 49.637573
},
"TerritoryId": 928,
"InteractionType": "Interact",
"DisableNavmesh": true,
"RequiredQuestVariables": [
null,
null,
null,
[
1
],
null,
null
],
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"Position": {
"X": -246.3392,
"Y": 2.727209,
"Z": 47.629112
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"Position": {
"X": -233.77907,
"Y": -3.860001,
"Z": 31.767477
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"DataId": 2011234,
"Position": {
"X": -230.12134,
"Y": -2.609314,
"Z": 11.612061
},
"TerritoryId": 928,
"InteractionType": "Interact",
"TargetTerritoryId": 928
},
{
"Position": {
"X": -229.71193,
"Y": -115.06235,
"Z": -115.379684
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"RestartNavigationIfCancelled": false
},
{
"TerritoryId": 928,
"InteractionType": "None",
"DelaySecondsAtStart": 2
},
{
"Position": {
"X": -229.93883,
"Y": -150.49908,
"Z": -219.08035
},
"TerritoryId": 928,
"InteractionType": "WalkTo"
},
{
"Position": {
"X": -229.96237,
"Y": -168.28922,
"Z": -329.79776
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{
"Position": {
"X": -237.64621,
"Y": -168.16484,
"Z": -336.7267
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"RestartNavigationIfCancelled": false,
"DelaySecondsAtStart": 2
},
{
"TerritoryId": 928,
"InteractionType": "None",
"DelaySecondsAtStart": 2
},
{
"DataId": 2011458,
"Position": {
"X": -295.1858,
"Y": -203.93689,
"Z": -329.36603
},
"TerritoryId": 928,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"Position": {
"X": -305.8408,
"Y": -204.6433,
"Z": -336.8385
},
"TerritoryId": 928,
"InteractionType": "WalkTo",
"RestartNavigationIfCancelled": false,
"DelaySecondsAtStart": 2,
"RequiredQuestVariables": [
null,
null,
null,
[2],
null,
null
]
},
{
"TerritoryId": 928,
"InteractionType": "None",
"DelaySecondsAtStart": 2
},
{
"Position": {
"X": -366.50647,
"Y": -241.32147,
"Z": -311.57397
},
"StopDistance": 0.5,
"TerritoryId": 928,
"InteractionType": "Jump",
"JumpDestination": {
"DataId": 2011269,
"Position": {
"X": -366.558,
"Y": -249.74661,
"Z": -301.74612
}
},
"DelaySecondsAtStart": 2,
"RequiredQuestVariables": [
null,
null,
null,
[2],
null,
null
]
},
{
"DataId": 2011269,
"Position": {
"X": -366.50647,
"Y": -248.43219,
"Z": -285.6947
},
"TerritoryId": 928,
"InteractionType": "Interact",
"TargetTerritoryId": 928,
"RequiredQuestVariables": [
null,
null,
null,
[2],
null,
null
]
},
{
"DataId": 2011459,
"Position": {
"X": 205.8899,
"Y": -500.0229,
"Z": -167.86456
},
"TerritoryId": 928,
"InteractionType": "Interact",
"RequiredQuestVariables": [
null,
null,
null,
[2],
null,
null
]
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1036043,
"Position": {
"X": 653.8948,
"Y": 297.51984,
"Z": -171.80133
},
"TerritoryId": 814,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Kholusia - Stilltide",
"Fly": true
}
]
}
]
}

View File

@ -1,7 +1,6 @@
{ {
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza", "Author": "pot0to",
"Disabled": true,
"QuestSequence": [ "QuestSequence": [
{ {
"Sequence": 0, "Sequence": 0,
@ -13,7 +12,8 @@
"Z": -273.68756 "Z": -273.68756
}, },
"TerritoryId": 959, "TerritoryId": 959,
"InteractionType": "WalkTo" "InteractionType": "WalkTo",
"Fly": true
}, },
{ {
"DataId": 1044403, "DataId": 1044403,
@ -30,6 +30,38 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"DataId": 1044412,
"Position": {
"X": -181.56714,
"Y": -49.19972,
"Z": -304.76843
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"TerritoryId": 959,
"InteractionType": "Craft",
"ItemId": 38871,
"ItemCount": 1
},
{
"DataId": 1044584,
"Position": {
"X": 563.8971,
"Y": -167.50002,
"Z": -594.53723
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true
}
] ]
}, },
{ {
@ -42,7 +74,8 @@
"Z": -273.68756 "Z": -273.68756
}, },
"TerritoryId": 959, "TerritoryId": 959,
"InteractionType": "WalkTo" "InteractionType": "WalkTo",
"Fly": true
}, },
{ {
"DataId": 1044403, "DataId": 1044403,

View File

@ -1,7 +1,6 @@
{ {
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json", "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza", "Author": "pot0to",
"Disabled": true,
"QuestSequence": [ "QuestSequence": [
{ {
"Sequence": 0, "Sequence": 0,
@ -30,6 +29,51 @@
{ {
"Sequence": 1, "Sequence": 1,
"Steps": [ "Steps": [
{
"DataId": 1044571,
"Position": {
"X": 20.09607,
"Y": 64.97662,
"Z": 43.411865
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1044571,
"Position": {
"X": 20.09607,
"Y": 64.97662,
"Z": 43.411865
},
"TerritoryId": 959,
"InteractionType": "UseItem",
"ItemId": 2003449,
"GroundTarget": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1044571,
"Position": {
"X": 20.09607,
"Y": 64.97662,
"Z": 43.411865
},
"TerritoryId": 959,
"InteractionType": "UseItem",
"ItemId": 2003449,
"GroundTarget": true
}
] ]
}, },
{ {
@ -42,7 +86,9 @@
"Z": -273.68756 "Z": -273.68756
}, },
"TerritoryId": 959, "TerritoryId": 959,
"InteractionType": "WalkTo" "InteractionType": "WalkTo",
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"Fly": true
}, },
{ {
"DataId": 1044403, "DataId": 1044403,

View File

@ -0,0 +1,179 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "AnimaMachinae",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1044402,
"Position": {
"X": -193.89642,
"Y": -49.19972,
"Z": -262.13477
},
"TerritoryId": 959,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2013281,
"Position": {
"X": -330.19,
"Y": 105.1499,
"Z": 554.5586
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1044942,
"Position": {
"X": -331.838,
"Y": 105.39431,
"Z": 551.2322
},
"TerritoryId": 959,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1044931,
"Position": {
"X": 148.30237,
"Y": -49.589592,
"Z": -361.77618
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1044402,
"Position": {
"X": -193.89642,
"Y": -49.19972,
"Z": -262.13477
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1044944,
"Position": {
"X": -463.55383,
"Y": -157.99237,
"Z": -513.3593
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1044945,
"Position": {
"X": -540.1236,
"Y": -167.8502,
"Z": -620.63025
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1044943,
"Position": {
"X": -414.54187,
"Y": -158.1177,
"Z": -639.9481
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1044947,
"Position": {
"X": -145.70844,
"Y": -49.19972,
"Z": -271.5343
},
"TerritoryId": 959,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Mare Lamentorum - Bestways Burrow"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"TerritoryId": 959,
"InteractionType": "Craft",
"ItemId": 38849,
"ItemCount": 1
},
{
"DataId": 1044947,
"Position": {
"X": -145.70844,
"Y": -49.19972,
"Z": -271.5343
},
"TerritoryId": 959,
"InteractionType": "CompleteQuest"
}
]
}
]
}

View File

@ -48,6 +48,31 @@
} }
] ]
}, },
{
"DataId": 2013072,
"Position": {
"X": 456.65674,
"Y": 438.04077,
"Z": 310.2312
},
"TerritoryId": 960,
"InteractionType": "Interact",
"AetheryteShortcut": "Ultima Thule - Base Omicron",
"TargetTerritoryId": 960,
"$": "Portal to A-4 Research"
},
{
"DataId": 1043865,
"Position": {
"X": 301.8081,
"Y": 482.13644,
"Z": 165.02625
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 960,
"$": "Last Dregs Host Unit"
},
{ {
"DataId": 1043936, "DataId": 1043936,
"Position": { "Position": {
@ -56,15 +81,25 @@
"Z": 250.93457 "Z": 250.93457
}, },
"TerritoryId": 960, "TerritoryId": 960,
"InteractionType": "Interact", "InteractionType": "Interact"
"AetheryteShortcut": "Ultima Thule - Base Omicron",
"Mount": true
} }
] ]
}, },
{ {
"Sequence": 255, "Sequence": 255,
"Steps": [ "Steps": [
{
"DataId": 1043864,
"Position": {
"X": 244.83093,
"Y": 564.8203,
"Z": 261.76843
},
"TerritoryId": 960,
"InteractionType": "Interact",
"TargetTerritoryId": 960,
"$": "A-4 Transport Unit"
},
{ {
"DataId": 1043417, "DataId": 1043417,
"Position": { "Position": {

View File

@ -110,18 +110,19 @@
"InteractionType": "Jump", "InteractionType": "Jump",
"JumpDestination": { "JumpDestination": {
"Position": { "Position": {
"X": -443.62042, "X": -444.56757,
"Y": -160.7644, "Y": -160.76439,
"Z": -644.7719 "Z": -644.749
} },
"DelaySeconds": 0.7
}, },
"Comment": "Platform 4" "Comment": "Platform 4"
}, },
{ {
"Position": { "Position": {
"X": -443.62042, "X": -444.56757,
"Y": -160.7644, "Y": -160.76439,
"Z": -644.7719 "Z": -644.749
}, },
"TerritoryId": 959, "TerritoryId": 959,
"InteractionType": "Jump", "InteractionType": "Jump",

View File

@ -29,7 +29,12 @@
}, },
"TerritoryId": 959, "TerritoryId": 959,
"InteractionType": "WalkTo", "InteractionType": "WalkTo",
"Comment": "Avoids Combat" "Comment": "Avoids Combat",
"SkipConditions": {
"StepIf": {
"Flying": "Unlocked"
}
}
}, },
{ {
"DataId": 2012531, "DataId": 2012531,
@ -40,7 +45,8 @@
}, },
"TerritoryId": 959, "TerritoryId": 959,
"InteractionType": "Interact", "InteractionType": "Interact",
"TargetTerritoryId": 1024 "TargetTerritoryId": 1024,
"Fly": true
}, },
{ {
"DataId": 1038960, "DataId": 1038960,

View File

@ -0,0 +1,94 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039375,
"Position": {
"X": 148.3634,
"Y": 5.192836,
"Z": 611.2611
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039376,
"Position": {
"X": -15.640564,
"Y": 35.742054,
"Z": 392.20264
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2011900,
"Position": {
"X": -17.135986,
"Y": 35.62976,
"Z": 394.39978
},
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "AfterInteraction",
"KillEnemyDataIds": [
14121
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1039376,
"Position": {
"X": -15.640564,
"Y": 35.742054,
"Z": 392.20264
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039377,
"Position": {
"X": 147.60046,
"Y": 5.186336,
"Z": 610.62024
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_AKTKZA019_04198_Q1_000_000",
"Answer": "TEXT_AKTKZA019_04198_A1_000_002"
}
]
}
]
}
]
}

View File

@ -104,16 +104,6 @@
"InteractionType": "AttuneAetherCurrent", "InteractionType": "AttuneAetherCurrent",
"AetherCurrentId": 2818450 "AetherCurrentId": 2818450
}, },
{
"Position": {
"X": -725.3725,
"Y": 28.795446,
"Z": -39.464005
},
"TerritoryId": 1190,
"InteractionType": "WalkTo",
"Mount": true
},
{ {
"DataId": 2013799, "DataId": 2013799,
"Position": { "Position": {
@ -133,6 +123,16 @@
64 64
] ]
}, },
{
"Position": {
"X": -725.3725,
"Y": 28.795446,
"Z": -39.464005
},
"TerritoryId": 1190,
"InteractionType": "WalkTo",
"Mount": true
},
{ {
"DataId": 2013800, "DataId": 2013800,
"Position": { "Position": {

View File

@ -92,7 +92,8 @@
"Z": 50.459126 "Z": 50.459126
}, },
"TerritoryId": 1186, "TerritoryId": 1186,
"InteractionType": "WaitForNpcAtPosition" "InteractionType": "WaitForNpcAtPosition",
"StopDistance": 1
}, },
{ {
"DataId": 1048078, "DataId": 1048078,
@ -103,7 +104,8 @@
}, },
"TerritoryId": 1186, "TerritoryId": 1186,
"InteractionType": "WaitForNpcAtPosition", "InteractionType": "WaitForNpcAtPosition",
"NpcWaitDistance": 2 "NpcWaitDistance": 3,
"StopDistance": 5
}, },
{ {
"DataId": 1048078, "DataId": 1048078,

View File

@ -829,6 +829,7 @@
"doze", "doze",
"box", "box",
"sundropdance", "sundropdance",
"cry",
"disappointed", "disappointed",
"examineself", "examineself",
"joy" "joy"

View File

@ -7,38 +7,39 @@ public sealed class EmoteConverter() : EnumConverter<EEmote>(Values)
{ {
private static readonly Dictionary<EEmote, string> Values = new() private static readonly Dictionary<EEmote, string> Values = new()
{ {
{ EEmote.Stretch, "stretch" }, { EEmote.Bow, "bow" },
{ EEmote.Wave, "wave" },
{ EEmote.Rally, "rally" },
{ EEmote.Deny, "deny" },
{ EEmote.Pray, "pray" },
{ EEmote.Slap, "slap" },
{ EEmote.Doubt, "doubt" },
{ EEmote.Psych, "psych" },
{ EEmote.Cheer, "cheer" }, { EEmote.Cheer, "cheer" },
{ EEmote.Happy, "happy" }, { EEmote.Clap, "clap" },
{ EEmote.Poke, "poke" }, { EEmote.Comfort, "comfort" },
{ EEmote.Flex, "flex" }, { EEmote.Cry, "cry" },
{ EEmote.Soothe, "soothe" }, { EEmote.Dance, "dance" },
{ EEmote.Doubt, "doubt" },
{ EEmote.Doze, "doze" },
{ EEmote.Wave, "wave" },
{ EEmote.Joy, "joy" },
{ EEmote.Kneel, "kneel" },
{ EEmote.Lookout, "lookout" },
{ EEmote.Me, "me" }, { EEmote.Me, "me" },
{ EEmote.Deny, "deny" },
{ EEmote.Poke, "poke" },
{ EEmote.Psych, "psych" },
{ EEmote.Rally, "rally" },
{ EEmote.Soothe, "soothe" },
{ EEmote.Stretch, "stretch" },
{ EEmote.Welcome, "welcome" }, { EEmote.Welcome, "welcome" },
{ EEmote.ExamineSelf, "examineself" },
{ EEmote.Happy, "happy" },
{ EEmote.Disappointed, "disappointed" },
{ EEmote.Pray, "pray" },
{ EEmote.ImperialSalute, "imperialsalute" }, { EEmote.ImperialSalute, "imperialsalute" },
{ EEmote.Pet, "pet" }, { EEmote.Pet, "pet" },
{ EEmote.Dance, "dance" }, { EEmote.Slap, "slap" },
{ EEmote.Respect, "respect" },
{ EEmote.Lookout, "lookout" },
{ EEmote.Kneel, "kneel" },
{ EEmote.Bow, "bow" },
{ EEmote.Uchiwasshoi, "uchiwasshoi" },
{ EEmote.Clap, "clap" },
{ EEmote.VictoryPose, "victorypose" },
{ EEmote.Comfort, "comfort" },
{ EEmote.BattleStance, "battlestance" },
{ EEmote.Doze, "doze" },
{ EEmote.Box, "box" },
{ EEmote.SundropDance, "sundropdance"}, { EEmote.SundropDance, "sundropdance"},
{ EEmote.Disappointed, "disappointed" }, { EEmote.BattleStance, "battlestance" },
{ EEmote.ExamineSelf, "examineself" }, { EEmote.VictoryPose, "victorypose" },
{ EEmote.Joy, "joy" }, { EEmote.Flex, "flex" },
{ EEmote.Respect, "respect" },
{ EEmote.Box, "box" },
{ EEmote.Uchiwasshoi, "uchiwasshoi" }
}; };
} }

View File

@ -8,37 +8,39 @@ public enum EEmote
{ {
None = 0, None = 0,
Stretch = 37, Bow = 5,
Wave = 16,
Rally = 34,
Deny = 25,
Pray = 58,
Slap = 111,
Doubt = 12,
Psych = 30,
Cheer = 6, Cheer = 6,
Happy = 48, Clap = 7,
Poke = 28, Comfort = 9,
Flex = 139, Cry = 10,
Soothe = 35, Dance = 11,
Doubt = 12,
Doze = 13,
Wave = 16,
Joy = 18,
Kneel = 19,
Lookout = 22,
Me = 23, Me = 23,
Deny = 25,
Poke = 28,
Psych = 30,
Rally = 34,
Soothe = 35,
Stretch = 37,
Welcome = 41, Welcome = 41,
ExamineSelf = 44,
Happy = 48,
Disappointed = 49,
Pray = 58,
ImperialSalute = 59, ImperialSalute = 59,
Pet = 105, Pet = 105,
Dance = 11, Slap = 111,
Respect = 140,
Lookout = 22,
Kneel = 19,
Bow = 5,
Uchiwasshoi = 278,
Clap = 7,
VictoryPose = 122,
Comfort = 9,
BattleStance = 121,
Doze = 13,
Box = 166,
SundropDance = 120, SundropDance = 120,
Disappointed = 49, BattleStance = 121,
ExamineSelf = 44, VictoryPose = 122,
Joy = 18, Flex = 139,
Respect = 140,
Box = 166,
Uchiwasshoi = 278
} }

View File

@ -26,6 +26,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Directory.Build.targets = Directory.Build.targets Directory.Build.targets = Directory.Build.targets
EndProjectSection EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "vendor", "vendor", "{8F5EC9D5-4CE7-433B-BB3A-782500E84DDB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationMasterAPI", "vendor\NotificationMasterAPI\NotificationMasterAPI\NotificationMasterAPI.csproj", "{9BD494ED-22F2-487B-BCE1-435399A8720E}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
@ -68,8 +72,16 @@ Global
{A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Debug|x64.Build.0 = Debug|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Debug|x64.Build.0 = Debug|x64
{A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.ActiveCfg = Release|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.ActiveCfg = Release|x64
{A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.Build.0 = Release|x64 {A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B}.Release|x64.Build.0 = Release|x64
{9BD494ED-22F2-487B-BCE1-435399A8720E}.Debug|x64.ActiveCfg = Debug|x64
{9BD494ED-22F2-487B-BCE1-435399A8720E}.Debug|x64.Build.0 = Debug|x64
{9BD494ED-22F2-487B-BCE1-435399A8720E}.Release|x64.ActiveCfg = Release|x64
{9BD494ED-22F2-487B-BCE1-435399A8720E}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{A12D7B4B-8E6E-4DCF-A41A-12F62E9FF94B} = {8F5EC9D5-4CE7-433B-BB3A-782500E84DDB}
{9BD494ED-22F2-487B-BCE1-435399A8720E} = {8F5EC9D5-4CE7-433B-BB3A-782500E84DDB}
EndGlobalSection
EndGlobal EndGlobal

View File

@ -1,4 +1,5 @@
using Dalamud.Configuration; using Dalamud.Configuration;
using Dalamud.Game.Text;
using FFXIVClientStructs.FFXIV.Client.UI.Agent; using FFXIVClientStructs.FFXIV.Client.UI.Agent;
using LLib.ImGui; using LLib.ImGui;
@ -6,12 +7,20 @@ namespace Questionable;
internal sealed class Configuration : IPluginConfiguration internal sealed class Configuration : IPluginConfiguration
{ {
public const int PluginSetupVersion = 1;
public int Version { get; set; } =1 ; public int Version { get; set; } =1 ;
public int PluginSetupCompleteVersion { get; set; }
public GeneralConfiguration General { get; } = new(); public GeneralConfiguration General { get; } = new();
public NotificationConfiguration Notifications { get; } = new();
public AdvancedConfiguration Advanced { get; } = new(); public AdvancedConfiguration Advanced { get; } = new();
public WindowConfig DebugWindowConfig { get; } = new(); public WindowConfig DebugWindowConfig { get; } = new();
public WindowConfig ConfigWindowConfig { get; } = new(); public WindowConfig ConfigWindowConfig { get; } = new();
internal bool IsPluginSetupComplete() => PluginSetupCompleteVersion == PluginSetupVersion;
internal void MarkPluginSetupComplete() => PluginSetupCompleteVersion = PluginSetupVersion;
internal sealed class GeneralConfiguration internal sealed class GeneralConfiguration
{ {
public uint MountId { get; set; } = 71; public uint MountId { get; set; } = 71;
@ -23,6 +32,14 @@ internal sealed class Configuration : IPluginConfiguration
public bool ConfigureTextAdvance { get; set; } = true; public bool ConfigureTextAdvance { get; set; } = true;
} }
internal sealed class NotificationConfiguration
{
public bool Enabled { get; set; } = true;
public XivChatType ChatType { get; set; } = XivChatType.Debug;
public bool ShowTrayMessage { get; set; }
public bool FlashTaskbar { get; set; }
}
internal sealed class AdvancedConfiguration internal sealed class AdvancedConfiguration
{ {
public bool DebugOverlay { get; set; } public bool DebugOverlay { get; set; }

View File

@ -24,12 +24,14 @@ internal sealed class CommandHandler : IDisposable
private readonly QuestRegistry _questRegistry; private readonly QuestRegistry _questRegistry;
private readonly ConfigWindow _configWindow; private readonly ConfigWindow _configWindow;
private readonly DebugOverlay _debugOverlay; private readonly DebugOverlay _debugOverlay;
private readonly OneTimeSetupWindow _oneTimeSetupWindow;
private readonly QuestWindow _questWindow; private readonly QuestWindow _questWindow;
private readonly QuestSelectionWindow _questSelectionWindow; private readonly QuestSelectionWindow _questSelectionWindow;
private readonly ITargetManager _targetManager; private readonly ITargetManager _targetManager;
private readonly QuestFunctions _questFunctions; private readonly QuestFunctions _questFunctions;
private readonly GameFunctions _gameFunctions; private readonly GameFunctions _gameFunctions;
private readonly IDataManager _dataManager; private readonly IDataManager _dataManager;
private readonly Configuration _configuration;
public CommandHandler( public CommandHandler(
ICommandManager commandManager, ICommandManager commandManager,
@ -39,12 +41,14 @@ internal sealed class CommandHandler : IDisposable
QuestRegistry questRegistry, QuestRegistry questRegistry,
ConfigWindow configWindow, ConfigWindow configWindow,
DebugOverlay debugOverlay, DebugOverlay debugOverlay,
OneTimeSetupWindow oneTimeSetupWindow,
QuestWindow questWindow, QuestWindow questWindow,
QuestSelectionWindow questSelectionWindow, QuestSelectionWindow questSelectionWindow,
ITargetManager targetManager, ITargetManager targetManager,
QuestFunctions questFunctions, QuestFunctions questFunctions,
GameFunctions gameFunctions, GameFunctions gameFunctions,
IDataManager dataManager) IDataManager dataManager,
Configuration configuration)
{ {
_commandManager = commandManager; _commandManager = commandManager;
_chatGui = chatGui; _chatGui = chatGui;
@ -53,12 +57,14 @@ internal sealed class CommandHandler : IDisposable
_questRegistry = questRegistry; _questRegistry = questRegistry;
_configWindow = configWindow; _configWindow = configWindow;
_debugOverlay = debugOverlay; _debugOverlay = debugOverlay;
_oneTimeSetupWindow = oneTimeSetupWindow;
_questWindow = questWindow; _questWindow = questWindow;
_questSelectionWindow = questSelectionWindow; _questSelectionWindow = questSelectionWindow;
_targetManager = targetManager; _targetManager = targetManager;
_questFunctions = questFunctions; _questFunctions = questFunctions;
_gameFunctions = gameFunctions; _gameFunctions = gameFunctions;
_dataManager = dataManager; _dataManager = dataManager;
_configuration = configuration;
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand) _commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand)
{ {
@ -75,6 +81,15 @@ internal sealed class CommandHandler : IDisposable
private void ProcessCommand(string command, string arguments) private void ProcessCommand(string command, string arguments)
{ {
if (!_configuration.IsPluginSetupComplete())
{
if (string.IsNullOrEmpty(arguments))
_oneTimeSetupWindow.IsOpen = true;
else
_chatGui.PrintError("Please complete the one-time setup first.", MessageTag, TagColor);
return;
}
string[] parts = arguments.Split(' '); string[] parts = arguments.Split(' ');
switch (parts[0]) switch (parts[0])
{ {

View File

@ -16,6 +16,7 @@ using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.Game.Control; using FFXIVClientStructs.FFXIV.Client.Game.Control;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Questionable.Controller.NavigationOverrides; using Questionable.Controller.NavigationOverrides;
using Questionable.Data;
using Questionable.External; using Questionable.External;
using Questionable.Functions; using Questionable.Functions;
using Questionable.Model; using Questionable.Model;
@ -36,13 +37,14 @@ internal sealed class MovementController : IDisposable
private readonly ChatFunctions _chatFunctions; private readonly ChatFunctions _chatFunctions;
private readonly ICondition _condition; private readonly ICondition _condition;
private readonly MovementOverrideController _movementOverrideController; private readonly MovementOverrideController _movementOverrideController;
private readonly AetheryteData _aetheryteData;
private readonly ILogger<MovementController> _logger; private readonly ILogger<MovementController> _logger;
private CancellationTokenSource? _cancellationTokenSource; private CancellationTokenSource? _cancellationTokenSource;
private Task<List<Vector3>>? _pathfindTask; private Task<List<Vector3>>? _pathfindTask;
public MovementController(NavmeshIpc navmeshIpc, IClientState clientState, GameFunctions gameFunctions, public MovementController(NavmeshIpc navmeshIpc, IClientState clientState, GameFunctions gameFunctions,
ChatFunctions chatFunctions, ICondition condition, MovementOverrideController movementOverrideController, ChatFunctions chatFunctions, ICondition condition, MovementOverrideController movementOverrideController,
ILogger<MovementController> logger) AetheryteData aetheryteData, ILogger<MovementController> logger)
{ {
_navmeshIpc = navmeshIpc; _navmeshIpc = navmeshIpc;
_clientState = clientState; _clientState = clientState;
@ -50,6 +52,7 @@ internal sealed class MovementController : IDisposable
_chatFunctions = chatFunctions; _chatFunctions = chatFunctions;
_condition = condition; _condition = condition;
_movementOverrideController = movementOverrideController; _movementOverrideController = movementOverrideController;
_aetheryteData = aetheryteData;
_logger = logger; _logger = logger;
} }
@ -305,8 +308,18 @@ internal sealed class MovementController : IDisposable
Destination.NavmeshCalculations++; Destination.NavmeshCalculations++;
_cancellationTokenSource = new(); _cancellationTokenSource = new();
_cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30)); _cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(30));
Vector3 startPosition = _clientState.LocalPlayer!.Position;
if (fly && _aetheryteData.CalculateDistance(startPosition, _clientState.TerritoryType,
EAetheryteLocation.CoerthasCentralHighlandsCampDragonhead) < 11f)
{
startPosition = startPosition with { Y = startPosition.Y + 1f };
_logger.LogInformation("Using modified start position for flying pathfinding: {StartPosition}",
startPosition.ToString("G", CultureInfo.InvariantCulture));
}
_pathfindTask = _pathfindTask =
_navmeshIpc.Pathfind(_clientState.LocalPlayer!.Position, to, fly, _cancellationTokenSource.Token); _navmeshIpc.Pathfind(startPosition, to, fly, _cancellationTokenSource.Token);
} }
public void NavigateTo(EMovementType type, uint? dataId, List<Vector3> to, bool fly, bool sprint, public void NavigateTo(EMovementType type, uint? dataId, List<Vector3> to, bool fly, bool sprint,

View File

@ -0,0 +1,84 @@
using Dalamud.Game.Text;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Plugin.Services;
using Questionable.External;
using Questionable.Model.Questing;
namespace Questionable.Controller.Steps.Common;
internal static class SendNotification
{
internal sealed record Task(EInteractionType InteractionType, string? Comment) : ITask
{
public override string ToString() => "SendNotification";
}
internal sealed class Executor(
NotificationMasterIpc notificationMasterIpc,
IChatGui chatGui,
Configuration configuration) : TaskExecutor<Task>
{
protected override bool Start()
{
if (!configuration.Notifications.Enabled)
return false;
string text = Task.InteractionType switch
{
EInteractionType.Duty => "Duty",
EInteractionType.SinglePlayerDuty => "Single player duty",
EInteractionType.Instruction or EInteractionType.WaitForManualProgress or EInteractionType.Snipe =>
"Manual interaction required",
_ => $"{Task.InteractionType}",
};
if (!string.IsNullOrEmpty(Task.Comment))
text += $" - {Task.Comment}";
if (configuration.Notifications.ChatType != XivChatType.None)
{
var message = configuration.Notifications.ChatType switch
{
XivChatType.Say
or XivChatType.Shout
or XivChatType.TellOutgoing
or XivChatType.TellIncoming
or XivChatType.Party
or XivChatType.Alliance
or (>= XivChatType.Ls1 and <= XivChatType.Ls8)
or XivChatType.FreeCompany
or XivChatType.NoviceNetwork
or XivChatType.Yell
or XivChatType.CrossParty
or XivChatType.PvPTeam
or XivChatType.CrossLinkShell1
or XivChatType.NPCDialogue
or XivChatType.NPCDialogueAnnouncements
or (>= XivChatType.CrossLinkShell2 and <= XivChatType.CrossLinkShell8)
=> new XivChatEntry
{
Message = text,
Type = configuration.Notifications.ChatType,
Name = new SeStringBuilder()
.AddUiForeground(CommandHandler.MessageTag, CommandHandler.TagColor)
.Build(),
},
_ => new XivChatEntry
{
Message = new SeStringBuilder()
.AddUiForeground($"[{CommandHandler.MessageTag}] ", CommandHandler.TagColor)
.Append(text)
.Build(),
Type = configuration.Notifications.ChatType,
}
};
chatGui.Print(message);
}
notificationMasterIpc.Notify(text);
return true;
}
public override ETaskResult Update() => ETaskResult.TaskComplete;
}
}

View File

@ -325,6 +325,7 @@ internal static class MoveTo
internal sealed class LandTask : ITask internal sealed class LandTask : ITask
{ {
public bool ShouldRedoOnInterrupt() => true; public bool ShouldRedoOnInterrupt() => true;
public override string ToString() => "Land";
} }
internal sealed class LandExecutor(IClientState clientState, ICondition condition, ILogger<LandExecutor> logger) : TaskExecutor<LandTask> internal sealed class LandExecutor(IClientState clientState, ICondition condition, ILogger<LandExecutor> logger) : TaskExecutor<LandTask>

View File

@ -6,6 +6,7 @@ using System.Numerics;
using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Conditions;
using Dalamud.Plugin.Services; using Dalamud.Plugin.Services;
using Questionable.Controller.Steps.Common; using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Interactions;
using Questionable.Controller.Utils; using Questionable.Controller.Utils;
using Questionable.Data; using Questionable.Data;
using Questionable.Functions; using Questionable.Functions;
@ -19,7 +20,8 @@ internal static class WaitAtEnd
internal sealed class Factory( internal sealed class Factory(
IClientState clientState, IClientState clientState,
ICondition condition, ICondition condition,
TerritoryData territoryData) TerritoryData territoryData,
Configuration configuration)
: ITaskFactory : ITaskFactory
{ {
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step) public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
@ -47,12 +49,28 @@ internal static class WaitAtEnd
case EInteractionType.WaitForManualProgress: case EInteractionType.WaitForManualProgress:
case EInteractionType.Instruction: case EInteractionType.Instruction:
case EInteractionType.Snipe:
return [new WaitNextStepOrSequence()]; return [new WaitNextStepOrSequence()];
case EInteractionType.Snipe:
if (configuration.General.AutomaticallyCompleteSnipeTasks)
return [new WaitNextStepOrSequence()];
else
return [
new SendNotification.Task(step.InteractionType, step.Comment),
new WaitNextStepOrSequence()
];
case EInteractionType.Duty: case EInteractionType.Duty:
return [
new SendNotification.Task(step.InteractionType, step.ContentFinderConditionId.HasValue ? territoryData.GetContentFinderConditionName(step.ContentFinderConditionId.Value) : step.Comment),
new EndAutomation(),
];
case EInteractionType.SinglePlayerDuty: case EInteractionType.SinglePlayerDuty:
return [new EndAutomation()]; return [
new SendNotification.Task(step.InteractionType, quest.Info.Name),
new EndAutomation()
];
case EInteractionType.WalkTo: case EInteractionType.WalkTo:
case EInteractionType.Jump: case EInteractionType.Jump:

View File

@ -18,9 +18,11 @@ internal sealed class DalamudInitializer : IDisposable
private readonly QuestController _questController; private readonly QuestController _questController;
private readonly MovementController _movementController; private readonly MovementController _movementController;
private readonly WindowSystem _windowSystem; private readonly WindowSystem _windowSystem;
private readonly OneTimeSetupWindow _oneTimeSetupWindow;
private readonly QuestWindow _questWindow; private readonly QuestWindow _questWindow;
private readonly ConfigWindow _configWindow; private readonly ConfigWindow _configWindow;
private readonly IToastGui _toastGui; private readonly IToastGui _toastGui;
private readonly Configuration _configuration;
private readonly ILogger<DalamudInitializer> _logger; private readonly ILogger<DalamudInitializer> _logger;
public DalamudInitializer( public DalamudInitializer(
@ -30,6 +32,7 @@ internal sealed class DalamudInitializer : IDisposable
MovementController movementController, MovementController movementController,
InteractionUiController interactionUiController, InteractionUiController interactionUiController,
WindowSystem windowSystem, WindowSystem windowSystem,
OneTimeSetupWindow oneTimeSetupWindow,
QuestWindow questWindow, QuestWindow questWindow,
DebugOverlay debugOverlay, DebugOverlay debugOverlay,
ConfigWindow configWindow, ConfigWindow configWindow,
@ -38,6 +41,7 @@ internal sealed class DalamudInitializer : IDisposable
JournalProgressWindow journalProgressWindow, JournalProgressWindow journalProgressWindow,
PriorityWindow priorityWindow, PriorityWindow priorityWindow,
IToastGui toastGui, IToastGui toastGui,
Configuration configuration,
ILogger<DalamudInitializer> logger) ILogger<DalamudInitializer> logger)
{ {
_pluginInterface = pluginInterface; _pluginInterface = pluginInterface;
@ -45,11 +49,14 @@ internal sealed class DalamudInitializer : IDisposable
_questController = questController; _questController = questController;
_movementController = movementController; _movementController = movementController;
_windowSystem = windowSystem; _windowSystem = windowSystem;
_oneTimeSetupWindow = oneTimeSetupWindow;
_questWindow = questWindow; _questWindow = questWindow;
_configWindow = configWindow; _configWindow = configWindow;
_toastGui = toastGui; _toastGui = toastGui;
_configuration = configuration;
_logger = logger; _logger = logger;
_windowSystem.AddWindow(oneTimeSetupWindow);
_windowSystem.AddWindow(questWindow); _windowSystem.AddWindow(questWindow);
_windowSystem.AddWindow(configWindow); _windowSystem.AddWindow(configWindow);
_windowSystem.AddWindow(debugOverlay); _windowSystem.AddWindow(debugOverlay);
@ -59,7 +66,7 @@ internal sealed class DalamudInitializer : IDisposable
_windowSystem.AddWindow(priorityWindow); _windowSystem.AddWindow(priorityWindow);
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw; _pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
_pluginInterface.UiBuilder.OpenMainUi += _questWindow.Toggle; _pluginInterface.UiBuilder.OpenMainUi += ToggleQuestWindow;
_pluginInterface.UiBuilder.OpenConfigUi += _configWindow.Toggle; _pluginInterface.UiBuilder.OpenConfigUi += _configWindow.Toggle;
_framework.Update += FrameworkUpdate; _framework.Update += FrameworkUpdate;
_framework.RunOnTick(interactionUiController.HandleCurrentDialogueChoices, TimeSpan.FromMilliseconds(200)); _framework.RunOnTick(interactionUiController.HandleCurrentDialogueChoices, TimeSpan.FromMilliseconds(200));
@ -91,6 +98,14 @@ internal sealed class DalamudInitializer : IDisposable
private void OnQuestToast(ref SeString message, ref QuestToastOptions options, ref bool isHandled) private void OnQuestToast(ref SeString message, ref QuestToastOptions options, ref bool isHandled)
=> _logger.LogTrace("Quest Toast: {Message}", message); => _logger.LogTrace("Quest Toast: {Message}", message);
private void ToggleQuestWindow()
{
if (_configuration.IsPluginSetupComplete())
_questWindow.Toggle();
else
_oneTimeSetupWindow.IsOpen = true;
}
public void Dispose() public void Dispose()
{ {
_toastGui.QuestToast -= OnQuestToast; _toastGui.QuestToast -= OnQuestToast;
@ -98,7 +113,7 @@ internal sealed class DalamudInitializer : IDisposable
_toastGui.Toast -= OnToast; _toastGui.Toast -= OnToast;
_framework.Update -= FrameworkUpdate; _framework.Update -= FrameworkUpdate;
_pluginInterface.UiBuilder.OpenConfigUi -= _configWindow.Toggle; _pluginInterface.UiBuilder.OpenConfigUi -= _configWindow.Toggle;
_pluginInterface.UiBuilder.OpenMainUi -= _questWindow.Toggle; _pluginInterface.UiBuilder.OpenMainUi -= ToggleQuestWindow;
_pluginInterface.UiBuilder.Draw -= _windowSystem.Draw; _pluginInterface.UiBuilder.Draw -= _windowSystem.Draw;
_windowSystem.RemoveAllWindows(); _windowSystem.RemoveAllWindows();

View File

@ -14,6 +14,7 @@ internal sealed class TerritoryData
private readonly ImmutableHashSet<ushort> _territoriesWithMount; private readonly ImmutableHashSet<ushort> _territoriesWithMount;
private readonly ImmutableDictionary<ushort, uint> _dutyTerritories; private readonly ImmutableDictionary<ushort, uint> _dutyTerritories;
private readonly ImmutableDictionary<ushort, string> _instanceNames; private readonly ImmutableDictionary<ushort, string> _instanceNames;
private readonly ImmutableDictionary<uint, string> _contentFinderConditionNames;
public TerritoryData(IDataManager dataManager) public TerritoryData(IDataManager dataManager)
{ {
@ -40,6 +41,10 @@ internal sealed class TerritoryData
_instanceNames = dataManager.GetExcelSheet<ContentFinderCondition>()! _instanceNames = dataManager.GetExcelSheet<ContentFinderCondition>()!
.Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6) .Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6)
.ToImmutableDictionary(x => x.Content, x => x.Name.ToString()); .ToImmutableDictionary(x => x.Content, x => x.Name.ToString());
_contentFinderConditionNames = dataManager.GetExcelSheet<ContentFinderCondition>()!
.Where(x => x.RowId > 0 && x.Content != 0 && x.ContentLinkType == 1 && x.ContentType.Row != 6)
.ToImmutableDictionary(x => x.RowId, x => x.Name.ToString());
} }
public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId); public string? GetName(ushort territoryId) => _territoryNames.GetValueOrDefault(territoryId);
@ -61,4 +66,6 @@ internal sealed class TerritoryData
_dutyTerritories.TryGetValue(territoryId, out uint contentType) && contentType == 7; _dutyTerritories.TryGetValue(territoryId, out uint contentType) && contentType == 7;
public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId); public string? GetInstanceName(ushort instanceId) => _instanceNames.GetValueOrDefault(instanceId);
public string? GetContentFinderConditionName(uint cfcId) => _contentFinderConditionNames.GetValueOrDefault(cfcId);
} }

View File

@ -0,0 +1,24 @@
using Dalamud.Plugin;
using NotificationMasterAPI;
namespace Questionable.External;
internal sealed class NotificationMasterIpc(IDalamudPluginInterface pluginInterface, Configuration configuration)
{
private readonly NotificationMasterApi _api = new(pluginInterface);
public bool Enabled => _api.IsIPCReady();
public void Notify(string message)
{
var config = configuration.Notifications;
if (!config.Enabled)
return;
if (config.ShowTrayMessage)
_api.DisplayTrayNotification("Questionable", message);
if (config.FlashTaskbar)
_api.FlashTaskbarIcon();
}
}

View File

@ -21,5 +21,6 @@
<ProjectReference Include="..\LLib\LLib.csproj"/> <ProjectReference Include="..\LLib\LLib.csproj"/>
<ProjectReference Include="..\Questionable.Model\Questionable.Model.csproj"/> <ProjectReference Include="..\Questionable.Model\Questionable.Model.csproj"/>
<ProjectReference Include="..\QuestPaths\QuestPaths.csproj"/> <ProjectReference Include="..\QuestPaths\QuestPaths.csproj"/>
<ProjectReference Include="..\vendor\NotificationMasterAPI\NotificationMasterAPI\NotificationMasterAPI.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -6,6 +6,7 @@ using Dalamud.Game.ClientState.Objects;
using Dalamud.Interface.Windowing; using Dalamud.Interface.Windowing;
using Dalamud.Plugin; using Dalamud.Plugin;
using Dalamud.Plugin.Services; using Dalamud.Plugin.Services;
using LLib;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Questionable.Controller; using Questionable.Controller;
@ -110,6 +111,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<GameFunctions>(); serviceCollection.AddSingleton<GameFunctions>();
serviceCollection.AddSingleton<ChatFunctions>(); serviceCollection.AddSingleton<ChatFunctions>();
serviceCollection.AddSingleton<QuestFunctions>(); serviceCollection.AddSingleton<QuestFunctions>();
serviceCollection.AddSingleton<DalamudReflector>();
serviceCollection.AddSingleton<AutoSnipeHandler>(); serviceCollection.AddSingleton<AutoSnipeHandler>();
serviceCollection.AddSingleton<AetherCurrentData>(); serviceCollection.AddSingleton<AetherCurrentData>();
@ -125,6 +127,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<ArtisanIpc>(); serviceCollection.AddSingleton<ArtisanIpc>();
serviceCollection.AddSingleton<QuestionableIpc>(); serviceCollection.AddSingleton<QuestionableIpc>();
serviceCollection.AddSingleton<TextAdvanceIpc>(); serviceCollection.AddSingleton<TextAdvanceIpc>();
serviceCollection.AddSingleton<NotificationMasterIpc>();
} }
private static void AddTaskFactories(ServiceCollection serviceCollection) private static void AddTaskFactories(ServiceCollection serviceCollection)
@ -203,6 +206,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddTaskExecutor<InitiateLeve.Initiate, InitiateLeve.InitiateExecutor>(); serviceCollection.AddTaskExecutor<InitiateLeve.Initiate, InitiateLeve.InitiateExecutor>();
serviceCollection.AddTaskExecutor<InitiateLeve.SelectDifficulty, InitiateLeve.SelectDifficultyExecutor>(); serviceCollection.AddTaskExecutor<InitiateLeve.SelectDifficulty, InitiateLeve.SelectDifficultyExecutor>();
serviceCollection.AddTaskExecutor<SendNotification.Task, SendNotification.Executor>();
serviceCollection.AddTaskExecutor<WaitCondition.Task, WaitCondition.WaitConditionExecutor>(); serviceCollection.AddTaskExecutor<WaitCondition.Task, WaitCondition.WaitConditionExecutor>();
serviceCollection.AddTaskFactory<WaitAtEnd.Factory>(); serviceCollection.AddTaskFactory<WaitAtEnd.Factory>();
serviceCollection.AddTaskExecutor<WaitAtEnd.WaitDelay, WaitAtEnd.WaitDelayExecutor>(); serviceCollection.AddTaskExecutor<WaitAtEnd.WaitDelay, WaitAtEnd.WaitDelayExecutor>();
@ -255,6 +259,7 @@ public sealed class QuestionablePlugin : IDalamudPlugin
serviceCollection.AddSingleton<QuestJournalComponent>(); serviceCollection.AddSingleton<QuestJournalComponent>();
serviceCollection.AddSingleton<GatheringJournalComponent>(); serviceCollection.AddSingleton<GatheringJournalComponent>();
serviceCollection.AddSingleton<OneTimeSetupWindow>();
serviceCollection.AddSingleton<QuestWindow>(); serviceCollection.AddSingleton<QuestWindow>();
serviceCollection.AddSingleton<ConfigWindow>(); serviceCollection.AddSingleton<ConfigWindow>();
serviceCollection.AddSingleton<DebugOverlay>(); serviceCollection.AddSingleton<DebugOverlay>();

View File

@ -1,12 +1,17 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Linq; using System.Linq;
using Dalamud.Game.Text;
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using Dalamud.Interface.Components;
using Dalamud.Interface.Utility.Raii;
using Dalamud.Plugin; using Dalamud.Plugin;
using Dalamud.Plugin.Services; using Dalamud.Plugin.Services;
using Dalamud.Utility;
using ImGuiNET; using ImGuiNET;
using LLib.ImGui; using LLib.ImGui;
using Lumina.Excel.GeneratedSheets; using Lumina.Excel.GeneratedSheets;
using Questionable.External;
using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany; using GrandCompany = FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany;
namespace Questionable.Windows; namespace Questionable.Windows;
@ -14,6 +19,7 @@ namespace Questionable.Windows;
internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
{ {
private readonly IDalamudPluginInterface _pluginInterface; private readonly IDalamudPluginInterface _pluginInterface;
private readonly NotificationMasterIpc _notificationMasterIpc;
private readonly Configuration _configuration; private readonly Configuration _configuration;
private readonly uint[] _mountIds; private readonly uint[] _mountIds;
@ -23,10 +29,11 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"]; ["None (manually pick quest)", "Maelstrom", "Twin Adder", "Immortal Flames"];
[SuppressMessage("Performance", "CA1861", Justification = "One time initialization")] [SuppressMessage("Performance", "CA1861", Justification = "One time initialization")]
public ConfigWindow(IDalamudPluginInterface pluginInterface, Configuration configuration, IDataManager dataManager) public ConfigWindow(IDalamudPluginInterface pluginInterface, NotificationMasterIpc notificationMasterIpc, Configuration configuration, IDataManager dataManager)
: base("Config - Questionable###QuestionableConfig", ImGuiWindowFlags.AlwaysAutoResize) : base("Config - Questionable###QuestionableConfig", ImGuiWindowFlags.AlwaysAutoResize)
{ {
_pluginInterface = pluginInterface; _pluginInterface = pluginInterface;
_notificationMasterIpc = notificationMasterIpc;
_configuration = configuration; _configuration = configuration;
var mounts = dataManager.GetExcelSheet<Mount>()! var mounts = dataManager.GetExcelSheet<Mount>()!
@ -43,10 +50,20 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
public override void Draw() public override void Draw()
{ {
if (ImGui.BeginTabBar("QuestionableConfigTabs")) using var tabBar = ImRaii.TabBar("QuestionableConfigTabs");
{ if (!tabBar)
if (ImGui.BeginTabItem("General")) return;
DrawGeneralTab();
DrawNotificationsTab();
DrawAdvancedTab();
}
private void DrawGeneralTab()
{ {
using var tab = ImRaii.TabItem("General");
if (!tab)
return;
int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId); int selectedMount = Array.FindIndex(_mountIds, x => x == _configuration.General.MountId);
if (selectedMount == -1) if (selectedMount == -1)
{ {
@ -91,7 +108,8 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
} }
bool configureTextAdvance = _configuration.General.ConfigureTextAdvance; bool configureTextAdvance = _configuration.General.ConfigureTextAdvance;
if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings", ref configureTextAdvance)) if (ImGui.Checkbox("Automatically configure TextAdvance with the recommended settings",
ref configureTextAdvance))
{ {
_configuration.General.ConfigureTextAdvance = configureTextAdvance; _configuration.General.ConfigureTextAdvance = configureTextAdvance;
Save(); Save();
@ -99,7 +117,8 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
if (ImGui.CollapsingHeader("Cheats")) if (ImGui.CollapsingHeader("Cheats"))
{ {
ImGui.TextColored(ImGuiColors.DalamudRed, "This setting will be removed in a future version, and will be\navailable through TextAdvance instead."); ImGui.TextColored(ImGuiColors.DalamudRed,
"This setting will be removed in a future version, and will be\navailable through TextAdvance instead.");
bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks; bool automaticallyCompleteSnipeTasks = _configuration.General.AutomaticallyCompleteSnipeTasks;
if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks)) if (ImGui.Checkbox("Automatically complete snipe tasks", ref automaticallyCompleteSnipeTasks))
{ {
@ -107,12 +126,69 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
Save(); Save();
} }
} }
ImGui.EndTabItem();
} }
if (ImGui.BeginTabItem("Advanced")) private void DrawNotificationsTab()
{ {
using var tab = ImRaii.TabItem("Notifications");
if (!tab)
return;
bool enabled = _configuration.Notifications.Enabled;
if (ImGui.Checkbox("Enable notifications when manual interaction is required", ref enabled))
{
_configuration.Notifications.Enabled = enabled;
Save();
}
using (ImRaii.Disabled(!_configuration.Notifications.Enabled))
{
using (ImRaii.PushIndent())
{
var xivChatTypes = Enum.GetValues<XivChatType>()
.Where(x => x != XivChatType.StandardEmote)
.ToArray();
var selectedChatType = Array.IndexOf(xivChatTypes, _configuration.Notifications.ChatType);
string[] chatTypeNames = xivChatTypes
.Select(t => t.GetAttribute<XivChatTypeInfoAttribute>()?.FancyName ?? t.ToString())
.ToArray();
if (ImGui.Combo("Chat channel", ref selectedChatType, chatTypeNames,
chatTypeNames.Length))
{
_configuration.Notifications.ChatType = xivChatTypes[selectedChatType];
Save();
}
ImGui.Separator();
ImGui.Text("NotificationMaster settings");
ImGui.SameLine();
ImGuiComponents.HelpMarker("Requires the plugin 'NotificationMaster' to be installed.");
using (ImRaii.Disabled(!_notificationMasterIpc.Enabled))
{
bool showTrayMessage = _configuration.Notifications.ShowTrayMessage;
if (ImGui.Checkbox("Show tray notification", ref showTrayMessage))
{
_configuration.Notifications.ShowTrayMessage = showTrayMessage;
Save();
}
bool flashTaskbar = _configuration.Notifications.FlashTaskbar;
if (ImGui.Checkbox("Flash taskbar icon", ref flashTaskbar))
{
_configuration.Notifications.FlashTaskbar = flashTaskbar;
Save();
}
}
}
}
}
private void DrawAdvancedTab()
{
using var tab = ImRaii.TabItem("Advanced");
if (!tab)
return;
ImGui.TextColored(ImGuiColors.DalamudRed, ImGui.TextColored(ImGuiColors.DalamudRed,
"Enabling any option here may cause unexpected behavior. Use at your own risk."); "Enabling any option here may cause unexpected behavior. Use at your own risk.");
@ -142,10 +218,6 @@ internal sealed class ConfigWindow : LWindow, IPersistableWindowConfig
ImGui.EndTabItem(); ImGui.EndTabItem();
} }
ImGui.EndTabBar();
}
}
private void Save() => _pluginInterface.SavePluginConfig(_configuration); private void Save() => _pluginInterface.SavePluginConfig(_configuration);
public void SaveWindowConfig() => Save(); public void SaveWindowConfig() => Save();

View File

@ -0,0 +1,173 @@
using System;
using System.Collections.Generic;
using Dalamud.Interface;
using Dalamud.Interface.Colors;
using Dalamud.Interface.Components;
using Dalamud.Interface.Utility.Raii;
using Dalamud.Plugin;
using Dalamud.Utility;
using ImGuiNET;
using LLib;
using LLib.ImGui;
using Microsoft.Extensions.Logging;
namespace Questionable.Windows;
internal sealed class OneTimeSetupWindow : LWindow, IDisposable
{
private static readonly IReadOnlyList<PluginInfo> RequiredPlugins =
[
new("vnavmesh",
"""
vnavmesh handles the navigation within a zone, moving
your character to the next quest-related objective.
""",
new Uri("https://github.com/awgil/ffxiv_navmesh/")),
new("Lifestream",
"""
Used to travel to aethernet shards in cities.
""",
new Uri("https://github.com/NightmareXIV/Lifestream")),
new("TextAdvance",
"""
Automatically accepts and turns in quests, skips cutscenes
and dialogue.
""",
new Uri("https://github.com/NightmareXIV/TextAdvance")),
];
private static readonly IReadOnlyList<PluginInfo> RecommendedPlugins =
[
new("Rotation Solver Reborn",
"""
Automatically handles most combat interactions you encounter
during quests, including being interrupted by mobs.
""",
new Uri("https://github.com/FFXIV-CombatReborn/RotationSolverReborn")),
new("NotificationMaster",
"""
Sends a configurable out-of-game notification if a quest
requires manual actions.
""",
new Uri("https://github.com/NightmareXIV/NotificationMaster")),
];
private readonly Configuration _configuration;
private readonly IDalamudPluginInterface _pluginInterface;
private readonly UiUtils _uiUtils;
private readonly DalamudReflector _dalamudReflector;
private readonly ILogger<OneTimeSetupWindow> _logger;
public OneTimeSetupWindow(Configuration configuration, IDalamudPluginInterface pluginInterface, UiUtils uiUtils,
DalamudReflector dalamudReflector, ILogger<OneTimeSetupWindow> logger)
: base("Questionable Setup###QuestionableOneTimeSetup",
ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings, true)
{
_configuration = configuration;
_pluginInterface = pluginInterface;
_uiUtils = uiUtils;
_dalamudReflector = dalamudReflector;
_logger = logger;
RespectCloseHotkey = false;
ShowCloseButton = false;
AllowPinning = false;
AllowClickthrough = false;
IsOpen = !_configuration.IsPluginSetupComplete();
_logger.LogInformation("One-time setup needed: {IsOpen}", IsOpen);
}
public override void Draw()
{
float checklistPadding;
using (_pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push())
{
checklistPadding = ImGui.CalcTextSize(FontAwesomeIcon.Check.ToIconString()).X +
ImGui.GetStyle().ItemSpacing.X;
}
ImGui.Text("Questionable requires the following plugins to work:");
bool allRequiredInstalled = true;
using (ImRaii.PushIndent())
{
foreach (var plugin in RequiredPlugins)
allRequiredInstalled &= DrawPlugin(plugin, checklistPadding);
}
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
ImGui.Text("The following plugins are recommended, but not required:");
using (ImRaii.PushIndent())
{
foreach (var plugin in RecommendedPlugins)
DrawPlugin(plugin, checklistPadding);
}
ImGui.Spacing();
ImGui.Separator();
ImGui.Spacing();
if (allRequiredInstalled)
{
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.ParsedGreen))
{
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Finish Setup"))
{
_logger.LogInformation("Marking setup as complete");
_configuration.MarkPluginSetupComplete();
_pluginInterface.SavePluginConfig(_configuration);
IsOpen = false;
}
}
}
else
{
using (ImRaii.Disabled())
{
using (ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed))
ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Check, "Missing required plugins");
}
}
ImGui.SameLine();
if (ImGuiComponents.IconButtonWithText(FontAwesomeIcon.Times, "Close window & don't enable Questionable"))
{
_logger.LogWarning("Closing window without all required plugins installed");
IsOpen = false;
}
}
private bool DrawPlugin(PluginInfo plugin, float checklistPadding)
{
bool isInstalled = IsPluginInstalled(plugin.DisplayName);
using (ImRaii.PushId("plugin_" + plugin.DisplayName))
{
_uiUtils.ChecklistItem(plugin.DisplayName, isInstalled);
using (ImRaii.PushIndent(checklistPadding))
{
ImGui.TextUnformatted(plugin.Details);
if (!isInstalled && ImGui.Button("Open Repository"))
Util.OpenLink(plugin.Uri.ToString());
}
}
return isInstalled;
}
private bool IsPluginInstalled(string internalName)
{
return _dalamudReflector.TryGetDalamudPlugin(internalName, out _, suppressErrors: true, ignoreCache: true);
}
public void Dispose()
{
}
private sealed record PluginInfo(
string DisplayName,
string Details,
Uri Uri);
}

View File

@ -29,7 +29,9 @@ namespace Questionable.Windows.QuestComponents;
internal sealed class CreationUtilsComponent internal sealed class CreationUtilsComponent
{ {
#if false
private readonly QuestController _questController; private readonly QuestController _questController;
#endif
private readonly MovementController _movementController; private readonly MovementController _movementController;
private readonly GameFunctions _gameFunctions; private readonly GameFunctions _gameFunctions;
private readonly QuestFunctions _questFunctions; private readonly QuestFunctions _questFunctions;
@ -44,7 +46,9 @@ internal sealed class CreationUtilsComponent
private readonly ILogger<CreationUtilsComponent> _logger; private readonly ILogger<CreationUtilsComponent> _logger;
public CreationUtilsComponent( public CreationUtilsComponent(
#if false
QuestController questController, QuestController questController,
#endif
MovementController movementController, MovementController movementController,
GameFunctions gameFunctions, GameFunctions gameFunctions,
QuestFunctions questFunctions, QuestFunctions questFunctions,
@ -58,7 +62,9 @@ internal sealed class CreationUtilsComponent
Configuration configuration, Configuration configuration,
ILogger<CreationUtilsComponent> logger) ILogger<CreationUtilsComponent> logger)
{ {
#if false
_questController = questController; _questController = questController;
#endif
_movementController = movementController; _movementController = movementController;
_gameFunctions = gameFunctions; _gameFunctions = gameFunctions;
_questFunctions = questFunctions; _questFunctions = questFunctions;

View File

@ -113,6 +113,9 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
public override bool DrawConditions() public override bool DrawConditions()
{ {
if (!_configuration.IsPluginSetupComplete())
return false;
if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null || _clientState.IsPvPExcludingDen) if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null || _clientState.IsPvPExcludingDen)
return false; return false;

View File

@ -174,7 +174,7 @@
"gatheringpaths": { "gatheringpaths": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"Questionable.Model": "[3.10.0, )" "Questionable.Model": "[3.12.0, )"
} }
}, },
"llib": { "llib": {
@ -183,6 +183,9 @@
"DalamudPackager": "[2.1.13, )" "DalamudPackager": "[2.1.13, )"
} }
}, },
"notificationmasterapi": {
"type": "Project"
},
"questionable.model": { "questionable.model": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
@ -192,7 +195,7 @@
"questpaths": { "questpaths": {
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"Questionable.Model": "[3.10.0, )" "Questionable.Model": "[3.12.0, )"
} }
} }
} }

1
vendor/NotificationMasterAPI vendored Submodule

@ -0,0 +1 @@
Subproject commit 05b1ba788d5cb940ed8e82599eb88778c9cecdb0