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!

RebornBuddy - Limited Beta - FF14:ARR Bot

Status
Not open for further replies.
I used the other rotations to make a PugilistMonk one.
It works good for basic attack, but its not using the full rotation, only Bootshine, will not go into Twin Snakes.
It wont use Internal or Strong Wind, could you tell me whats wrong?

It seems as if sometimes actions caches are not built at the beginning... Twin Snakes and Snap Punch end up missing usually.

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 CreateCombat()
        {
            return new PrioritySelector(

                Cast("Snap Punch", r => Actionmanager.LastSpell.Name == "Twin Snakes"),
                Cast("Twin Snakes", r => Actionmanager.LastSpell.Name == "Bootshine"),
                Cast("Bootshine", r=> true)// r => Actionmanager.LastSpellId == 0 || Actionmanager.LastSpell.Name == "Snap Punch" )
            );
        }
        protected override Composite CreateBuffs()
        {
            return new PrioritySelector(
                Apply("Internal Release", r => !Core.Player.HasAura("Internal Release"),r=> Core.Player)
                );
        }

        protected override Composite CreateHeal()
        {
          return new PrioritySelector(
                Cast("Strong Wind", r => Core.Player.HealthPercent <= 70, r => Core.Player)
                );
          
        }
    }
}

How far does the radar recognize mobs? I was thinking that I could make waypoints for FATEs and just add their creature name to the list.
Though I do learn fast, I have not much idea how to use these codes. So if I could help with something like running around perfecting waypoints for FATEs, then I would.

Great work anyway, thanks.
 
Hello everyone version 0.0.30 is now ready for testing

Overall:
Reworked mesh navigation system, old mesh profiles will no longer work and will need to be recreated.
Replaced many small memory reads in a row with one large read to improve performance
Color current target on the radar a different color
Added API to access current Pet for arcanists
Sprinkle more diagnostic output all over the place.
Fix radar now showing nodes when using a gathering class.


Grindbot:
Only be interested in targets that are visible to us (hopefully)


Kupo:
Updated Blackmage+Thaum,Maurder+Warrior, and Conj+Whitemage with input from Close0
Arcanist will now heal its self and its pet if it gets low


Prolly more stuff I forgot.

http://mastahg.com/rebornbuddy/RebornBuddy0.0.0.30.zip
 
I used the other rotations to make a PugilistMonk one.
It works good for basic attack, but its not using the full rotation, only Bootshine, will not go into Twin Snakes.
It wont use Internal or Strong Wind, could you tell me whats wrong?

It seems as if sometimes actions caches are not built at the beginning... Twin Snakes and Snap Punch end up missing usually.

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 CreateCombat()
        {
            return new PrioritySelector(

                Cast("Snap Punch", r => Actionmanager.LastSpell.Name == "Twin Snakes"),
                Cast("Twin Snakes", r => Actionmanager.LastSpell.Name == "Bootshine"),
                Cast("Bootshine", r=> true)// r => Actionmanager.LastSpellId == 0 || Actionmanager.LastSpell.Name == "Snap Punch" )
            );
        }
        protected override Composite CreateBuffs()
        {
            return new PrioritySelector(
                Apply("Internal Release", r => !Core.Player.HasAura("Internal Release"),r=> Core.Player)
                );
        }

        protected override Composite CreateHeal()
        {
          return new PrioritySelector(
                Cast("Strong Wind", r => Core.Player.HealthPercent <= 70, r => Core.Player)
                );
          
        }
    }
}

How far does the radar recognize mobs? I was thinking that I could make waypoints for FATEs and just add their creature name to the list.
Though I do learn fast, I have not much idea how to use these codes. So if I could help with something like running around perfecting waypoints for FATEs, then I would.

Great work anyway, thanks.

Move the heal above the combat rotation, that's how I have it on my other routines. Also check your spelling, its Second wind... i think. not strong wind. never played pulgist or monk so I'm not sure.
 
Updated ArcherBard.cs for now .30 version.

Also tries to use straight shot when the aura straighter shot is up. Well I hope!!!

Let me know if I'm messing this up Mashtag. Most likely I'm totally messing it up!!! HAHAH

Cast("Straight Shot", r => Actionmanager.HasSpell("Straight Shot") || Core.Player.HasAura("Straighter Shot")),


Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ff14bot;
using ff14bot.Enums;
using ff14bot.Managers;
using ff14bot.Navigation;
using TreeSharp;

using Action = TreeSharp.Action;
namespace Kupo.Rotations
{
    public class ArcherBard : KupoRoutine
    {
        public override int PullRange
        {
            get { return 20; }
        }

        public override ClassJobType[] Class
        {
            get { return new ClassJobType[]{ClassJobType.Archer, ClassJobType.Bard, };}
        }
        protected override Composite CreatePull()
        {
            return new PrioritySelector(
                r=> Actionmanager.InSpellInRangeLOS("Heavy Shot", Core.Target),
                new Decorator(r => (r as SpellRangeCheck?) == SpellRangeCheck.ErrorNotInRange, new Action(r => Navigator.MoveTo(Core.Target.Location))),
                Cast("Heavy Shot", r => (r as SpellRangeCheck?) == SpellRangeCheck.Success || (r as SpellRangeCheck?) == SpellRangeCheck.ErrorNotInFront)
            );


        }
        protected override Composite CreateHeal()
        {
          return new PrioritySelector(
                Cast("Cure", r => Core.Player.HealthPercent <= 70, r => Core.Player)
                );
          
        }
        protected override Composite CreateCombat()
        {
            return new PrioritySelector(
				Apply("Venomous Bite"),
                Cast("Bloodletter", r => Actionmanager.LastSpell.Name == "Straight Shot"),
				Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Straight Shot"),
                Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Bloodletter"),
				Cast("Straight Shot", r => Actionmanager.HasSpell("Straight Shot") || Core.Player.HasAura("Straighter Shot")),
                Cast("Straight Shot", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
				Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
                Cast("Heavy Shot", r =>  true)


                );
        }

    }
}
 
First of all thanks for this it looks great. Though I cant seem to get it working been trying for a week now the profile creates fine the wp's connect when i hit arc and everything then i load it and nothing he just stands there. Not sure what im doing wrong and I am new to this. I'm running it in windowed and I installed your wizard my pc is updated to net 4.5 and all that any ideas?
 
First of all thanks for this it looks great. Though I cant seem to get it working been trying for a week now the profile creates fine the wp's connect when i hit arc and everything then i load it and nothing he just stands there. Not sure what im doing wrong and I am new to this. I'm running it in windowed and I installed your wizard my pc is updated to net 4.5 and all that any ideas?

Did you add to the list what objects you want it to gather, or mobs to attack?
 
yes I added items for the gather function. Ive tried adding them for each node as well as only once. Ive tried it on mesh and waypoint i've played with the refresh delay and node distance to see if that would help everything looks fine as far as I can see i save it load it, it says starting gatherbot but still he just stands there as if its not doing anything at all until i move him around again. Disabled my av and everything to see if that would help even though I had already added it to my allow list not sure has me scratching my head and im usually pretty good about figuring this stuff out

Is there any in-game option requirments besides being in windowed such as any graphical settings or movement settings I do have my graphics at the lowest atm plus my movement set to legacy type instead of standard though I have played with them as well to see.
 
Start gatherbot, and then open the profile creator. If doesnt show a red then that means you created the profile poorly and it doesnt know how to get to any of the items you listed for it to gather.
 
Alright I figured it out it was rather simple I forgot to add the target I only added the item to collect. Sorry for that. Guess ill have to tweak it a bit now hes looking rather odd id spot him anyhow. Ill support this app and let you know if I find any actual problems next time. Thanks for you work on this project and the quick reply as well. Personally this will be the first time used a app like this never been into them but in my short time in this game ive hand farmed so many thousands of shards for crafting like 5k just yesterday alone and already out again. Almost makes me want to eat a bullet and i thought Korean mmo's were grindy so this is app is definitely a relief
 
When I load my old waypoints and start the bot, it crashes, is this expected?

On a side note, character not trying to get out of sight stuff so far...
 
When I load my old waypoints and start the bot, it crashes, is this expected?

On a side note, character not trying to get out of sight stuff so far...


Old mesh profiles are not supported as the format has changed.

Please provide a log file if you are still having issues.
 
Okay for the life of me... I can't get it to Apply Raging Strike and Hawk's Eye. I even copied and past the format for Raging Strike from your Thum/BLM rotation. Any help wold be greatly appreciated!! :-)

Here my current Archer/Bard.

Buffs - Protect, Raging Stikes, Hawk's Eye, and Bloodbath when less than 80% health.

Heals - Cure less than 70% and Second wind when less than 50%

DOTS - Venomous Bite and Fracture.


Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ff14bot;
using ff14bot.Enums;
using ff14bot.Managers;
using ff14bot.Navigation;
using TreeSharp;

using Action = TreeSharp.Action;
namespace Kupo.Rotations
{
    public class ArcherBard : KupoRoutine
    {
        public override int PullRange
        {
            get { return 10; }
        }

        public override ClassJobType[] Class
        {
            get { return new ClassJobType[]{ClassJobType.Archer, ClassJobType.Bard, };}
        }
        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)
            );
        }
	protected override Composite CreateCombatBuffs()
		{
	    return new PrioritySelector(
		//Dem deepz
		Apply("Raging Strikes"),
		Apply("Hawk's Eyes"),
		Apply("Bloodbath", r => Core.Player.HealthPercent <= 80, r => Core.Player),
		Apply("Protect", r => !Core.Player.HasAura("Protect"),r=> Core.Player)
			);
		}
        protected override Composite CreateHeal()
        {
            return new PrioritySelector(
		Cast("Second Wind", r => Core.Player.HealthPercent <= 50, r => Core.Player),
                Cast("Cure", r => Core.Player.HealthPercent <= 70, r => Core.Player)
                );
          
        }
        protected override Composite CreateCombat()
        {
            return new PrioritySelector(
                //Apply DOTS
		Apply("Venomous Bite"),
		Apply("Fracture"),
                //Combat rotation
                Cast("Bloodletter", r => Actionmanager.LastSpell.Name == "Straight Shot"),
		Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Straight Shot"),
                Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Bloodletter"),
                Cast("Straight Shot", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
		Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
                Cast("Heavy Shot", r =>  true)


                );
        }

    }
}
 
Okay for the life of me... I can't get it to Apply Raging Strike and Hawk's Eye. I even copied and past the format for Raging Strike from your Thum/BLM rotation. Any help wold be greatly appreciated!! :-)

Here my current Archer/Bard.

Buffs - Protect, Raging Stikes, Hawk's Eye, and Bloodbath when less than 80% health.

Heals - Cure less than 70% and Second wind when less than 50%

DOTS - Venomous Bite and Fracture.


Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ff14bot;
using ff14bot.Enums;
using ff14bot.Managers;
using ff14bot.Navigation;
using TreeSharp;

using Action = TreeSharp.Action;
namespace Kupo.Rotations
{
    public class ArcherBard : KupoRoutine
    {
        public override int PullRange
        {
            get { return 10; }
        }

        public override ClassJobType[] Class
        {
            get { return new ClassJobType[]{ClassJobType.Archer, ClassJobType.Bard, };}
        }
        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)
            );
        }
	protected override Composite CreateCombatBuffs()
		{
	    return new PrioritySelector(
		//Dem deepz
		Apply("Raging Strikes"),
		Apply("Hawk's Eyes"),
		Apply("Bloodbath", r => Core.Player.HealthPercent <= 80, r => Core.Player),
		Apply("Protect", r => !Core.Player.HasAura("Protect"),r=> Core.Player)
			);
		}
        protected override Composite CreateHeal()
        {
            return new PrioritySelector(
		Cast("Second Wind", r => Core.Player.HealthPercent <= 50, r => Core.Player),
                Cast("Cure", r => Core.Player.HealthPercent <= 70, r => Core.Player)
                );
          
        }
        protected override Composite CreateCombat()
        {
            return new PrioritySelector(
                //Apply DOTS
		Apply("Venomous Bite"),
		Apply("Fracture"),
                //Combat rotation
                Cast("Bloodletter", r => Actionmanager.LastSpell.Name == "Straight Shot"),
		Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Straight Shot"),
                Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Bloodletter"),
                Cast("Straight Shot", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
		Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
                Cast("Heavy Shot", r =>  true)


                );
        }

    }
}

try
Code:
		Apply("Hawk's Eyes",r=> true, r=>Core.Player),
 
try
Code:
		Apply("Hawk's Eyes",r=> true, r=>Core.Player),

That one lined caused these errors.. Apply("Hawk's Eye",r=> true, r=>Core.Player),

[06:41:51.700 D] System.NullReferenceException: Object reference not set to an instance of an object.
at ..(Character )
at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at ..( )
at ..(Object )
at TreeSharp.Action.RunAction(Object context)
at TreeSharp.Action.<Execute>d__0.MoveNext()
at TreeSharp.Composite.Tick(Object context)
at TreeSharp.Decorator.<Execute>d__0.MoveNext()
at TreeSharp.Composite.Tick(Object context)
at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
at TreeSharp.Composite.Tick(Object context)
at ..()
[06:41:51.713 D] System.NullReferenceException: Object reference not set to an instance of an object.
at ..(Character )
at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at ..( )
at ..(Object )
at TreeSharp.Action.RunAction(Object context)
at TreeSharp.Action.<Execute>d__0.MoveNext()
at TreeSharp.Composite.Tick(Object context)
at TreeSharp.Decorator.<Execute>d__0.MoveNext()
at TreeSharp.Composite.Tick(Object context)
at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
at TreeSharp.Composite.Tick(Object context)
at ..()

The logs didn't contain useful info as the visual output which talks about specific lines in KupoRoutine.cs - This is for Raging Strike

Code:
[06:48:56.421 D] System.NullReferenceException: Object reference not set to an instance of an object.
   at Kupo.Extensions.GetCachedAuraByName(GameObject unit, String auraName, Boolean myAura) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 331
   at Kupo.Extensions.HasAura(GameObject unit, String aura, Boolean isMyAura, Int32 msLeft) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 379
   at Kupo.KupoRoutine.<>c__DisplayClass1b.<Apply>b__19(Object ret) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 248
   at TreeSharp.Decorator.CanRun(Object context)
   at TreeSharp.Decorator.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.Decorator.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at ..()
[06:48:57.805 D] Stop called!
[06:48:57.806 Q] Bot Stopped! Reason: Pushed the stop button.
[06:48:57.828 D] System.NullReferenceException: Object reference not set to an instance of an object.
   at Kupo.Extensions.GetCachedAuraByName(GameObject unit, String auraName, Boolean myAura) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 331
   at Kupo.Extensions.HasAura(GameObject unit, String aura, Boolean isMyAura, Int32 msLeft) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 379
   at Kupo.KupoRoutine.<>c__DisplayClass1b.<Apply>b__19(Object ret) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 248
   at TreeSharp.Decorator.CanRun(Object context)
   at TreeSharp.Decorator.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.Decorator.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at ..()
 
I don't think so, here's the complete CS file.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ff14bot;
using ff14bot.Enums;
using ff14bot.Managers;
using ff14bot.Navigation;
using TreeSharp;

using Action = TreeSharp.Action;
namespace Kupo.Rotations
{
    public class ArcherBard : KupoRoutine
    {
        public override int PullRange
        {
            get { return 10; }
        }

        public override ClassJobType[] Class
        {
            get { return new ClassJobType[]{ClassJobType.Archer, ClassJobType.Bard, };}
        }
        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)
            );
        }
				protected override Composite CreateCombatBuffs()
		{
			return new PrioritySelector(
				//Dem deepz
				Apply("Raging Strikes",r=> true, r=>Core.Player),
				Apply("Hawk's Eye",r=> true, r=>Core.Player),
				Apply("Bloodbath", r => Core.Player.HealthPercent <= 80, r => Core.Player),
				Apply("Protect", r => !Core.Player.HasAura("Protect"),r=> Core.Player)
			);
		}
        protected override Composite CreateHeal()
        {
          return new PrioritySelector(
				Cast("Second Wind", r => Core.Player.HealthPercent <= 50, r => Core.Player),
                Cast("Cure", r => Core.Player.HealthPercent <= 70, r => Core.Player)
                );
          
        }
        protected override Composite CreateCombat()
        {
            return new PrioritySelector(
				Apply("Venomous Bite"),
				Apply("Fracture"),
                Cast("Bloodletter", r => Actionmanager.LastSpell.Name == "Straight Shot"),
				Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Straight Shot"),
                Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Bloodletter"),
                Cast("Straight Shot", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
				Cast("Misery's End", r => Actionmanager.LastSpell.Name == "Heavy Shot"),
                Cast("Heavy Shot", r =>  true)


                );
        }

    }
}

In the visual display, it has this

Code:
[07:00:17.569 D] DoAction Spell 97 1073796868
[07:00:18.918 D] System.NullReferenceException: Object reference not set to an instance of an object.
   at Kupo.Extensions.GetCachedAuraByName(GameObject unit, String auraName, Boolean myAura) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 331
   at Kupo.Extensions.HasAura(GameObject unit, String aura, Boolean isMyAura, Int32 msLeft) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 379
   at Kupo.KupoRoutine.<>c__DisplayClass1b.<Apply>b__19(Object ret) in c:\Buddy\Routines\Kupo\KupoRoutine.cs:line 248
   at TreeSharp.Decorator.CanRun(Object context)
   at TreeSharp.Decorator.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.Decorator.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at TreeSharp.PrioritySelector.<Execute>d__0.MoveNext()
   at TreeSharp.Composite.Tick(Object context)
   at ..()
 
Status
Not open for further replies.
Back
Top