• Visit Rebornbuddy
  • YourRaidingBuddy - Coming Soon

    Discussion in 'Combat Routines' started by Xcesius, May 20, 2015.

    1. StephenElsbree1986

      StephenElsbree1986 New Member

      Joined:
      Dec 19, 2014
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      Am I doing something wrong? I just got a DRK and I have the overlay on and my char does nothing and it says everything is disable and I have no clue what to do... ?
       
    2. karmakazi

      karmakazi New Member

      Joined:
      Jun 12, 2014
      Messages:
      30
      Likes Received:
      0
      Trophy Points:
      0
      I will definitely donate to a working raiding CR. =)

      As I've mentioned on the forums before, RBuddy has been a godsend for me as a working man with kids. Bot does all the stuff I hate or don't have time for and I get to enjoy the fun stuff. Would totally love a raiding CR to help me keep up with my friends who play full time.
       
    3. EnternalEnvy

      EnternalEnvy Member

      Joined:
      May 11, 2014
      Messages:
      222
      Likes Received:
      3
      Trophy Points:
      18
      hey I'm kinda new to tanking class, starting off with a dark knight, I want to ask which settings do I choose in this CR (or combine with Mud assist) in order to just like let my dark knight keep aggro on every mobs in dungeon? I'm sorry if this is a stupid question but I never play a tank before T_T
       
    4. kei220

      kei220 Member

      Joined:
      May 22, 2015
      Messages:
      78
      Likes Received:
      0
      Trophy Points:
      6
      put tanking aura on and swing it left and right
       
    5. Ellidor

      Ellidor New Member

      Joined:
      Aug 21, 2012
      Messages:
      3
      Likes Received:
      0
      Trophy Points:
      1
      Enyo FTW



      Enyo would be amazing if ported. This would open up a whole new world of possibilities for combat routines.
       
    6. lord12

      lord12 New Member

      Joined:
      Mar 15, 2015
      Messages:
      19
      Likes Received:
      0
      Trophy Points:
      1
      thanks for the hard work man but after the last update YourBuddy didnt work for me i dont know why but i like your CR i tryed new and clean install but still the same no Yourbuddy window on CR choice
       
    7. stewiethecat

      stewiethecat Member

      Joined:
      Feb 4, 2011
      Messages:
      454
      Likes Received:
      0
      Trophy Points:
      16
      yrb doesn't work because xcesius' whole trunk loaded into the folder. all you have to do is go into YRB folder and remove the honorbuddy folder that was uploaded inside. Should work after that
       
    8. Xcesius

      Xcesius Community Developer

      Joined:
      May 1, 2011
      Messages:
      2,050
      Likes Received:
      61
      Trophy Points:
      48
    9. heinzskies

      heinzskies Member

      Joined:
      Sep 7, 2014
      Messages:
      57
      Likes Received:
      2
      Trophy Points:
      8
      Thanks you, I was pulling the whole repository when I'm trying to update something since the beginning lol.
       
    10. lord12

      lord12 New Member

      Joined:
      Mar 15, 2015
      Messages:
      19
      Likes Received:
      0
      Trophy Points:
      1
      Checkout from https://subversion.assembla.com/svn/...rRaidingBuddy, revision HEAD, Fully recursive, Externals included
      Unexpected HTTP status 405 'Method Not Allowed' on '/svn/...rRaidingBuddy'

      Additional errors:
      PROPFIND request on '/svn/...rRaidingBuddy' failed: 405 Method Not Allowed
       
    11. newb23

      newb23 Community Developer

      Joined:
      Nov 26, 2014
      Messages:
      397
      Likes Received:
      15
      Trophy Points:
      18
      You'll need to either click on the link and copy it out of the address bar, or right click and save/copy the address.
      As of right now, you literally copied the ... as part of the address rather than having the full address. :p
       
    12. heshire

      heshire Member

      Joined:
      Jul 27, 2015
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      6
      Is it possible to add options to the overlay, such as display which hotkey/rotation is active? I enjoy using this with my warrior, but it would be nice if toggling a rotation would happen as soon as you hit another hotkey instead of toggling it off first before going to a different one (ex. switching from HK1 emnity combo to HK2 DPS combo doesn't require hitting HK1 first to toggle off before toggling HK2.) A thank you to everyone so far that has contributed to this great combat assist routine!
       
    13. azian112

      azian112 New Member

      Joined:
      Nov 26, 2014
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      anyway you can have the dark knight do Dark Arts + Split Carve move for more DPS
       
    14. Smax

      Smax New Member

      Joined:
      Dec 15, 2014
      Messages:
      15
      Likes Received:
      0
      Trophy Points:
      0
      Been trying to use the Summoner profile and I notice that it won't attack outside of melee range. Seems to have the same problem when you switch to Bard. Is there a setting somewhere that we can change to allow max spell range?
       
    15. heshire

      heshire Member

      Joined:
      Jul 27, 2015
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      6
      Seconding this. Adding DA Carve & Spit & Dark Passenger to the DPS single-target rotation and incorporating Abyssal Drain (for HP restoration)/Dark Passenger for large AoE trash pulls would be nice!
       
    16. heinzskies

      heinzskies Member

      Joined:
      Sep 7, 2014
      Messages:
      57
      Likes Received:
      2
      Trophy Points:
      8

      DA + Carve & Spit for DPS should be use for single target and Carve & Split should be use for AoE targetting in the next version.

      Can anyone confirm as soon as possible if DP is an DPS increase? Else it won't make it into the next version.
       
    17. heshire

      heshire Member

      Joined:
      Jul 27, 2015
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      6
      I've been keeping an eye on this topic https://www.reddit.com/r/ffxiv/comments/3ghg9f/i_am_currently_writing_a_drk_guide_and_i_want_to/, there is some input in the comments section. The guide will probably be ready for the following version after your next one.
       
    18. heinzskies

      heinzskies Member

      Joined:
      Sep 7, 2014
      Messages:
      57
      Likes Received:
      2
      Trophy Points:
      8
      Try this

      Code:
      // By HeinzSkies
      
      using System;
      using System.Reflection;
      using System.Threading.Tasks;
      using System.Windows.Forms;
      using ff14bot;
      using ff14bot.Enums;
      using ff14bot.Helpers;
      using ff14bot.Managers;
      using ff14bot.Objects;
      using YourRaidingBuddy.Books;
      using YourRaidingBuddy.Helpers;
      using YourRaidingBuddy.Interfaces.Settings;
      using YourRaidingBuddy.Settings;
      using HotkeyManager = YourRaidingBuddy.Managers.HotkeyManager;
      
      namespace YourRaidingBuddy.Rotations
      {
          public class DarkKnight : Root
          {
      
              private static LocalPlayer Me
              {
                  get { return Core.Player; }
              }
      
              public override ClassJobType[] Class
              {
                  get
                  {
                      return new[]
                      {
                          ClassJobType.DarkKnight
                      };
                  }
              }
      
              public static SettingsG GeneralSettings
              {
                  get { return InternalSettings.Instance.General; }
              }
      
              public static DarkKnightSetting DarkKnightSettings
              {
                  get { return InternalSettings.Instance.DarkKnight; }
              }
      
              public override void OnInitialize()
              {
                  
              }
      
              public static async Task<bool> AutoMode()
              {
                  if (Unit.ExceptionCheck()) return true;
                  Unit.UpdatePriorities(0, 5);
                  return await AutoRotation();
              }
      
              public static async Task<bool> HotkeyMode()
              {
                  if (Unit.ExceptionCheck()) return true;
                  Unit.UpdatePriorities(0, 5);
                  return await HotkeyRotation();
              }
      
              private static async Task<bool> AutoRotation()
              {
                  if (await Darkside()) return true;
                  if (!IsEnmityKeyDown() && await Aoe(false)) return true;
                  if (await DotRotation()) return true;
                  if (await FinishedRotation()) return true;
                  if (IsEnmityKeyDown())
                  {
                      if (await EnmityRotation()) return true;
                  }
                  else
                  {
                      if (await DpsRotation()) return true;
                  }
      
                  if (GeneralSettings.Cooldowns == CooldownUse.Always)
                  {
                      if (await OffGcdRotation()) return true;
                      if (await MpGeneratorRotation()) return true;
                  }
      
                  return false;
              }
      
              private static async Task<bool> HotkeyRotation()
              {
                  if (await Darkside()) return true;
                  if (VariableBook.HkmMultiTarget)
                  {
                      if (!IsEnmityKeyDown() && await Aoe(true)) return true;
                  }
                  if (await DotRotation()) return true;
                  if (await FinishedRotation()) return true;
                  if (IsEnmityKeyDown())
                  {
                      if (await EnmityRotation()) return true;
                  }
                  else
                  {
                      if (await DpsRotation()) return true;
                  }
                  if (VariableBook.HkmCooldowns)
                  {
                      if (await OffGcdRotation()) return true;
                      if (await MpGeneratorRotation()) return true;
                  }
      
                  return false;
              }
      
              private static bool IsEnmityKeyDown()
              {
                  return HotkeyManager.IsKeyDown(Keys.LShiftKey);
              }
      
              private static async Task<bool> Darkside()
              {
                  return await
                      Spell.NoneGcdCast("Darkside", Me,
                          () =>
                              DarkKnightSettings.UseDarkside && !Me.HasAura("Darkside") &&
                              Me.CurrentManaPercent > DarkKnightSettings.DarksideMpPercentage);
              }
      
              private static async Task<bool> DpsRotation()
              {
                  if (await Spell.CastSpell("Syphon Strike", () => Actionmanager.LastSpell.Name == "Hard Slash")) return true;
                  if (await Spell.CastSpell("Hard Slash", () => true)) return true;
      
                  return false;
              }
      
              // We always want to finished out combo.
              private static async Task<bool> FinishedRotation()
              {
                  await DarkArts();
      
                  if (
                      await Spell.CastSpell("Souleater",
                          () => Actionmanager.LastSpell.Name == "Syphon Strike" &&
                                ((!ShouldApplyDelirium() &&
                                  (Me.CurrentHealthPercent < DarkKnightSettings.SouleaterHpPercentage &&
                                   Me.HasAura("Grit"))) || Me.HasAura("Dark Arts"))))
                      return true;
                  if (
                      await
                          Spell.ApplyCast("Delirium", Me.CurrentTarget, () => Actionmanager.LastSpell.Name == "Syphon Strike"))
                      return true;
      
                  return await Spell.CastSpell("Power Slash", () => Actionmanager.LastSpell.Name == "Spinning Slash");
              }
      
              private static async Task<bool> DarkArts()
              {
                  if (!DarkKnightSettings.UseDarkArts) return false;
      
                  await Spell.NoneGcdCast("Dark Arts", Me,
                      () =>
                          Actionmanager.LastSpell.Name == "Syphon Strike" &&
                          Me.CurrentManaPercent > DarkKnightSettings.DarkArtsSouleaterHpPercentage &&
                          !ShouldApplyDelirium() && !Me.HasAura("Dark Arts"));
                  await Spell.NoneGcdCast("Dark Arts", Me,
                      () =>
                          Actionmanager.LastSpell.Name == "Spinning Slash" &&
                          Me.CurrentManaPercent > DarkKnightSettings.DarkArtsPowerSlashHpPercentage &&
                          !Me.HasAura("Dark Arts"));
      
                  return false;
              }
      
              private static bool ShouldApplyDelirium()
              {
                  return !Me.CurrentTarget.HasAura("Delirium", false, 4000) && !Me.CurrentTarget.HasAura("Dragon Kick") &&
                         Me.ClassLevel >= 50 && DarkKnightSettings.UseDelirium;
              }
      
              private static async Task<bool> Aoe(bool force)
              {
                  if (!force && !GeneralSettings.Aoe) return false;
      
                  return await Spell.CastSpell("Unleash", Me,
                      () =>
                          ((Me.CurrentManaPercent > 50 && ShouldAoe()) ||
                           Me.HasAura("Enhanced Unleash") || force));
              }
      
              private static bool ShouldAoe()
              {
                  return VariableBook.HostileUnitsCount >= GeneralSettings.AoeCount;
              }
      
              private static async Task<bool> DotRotation()
              {
                  if (await Spell.ApplyCast("Scourge",
                      Me.CurrentTarget, () => !Me.CurrentTarget.HasAura("Scourge", true, 4000) &&
                                              Actionmanager.LastSpell.Name != "Syphon Strike" &&
                                              Actionmanager.LastSpell.Name != "Hard Slash" &&
                                              Actionmanager.LastSpell.Name != "Spinning Slash" &&
                                              (Me.CurrentTarget != null && Me.CurrentTarget.CurrentHealth > 3000)))
                      return true;
      
                  return false;
              }
      
              // Currently without a way to detect enmity, we will use hotkey to trigger this.
              private static async Task<bool> EnmityRotation()
              {
                  if (await Spell.CastSpell("Spinning Slash", () => Actionmanager.LastSpell.Name == "Hard Slash"))
                      return true;
                  if (await Spell.CastSpell("Hard Slash", () => true)) return true;
                  return false;
              }
      
              private static bool TargetIsNear()
              {
                  return Me.CurrentTarget.Distance(Me) - Me.CurrentTarget.CombatReach < 3;
              }
      
              private static async Task<bool> OffGcdRotation()
              {
                  // Defensive that keeps you from dying
                  await Spell.NoneGcdCast("Convalescence", Me,
                      () =>
                          DarkKnightSettings.UseConvalescence &&
                          Me.CurrentHealthPercent < DarkKnightSettings.ConvalescenceHpPercentage &&
                          UnitIsTargettingMe());
                  await Spell.NoneGcdCast("Shadow Wall", Me,
                      () =>
                          DarkKnightSettings.UseShadowWall &&
                          Me.CurrentHealthPercent < DarkKnightSettings.ShadowWallHpPercentage &&
                          UnitIsTargettingMe());
                  await Spell.NoneGcdCast("Shadowskin", Me,
                      () =>
                          DarkKnightSettings.UseShadowskin &&
                          Me.CurrentHealthPercent < DarkKnightSettings.ShadowskinHpPercentage &&
                          UnitIsTargettingMe());
                  await
                      Spell.NoneGcdCast("Dark Mind", Me,
                          () =>
                              DarkKnightSettings.UseDarkMind &&
                              Me.CurrentHealthPercent < DarkKnightSettings.DarkMindHpPercentage &&
                              UnitIsTargettingMe());
      
                  // Offensive by DPS
                  await Spell.NoneGcdCast("Reprisal", Me.CurrentTarget, () => DarkKnightSettings.UseReprisal);
                  await Spell.NoneGcdCast("Mercy Stroke", Me.CurrentTarget,
                      () =>
                          DarkKnightSettings.UseMercyStroke &&
                          (Me.CurrentTarget != null && Me.CurrentTarget.CurrentHealthPercent <= 20));
                  await Spell.NoneGcdCast("Low Blow", Me.CurrentTarget, () => DarkKnightSettings.UseLowBlow);
      
                  if (DarkKnightSettings.UseCarveAndSpit && DarkKnightSettings.UseDarkArts && !ShouldAoe())
                  {
                      await Spell.NoneGcdCast("Dark Arts", Me,
                          () => !Me.HasAura("Dark Arts") && Actionmanager.LastSpell.Name != "Syphon Strike" &&
                                Actionmanager.LastSpell.Name != "Spinning Slash" &&
                                Actionmanager.CanCast("Carve and Spit", Me.CurrentTarget));
      
                      await Spell.NoneGcdCast("Carve and Spit", Me.CurrentTarget,
                          () =>
                              Me.HasAura("Dark Arts") &&
                              Actionmanager.LastSpell.Name != "Syphon Strike" &&
                              Actionmanager.LastSpell.Name != "Spinning Slash");
                  }
                  else if (DarkKnightSettings.UseCarveAndSpit)
                  {
                      await Spell.NoneGcdCast("Carve and Spit", Me.CurrentTarget,
                          () =>
                              (!Me.HasAura("Dark Arts") && Actionmanager.LastSpell.Name != "Syphon Strike" &&
                               Actionmanager.LastSpell.Name != "Spinning Slash" && Me.CurrentManaPercent < 50));
                  }
      
                  await Spell.NoneGcdCast("Dark Passenger", Me.CurrentTarget,
                         () =>
                             (!Me.HasAura("Dark Arts") && Actionmanager.LastSpell.Name != "Syphon Strike" &&
                              Actionmanager.LastSpell.Name != "Spinning Slash"));
      
                  await
                      Spell.CastLocation("Salted Earth", Me.CurrentTarget,
                          () => DarkKnightSettings.UseSaltedEarth && TargetIsNear());
      
                  // Defensive
                  await Spell.NoneGcdCast("Bloodbath", Me,
                      () =>
                          DarkKnightSettings.UseBloodbath && TargetIsNear() &&
                          Me.CurrentHealthPercent < DarkKnightSettings.BloodbathHpPercentage);
                  await Spell.NoneGcdCast("Dark Dance", Me,
                      () =>
                          DarkKnightSettings.UseDarkDance &&
                          Me.CurrentHealthPercent < DarkKnightSettings.DarkDanceHpPercentage &&
                          UnitIsTargettingMe());
                  await Spell.NoneGcdCast("Foresight", Me,
                      () =>
                          DarkKnightSettings.UseForesight &&
                          Me.CurrentHealthPercent < DarkKnightSettings.ForesightHpPercentage &&
                          UnitIsTargettingMe());
      
                  return false;
              }
      
              private static async Task<bool> MpGeneratorRotation()
              {
                  await Spell.NoneGcdCast("Blood Weapon", Me,
                      () =>
                          DarkKnightSettings.UseBloodWeapon &&
                          Me.CurrentManaPercent < DarkKnightSettings.BloodWeaponManaPercentage && TargetIsNear());
                  await Spell.NoneGcdCast("Blood Price", Me,
                      () =>
                          DarkKnightSettings.UseBloodPrice &&
                          Me.CurrentManaPercent < DarkKnightSettings.BloodPriceManaPercentage &&
                          UnitIsTargettingMe());
                  await Spell.NoneGcdCast("Sole Survivor", Me.CurrentTarget,
                      () => DarkKnightSettings.UseSoleSurvivor &&
                            (Me.CurrentManaPercent < DarkKnightSettings.SoleSurvivorManaPercentage ||
                             Me.CurrentHealthPercent < DarkKnightSettings.SoleSurvivorHpPercentage) &&
                            (Me.CurrentTarget != null && Me.CurrentTarget.CurrentHealth < 5000));
      
                  return false;
              }
      
              private static bool UnitIsTargettingMe()
              {
                  return VariableBook.HostileUnitsTargettingMeCount > 0;
              }
          }
      }
      
       
    19. heshire

      heshire Member

      Joined:
      Jul 27, 2015
      Messages:
      49
      Likes Received:
      0
      Trophy Points:
      6
      Thanks, I will give this a go later when I get home and let you know how it works out!

      update: Ran this routine through Alex 2 and Fractal Continuum: parsed at #3 for DPS in Alex 2 with Grit on the whole time and fending accessories; #1 in DPS at 735.23 in Fractal against the final boss with full slayer accessories and Grit turned off for the last half of the fight. Still using a law weapon, can't wait to get my hands on an esoteric!
       
    20. EonsTimE

      EonsTimE New Member

      Joined:
      Aug 10, 2014
      Messages:
      9
      Likes Received:
      0
      Trophy Points:
      1
      Trying to make the Overlay menu more pleasant to the eye. Also, because text background is transparent, it is very hard to click the buttons as you have to exactly click on the font. So I made backgrounds not transparent.

      What do you think about this:
      View attachment Overlay.cs
      View attachment Overlay.Designer.cs

      Anyone knows:
      1) How to make overlay displayed as soon as the routine starts, instead of being hidden as default
      2) How to code so that overlay gets hidden if FFXIV window or RebornBuddy window aren't in focus?
      3) Add a toggle in menu settings to choose between transparent and non transparent overlay button backgrounds (I might be able to figure this one out by myself)

      Thanks
       

    Share This Page