1
0
Fork 0
forked from aly/qstbak

muffin v7.4.1

This commit is contained in:
alydev 2025-12-20 04:56:36 +10:00
parent a4175abacd
commit 7ae14cf8b8
24 changed files with 2673 additions and 722 deletions

View file

@ -4,8 +4,6 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using Dalamud.Game;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.System.Framework;

View file

@ -74,7 +74,7 @@ internal sealed class ExcelFunctions
switch (excelSheet)
{
case "GimmickYesNo":
return _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId)?.Unknown0;
return _dataManager.GetExcelSheet<GimmickYesNo>().GetRowOrDefault(rowId)?.Message;
case "Warp":
return _dataManager.GetExcelSheet<Warp>().GetRowOrDefault(rowId)?.Name;
case "Addon":

View file

@ -4,9 +4,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Numerics;
using System.Runtime.InteropServices;
using Dalamud.Game;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.ClientState.Objects.SubKinds;
using Dalamud.Game.ClientState.Objects.Types;

View file

@ -32,6 +32,8 @@ internal sealed class QuestFunctions
private readonly QuestData _questData;
private readonly JournalData _journalData;
private readonly AetheryteFunctions _aetheryteFunctions;
private readonly AlliedSocietyQuestFunctions _alliedSocietyQuestFunctions;
@ -70,10 +72,11 @@ internal sealed class QuestFunctions
private ElementId? _lastLoggedAcceptedHiddenMsq;
public QuestFunctions(QuestRegistry questRegistry, QuestData questData, AetheryteFunctions aetheryteFunctions, AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, AlliedSocietyData alliedSocietyData, AetheryteData aetheryteData, Configuration configuration, IDataManager dataManager, IObjectTable objectTable, IClientState clientState, IGameGui gameGui, IAetheryteList aetheryteList, ILogger<QuestFunctions> logger)
public QuestFunctions(QuestRegistry questRegistry, QuestData questData, JournalData journalData, AetheryteFunctions aetheryteFunctions, AlliedSocietyQuestFunctions alliedSocietyQuestFunctions, AlliedSocietyData alliedSocietyData, AetheryteData aetheryteData, Configuration configuration, IDataManager dataManager, IObjectTable objectTable, IClientState clientState, IGameGui gameGui, IAetheryteList aetheryteList, ILogger<QuestFunctions> logger)
{
_questRegistry = questRegistry;
_questData = questData;
_journalData = journalData;
_aetheryteFunctions = aetheryteFunctions;
_alliedSocietyQuestFunctions = alliedSocietyQuestFunctions;
_alliedSocietyData = alliedSocietyData;
@ -870,7 +873,7 @@ internal sealed class QuestFunctions
{
if (IsQuestUnobtainable(questId, extraCompletedQuest))
{
return true;
return false;
}
QuestInfo questInfo = (QuestInfo)_questData.GetQuestInfo(questId);
if (questInfo.GrandCompany != FFXIVClientStructs.FFXIV.Client.UI.Agent.GrandCompany.None)
@ -891,10 +894,10 @@ internal sealed class QuestFunctions
{
return !IsDailyAlliedSocietyQuestAndAvailableToday(questId);
}
if (questInfo.IsMoogleDeliveryQuest)
if (_journalData.MoogleDeliveryGenreId.HasValue && questInfo.JournalGenre == _journalData.MoogleDeliveryGenreId.Value)
{
byte b = PlayerState.Instance()->DeliveryLevel;
if (extraCompletedQuest != null && _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo questInfo2) && questInfo2 is QuestInfo { IsMoogleDeliveryQuest: not false })
if (extraCompletedQuest != null && _questData.TryGetQuestInfo(extraCompletedQuest, out IQuestInfo questInfo2) && questInfo2 is QuestInfo questInfo3 && _journalData.MoogleDeliveryGenreId.HasValue && questInfo3.JournalGenre == _journalData.MoogleDeliveryGenreId.Value)
{
b++;
}
@ -1033,25 +1036,25 @@ internal sealed class QuestFunctions
{
return true;
}
if (questInfo2.JournalGenre >= 234 && questInfo2.JournalGenre <= 247)
if (questInfo2.JournalGenre.HasValue && _journalData.SeasonalEventGenreIds.Contains(questInfo2.JournalGenre.Value))
{
if (_questRegistry.TryGetQuest(questId, out Questionable.Model.Quest quest))
{
List<QuestSequence> list = quest?.Root?.QuestSequence;
if (list != null && list.Count > 0)
{
goto IL_0288;
goto IL_027a;
}
}
if (_alreadyLoggedUnobtainableQuestsDetailed.Add(questId.Value))
{
_questData.ApplySeasonalOverride(questId, isSeasonal: true, null);
_logger.LogDebug("Quest {QuestId} unobtainable: journal genre is 'event (seasonal)' and no quest path", questId);
_logger.LogDebug("Quest {QuestId} unobtainable: journal genre {Genre} is 'event (seasonal)' and no quest path", questId, questInfo2.JournalGenre);
}
return true;
}
goto IL_0288;
IL_0288:
goto IL_027a;
IL_027a:
if (questInfo2.QuestLocks.Count > 0)
{
int num = questInfo2.QuestLocks.Count((QuestId x) => IsQuestComplete(x) || x.Equals(extraCompletedQuest));