• Visit Rebornbuddy
  • Ultima - The Ultimate Combat Routine

    Discussion in 'Combat Routines' started by Endus, Nov 25, 2014.

    1. Endus

      Endus Community Developer

      Joined:
      Jul 9, 2012
      Messages:
      458
      Likes Received:
      5
      Trophy Points:
      18
      [​IMG]

      The Ultimate Combat Routine

      [​IMG]

      [​IMG]

      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.

      [​IMG]

      SVN Checkout
      https://subversion.assembla.com/svn/ultimacr/
       

      Attached Files:

      Last edited: May 21, 2016
      Tinytox likes this.
    2. Wheredidigo

      Wheredidigo Community Developer

      Joined:
      Dec 15, 2013
      Messages:
      417
      Likes Received:
      8
      Trophy Points:
      18
      YAY! For finally getting this out to the public. I look forward to seeing how it does for everyone.
       
    3. Ichiba

      Ichiba New Member

      Joined:
      Jun 14, 2014
      Messages:
      258
      Likes Received:
      7
      Trophy Points:
      0
      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: Nov 26, 2014
    4. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,022
      Likes Received:
      5
      Trophy Points:
      38
      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.
       
    5. Endus

      Endus Community Developer

      Joined:
      Jul 9, 2012
      Messages:
      458
      Likes Received:
      5
      Trophy Points:
      18
      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.
       
      Last edited: Nov 25, 2014
    6. Dgame

      Dgame Member

      Joined:
      Aug 19, 2014
      Messages:
      320
      Likes Received:
      0
      Trophy Points:
      16
      Thank you for your hard work. Will mob aoe detection and evasion eventually be included?
       
    7. Endus

      Endus Community Developer

      Joined:
      Jul 9, 2012
      Messages:
      458
      Likes Received:
      5
      Trophy Points:
      18
      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: Nov 25, 2014
    8. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,022
      Likes Received:
      5
      Trophy Points:
      38
      When do you think aoe will be added in? When it will, will you be adding aoe toggle too?
       
    9. Endus

      Endus Community Developer

      Joined:
      Jul 9, 2012
      Messages:
      458
      Likes Received:
      5
      Trophy Points:
      18
      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).
       
    10. kagamihiiragi17

      kagamihiiragi17 Community Developer

      Joined:
      Jun 24, 2014
      Messages:
      873
      Likes Received:
      24
      Trophy Points:
      0
      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: Nov 25, 2014
    11. Endus

      Endus Community Developer

      Joined:
      Jul 9, 2012
      Messages:
      458
      Likes Received:
      5
      Trophy Points:
      18
      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: Nov 25, 2014
    12. kagamihiiragi17

      kagamihiiragi17 Community Developer

      Joined:
      Jun 24, 2014
      Messages:
      873
      Likes Received:
      24
      Trophy Points:
      0
      It actually probably didn't have a target specifically, but it did have a POI. That makes a bit more sense.
       
    13. sorenelise

      sorenelise Member

      Joined:
      Dec 4, 2011
      Messages:
      188
      Likes Received:
      0
      Trophy Points:
      16
    14. markiemark425

      markiemark425 New Member

      Joined:
      Oct 31, 2014
      Messages:
      8
      Likes Received:
      0
      Trophy Points:
      0
      Ive been running this as a paladin grinding on mobs and its working beautifully. Wonderful work.
       
    15. sorenelise

      sorenelise Member

      Joined:
      Dec 4, 2011
      Messages:
      188
      Likes Received:
      0
      Trophy Points:
      16
      Routine stops after I resurrect. I wasn't specific in my last post...sorry
       
    16. Ichiba

      Ichiba New Member

      Joined:
      Jun 14, 2014
      Messages:
      258
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    17. Endus

      Endus Community Developer

      Joined:
      Jul 9, 2012
      Messages:
      458
      Likes Received:
      5
      Trophy Points:
      18
      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:

      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: Nov 25, 2014
    18. sorenelise

      sorenelise Member

      Joined:
      Dec 4, 2011
      Messages:
      188
      Likes Received:
      0
      Trophy Points:
      16
      I switched to kupper after the freeze, thanks for the update.
       
    19. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,022
      Likes Received:
      5
      Trophy Points:
      38
      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)
       
    20. tmk147

      tmk147 New Member

      Joined:
      Oct 4, 2014
      Messages:
      21
      Likes Received:
      0
      Trophy Points:
      1
      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.
       

    Share This Page