[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
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!
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 } }
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
now my next question is what command can i use to execute a ability if something is a certain amount of range away
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
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,
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.
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,
Hi Warcren, Please update to latest. I've just added a AoE Detection Count for Machinist. Use VariableBook.HostileUnitsCount
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
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!
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.