Results 1 to 10 of 12

Thread: Macro Menu Bars

Hybrid View

  1. #1
    Player
    Rongway's Avatar
    Join Date
    Aug 2013
    Posts
    4,169
    Character
    Cyrillo Rongway
    World
    Hyperion
    Main Class
    Black Mage Lv 100
    There are no control structures and you can't use a slash command to assign a macro to a hotbar slot. But here are some things you can do:

    • Copy entire hotbars with the /hotbar copy (normal hotbars) and /chotbar copy (cross hotbars) commands.
    • Use "current" as a source job or destination job argument when using the /(c)hotbar copy commands.
    • Use "share" as a source job or destination job argument ...
    • Use a base combat class as a source job or destination job argument ...
    • Use "share" as an argument even if the bar number in question is not shared.
    • Use a specific class or job as an argument even if the bar number in question is shared.

    Shared bars are their own barset separate from the barset for each job. The base combat classes each also have their own barset separate from their upgrade jobs' barsets. All shared bars, class bars, and job bars exist, regardless of Share settings and job unlock states.

    To read the help file for a command, use the /? command:
    Code:
    /? hotbar
    For example:


    This example requires bars 8 and 10 to be Shared bars.
    Each role category is just a macro that copies hotbar 10 from some job in the role to my shared "job menu" hotbar:

    Code:
    Casters: /hotbar copy blm 10 share 8
    Healers: /hotbar copy whm 10 share 8
    Tanks:   /hotbar copy pld 10 share 8
    Rangers: /hotbar copy brd 10 share 8
    Meleers: /hotbar copy mnk 10 share 8
    For each role, set up the share 8 bar to have all the gearsets for that role, and all the macros to change role categories. As you set up each version of the bar, you can reverse the command to save share 8 to the chosen job for each role:
    Code:
    /hotbar copy share 8 JOB 10
    Once all five roles' bars are saved, click any of the role categories to change share 8 to the job menu for that role category. This works because I have bars 8 and 10 set to Shared. When I save one of the bars to blm 10, it saves the bar to blm 10, which still exists even though it is invisible due to being overshadowed by Share 10.

    If you want to have one category be a default or home, you can set the macros to wait and restore the default or home bar. For example, to revert automatically to the Caster role menu, make all the other role switchers do:

    Code:
    /hotbar copy JOB 10 share 8 <wait.15>
    /hotbar copy blm 10 share 8


    Conversely, you can hide things in the share bars where the bars are not Shared. For example, using share 1 as a swap buffer while changing a job's bars.
    Code:
    /mlock
    /hotbar copy current 1 share 1
    /hotbar copy current 7 current 1
    /hotbar copy share 1 current 7
    
    /hotbar copy current 2 share 1
    /hotbar copy current 8 current 2
    /hotbar copy share 1 current 8
    
    /hotbar copy current 3 share 1
    /hotbar copy current 9 current 3
    /hotbar copy share 1 current 9
    This example requires bars 1,2,3 to be job-specific and bars 7,8,9 to be Shared.
    This macro swaps out the current job's 1,2,3 bars for 7,8,9 bars that have been hidden under share 7,8,9, using share 1 as a swap buffer. After activating this macro, the original 1,2,3 bars will be stored in the current job's specific 7,8,9. Activating the macro again will swap back to the original bars.

    The /mlock in the first line forces the macro to execute all the way to the end, so you don't somehow interrupt the macro and end up with half your bars from the wrong set.
    (2)
    Last edited by Rongway; 07-28-2021 at 10:40 PM.
    Error 3102 Club, Order of the 52nd Hour

  2. #2
    Player
    ItMe's Avatar
    Join Date
    Jun 2020
    Location
    Lumsa Lomsa
    Posts
    4,178
    Character
    Iiiiiiiiiiit's Meeeee
    World
    Sargatanas
    Main Class
    Arcanist Lv 90
    Quote Originally Posted by Rongway View Post
    There are no control structures and [...]
    Wow that's a lot of useful info. Nice gifs too.
    10/10 post, thanks for making it.
    (0)

  3. #3
    Player
    Almagnus1's Avatar
    Join Date
    Mar 2015
    Location
    Ul'Dah
    Posts
    941
    Character
    Maley Oakensage
    World
    Behemoth
    Main Class
    White Mage Lv 100
    I'm doing something similar, but it's using a lot of macros with the ones that open the bars being:

    Code:
    /hotbar copy THM 1 share 9
    /hotbar display 10 off
    /hotbar display 9 on
    and the actual job switch looking like:

    Code:
    /micon "Soul of the Paladin" item
    /gearset change 1
    /hotbar display 9 off
    Main thing I'm looking to do is wipe and repopulate the hotbar (in this case shared 9 and 10) so I am not reliant upon using THM 1-7 as the "storage" for the bars. It's working now basically doing what you've described, but I'm looking to do something for the role icons more like:
    Code:
    if(shared 9 visible){hide shared 9}
    else{
        populate shared 9
        show shared 9
    }
    Edit:
    Now that I think a bit through the conditions to check for, the if statement would need to be a bit more complicated than just checking if the bar was visible... and it's wandering into needing global variables of some kind. Either way, I'd still be interested to know if there's a way to populate a hotbar without doing a copy.
    (0)
    Last edited by Almagnus1; 07-29-2021 at 01:58 AM.

  4. #4
    Player
    Rongway's Avatar
    Join Date
    Aug 2013
    Posts
    4,169
    Character
    Cyrillo Rongway
    World
    Hyperion
    Main Class
    Black Mage Lv 100
    Quote Originally Posted by Almagnus1 View Post
    Main thing I'm looking to do is wipe and repopulate the hotbar (in this case shared 9 and 10) so I am not reliant upon using THM 1-7 as the "storage" for the bars. It's working now basically doing what you've described, but I'm looking to do something for the role icons more like:
    Code:
    if(shared 9 visible){hide shared 9}
    else{
        populate shared 9
        show shared 9
    }
    There are two ways to hide a bar. A bar's Display setting can be set or toggled with /hotbar display. A bar's Sharing state can be set or toggled with /hotbar share. If there is nothing in current 9, turning Sharing off for 9 will show the blank current 9 bar; or if nothing in share 9, turning Sharing on for 9 will show the blank share 9 bar. The direct method is preferred if all you need to do is hide the bar, but the second method is useful for setups that do things like using a bar for job actions during combat but using the same bar for only-out-of-combat actions (e.g., mounts) when out of combat.

    The quoted conditional structure can be refactored thus:
    Code:
    populate share9
    if (share9.visible)
        hide share9
    else
        show share9
    which of course could be further refactored:
    Code:
    populate share9
    toggle share9

    In game commands, that would look like this:
    Code:
    /mlock
    /hotbar copy thm 1 share 9
    /hotbar display 9
    (0)
    Last edited by Rongway; 07-29-2021 at 10:18 AM.
    Error 3102 Club, Order of the 52nd Hour