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!

ChainIt - Allows you to do chain quest without running back!

heinzskies

Member
Joined
Sep 7, 2014
Messages
57
This only works for Dark Devices Fate currently, but you can change it to your own by entering the ID, the order doesn't matter except for the last fate.

I'm going to rewrite this soon, so I can overwrite some of the fate bot logic. Currently it just sets Return point to None and force the fate to the current fate.

Create a file call ChainIt.cs in the Plugins directory. Paste below in.

Code:
using System;
using System.Linq;
using System.Windows.Media;
using ff14bot.AClasses;
using ff14bot.BotBases;
using ff14bot.Helpers;
using ff14bot.Managers;

namespace ChainIt
{
    public class ChainIt : BotPlugin
    {
        public override string Author { get { return "Heinzskies"; } }
        public override Version Version { get { return new Version(0, 0, 1); } }
        public override string Name { get { return "ChainIt"; } }
        public override string Description { get { return "Allow you to do chain quest without going back."; } }

        public override bool WantButton
        {
            get { return false; }
        }

        public new bool Equals(BotPlugin other)
        {
            throw new NotImplementedException();
        }

        bool _lastFateChainActive = false;
        FateIdleAction _userAction = FateIdleAction.Nothing;

        public override void OnPulse()
        {

            uint[] fatesChain = { 643, 644, 645, 646 };

            foreach (var fateChain in from fateChain in fatesChain let fateSearch = FateManager.ActiveFates.Count(fate => fate.Id == fateChain) where fateSearch != 0 select fateChain)
            {
                ActiveChain();
                if (fatesChain.Last() == fateChain)
                {
                    _lastFateChainActive = true;
                }
                    
                FatebotSettings.Instance.ThisFateOnly = FateManager.GetFateById(fateChain).Name;
            }


            if (FateManager.ActiveFates.Count(fate => fate.Id == fatesChain.Last()) == 0 && _lastFateChainActive)
            {
                _lastFateChainActive = false;
                FatebotSettings.Instance.ThisFateOnly = "";
                FatebotSettings.Instance.IdleAction = _userAction;
            }
        }

        private void ActiveChain()
        {
            if (FatebotSettings.Instance.IdleAction != FateIdleAction.Nothing)
            {
                _userAction = FatebotSettings.Instance.IdleAction;
            }
            FatebotSettings.Instance.IdleAction = FateIdleAction.Nothing;
        }

        public override void OnInitialize()
        {
        }

        public override void OnShutdown()
        {
            throw new NotImplementedException();
        }

        public override void OnEnabled()
        {
            Logging.Write(Colors.SkyBlue, "[ChainIt] v" + Version + " Enabled");
        }

        public override void OnDisabled()
        {
        }
    }
}
 
Last edited:
Any chance u can make one for Svara aswell?

For now, replace this line
Code:
uint[] fatesChain = { 643, 644, 645, 646 };
With
Code:
 uint[] fatesChain = { 501, 502, 503 };
It will bug out if the second part fails. Will fix that with the new system.
 
For now, replace this line
Code:
uint[] fatesChain = { 643, 644, 645, 646 };
With
Code:
 uint[] fatesChain = { 501, 502, 503 };
It will bug out if the second part fails. Will fix that with the new system.

what this new line will do? or what was the older one

thank you
 
then cant both numbers be on? or it'll be complicated?
Something in this vein should work:

Code:
using System;
using System.Linq;
using System.Windows.Media;
using ff14bot.AClasses;
using ff14bot.BotBases;
using ff14bot.Helpers;
using ff14bot.Managers;

namespace ChainIt
{
    public class ChainIt : BotPlugin
    {
        public override string Author { get { return "Heinzskies"; } }
        public override Version Version { get { return new Version(0, 0, 1); } }
        public override string Name { get { return "ChainIt"; } }
        public override string Description { get { return "Allow you to do chain quest without going back."; } }

        public override bool WantButton
        {
            get { return false; }
        }

        public new bool Equals(BotPlugin other)
        {
            throw new NotImplementedException();
        }

        bool _lastFateChainActive = false;
        FateIdleAction _userAction = FateIdleAction.Nothing;

        public override void OnPulse()
        {
              uint[] chain1 = { 643, 644, 645, 646 };
              handleFateschain(chain1);
              uint[] chain2 = { 501, 502, 503 };
              handleFateschain(chain2);
         }

        public void handleFateschain(uint[] fatesChain)
        {


            foreach (var fateChain in from fateChain in fatesChain let fateSearch = FateManager.ActiveFates.Count(fate => fate.Id == fateChain) where fateSearch != 0 select fateChain)
            {
                ActiveChain();
                if (fatesChain.Last() == fateChain)
                {
                    _lastFateChainActive = true;
                }
                    
                FatebotSettings.Instance.ThisFateOnly = FateManager.GetFateById(fateChain).Name;
            }


            if (FateManager.ActiveFates.Count(fate => fate.Id == fatesChain.Last()) == 0 && _lastFateChainActive)
            {
                _lastFateChainActive = false;
                FatebotSettings.Instance.ThisFateOnly = "";
                FatebotSettings.Instance.IdleAction = _userAction;
            }
        }

        private void ActiveChain()
        {
            if (FatebotSettings.Instance.IdleAction != FateIdleAction.Nothing)
            {
                _userAction = FatebotSettings.Instance.IdleAction;
            }
            FatebotSettings.Instance.IdleAction = FateIdleAction.Nothing;
        }

        public override void OnInitialize()
        {
        }

        public override void OnShutdown()
        {
            throw new NotImplementedException();
        }

        public override void OnEnabled()
        {
            Logging.Write(Colors.SkyBlue, "[ChainIt] v" + Version + " Enabled");
        }

        public override void OnDisabled()
        {
        }
    }
 
Something in this vein should work:

Code:
using System;
using System.Linq;
using System.Windows.Media;
using ff14bot.AClasses;
using ff14bot.BotBases;
using ff14bot.Helpers;
using ff14bot.Managers;

namespace ChainIt
{
    public class ChainIt : BotPlugin
    {
        public override string Author { get { return "Heinzskies"; } }
        public override Version Version { get { return new Version(0, 0, 1); } }
        public override string Name { get { return "ChainIt"; } }
        public override string Description { get { return "Allow you to do chain quest without going back."; } }

        public override bool WantButton
        {
            get { return false; }
        }

        public new bool Equals(BotPlugin other)
        {
            throw new NotImplementedException();
        }

        bool _lastFateChainActive = false;
        FateIdleAction _userAction = FateIdleAction.Nothing;

        public override void OnPulse()
        {
              uint[] chain1 = { 643, 644, 645, 646 };
              handleFateschain(chain1);
              uint[] chain2 = { 501, 502, 503 };
              handleFateschain(chain2);
         }

        public void handleFateschain(uint[] fatesChain)
        {


            foreach (var fateChain in from fateChain in fatesChain let fateSearch = FateManager.ActiveFates.Count(fate => fate.Id == fateChain) where fateSearch != 0 select fateChain)
            {
                ActiveChain();
                if (fatesChain.Last() == fateChain)
                {
                    _lastFateChainActive = true;
                }
                    
                FatebotSettings.Instance.ThisFateOnly = FateManager.GetFateById(fateChain).Name;
            }


            if (FateManager.ActiveFates.Count(fate => fate.Id == fatesChain.Last()) == 0 && _lastFateChainActive)
            {
                _lastFateChainActive = false;
                FatebotSettings.Instance.ThisFateOnly = "";
                FatebotSettings.Instance.IdleAction = _userAction;
            }
        }

        private void ActiveChain()
        {
            if (FatebotSettings.Instance.IdleAction != FateIdleAction.Nothing)
            {
                _userAction = FatebotSettings.Instance.IdleAction;
            }
            FatebotSettings.Instance.IdleAction = FateIdleAction.Nothing;
        }

        public override void OnInitialize()
        {
        }

        public override void OnShutdown()
        {
            throw new NotImplementedException();
        }

        public override void OnEnabled()
        {
            Logging.Write(Colors.SkyBlue, "[ChainIt] v" + Version + " Enabled");
        }

        public override void OnDisabled()
        {
        }
    }
:cool:
thanks again
 
Something in this vein should work:

Code:
using System;
using System.Linq;
using System.Windows.Media;
using ff14bot.AClasses;
using ff14bot.BotBases;
using ff14bot.Helpers;
using ff14bot.Managers;

namespace ChainIt
{
    public class ChainIt : BotPlugin
    {
        public override string Author { get { return "Heinzskies"; } }
        public override Version Version { get { return new Version(0, 0, 1); } }
        public override string Name { get { return "ChainIt"; } }
        public override string Description { get { return "Allow you to do chain quest without going back."; } }

        public override bool WantButton
        {
            get { return false; }
        }

        public new bool Equals(BotPlugin other)
        {
            throw new NotImplementedException();
        }

        bool _lastFateChainActive = false;
        FateIdleAction _userAction = FateIdleAction.Nothing;

        public override void OnPulse()
        {
              uint[] chain1 = { 643, 644, 645, 646 };
              handleFateschain(chain1);
              uint[] chain2 = { 501, 502, 503 };
              handleFateschain(chain2);
         }

        public void handleFateschain(uint[] fatesChain)
        {


            foreach (var fateChain in from fateChain in fatesChain let fateSearch = FateManager.ActiveFates.Count(fate => fate.Id == fateChain) where fateSearch != 0 select fateChain)
            {
                ActiveChain();
                if (fatesChain.Last() == fateChain)
                {
                    _lastFateChainActive = true;
                }
                    
                FatebotSettings.Instance.ThisFateOnly = FateManager.GetFateById(fateChain).Name;
            }


            if (FateManager.ActiveFates.Count(fate => fate.Id == fatesChain.Last()) == 0 && _lastFateChainActive)
            {
                _lastFateChainActive = false;
                FatebotSettings.Instance.ThisFateOnly = "";
                FatebotSettings.Instance.IdleAction = _userAction;
            }
        }

        private void ActiveChain()
        {
            if (FatebotSettings.Instance.IdleAction != FateIdleAction.Nothing)
            {
                _userAction = FatebotSettings.Instance.IdleAction;
            }
            FatebotSettings.Instance.IdleAction = FateIdleAction.Nothing;
        }

        public override void OnInitialize()
        {
        }

        public override void OnShutdown()
        {
            throw new NotImplementedException();
        }

        public override void OnEnabled()
        {
            Logging.Write(Colors.SkyBlue, "[ChainIt] v" + Version + " Enabled");
        }

        public override void OnDisabled()
        {
        }
    }


tested it bro doesnt seem to work with DD fate
 
I've tested it, and a few times when I've checked on it the bot appears to get stuck inside one of the houses. This seems to cause RebornBuddy to crash as well. I'll see if I can post a log later.
 
I've tested it, and a few times when I've checked on it the bot appears to get stuck inside one of the houses. This seems to cause RebornBuddy to crash as well. I'll see if I can post a log later.

I don't think getting stuck in the house has anything to do with this. I have been stuck before even creating/using this.
Also this Plugin does almost nothing, it just goes and set the fate bot settings.
 
Last edited:
I don't think getting stuck in the house has anything to do with this. I have been stuck before even creating/using this.
Also this Plugin does almost nothing, it just goes and set the fate bot settings.
Fair enough, I've not ever used fatebot in NT, but it makes sense that it's not the plugins fault I guess. Nevertheless, you might not want to use it for this reason.

Now that I actually read the plugin, you're right, it doesn't do a whole lot.
 
The Dark Devices fate chain specifically has a major issue in that the actual fate mobs are at the top right extreme of the fate, and fatebot only brings you to the bottom left extreme before searching. Then, FateBot thinks all the Lunatic mobs are part of the chain so it will just sit their getting stuck in houses while trying to grind those mobs for the entire chain.

For now, you should blacklist that chain or else stop RB, manually move to the top right extreme, then restart it while using this plugin in order to do this chain.

Keep in mind, though, that FateBot always wants an active fate, so any non-blacklisted fates that pop up during the chain will make you run to that fate in between the chain regardless of whether you have this plugin or not.
 
The Dark Devices fate chain specifically has a major issue in that the actual fate mobs are at the top right extreme of the fate, and fatebot only brings you to the bottom left extreme before searching. Then, FateBot thinks all the Lunatic mobs are part of the chain so it will just sit their getting stuck in houses while trying to grind those mobs for the entire chain.

For now, you should blacklist that chain or else stop RB, manually move to the top right extreme, then restart it while using this plugin in order to do this chain.

Keep in mind, though, that FateBot always wants an active fate, so any non-blacklisted fates that pop up during the chain will make you run to that fate in between the chain regardless of whether you have this plugin or not.

I did force it using "This Fate Only" option. Maybe that works, maybe not.
But yes, the problem is that it doesn't go to the top right of the fate and doesn't attack the mobs. Others have manually fixed this by hard coding it in.
 
Im new with this bot, i created this file in plugins directory but i dont know how to activate, svara fight still works bad.
 
Last edited:
Back
Top