What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Ultima - The Ultimate Combat Routine

Endus

Community Developer
Joined
Jul 9, 2012
Messages
458


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/
 

Attachments

Last edited:
YAY! For finally getting this out to the public. I look forward to seeing how it does for everyone.
 
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.
 
Last edited:
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.
 
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. At least it doesn't make my game freeze, haha.

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.

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.

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.
 
Last edited:
Thank you for your hard work. Will mob aoe detection and evasion eventually be included?
 
Thank you for your hard work. Will mob aoe detection and evasion eventually be included?

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.
 
Last edited:
When do you think aoe will be added in? When it will, will you be adding aoe toggle too?
 
When do you think aoe will be added in? When it will, will you be adding aoe toggle too?

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.
 
Last edited:
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.
 
Last edited:
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.
 
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.
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.
 
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 153578
View attachment 153579

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. :cool:

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.

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...
 
Last edited:
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. :cool:

I switched to kupper after the freeze, thanks for the update.
 
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.
 
Back
Top