forked from aly/qstbak
muffin v7.4.10
This commit is contained in:
parent
2df81c5d15
commit
b8dd142c23
47 changed files with 3604 additions and 1058 deletions
|
|
@ -179,7 +179,6 @@ internal sealed class QuestFunctions
|
|||
Questionable.Model.Quest quest;
|
||||
bool flag = _questRegistry.TryGetQuest(questReference.CurrentQuest, out quest);
|
||||
bool flag2 = IsQuestAccepted(questReference.CurrentQuest);
|
||||
_logger.LogTrace("MSQ check: QuestId={QuestId}, InRegistry={InRegistry}, Level={QuestLevel}, CurrentLevel={CurrentLevel}, IsAccepted={IsAccepted}", questReference.CurrentQuest, flag, ((int?)quest?.Info.Level) ?? (-1), currentLevel, flag2);
|
||||
EClassJob valueOrDefault = ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault();
|
||||
if (valueOrDefault != EClassJob.Adventurer)
|
||||
{
|
||||
|
|
@ -193,7 +192,7 @@ internal sealed class QuestFunctions
|
|||
return new QuestReference(questInfo.QuestId, QuestManager.GetQuestSequence(questInfo.QuestId.Value), questReference.State);
|
||||
}
|
||||
}
|
||||
if (flag && quest.Info.Level > currentLevel && !flag2)
|
||||
if (flag && quest.Info.Level > currentLevel && !flag2 && _configuration.General.MsqPriority != Configuration.EMsqPriorityMode.Manual)
|
||||
{
|
||||
if (_lastLoggedLevelLockedMsq != questReference.CurrentQuest)
|
||||
{
|
||||
|
|
@ -208,10 +207,10 @@ internal sealed class QuestFunctions
|
|||
List<QuestId> lockedQuests = _questData.GetLockedClassQuests();
|
||||
List<QuestInfo> list = (from x in classJobQuests.Where(delegate(QuestInfo x)
|
||||
{
|
||||
bool num2 = x.Level <= currentLevel && x.Level <= 5;
|
||||
bool flag3 = !IsQuestComplete(x.QuestId);
|
||||
bool flag4 = !lockedQuests.Contains(x.QuestId);
|
||||
return num2 && flag3 && flag4;
|
||||
bool num3 = x.Level <= currentLevel && x.Level <= 5;
|
||||
bool flag4 = !IsQuestComplete(x.QuestId);
|
||||
bool flag5 = !lockedQuests.Contains(x.QuestId);
|
||||
return num3 && flag4 && flag5;
|
||||
})
|
||||
orderby x.Level
|
||||
select x).ToList();
|
||||
|
|
@ -276,24 +275,33 @@ internal sealed class QuestFunctions
|
|||
_loggedNoClassQuestsAvailable = false;
|
||||
_loggedAdventurerClass = false;
|
||||
}
|
||||
if (questReference.CurrentQuest != null && !IsQuestAccepted(questReference.CurrentQuest))
|
||||
bool num = questReference.CurrentQuest != null && !IsQuestAccepted(questReference.CurrentQuest);
|
||||
bool flag3 = true;
|
||||
if (num)
|
||||
{
|
||||
if (allowNewMsq)
|
||||
switch (_configuration.General.MsqPriority)
|
||||
{
|
||||
return questReference;
|
||||
case Configuration.EMsqPriorityMode.Always:
|
||||
if (allowNewMsq)
|
||||
{
|
||||
return questReference;
|
||||
}
|
||||
break;
|
||||
case Configuration.EMsqPriorityMode.Manual:
|
||||
flag3 = false;
|
||||
break;
|
||||
}
|
||||
questReference = QuestReference.NoQuest(questReference.State);
|
||||
}
|
||||
List<(ElementId, byte)> list3 = new List<(ElementId, byte)>();
|
||||
for (int num = ptr->TrackedQuests.Length - 1; num >= 0; num--)
|
||||
for (int num2 = ptr->TrackedQuests.Length - 1; num2 >= 0; num2--)
|
||||
{
|
||||
TrackingWork trackingWork = ptr->TrackedQuests[num];
|
||||
TrackingWork trackingWork = ptr->TrackedQuests[num2];
|
||||
switch (trackingWork.QuestType)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
ElementId elementId2 = new QuestId(ptr->NormalQuests[trackingWork.Index].QuestId);
|
||||
if (_questRegistry.IsKnownQuest(elementId2))
|
||||
if (_questRegistry.IsKnownQuest(elementId2) && !IsQuestBlacklisted(elementId2))
|
||||
{
|
||||
list3.Add((elementId2, QuestManager.GetQuestSequence(elementId2.Value)));
|
||||
}
|
||||
|
|
@ -356,7 +364,7 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return new QuestReference(elementId3, QuestManager.GetQuestSequence(elementId3.Value), questReference.State);
|
||||
}
|
||||
if (questReference.CurrentQuest != null)
|
||||
if (flag3 && questReference.CurrentQuest != null)
|
||||
{
|
||||
return questReference;
|
||||
}
|
||||
|
|
@ -687,6 +695,10 @@ internal sealed class QuestFunctions
|
|||
|
||||
public unsafe bool IsReadyToAcceptQuest(ElementId questId, bool ignoreLevel = false)
|
||||
{
|
||||
if (IsQuestBlacklisted(questId))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
_questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest);
|
||||
if (quest != null)
|
||||
{
|
||||
|
|
@ -712,15 +724,15 @@ internal sealed class QuestFunctions
|
|||
{
|
||||
return false;
|
||||
}
|
||||
goto IL_0077;
|
||||
goto IL_0082;
|
||||
}
|
||||
}
|
||||
if (IsQuestAcceptedOrComplete(questId))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
goto IL_0077;
|
||||
IL_0077:
|
||||
goto IL_0082;
|
||||
IL_0082:
|
||||
if (IsQuestLocked(questId))
|
||||
{
|
||||
return false;
|
||||
|
|
@ -752,6 +764,11 @@ internal sealed class QuestFunctions
|
|||
return true;
|
||||
}
|
||||
|
||||
public bool IsQuestBlacklisted(ElementId questId)
|
||||
{
|
||||
return _configuration.General.BlacklistedQuests.Contains(questId);
|
||||
}
|
||||
|
||||
public bool IsQuestAcceptedOrComplete(ElementId elementId)
|
||||
{
|
||||
if (!IsQuestComplete(elementId))
|
||||
|
|
@ -1069,18 +1086,17 @@ internal sealed class QuestFunctions
|
|||
List<QuestSequence> list = quest?.Root?.QuestSequence;
|
||||
if (list != null && list.Count > 0)
|
||||
{
|
||||
goto IL_0228;
|
||||
goto IL_01fd;
|
||||
}
|
||||
}
|
||||
if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value))
|
||||
{
|
||||
_questData.ApplySeasonalOverride(questId, isSeasonal: true, null);
|
||||
_logger.LogDebug("Quest {QuestId} unobtainable: journal genre {Genre} is 'event (seasonal)' and no quest path", questId, questInfo2.JournalGenre);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
goto IL_0228;
|
||||
IL_0228:
|
||||
goto IL_01fd;
|
||||
IL_01fd:
|
||||
if (questInfo2.QuestLocks.Count > 0)
|
||||
{
|
||||
int num = questInfo2.QuestLocks.Count((QuestId x) => IsQuestComplete(x) || x.Equals(extraCompletedQuest));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue