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

RebornBuddy - Limited Beta - FF14:ARR Bot

Status
Not open for further replies.
Is the action cache meant to be incomplete for now on some classes? I wanted to try to complete a Monk routine.
 
Is the action cache meant to be incomplete for now on some classes? I wanted to try to complete a Monk routine.

Make sure your not mounted when you connect with the bot, otherwise it should be getting all skills.
 
thx for this, working good. Just wanna ask a few things for conjurer and what i need to change in routines.
I want her to take a few sec breaks between the mobs to get some mana back, she attacks instantly after each kill even if she have like 20 mana.
I also wanna know how to add the food 3% exp buff once every 30 min or so, im using Grape Juice if that helps.
thx again for a great bot guys!
 
All the skills that require forms to use (which are grayed unless you're in the form) are not being loaded. Anyway to manually load them, or can you make them load?
 
All the skills that require forms to use (which are grayed unless you're in the form) are not being loaded. Anyway to manually load them, or can you make them load?

I think all of the skills are loaded weather greyed out or not, it's just verbosely declared active skills in the visual display. For instance, Misery Shot is alway greyed out until the mob is below 20% health. I added it in my archer rotation and made sure it at every chance it could possibly pop up to use it and it does. I haven't tried a pugilist rotation yet, but when I do I can try to help out.

Remaining wish list***
Add "use item" by allowing the player to use items. - the user would bind the potion/food/chocobo to the keyboard. Maybe something like

UseItem ("key 0", r => Core.player.healthPercent <= 50, r => core.player) ------ this is to use potions, food and chocobo can be used too but with different checks instead of health checks. Food would be check aura and chocobo could be check party or something hehehe. Just dreaming :-)
 
Alright, finished my basic Monk Rotation.

Casts Blood for Blood and Internal Release on CD, Second Wind on low health, applies Fracture and performs the basic Pugilist combo.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using ff14bot;
using ff14bot.Enums;
using ff14bot.Managers;
using ff14bot.Navigation;
using ff14bot.Objects;
using TreeSharp;
using Action = TreeSharp.Action;

namespace Kupo.Rotations
{
    public class PugilistMonk : KupoRoutine
    {
        public override int PullRange
        {
            get { return 5; }
        }

        public override ClassJobType[] Class
        {
            get { return new ClassJobType[]{ClassJobType.Monk, ClassJobType.Pugilist};}
        }

        protected override Composite CreatePull()
        {
            return new PrioritySelector(
                r => Actionmanager.InSpellInRangeLOS("Bootshine", Core.Target),
                new Decorator(r => (r as SpellRangeCheck?) == SpellRangeCheck.ErrorNotInRange, new Action(r => Navigator.MoveTo(Core.Target.Location))),
                Cast("Bootshine", r => (r as SpellRangeCheck?) == SpellRangeCheck.Success || (r as SpellRangeCheck?) == SpellRangeCheck.ErrorNotInFront)
            );

        }
		
		protected override Composite CreateCombatBuffs()
		{
			return new PrioritySelector(
			     Apply("Blood for Blood",r=> true, r=>Core.Player),
			     Apply("Internal Release",r=> true, r=>Core.Player)
			);
		}
		protected override Composite CreateHeal()
                {
                       return new PrioritySelector(
                            Cast("Second Wind", r => Core.Player.HealthPercent <= 40, r => Core.Player)
                );

                }
                protected override Composite CreateCombat()
                {
                      return new PrioritySelector(
		           Apply("Fracture"),
                           Cast("Snap Punch"),
                           Cast("Twin Snakes"),
		           Cast("Bootshine")
                );
        }
    }
}


Replace kuporoutine.cs with this:

using System; using System.Collections.Generic; using System.Linq; using Syst - Pastebin.com

Let me know if it still throws an error.
I got the same issue eventually, your file fixed it for me too.

Is there any way you can make so bot skips an unreachable target after x seconds?
 
Is there any way you can make so bot skips an unreachable target after x seconds?

You really shouldn't have that problem unless its a fate mob that's running since the fate ended. If its a regular mob, you probably should make a more complex spider web typed Mesh profile so it knows how to navigate around obstacles.

In the mashtag revised routines he has a setup that should move to target if its not in range. This is what I use for my archer.

Code:
        protected override Composite CreatePull()
        {
            return new PrioritySelector(
                //Checking to see if we're in range -- If not, move to the location
                new Decorator(
                    r => Actionmanager.InSpellInRangeLOS("Heavy Shot", Core.Target) == SpellRangeCheck.ErrorNotInRange,
                    new Action(r => Navigator.MoveTo(Core.Target.Location))),

                //Checking to see if we're not facing the target -- If not, face it
                new Decorator(
                    r => Actionmanager.InSpellInRangeLOS("Heavy Shot", Core.Target) == SpellRangeCheck.ErrorNotInFront,
                    new Action(r => Core.Target.Face())),

                //We'll open with a Heavy Shot for heavy
                Cast("Heavy Shot", r => Actionmanager.InSpellInRangeLOS("Heavy Shot", Core.Target) == SpellRangeCheck.Success)
            );
        }
 
Hi Mashtag,

Quick question, was trying to revamp the Arcanist and noticed that Core.Player.ManaPercent existed in the FFbot Objects, is it usable? For Arcanist that have a spell that restores 20% MP so in order to keep the mana up since the bot just go full throttle killing mode without stopping (my type of kill style hehe). I was trying to add the following line to the combatbuff section. Will the following line work?

Code:
Cast("Aetherflow", r => Core.Player.ManaPercent <= 80, r => Core.Player),

Okay so I stopped trying to be cute with the code and said might as well spam the Aetherflow spell :-)

But in the long it doesn't try to cast it.

Code:
[15:48:18.461 D] DoAction Spell 121 1073783713
[15:48:18.471 N] Applying Bio
[15:48:18.527 N] Applying Virus
[15:48:18.539 N] Applying Energy Drain
[15:48:18.594 N] Casting Ruin

Here's the lines for it, not sure why it isn't casting.
Code:
        protected override Composite CreateCombat()
        {
            return new PrioritySelector(
                Apply("Bio"),
				Apply("Aero"),
				Apply("Virus"),
				Apply("Aetherflow"),
				Apply("Energy Drain"),
                                Cast("Ruin", r => true)


                );
        }
 
Hi Mashtag,

Quick question, was trying to revamp the Arcanist and noticed that Core.Player.ManaPercent existed in the FFbot Objects, is it usable? For Arcanist that have a spell that restores 20% MP so in order to keep the mana up since the bot just go full throttle killing mode without stopping (my type of kill style hehe). I was trying to add the following line to the combatbuff section. Will the following line work?

Code:
Cast("Aetherflow", r => Core.Player.ManaPercent <= 80, r => Core.Player),

Okay so I stopped trying to be cute with the code and said might as well spam the Aetherflow spell :-)

But in the long it doesn't try to cast it.

Code:
[15:48:18.461 D] DoAction Spell 121 1073783713
[15:48:18.471 N] Applying Bio
[15:48:18.527 N] Applying Virus
[15:48:18.539 N] Applying Energy Drain
[15:48:18.594 N] Casting Ruin

Here's the lines for it, not sure why it isn't casting.
Code:
        protected override Composite CreateCombat()
        {
            return new PrioritySelector(
                Apply("Bio"),
				Apply("Aero"),
				Apply("Virus"),
				Apply("Aetherflow"),
				Apply("Energy Drain"),
                                Cast("Ruin", r => true)


                );
        }



Use this:

Code:
 Apply("Aetherflow",onTarget:r=>Core.Player),
 
Fixed the issue with puglist/monk skills not showing up, they return a different code value if we are not in the correct form but the skill is known. I'll probably push a small fix out today.
 
Thanks so much for this bot! I would just like to ask what changes you made to the way it navigates waypoints. I had some profiles that worked flawlessly, no jagged movement, mostly straight lines, very natural movement from node to node, but I've updated to 0.30 yesterday and now it seems to be taking random connections instead of the ones that are either closest or the most direct. Tried to correct some profiles today, but i havent had much success with making the bot take straight lines.
 
Use this:

Code:
 Apply("Aetherflow",onTarget:r=>Core.Player),

Thanks, I'll test that out. I ended up using this to fix it. It was the one you said to use last time for Hawk's eye as well.

Code:
Cast("Aetherflow", r => true , r=> Core.Player),
 
You really shouldn't have that problem unless its a fate mob that's running since the fate ended. If its a regular mob, you probably should make a more complex spider web typed Mesh profile so it knows how to navigate around obstacles.

In the mashtag revised routines he has a setup that should move to target if its not in range. This is what I use for my archer.

  • I have a mob in a spot that is unreachable unless through jumping, it's right next to a farm spot. The bot always ends up trying to go for that mob at some point and I get stuck running in place.

  • What does this new heuristic option do?
  • I would love to see some GUI way of exporting Rotations or even creating them.
 
  • I have a mob in a spot that is unreachable unless through jumping, it's right next to a farm spot. The bot always ends up trying to go for that mob at some point and I get stuck running in place.

  • What does this new heuristic option do?
  • I would love to see some GUI way of exporting Rotations or even creating them.

I'll add blockspots that will make the bot not choose objects within a certain radius.

Hover over the text above the slider for an explanation

Kupo will aim to be a general solution for most users, there will be a settings menu eventually, but there wont be a way to create routines without doing some programming.
 
Appreciate the quick response, thanks!
I probably gonna try the Gather now. Seems like my grind bot is very effective now, aside from trying to attack unreachable sometimes.

Alright so I'm already gathering and I noticed sometimes while going to a new node, another node spawns closer but the bot keeps going for that more distant one, would be nice to see it 'change its mind' half way through. :o
 
I've been using the gatherer for the past few days now, but it will reliably stop every 5-10 mins for no apparent reason.

I've done everything from excessively meshing an area to ensure plenty of routes to a node (and checking with create arc), increasing strictness to 200 (assuming this increases node search distance), to adding several hotspots around a node.

Tonight however, I noticed that, after just finishing a harvest, the bot has routed to nothing. The node hasn't actually popped yet and it seems to be stuck. There is actually a node directly to the east, but it hasn't switched to it.

View attachment 110843

I may be wrong and this may have been the route I've just taken to get me to where I am. I understand that obviously this is a dead end and a bit of a tail leading away from the rest of the route, but the gatherer has managed to use this route before.

Additionally, stopping the bot, reloading the mesh and clicking go doesn't do anything.

edit:
last entries of the log:
[01:06:20.976 D] Targeting Mature Tree 40000003 1BD15D4 0
[01:06:21.010 D] Interacting with Mature Tree 0x11A92680
[01:06:21.557 D] Gathering Gridanian Walnut
[01:06:36.191 D] DoAction Spell 3 3758096384
[01:06:54.669 D] Targeting Mature Tree 40000007 1BD15D4 0
[01:06:54.703 D] Interacting with Mature Tree 0x11A91510
[01:06:55.524 D] Gathering Gridanian Walnut
[01:21:21.472 D] Stop called! <--- came back from eating and realised I was just standing there.
[01:21:21.472 Q] Bot Stopped! Reason: Pushed the stop button.
 
Status
Not open for further replies.
Back
Top