Results 1 to 7 of 7
  1. #1
    Player
    Highelfwarlock's Avatar
    Join Date
    Jul 2023
    Posts
    12
    Character
    Leon Goodherb
    World
    Goblin
    Main Class
    Black Mage Lv 90

    Machinist macro help

    So I was wondering if it was possible to combines heat blast, gauss round and ricochet into one button so I can spam one button in place of 3
    (1)

  2. #2
    Player Doozer's Avatar
    Join Date
    Aug 2013
    Location
    Eureka Orthos
    Posts
    2,007
    Character
    Gunnar Mel'nik
    World
    Diabolos
    Main Class
    Bard Lv 90
    There is no way to do that, and even if there was macros are extremely inferior due to the timing of GCDs. Just learn to play the job.
    (10)

  3. #3
    Player
    Rongway's Avatar
    Join Date
    Aug 2013
    Posts
    4,143
    Character
    Cyrillo Rongway
    World
    Hyperion
    Main Class
    Black Mage Lv 100
    You can macro them all into one button, however it won't work well for multiple reasons.

    First, macro actions can't be queued, so pressing the macro in the middle of an animation lock won't work. The action will only activate if you press the button after any GCD and animation locks finish, so you'll lose about 0.2s on every action.

    Example 1: [delayed GCD] Heat Blast (Gauss Round) > [delayed GCD] Heat Blast

    It's also possible that you'll press the button expecting to Heat Blast, but because you're still in a GCD lock but not an animation lock you'll use Gauss Round or Ricochet, which will lose you about 1.0s on your next Heat Blast and then you might not be able to use all of them before your Hypercharge window ends.

    Example 2: [delayed GCD] Heat Blast (Gauss Round) (Ricochet) [delays next GCD even more] > [very delayed GCD] Heat Blast


    Second, even if you timed your macro presses perfectly so that you didn't double activate oGCD actions, whichever oGCD action comes first in the macro will have priority over the other, so if you have two charges of Gauss Round and two charges of Ricochet but Gauss Round comes first in your macro, you will have to spend the two charges of Gauss Round before you can spend any Ricochet. This will cause Ricochet to accumulate another charge and overcap, wasting charges that Heat Blast would generate.

    Example 3: [delayed GCD] Heat Blast (Gauss Round) > [delayed GCD] Heat Blast (Gauss Round) [Gauss Round gets another charge from second Heat Blast, Ricochet Overcaps] > [delayed GCD] Heat Blast (Gauss Round) [lose another 1/2 charge of Ricochet]


    Better would be to put your Heat Blast, Gauss Round, and Ricochet buttons near each other so that you can 1-2-1-3 or 2-1-2-3 easily.
    (0)
    Last edited by Rongway; 08-22-2023 at 09:20 AM.

  4. #4
    Player
    LilimoLimomo's Avatar
    Join Date
    Jul 2023
    Location
    Windurst
    Posts
    1,134
    Character
    Lilimo Limomo
    World
    Siren
    Main Class
    Black Mage Lv 100
    Quote Originally Posted by Doozer View Post
    even if there was macros are extremely inferior due to the timing of GCDs.
    Quote Originally Posted by Rongway View Post
    First, macro actions can't be queued, so pressing the macro in the middle of an animation lock won't work.
    This is a common misconception, one that is thankfully untrue! You can make macros that don't lose the queuing/timing benefits of standard buttons, but you have to explicitly craft them this way.


    Quote Originally Posted by Highelfwarlock View Post
    So I was wondering if it was possible to combines heat blast, gauss round and ricochet into one button so I can spam one button in place of 3
    You could technically do this, but as Rongway mentioned in his second point, the results would be slightly sub-par because one of your oGCD's would need to be entirely spent before the other would be used, meaning you would be losing out on some of the benefits of the rapid regeneration of your oGCD's when one of them capped.

    Additionally, with rare exceptions you never want to mash macros. Here's an example macro to show you why:

    /ac "Heat Blast"
    /ac "Gauss Round"
    /ac "Ricochet"
    The first thing to understand about macros is that they do NOT instantly happen; rather, each line of the macro happens in sequence. When you press the button, it reads the first line. Then a very short time later it reads the next line, and so on.

    The second thing to understand about macros is when you activate a macro, any other macro that is running will stop.

    So, every single time you press the button for this macro, it will start over. And if you are mashing fast enough, then that means that the macro will be restarted before it has processed all of the lines that you wrote into it, meaning it may never get to Ricochet. This is why you generally don't want to mash macros, and instead you want to get accustomed to the timing of roughly when to press them.

    Now that we're past those two caveats, let's work towards getting you a macro that's close to what you want!

    Making the Actual Macro

    I would suggest starting with something that looks kind of like this:

    /micon "Heat Blast"
    /macroerror off
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Gauss Round"
    This will give you a button that will cast Heat Blast if pressed when your GCD is available, and when GCD isn't available it will instead cast Gauss Round.

    To understand a bit more of why it works the way it does, when it comes to actions cast by the /ac command, macros only want to cast a single action. Once they cast an action, they won't try to cast any further actions (unless the /wait command is used, which this macro doesn't use).

    With that in mind, the reason Heat Blast is repeated in the beginning is to give you a bit of flexibility over when you press the button. Basically, when you press the button it will try to do Heat Blast. If your GCD isn't available at that moment, it will wait a very short time before moving on to the next line, which also tries to do Heat Blast. In this way, we've made a macro that mimicks the normal "queue" functionality of a button so that you don't need to press it at exactly the moment your GCD expires to avoid losing some DPS.
    And if your GCD isn't ready after all 4 Heat Blasts, then it will try to cast Gauss Round. Thus, the design of this macros is that you should press it once around the time that your GCD is about to be back up, and then once a short time later — but still early on in Heat Blast's rapid GCD — so that all the Heat Blasts fail but Gauss Round succeeds.

    I haven't actually made this macro myself, so depending on how rapid Heat Blast is and how you prefer to time your button presses, you may want to add extra Heat Blasts or remove some of them to fine-tune the timing of this macro. This often comes down to personal taste because it's a balancing act: more Heat Blasts in the macro will mean a larger window to press the button before your GCD is available, but at the same time it will mean more of a delay between when you press the button and the time when Gauss Round will be attempted.

    I would start with that, just to make sure you get the feel of this simpler macro right and adjust it to a timing that works for you, before moving on to a macro that adds in Ricochet. The only potential gotcha is that Heat Blast's GCD is so much faster than standard GCD's that the animation lock time windows when you can't activate abilities might take up a disproportionately large amount of your GCD, which might result in a macro that feels more finicky than helpful depending on your tastes. But assuming you get that tuned properly and it feels worthwhile to you, proceed below and I'll show you how to add Ricochet to the mix.

    So there's two ways to get Ricochet into this macro. The easiest way is to just add...

    /ac "Ricochet"
    ...to the end of the macro. That will technically get Ricochet in there, so that when you run out of Gauss Rounds, Ricochet will be cast instead. It's not optimal, but it's an easy macro.

    If you want to use macros to alternate between Ricochet and Gauss Round on every shot, you can do it, but it's going to require 4 macros and either 4 or 5 crosshotbars (which is what I as a controller user use, though I'm guessing this would also work with standard hotbars as well?).

    There are a couple ways to do this, but here are the 4 macros for 1 way to do it:

    /micon "Heat Blast"
    /macroerror off
    /crosshotbar change 2
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Gauss Round"
    //echo Put this macro on crosshotbar 1

    /micon "Heat Blast"
    /macroerror off
    /crosshotbar change 3
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Gauss Round"
    //echo Put this macro on crosshotbar 2

    /micon "Heat Blast"
    /macroerror off
    /crosshotbar change 4
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Ricochet"
    //echo Put this macro on crosshotbar 3

    /micon "Heat Blast"
    /macroerror off
    /crosshotbar change 1
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Heat Blast"
    /ac "Ricochet"
    //echo Put this macro on crosshotbar 4
    If you put these macros all on the same button (for example, X) and put them on the crosshotbar matching the number listed in the echo commands, then each time you press one of these macros, it will change your active crosshotbar, which means that the next time you press X you'll actually be pressing a different macro. And since half of the macros use Ricochet and half of them use Gauss Round, if you are pressing the X button at the appropriate rhythm as mentioned earlier, the result will be Heat Blast -> Gauss Round -> Heat Blast -> Ricochet -> Repeat.

    Of course, this also means taking the time to copy all of the buttons from your primary crosshotbar to occupy not just 1, but 4 crosshotbars. To make that easier, you can use the command...
    /crosshotbar copy MCH 1 MCH 2
    ...and just replace the last number with the number of the crosshotbar you want to copy to. Then after you've done that for all 4 bars, you can individually add the correct macro to each crosshotbar.

    It's a lot of work, but this will hopefully give you good results!

    Alternatively, if you don't want your active crosshotbar to be switched to another crosshotbar, you can use a different technique that keeps you on the same crosshotbar but overwrites the actions that are on that crosshotbar. That's what I prefer, but it takes at least one extra crosshotbar. In an effort to keep this post short, I'm not going to list that technique here, but if you would prefer that I'd be happy to provide it! Just let me know.

    As a note, those //echo commands do nothing and are just there to be notes for you. If you removed one of the / then they would write a message on your screen, but with two // the code can't understand them so they do nothing.

    I hope this helps! If you have any questions or want to try something different, let me know!
    (2)
    Last edited by LilimoLimomo; 08-23-2023 at 04:24 AM.

  5. #5
    Player
    ZiraZ's Avatar
    Join Date
    Dec 2021
    Posts
    536
    Character
    Zira Zira
    World
    Jenova
    Main Class
    Dragoon Lv 100
    Imagine eliminating the one fun thing MCH has left lmao
    (2)

  6. #6
    Player
    IzzyOnigiri's Avatar
    Join Date
    Apr 2024
    Posts
    1
    Character
    Zick Nightsnow
    World
    Moogle
    Main Class
    Summoner Lv 90
    I "imagine" that the guy simply answered the question. Without making excuses and talking about the fact that you can't do something or, better still, don't ask about it at all, just learn how to play, because making your life easier is an insult to "super players" who have devoted long hours to learning something that could be done much easier.
    (0)

  7. #7
    Player
    Darkstride's Avatar
    Join Date
    Aug 2013
    Location
    Limsa Lominsa
    Posts
    1,589
    Character
    Ruin Darkstride
    World
    Excalibur
    Main Class
    Sage Lv 100
    Quote Originally Posted by IzzyOnigiri View Post
    I "imagine" that the guy simply answered the question. Without making excuses and talking about the fact that you can't do something or, better still, don't ask about it at all, just learn how to play, because making your life easier is an insult to "super players" who have devoted long hours to learning something that could be done much easier.
    Lol was it necessary to resurrect an 8-month old thread for this comment that adds nothing to the OP?
    (3)

  8. 04-29-2024 08:24 PM
    Reason
    Why are you ncroing threads and baiting me into it ;_;

Tags for this Thread