Getting compiler Errors since last update. [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Root.cs(30,46) : warning CS0109: The member 'YourRaidingBuddy.Root.Revision' does not hide an inherited member. The new keyword is not required. [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Behaviors.cs(370,127) : error CS0234: The type or namespace name 'Machinist' does not exist in the namespace 'YourRaidingBuddy.Rotations' (are you missing an assembly reference?) [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Behaviors.cs(381,127) : error CS0234: The type or namespace name 'Machinist' does not exist in the namespace 'YourRaidingBuddy.Rotations' (are you missing an assembly reference?) [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Root.cs(158,40) : warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Core\Helpers\Movement.cs(133,13) : warning CS0162: Unreachable code detected [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Core\Helpers\Spell.cs(491,40) : warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [03:03:22.861 N] Compiler Error: c:\Program Files (x86)\Reborn\Routines\YourRaidingBuddy\Rotations\Jobs\Bard.cs(36,40) : warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Correct File - Machinist Thanks again Xcesius, You were right, I uploaded a really old version. I'm including the one I meant to post, sorry. I updated MachinistSettings and tied them to my rotation. Added null checks following your example. Please let me know if there's anything else I can improve.
Yes, it should be the best one currently available. Hold shift to generate enmity. That's all you need to know.
Dragoooonnnnnn. Had so much fun doing this, still not perfect and some bits untested but it mostly works and usable. Super minimal for now but I do want to expand on some of these skills. I'm unsure how to use Semi-Hotkey mode though. I'm afraid to say that I haven't used YRB in WoW much so I don't know how it was used in WoW. So I made it a simple press button to AoE mode, its either this or press button to CD mode. In full Hotkey mode, press Special key to spam jumps. AoE button works and CD button works. I can't get it to AoE magically. Or maybe it does work but I haven't pulled enough mobs? Whatever.
it was working fine for like 5 minutes then my game crashed and its not working anymore. i deleted it and re installed it and still wont work. anyone know whats going on?
New update is out --> Updated Dark Knight rotation //Thanks heinzskies! Added Dragoon Rotation and Settings //Thanks khld! Updated Machinist rotation and settings //Thanks Warcren! Added new spell cast method (Work in progress) that uses CanCastOrQueue, if you want to use this please use SpellBook for SpellID's. Using CanCastOrQueue means you won't be able to queue manually anymore. It will follow the rotation to the point (400-500 ms queue timer) Tweaked CastLocation on spell to be sort of randomized upto 3f (CombatReach * 0.5 * 0.0-1.0) //Thanks Chris! Fixed ApplyCast bug where it wouldn't take dot spells into account. Should work for Summoner now
When i finished leveling i will try to work something out for BLM. You seem to have a nice core base for creating profiles . One question tho Xcesius: BLM in 3.0 requires us to switch situation wise between rotations and for that it has to check 3 given cases. Is this possible to do in a way of good performance with your routine? To clarify my question i will put a quote about rotations in 3.0 from a good guide source into the following spoiler. You need to register and have one post to see spoilers!
Awesome update. Does this happen to include all ground targetted spells (ie. Dark Knight Salted Earth)? Thanks for the work on this routine!
i freaking love the DRK ruitine so much but i am unable to use orber bot with it and going back to kupo after using this is sooooooo sad. is there any chance to make this work with order bot?
Some people wanted me to post the code for ninja where I changed raiton to fuma. I will eventually get to simply adding a hotkey function that switches ration and fuma on or off. Change Lines 230 and 242 from CastFuma(); to CastRaiton(); in the Ninja.cs file. Before Change: Code: internal static async Task<bool> DoNinjutsu() { //Exit early if player was inputting something if (Core.Player.HasAura("Mudra")) return true; if (Actionmanager.CanCastOrQueue(Jin, null)) { if (!Core.Player.HasAura("Huton", true, HutonRecast)) { Logger.Write("YourRaidingBuddy Casting " + "Huton" + "Chi Combo!"); await CastHuton(); return false; } var curTarget = Core.Target as BattleCharacter; if (curTarget == null) return false; // if (curTarget.TimeToDeath() <= 3) // return false; //Suiton var taCD = Trick_Attack.Cooldown; //We can start casting suiton before trick attack is ready cause its going to take some time if (taCD.TotalMilliseconds <= 1300) { if (!await CastSuiton()) return false; return false; } if (taCD.TotalSeconds >= 5) { [B] HERE!!!! await CastFuma();[/B] } return false; } if (Actionmanager.CanCastOrQueue(Chi, null) && Me.CurrentTarget.HasAura("Shadow Fang")) { Logger.Write("YourRaidingBuddy Casting " + "Fuma"); [B]HERE!! await CastFuma();[/B] return false; } if (Actionmanager.CanCastOrQueue(Ten, null)) { Logger.Write("YourRaidingBuddy Casting " + "Ten" + "Ninjutsu!"); { await Coroutine.Wait(2000, () => Actionmanager.DoAction(Ten, null)); await CastNinjutsu(); return false; } } return false; } After Change: Code: internal static async Task<bool> DoNinjutsu() { //Exit early if player was inputting something if (Core.Player.HasAura("Mudra")) return true; if (Actionmanager.CanCastOrQueue(Jin, null)) { if (!Core.Player.HasAura("Huton", true, HutonRecast)) { Logger.Write("YourRaidingBuddy Casting " + "Huton" + "Chi Combo!"); await CastHuton(); return false; } var curTarget = Core.Target as BattleCharacter; if (curTarget == null) return false; // if (curTarget.TimeToDeath() <= 3) // return false; //Suiton var taCD = Trick_Attack.Cooldown; //We can start casting suiton before trick attack is ready cause its going to take some time if (taCD.TotalMilliseconds <= 1300) { if (!await CastSuiton()) return false; return false; } if (taCD.TotalSeconds >= 5) { [B] HERE!!! await CastRaiton();[/B] } return false; } if (Actionmanager.CanCastOrQueue(Chi, null) && Me.CurrentTarget.HasAura("Shadow Fang")) { Logger.Write("YourRaidingBuddy Casting " + "Raiton"); [B] Here!!! await CastRaiton();[/B] return false; } if (Actionmanager.CanCastOrQueue(Ten, null)) { Logger.Write("YourRaidingBuddy Casting " + "Ten" + "Ninjutsu!"); { await Coroutine.Wait(2000, () => Actionmanager.DoAction(Ten, null)); await CastNinjutsu(); return false; } } return false; } Do not forget to delete the HERE !!!! from the code if your doing copy and paste.