forked from aly/qstbak
muffin v6.27
This commit is contained in:
parent
1bcbf18654
commit
44d33a0b56
6 changed files with 59 additions and 21 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue