1
0
Fork 0

Daily quest updates

master
Liza 2024-07-20 19:09:51 +02:00
parent 36ed78bcea
commit cc0c972bae
Signed by: liza
GPG Key ID: 7199F8D727D55F67
33 changed files with 1365 additions and 89 deletions

View File

@ -21,7 +21,98 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -246.48618,
"Y": 54.663364,
"Z": 605.60834
},
"TerritoryId": 816,
"InteractionType": "WalkTo",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-128
]
},
{
"DataId": 2010856,
"Position": {
"X": -271.29016,
"Y": 52.96399,
"Z": 605.9204
},
"TerritoryId": 816,
"InteractionType": "Interact",
"DisableNavmesh": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 2010858,
"Position": {
"X": -250.62946,
"Y": 50.94983,
"Z": 597.7416
},
"TerritoryId": 816,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"Position": {
"X": -261.1694,
"Y": 50.977943,
"Z": 589.3572
},
"TerritoryId": 816,
"InteractionType": "WalkTo",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
-64
]
},
{
"DataId": 2010857,
"Position": {
"X": -261.1277,
"Y": 50.94983,
"Z": 585.2903
},
"StopDistance": 4.5,
"TerritoryId": 816,
"InteractionType": "Interact",
"DisableNavmesh": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
}
]
},
{

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -21,16 +20,6 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -466.72015,
"Y": 44.63006,
"Z": -310.0618
},
"TerritoryId": 816,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 1032140,
"Position": {
@ -43,8 +32,17 @@
"ChatMessage": {
"Key": "TEXT_BANPIX103_03691_SAYTODO_000_030"
},
"SkipIf": [
"NotTargetable"
"$": "QW: 0 0 0 1 0 0",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
null,
[
1
],
null,
null
]
},
{
@ -59,8 +57,17 @@
"ChatMessage": {
"Key": "TEXT_BANPIX103_03691_SAYTODO_000_030"
},
"SkipIf": [
"NotTargetable"
"$": "QW: 0 0 0 3 0 0",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
null,
[
3
],
null,
null
]
},
{
@ -70,13 +77,22 @@
"Y": 50.10258,
"Z": -328.26733
},
"$": "QW: 0 0 0 2 0 0",
"TerritoryId": 816,
"InteractionType": "Say",
"ChatMessage": {
"Key": "TEXT_BANPIX103_03691_SAYTODO_000_030"
},
"SkipIf": [
"NotTargetable"
"Fly": true,
"RequiredQuestVariables": [
null,
null,
null,
[
2
],
null,
null
]
}
]

View File

@ -3,9 +3,7 @@
QuestWork:
```
0 0 0 x 0 0
1 → 1032140
2 → 1032142
3 → 1032141
unknown
? → 1032140
```

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -20,17 +19,19 @@
},
{
"Sequence": 1,
"Comment": "TODO Has multiple possible targets, unsure if QW works",
"Steps": [
{
"Position": {
"X": -342.05676,
"Y": 37.5036,
"Z": 434.53723
"X": -344.05838,
"Y": 45.450672,
"Z": 456.10266
},
"TerritoryId": 816,
"InteractionType": "WalkTo",
"Fly": true
"Fly": true,
"SkipIf": [
"FlyingLocked"
]
},
{
"DataId": 2010860,
@ -41,8 +42,23 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"SkipIf": [
"NotTargetable"
"RequiredQuestVariables": [
null,
[
{
"Low": 1
},
{
"Low": 2
},
{
"Low": 3
}
],
null,
null,
null,
null
]
},
{
@ -54,8 +70,23 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"SkipIf": [
"NotTargetable"
"RequiredQuestVariables": [
null,
[
{
"Low": 3
},
{
"Low": 4
},
{
"Low": 5
}
],
null,
null,
null,
null
]
},
{
@ -67,8 +98,23 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"SkipIf": [
"NotTargetable"
"RequiredQuestVariables": [
null,
[
{
"Low": 1
},
{
"Low": 4
},
{
"Low": 6
}
],
null,
null,
null,
null
],
"IgnoreDistanceToObject": true
},
@ -81,8 +127,23 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"SkipIf": [
"NotTargetable"
"RequiredQuestVariables": [
null,
[
{
"Low": 2
},
{
"Low": 5
},
{
"Low": 6
}
],
null,
null,
null,
null
],
"IgnoreDistanceToObject": true
}

View File

@ -2,7 +2,11 @@
QuestWork:
```
0 x 0 0 0 0
4 → 2010861, 2010863
5 → 2010861, 2010862
0 x 0 0 0 0 | QW after first
1 → 2010860 2010863 | 1 18 0 0 0 128
2 → 2010860 2010862 | 1 18 0 0 0 128
3 → 2010860 2010861 | 1 19 0 0 0 128
4 → 2010861 2010863 |
5 → 2010861 2010862 |
6 → 2010862 2010863 | 1 22 0 0 0 128
```

View File

@ -41,6 +41,25 @@
"Fly": true,
"DisableNavmesh": true
},
{
"DataId": 2010865,
"Position": {
"X": -335.59174,
"Y": -53.75763,
"Z": -277.9126
},
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
null,
[1],
null,
null
]
},
{
"DataId": 2010866,
"Position": {
@ -50,7 +69,34 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true
"Fly": true,
"RequiredQuestVariables": [
null,
null,
null,
[2],
null,
null
]
},
{
"DataId": 2010867,
"Position": {
"X": -351.64417,
"Y": -53.635498,
"Z": -295.73517
},
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
null,
[3],
null,
null
]
}
]
},

View File

@ -0,0 +1,10 @@
## I Dream of Shinies
QuestWork:
```
0 0 0 x 0 0
1 → 2010865
2 → 2010866
3 → 2010867
```

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -21,7 +20,102 @@
{
"Sequence": 1,
"Steps": [
{
"DataId": 1031811,
"Position": {
"X": -442.46588,
"Y": 70.686165,
"Z": 573.69336
},
"TerritoryId": 816,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2010891,
"Position": {
"X": -852.0485,
"Y": 37.67456,
"Z": 298.11548
},
"TerritoryId": 816,
"InteractionType": "Action",
"Action": "Siphon Snout",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
[
{
"High": 1
},
{
"High": 2
}
],
null,
null,
null
]
},
{
"DataId": 2010892,
"Position": {
"X": -774.44116,
"Y": 54.520386,
"Z": 102.61682
},
"TerritoryId": 816,
"InteractionType": "Action",
"Action": "Siphon Snout",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
[
{
"High": 1
},
{
"High": 3
}
],
null,
null,
null
]
},
{
"DataId": 2010893,
"Position": {
"X": -802.30414,
"Y": 27.115234,
"Z": -108.44586
},
"TerritoryId": 816,
"InteractionType": "Action",
"Action": "Siphon Snout",
"Fly": true,
"RequiredQuestVariables": [
null,
null,
[
{
"High": 2
},
{
"High": 3
}
],
null,
null,
null
]
}
]
},
{
@ -36,6 +130,7 @@
},
"TerritoryId": 816,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Il Mheg - Lydha Lran",
"Fly": true
}
]

View File

@ -0,0 +1,9 @@
## Sharing is Caring
QuestWork:
```
0 0 xx 0 0 0
16 → 2010891 2010892
32 → 2010891 2010893 | unverified
48 → 2010892 2010893
```

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -31,10 +30,16 @@
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"SkipIf": [
"NotTargetable"
],
"$": "Only if QW: 0 48 0 0 0 0"
"RequiredQuestVariables": [
null,
[
48
],
null,
null,
null,
null
]
},
{
"DataId": 1032168,
@ -46,10 +51,16 @@
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"SkipIf": [
"NotTargetable"
],
"$": "Only if QW: 0 32 0 0 0 0"
"RequiredQuestVariables": [
null,
[
32
],
null,
null,
null,
null
]
},
{
"DataId": 1032167,
@ -61,8 +72,15 @@
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"SkipIf": [
"NotTargetable"
"RequiredQuestVariables": [
null,
[
16
],
null,
null,
null,
null
]
}
]

View File

@ -3,7 +3,7 @@
QuestWork:
```
0 x 0 0 0 0
32 → 1032168
16 → Tall Fuath (1032167)
32 → Trembling Scavenger (1032168)
48 → Elegant Eulmoran (1032169)
?? → 1032167
```

View File

@ -31,7 +31,7 @@
"TerritoryId": 816,
"InteractionType": "Interact",
"Fly": true,
"$": "Only if QW: 0 0 ??? 0 0 0",
"$": "Only if QW: 0 0 3 0 0 0",
"SkipIf": ["NotTargetable"]
},
{
@ -43,7 +43,7 @@
},
"TerritoryId": 816,
"InteractionType": "Interact",
"$": "Only if QW: 0 0 1 0 0 0 → if complete, 0 16 0 0 0 0",
"$": "Only if QW: 0 0 1 0 0 0",
"SkipIf": ["NotTargetable"]
}
]

View File

@ -41,7 +41,39 @@
"TerritoryId": 816,
"InteractionType": "Interact",
"DisableNavmesh": true,
"$": "QW: 0 2 0 0 0 0"
"$": "QW: 0 2 0 0 0 0",
"SkipIf": [
"NotTargetable"
]
},
{
"DataId": 2010904,
"Position": {
"X": -164.93481,
"Y": -50.919373,
"Z": 71.15283
},
"TerritoryId": 816,
"InteractionType": "Interact",
"$": "QW: 0 3 0 0 0 0",
"SkipIf": [
"NotTargetable"
]
},
{
"DataId": 2010910,
"Position": {
"X": -189.86804,
"Y": -66.941345,
"Z": 13.046387
},
"TerritoryId": 816,
"InteractionType": "Interact",
"DisableNavmesh": true,
"$": "QW: 0 1 0 0 0 0",
"SkipIf": [
"NotTargetable"
]
}
]
},

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -21,7 +20,37 @@
{
"Sequence": 1,
"Steps": [
{
"DataId": 1032204,
"Position": {
"X": -81.864685,
"Y": 88.12085,
"Z": -175.06683
},
"TerritoryId": 816,
"InteractionType": "UseItem",
"ItemId": 2002945,
"$": "QW 0 32 0 0 0 0",
"Fly": true
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1032205,
"Position": {
"X": -114.21387,
"Y": 112.903015,
"Z": -350.57605
},
"TerritoryId": 816,
"InteractionType": "UseItem",
"ItemId": 2002945,
"$": "QW 0 17 0 0 0 0",
"Fly": true
}
]
},
{
@ -36,7 +65,15 @@
},
"TerritoryId": 816,
"InteractionType": "CompleteQuest",
"Fly": true
"AetheryteShortcut": "Il Mheg - Lydha Lran",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANPIX122_03710_Q1_000_000",
"Answer": "TEXT_BANPIX122_03710_A1_000_002"
}
]
}
]
}

View File

@ -0,0 +1,236 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1031806,
"Position": {
"X": -464.59143,
"Y": 71.76874,
"Z": 573.8766
},
"TerritoryId": 816,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1031891,
"Position": {
"X": -461.53967,
"Y": 72.51729,
"Z": 586.48047
},
"TerritoryId": 816,
"InteractionType": "Interact",
"TargetTerritoryId": 890
},
{
"DataId": 1031853,
"Position": {
"X": 60.471436,
"Y": -1.6051313,
"Z": 53.543823
},
"TerritoryId": 890,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1031852,
"Position": {
"X": 59.03711,
"Y": -1.7997739,
"Z": 56.565186
},
"TerritoryId": 890,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1031855,
"Position": {
"X": 74.784424,
"Y": 98.85967,
"Z": -820.88965
},
"TerritoryId": 816,
"InteractionType": "Interact",
"AetheryteShortcut": "Il Mheg - Pia Enni",
"Fly": true
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1031858,
"Position": {
"X": -211.35272,
"Y": 16.63259,
"Z": 427.32886
},
"TerritoryId": 814,
"InteractionType": "Interact",
"AetheryteShortcut": "Kholusia - Wright",
"Fly": true
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1031860,
"Position": {
"X": -217.45636,
"Y": 21.481304,
"Z": 356.9237
},
"TerritoryId": 814,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 6,
"Steps": [
{
"Position": {
"X": -137.7369,
"Y": 11.939666,
"Z": 336.4078
},
"TerritoryId": 814,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
11438
]
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1031861,
"Position": {
"X": -149.85895,
"Y": 13.084818,
"Z": 341.1764
},
"TerritoryId": 814,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1031860,
"Position": {
"X": -217.45636,
"Y": 21.481304,
"Z": 356.9237
},
"TerritoryId": 814,
"InteractionType": "Interact",
"Fly": true
}
]
},
{
"Sequence": 9,
"Steps": [
{
"DataId": 1031891,
"Position": {
"X": -461.53967,
"Y": 72.51729,
"Z": 586.48047
},
"TerritoryId": 816,
"InteractionType": "Interact",
"AetheryteShortcut": "Il Mheg - Lydha Lran",
"Fly": true,
"TargetTerritoryId": 890
},
{
"DataId": 1031863,
"Position": {
"X": 60.379883,
"Y": 31.0353,
"Z": -110.76526
},
"TerritoryId": 890,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 10,
"Steps": [
{
"Position": {
"X": 0,
"Y": 0,
"Z": 0
},
"TerritoryId": 1,
"InteractionType": "WalkTo",
"Comment": "Filler"
}
]
},
{
"Sequence": 11,
"Steps": [
{
"DataId": 1032350,
"Position": {
"X": 63.797974,
"Y": 30.266184,
"Z": -103.4715
},
"TerritoryId": 891,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1031806,
"Position": {
"X": -464.59143,
"Y": 71.76874,
"Z": 573.8766
},
"TerritoryId": 816,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Il Mheg - Lydha Lran",
"Fly": true
}
]
}
]
}

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -21,7 +20,63 @@
{
"Sequence": 1,
"Steps": [
{
"DataId": 1042363,
"Position": {
"X": 227.58826,
"Y": 4.933288,
"Z": 644.4037
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
},
{
"DataId": 1042364,
"Position": {
"X": 198.93188,
"Y": 1.7699993,
"Z": 707.1183
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1042365,
"Position": {
"X": 177.66077,
"Y": 5.331657,
"Z": 651.27026
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
}
]
},
{

View File

@ -19,8 +19,64 @@
},
{
"Sequence": 1,
"Comment": "There are more NPC/dialogue choices",
"Steps": [
{
"DataId": 1042368,
"Position": {
"X": -485.771,
"Y": 39.62969,
"Z": 114.213745
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Great Work",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANARK106_04556_Q1_000_000",
"Answer": "TEXT_BANARK106_04556_A1_000_001"
}
],
"RequiredQuestVariables": [
null,
null,
[
48
],
null,
null,
null
]
},
{
"DataId": 1042369,
"Position": {
"X": -561.2726,
"Y": 11.802609,
"Z": 128.95398
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_BANARK106_04556_Q2_000_000",
"Answer": "TEXT_BANARK106_04556_A2_000_001"
}
],
"RequiredQuestVariables": [
null,
null,
[
16
],
null,
null,
null
]
},
{
"DataId": 1042370,
"Position": {
@ -37,8 +93,15 @@
"Answer": "TEXT_BANARK106_04556_A3_000_001"
}
],
"SkipIf": [
"NotTargetable"
"RequiredQuestVariables": [
null,
null,
[
32
],
null,
null,
null
]
}
]

View File

@ -0,0 +1,8 @@
## Bloomin' Ocean
```
0 0 ?? 0 0 0
16 → 1042369
32 → 1042370
48 → 1042368
```

View File

@ -29,7 +29,11 @@
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Palaka's Stand",
"AetheryteShortcut": "Radz-at-Han",
"AethernetShortcut": [
"[Radz-at-Han] Aetheryte Plaza",
"[Radz-at-Han] The Gate of First Sight (Thavnair)"
],
"Fly": true
}
]

View File

@ -32,7 +32,9 @@
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14676
]
],
"Fly": true,
"AetheryteShortcut": "Thavnair - Great Work"
}
]
},

View File

@ -1,7 +1,6 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"Disabled": true,
"QuestSequence": [
{
"Sequence": 0,
@ -21,7 +20,122 @@
{
"Sequence": 1,
"Steps": [
{
"Position": {
"X": -611.4443,
"Y": 4.030203,
"Z": 520.76807
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"Fly": true
},
{
"DataId": 2012880,
"Position": {
"X": -669.4896,
"Y": -36.42328,
"Z": 522.6367
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"DisableNavmesh": true,
"RequiredQuestVariables": [
null,
[
{
"Low": 1
},
{
"Low": 4
}
],
null,
null,
null,
null
]
},
{
"DataId": 2012881,
"Position": {
"X": -652.4605,
"Y": -31.784546,
"Z": 554.46704
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"DisableNavmesh": true,
"RequiredQuestVariables": [
null,
[
{
"Low": 2
},
{
"Low": 3
}
],
null,
null,
null,
null
]
},
{
"DataId": 2012882,
"Position": {
"X": -729.9458,
"Y": -38.864807,
"Z": 600.5187
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
[
{
"Low": 1
},
{
"Low": 3
}
],
null,
null,
null,
null
]
},
{
"DataId": 2012883,
"Position": {
"X": -746.0593,
"Y": -38.92578,
"Z": 597.0397
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"RequiredQuestVariables": [
null,
[
{
"Low": 2
},
{
"Low": 4
}
],
null,
null,
null,
null
]
}
]
},
{
@ -36,6 +150,7 @@
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"Fly": true
}
]

View File

@ -0,0 +1,9 @@
## Bloomin' Ocean
```
0 ? 0 0 0 0
1 → 2012880 2012882
2 → 2012881 2012883
3 → 2012881 2012882
4 → 2012880 2012883
```

View File

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

View File

@ -1,12 +0,0 @@
## Seedy Affair
First NPC:
```
0 ?? 0 0 0 0
32 → 1042390
```
Second NPC:
```
1 16 0 0 0 64 → 1042389
```

View File

@ -0,0 +1,214 @@
{
"$schema": "https://carvel.li/questionable/quest-1.0",
"Author": "liza",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1042300,
"Position": {
"X": -76.82922,
"Y": 39.986862,
"Z": 309.98706
},
"TerritoryId": 957,
"InteractionType": "AcceptQuest"
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 2012919,
"Position": {
"X": -464.22522,
"Y": 5.3864136,
"Z": 22.445984
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Great Work"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -363.06543,
"Y": 55.300343,
"Z": -108.32965
},
"StopDistance": 0.25,
"TerritoryId": 957,
"InteractionType": "Combat",
"EnemySpawnType": "AutoOnEnterArea",
"KillEnemyDataIds": [
14681
],
"Fly": true
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1042318,
"Position": {
"X": -360.49445,
"Y": 54.680054,
"Z": -102.9527
},
"StopDistance": 7,
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1042321,
"Position": {
"X": -522.9725,
"Y": 11.61713,
"Z": 88.97534
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Great Work"
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1042322,
"Position": {
"X": -523.36926,
"Y": 10.9199,
"Z": 85.34363
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1042324,
"Position": {
"X": -558.0072,
"Y": 11.802552,
"Z": 114.03064
},
"TerritoryId": 957,
"InteractionType": "Interact",
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
64
]
},
{
"DataId": 1042325,
"Position": {
"X": -552.75806,
"Y": 1.120665,
"Z": 23.392029
},
"StopDistance": 0.5,
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
32
]
},
{
"DataId": 1042323,
"Position": {
"X": -480.33875,
"Y": 1.9096844,
"Z": -13.53479
},
"TerritoryId": 957,
"InteractionType": "Interact",
"Fly": true,
"CompletionQuestVariablesFlags": [
null,
null,
null,
null,
null,
128
]
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1042321,
"Position": {
"X": -522.9725,
"Y": 11.61713,
"Z": 88.97534
},
"TerritoryId": 957,
"InteractionType": "Interact"
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1041397,
"Position": {
"X": 402.30408,
"Y": 3.0506973,
"Z": -212.35986
},
"TerritoryId": 957,
"InteractionType": "Interact",
"AetheryteShortcut": "Thavnair - Palaka's Stand"
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1042300,
"Position": {
"X": -76.82922,
"Y": 39.986862,
"Z": 309.98706
},
"TerritoryId": 957,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Thavnair - Yedlihmad",
"Fly": true
}
]
}
]
}

View File

@ -188,6 +188,41 @@
"CompletionQuestVariablesFlags": {
"$ref": "#/$defs/CompletionFlags"
},
"RequiredQuestVariables": {
"type": "array",
"description": "Certain quests (primarily beast tribes/allied societies) have a RNG element to spawning targets, and the step should be skipped in its entirety if none of the sets below match",
"minItems": 6,
"maxItems": 6,
"items": {
"type": ["array", "null"],
"items": {
"type": [
"number",
"object"
],
"properties": {
"High": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 15
},
"Low": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 15
}
},
"minimum": 0,
"maximum": 255
}
}
},
"DelaySecondsAtStart": {
"description": "Time to wait before starting",
"type": [
@ -567,6 +602,7 @@
"description": "The action to use",
"enum": [
"Esuna",
"Siphon Snout",
"Red Gulal",
"Yellow Gulal",
"Blue Gulal"

View File

@ -7,6 +7,7 @@ public sealed class ActionConverter() : EnumConverter<EAction>(Values)
private static readonly Dictionary<EAction, string> Values = new()
{
{ EAction.Esuna, "Esuna" },
{ EAction.SiphonSnout, "Siphon Snout" },
{ EAction.RedGulal, "Red Gulal" },
{ EAction.YellowGulal, "Yellow Gulal" },
{ EAction.BlueGulal, "Blue Gulal" },

View File

@ -0,0 +1,58 @@
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Questionable.Model.V1.Converter;
public sealed class QuestWorkConfigConverter : JsonConverter<QuestWorkValue>
{
public override QuestWorkValue Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.Number)
return new QuestWorkValue(reader.GetByte());
if (reader.TokenType != JsonTokenType.StartObject)
throw new JsonException();
byte? high = null, low = null;
while (reader.Read())
{
switch (reader.TokenType)
{
case JsonTokenType.PropertyName:
string? propertyName = reader.GetString();
if (propertyName == null || !reader.Read())
throw new JsonException();
switch (propertyName)
{
case nameof(QuestWorkValue.High):
high = reader.GetByte();
break;
case nameof(QuestWorkValue.Low):
low = reader.GetByte();
break;
default:
throw new JsonException();
}
break;
case JsonTokenType.EndObject:
return new QuestWorkValue(high, low);
default:
throw new JsonException();
}
}
throw new JsonException();
}
public override void Write(Utf8JsonWriter writer, QuestWorkValue value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
}

View File

@ -7,6 +7,7 @@ namespace Questionable.Model.V1;
public enum EAction
{
Esuna = 7568,
SiphonSnout = 18187,
RedGulal = 29382,
YellowGulal = 29383,
BlueGulal = 29384,
@ -16,6 +17,6 @@ public static class EActionExtensions
{
public static bool RequiresMount(this EAction action)
{
return action is EAction.RedGulal or EAction.YellowGulal or EAction.BlueGulal;
return action is EAction.SiphonSnout or EAction.RedGulal or EAction.YellowGulal or EAction.BlueGulal;
}
}

View File

@ -64,6 +64,7 @@ public sealed class QuestStep
public uint? ContentFinderConditionId { get; set; }
public IList<ESkipCondition> SkipIf { get; set; } = new List<ESkipCondition>();
public List<List<QuestWorkValue>?> RequiredQuestVariables { get; set; } = new();
public IList<short?> CompletionQuestVariablesFlags { get; set; } = new List<short?>();
public IList<DialogueChoice> DialogueChoices { get; set; } = new List<DialogueChoice>();
public IList<uint> PointMenuChoices { get; set; } = new List<uint>();

View File

@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
using Questionable.Model.V1.Converter;
namespace Questionable.Model.V1;
[JsonConverter(typeof(QuestWorkConfigConverter))]
public sealed class QuestWorkValue(byte? high, byte? low)
{
public QuestWorkValue(byte value)
: this((byte)(value >> 4), (byte)(value & 0xF))
{
}
public byte? High { get; set; } = high;
public byte? Low { get; set; } = low;
}

View File

@ -26,7 +26,9 @@ internal static class SkipCondition
var relevantConditions =
step.SkipIf.Where(x => x != ESkipCondition.AetheryteShortcutIfInSameTerritory).ToList();
if (relevantConditions.Count == 0 && step.CompletionQuestVariablesFlags.Count == 0)
if (relevantConditions.Count == 0 &&
step.CompletionQuestVariablesFlags.Count == 0 &&
step.RequiredQuestVariables.Count == 0)
return null;
return serviceProvider.GetRequiredService<CheckTask>()
@ -100,7 +102,8 @@ internal static class SkipCondition
InventoryManager* inventoryManager = InventoryManager.Instance();
if (inventoryManager->GetInventoryItemCount(Step.ItemId.Value) == 0)
{
logger.LogInformation("Skipping step, no item with itemId {ItemId} in inventory", Step.ItemId.Value);
logger.LogInformation("Skipping step, no item with itemId {ItemId} in inventory",
Step.ItemId.Value);
return true;
}
}
@ -124,11 +127,20 @@ internal static class SkipCondition
}
QuestWork? questWork = gameFunctions.GetQuestEx(QuestId);
if (questWork != null &&
QuestWorkUtils.MatchesQuestWork(Step.CompletionQuestVariablesFlags, questWork.Value, true))
if (questWork != null)
{
logger.LogInformation("Skipping step, as quest variables match");
return true;
if (QuestWorkUtils.MatchesQuestWork(Step.CompletionQuestVariablesFlags, questWork.Value, true))
{
logger.LogInformation("Skipping step, as quest variables match");
return true;
}
if (!QuestWorkUtils.MatchesRequiredQuestWorkConfig(Step.RequiredQuestVariables, questWork.Value,
logger))
{
logger.LogInformation("Skipping step, as required variables do not match");
return true;
}
}
return false;

View File

@ -2,6 +2,9 @@
using System.Collections.Generic;
using System.Linq;
using FFXIVClientStructs.FFXIV.Application.Network.WorkDefinitions;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Shared;
using Questionable.Model.V1;
namespace Questionable.Controller.Utils;
@ -45,4 +48,42 @@ internal static class QuestWorkUtils
return true;
}
public static bool MatchesRequiredQuestWorkConfig(List<List<QuestWorkValue>?> requiredQuestVariables,
QuestWork questWork, ILogger<SkipCondition.CheckTask> logger)
{
if (requiredQuestVariables.Count != 6 || requiredQuestVariables.All(x => x == null || x.Count == 0))
{
logger.LogInformation("No RQW defined");
return true;
}
for (int i = 0; i < 6; ++i)
{
if (requiredQuestVariables[i] == null)
{
logger.LogInformation("No RQW {Index} defined", i);
continue;
}
byte high = (byte)(questWork.Variables[i] >> 4);
byte low = (byte)(questWork.Variables[i] & 0xF);
foreach (QuestWorkValue expectedValue in requiredQuestVariables[i]!)
{
logger.LogInformation("H: {ExpectedHigh} - {ActualHigh}, L: {ExpectedLow} - {ActualLow}",
expectedValue.High, high, expectedValue.Low, low);
if (expectedValue.High != null && expectedValue.High != high)
continue;
if (expectedValue.Low != null && expectedValue.Low != low)
continue;
return true;
}
}
logger.LogInformation("Should execute step");
return false;
}
}