The Ultimate Combat Routine Introduction Finally, here it is. The (hopeful) successor to Magitek, built upon the (CoRoutine) foundation of MoreDots. Huge shoutout to Exmortem and Wheredidigo for all their support along the way. This Combat Routine wouldn't exist without their influence/aid. Features All Classes/Jobs 1-50 Single Target DPS DPS Classes/Jobs 1-50 Multi Target DPS On The Fly Class/Job Switching Chocobo Support SMN Pet Support (Currently Only Manually Controlling Garuda) Currently In Development 50-60 Leveling For All Classes/Jobs Fully Implementing All Cross-Class Skills ***You Will NOT Be Able To Check The Check-Boxes Of Cross-Class Skills That Are Not Currently Implemented*** Implementing Proper Tanking/Healing Logic Change Log (re-download Ultima any time you see a new line added here) Code: [U]8/9/15[/U] Fixed AoE Bug Fixed Armor Crush Logic Improved Ninjutsu Logic Fixed WAR Bugs Fixed BRD Bugs [U]8/1/15[/U] Improved Movement Code Improved Overall Cast Logic Fixed Dismount Bug (Fixed Disconnect Bug) Improved Ninjutsu Casting [U]7/26/15[/U] Improved Chocobo Summoning Logic || Thanks to [B]heinzskies[/B] Improved Ninjutsu Logic Added Movement Workaround (For Dismount Bug) [U]7/22/15[/U] Fixed Movement Bug Improved NIN Ninjutsu Logic [U]7/20/15[/U] Fixed Friendly Cast Bug Fixed Mounted Casting Issue Fixed BRD IronJaw Fixed Location Casting Issue Fixed Facing Issue Fixed DRG Bugs Fixed MNK Bugs Fixed BRD Bugs Improved BRD Rotation Improved Cast Method Improved Move Method [U]7/15/15[/U] Improved WHM Mana Usage Improved Spell Queuing Improved Cast Location Randomization [U]7/14/15[/U] Added Randomized Location Casting || Thanks To [B]Alexander[/B] (YourRaidingBuddy) And [B]Cloud[/B] Added Spell Queuing Fixed LNC/DRG CT Combo [U]7/12/15[/U] Improved DRK Target Transition Logic Improved CNJ/WHM Protect Logic Overhaul DRK Logic [U]7/11/15[/U] Fixed NIN Armor Crush Fixed MNK Elixir Field Improved Overall Casting Targeting Logic Fixed Friendly Targeting Bug Fixed NIN Rotation Fixed MNK Rotation Fixed DRG Rotation [U]7/10/15[/U] Added HW MNK Rotation Added New Settings for BRD/MCH/DRG/NIN/MNK Improved DRG Rotation Improved NIN Rotation Improved MCH Turret Logic [U]7/9/15[/U] Fixed BRD The Wanderer's Minuet Fixed NIN Duality Fixed Friendly Targeting Fixed CNJ/WHM Protect Logic Adjusted CNJ/WHM Stoneskin II Logic Improved MCH Rotation Added HW DRG Rotation Added HW NIN Rotation Added HW BRD Rotation [U]7/8/15[/U] Fixed Stoneskin II Logic Fixed Cleric Stance Logic Adjusted Targeting Logic [U]7/7/15[/U] Fixed OnLocation (Now TargetLocation) Cast and Movement Logic Added SelfLocation (To Cast Location Spells On Player Rather Than Target) Improved MCH Turret Logic Fixed MCH Reassemble Logic Added WHM Healing Logic Added WHM Settings Improved Goad Logic Updated Spell Library [U]6/28/15[/U] Fixed Movement Bug Fixed Suiton Logic Fixed Trick Attack Null Error Fixed MCH Settings Fixed DRK Settings Improved Movement Logic Improved AoE Logic Improved Pet Logic Improved Ninjutsu Logic [U]6/27/15[/U] Added Support For AST/DRK/MCH Tweaked AoE Logic Adjusted Role/Goad Logic Fixed DRK Chocobo Logic Fixed MCH Hawk's Eye and Reassemble Logic [U]6/11/15[/U] Corrected DRG AoE Logic || Thanks [B]exaccuss[/B] [U]6/7/15[/U] Updated Cross-Class GUI Improved Goad Logic Tweaked Movement Logic [U]6/6/15[/U] Fixed Cleric Stance Fixed Goad Logic Fixed CNJ/WHM DPS Rotation Fixed Movement Logic [U]6/5/15[/U] Improved Bard Song Logic || Thanks [B]oruna[/B]! [U]6/3/15[/U] Fixed ARC/SCH/SMN Rotation Fixed LNC/DRG Impulse Drive Improved Overall AoE Logic Fixed PGL/MNK Fists Of Earth Logic Rebuilt Auto-Goad Logic To Be Class/Job Specific || Thanks to [B]Wheredidigo[/B] for the advice [U]6/2/15[/U] (Hopefully) Fixed Dismount Issue Completely Rebuilt/Simplified Ultima's Core Added Setting For Default CR (Prevents Being Prompted On Every Class/Job Change) || Thanks [B]Neverdyne[/B] Added Rotation Settings/Overlay Added Logic For Spell Shapes || Big Thanks To [B]Neverdyne[/B] Added AoE Rotations For All DPS Classes/Jobs. Added Settings For PGL/MNK Fists Added Settings For PLD Oaths Added Setting For Shield Swipe And Improved Logic Improved THM/BLM Transpose Logic Improved ARC/SCH/SMN Summoning Logic Improved ARC/SCH/SMN Self-Healing Logic Fixed CNJ/WHM Self-Healing Logic. Added Smart Cleric Stance Swapping For CNJ/WHM/SCH Added Auto-Goad For ROG/NIN Maybe More? I've Lost Track... lol [U]5/16/15[/U] Fixed GUI Issues [U]4/21/15[/U] Fixed Chocobo Dismount Bug [U]4/20/15[/U] Fixed Targeting Logic Error (Null Exceptions) Fixed Dismount Issue Rebuilt Rest Logic (To Know When We're In Town/Sprinting) [U]4/19/15[/U] Updated Movement/Pull Code To Be Compatible With RebornBuddy's New System Fixed CR Selection Screen (Big Thanks To [B]Wheredidigo[/B] for the code) [U]3/26/15[/U] Added New Option For ROG/NIN (Poison Auras) Fixed LNC/DRG Rotation [U]3/25/15[/U] Improved ROG/NIN Rotation Added New Options For ROG/NIN (Dancing Edge and Ninjutsu Usage) Improved LNC/DRG Rotation Added Crafting/Gathering Job Support (Shouldn't Crash When Switching Jobs) [U]3/1/15[/U] Rebuilt THM/BLM Modified Recent Spell Dictionary (Not User Friendly Yet) [U]1/25/15[/U] Fixed Summoner MP Issues [U]1/24/15[/U] Improved Ninjutsu System [U]1/21/15[/U] Fixed Chocobo Summoning Fixed Various Movement Issues Fixed Various Targeting Issues Fixed Summoner Off-GCD Issues Fixed Summoner Shadow Flare Logic Improved Movement Cast Logic Completely Rebuilt Ninjutsu System Minor Performance Improvements Added SVN [U]12/18/14[/U] Fixed Pugilist/Monk Precombat Logic Fixed Ninja Pull Logic [U]12/17/14[/U] Improved Pugilist/Monk Rotation Logic (Thanks Azoth!) Improved Pull Logic Updated DoT/Buff Expiration Values [U]12/14/14[/U] Revamped Spell Library To Support Spell IDs Completely Rebuilt Off-GCD Method Fixed Lancer/Dragoon Impulse Drive Logic [U]12/9/14[/U] Minor Fixes/Improvements To Base Classes Updated Heavy Thrust, Impulse Drive, and Chaos Thrust Logic Removed Impulse Drive From All Cross-Classes Rebuilt Spell Library Improved OnLocation Casting ]Added More Intelligent GCD Management Added Execute Settings To Relevant Classes/Jobs [U]12/5/14[/U] Rebuilt Monk/Pugilist Profile [U]12/4/14[/U] Miscellaneous Code Improvements [U]12/3/14[/U] Fixed Pre-Combat Logic For Arcanist, Scholar, Summoner, Gladiator, Paladin Changed Pull Logic For Arcanist, Scholar, Summoner Small Change To Dragoon Rotation Logic [U]12/2/14[/U] Added Rest Logging Fixed Dragoon Power Surge Logic Fixed Dragoon Life Surge Logic Made Minor Improvements to Summoner Logic Fixed Paladin Sword Oath Logic [U]12/1/14[/U] Fixed Dragoon Pull Logic Fixed Typos Fixed Dragoon Full Thrust Logic Rebuilt Summoner Logic For Better Mana Efficiency [U]11/30/14[/U] Fixed Dragoon Full Thrust/Life Surge Interaction Added More Settings [U]11/29/14[/U] Eliminated Cast Spamming While Moving Fixed WHM Fluid Aura Logic Fixed SMN Swiftcast/Shadow Flare Logic Added Shroud Of Saints To CNJ/WHM For MP Recovery Reduced Heal Spam (On All Classes/Jobs That Currently Use Heals) Improved Pull Logic For All Classes/Jobs [U]11/25/14[/U] Rebuilt Off-GCD Logic || Shout-Out To [B]Ichiba[/B] For The Advice Fixed Ninjutsu Loop Added Life Surge to Lancer/Dragoon Rotation Release To any Community Developers out there: Feel free to chime in if you see anything that can be improved or if you have anything you want to contribute. SVN Checkout https://subversion.assembla.com/svn/ultimacr/
Cool. Should probably have some settings and should check a gcd so it doesn't delay gcd abilities by doing non gcd abilities, but otherwise it looks kind of neat.
Tested out dragoon. Not bad at all. However, Please include settings for abilities. For example dragoon: the jumps, leg sweep etc etc. What really surprised me is life surge does not get used at all.
I currently have all non-gcd abilities set to only cast during the gcd (unless I missed some, which is totally possible lol). Although, I will say that I've noticed it will try to cast too many skills during the gcd sometimes (clipping out of the gcd a bit). Let me know if you notice any specific examples. I'll try to improve the logic. Yeah that's my bad. I had actually already coded Life Surge and just forgot to put it in the rotation lol. I've updated the CR with the correct rotation. Let me know if it works how you'd expect it to (I didn't get the chance to test it, I'm off to work). I also forgot to put in settings for interrupts (in case you want to save them) and for some class/job spells (like Dragoon jumps). I'll get those in ASAP. Thanks for reminding me.
Evasion isn't too hard. Detection is the kicker. To my knowledge, there's currently no way to detect if an AoE spell is being cast/what kind of AoE spell it is (short of making a huge enemy spell database, which could be a possibility but would take a long time to complete). We could just move every time a mob casts a spell but that would end up clunky and jittery (especially since I don't think the bot can move and cast at the same time, I could be wrong about that though). I think its going to take the combined effort of mastahg and all the Community Devs to figure out a good solution for that one. If I finish the base of the CR (single target, AoE, tanking, healing, etc.) and there still isn't a good solution I'll try to rig something up.
If there aren't too many issues with the single target rotation it'll be added pretty soon. I would also include a toggle for it (both were supposed to be in for launch but after weeks of development I decided to release what I had lol).
I've been running it as a low-level Gladiator with no major issues or complaints. It's not a very complex rotation at low level though. I will vote for actual settings like other people have mentioned, I would like to be able to change pull range and rest HP/MP/TP and the other standard stuff I can normally play with. It's a great first release though, love that it supports cross-class skills, and I look forward to seeing it get better. EDIT: Something else I've just noticed, does the bot move to LOS of an enemy if it targets an enemy that then moves out of LOS? I found the bot got a target from Order Bot which was out of its LOS, and instead of moving to LOS to pull, it just sat there until I moved it to LOS. Not 100% sure of the sequence of events in that scenario, it's just a question.
Pull range should be dynamic. It should cast a spell as soon as it can (so like for Gladiator, if Shield Lob is set as a pull spell, it should cast it as soon as it's in range and then move in range for the melee abilities). The Rest settings I could add. I was trying to avoid settings that could cause users to break the CR (like setting the incorrect range in Magitek did) but I'll try to figure something out for Power Users. As for the movement issue, did it actually have a target? Current movement logic only moves to Core.Target/CurrentTarget. I've noticed sometimes Fatebot will stop moving before it targets anything (possibly because the intended target isn't in LoS) but my CR has no targeting logic so that falls solely on the botbase. If the botbase fails to control targeting I don't have a failsafe in place yet (but that only happened rarely and resolved itself once the PoI refreshed). If you actually had a target I might need to adjust something. It should detect that the target isn't in LoS and resolve it. I never tested with Order bot (only Fate and ExCombat) so there might be an issue there.
It actually probably didn't have a target specifically, but it did have a POI. That makes a bit more sense.
During the nin routine it will stop and not attack even though I am targeting and engaging the mob. Please advise. Logs attached. View attachment 2572 2014-11-25 13.29.txt View attachment 5768 2014-11-25 13.21.txt
No, it does what you said, but that's not really what I meant. Animation lock makes it so if you do something like a cooldown like blood for blood 50ms before your GCD is ready, you'll have to wait something like 950ms with a gcd ready before it can actually do it. You can do Actionmanager.CurrentActions.TryGetValue("LowLevelGCD", out SomeSpellData); and then check SomeSpellData.Cooldown.TotalMilliseconds >= 1000 before doing off-gcd actions so the animation lock of an off-gcd action doesn't delay a gcd. Also, you should probably add !MovementManager.IsMoving || Core.Me.HasAura("Swiftcast") to spells that have a cast time so it doesn't just spam the heck out of them while you're moving around.
The log 2572 2014-11-25 13.29.txt is using Kupper not Ultima. The second log it looks like it got stuck in a Ninjutsu loop due to me leaving in an unnecessary redundancy. I've updated the OP with a new version. Try it and see if it fixes the problem for you. Yeah I originally had a movement check for spells with cast times for classes that didn't have an instant to spam but it looks like I forgot to work it back in after a revamp I did on the spellbook. I'll try to add that back in soon. Thanks for the reminder. As for the animation lock, thanks for the heads up. I'm gonna try something and if it works I'll report back and update the OP with the improved logic. EDIT: Well, thanks to the Console I now know some spells don't return a cooldown. Heavy Thrust (Lancer/Dragoon) will return a cooldown but True Thrust is always 0. Hrm...
Another thing for dragoon, can we have an option on what to use power surge with? It's just i was under the impression that power surge should only be used with jump as it benefits the most from it. (based on guides and the rotation reborn thread)
I've been using Ultima all morning as a Bard and haven't run into any problems yet. I do have a question about what the default rest HP and rest energy are though. I don't see an option to change those values in the settings, so I was wondering what it was.