1
0
Fork 0
forked from aly/qstbak

muffin v6.27

This commit is contained in:
alydev 2025-10-18 23:54:48 +10:00
parent 1bcbf18654
commit 44d33a0b56
6 changed files with 59 additions and 21 deletions

View file

@ -48793,7 +48793,7 @@ public static class AssemblyQuestLoader
span[index] = "liza";
questRoot13.Author = list119;
questRoot13.IsSeasonalQuest = true;
questRoot13.SeasonalQuestExpiry = new DateTime(2025, 12, 23, 0, 0, 0, DateTimeKind.Utc);
questRoot13.SeasonalQuestExpiry = new DateTime(2025, 12, 23, 14, 59, 0, DateTimeKind.Utc);
index = 1;
List<QuestSequence> list120 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list120, index);

View file

@ -235,7 +235,7 @@ internal static class Interact
if (taxiStandId.HasValue)
{
byte valueOrDefault2 = taxiStandId.GetValueOrDefault();
if (UIState.Instance()->IsChocoboTaxiStandUnlocked(valueOrDefault2))
if (UIState.Instance()->IsChocoboTaxiStandUnlocked((uint)(valueOrDefault2 + 1179648)))
{
return ETaskResult.TaskComplete;
}

View file

@ -302,15 +302,18 @@ internal static class SkipCondition
private bool CheckAetherCurrentCondition(QuestStep step)
{
if (step != null && step.DataId.HasValue && step.InteractionType == EInteractionType.AttuneAetherCurrent && gameFunctions.IsAetherCurrentUnlocked(step.DataId.Value))
if (step.InteractionType == EInteractionType.AttuneAetherCurrent)
{
if (configuration.Advanced.SkipAetherCurrents)
{
logger.LogInformation("Skipping step, as aether currents should be skipped");
return true;
}
if (step.DataId.HasValue && gameFunctions.IsAetherCurrentUnlocked(step.DataId.Value))
{
logger.LogInformation("Skipping step, as current is unlocked");
return true;
}
if (step != null && step.InteractionType == EInteractionType.AttuneAetherCurrent && configuration.Advanced.SkipAetherCurrents)
{
logger.LogInformation("Skipping step, as aether currents should be skipped");
return true;
}
return false;
}
@ -435,7 +438,7 @@ internal static class SkipCondition
if (taxiStandId.HasValue)
{
byte valueOrDefault = taxiStandId.GetValueOrDefault();
if (ptr->IsChocoboTaxiStandUnlocked(valueOrDefault))
if (ptr->IsChocoboTaxiStandUnlocked((uint)(valueOrDefault + 1179648)))
{
logger.LogInformation("Skipping step, as taxi stand {TaxiStandId} is unlocked", valueOrDefault);
return true;

View file

@ -215,18 +215,40 @@ internal sealed class CommandHandler : IDisposable
List<string> list3 = new List<string>();
ExcelSheet<ChocoboTaxiStand> excelSheet = _dataManager.GetExcelSheet<ChocoboTaxiStand>();
UIState* ptr = UIState.Instance();
for (byte b2 = 0; b2 < ptr->UnlockedChocoboTaxiStandsBitmask.Length * 8; b2++)
if (ptr == null)
{
if (ptr->IsChocoboTaxiStandUnlocked(b2))
_chatGui.PrintError("UIState is null", "Questionable", 576);
break;
}
for (int i = 0; i < 192; i++)
{
list3.Add($"{excelSheet.GetRow((uint)(b2 + 1179648)).PlaceName} ({b2})");
uint num = (uint)(i + 1179648);
try
{
if (excelSheet.HasRow(num) && ptr->IsChocoboTaxiStandUnlocked(num))
{
string value = excelSheet.GetRow(num).PlaceName.ToString();
if (string.IsNullOrEmpty(value))
{
value = "Unknown";
}
list3.Add($"{value} (ID: {i}, Row: 0x{num:X})");
}
}
_chatGui.Print("Unlocked taxi stands:", "Questionable", 576);
catch
{
}
}
_chatGui.Print($"Unlocked taxi stands ({list3.Count}):", "Questionable", 576);
if (list3.Count == 0)
{
_chatGui.Print(" (No unlocked taxi stands found)", "Questionable", 576);
break;
}
{
foreach (string item in list3)
{
_chatGui.Print("- " + item, "Questionable", 576);
_chatGui.Print(" - " + item, "Questionable", 576);
}
break;
}
@ -237,16 +259,26 @@ internal sealed class CommandHandler : IDisposable
for (byte b = 0; b < 4; b++)
{
GameMain.Festival festival = GameMain.Instance()->ActiveFestivals[b];
if (festival.Id != 0)
if (festival.Id == 0)
{
list.Add($"{festival.Id}({festival.Phase})");
list.Add($"Slot {b}: None");
}
else
{
list.Add($"Slot {b}: {festival.Id}({festival.Phase})");
}
}
_chatGui.Print("Active festivals: " + string.Join(", ", list), "Questionable", 576);
_chatGui.Print("Festival slots:", "Questionable", 576);
{
foreach (string item2 in list)
{
_chatGui.Print(" " + item2, "Questionable", 576);
}
break;
}
}
}
}
private bool OpenSetupIfNeeded(string arguments)
{

View file

@ -534,7 +534,7 @@ internal sealed class GameFunctions
return Array.Empty<uint>();
}
List<uint> list = new List<uint>();
for (uint num = 0u; num < ptr->UnlockLinkBitmask.Length * 8; num++)
for (uint num = 0u; num < ptr->UnlockLinksBitArray.ByteLength * 8; num++)
{
if (ptr->IsUnlockLinkUnlocked(num))
{

View file

@ -56,6 +56,9 @@
<Reference Include="JsonSchema.Net">
<HintPath>..\..\JsonSchema.Net.dll</HintPath>
</Reference>
<Reference Include="InteropGenerator.Runtime">
<HintPath>C:\Users\Aly\AppData\Roaming\XIVLauncher\addon\Hooks\dev\InteropGenerator.Runtime.dll</HintPath>
</Reference>
<Reference Include="NotificationMasterAPI">
<HintPath>..\..\NotificationMasterAPI.dll</HintPath>
</Reference>