From cbebc3d8d960b8a3e816a2db4cfffbff0822c2d5 Mon Sep 17 00:00:00 2001 From: Thomas Brooks <34015422+NostraThomas99@users.noreply.github.com> Date: Sun, 1 Dec 2024 14:38:11 -0600 Subject: [PATCH 1/3] Fix grid MB movement --- RebornToolbox/Common/IpcSubscribers.cs | 3 +++ RebornToolbox/Features/MBShoppingList/MBShoppingList.cs | 7 ++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/RebornToolbox/Common/IpcSubscribers.cs b/RebornToolbox/Common/IpcSubscribers.cs index 280131d..7177aab 100644 --- a/RebornToolbox/Common/IpcSubscribers.cs +++ b/RebornToolbox/Common/IpcSubscribers.cs @@ -149,6 +149,9 @@ internal static bool IsEnabled [EzIPC("Lifestream.Abort", applyPrefix: false)] internal static readonly Action Abort; + + [EzIPC("Lifestream.AethernetTeleport", applyPrefix: false)] + internal static readonly Func AethernetTeleport; internal static void Dispose() => IPCSubscriber_Common.DisposeAll(_disposalTokens); } diff --git a/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs b/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs index 1cdf9f8..d92bc7a 100644 --- a/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs +++ b/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs @@ -151,11 +151,8 @@ private void QueueUldahMoveToMarketboardTasks() private void QueueGridMoveToMarketboardTasks() { - TaskManager.Enqueue(() => VNavmesh_IPCSubscriber.Nav_IsReady()); - TaskManager.Enqueue(() => - VNavmesh_IPCSubscriber.SimpleMove_PathfindAndMoveTo(oldGridTransitionPosition, false)); - TaskManager.Enqueue(() => - !VNavmesh_IPCSubscriber.Path_IsRunning() && !VNavmesh_IPCSubscriber.Nav_PathfindInProgress()); + TaskManager.Enqueue(() => Lifestream_IPCSubscriber.AethernetTeleport("bower")); + TaskManager.Enqueue(() => Svc.ClientState.TerritoryType == 133); TaskManager.Enqueue(GenericHelpers.IsScreenReady); TaskManager.Enqueue(() => VNavmesh_IPCSubscriber.Nav_IsReady()); TaskManager.Enqueue(() => From eadfa69d8abfcadc33035b004453432011bce9fa Mon Sep 17 00:00:00 2001 From: Thomas Brooks <34015422+NostraThomas99@users.noreply.github.com> Date: Sun, 1 Dec 2024 14:48:07 -0600 Subject: [PATCH 2/3] Support Uldah --- .../Features/MBShoppingList/MBShoppingList.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs b/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs index d92bc7a..c2c612c 100644 --- a/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs +++ b/RebornToolbox/Features/MBShoppingList/MBShoppingList.cs @@ -118,9 +118,9 @@ public void QueueMoveToMarketboardTasks() case 129: MoveToNearestMarketboard(); return; - // case 130: - // QueueUldahMoveToMarketboardTasks(); - // return; + case 130: + QueueUldahMoveToMarketboardTasks(); + return; case 132: QueueGridMoveToMarketboardTasks(); return; @@ -134,17 +134,15 @@ public void QueueMoveToMarketboardTasks() private void QueueUldahMoveToMarketboardTasks() { - TaskManager.Enqueue(() => VNavmesh_IPCSubscriber.Nav_IsReady()); - TaskManager.Enqueue(() => VNavmesh_IPCSubscriber.SimpleMove_PathfindAndMoveTo(uldahTransitionPosition, false)); - TaskManager.EnqueueDelay(5000); - TaskManager.Enqueue(() => - !VNavmesh_IPCSubscriber.Path_IsRunning() && !VNavmesh_IPCSubscriber.Nav_PathfindInProgress()); + TaskManager.Enqueue(() => Lifestream_IPCSubscriber.AethernetTeleport("sapphire")); + TaskManager.Enqueue(() => Svc.ClientState.TerritoryType == 131); TaskManager.Enqueue(GenericHelpers.IsScreenReady); TaskManager.Enqueue(() => VNavmesh_IPCSubscriber.Nav_IsReady()); TaskManager.Enqueue(MoveToNearestMarketboard); } private uint marketboardDataId = 2000402; + private uint otherMoreStupidMarketboardDataId = 2000442; private Vector3 oldGridTransitionPosition = new Vector3(11.458f, 1.275f, -15.702f); private Vector3 oldGridBowerHousePosition = new Vector3(141.558f, 13.571f, -97.028f); @@ -165,7 +163,7 @@ private void QueueGridMoveToMarketboardTasks() private void MoveToNearestMarketboard() { - var marketBoard = Svc.Objects.Where(o => o.DataId == marketboardDataId) + var marketBoard = Svc.Objects.Where(o => o.DataId == marketboardDataId || o.DataId == otherMoreStupidMarketboardDataId) .OrderBy(o => Vector3.Distance(o.Position, Player.Position)).FirstOrDefault(); if (marketBoard == null) { From e0bf2c37240f16dd1a996adc4817a58e52bbd8f6 Mon Sep 17 00:00:00 2001 From: Thomas Brooks <34015422+NostraThomas99@users.noreply.github.com> Date: Sun, 1 Dec 2024 15:43:22 -0600 Subject: [PATCH 3/3] fix feather queuing --- .../Features/ChocoboRacing/ChocoboRacing.cs | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/RebornToolbox/Features/ChocoboRacing/ChocoboRacing.cs b/RebornToolbox/Features/ChocoboRacing/ChocoboRacing.cs index 5bdb563..9648ab0 100644 --- a/RebornToolbox/Features/ChocoboRacing/ChocoboRacing.cs +++ b/RebornToolbox/Features/ChocoboRacing/ChocoboRacing.cs @@ -131,7 +131,9 @@ private unsafe void OnUpdate(IFramework framework) return; } - var selectedDutyName = addon->AtkValues[18].GetValueAsString(); + var selectedDutyName = addon->AtkValues[18].GetValueAsString() + .Replace("\u0002\u001a\u0002\u0002\u0003", string.Empty) + .Replace("\u0002\u001a\u0002\u0001\u0003", string.Empty); if (selectedDutyName.Contains(GetSelectedDutyName(), StringComparison.InvariantCultureIgnoreCase)) { Callback.Fire((AtkUnitBase*)addon, true, 12, 0); @@ -145,28 +147,20 @@ private string GetSelectedDutyName() var row = ContentRoulettes.First(c => c.RowId == routeId); return row.Name.ToString(); } - - // Credit: https://github.com/ffxivcode/AutoDuty/blob/26a61eefdba148bc5f46694f915f402315e9f128/AutoDuty/Helpers/QueueHelper.cs#L247 - private uint HeadersCount(uint before, List list) + private static uint HeadersCount(int before, List list) { - uint count = 0; - for (int i = 0; i < before; i++) - { - if (list[i].UIntValues[0] == 4 || list[i].UIntValues[0] == 2) - count++; - } - - return count; + return (uint)list.Take(before).Count(item => item.UIntValues[0] == 0 || item.UIntValues[0] == 1); } -// Credit: https://github.com/ffxivcode/AutoDuty/blob/26a61eefdba148bc5f46694f915f402315e9f128/AutoDuty/Helpers/QueueHelper.cs#L258 private unsafe void SelectDuty(AddonContentsFinder* addonContentsFinder) { if (addonContentsFinder == null) return; - - var vectorDutyListItems = addonContentsFinder->DutyList->Items; - List listAtkComponentTreeListItems = []; - vectorDutyListItems.ForEach(pointAtkComponentTreeListItem => listAtkComponentTreeListItems.Add(*(pointAtkComponentTreeListItem.Value))); - Callback.Fire((AtkUnitBase*)addonContentsFinder, true, 3, HeadersCount((uint)addonContentsFinder->DutyList->SelectedItemIndex, listAtkComponentTreeListItems) + 1); // - (HeadersCount(addonContentsFinder->DutyList->SelectedItemIndex, listAtkComponentTreeListItems) + 1)); + var dutyItems = addonContentsFinder->DutyList->Items; + var itemList = dutyItems.Select(itemPtr => *(itemPtr.Value)).ToList(); + int selectedIndex = addonContentsFinder->DutyList->SelectedItemIndex; + uint headersBeforeSelected = HeadersCount(selectedIndex, itemList); + uint callbackIndex = headersBeforeSelected + 1; + Callback.Fire((AtkUnitBase*)addonContentsFinder, true, 3, callbackIndex); } + } \ No newline at end of file