forked from liza/Questionable
Combat (experimental) for overworld enemies, better quest list window, fix landing for certain quests, Kozama'uka quests
This commit is contained in:
parent
72c2858cae
commit
3800ce8b69
@ -32,7 +32,8 @@
|
|||||||
"EnemySpawnType": "AfterInteraction",
|
"EnemySpawnType": "AfterInteraction",
|
||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
11443
|
11443
|
||||||
]
|
],
|
||||||
|
"Fly": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -20,6 +20,16 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -466.72015,
|
||||||
|
"Y": 44.63006,
|
||||||
|
"Z": -310.0618
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1032140,
|
"DataId": 1032140,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -32,7 +42,25 @@
|
|||||||
"ChatMessage": {
|
"ChatMessage": {
|
||||||
"Key": "TEXT_BANPIX103_03691_SAYTODO_000_030"
|
"Key": "TEXT_BANPIX103_03691_SAYTODO_000_030"
|
||||||
},
|
},
|
||||||
"Fly": true
|
"SkipIf": [
|
||||||
|
"NotTargetable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1032142,
|
||||||
|
"Position": {
|
||||||
|
"X": -472.7398,
|
||||||
|
"Y": 50.10258,
|
||||||
|
"Z": -328.26733
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Say",
|
||||||
|
"ChatMessage": {
|
||||||
|
"Key": "TEXT_BANPIX103_03691_SAYTODO_000_030"
|
||||||
|
},
|
||||||
|
"SkipIf": [
|
||||||
|
"NotTargetable"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
## Sharing is Caring
|
||||||
|
|
||||||
|
QuestWork:
|
||||||
|
```
|
||||||
|
0 0 0 x 0 0
|
||||||
|
2 → 1032142
|
||||||
|
|
||||||
|
unknown
|
||||||
|
? → 1032140
|
||||||
|
```
|
@ -29,15 +29,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 816,
|
"TerritoryId": 816,
|
||||||
"InteractionType": "WalkTo",
|
"InteractionType": "WalkTo",
|
||||||
"Fly": true,
|
"Fly": true
|
||||||
"CompletionQuestVariablesFlags": [
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
-128
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 2010860,
|
"DataId": 2010860,
|
||||||
@ -48,13 +40,8 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 816,
|
"TerritoryId": 816,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
"CompletionQuestVariablesFlags": [
|
"SkipIf": [
|
||||||
null,
|
"NotTargetable"
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
128
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -83,6 +70,20 @@
|
|||||||
"NotTargetable"
|
"NotTargetable"
|
||||||
],
|
],
|
||||||
"IgnoreDistanceToObject": true
|
"IgnoreDistanceToObject": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2010862,
|
||||||
|
"Position": {
|
||||||
|
"X": -276.96655,
|
||||||
|
"Y": 42.893066,
|
||||||
|
"Z": 453.6659
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"SkipIf": [
|
||||||
|
"NotTargetable"
|
||||||
|
],
|
||||||
|
"IgnoreDistanceToObject": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
## The Aesthetician of Il Mheg
|
||||||
|
|
||||||
|
QuestWork:
|
||||||
|
```
|
||||||
|
0 x 0 0 0 0
|
||||||
|
5 → 2010861, 2010862
|
||||||
|
```
|
@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1031809,
|
||||||
|
"Position": {
|
||||||
|
"X": -454.3069,
|
||||||
|
"Y": 71.43217,
|
||||||
|
"Z": 575.1278
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2010894,
|
||||||
|
"Position": {
|
||||||
|
"X": 268.51294,
|
||||||
|
"Y": 33.707153,
|
||||||
|
"Z": -78.14148
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
11448
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1031809,
|
||||||
|
"Position": {
|
||||||
|
"X": -454.3069,
|
||||||
|
"Y": 71.43217,
|
||||||
|
"Z": 575.1278
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Il Mheg - Lydha Lran",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1031809,
|
||||||
|
"Position": {
|
||||||
|
"X": -454.3069,
|
||||||
|
"Y": 71.43217,
|
||||||
|
"Z": 575.1278
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1032261,
|
||||||
|
"Position": {
|
||||||
|
"X": -258.38104,
|
||||||
|
"Y": 50.977943,
|
||||||
|
"Z": 601.2206
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2010895,
|
||||||
|
"Position": {
|
||||||
|
"X": 718.28796,
|
||||||
|
"Y": 188.06738,
|
||||||
|
"Z": 296.77258
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2010897,
|
||||||
|
"Position": {
|
||||||
|
"X": 769.0698,
|
||||||
|
"Y": 191.60742,
|
||||||
|
"Z": 251.88062
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1032261,
|
||||||
|
"Position": {
|
||||||
|
"X": -258.38104,
|
||||||
|
"Y": 50.977943,
|
||||||
|
"Z": 601.2206
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Il Mheg - Lydha Lran",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1031809,
|
||||||
|
"Position": {
|
||||||
|
"X": -454.3069,
|
||||||
|
"Y": 71.43217,
|
||||||
|
"Z": 575.1278
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1031809,
|
||||||
|
"Position": {
|
||||||
|
"X": -454.3069,
|
||||||
|
"Y": 71.43217,
|
||||||
|
"Z": 575.1278
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2010900,
|
||||||
|
"Position": {
|
||||||
|
"X": 787.92993,
|
||||||
|
"Y": 187.33496,
|
||||||
|
"Z": 174.33423
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 743.3476,
|
||||||
|
"Y": 186.89098,
|
||||||
|
"Z": 193.8602
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Comment": "TODO it probably isn't necessary to walk that far"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1031809,
|
||||||
|
"Position": {
|
||||||
|
"X": -454.3069,
|
||||||
|
"Y": 71.43217,
|
||||||
|
"Z": 575.1278
|
||||||
|
},
|
||||||
|
"TerritoryId": 816,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Il Mheg - Lydha Lran",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -33,7 +33,8 @@
|
|||||||
"KillEnemyDataIds": [
|
"KillEnemyDataIds": [
|
||||||
14674,
|
14674,
|
||||||
14675
|
14675
|
||||||
]
|
],
|
||||||
|
"Fly": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
},
|
},
|
||||||
"TerritoryId": 957,
|
"TerritoryId": 957,
|
||||||
"InteractionType": "Interact",
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
"CompletionQuestVariablesFlags": [
|
"CompletionQuestVariablesFlags": [
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1042301,
|
||||||
|
"Position": {
|
||||||
|
"X": -66.02582,
|
||||||
|
"Y": 39.994705,
|
||||||
|
"Z": 321.06494
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1042390,
|
||||||
|
"Position": {
|
||||||
|
"X": 376.089,
|
||||||
|
"Y": 3.1168795,
|
||||||
|
"Z": -241.77924
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Thavnair - Palaka's Stand",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1042389,
|
||||||
|
"Position": {
|
||||||
|
"X": -416.31195,
|
||||||
|
"Y": 10.9610405,
|
||||||
|
"Z": 11.48999
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Thavnair - Great Work",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1042301,
|
||||||
|
"Position": {
|
||||||
|
"X": -66.02582,
|
||||||
|
"Y": 39.994705,
|
||||||
|
"Z": 321.06494
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1042301,
|
||||||
|
"Position": {
|
||||||
|
"X": -66.02582,
|
||||||
|
"Y": 39.994705,
|
||||||
|
"Z": 321.06494
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2012884,
|
||||||
|
"Position": {
|
||||||
|
"X": 111.46704,
|
||||||
|
"Y": 5.935669,
|
||||||
|
"Z": -294.36182
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 2003420,
|
||||||
|
"Fly": true,
|
||||||
|
"AetheryteShortcut": "Thavnair - Palaka's Stand"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2012884,
|
||||||
|
"Position": {
|
||||||
|
"X": 111.46704,
|
||||||
|
"Y": 5.935669,
|
||||||
|
"Z": -294.36182
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1042301,
|
||||||
|
"Position": {
|
||||||
|
"X": -66.02582,
|
||||||
|
"Y": 39.994705,
|
||||||
|
"Z": 321.06494
|
||||||
|
},
|
||||||
|
"TerritoryId": 957,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -129,7 +129,7 @@
|
|||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
32
|
-32
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,136 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048779,
|
||||||
|
"Position": {
|
||||||
|
"X": -231.15894,
|
||||||
|
"Y": 3.221878,
|
||||||
|
"Z": -453.17773
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -93.41179,
|
||||||
|
"Y": 15.238003,
|
||||||
|
"Z": -677.9412
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014160,
|
||||||
|
"Position": {
|
||||||
|
"X": -95.23157,
|
||||||
|
"Y": 16.464417,
|
||||||
|
"Z": -677.8821
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 183.02583,
|
||||||
|
"Y": -0.40592146,
|
||||||
|
"Z": -568.2219
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014163,
|
||||||
|
"Position": {
|
||||||
|
"X": 181.8722,
|
||||||
|
"Y": 0.99176025,
|
||||||
|
"Z": -568.5359
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 2003626,
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014161,
|
||||||
|
"Position": {
|
||||||
|
"X": 221.57617,
|
||||||
|
"Y": 0.99176025,
|
||||||
|
"Z": -610.7423
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 2003626,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014162,
|
||||||
|
"Position": {
|
||||||
|
"X": 244.953,
|
||||||
|
"Y": 1.1138916,
|
||||||
|
"Z": -569.2684
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "UseItem",
|
||||||
|
"ItemId": 2003626,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048779,
|
||||||
|
"Position": {
|
||||||
|
"X": -231.15894,
|
||||||
|
"Y": 3.221878,
|
||||||
|
"Z": -453.17773
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048780,
|
||||||
|
"Position": {
|
||||||
|
"X": -103.868225,
|
||||||
|
"Y": 25.199324,
|
||||||
|
"Z": -525.41394
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -95.05529,
|
||||||
|
"Y": 25.199324,
|
||||||
|
"Z": -523.8404
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Mount": true,
|
||||||
|
"SkipIf": [
|
||||||
|
"FlyingLocked"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014195,
|
||||||
|
"Position": {
|
||||||
|
"X": -314.2901,
|
||||||
|
"Y": 0.38146973,
|
||||||
|
"Z": -211.26117
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17656
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048780,
|
||||||
|
"Position": {
|
||||||
|
"X": -103.868225,
|
||||||
|
"Y": 25.199324,
|
||||||
|
"Z": -525.41394
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048781,
|
||||||
|
"Position": {
|
||||||
|
"X": -213.09229,
|
||||||
|
"Y": 6.2771482,
|
||||||
|
"Z": -510.70422
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014196,
|
||||||
|
"Position": {
|
||||||
|
"X": 728.7556,
|
||||||
|
"Y": 8.010925,
|
||||||
|
"Z": -287.95306
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17657,
|
||||||
|
17658
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048781,
|
||||||
|
"Position": {
|
||||||
|
"X": -213.09229,
|
||||||
|
"Y": 6.2771482,
|
||||||
|
"Z": -510.70422
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,98 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048815,
|
||||||
|
"Position": {
|
||||||
|
"X": 127.03125,
|
||||||
|
"Y": 3.8414035,
|
||||||
|
"Z": -279.92682
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014165,
|
||||||
|
"Position": {
|
||||||
|
"X": 255.57336,
|
||||||
|
"Y": -0.015319824,
|
||||||
|
"Z": -350.57605
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014166,
|
||||||
|
"Position": {
|
||||||
|
"X": 198.74878,
|
||||||
|
"Y": -0.015319824,
|
||||||
|
"Z": -385.39716
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014164,
|
||||||
|
"Position": {
|
||||||
|
"X": 92.69849,
|
||||||
|
"Y": -0.015319824,
|
||||||
|
"Z": -409.26227
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048821,
|
||||||
|
"Position": {
|
||||||
|
"X": -39.35309,
|
||||||
|
"Y": 21.48717,
|
||||||
|
"Z": -69.44385
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,98 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048831,
|
||||||
|
"Position": {
|
||||||
|
"X": 252.76562,
|
||||||
|
"Y": 13.481276,
|
||||||
|
"Z": -579.30884
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048786,
|
||||||
|
"Position": {
|
||||||
|
"X": -193.3471,
|
||||||
|
"Y": 6.277148,
|
||||||
|
"Z": -443.50348
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048787,
|
||||||
|
"Position": {
|
||||||
|
"X": -143.51111,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -425.7115
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048785,
|
||||||
|
"Position": {
|
||||||
|
"X": -121.26343,
|
||||||
|
"Y": 9.773314,
|
||||||
|
"Z": -551.1406
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048831,
|
||||||
|
"Position": {
|
||||||
|
"X": 252.76562,
|
||||||
|
"Y": 13.481276,
|
||||||
|
"Z": -579.30884
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048836,
|
||||||
|
"Position": {
|
||||||
|
"X": -578.91205,
|
||||||
|
"Y": 6.1739964,
|
||||||
|
"Z": -472.80084
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048837,
|
||||||
|
"Position": {
|
||||||
|
"X": -613.2754,
|
||||||
|
"Y": 93.595924,
|
||||||
|
"Z": -476.95123
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -607.3569,
|
||||||
|
"Y": 93.57029,
|
||||||
|
"Z": -472.15475
|
||||||
|
},
|
||||||
|
"StopDistance": 0.5,
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Emote",
|
||||||
|
"Emote": "pray"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -585.36694,
|
||||||
|
"Y": 6.317712,
|
||||||
|
"Z": -463.53406
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"DisableNavmesh": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048836,
|
||||||
|
"Position": {
|
||||||
|
"X": -578.91205,
|
||||||
|
"Y": 6.1739964,
|
||||||
|
"Z": -472.80084
|
||||||
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048783,
|
||||||
|
"Position": {
|
||||||
|
"X": -269.91687,
|
||||||
|
"Y": 5.9870257,
|
||||||
|
"Z": -431.47937
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050705,
|
||||||
|
"Position": {
|
||||||
|
"X": -218.24988,
|
||||||
|
"Y": 0.4,
|
||||||
|
"Z": -41.519836
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17659
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050705,
|
||||||
|
"Position": {
|
||||||
|
"X": -218.24988,
|
||||||
|
"Y": 0.4,
|
||||||
|
"Z": -41.519836
|
||||||
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048783,
|
||||||
|
"Position": {
|
||||||
|
"X": -269.91687,
|
||||||
|
"Y": 5.9870257,
|
||||||
|
"Z": -431.47937
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050707,
|
||||||
|
"Position": {
|
||||||
|
"X": -183.73395,
|
||||||
|
"Y": 10.893587,
|
||||||
|
"Z": -584.2832
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014172,
|
||||||
|
"Position": {
|
||||||
|
"X": -70.96979,
|
||||||
|
"Y": 6.515503,
|
||||||
|
"Z": -496.2692
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 623.9169,
|
||||||
|
"Y": 46.050114,
|
||||||
|
"Z": -526.32715
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipIf": [
|
||||||
|
"FlyingLocked"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014173,
|
||||||
|
"Position": {
|
||||||
|
"X": 670.5576,
|
||||||
|
"Y": 42.923584,
|
||||||
|
"Z": -515.55664
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050707,
|
||||||
|
"Position": {
|
||||||
|
"X": -183.73395,
|
||||||
|
"Y": 10.893587,
|
||||||
|
"Z": -584.2832
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048784,
|
||||||
|
"Position": {
|
||||||
|
"X": -115.617676,
|
||||||
|
"Y": 25.086319,
|
||||||
|
"Z": -551.5984
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048898,
|
||||||
|
"Position": {
|
||||||
|
"X": 524.1931,
|
||||||
|
"Y": 15.639493,
|
||||||
|
"Z": 5.4473877
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048897,
|
||||||
|
"Position": {
|
||||||
|
"X": 551.6593,
|
||||||
|
"Y": 12.326415,
|
||||||
|
"Z": -32.852783
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048896,
|
||||||
|
"Position": {
|
||||||
|
"X": 513.0541,
|
||||||
|
"Y": 15.9776535,
|
||||||
|
"Z": -54.36792
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048784,
|
||||||
|
"Position": {
|
||||||
|
"X": -115.617676,
|
||||||
|
"Y": 25.086319,
|
||||||
|
"Z": -551.5984
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051372,
|
||||||
|
"Position": {
|
||||||
|
"X": -183.79492,
|
||||||
|
"Y": 6.5185943,
|
||||||
|
"Z": -498.0392
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051373,
|
||||||
|
"Position": {
|
||||||
|
"X": -232.07446,
|
||||||
|
"Y": 10.1700535,
|
||||||
|
"Z": -395.68176
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051374,
|
||||||
|
"Position": {
|
||||||
|
"X": -229.02264,
|
||||||
|
"Y": 10.041226,
|
||||||
|
"Z": -396.2005
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048853,
|
||||||
|
"Position": {
|
||||||
|
"X": -431.99817,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 304.3412
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014174,
|
||||||
|
"Position": {
|
||||||
|
"X": -756.89325,
|
||||||
|
"Y": 135.66797,
|
||||||
|
"Z": 83.78723
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014175,
|
||||||
|
"Position": {
|
||||||
|
"X": -786.3432,
|
||||||
|
"Y": 135.66797,
|
||||||
|
"Z": 121.9043
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048853,
|
||||||
|
"Position": {
|
||||||
|
"X": -431.99817,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 304.3412
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048867,
|
||||||
|
"Position": {
|
||||||
|
"X": -489.0364,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 368.00183
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -298.1575,
|
||||||
|
"Y": 112.88461,
|
||||||
|
"Z": 684.6612
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1050708,
|
||||||
|
"Position": {
|
||||||
|
"X": -296.52863,
|
||||||
|
"Y": 112.804924,
|
||||||
|
"Z": 686.2439
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014176,
|
||||||
|
"Position": {
|
||||||
|
"X": -127.15344,
|
||||||
|
"Y": 109.57495,
|
||||||
|
"Z": 523.7964
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -298.1575,
|
||||||
|
"Y": 112.88461,
|
||||||
|
"Z": 684.6612
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1050708,
|
||||||
|
"Position": {
|
||||||
|
"X": -296.52863,
|
||||||
|
"Y": 112.804924,
|
||||||
|
"Z": 686.2439
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048867,
|
||||||
|
"Position": {
|
||||||
|
"X": -489.0364,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 368.00183
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,118 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048854,
|
||||||
|
"Position": {
|
||||||
|
"X": -514.1833,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 293.38513
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014177,
|
||||||
|
"Position": {
|
||||||
|
"X": -351.40002,
|
||||||
|
"Y": 109.57495,
|
||||||
|
"Z": 62.210938
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014178,
|
||||||
|
"Position": {
|
||||||
|
"X": -172.32019,
|
||||||
|
"Y": 109.54443,
|
||||||
|
"Z": 128.67932
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014179,
|
||||||
|
"Position": {
|
||||||
|
"X": 142.96167,
|
||||||
|
"Y": 109.57495,
|
||||||
|
"Z": 169.604
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014180,
|
||||||
|
"Position": {
|
||||||
|
"X": 214.86218,
|
||||||
|
"Y": 109.54443,
|
||||||
|
"Z": 138.68921
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048854,
|
||||||
|
"Position": {
|
||||||
|
"X": -514.1833,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 293.38513
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,121 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048856,
|
||||||
|
"Position": {
|
||||||
|
"X": -499.6262,
|
||||||
|
"Y": 121.63344,
|
||||||
|
"Z": 347.70728
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -74.84617,
|
||||||
|
"Y": 116.64437,
|
||||||
|
"Z": 590.74945
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipIf": [
|
||||||
|
"FlyingLocked"
|
||||||
|
],
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
-32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014184,
|
||||||
|
"Position": {
|
||||||
|
"X": -5.1728516,
|
||||||
|
"Y": -6.729248,
|
||||||
|
"Z": 619.98914
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"DisableNavmesh": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014182,
|
||||||
|
"Position": {
|
||||||
|
"X": 112.93201,
|
||||||
|
"Y": -2.7314453,
|
||||||
|
"Z": 542.9617
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014183,
|
||||||
|
"Position": {
|
||||||
|
"X": 266.3462,
|
||||||
|
"Y": -1.9684448,
|
||||||
|
"Z": 498.58838
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048856,
|
||||||
|
"Position": {
|
||||||
|
"X": -499.6262,
|
||||||
|
"Y": 121.63344,
|
||||||
|
"Z": 347.70728
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048857,
|
||||||
|
"Position": {
|
||||||
|
"X": -515.7092,
|
||||||
|
"Y": 122.40314,
|
||||||
|
"Z": 342.9159
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048843,
|
||||||
|
"Position": {
|
||||||
|
"X": 588.7998,
|
||||||
|
"Y": 121.14124,
|
||||||
|
"Z": 176.98938
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048857,
|
||||||
|
"Position": {
|
||||||
|
"X": -515.7092,
|
||||||
|
"Y": 122.40314,
|
||||||
|
"Z": 342.9159
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048858,
|
||||||
|
"Position": {
|
||||||
|
"X": -426.87115,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 320.88184
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014185,
|
||||||
|
"Position": {
|
||||||
|
"X": -427.38995,
|
||||||
|
"Y": 122.91138,
|
||||||
|
"Z": 319.38647
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014187,
|
||||||
|
"Position": {
|
||||||
|
"X": -548.2719,
|
||||||
|
"Y": 133.83679,
|
||||||
|
"Z": 698.1765
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048880,
|
||||||
|
"Position": {
|
||||||
|
"X": -552.3613,
|
||||||
|
"Y": 133.86514,
|
||||||
|
"Z": 696.16235
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048858,
|
||||||
|
"Position": {
|
||||||
|
"X": -426.87115,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 320.88184
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,116 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048843,
|
||||||
|
"Position": {
|
||||||
|
"X": 588.7998,
|
||||||
|
"Y": 121.14124,
|
||||||
|
"Z": 176.98938
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048847,
|
||||||
|
"Position": {
|
||||||
|
"X": 615.2589,
|
||||||
|
"Y": 119.49003,
|
||||||
|
"Z": 197.58899
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048845,
|
||||||
|
"Position": {
|
||||||
|
"X": 568.7495,
|
||||||
|
"Y": 119.49004,
|
||||||
|
"Z": 159.53308
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048846,
|
||||||
|
"Position": {
|
||||||
|
"X": 512.2606,
|
||||||
|
"Y": 114.99095,
|
||||||
|
"Z": 183.85596
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048844,
|
||||||
|
"Position": {
|
||||||
|
"X": 476.40186,
|
||||||
|
"Y": 119.9383,
|
||||||
|
"Z": 101.79285
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048843,
|
||||||
|
"Position": {
|
||||||
|
"X": 588.7998,
|
||||||
|
"Y": 121.14124,
|
||||||
|
"Z": 176.98938
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048848,
|
||||||
|
"Position": {
|
||||||
|
"X": 621.51514,
|
||||||
|
"Y": 119.49004,
|
||||||
|
"Z": 175.00574
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 444.93774,
|
||||||
|
"Y": 112.59213,
|
||||||
|
"Z": 206.74438
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "OverworldEnemies",
|
||||||
|
"ComplexCombatData": [
|
||||||
|
{
|
||||||
|
"DataId": 17241,
|
||||||
|
"RewardItemId": 2003643,
|
||||||
|
"RewardItemCount": 1,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"$": "16 0 16 0 0 0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -21.622044,
|
||||||
|
"Y": 109.937355,
|
||||||
|
"Z": 217.64447
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "OverworldEnemies",
|
||||||
|
"ComplexCombatData": [
|
||||||
|
{
|
||||||
|
"DataId": 17242,
|
||||||
|
"RewardItemId": 2003642,
|
||||||
|
"RewardItemCount": 1,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
1,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
1,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
],
|
||||||
|
"$": "16 1 0 0 0 0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048848,
|
||||||
|
"Position": {
|
||||||
|
"X": 621.51514,
|
||||||
|
"Y": 119.49004,
|
||||||
|
"Z": 175.00574
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050714,
|
||||||
|
"Position": {
|
||||||
|
"X": 495.6587,
|
||||||
|
"Y": 113.678986,
|
||||||
|
"Z": 181.23132
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014189,
|
||||||
|
"Position": {
|
||||||
|
"X": 194.93396,
|
||||||
|
"Y": 109.4834,
|
||||||
|
"Z": 145.25061
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014191,
|
||||||
|
"Position": {
|
||||||
|
"X": 53.3302,
|
||||||
|
"Y": 109.17822,
|
||||||
|
"Z": 246.3263
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014190,
|
||||||
|
"Position": {
|
||||||
|
"X": -19.119629,
|
||||||
|
"Y": 109.57495,
|
||||||
|
"Z": 182.02478
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1050714,
|
||||||
|
"Position": {
|
||||||
|
"X": 495.6587,
|
||||||
|
"Y": 113.678986,
|
||||||
|
"Z": 181.23132
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051243,
|
||||||
|
"Position": {
|
||||||
|
"X": -128.893,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -416.95276
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051244,
|
||||||
|
"Position": {
|
||||||
|
"X": 224.01758,
|
||||||
|
"Y": 10.257621,
|
||||||
|
"Z": -570.64166
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014281,
|
||||||
|
"Position": {
|
||||||
|
"X": 222.58337,
|
||||||
|
"Y": 10.72699,
|
||||||
|
"Z": -568.44434
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 37.763844,
|
||||||
|
"Y": 1.8493831,
|
||||||
|
"Z": -555.61774
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "WalkTo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 2014284,
|
||||||
|
"Position": {
|
||||||
|
"X": -123.30823,
|
||||||
|
"Y": 9.84198,
|
||||||
|
"Z": -419.11957
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051243,
|
||||||
|
"Position": {
|
||||||
|
"X": -128.893,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -416.95276
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051246,
|
||||||
|
"Position": {
|
||||||
|
"X": -127.45862,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -419.6994
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"NextQuestId": 5083
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051243,
|
||||||
|
"Position": {
|
||||||
|
"X": -128.893,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -416.95276
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051247,
|
||||||
|
"Position": {
|
||||||
|
"X": 341.66467,
|
||||||
|
"Y": 9.178029,
|
||||||
|
"Z": -213.15332
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014198,
|
||||||
|
"Position": {
|
||||||
|
"X": 438.04077,
|
||||||
|
"Y": -0.015319824,
|
||||||
|
"Z": -395.43762
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AfterInteraction",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17661
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014286,
|
||||||
|
"Position": {
|
||||||
|
"X": 440.78735,
|
||||||
|
"Y": 1.1749268,
|
||||||
|
"Z": -397.1161
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051247,
|
||||||
|
"Position": {
|
||||||
|
"X": 341.66467,
|
||||||
|
"Y": 9.178029,
|
||||||
|
"Z": -213.15332
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051251,
|
||||||
|
"Position": {
|
||||||
|
"X": 654.7798,
|
||||||
|
"Y": 26.32866,
|
||||||
|
"Z": -490.95905
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"NextQuestId": 5084
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,154 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051252,
|
||||||
|
"Position": {
|
||||||
|
"X": 654.6272,
|
||||||
|
"Y": 26.32866,
|
||||||
|
"Z": -491.02008
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_KINGZC204_05084_Q1_000_100",
|
||||||
|
"Answer": "TEXT_KINGZC204_05084_A2_000_100"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051253,
|
||||||
|
"Position": {
|
||||||
|
"X": -122.972534,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -421.1643
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048786,
|
||||||
|
"Position": {
|
||||||
|
"X": -193.3471,
|
||||||
|
"Y": 6.277148,
|
||||||
|
"Z": -443.50348
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048783,
|
||||||
|
"Position": {
|
||||||
|
"X": -269.91687,
|
||||||
|
"Y": 5.9870257,
|
||||||
|
"Z": -431.47937
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DataId": 1048785,
|
||||||
|
"Position": {
|
||||||
|
"X": -121.26343,
|
||||||
|
"Y": 9.773314,
|
||||||
|
"Z": -551.1406
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051255,
|
||||||
|
"Position": {
|
||||||
|
"X": -128.98456,
|
||||||
|
"Y": 9.84216,
|
||||||
|
"Z": -420.58447
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051258,
|
||||||
|
"Position": {
|
||||||
|
"X": 658.7167,
|
||||||
|
"Y": 5.2940493,
|
||||||
|
"Z": -335.07288
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051261,
|
||||||
|
"Position": {
|
||||||
|
"X": -130.9682,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -416.58655
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051265,
|
||||||
|
"Position": {
|
||||||
|
"X": -444.78522,
|
||||||
|
"Y": 122.89024,
|
||||||
|
"Z": 342.8855
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1048850,
|
||||||
|
"Position": {
|
||||||
|
"X": -472.5567,
|
||||||
|
"Y": 121.77377,
|
||||||
|
"Z": 271.229
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051263,
|
||||||
|
"Position": {
|
||||||
|
"X": -521.0193,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 319.38647
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051265,
|
||||||
|
"Position": {
|
||||||
|
"X": -444.78522,
|
||||||
|
"Y": 122.89024,
|
||||||
|
"Z": 342.8855
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051263,
|
||||||
|
"Position": {
|
||||||
|
"X": -521.0193,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 319.38647
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"NextQuestId": 5087
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051263,
|
||||||
|
"Position": {
|
||||||
|
"X": -521.0193,
|
||||||
|
"Y": 121.63345,
|
||||||
|
"Z": 319.38647
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051266,
|
||||||
|
"Position": {
|
||||||
|
"X": 565.8197,
|
||||||
|
"Y": 115.49999,
|
||||||
|
"Z": 195.30017
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 627.93854,
|
||||||
|
"Y": 110.09355,
|
||||||
|
"Z": 334.26776
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "OverworldEnemies",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17244
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051266,
|
||||||
|
"Position": {
|
||||||
|
"X": 565.8197,
|
||||||
|
"Y": 115.49999,
|
||||||
|
"Z": 195.30017
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051267,
|
||||||
|
"Position": {
|
||||||
|
"X": -447.5014,
|
||||||
|
"Y": 122.95055,
|
||||||
|
"Z": 343.099
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire",
|
||||||
|
"NextQuestId": 5088
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,127 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051267,
|
||||||
|
"Position": {
|
||||||
|
"X": -447.5014,
|
||||||
|
"Y": 122.95055,
|
||||||
|
"Z": 343.099
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_KINGZC304_05088_Q1_000_100",
|
||||||
|
"Answer": "TEXT_KINGZC304_05088_A2_000_100"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014289,
|
||||||
|
"Position": {
|
||||||
|
"X": -422.50708,
|
||||||
|
"Y": 122.88086,
|
||||||
|
"Z": 338.88757
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Mount": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 2014290,
|
||||||
|
"Position": {
|
||||||
|
"X": -519.4629,
|
||||||
|
"Y": 123.88794,
|
||||||
|
"Z": 252.61304
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -759,
|
||||||
|
"Y": 129.30363,
|
||||||
|
"Z": 237.35704
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Combat",
|
||||||
|
"EnemySpawnType": "AutoOnEnterArea",
|
||||||
|
"KillEnemyDataIds": [
|
||||||
|
17662
|
||||||
|
],
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051268,
|
||||||
|
"Position": {
|
||||||
|
"X": -756.80176,
|
||||||
|
"Y": 129.29285,
|
||||||
|
"Z": 240.7721
|
||||||
|
},
|
||||||
|
"StopDistance": 7,
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051269,
|
||||||
|
"Position": {
|
||||||
|
"X": -566.73535,
|
||||||
|
"Y": 133.78297,
|
||||||
|
"Z": 721.3396
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051267,
|
||||||
|
"Position": {
|
||||||
|
"X": -447.5014,
|
||||||
|
"Y": 122.95055,
|
||||||
|
"Z": 343.099
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest",
|
||||||
|
"NextQuestId": 5089,
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,132 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://carvel.li/questionable/quest-1.0",
|
||||||
|
"Author": "liza",
|
||||||
|
"QuestSequence": [
|
||||||
|
{
|
||||||
|
"Sequence": 0,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051271,
|
||||||
|
"Position": {
|
||||||
|
"X": -447.04358,
|
||||||
|
"Y": 122.95054,
|
||||||
|
"Z": 343.4348
|
||||||
|
},
|
||||||
|
"StopDistance": 5,
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "AcceptQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 1,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051273,
|
||||||
|
"Position": {
|
||||||
|
"X": 565.54517,
|
||||||
|
"Y": 115.5,
|
||||||
|
"Z": 193.22498
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Many Fires"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 2,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051275,
|
||||||
|
"Position": {
|
||||||
|
"X": -645.7771,
|
||||||
|
"Y": 127.95559,
|
||||||
|
"Z": 661.76843
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Earthenshire",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 3,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051270,
|
||||||
|
"Position": {
|
||||||
|
"X": -565.2705,
|
||||||
|
"Y": 133.77481,
|
||||||
|
"Z": 720.7294
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true,
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "List",
|
||||||
|
"Prompt": "TEXT_KINGZC401_05089_Q1_000_100",
|
||||||
|
"Answer": "TEXT_KINGZC401_05089_A1_000_100"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 4,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051277,
|
||||||
|
"Position": {
|
||||||
|
"X": -647.0283,
|
||||||
|
"Y": 127.88751,
|
||||||
|
"Z": 660.57825
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"Fly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 5,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051278,
|
||||||
|
"Position": {
|
||||||
|
"X": -130.69354,
|
||||||
|
"Y": 9.84216,
|
||||||
|
"Z": -415.21326
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "Interact",
|
||||||
|
"AetheryteShortcut": "Kozama'uka - Ok'hanu",
|
||||||
|
"DialogueChoices": [
|
||||||
|
{
|
||||||
|
"Type": "YesNo",
|
||||||
|
"Prompt": "TEXT_KINGZC401_05089_Q100_000_100",
|
||||||
|
"Yes": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Sequence": 255,
|
||||||
|
"Steps": [
|
||||||
|
{
|
||||||
|
"DataId": 1051280,
|
||||||
|
"Position": {
|
||||||
|
"X": -125.20032,
|
||||||
|
"Y": 9.842161,
|
||||||
|
"Z": -418.08197
|
||||||
|
},
|
||||||
|
"TerritoryId": 1188,
|
||||||
|
"InteractionType": "CompleteQuest"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -415,35 +415,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"CompletionQuestVariablesFlags": {
|
"CompletionQuestVariablesFlags": {
|
||||||
"type": "array",
|
"$ref": "#/$defs/CompletionFlags"
|
||||||
"description": "Quest Variables that dictate whether or not this step is skipped: null is don't check, positive values need to be set, negative values need to be unset",
|
|
||||||
"items": {
|
|
||||||
"type": [
|
|
||||||
"integer",
|
|
||||||
"null"
|
|
||||||
],
|
|
||||||
"enum": [
|
|
||||||
null,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
8,
|
|
||||||
16,
|
|
||||||
32,
|
|
||||||
64,
|
|
||||||
128,
|
|
||||||
-1,
|
|
||||||
-2,
|
|
||||||
-4,
|
|
||||||
-8,
|
|
||||||
-16,
|
|
||||||
-32,
|
|
||||||
-64,
|
|
||||||
-128
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"minItems": 6,
|
|
||||||
"maxItems": 6
|
|
||||||
},
|
},
|
||||||
"DelaySecondsAtStart": {
|
"DelaySecondsAtStart": {
|
||||||
"description": "Time to wait before starting",
|
"description": "Time to wait before starting",
|
||||||
@ -567,12 +539,48 @@
|
|||||||
"items": {
|
"items": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"ComplexCombatData": {
|
||||||
|
"description": "If multiple different enemies are supposed to be killed in a single quest step, this typically is handled via items",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"DataId": {
|
||||||
|
"description": "The enemy data id which is supposed to be killed",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"RewardItemId": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"RewardItemCount": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"CompletionQuestVariablesFlags": {
|
||||||
|
"$ref": "#/$defs/CompletionFlags"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"DataId"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
"Position",
|
"Position",
|
||||||
"EnemySpawnType",
|
"EnemySpawnType"
|
||||||
"KillEnemyDataIds"
|
],
|
||||||
|
"oneOf": [
|
||||||
|
{
|
||||||
|
"required": [
|
||||||
|
"KillEnemyDataIds"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"required": [
|
||||||
|
"ComplexCombatData"
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1027,5 +1035,38 @@
|
|||||||
"QuestSequence",
|
"QuestSequence",
|
||||||
"Author"
|
"Author"
|
||||||
],
|
],
|
||||||
"additionalProperties": false
|
"additionalProperties": false,
|
||||||
|
"$defs": {
|
||||||
|
"CompletionFlags": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Quest Variables that dictate whether or not this step is skipped: null is don't check, positive values need to be set, negative values need to be unset",
|
||||||
|
"items": {
|
||||||
|
"type": [
|
||||||
|
"integer",
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"enum": [
|
||||||
|
null,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
16,
|
||||||
|
32,
|
||||||
|
64,
|
||||||
|
128,
|
||||||
|
-1,
|
||||||
|
-2,
|
||||||
|
-4,
|
||||||
|
-8,
|
||||||
|
-16,
|
||||||
|
-32,
|
||||||
|
-64,
|
||||||
|
-128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"minItems": 6,
|
||||||
|
"maxItems": 6
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
11
Questionable.Model/V1/ComplexCombatData.cs
Normal file
11
Questionable.Model/V1/ComplexCombatData.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Questionable.Model.V1;
|
||||||
|
|
||||||
|
public sealed class ComplexCombatData
|
||||||
|
{
|
||||||
|
public uint DataId { get; set; }
|
||||||
|
public uint? RewardItemId { get; set; }
|
||||||
|
public int? RewardItemCount { get; set; }
|
||||||
|
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>();
|
||||||
|
}
|
@ -47,6 +47,7 @@ public sealed class QuestStep
|
|||||||
|
|
||||||
public EEnemySpawnType? EnemySpawnType { get; set; }
|
public EEnemySpawnType? EnemySpawnType { get; set; }
|
||||||
public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>();
|
public IList<uint> KillEnemyDataIds { get; set; } = new List<uint>();
|
||||||
|
public IList<ComplexCombatData> ComplexCombatData { get; set; } = new List<ComplexCombatData>();
|
||||||
|
|
||||||
public JumpDestination? JumpDestination { get; set; }
|
public JumpDestination? JumpDestination { get; set; }
|
||||||
public uint? ContentFinderConditionId { get; set; }
|
public uint? ContentFinderConditionId { get; set; }
|
||||||
|
@ -6,9 +6,12 @@ using Dalamud.Game.ClientState.Objects;
|
|||||||
using Dalamud.Game.ClientState.Objects.Enums;
|
using Dalamud.Game.ClientState.Objects.Enums;
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Questionable.Controller.CombatModules;
|
using Questionable.Controller.CombatModules;
|
||||||
|
using Questionable.Controller.Utils;
|
||||||
|
using Questionable.Model.V1;
|
||||||
|
|
||||||
namespace Questionable.Controller;
|
namespace Questionable.Controller;
|
||||||
|
|
||||||
@ -19,18 +22,21 @@ internal sealed class CombatController
|
|||||||
private readonly IObjectTable _objectTable;
|
private readonly IObjectTable _objectTable;
|
||||||
private readonly ICondition _condition;
|
private readonly ICondition _condition;
|
||||||
private readonly IClientState _clientState;
|
private readonly IClientState _clientState;
|
||||||
|
private readonly GameFunctions _gameFunctions;
|
||||||
private readonly ILogger<CombatController> _logger;
|
private readonly ILogger<CombatController> _logger;
|
||||||
|
|
||||||
private CurrentFight? _currentFight;
|
private CurrentFight? _currentFight;
|
||||||
|
|
||||||
public CombatController(IEnumerable<ICombatModule> combatModules, ITargetManager targetManager,
|
public CombatController(IEnumerable<ICombatModule> combatModules, ITargetManager targetManager,
|
||||||
IObjectTable objectTable, ICondition condition, IClientState clientState, ILogger<CombatController> logger)
|
IObjectTable objectTable, ICondition condition, IClientState clientState, GameFunctions gameFunctions,
|
||||||
|
ILogger<CombatController> logger)
|
||||||
{
|
{
|
||||||
_combatModules = combatModules.ToList();
|
_combatModules = combatModules.ToList();
|
||||||
_targetManager = targetManager;
|
_targetManager = targetManager;
|
||||||
_objectTable = objectTable;
|
_objectTable = objectTable;
|
||||||
_condition = condition;
|
_condition = condition;
|
||||||
_clientState = clientState;
|
_clientState = clientState;
|
||||||
|
_gameFunctions = gameFunctions;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,6 +106,50 @@ internal sealed class CombatController
|
|||||||
|
|
||||||
private IGameObject? FindNextTarget()
|
private IGameObject? FindNextTarget()
|
||||||
{
|
{
|
||||||
|
if (_currentFight == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
// check if any complex combat conditions are fulfilled
|
||||||
|
var complexCombatData = _currentFight.Data.ComplexCombatDatas;
|
||||||
|
if (complexCombatData.Count > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < complexCombatData.Count; ++i)
|
||||||
|
{
|
||||||
|
if (_currentFight.Data.CompletedComplexDatas.Contains(i))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var condition = complexCombatData[i];
|
||||||
|
if (condition.RewardItemId != null && condition.RewardItemCount != null)
|
||||||
|
{
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
var inventoryManager = InventoryManager.Instance();
|
||||||
|
if (inventoryManager->GetInventoryItemCount(condition.RewardItemId.Value) >=
|
||||||
|
condition.RewardItemCount.Value)
|
||||||
|
{
|
||||||
|
_logger.LogInformation(
|
||||||
|
"Complex combat condition fulfilled: itemCount({ItemId}) >= {ItemCount}",
|
||||||
|
condition.RewardItemId, condition.RewardItemCount);
|
||||||
|
_currentFight.Data.CompletedComplexDatas.Add(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (QuestWorkUtils.HasCompletionFlags(condition.CompletionQuestVariablesFlags))
|
||||||
|
{
|
||||||
|
var questWork = _gameFunctions.GetQuestEx(_currentFight.Data.QuestId);
|
||||||
|
if (questWork != null && QuestWorkUtils.MatchesQuestWork(condition.CompletionQuestVariablesFlags,
|
||||||
|
questWork.Value, false))
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Complex combat condition fulfilled: QuestWork matches");
|
||||||
|
_currentFight.Data.CompletedComplexDatas.Add(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return _objectTable.Where(IsEnemyToKill).MinBy(x => (x.Position - _clientState.LocalPlayer!.Position).Length());
|
return _objectTable.Where(IsEnemyToKill).MinBy(x => (x.Position - _clientState.LocalPlayer!.Position).Length());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,8 +157,14 @@ internal sealed class CombatController
|
|||||||
{
|
{
|
||||||
if (gameObject is IBattleChara battleChara)
|
if (gameObject is IBattleChara battleChara)
|
||||||
{
|
{
|
||||||
if (battleChara.IsDead)
|
// TODO this works as somewhat of a delay between killing enemies if certain items/flags are checked
|
||||||
return false;
|
// but also delays killing the next enemy a little
|
||||||
|
if (_currentFight == null || _currentFight.Data.SpawnType != EEnemySpawnType.OverworldEnemies ||
|
||||||
|
_currentFight.Data.ComplexCombatDatas.Count == 0)
|
||||||
|
{
|
||||||
|
if (battleChara.IsDead)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!battleChara.IsTargetable)
|
if (!battleChara.IsTargetable)
|
||||||
return false;
|
return false;
|
||||||
@ -116,8 +172,26 @@ internal sealed class CombatController
|
|||||||
if (battleChara.TargetObjectId == _clientState.LocalPlayer?.GameObjectId)
|
if (battleChara.TargetObjectId == _clientState.LocalPlayer?.GameObjectId)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (_currentFight != null && _currentFight.Data.KillEnemyDataIds.Contains(battleChara.DataId))
|
if (_currentFight != null)
|
||||||
return true;
|
{
|
||||||
|
var complexCombatData = _currentFight.Data.ComplexCombatDatas;
|
||||||
|
if (complexCombatData.Count >= 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < complexCombatData.Count; ++i)
|
||||||
|
{
|
||||||
|
if (_currentFight.Data.CompletedComplexDatas.Contains(i))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (complexCombatData[i].DataId == battleChara.DataId)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_currentFight.Data.KillEnemyDataIds.Contains(battleChara.DataId))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (battleChara.StatusFlags.HasFlag(StatusFlags.Hostile))
|
if (battleChara.StatusFlags.HasFlag(StatusFlags.Hostile))
|
||||||
{
|
{
|
||||||
@ -150,6 +224,11 @@ internal sealed class CombatController
|
|||||||
|
|
||||||
public sealed class CombatData
|
public sealed class CombatData
|
||||||
{
|
{
|
||||||
public required ReadOnlyCollection<uint> KillEnemyDataIds { get; init; }
|
public required ushort QuestId { get; init; }
|
||||||
|
public required EEnemySpawnType SpawnType { get; init; }
|
||||||
|
public required List<uint> KillEnemyDataIds { get; init; }
|
||||||
|
public required List<ComplexCombatData> ComplexCombatDatas { get; init; }
|
||||||
|
|
||||||
|
public HashSet<int> CompletedComplexDatas { get; } = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,24 +17,27 @@ internal sealed class CommandHandler : IDisposable
|
|||||||
private readonly QuestController _questController;
|
private readonly QuestController _questController;
|
||||||
private readonly MovementController _movementController;
|
private readonly MovementController _movementController;
|
||||||
private readonly QuestRegistry _questRegistry;
|
private readonly QuestRegistry _questRegistry;
|
||||||
private readonly QuestData _questData;
|
|
||||||
private readonly ConfigWindow _configWindow;
|
private readonly ConfigWindow _configWindow;
|
||||||
private readonly DebugOverlay _debugOverlay;
|
private readonly DebugOverlay _debugOverlay;
|
||||||
private readonly QuestWindow _questWindow;
|
private readonly QuestWindow _questWindow;
|
||||||
|
private readonly QuestSelectionWindow _questSelectionWindow;
|
||||||
|
private readonly ITargetManager _targetManager;
|
||||||
|
|
||||||
public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController,
|
public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController,
|
||||||
MovementController movementController, QuestRegistry questRegistry, QuestData questData,
|
MovementController movementController, QuestRegistry questRegistry,
|
||||||
ConfigWindow configWindow, DebugOverlay debugOverlay, QuestWindow questWindow)
|
ConfigWindow configWindow, DebugOverlay debugOverlay, QuestWindow questWindow,
|
||||||
|
QuestSelectionWindow questSelectionWindow, ITargetManager targetManager)
|
||||||
{
|
{
|
||||||
_commandManager = commandManager;
|
_commandManager = commandManager;
|
||||||
_chatGui = chatGui;
|
_chatGui = chatGui;
|
||||||
_questController = questController;
|
_questController = questController;
|
||||||
_movementController = movementController;
|
_movementController = movementController;
|
||||||
_questRegistry = questRegistry;
|
_questRegistry = questRegistry;
|
||||||
_questData = questData;
|
|
||||||
_configWindow = configWindow;
|
_configWindow = configWindow;
|
||||||
_debugOverlay = debugOverlay;
|
_debugOverlay = debugOverlay;
|
||||||
_questWindow = questWindow;
|
_questWindow = questWindow;
|
||||||
|
_questSelectionWindow = questSelectionWindow;
|
||||||
|
_targetManager = targetManager;
|
||||||
|
|
||||||
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand)
|
_commandManager.AddHandler("/qst", new CommandInfo(ProcessCommand)
|
||||||
{
|
{
|
||||||
@ -74,7 +77,7 @@ internal sealed class CommandHandler : IDisposable
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "which":
|
case "which":
|
||||||
_questData.ShowQuestsIssuedByTarget();
|
_questSelectionWindow.Open(_targetManager.Target);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -159,15 +159,38 @@ internal sealed class GameUiController : IDisposable
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this is 'Daily Quests' for tribal quests, but not set for normal selections
|
||||||
|
string? title = addonSelectIconString->AtkValues[0].ReadAtkString();
|
||||||
|
|
||||||
var currentQuest = _questController.StartedQuest;
|
var currentQuest = _questController.StartedQuest;
|
||||||
if (currentQuest != null && actualPrompt == null)
|
if (currentQuest != null && (actualPrompt == null || title != null))
|
||||||
{
|
{
|
||||||
// it is possible for this to be a quest selection
|
_logger.LogInformation("Checking if current quest {Name} is on the list", currentQuest.Quest.Info.Name);
|
||||||
string questName = currentQuest.Quest.Info.Name;
|
if (CheckQuestSelection(addonSelectIconString, currentQuest.Quest, answers))
|
||||||
int questSelection = answers.FindIndex(x => GameStringEquals(questName, x));
|
return;
|
||||||
if (questSelection >= 0)
|
|
||||||
addonSelectIconString->AtkUnitBase.FireCallbackInt(questSelection);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var nextQuest = _questController.NextQuest;
|
||||||
|
if (nextQuest != null && (actualPrompt == null || title != null))
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Checking if next quest {Name} is on the list", nextQuest.Quest.Info.Name);
|
||||||
|
if (CheckQuestSelection(addonSelectIconString, nextQuest.Quest, answers))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe bool CheckQuestSelection(AddonSelectIconString* addonSelectIconString, Quest quest, List<string?> answers)
|
||||||
|
{
|
||||||
|
// it is possible for this to be a quest selection
|
||||||
|
string questName = quest.Info.Name;
|
||||||
|
int questSelection = answers.FindIndex(x => GameStringEquals(questName, x));
|
||||||
|
if (questSelection >= 0)
|
||||||
|
{
|
||||||
|
addonSelectIconString->AtkUnitBase.FireCallbackInt(questSelection);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static unsafe List<string?> GetChoices(AddonSelectIconString* addonSelectIconString)
|
public static unsafe List<string?> GetChoices(AddonSelectIconString* addonSelectIconString)
|
||||||
|
@ -148,7 +148,13 @@ internal sealed class QuestController
|
|||||||
else if (_nextQuest != null)
|
else if (_nextQuest != null)
|
||||||
{
|
{
|
||||||
// if the quest is accepted, we no longer track it
|
// if the quest is accepted, we no longer track it
|
||||||
if (_gameFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.QuestId))
|
bool canUseNextQuest;
|
||||||
|
if (_nextQuest.Quest.Info.IsRepeatable)
|
||||||
|
canUseNextQuest = !_gameFunctions.IsQuestAccepted(_nextQuest.Quest.QuestId);
|
||||||
|
else
|
||||||
|
canUseNextQuest = !_gameFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.QuestId);
|
||||||
|
|
||||||
|
if (!canUseNextQuest)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("Next quest {QuestId} accepted or completed", _nextQuest.Quest.QuestId);
|
_logger.LogInformation("Next quest {QuestId} accepted or completed", _nextQuest.Quest.QuestId);
|
||||||
|
|
||||||
|
@ -47,8 +47,7 @@ internal static class Combat
|
|||||||
return [unmount, CreateTask(quest, sequence, step)];
|
return [unmount, CreateTask(quest, sequence, step)];
|
||||||
|
|
||||||
case EEnemySpawnType.OverworldEnemies:
|
case EEnemySpawnType.OverworldEnemies:
|
||||||
// TODO currently not handled
|
return [unmount, CreateTask(quest, sequence, step)];
|
||||||
return [unmount];
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException(nameof(step), $"Unknown spawn type {step.EnemySpawnType}");
|
throw new ArgumentOutOfRangeException(nameof(step), $"Unknown spawn type {step.EnemySpawnType}");
|
||||||
@ -57,27 +56,31 @@ internal static class Combat
|
|||||||
|
|
||||||
public ITask CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
|
public ITask CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
|
||||||
{
|
{
|
||||||
|
ArgumentNullException.ThrowIfNull(step.EnemySpawnType);
|
||||||
|
|
||||||
bool isLastStep = sequence.Steps.Last() == step;
|
bool isLastStep = sequence.Steps.Last() == step;
|
||||||
return serviceProvider.GetRequiredService<HandleCombat>()
|
return serviceProvider.GetRequiredService<HandleCombat>()
|
||||||
.With(quest.QuestId, isLastStep, step.KillEnemyDataIds, step.CompletionQuestVariablesFlags);
|
.With(quest.QuestId, isLastStep, step.EnemySpawnType.Value, step.KillEnemyDataIds,
|
||||||
|
step.CompletionQuestVariablesFlags, step.ComplexCombatData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal sealed class HandleCombat(CombatController combatController, GameFunctions gameFunctions) : ITask
|
internal sealed class HandleCombat(CombatController combatController, GameFunctions gameFunctions) : ITask
|
||||||
{
|
{
|
||||||
private ushort _questId;
|
|
||||||
private bool _isLastStep;
|
private bool _isLastStep;
|
||||||
private CombatController.CombatData _combatData = null!;
|
private CombatController.CombatData _combatData = null!;
|
||||||
private IList<short?> _completionQuestVariableFlags = null!;
|
private IList<short?> _completionQuestVariableFlags = null!;
|
||||||
|
|
||||||
public ITask With(ushort questId, bool isLastStep, IList<uint> killEnemyDataIds,
|
public ITask With(ushort questId, bool isLastStep, EEnemySpawnType enemySpawnType, IList<uint> killEnemyDataIds,
|
||||||
IList<short?> completionQuestVariablesFlags)
|
IList<short?> completionQuestVariablesFlags, IList<ComplexCombatData> complexCombatData)
|
||||||
{
|
{
|
||||||
_questId = questId;
|
|
||||||
_isLastStep = isLastStep;
|
_isLastStep = isLastStep;
|
||||||
_combatData = new CombatController.CombatData
|
_combatData = new CombatController.CombatData
|
||||||
{
|
{
|
||||||
KillEnemyDataIds = killEnemyDataIds.AsReadOnly(),
|
QuestId = questId,
|
||||||
|
SpawnType = enemySpawnType,
|
||||||
|
KillEnemyDataIds = killEnemyDataIds.ToList(),
|
||||||
|
ComplexCombatDatas = complexCombatData.ToList(),
|
||||||
};
|
};
|
||||||
_completionQuestVariableFlags = completionQuestVariablesFlags;
|
_completionQuestVariableFlags = completionQuestVariablesFlags;
|
||||||
return this;
|
return this;
|
||||||
@ -93,7 +96,7 @@ internal static class Combat
|
|||||||
// if our quest step has any completion flags, we need to check if they are set
|
// if our quest step has any completion flags, we need to check if they are set
|
||||||
if (QuestWorkUtils.HasCompletionFlags(_completionQuestVariableFlags))
|
if (QuestWorkUtils.HasCompletionFlags(_completionQuestVariableFlags))
|
||||||
{
|
{
|
||||||
var questWork = gameFunctions.GetQuestEx(_questId);
|
var questWork = gameFunctions.GetQuestEx(_combatData.QuestId);
|
||||||
if (questWork == null)
|
if (questWork == null)
|
||||||
return ETaskResult.StillRunning;
|
return ETaskResult.StillRunning;
|
||||||
|
|
||||||
|
@ -228,8 +228,11 @@ internal static class Move
|
|||||||
var character = (Character*)(clientState.LocalPlayer?.Address ?? 0);
|
var character = (Character*)(clientState.LocalPlayer?.Address ?? 0);
|
||||||
if (character != null)
|
if (character != null)
|
||||||
{
|
{
|
||||||
logger.LogInformation("Attempting to land");
|
if (ActionManager.Instance()->GetActionStatus(ActionType.GeneralAction, 23) == 0)
|
||||||
return ActionManager.Instance()->UseAction(ActionType.Mount, character->Mount.MountId);
|
{
|
||||||
|
logger.LogInformation("Attempting to land");
|
||||||
|
return ActionManager.Instance()->UseAction(ActionType.GeneralAction, 23);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -28,7 +28,8 @@ internal sealed class DalamudInitializer : IDisposable
|
|||||||
WindowSystem windowSystem,
|
WindowSystem windowSystem,
|
||||||
QuestWindow questWindow,
|
QuestWindow questWindow,
|
||||||
DebugOverlay debugOverlay,
|
DebugOverlay debugOverlay,
|
||||||
ConfigWindow configWindow)
|
ConfigWindow configWindow,
|
||||||
|
QuestSelectionWindow questSelectionWindow)
|
||||||
{
|
{
|
||||||
_pluginInterface = pluginInterface;
|
_pluginInterface = pluginInterface;
|
||||||
_framework = framework;
|
_framework = framework;
|
||||||
@ -42,6 +43,7 @@ internal sealed class DalamudInitializer : IDisposable
|
|||||||
_windowSystem.AddWindow(questWindow);
|
_windowSystem.AddWindow(questWindow);
|
||||||
_windowSystem.AddWindow(configWindow);
|
_windowSystem.AddWindow(configWindow);
|
||||||
_windowSystem.AddWindow(debugOverlay);
|
_windowSystem.AddWindow(debugOverlay);
|
||||||
|
_windowSystem.AddWindow(questSelectionWindow);
|
||||||
|
|
||||||
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
|
_pluginInterface.UiBuilder.Draw += _windowSystem.Draw;
|
||||||
_pluginInterface.UiBuilder.OpenMainUi += _questWindow.Toggle;
|
_pluginInterface.UiBuilder.OpenMainUi += _questWindow.Toggle;
|
||||||
|
@ -2,12 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Dalamud.Game.ClientState.Objects;
|
|
||||||
using Dalamud.Game.Text;
|
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
|
||||||
using LLib.GameUI;
|
|
||||||
using Questionable.Controller;
|
|
||||||
using Questionable.Model;
|
using Questionable.Model;
|
||||||
using Quest = Lumina.Excel.GeneratedSheets.Quest;
|
using Quest = Lumina.Excel.GeneratedSheets.Quest;
|
||||||
|
|
||||||
@ -15,18 +10,10 @@ namespace Questionable.Data;
|
|||||||
|
|
||||||
internal sealed class QuestData
|
internal sealed class QuestData
|
||||||
{
|
{
|
||||||
private readonly ITargetManager _targetManager;
|
|
||||||
private readonly IChatGui _chatGui;
|
|
||||||
private readonly IGameGui _gameGui;
|
|
||||||
|
|
||||||
private readonly ImmutableDictionary<ushort, QuestInfo> _quests;
|
private readonly ImmutableDictionary<ushort, QuestInfo> _quests;
|
||||||
|
|
||||||
public QuestData(IDataManager dataManager, ITargetManager targetManager, IChatGui chatGui, IGameGui gameGui)
|
public QuestData(IDataManager dataManager)
|
||||||
{
|
{
|
||||||
_targetManager = targetManager;
|
|
||||||
_chatGui = chatGui;
|
|
||||||
_gameGui = gameGui;
|
|
||||||
|
|
||||||
_quests = dataManager.GetExcelSheet<Quest>()!
|
_quests = dataManager.GetExcelSheet<Quest>()!
|
||||||
.Where(x => x.RowId > 0)
|
.Where(x => x.RowId > 0)
|
||||||
.Where(x => x.IssuerLocation.Row > 0)
|
.Where(x => x.IssuerLocation.Row > 0)
|
||||||
@ -47,31 +34,4 @@ internal sealed class QuestData
|
|||||||
}
|
}
|
||||||
|
|
||||||
public bool IsIssuerOfAnyQuest(uint targetId) => _quests.Values.Any(x => x.IssuerDataId == targetId);
|
public bool IsIssuerOfAnyQuest(uint targetId) => _quests.Values.Any(x => x.IssuerDataId == targetId);
|
||||||
|
|
||||||
public unsafe void ShowQuestsIssuedByTarget()
|
|
||||||
{
|
|
||||||
var targetId = _targetManager.Target?.DataId;
|
|
||||||
if (targetId == null)
|
|
||||||
{
|
|
||||||
_chatGui.PrintError("[Questionable] No target selected.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<QuestInfo> quests = GetAllByIssuerDataId(targetId.Value);
|
|
||||||
|
|
||||||
if (_gameGui.TryGetAddonByName<AddonSelectIconString>("SelectIconString", out var addonSelectIconString))
|
|
||||||
{
|
|
||||||
var answers = GameUiController.GetChoices(addonSelectIconString);
|
|
||||||
quests = quests.Where(x => answers.Any(y => GameUiController.GameStringEquals(x.Name, y))).ToList();
|
|
||||||
|
|
||||||
_chatGui.Print($"{quests.Count} quest(s) currently offered by target {_targetManager.Target?.Name}:");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_chatGui.Print($"{quests.Count} quest(s) issued by target {_targetManager.Target?.Name}:");
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (QuestInfo quest in quests)
|
|
||||||
_chatGui.Print($" {quest.QuestId}_{quest.SimplifiedName}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -224,14 +224,21 @@ internal sealed unsafe class GameFunctions
|
|||||||
|
|
||||||
public bool IsReadyToAcceptQuest(ushort questId)
|
public bool IsReadyToAcceptQuest(ushort questId)
|
||||||
{
|
{
|
||||||
if (IsQuestAcceptedOrComplete(questId))
|
_questRegistry.TryGetQuest(questId, out var quest);
|
||||||
return false;
|
if (quest is { Info.IsRepeatable: true })
|
||||||
|
{
|
||||||
|
if (IsQuestAccepted(questId))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (IsQuestAcceptedOrComplete(questId))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// if we're not at a high enough level to continue, we also ignore it
|
// if we're not at a high enough level to continue, we also ignore it
|
||||||
var currentLevel = _clientState.LocalPlayer?.Level ?? 0;
|
var currentLevel = _clientState.LocalPlayer?.Level ?? 0;
|
||||||
if (currentLevel != 0 &&
|
if (currentLevel != 0 && quest != null && quest.Info.Level > currentLevel)
|
||||||
_questRegistry.TryGetQuest(questId, out Quest? quest) &&
|
|
||||||
quest.Info.Level > currentLevel)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -239,9 +246,11 @@ internal sealed unsafe class GameFunctions
|
|||||||
|
|
||||||
public bool IsQuestAcceptedOrComplete(ushort questId)
|
public bool IsQuestAcceptedOrComplete(ushort questId)
|
||||||
{
|
{
|
||||||
if (QuestManager.IsQuestComplete(questId))
|
return QuestManager.IsQuestComplete(questId) || IsQuestAccepted(questId);
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
public bool IsQuestAccepted(ushort questId)
|
||||||
|
{
|
||||||
QuestManager* questManager = QuestManager.Instance();
|
QuestManager* questManager = QuestManager.Instance();
|
||||||
return questManager->IsQuestAccepted(questId);
|
return questManager->IsQuestAccepted(questId);
|
||||||
}
|
}
|
||||||
|
@ -12,12 +12,14 @@ internal sealed class QuestInfo
|
|||||||
Name = quest.Name.ToString();
|
Name = quest.Name.ToString();
|
||||||
Level = quest.ClassJobLevel0;
|
Level = quest.ClassJobLevel0;
|
||||||
IssuerDataId = quest.IssuerStart;
|
IssuerDataId = quest.IssuerStart;
|
||||||
|
IsRepeatable = quest.IsRepeatable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ushort QuestId { get; }
|
public ushort QuestId { get; }
|
||||||
public string Name { get; }
|
public string Name { get; }
|
||||||
public ushort Level { get; }
|
public ushort Level { get; }
|
||||||
public uint IssuerDataId { get; }
|
public uint IssuerDataId { get; }
|
||||||
|
public bool IsRepeatable { get; }
|
||||||
|
|
||||||
public string SimplifiedName => Name
|
public string SimplifiedName => Name
|
||||||
.TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' ');
|
.TrimStart(SeIconChar.QuestSync.ToIconChar(), SeIconChar.QuestRepeatable.ToIconChar(), ' ');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
|
<Project Sdk="Dalamud.NET.Sdk/9.0.2">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>1.6</Version>
|
<Version>1.7</Version>
|
||||||
<OutputPath>dist</OutputPath>
|
<OutputPath>dist</OutputPath>
|
||||||
<PathMap Condition="$(SolutionDir) != ''">$(SolutionDir)=X:\</PathMap>
|
<PathMap Condition="$(SolutionDir) != ''">$(SolutionDir)=X:\</PathMap>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -127,6 +127,8 @@ public sealed class QuestionablePlugin : IDalamudPlugin
|
|||||||
serviceCollection.AddSingleton<QuestWindow>();
|
serviceCollection.AddSingleton<QuestWindow>();
|
||||||
serviceCollection.AddSingleton<ConfigWindow>();
|
serviceCollection.AddSingleton<ConfigWindow>();
|
||||||
serviceCollection.AddSingleton<DebugOverlay>();
|
serviceCollection.AddSingleton<DebugOverlay>();
|
||||||
|
serviceCollection.AddSingleton<QuestSelectionWindow>();
|
||||||
|
|
||||||
serviceCollection.AddSingleton<CommandHandler>();
|
serviceCollection.AddSingleton<CommandHandler>();
|
||||||
serviceCollection.AddSingleton<DalamudInitializer>();
|
serviceCollection.AddSingleton<DalamudInitializer>();
|
||||||
|
|
||||||
|
202
Questionable/Windows/QuestSelectionWindow.cs
Normal file
202
Questionable/Windows/QuestSelectionWindow.cs
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Numerics;
|
||||||
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
|
using Dalamud.Interface;
|
||||||
|
using Dalamud.Interface.Colors;
|
||||||
|
using Dalamud.Interface.Components;
|
||||||
|
using Dalamud.Interface.Utility.Raii;
|
||||||
|
using Dalamud.Plugin;
|
||||||
|
using Dalamud.Plugin.Services;
|
||||||
|
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||||
|
using ImGuiNET;
|
||||||
|
using LLib.GameUI;
|
||||||
|
using LLib.ImGui;
|
||||||
|
using Questionable.Controller;
|
||||||
|
using Questionable.Data;
|
||||||
|
using Questionable.Model;
|
||||||
|
|
||||||
|
namespace Questionable.Windows;
|
||||||
|
|
||||||
|
internal sealed class QuestSelectionWindow : LWindow
|
||||||
|
{
|
||||||
|
private const string WindowId = "###QuestionableQuestSelection";
|
||||||
|
private readonly QuestData _questData;
|
||||||
|
private readonly IGameGui _gameGui;
|
||||||
|
private readonly IChatGui _chatGui;
|
||||||
|
private readonly GameFunctions _gameFunctions;
|
||||||
|
private readonly QuestController _questController;
|
||||||
|
private readonly QuestRegistry _questRegistry;
|
||||||
|
private readonly IDalamudPluginInterface _pluginInterface;
|
||||||
|
|
||||||
|
private List<QuestInfo> _quests = [];
|
||||||
|
private List<QuestInfo> _offeredQuests = [];
|
||||||
|
private bool _onlyAvailableQuests = true;
|
||||||
|
|
||||||
|
public QuestSelectionWindow(QuestData questData, IGameGui gameGui, IChatGui chatGui, GameFunctions gameFunctions,
|
||||||
|
QuestController questController, QuestRegistry questRegistry, IDalamudPluginInterface pluginInterface)
|
||||||
|
: base($"Quest Selection{WindowId}")
|
||||||
|
{
|
||||||
|
_questData = questData;
|
||||||
|
_gameGui = gameGui;
|
||||||
|
_chatGui = chatGui;
|
||||||
|
_gameFunctions = gameFunctions;
|
||||||
|
_questController = questController;
|
||||||
|
_questRegistry = questRegistry;
|
||||||
|
_pluginInterface = pluginInterface;
|
||||||
|
|
||||||
|
Size = new Vector2(500, 200);
|
||||||
|
SizeCondition = ImGuiCond.Once;
|
||||||
|
SizeConstraints = new WindowSizeConstraints
|
||||||
|
{
|
||||||
|
MinimumSize = new Vector2(500, 200),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public uint TargetId { get; private set; }
|
||||||
|
public string TargetName { get; private set; } = string.Empty;
|
||||||
|
|
||||||
|
public unsafe void Open(IGameObject? gameObject)
|
||||||
|
{
|
||||||
|
if (gameObject != null)
|
||||||
|
{
|
||||||
|
TargetId = gameObject.DataId;
|
||||||
|
TargetName = gameObject.Name.ToString();
|
||||||
|
WindowName = $"Quests starting with {TargetName} [{TargetId}]{WindowId}";
|
||||||
|
|
||||||
|
_quests = _questData.GetAllByIssuerDataId(TargetId);
|
||||||
|
if (_gameGui.TryGetAddonByName<AddonSelectIconString>("SelectIconString", out var addonSelectIconString))
|
||||||
|
{
|
||||||
|
var answers = GameUiController.GetChoices(addonSelectIconString);
|
||||||
|
_offeredQuests = _quests
|
||||||
|
.Where(x => answers.Any(y => GameUiController.GameStringEquals(x.Name, y)))
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_offeredQuests = [];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_quests = [];
|
||||||
|
_offeredQuests = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
IsOpen = _quests.Count > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw()
|
||||||
|
{
|
||||||
|
if (_offeredQuests.Count != 0)
|
||||||
|
ImGui.Checkbox("Only show quests currently offered", ref _onlyAvailableQuests);
|
||||||
|
|
||||||
|
using var table = ImRaii.Table("QuestSelection", 4, ImGuiTableFlags.Borders | ImGuiTableFlags.ScrollY);
|
||||||
|
if (!table)
|
||||||
|
{
|
||||||
|
ImGui.Text("Not table");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui.TableSetupColumn("Id", ImGuiTableColumnFlags.WidthFixed, 50);
|
||||||
|
ImGui.TableSetupColumn("", ImGuiTableColumnFlags.WidthFixed, 18);
|
||||||
|
ImGui.TableSetupColumn("Name", ImGuiTableColumnFlags.None, 200);
|
||||||
|
ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, 100);
|
||||||
|
ImGui.TableHeadersRow();
|
||||||
|
|
||||||
|
foreach (QuestInfo quest in (_offeredQuests.Count != 0 && _onlyAvailableQuests) ? _offeredQuests : _quests)
|
||||||
|
{
|
||||||
|
ImGui.TableNextRow();
|
||||||
|
|
||||||
|
string questId = quest.QuestId.ToString(CultureInfo.InvariantCulture);
|
||||||
|
bool isKnownQuest = _questRegistry.TryGetQuest(quest.QuestId, out var knownQuest);
|
||||||
|
|
||||||
|
if (ImGui.TableNextColumn())
|
||||||
|
{
|
||||||
|
ImGui.AlignTextToFramePadding();
|
||||||
|
ImGui.TextUnformatted(questId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui.TableNextColumn())
|
||||||
|
{
|
||||||
|
ImGui.AlignTextToFramePadding();
|
||||||
|
using var font = _pluginInterface.UiBuilder.IconFontFixedWidthHandle.Push();
|
||||||
|
|
||||||
|
FontAwesomeIcon icon;
|
||||||
|
Vector4 color;
|
||||||
|
if (_gameFunctions.IsQuestAccepted(quest.QuestId))
|
||||||
|
{
|
||||||
|
color = ImGuiColors.DalamudYellow;
|
||||||
|
icon = FontAwesomeIcon.Running;
|
||||||
|
}
|
||||||
|
else if (_gameFunctions.IsQuestAcceptedOrComplete(quest.QuestId))
|
||||||
|
{
|
||||||
|
color = ImGuiColors.ParsedGreen;
|
||||||
|
icon = FontAwesomeIcon.Check;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color = ImGuiColors.DalamudRed;
|
||||||
|
icon = FontAwesomeIcon.Times;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isKnownQuest)
|
||||||
|
ImGui.TextColored(color, icon.ToIconString());
|
||||||
|
else
|
||||||
|
ImGui.TextColored(ImGuiColors.DalamudGrey, icon.ToIconString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui.TableNextColumn())
|
||||||
|
{
|
||||||
|
ImGui.AlignTextToFramePadding();
|
||||||
|
ImGui.TextUnformatted(quest.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui.TableNextColumn())
|
||||||
|
{
|
||||||
|
using var id = ImRaii.PushId(questId);
|
||||||
|
|
||||||
|
bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
|
||||||
|
if (ImGui.IsItemHovered())
|
||||||
|
ImGui.SetTooltip("Copy as file name");
|
||||||
|
if (copy)
|
||||||
|
CopyToClipboard(quest, true);
|
||||||
|
else if (ImGui.IsItemClicked(ImGuiMouseButton.Right))
|
||||||
|
CopyToClipboard(quest, false);
|
||||||
|
|
||||||
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
if (knownQuest != null && !_gameFunctions.IsQuestAccepted(quest.QuestId) &&
|
||||||
|
(quest.IsRepeatable || !_gameFunctions.IsQuestAcceptedOrComplete(quest.QuestId)))
|
||||||
|
{
|
||||||
|
ImGui.BeginDisabled(_questController.NextQuest != null || _questController.SimulatedQuest != null);
|
||||||
|
|
||||||
|
bool startNextQuest = ImGuiComponents.IconButton(FontAwesomeIcon.Play);
|
||||||
|
if (ImGui.IsItemHovered())
|
||||||
|
ImGui.SetTooltip("Start as next quest");
|
||||||
|
if (startNextQuest)
|
||||||
|
{
|
||||||
|
_questController.SetNextQuest(knownQuest);
|
||||||
|
_questController.ExecuteNextStep(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui.SameLine();
|
||||||
|
|
||||||
|
bool setNextQuest = ImGuiComponents.IconButton(FontAwesomeIcon.AngleDoubleRight);
|
||||||
|
if (ImGui.IsItemHovered())
|
||||||
|
ImGui.SetTooltip("Set as next quest");
|
||||||
|
if (setNextQuest)
|
||||||
|
_questController.SetNextQuest(knownQuest);
|
||||||
|
|
||||||
|
ImGui.EndDisabled();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CopyToClipboard(QuestInfo quest, bool suffix)
|
||||||
|
{
|
||||||
|
string fileName = $"{quest.QuestId}_{quest.SimplifiedName}{(suffix ? ".json" : "")}";
|
||||||
|
ImGui.SetClipboardText(fileName);
|
||||||
|
_chatGui.Print($"Copied '{fileName}' to clipboard");
|
||||||
|
}
|
||||||
|
}
|
@ -46,6 +46,8 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
private readonly QuestData _questData;
|
private readonly QuestData _questData;
|
||||||
private readonly TerritoryData _territoryData;
|
private readonly TerritoryData _territoryData;
|
||||||
private readonly ICondition _condition;
|
private readonly ICondition _condition;
|
||||||
|
private readonly IGameGui _gameGui;
|
||||||
|
private readonly QuestSelectionWindow _questSelectionWindow;
|
||||||
private readonly ILogger<QuestWindow> _logger;
|
private readonly ILogger<QuestWindow> _logger;
|
||||||
|
|
||||||
public QuestWindow(IDalamudPluginInterface pluginInterface,
|
public QuestWindow(IDalamudPluginInterface pluginInterface,
|
||||||
@ -64,6 +66,8 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
QuestData questData,
|
QuestData questData,
|
||||||
TerritoryData territoryData,
|
TerritoryData territoryData,
|
||||||
ICondition condition,
|
ICondition condition,
|
||||||
|
IGameGui gameGui,
|
||||||
|
QuestSelectionWindow questSelectionWindow,
|
||||||
ILogger<QuestWindow> logger)
|
ILogger<QuestWindow> logger)
|
||||||
: base("Questionable###Questionable", ImGuiWindowFlags.AlwaysAutoResize)
|
: base("Questionable###Questionable", ImGuiWindowFlags.AlwaysAutoResize)
|
||||||
{
|
{
|
||||||
@ -83,6 +87,8 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
_questData = questData;
|
_questData = questData;
|
||||||
_territoryData = territoryData;
|
_territoryData = territoryData;
|
||||||
_condition = condition;
|
_condition = condition;
|
||||||
|
_gameGui = gameGui;
|
||||||
|
_questSelectionWindow = questSelectionWindow;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@ -442,11 +448,12 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
ImGui.BeginDisabled(!_questData.IsIssuerOfAnyQuest(_targetManager.Target.DataId));
|
ImGui.BeginDisabled(!_questData.IsIssuerOfAnyQuest(_targetManager.Target.DataId));
|
||||||
bool showQuests = ImGuiComponents.IconButton(FontAwesomeIcon.Bars);
|
bool showQuests = ImGuiComponents.IconButton(FontAwesomeIcon.MapMarkerAlt);
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
ImGui.SetTooltip("Show all Quests starting with your current target.");
|
ImGui.SetTooltip("Show all Quests starting with your current target.");
|
||||||
if (showQuests)
|
if (showQuests)
|
||||||
_questData.ShowQuestsIssuedByTarget();
|
_questSelectionWindow.Open(_targetManager.Target);
|
||||||
|
|
||||||
ImGui.EndDisabled();
|
ImGui.EndDisabled();
|
||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
@ -462,10 +469,10 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
|
|
||||||
ImGui.SameLine();
|
ImGui.SameLine();
|
||||||
|
|
||||||
ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
|
bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
ImGui.SetTooltip("Left click: Copy target position as JSON.\nRight click: Copy target position as C# code.");
|
ImGui.SetTooltip("Left click: Copy target position as JSON.\nRight click: Copy target position as C# code.");
|
||||||
if (ImGui.IsItemClicked(ImGuiMouseButton.Left))
|
if (copy)
|
||||||
{
|
{
|
||||||
string interactionType = gameObject->NamePlateIconId switch
|
string interactionType = gameObject->NamePlateIconId switch
|
||||||
{
|
{
|
||||||
@ -500,10 +507,10 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
|
bool copy = ImGuiComponents.IconButton(FontAwesomeIcon.Copy);
|
||||||
if (ImGui.IsItemHovered())
|
if (ImGui.IsItemHovered())
|
||||||
ImGui.SetTooltip("Left click: Copy target position as JSON.\nRight click: Copy target position as C# code.");
|
ImGui.SetTooltip("Left click: Copy your position as JSON.\nRight click: Copy your position as C# code.");
|
||||||
if (ImGui.IsItemClicked(ImGuiMouseButton.Left))
|
if (copy)
|
||||||
{
|
{
|
||||||
ImGui.SetClipboardText($$"""
|
ImGui.SetClipboardText($$"""
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -522,6 +529,13 @@ internal sealed class QuestWindow : LWindow, IPersistableWindowConfig
|
|||||||
$"new({position.X}f, {position.Y}f, {position.Z}f)"));
|
$"new({position.X}f, {position.Y}f, {position.Z}f)"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ulong hoveredItemId = _gameGui.HoveredItem;
|
||||||
|
if (hoveredItemId != 0)
|
||||||
|
{
|
||||||
|
ImGui.Separator();
|
||||||
|
ImGui.Text($"Hovered Item: {hoveredItemId}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void DrawQuickAccessButtons()
|
private unsafe void DrawQuickAccessButtons()
|
||||||
|
Loading…
Reference in New Issue
Block a user