What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

[Release] RebornBuddy64 Version 1.0.681 - DirectX11 / x64 bit compatible

dark knight

Before:
struct: ResourceTable: { timer: 0, timer2: 0, offset_8: 0, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 0, offset_D: 0, offset_E: 0 }

during :
struct: ResourceTable: { timer: 50, timer2: 0, offset_8: 50, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 0, offset_D: 0, offset_E: 0 }

full:
struct: ResourceTable: { timer: 100, timer2: 0, offset_8: 100, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 0, offset_D: 0, offset_E: 0 }

Is that for BlackBlood? That's already supported, need values for Dark Arts active and living shadow active
 
Thanks for the quick update Mastahg. I wanted to ask, is the navigator point sampling something that should work, and if so is this the correct way to use it?

Code:
            var point = target.Convert().ToVector2();
            var radius = Math.Min(GroundMovementThreshold, SampleRadius);
            var circle = new ff14bot.Pathing.SampleCircle(point, radius);

            var sampleParams = new SamplePointsParameters
            {
                Circles = new List<ff14bot.Pathing.SampleCircle> {circle},
                NavigabilityLocation = target.Convert(),
                ZoneId = WorldManager.ZoneId,
                NumPoints = SamplePointCount,
                Type = ff14bot.Pathing.SamplePointsType.NavigableFrom,
                NavigableFromDestinationTolerance = radius
            };

            var sampledPoints = await Coroutine.ExternalTask(Navigator.NavigationProvider.SamplePointsAsync(sampleParams)) ?? new List<Vector3>();

Doing that gets me disconnected from the nav server it seems. I'm just not sure if sampling is a function you intended to expose or not, but it seems very useful for finding potential landing points near a target.
 
Thanks for the quick update Mastahg. I wanted to ask, is the navigator point sampling something that should work, and if so is this the correct way to use it?

Code:
            var point = target.Convert().ToVector2();
            var radius = Math.Min(GroundMovementThreshold, SampleRadius);
            var circle = new ff14bot.Pathing.SampleCircle(point, radius);

            var sampleParams = new SamplePointsParameters
            {
                Circles = new List<ff14bot.Pathing.SampleCircle> {circle},
                NavigabilityLocation = target.Convert(),
                ZoneId = WorldManager.ZoneId,
                NumPoints = SamplePointCount,
                Type = ff14bot.Pathing.SamplePointsType.NavigableFrom,
                NavigableFromDestinationTolerance = radius
            };

            var sampledPoints = await Coroutine.ExternalTask(Navigator.NavigationProvider.SamplePointsAsync(sampleParams)) ?? new List<Vector3>();

Doing that gets me disconnected from the nav server it seems. I'm just not sure if sampling is a function you intended to expose or not, but it seems very useful for finding potential landing points near a target.

It is used internally in a few locations. It's part of the code that was ported over from flightor but I haven't heavly vetted the output. You might be requesting too many points?

Code:
            var circles = new List<SampleCircle>() { new SampleCircle(new Vector2(idleLocation.X, idleLocation.Z), 15f) };
            var samplePoints = SamplePointsParameters.NavigableTo(circles, 1, Core.Player.Location, WorldManager.ZoneId);
            var points = await Coroutine.ExternalTask(Navigator.SamplePointsAsync(samplePoints));
is how its used in fatebot to find a place to idle.
 
@mastahg I don't know if this is even remotely helpful, but, I am trying to find the loot window to make an auto loot roller/voter.

I have the following data, but I'm not sure where to go with it...

ClearLog();

Log(RaptureAtkUnitManager.GetWindowByName("NeedGreed"));
Log(RaptureAtkUnitManager.GetWindowByName("_NotificationLoot"));
Log(RaptureAtkUnitManager.GetWindowByName("VoteMvp"));
Log(RaptureAtkUnitManager.GetWindowByName("NotificationIcMvp"));

foreach (var control in RaptureAtkUnitManager.Controls)
{
if (control.Name == "NeedGreed")
{
Log(control.Name + ":" + control.Pointer.ToString("X") + " - " + control.VTable.ToString("X"));

var x = new[] {13, 14, 15, 16, 17 };
for (int y = 0; y < 5; y++)
{
Log(x[y].ToString() + " - " + control.FindButton(x[y]).Label.Text+ ": " + control.FindButton(x[y]).Clickable.ToString());
}
}
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~

NeedGreed
_NotificationLoot
null
null
NeedGreed:1A609D2CBA0 - 7FF6BC3417F8
13 - Need: False
14 - Greed: True
15 - Pass: True
16 - Loot Recipient: True
17 - Greed Only: True

~~~~~~~~~~~~~~~~~~~~~~

Would you be able to make anything out of this? Say, if that notification is up, activate it, and once the window is open have a button for each option? We could then iterate each item and have it send a button click for Need, Greed, or Pass?

Edit: Made it a little more readable...

Edit 2: So, from looking at the loot window vs the Button Labels,

13 is CanNeed
14 is CanGreed
15 is Pass
16 is CanRecieve (Can Vote on the item at all)
17 is CanGreedOnly (Cannot Need, but can Greed)

What I don't know yet, is how to look at all of the items in the Loot List. This is just for the currently selected one, that I can tell. Needs more testing.
 
Last edited:
GetTo tries to attune to Eulmore Aetheryte when it can't. The Aethernets can be used but the Aetheryte is inaccessible until completing MSQ: 69167 or 69168. I've already unlocked it so I'm going off memory here. I am running thru the MSQ again as we speak, so I can be more precise once I get there.
 
@mastahg I don't know if this is even remotely helpful, but, I am trying to find the loot window to make an auto loot roller/voter.

I have the following data, but I'm not sure where to go with it...

ClearLog();

Log(RaptureAtkUnitManager.GetWindowByName("NeedGreed"));
Log(RaptureAtkUnitManager.GetWindowByName("_NotificationLoot"));
Log(RaptureAtkUnitManager.GetWindowByName("VoteMvp"));
Log(RaptureAtkUnitManager.GetWindowByName("NotificationIcMvp"));

foreach (var control in RaptureAtkUnitManager.Controls)
{
if (control.Name == "NeedGreed")
{
Log(control.Name + ":" + control.Pointer.ToString("X") + " - " + control.VTable.ToString("X"));

var x = new[] {13, 14, 15, 16, 17 };
for (int y = 0; y < 5; y++)
{
Log(x[y].ToString() + " - " + control.FindButton(x[y]).Label.Text+ ": " + control.FindButton(x[y]).Clickable.ToString());
}
}
}


~~~~~~~~~~~~~~~~~~~~~~~~~~~~

NeedGreed
_NotificationLoot
null
null
NeedGreed:1A609D2CBA0 - 7FF6BC3417F8
13 - Need: False
14 - Greed: True
15 - Pass: True
16 - Loot Recipient: True
17 - Greed Only: True

~~~~~~~~~~~~~~~~~~~~~~

Would you be able to make anything out of this? Say, if that notification is up, activate it, and once the window is open have a button for each option? We could then iterate each item and have it send a button click for Need, Greed, or Pass?

Edit: Made it a little more readable...

Edit 2: So, from looking at the loot window vs the Button Labels,

13 is CanNeed
14 is CanGreed
15 is Pass
16 is CanRecieve (Can Vote on the item at all)
17 is CanGreedOnly (Cannot Need, but can Greed)

What I don't know yet, is how to look at all of the items in the Loot List. This is just for the currently selected one, that I can tell. Needs more testing.

I think @zzi has all this stuff done, he just hasn't wrapped it up yet for me.

GetTo tries to attune to Eulmore Aetheryte when it can't. The Aethernets can be used but the Aetheryte is inaccessible until completing MSQ: 69167 or 69168. I've already unlocked it so I'm going off memory here. I am running thru the MSQ again as we speak, so I can be more precise once I get there.


Thanks for the report.
 
@mastahg Thanks fixes bard soul voice gauge, it's working!

Found the "GameObjectManager.GetObjectsOfType<BattleCharacter>()" will cause the game lag.
Also, is there a function to get the hate value?
Thank you for everything!
 
get this everytime i land now
[16:06:11.333 N] [Flightor] Mount up failed unexpectedly. Blacklisting current location.
 
@mastahg

It looks like after you hit level 74WHM, it breaks the Lily count. It also adds the Blood Lily count.

struct: ResourceTable: { timer: 0, timer2: 0, offset_8: 0, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 3, offset_D: 0, offset_E: 0 }
Lilies: 0
struct: ResourceTable: { timer: 0, timer2: 0, offset_8: 0, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 3, offset_D: 0, offset_E: 0 }
Lilies: 0
struct: ResourceTable: { timer: 0, timer2: 2420, offset_8: 0, offset_9: 0, offset_A: 116, offset_B: 9, offset_C: 2, offset_D: 1, offset_E: 0 }
Lilies: 116
struct: ResourceTable: { timer: 0, timer2: 3637, offset_8: 0, offset_9: 0, offset_A: 53, offset_B: 14, offset_C: 2, offset_D: 1, offset_E: 0 }
Lilies: 53
struct: ResourceTable: { timer: 0, timer2: 22054, offset_8: 0, offset_9: 0, offset_A: 38, offset_B: 86, offset_C: 0, offset_D: 3, offset_E: 0 }
Lilies: 38
struct: ResourceTable: { timer: 0, timer2: 23439, offset_8: 0, offset_9: 0, offset_A: 143, offset_B: 91, offset_C: 0, offset_D: 3, offset_E: 0 }

offset_C is the correct value for the lilies, and offset_D is the correct value for the blood lilies. timer2 is the status of the gauge as it fills, but is unnecessary for anything.

Edit: Even when level synced, the above holds true.
 
@mastahg

It looks like after you hit level 74WHM, it breaks the Lily count. It also adds the Blood Lily count.

struct: ResourceTable: { timer: 0, timer2: 0, offset_8: 0, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 3, offset_D: 0, offset_E: 0 }
Lilies: 0
struct: ResourceTable: { timer: 0, timer2: 0, offset_8: 0, offset_9: 0, offset_A: 0, offset_B: 0, offset_C: 3, offset_D: 0, offset_E: 0 }
Lilies: 0
struct: ResourceTable: { timer: 0, timer2: 2420, offset_8: 0, offset_9: 0, offset_A: 116, offset_B: 9, offset_C: 2, offset_D: 1, offset_E: 0 }
Lilies: 116
struct: ResourceTable: { timer: 0, timer2: 3637, offset_8: 0, offset_9: 0, offset_A: 53, offset_B: 14, offset_C: 2, offset_D: 1, offset_E: 0 }
Lilies: 53
struct: ResourceTable: { timer: 0, timer2: 22054, offset_8: 0, offset_9: 0, offset_A: 38, offset_B: 86, offset_C: 0, offset_D: 3, offset_E: 0 }
Lilies: 38
struct: ResourceTable: { timer: 0, timer2: 23439, offset_8: 0, offset_9: 0, offset_A: 143, offset_B: 91, offset_C: 0, offset_D: 3, offset_E: 0 }

offset_C is the correct value for the lilies, and offset_D is the correct value for the blood lilies. timer2 is the status of the gauge as it fills, but is unnecessary for anything.

Edit: Even when level synced, the above holds true.
Was it correct pre74?
 
Was it correct pre74?
After verification on a lower leveled WHM, no. Offset_C is what is holding the Lily values, and Offset_D is what will hold the Blood Lily values starting at level 74.
 
Probably cr level stuff.

In regard to healing in trust dungeons. If we could get a TrustPartyManager or something that resembled the PartyManager that would be awesome. The party UI element in a trust dungeon looks identical to the one in a regular party, but I couldn't tell you if it's all located in the same memory space or not. What I do know is that PartyManager.IsInParty returns false in a trust dungeon and that obviously the lists are empty. It's possible to filter the trust party members in the object manager using something like:

Code:
GameObjectManager.GetObjectsOfType<BattleCharacter>().Where(x => x.CurrentJob != ClassJobType.Adventurer)

but it can cause issues in other areas of the game. Trust party member's npcIds return 0 and their names return empty; their jobs return correctly.
 

Attachments

  • trustLightParty.webp
    trustLightParty.webp
    13.1 KB · Views: 166
Version 276
Code:
ActionResourceManager.WhiteMage.Lily updated 
ActionResourceManager.WhiteMage.BloodLily added

GetTo now knows about some of the npc transports in shadowbringers
GetTo will no longer try to learn eulmore aetheryte before the completion of quest 69168
 
@mastahg edits for the White Mage look great, thank you.

I have a feature request that might actually be possible now. With the expansion, an effect was added around spell bars that are being cast and can be interrupted. (Picutre below - its the faint orange/yellow "box" around The Ram's Voice cast timer) Is it possible to find where that is coming from and add a CanInterrupt now that there is definitive evidence of whether or not a skill can be interrupted? It would eliminate the need to build list for each and every spell and annotate they can be interrupted or not.

330f2b280067d69d85b17831c66712a499e97484_56.png


Thanks for all you do!
 
@mastahg edits for the White Mage look great, thank you.

I have a feature request that might actually be possible now. With the expansion, an effect was added around spell bars that are being cast and can be interrupted. (Picutre below - its the faint orange/yellow "box" around The Ram's Voice cast timer) Is it possible to find where that is coming from and add a CanInterrupt now that there is definitive evidence of whether or not a skill can be interrupted? It would eliminate the need to build list for each and every spell and annotate they can be interrupted or not.

330f2b280067d69d85b17831c66712a499e97484_56.png


Thanks for all you do!
It's already added. Target.SpellCastInfo.Interruptible
 
I keep getting an error, where the character is stuck in a loop mounting/dismounting. Always next to an aetheryte. I dont know why. Someone suggested a fresh new install, I installed RB fresh and it still does it. Here is a part of the log:

16:27:44.236 V] [ExGather v4.4.1.0] Finished gathering from Legendary Mineral Deposit with 28 GP at 11:13 PM ET
[16:27:44.236 N] [ExGather v4.4.1.0] Rotation reset -> Unspoiled
[16:27:44.769 D] DoAction Item 12669 0x106B6B7C
[16:27:46.303 N] [ExGather v4.4.1.0] Hi-Cordial was used. Original GP: 28, Cordial GP: 400, Regenerated GP: 0, Target GP: 428
[16:27:46.303 V] [Poi.Clear] Reason: Node is gone
[16:27:46.369 D] Removed hook [PoiAction] 6f90af17-f9d9-4f2a-bb54-e8b486a13cb0
[16:27:46.370 V] [Poi.Clear] Reason: Current behavior changed to WaitTimerTag: LineNumber: 12524, IsDone: False, WaitTime: 0, HighPriority: False, InCombat: False, QuestId: 0, StepId: 0, PostCombatDelay: 0, QuestName: null, IsDoneCache: False, Behavior: TreeSharp.Sequence, .
[16:27:46.370 D] Replaced hook [ProfileOrderBehavior_Hook] 8b63f6b1-c860-419f-bfd3-0f3ec5cf7b47
[16:27:46.404 V] [Poi.Clear] Reason: Current behavior changed to ExLogTag LineNumber:12532.
[16:27:46.404 D] Replaced hook [ProfileOrderBehavior_Hook] 5a18cc33-6df1-4253-badb-a118d809afac
[16:27:46.404 N] [Mew Ver. 1.6.0] [Miner] Gyr Abanian Ore (FL***)
[16:27:46.436 V] [Poi.Clear] Reason: Current behavior changed to TeleportTo: LineNumber: 12533, ZoneId: 0, AetheryteId: 99, Name: null, Force: True, Aetheryte: null, IsDone: False, HighPriority: False, InCombat: False, QuestId: 0, StepId: 0, PostCombatDelay: 0, QuestName: null, IsDoneCache: False, Behavior: TreeSharp.PrioritySelector, .
[16:27:46.436 D] Replaced hook [ProfileOrderBehavior_Hook] 121bd833-a9eb-4d8d-a513-8767ab6c8320
[16:27:46.436 D] Teleporting to The Peering Stones
[16:27:53.702 N] [FlightEnabledSlideMover] Set default value for flying to false until we can determine if we can fly in this zone.
[16:27:57.104 V] [Poi.Clear] Reason: Current behavior changed to RunCode: LineNumber: 12534, Name: MIN, IsDone: False, HighPriority: False, InCombat: False, QuestId: 0, StepId: 0, PostCombatDelay: 0, QuestName: null, IsDoneCache: False, Behavior: TreeSharp.ActionRunCoroutine, .
[16:27:57.104 D] Replaced hook [ProfileOrderBehavior_Hook] 261457dd-f356-4d8e-b375-732b1bdedd4e
[16:27:57.136 V] [Poi.Clear] Reason: Current behavior changed to ExMoveToTag: { LineNumber: 12538, Distance: 7, Location: <425.4343, 112.8548, 255.9154>, Type: StopWithinRange }.
[16:27:57.136 D] Replaced hook [ProfileOrderBehavior_Hook] 3ec0df60-cfab-48a2-b26b-e393c0a433c6
[16:27:57.137 D] [Flightor] Set up for movement from <424.2981, 114.4044, 241.58> to <425.4343, 112.8548, 255.9154>
[16:27:58.537 V] [Poi.Clear] Reason: Current behavior changed to EtxFlyTo: { LineNumber: 12539, XYZ: <311.8282, 111.822, 429.9672>, AllowedVariance: 10 }.
[16:27:58.537 D] Replaced hook [ProfileOrderBehavior_Hook] e2dc8122-3160-4b10-8fba-e3ae983bba75
[16:27:58.569 D] DoAction General 9 0xE0000000
[16:28:00.403 D] [Flightor] Set up for movement from <424.7077, 113.9107, 249.4014> to <311.8282, 111.822, 429.9672>
[16:28:00.436 D] DoAction General 23 0xE0000000
[16:28:00.706 D] DoAction General 9 0xE0000000
[16:28:03.470 D] DoAction General 23 0xE0000000
[16:28:03.738 D] DoAction General 9 0xE0000000
[16:28:06.504 D] DoAction General 23 0xE0000000
[16:28:06.770 D] DoAction General 9 0xE0000000
[16:28:09.538 D] DoAction General 23 0xE0000000
[16:28:09.803 D] DoAction General 9 0xE0000000
[16:28:12.570 D] DoAction General 23 0xE0000000
[16:28:12.837 D] DoAction General 9 0xE0000000


Can you please look into this, its still happening very often. Thank you
 
Can you please look into this, its still happening very often. Thank you

ExGather is unsupported. Unless theres something wrong with the rb functions its calling I've got too much on my plate as it is.
 
Back
Top