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

@mastahg I see, because the skill gcd is longer, the interval of 100 best, too fast in the loop too easy to LAG.
the reason for LAG is that the function takes out the data larger, and when the loop ingests, most of the data is discarded and duplicate data, It's best to change 100 milliseconds to take a value once, which also ensures the accuracy of the data.
Thanks!
 
@mastahg How can I set up a test bed for you to take a look into trust and cross-world parties, or alternatively, get you the the data itself regarding them? In both cases, it appears that the entities that are normally identified as partymembers, are not, and as such any logic that involves them is failing.
 
@mastahg I see, because the skill gcd is longer, the interval of 100 best, too fast in the loop too easy to LAG.
the reason for LAG is that the function takes out the data larger, and when the loop ingests, most of the data is discarded and duplicate data, It's best to change 100 milliseconds to take a value once, which also ensures the accuracy of the data.
Thanks!

You need to be very careful using loops. Combat routines and botbases run inside a "Frame lock", everything gets executed in one game frame so all data is accurate and in sync for that frame. You should not be using anything like thread.sleep either. Look at the ninja routine in kupo for an example of how to use a loop without hard locking the game up.

I think zzi had something for parties, ill see what he has to say.
 
Hi mastahg, there's an issue with dragoon pvp combo actions (ActionId 8791-8798). They don't appear in ActionCache and can not be executed through DoPvPCombo.
 
Code:
ActionManager.DoPvPCombo(10,Core.Target);

is working for me.

And yes, they are explicitly blocked to prevent them from being used out of order which could be detected on the serverside.
 
Use the functions in bosbases to call the routines such as Kupo, counts per second. The loops non-while or for, but a loop that reperts the condition every second. Other methods when repeated judgment don't like "GameObjectManager.GetObjectsOfType<BattleCharacter>()" as the game drops fps is very obvious, isn't stuck game, but the game frame drop badly. @mastahg
 
Use the functions in bosbases to call the routines such as Kupo, counts per second. The loops non-while or for, but a loop that reperts the condition every second. Other methods when repeated judgment don't like "GameObjectManager.GetObjectsOfType<BattleCharacter>()" as the game drops fps is very obvious, isn't stuck game, but the game frame drop badly. @mastahg
Post your code. I'm sure your doing something strange.
 
@mastahg
Code:
        private static IEnumerable<BattleCharacter> Enemies
        {
            get
            {
                return Shinra.Settings.Attackers ? GameObjectManager.Attackers
                        .Where(u => u?.Distance2D(Core.Player) - u?.CombatReach - Core.Player.CombatReach <= 30 && u.ValidEnemy()) :
                        GameObjectManager.GetObjectsOfType<BattleCharacter>()
                        .Where(u => u?.Distance2D(Core.Player) - u?.CombatReach - Core.Player.CombatReach <= 30 && u.ValidEnemy());
            }
        }
Code:
        public static IEnumerable<BattleCharacter> Enemies
        {
            get { return GameObjectManager.GetObjectsOfType<BattleCharacter>(true).Where(eu => eu.ValidEnemy()); }
        }
 
Last edited:
@mastahg
Code:
        private static IEnumerable<BattleCharacter> Enemies
        {
            get
            {
                return Shinra.Settings.Attackers ? GameObjectManager.Attackers
                        .Where(u => u?.Distance2D(Core.Player) - u?.CombatReach - Core.Player.CombatReach <= 30 && u.ValidEnemy()) :
                        GameObjectManager.GetObjectsOfType<BattleCharacter>()
                        .Where(u => u?.Distance2D(Core.Player) - u?.CombatReach - Core.Player.CombatReach <= 30 && u.ValidEnemy());
            }
        }
Code:
        public static IEnumerable<BattleCharacter> Enemies
        {
            get { return GameObjectManager.GetObjectsOfType<BattleCharacter>(true).Where(eu => eu.ValidEnemy()); }
        }

that doesn't show how your using it tho, if your calling that over and over again thats really inefficient.
 
@mastahg the Shinra code is also other combat plugins code, which causes the combat plugin to have drop fps. If it can be changed to 100 milliseconds, should be helpful.
 
Running into an issue where bot keeps trying to attune to eulmore aetheryte.

Interesting error, ill have to take a look into this.

@mastahg the Shinra code is also other combat plugins code, which causes the combat plugin to have drop fps. If it can be changed to 100 milliseconds, should be helpful.

No. The solution is to write better code. Kupo can run at 144TPS without any issues. If shrina is causing framedrops then its doing something stupid.
 
@mastahg Not sure if this was reported to you already but;


    • ff14bot.Objects
    • Aura Class
    • Aura Properties
    • public bool IsDebuff{ get; }

Returns false on Debuffs like Poison ?

Loggin on a Character ffxiv14bot.Object, with any Debuff present (for example Poison ):
var auras = myCharacterObj.CharacterAuras.Where(r => r.IsDebuff);
Logging.Write(Colors.Yellow, $@"[Debug] >>> {auras.Any()}");
Always logs false.

With something silly like
var auras = myCharacterObj.CharacterAuras.Where(r => r == r);
Posion does get added. Are these not considered Debuffs anymore with 5.0?

Thank you!

Last edit, I promise:
I started using IsDispellable instead of IsDebuff where applicable and that fixed for my stuff.
var auras = myCharacterObj.CharacterAuras.Where(r => r.IsDispellable);
I do not fully understand why IsDebuff isnt valid for Poison anymore so maybe it's best not to delete this post.
 
Last edited:
Hey guys can anyone help me with the ex fate bot?
It goes to fates but then doesn’t do anything. Just literally stands there.
If I could possibly have a link and detailed guide on how to sort it out?
Just usually I play on PS4 so I’m not a computer whizz I’m afraid.
 
Character.StatusFlags.HasFlag(StatusFlags.Hostile) returns true for Trust System Npc (e.g. Alphinaud, Alisaie)
making Sidestep try to avoid their limit break. (friendly aoe)
I am currently using workaround to change that particular check in sidestep into Character.IsNpc, because IsNpc returns a correct value for my use case (Trust dungeon and Fatebot), not sure if it is valid for other entities

Also for Kupo, several functions in helper class Spell.cs (Apply, Cast, CastLocation) tries to stop the avoidance behavior in Autoonomous botbase when a spell has castTime, causing anti-struck behavior kicks in. I think a RoutineManager.IsAnyDisallowed(CapabilityFlags.Movement) check is required either inside the canRunDecoratorDelegate perhaps the line of BotManager.Current.IsAutonomous, or before calling Navigator.PlayerMover.MoveStop() in the decorated composite.
Currently I am just putting the check in the parameter of the call for my custom routines but I think it should be implemented in the Spell class so all other default Kupo routine can work with sidestep.

Since RB updater will overwrite the change I made in these default plugins, I just clone the whole thing for now, I am reporting and hopefully it will ship with a fixed version
 
Seems like "ActionResourceManager.Dragoon.Timer.Seconds" will result in "actual" time + 4 secs, maybe someone can confirm this and maybe looked into
Tested on my lvl70 dragoon
 
Last edited:
Seems like "ActionResourceManager.Dragoon.Timer.Seconds" will result in "actual" time + 4 secs, maybe someone can confirm this and maybe looked into
It looks like the ActionResourceManager.Dragoon struct has changed.

@mastahg
The new struct has the following:
Timer: time left on Dragon Gauge in ms
Offset_A: level of Dragon Gauge (whether we are in Blood of the Dragon (1) or Life of the Dragon (2), or none (0))
Offset_B: is the strength of Gaze, up to a maximum of 2.

jkxJqCR.png
 
Back
Top