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!

Need some help with drg profile

exaccuss

Active Member
Joined
Nov 10, 2013
Messages
1,021
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 LancerDragoon : KupoRoutine
{
public override int PullRange
{
get { return 5; }
}

public override ClassJobType[] Class
{
get { return new ClassJobType[]{ClassJobType.Dragoon, ClassJobType.Lancer, };}
}

protected override Composite CreatePreCombatBuffs()
{
return SummonChocobo();
}

protected override Composite CreateRest()
{
return DefaultRestBehavior(r => Core.Player.CurrentTPPercent);
}

private string[] PullSpells = new[] { "Heavy Thrust", "True Thrust" };
private string _BestPullSpell;
private string BestPullSpell
{
get
{
if (string.IsNullOrEmpty(_BestPullSpell))
{
foreach (var spell in PullSpells)
{
if (Actionmanager.HasSpell(spell))
{
_BestPullSpell = spell;
return spell;
}
}
_BestPullSpell = "Heavy Thrust";
return "Heavy Thrust";
}
else
{
return _BestPullSpell;
}
}
}

protected override Composite CreatePull()
{
return new PrioritySelector(
new Decorator(r => Actionmanager.InSpellInRangeLOS(BestPullSpell, Core.Target) == SpellRangeCheck.ErrorNotInRange, new Action(r => Navigator.MoveTo(Core.Target.Location))),
new Decorator(r => Actionmanager.InSpellInRangeLOS(BestPullSpell, Core.Target) == SpellRangeCheck.ErrorNotInFront, new Action(r => Core.Target.Face())),
Apply(r => BestPullSpell, r => Actionmanager.InSpellInRangeLOS(BestPullSpell, Core.Target) == SpellRangeCheck.Success)
);


}

protected override Composite CreateCombat()
{
return new PrioritySelector(
Apply("Internal Release", r=> true, r => Core.Player),
Apply("Fracture"),
Apply("Phlebotomize", r => Core.Player.ClassLevel >= 30),
Apply("Blood for Blood", r=> Core.Player.ClassLevel >= 12),
Cast("Chaos Thrust", r=> Core.Player.ClassLevel >= 50),
Cast("True Thrust", r => true),
Cast("Power Surge", r=> Core.Player.ClassLevel >= 45),
Cast("Jump", r=> Core.Player.ClassLevel >= 30),
Cast("Dragonfire Dive", r=> Core.Player.ClassLevel >= 50),
Cast("Full Thrust", r => Actionmanager.LastSpell.Name == "Vorpal Thrust"),
Cast("Vorpal Thrust", r => Actionmanager.LastSpell.Name == "True Thrust"),
Cast("True Thrust"),
Cast("Disembowel", r=> Core.Player.ClassLevel >= 38),
Cast("Impulse Drive", r => Core.Player.IsBehind == true),
Cast("Heavy Thrust", r => Core.Player.ClassLevel >= 12)// r => Actionmanager.LastSpellId == 0 || Actionmanager.LastSpell.Name == "Full Thrust" )


);
}
}
}

It only seems to spam disembowel over and over unless phlebotomize and jump needs to be re applied. What i want it to do is go impulse drive > disembowel > True thrust combo. Can it be done?

EDIT: Ok, i changed it to:

protected override Composite CreateCombat()
{
return new PrioritySelector(
Apply("Internal Release", r=> true, r => Core.Player),
Apply("Fracture"),
Apply("Phlebotomize", r => Core.Player.ClassLevel >= 30),
Apply("Blood for Blood", r=> Core.Player.ClassLevel >= 12),
Cast("Vorpal Thrust", r => Actionmanager.LastSpell.Name == "True Thrust"),
Cast("True Thrust", r => Actionmanager.LastSpell.Name == "Disembowel"),
Apply("Disembowel", r => Actionmanager.LastSpell.Name == "Impulse Drive"),
Cast("Impulse Drive")

And it seems to work, but is it at all possible to make it so if the effect of disembowel is active, it wont just spam impulse drive?
 
Back
Top