Add additional flying steps if too far away from the mount-NPC for Vath + Vanu Vanu dailies
This commit is contained in:
parent
58ec1259f5
commit
6548b5206e
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 401
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016093,
|
"DataId": 1016093,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -57,7 +81,14 @@
|
|||||||
"Action": "Buffet (Sanuwa)",
|
"Action": "Buffet (Sanuwa)",
|
||||||
"StopDistance": 3,
|
"StopDistance": 3,
|
||||||
"$": "0 0 0 0 0 0 --> 1 0 0 0 0 16",
|
"$": "0 0 0 0 0 0 --> 1 0 0 0 0 16",
|
||||||
"CompletionQuestVariablesFlags": [null,null,null,null,null,16]
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
16
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -81,7 +112,14 @@
|
|||||||
"Action": "Buffet (Sanuwa)",
|
"Action": "Buffet (Sanuwa)",
|
||||||
"StopDistance": 3,
|
"StopDistance": 3,
|
||||||
"$": "1 0 0 0 0 16 --> 2 0 0 0 0 80",
|
"$": "1 0 0 0 0 16 --> 2 0 0 0 0 80",
|
||||||
"CompletionQuestVariablesFlags": [null,null,null,null,null,64]
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -105,7 +143,14 @@
|
|||||||
"Action": "Buffet (Sanuwa)",
|
"Action": "Buffet (Sanuwa)",
|
||||||
"StopDistance": 3,
|
"StopDistance": 3,
|
||||||
"$": "2 0 0 0 0 80 --> 3 0 0 0 0 112",
|
"$": "2 0 0 0 0 80 --> 3 0 0 0 0 112",
|
||||||
"CompletionQuestVariablesFlags": [null,null,null,null,null,32]
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 401
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016093,
|
"DataId": 1016093,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 401
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016093,
|
"DataId": 1016093,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -35,6 +35,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 401
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016093,
|
"DataId": 1016093,
|
||||||
"Position": {
|
"Position": {
|
||||||
@ -72,7 +96,14 @@
|
|||||||
"InteractionType": "Action",
|
"InteractionType": "Action",
|
||||||
"Action": "Buffet (Sanuwa)",
|
"Action": "Buffet (Sanuwa)",
|
||||||
"Fly": true,
|
"Fly": true,
|
||||||
"CompletionQuestVariablesFlags": [null,null,null,null,null,32]
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
32
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016221,
|
"DataId": 1016221,
|
||||||
@ -85,7 +116,14 @@
|
|||||||
"InteractionType": "Action",
|
"InteractionType": "Action",
|
||||||
"Action": "Buffet (Sanuwa)",
|
"Action": "Buffet (Sanuwa)",
|
||||||
"Fly": true,
|
"Fly": true,
|
||||||
"CompletionQuestVariablesFlags": [null,null,null,null,null,64]
|
"CompletionQuestVariablesFlags": [
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
64
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016220,
|
"DataId": 1016220,
|
||||||
|
@ -36,6 +36,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 401
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016093,
|
"DataId": 1016093,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -36,6 +36,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 2,
|
"Sequence": 2,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": -776.0281,
|
||||||
|
"Y": -133.35559,
|
||||||
|
"Z": -414.32825
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 401
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1016093,
|
"DataId": 1016093,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 398
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1017031,
|
"DataId": 1017031,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 398
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1017031,
|
"DataId": 1017031,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 398
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1017031,
|
"DataId": 1017031,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -20,6 +20,30 @@
|
|||||||
{
|
{
|
||||||
"Sequence": 1,
|
"Sequence": 1,
|
||||||
"Steps": [
|
"Steps": [
|
||||||
|
{
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"StopDistance": 3,
|
||||||
|
"TerritoryId": 398,
|
||||||
|
"InteractionType": "WalkTo",
|
||||||
|
"Fly": true,
|
||||||
|
"SkipConditions": {
|
||||||
|
"StepIf": {
|
||||||
|
"NearPosition": {
|
||||||
|
"Position": {
|
||||||
|
"X": 74.20459,
|
||||||
|
"Y": -48.533592,
|
||||||
|
"Z": -171.12994
|
||||||
|
},
|
||||||
|
"MaximumDistance": 50,
|
||||||
|
"TerritoryId": 398
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DataId": 1017031,
|
"DataId": 1017031,
|
||||||
"Position": {
|
"Position": {
|
||||||
|
@ -152,11 +152,13 @@ internal sealed unsafe class QuestFunctions
|
|||||||
{
|
{
|
||||||
// if we have multiple quests to turn in for an allied society, try and complete all of them
|
// if we have multiple quests to turn in for an allied society, try and complete all of them
|
||||||
var (firstTrackedQuest, firstTrackedSequence) = trackedQuests.First();
|
var (firstTrackedQuest, firstTrackedSequence) = trackedQuests.First();
|
||||||
EAlliedSociety firstTrackedAlliedSociety = _alliedSocietyData.GetCommonAlliedSocietyTurnIn(firstTrackedQuest);
|
EAlliedSociety firstTrackedAlliedSociety =
|
||||||
|
_alliedSocietyData.GetCommonAlliedSocietyTurnIn(firstTrackedQuest);
|
||||||
if (firstTrackedAlliedSociety != EAlliedSociety.None)
|
if (firstTrackedAlliedSociety != EAlliedSociety.None)
|
||||||
{
|
{
|
||||||
var alliedQuestsForSameSociety = trackedQuests.Skip(1)
|
var alliedQuestsForSameSociety = trackedQuests.Skip(1)
|
||||||
.Where(quest => _alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety)
|
.Where(quest =>
|
||||||
|
_alliedSocietyData.GetCommonAlliedSocietyTurnIn(quest.Quest) == firstTrackedAlliedSociety)
|
||||||
.ToList();
|
.ToList();
|
||||||
if (alliedQuestsForSameSociety.Count > 0)
|
if (alliedQuestsForSameSociety.Count > 0)
|
||||||
{
|
{
|
||||||
@ -177,14 +179,15 @@ internal sealed unsafe class QuestFunctions
|
|||||||
// also include the first quest in the list for those
|
// also include the first quest in the list for those
|
||||||
alliedQuestsForSameSociety.Insert(0, (firstTrackedQuest, firstTrackedSequence));
|
alliedQuestsForSameSociety.Insert(0, (firstTrackedQuest, firstTrackedSequence));
|
||||||
|
|
||||||
_alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety, out uint[]? normalNpcs,
|
_alliedSocietyData.GetCommonAlliedSocietyNpcs(firstTrackedAlliedSociety,
|
||||||
|
out uint[]? normalNpcs,
|
||||||
out _);
|
out _);
|
||||||
|
|
||||||
if (normalNpcs.Length > 0)
|
if (normalNpcs.Length > 0)
|
||||||
{
|
{
|
||||||
var talkToNormalNpcs = alliedQuestsForSameSociety
|
var talkToNormalNpcs = alliedQuestsForSameSociety
|
||||||
.Where(x => x.Sequence < 255)
|
.Where(x => x.Sequence < 255)
|
||||||
.Where(x => IsInteractStep(x.Quest, x.Sequence, normalNpcs))
|
.Where(x => IsInteractSequence(x.Quest, x.Sequence, normalNpcs))
|
||||||
.Cast<(ElementId, byte)?>()
|
.Cast<(ElementId, byte)?>()
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
if (talkToNormalNpcs != null)
|
if (talkToNormalNpcs != null)
|
||||||
@ -299,13 +302,16 @@ internal sealed unsafe class QuestFunctions
|
|||||||
_alliedSocietyData.Mounts.ContainsKey(battleChara->Mount.MountId);
|
_alliedSocietyData.Mounts.ContainsKey(battleChara->Mount.MountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsInteractStep(ElementId questId, byte sequence, uint[] dataIds)
|
private bool IsInteractSequence(ElementId questId, byte sequenceNo, uint[] dataIds)
|
||||||
{
|
{
|
||||||
if (_questRegistry.TryGetQuest(questId, out var quest))
|
if (_questRegistry.TryGetQuest(questId, out var quest))
|
||||||
{
|
{
|
||||||
QuestStep? firstStepOfSequence = quest.FindSequence(sequence)?.FindStep(0);
|
QuestSequence? sequence = quest.FindSequence(sequenceNo);
|
||||||
return firstStepOfSequence is { InteractionType: EInteractionType.Interact, DataId: { } dataId } &&
|
return sequence != null &&
|
||||||
dataIds.Contains(dataId);
|
sequence.Steps.All(x =>
|
||||||
|
x is { InteractionType: EInteractionType.WalkTo } ||
|
||||||
|
(x is { InteractionType: EInteractionType.Interact, DataId: { } dataId } &&
|
||||||
|
dataIds.Contains(dataId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user