• Visit Rebornbuddy
  • YourRaidingBuddy - Coming Soon

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

    1. Mathikk

      Mathikk New Member

      Joined:
      Oct 14, 2012
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      [02:05:00.306 N] Compiler Error: c:\Users\Carlos\Desktop\Rebornbuddy 1.0.240.0\Routines\YourRaidingBuddy\Rotations\Jobs\Monk.cs(70,87) : error CS1010: Newline in constant
      [02:05:00.306 N] Compiler Error: c:\Users\Carlos\Desktop\Rebornbuddy 1.0.240.0\Routines\YourRaidingBuddy\Rotations\Jobs\Monk.cs(122,26) : error CS1010: Newline in constant
      [02:05:00.306 N] Compiler Error: c:\Users\Carlos\Desktop\Rebornbuddy 1.0.240.0\Routines\YourRaidingBuddy\Rotations\Jobs\Monk.cs(137,26) : error CS1010: Newline in constant
      [02:05:00.306 N] Compiler Error: c:\Users\Carlos\Desktop\Rebornbuddy 1.0.240.0\Routines\YourRaidingBuddy\Rotations\Jobs\Monk.cs(128,22) : error CS1002: ; expected
       
    2. Mathikk

      Mathikk New Member

      Joined:
      Oct 14, 2012
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      im sorry bud i know im taking up your time i am also trying to see what i can do tho i am not sitting back i assure you!
       
    3. wolfrain62

      wolfrain62 Member

      Joined:
      Aug 22, 2014
      Messages:
      137
      Likes Received:
      0
      Trophy Points:
      16
      Should fix all the newline constant errors but the last error does not make sense to me since that line does not need a ;
      Code:
      using System;
      using System.Linq;
      using System.Threading.Tasks;
      using System.Windows.Media;
      using Buddy.Coroutines;
      using ff14bot;
      using ff14bot.Enums;
      using ff14bot.Helpers;
      using ff14bot.Managers;
      using ff14bot.Objects;
      using YourRaidingBuddy.Helpers;
      using YourRaidingBuddy.Settings;
      using TreeSharp;
      using System.Collections.Generic;
      using YourRaidingBuddy.Books;
      using YourRaidingBuddy.Interfaces.Settings;
      
      namespace YourRaidingBuddy.Rotations
      {
          public class Monk : Root
          {
              private static LocalPlayer Me { get { return Core.Player; } } //Core.Player.CurrentTarget as BattleCharacter
      
              public override ClassJobType[] Class
              {
                  get { return new[] { ClassJobType.Monk }; }
              }
      
      	public override void OnInitialize()
              {
                  ;
              }
      
              #region NewRotation
              public static async Task<bool> AutoMode()
              {
                  if (!Me.CurrentTarget.IsViable())
                      return false;
                  return await MonkRotation();
              }
      
              public static async Task<bool> HotkeyMode()
              {
                  if (!Me.CurrentTarget.IsViable())
                      return false;
                  //if (VariableBook.HkmMultiTarget) await MonkAoE();
                  return await MonkRotation();
              }
      
      
      
      
              public static async Task<bool> MonkRotation()
              {
      	    await MonkOpener();	
      	    await CoolDown();
      	    await TouchofDeath();
      	    await Opo();
      	    await Raptor();
      	    await Cat();
      	
                  return false;
              }
      
      	public static async Task<bool> MonkOpener()
      	{
      		await Spell.CastSpell("Perfect Balance", Me, () => !Me.HasAura("Perfect Balance"));
      		await Spell.CastSpell("Demolish", Me.CurrentTarget, () => !Me.CurrentTarget.HasAura("Demolish"));
      		await Spell.CastSpell("Snap Punch", () => !Me.CurrentTarget.HasAura(112));
      	        await Spell.CastSpell("Snap Punch", () => !Me.CurrentTarget.HasAura(113));
      		await Spell.CastSpell("Twin Snakes", () => !Me.CurrentTarget.HasAura("Twin Snakes") && Me.CurrentTarget.HasAura(113));
      	        await Spell.CastSpell("Dragon Kick", () => !Me.CurrentTarget.HasAura("Dragon Kick") && Me.CurrentTarget.HasAura(113));
      
      		return false;	
      	}
      
      	public static async Task<bool> CoolDown()
      	{
      		await Spell.NoneGcdCast("Internal Release", Me, () => !Me.HasAura(AuraBook.InternalRelease));	
      		await Spell.NoneGcdCast("Blood for Blood", Me, () => Unit.CombatTime.ElapsedMilliseconds > 2000 && !Me.HasAura("Blood for Blood"));
      		await Spell.NoneGcdCast("Elixir Field" , Me.CurrentTarget, () => Unit.CombatTime.ElapsedMilliseconds > 4000);
      		await Spell.NoneGcdCast("Steel Peak", Me.CurrentTarget, () => Unit.CombatTime.ElapsedMilliseconds > 6000); 
      		await Spell.NoneGcdCast("Howling Fist", Me.CurrentTarget, () => Unit.CombatTime.ElapsedMilliseconds > 8000);
      		await Spell.NoneGcdCast("Mercy Stroke", Me.CurrentTarget, () => true);
      		
      		return false;
      	}
      
      	public static async Task<bool> TouchofDeath()
      	{
      		await Spell.CastSpell("Touch of Death", () => !Me.CurrentTarget.HasAura("Touch of Death")); 
      	
      		return false;
      	}
      	
      	public static async Task<bool> Opo()
      	{
      		if (!Me.CurrentTarget.HasAura("Dragon Kick") && Me.HasAura("Opo-opo Form"))
      		{
      			await Spell.CastSpell("Dragon Kick");
      		}
      		
      		if (Me.CurrentTarget.HasAura("Dragon Kick") && Me.HasAura("Opo-opo Form"))
      		{
      			await Spell.CastSpell("Bootshine");
      		}
      	
      		return false;
      	}
      
      	public static async Task<bool> Raptor()
      	{
      		if (!Me.CurrentTarget.HasAura("Twin Snakes") && Me.HasAura("Raptor Form"))
      		{
      			await Spell.CastSpell("Twin Snakes");
      		}
      		
      		if (Me.CurrentTarget.HasAura("Twin Snakes") && Me.HasAura("Raptor Form"))
      		{
      			await Spell.CastSpell("True Strike");
      		}	
      		
      		return false;
      	}
      
      	public static async Task<bool> Cat()
      	{
      		if (!Me.CurrentTarget.HasAura("Demolish") && Me.HasAura("Coeurl Form"))
      		{
      			await Spell.CastSpell("Demolish");
      		}
      		
      		if (Me.CurrentTarget.HasAura("Demolish") && Me.HasAura("Coeurl Form"))
      		{
      			await Spell.CastSpell("Snap Punch");
      		}
      		
      		return false;
      	}
      
      #endregion
      
        }
      }
      
       
      Last edited: Jul 9, 2015
    4. Mathikk

      Mathikk New Member

      Joined:
      Oct 14, 2012
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      Thanks for all your help wolf with your routines i was able to figure out how to get mine working mostly the way i want it to work. See my issue with the monk class is while the routines previously worked flawlessly if you didn't know what move was coming next it caused you to lose dps since all the attacks are positional. With the Routine i am trying to make it will always use the best possible move depending on your positioning and it is your job to watch your dots and debuffs and keep them up
       
    5. Mathikk

      Mathikk New Member

      Joined:
      Oct 14, 2012
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      now my next question is what command can i use to execute a ability if something is a certain amount of range away
       
    6. Mathikk

      Mathikk New Member

      Joined:
      Oct 14, 2012
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
    7. Mathikk

      Mathikk New Member

      Joined:
      Oct 14, 2012
      Messages:
      99
      Likes Received:
      0
      Trophy Points:
      0
      summoner routine seems to no longer attack at all just says friendly healing test over and over
       
    8. mumitroll

      mumitroll Member

      Joined:
      Mar 23, 2015
      Messages:
      75
      Likes Received:
      1
      Trophy Points:
      8
      has anyone worked on a blm routine maybe?
       
    9. wilderg99

      wilderg99 New Member

      Joined:
      May 31, 2014
      Messages:
      245
      Likes Received:
      0
      Trophy Points:
      0
      AWESOME NEWS!! cant wait!!
       
    10. Xcesius

      Xcesius Community Developer

      Joined:
      May 1, 2011
      Messages:
      2,050
      Likes Received:
      61
      Trophy Points:
      48
      Hi Everyone,

      On latest version I've fixed ApplyCast for good. It should now register all spells if it's double casting or not.

      Regarding Summoner,

      I've managed to fix up the dots and such, still working on Cast on Location for Shadow Flare but it's going good :)
       
    11. zazey

      zazey Member

      Joined:
      Jun 15, 2012
      Messages:
      71
      Likes Received:
      1
      Trophy Points:
      8
      Any1 planning on working on a DRG rotation soon?
       
    12. Warcren

      Warcren New Member

      Joined:
      Mar 15, 2015
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      1
      Stop Casting While Moving

      Hello,

      I'm working on a Machinist Routine. Still tweaking it at the moment and I'm stuck on how to make the routine stop casting while moving. Any advice on how to go about doing this? I've looked at the kupo Routine for Blm but haven't been able to figure out how it's done.

      Thanks,
       
    13. Xcesius

      Xcesius Community Developer

      Joined:
      May 1, 2011
      Messages:
      2,050
      Likes Received:
      61
      Trophy Points:
      48
      Hi Warcren,

      Use MovementManager.IsMoving
       
    14. EonsTimE

      EonsTimE New Member

      Joined:
      Aug 10, 2014
      Messages:
      9
      Likes Received:
      0
      Trophy Points:
      1
      One thing I was going to add, for any routine placing damage puddles on the ground - can you add a small randomizer as to where the circle like Shadow Flare or Flaming Arrow is placed? If it's always placed perfectly dead centre under the boss, that doesn't look natural to a bystander. A few pixels off the centre in random direction would do.
       
    15. Xcesius

      Xcesius Community Developer

      Joined:
      May 1, 2011
      Messages:
      2,050
      Likes Received:
      61
      Trophy Points:
      48
      Hi EonsTimE,

      I'll see what I can do later today
       
    16. Warcren

      Warcren New Member

      Joined:
      Mar 15, 2015
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      1
      Hi,

      Thank you for the help, I was able to set it up and it's running nicely now. I'm trying to finish it up by adding AoE functionality. I saw we have "EnemiesNearTarget" under Helpers\Target but I can't seem to get it to work. I have [using YourRaidingBuddy.Helpers;] but i keep getting the following error:

      [20:40:51.875 N] Compiler Error: \Rebornbuddy 1.0.287.0\Routines\YourRaidingBuddy\Rotations\Jobs\Machinist.cs(92,20) : error CS0103: The name 'EnemiesNearTarget' does not exist in the current context

      I'm using the following logic:

      while (EnemiesNearTarget(7) >= AoEMonster & Me.CurrentTP >= 200)
      {
      await Spell.ApplyCast("Invigorate", Me, () => Me.CurrentTP <= UseInvigorateTP);

      if (Core.Me.CurrentTarget.CurrentHealthPercent >= 30)
      await Spell.CastSpell("Spread Shot", Me.CurrentTarget, () => true);
      else
      await Spell.CastSpell("Grenado Shot", Me.CurrentTarget, () => true);
      }

      Please let me know where I'm going wrong or if there's a simpler way of getting this done.

      Thanks,
       
    17. Xcesius

      Xcesius Community Developer

      Joined:
      May 1, 2011
      Messages:
      2,050
      Likes Received:
      61
      Trophy Points:
      48
      Hi Warcren,

      Please update to latest.

      I've just added a AoE Detection Count for Machinist. Use VariableBook.HostileUnitsCount
       
    18. Warcren

      Warcren New Member

      Joined:
      Mar 15, 2015
      Messages:
      13
      Likes Received:
      0
      Trophy Points:
      1
      Machinist Routine

      Hi,

      Here Is my Machinist rotation. At the moment all the functions are hard coded. As soon as Xcesius or someone else builds a tab for "Settings" for one of the jobs I'll try to build one for Machinist if none does it before me. I say this because honestly I have no clue how to do it. In the mean time any change to the default settings will have to be done on the code. Testing is still needed to see if anything breaks. I did the best I could as far as rotation goes. If you find you can improve DPS further please let us all know(The more deeps the better!)

      Ok, on to the settings:

      AutoBuff //Enabled by default
      Potions //X-Potion of Dexterity and Off by default
      Silence //Enabled by default
      MinHpBuff = 15000 //Buffs will go off if the boss has more than this HP
      MinHpDeBuff = 10000 //DeBuffs will go off if the boss has more than this HP
      Invigorate //Goes off at 500 TP
      AutoAoE //Enabled by Default. Will go off if more than 4 monsters present.
      Auto Turret //Enabled by default Will be placed slightly behind to the left of the mob. Bishop will be used when more than 2 targets present. Note: Careful when used with Mob/Boss that shouldn't have anything placed near or behind him. Ex. Squid Arms in Satasha Hard, Darkness.

      Additional Notes:
      -When moving with Gauss Barrel On, Feint will be used. I use this instead of Quelling Strikes.
      -When Gauss Barrel Off, normal rotation of shots will be used. Buffs will be saved for when GB is back Up.
      -This Routine was done with EndGame in mind. Haven't fully tested it on Lower levels.

      Installing:
      - BackupEverything - Life #1 Rule xD
      - Make sure to update "YourRaidingBuddy" to latest version.
      - Place the file Machinist.cs in \Rebornbuddy\Routines\YourRaidingBuddy\Rotations\Jobs.
      - Edit the file \Rebornbuddy\Routines\YourRaidingBuddy\Behaviors.cs and add a #region Machinist. See the instructions provided by Xcesius.

      Happy Hunting Machinists
       

      Attached Files:

    19. newb23

      newb23 Community Developer

      Joined:
      Nov 26, 2014
      Messages:
      397
      Likes Received:
      15
      Trophy Points:
      18
      I can help with that!

      Here is a working settings file, for Ninja, that I shamelessly stole and edited from Kupper to work with YRB.

      The concept for all settings files is the same, and is exceptionally easy to implement into the code itself as I am sure you'll find.

      Good Luck!

      View attachment NinjaSettings.cs

      EDIT:

      Xcesius fixed the GUI machinist right below me, and also added some settings for Machinist, but, I'll leave this settings file here as it shows how you can set up several different types of settings to later implement into rotations!
       
      Last edited: Jul 11, 2015
    20. Xcesius

      Xcesius Community Developer

      Joined:
      May 1, 2011
      Messages:
      2,050
      Likes Received:
      61
      Trophy Points:
      48
      Added Machinist thanks to user Warcren


      Fixed so MachinistSettings loads on GUI load. You can add more settings easily by looking into MachinistSettings.cs in Settings/Jobs/MachinistSettings.cs


      Fixed up null checks. ALWAYS remember null checks when checking CurrentTarget Health Percentage!!!


      I've added MinHpBuff, MinHpDeBuff, EnableAutoBuffs and UseInvigorateTP settings.


      I think Warcren didn't upload the latest .cs as there's features he wrote in his post that's missing.
       

    Share This Page