|
XIVCrossbar - A Gamepad Macro Addon
Serveur: Cerberus
Game: FFXI
Posts: 1792
By Cerberus.Shadowmeld 2022-07-25 08:51:00
I'm with shadida in that it would be nice to have in UI capability to add ex commands if you're taking feedback on functionality to be added.
Edit: If you're willing to add that to planned, knowing that it might not be implemented. :D
By Aliekber 2022-07-25 17:18:35
Cerberus.Shadowmeld said: »I'm with shadida in that it would be nice to have in UI capability to add ex commands if you're taking feedback on functionality to be added.
Edit: If you're willing to add that to planned, knowing that it might not be implemented. :D What would a useful UI for adding ex commands look like? As far as I can tell, it would just be a field for you to type the command in, and in that case, why not just use the console command?
Code xb set <crossbar set> <bar> <slot> ex <command> <target> <caption> <icon>
Well, OK. It doesn't exactly roll off the tongue. But what if instead of adding UI, I added some aliases for the button combos to the command syntax, allowing you to type this: Code xb set Basic RightTrigger B ex "input /dance4" t "Dance Emote" party-member
or this: Code
xb set Basic RightTrigger B ex "input /dance4" t
xb icon Basic RightTrigger B party-member
xb caption Basic RightTrigger B "Dance Emote"
instead of this: Code xb set Basic 2 5 ex "input /dance4" t "Dance Emote" party-member
The syntax for the triggers would likely be something like:
"L", "Left", or "LeftTrigger" = Left trigger
"R", "Right" or "RightTrigger" = Right trigger
"LR", "LeftRight" or "LeftRightTrigger" = Left trigger, then right trigger
"RL", "RightLeft", "RightLeftTrigger" = Right trigger, then left trigger
"LL", "LeftLeft", "LeftLeftTrigger" = Left trigger x2
"RR", "RightRight", "RightRightTrigger" = Right trigger x2
The syntax for the buttons would depend on your button layout (either ABXY or Playstation buttons), and which slots corresponded to which alias would also depend on your button layout (e.g. Y button on a Nintendo controller corresponds to X button on an Xbox controller) but that would all happen under the hood, so you could just say what button you want to use, and the addon would assign it to the appropriate slot:
"A", "AButton" = Nintendo: [Right Face Button], Xbox: [Bottom Face Button], GCN: [Bottom Face Button]
"B", "BButton" = Nintendo: [Bottom Face Button], Xbox: [Right Face Button], GCN: [Left Face Button]
"X", "XButton" = Nintendo: [Top Face Button], Xbox: [Left Face Button], GCN: [Right Face Button]
"Y", "YButton" = Nintendo: [Left Face Button], Xbox: [Top Face Button], GCN: [Top Face Button]
"Square", "SquareButton" = Square [Left Face Button]
"Circle", "CircleButton" = Circle [Right Face Button]
"Cross", "CrossButton" = Cross [Bottom Face Button]
"Triangle", "TriangleButton" = Triangle [Top Face Button]
"Up", "UpButton", "DUp", "DPadUp", "DPadUpButton" = DPad Up
"Down", "DownButton", "DDown", "DPadDown", "DPadDownButton" = DPad Down
"Left", "LeftButton", "DLeft", "DPadLeft", "DPadLeftButton" = DPad Left
"Right", "RightButton", "DRight", "DPadRight", "DPadRightButton" = DPad Right
[+]
Serveur: Cerberus
Game: FFXI
Posts: 1792
By Cerberus.Shadowmeld 2022-07-25 19:22:45
so, I can honestly say that I didn't know you could do that but...
would be nice to just select something from the menu and type the command you want. If I'm typing all that stuff out anyway, it's barely a step above just straight editing the xml.
I understand if you don't want to add it to the roadmap. Imo, it would be nice.
Serveur: Sylph
Game: FFXI
Posts: 99
By Sylph.Shadida 2022-07-25 20:10:57
How feasible would it be to make abilities which have chargers behave the way they do in FFXIV, where there's a charge count and a timer? Quick Draw is the one I have in mind specifically since I'm playing COR.
By Aliekber 2022-07-25 20:27:00
Cerberus.Shadowmeld said: »so, I can honestly say that I didn't know you could do that but... No, you were right. You couldn't do that when I wrote the previous comment.
But now you can, in the version I just pushed.
Cerberus.Shadowmeld said: »would be nice to just select something from the menu and type the command you want. If I'm typing all that stuff out anyway, it's barely a step above just straight editing the xml.
I understand if you don't want to add it to the roadmap. Imo, it would be nice.
Well, I'll think about it.
By Aliekber 2022-07-25 20:32:23
How feasible would it be to make abilities which have chargers behave the way they do in FFXIV, where there's a charge count and a timer? Quick Draw is the one I have in mind specifically since I'm playing COR. Definitely feasible. I've added it to the drawing board section. It's one of those things that I've been meaning to do, but hasn't come to mind when making my lists of changes I want to make.
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-26 08:28:02
1st of all Amazing work at this!!!!!!!!!!
with that said however it would be nice to see a step by step guide as this is kind of funky on some aspects such as it binds the CTRL+ keys.
Quote: NOTE: The crossbar unbinds any existing bindings for Ctrl+F1 through Ctrl+F12 because it uses those buttons as proxies for the gamepad. Any Alt, Shift, or neutral bindings to F1-F12 will be unaffected. Ctrl is used for the bindings rather than Alt because Alt has a tendency to get "stuck" when Alt-Tabbing in and out, and can lead to accidental ability use. However, while Ctrl+F9 through Ctrl+F12 are completely locked down by this addon, you can re-add your Ctrl+F1 through Ctrl+F8 bindings by editing function_key_bindings.lua. This is Very iffy for me as my stuff uses CTRL / ALT / Windows Binding (it did mentioned SHIFT is free tho, can't it be changed to SHIFT instead?)
Also:
Quote: Once you're used to the button placement, I recommend updating your settings xml to use the compact layout, just to reclaim some screen real estate.
If you want a 4th crossbar in each set, you can set the crossbar number to 4 in settings, which will make the 3rd and 4th crossbars dependent on which trigger you press first. L -> R is Crossbar 4, and R -> L is Crossbar 3.
If you want to have 6 crossbars in each set, you can set the crossbar number to 6 in settings, do the same as above but also add Crossbar 5 (activated when you double-press L) and Crossbar 6 (activated when you double-press R). not 100% sure what is directing me to do here (instructions are kind of lacking some details)
Another question:
How do I re-size it if needed be? (I think found the spot but would like to confirm it)
Finally:
How do I add my macros to the Cross Bar?
(Can you make an example of how to do: 1 spell (Cure) / 1 JA (Provoke) / 1 Weapon Skill (Expiacion) Please)
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-26 09:47:11
how to resize the xiv crossbar?
By Aliekber 2022-07-27 00:54:27
Asura.Kuroganashi said: »how to resize the xiv crossbar? Assuming you mean how do you control the spacing, you can go to addons/xivcrossbar/data/settings.xml and change settings.global.style.hotbarspacing and/or settings.global.iscompact.
If you mean how do you change the size of the icons and such, there isn't currently a way to do that.
By Aliekber 2022-07-27 01:07:45
@Kuroganashi
To get access to more crossbars, go to addons/xivcrossbar/data/settings.xml and edit settings.global.hotbar.number. You can increase it to 4 or 6 (technically 5 would also work, but would be pretty weird).
As for using Shift instead of Ctrl, the reason it uses Ctrl is so that the native macro bar pops up to capture the button presses. If it didn't do that, then your dpad use would change what you're targeting.
It may be possible to use Shift instead if you use the native gamepad utility to bind your triggers to the native macro bar like they normally would be, and then change the AHK and xivcrossbar.lua to look for Shift instead of Ctrl, but IIRC I tried using both Shift and Alt originally instead of Ctrl, and for different reasons they didn't work out, and I had to use Ctrl.
The real solution is to get Windower's "pipe message" event to actually work, and then I can just pass in all the needed button info through a named pipe instead of using a bunch of weird keybinds. But every time I've checked, the pipe message event has still been broken. If any of you find out it's been fixed, please let me know.
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-27 09:44:47
@Kuroganashi
To get access to more crossbars, go to addons/xivcrossbar/data/settings.xml and edit settings.global.hotbar.number. You can increase it to 4 or 6 (technically 5 would also work, but would be pretty weird).
As for using Shift instead of Ctrl, the reason it uses Ctrl is so that the native macro bar pops up to capture the button presses. If it didn't do that, then your dpad use would change what you're targeting.
It may be possible to use Shift instead if you use the native gamepad utility to bind your triggers to the native macro bar like they normally would be, and then change the AHK and xivcrossbar.lua to look for Shift instead of Ctrl, but IIRC I tried using both Shift and Alt originally instead of Ctrl, and for different reasons they didn't work out, and I had to use Ctrl.
The real solution is to get Windower's "pipe message" event to actually work, and then I can just pass in all the needed button info through a named pipe instead of using a bunch of weird keybinds. But every time I've checked, the pipe message event has still been broken. If any of you find out it's been fixed, please let me know.
got most of it to work only job I am iffy is SMN :)
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-27 09:45:26
Asura.Kuroganashi said: »how to resize the xiv crossbar? Assuming you mean how do you control the spacing, you can go to addons/xivcrossbar/data/settings.xml and change settings.global.style.hotbarspacing and/or settings.global.iscompact.
If you mean how do you change the size of the icons and such, there isn't currently a way to do that.
I meant the actual position too.
I want to move it down and to the right side.
By Aliekber 2022-07-27 11:39:30
Asura.Kuroganashi said: »Asura.Kuroganashi said: »how to resize the xiv crossbar? Assuming you mean how do you control the spacing, you can go to addons/xivcrossbar/data/settings.xml and change settings.global.style.hotbarspacing and/or settings.global.iscompact.
If you mean how do you change the size of the icons and such, there isn't currently a way to do that.
I meant the actual position too.
I want to move it down and to the right side. Ah, there's a "Move Crossbar" action in the binding menu, if you select it, you can move the crossbar with your dpad.
[+]
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-27 20:36:49
Asura.Kuroganashi said: »Asura.Kuroganashi said: »how to resize the xiv crossbar? Assuming you mean how do you control the spacing, you can go to addons/xivcrossbar/data/settings.xml and change settings.global.style.hotbarspacing and/or settings.global.iscompact.
If you mean how do you change the size of the icons and such, there isn't currently a way to do that.
I meant the actual position too.
I want to move it down and to the right side. Ah, there's a "Move Crossbar" action in the binding menu, if you select it, you can move the crossbar with your dpad.
I will check it out, thank you :)
But just in case/save time, how do I access that menu?
ALSO did you check my PM with the question?
and how do I know what icons I can use? seems they already pre-set as I did same icon for multiple abilities and it changed to a different one for each yet others doesn't even show up or shows white box only.
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-28 07:59:59
is it possible to change the Crossbar file depending on "Pet" that is currently summoned?
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-28 08:34:43
also how do I make the mount be a random one when I summon?
is it possible to do the Roulette thing?
Quetzalcoatl.Khajit
Serveur: Quetzalcoatl
Game: FFXI
Posts: 440
By Quetzalcoatl.Khajit 2022-07-28 10:57:16
That's a separate addon called mount roulette
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-28 12:24:33
Quetzalcoatl.Khajit said: »That's a separate addon called mount roulette
asking the command to do it.
even to make a specific mount work or Roullete one.
By Aliekber 2022-07-28 13:38:16
Asura.Kuroganashi said: »is it possible to change the Crossbar file depending on "Pet" that is currently summoned? Yes, but currently only for SMN. If you summon (e.g.) Carbuncle, then if you have a crossbar set named Carbuncle, it will automatically switch to it.
[+]
By Aliekber 2022-07-28 13:42:06
Asura.Kuroganashi said: »also how do I make the mount be a random one when I summon?
is it possible to do the Roulette thing? There should be a Mount Roulette action in the Select Action Type" dialog. It uses a librarified version of Mount roulette.
[+]
By Aliekber 2022-07-28 13:54:35
Asura.Kuroganashi said: »I will check it out, thank you :)
But just in case/save time, how do I access that menu?
ALSO did you check my PM with the question?
and how do I know what icons I can use? seems they already pre-set as I did same icon for multiple abilities and it changed to a different one for each yet others doesn't even show up or shows white box only. You open that menu with the back/options/minus button on your controller.
Yes, I read your message. I guess I'm not exactly sure what you're asking, it it just for automatic switching when you summon? Because that already exists in the latest version. I should probably add support for BST though...
The default icons are in xivcrossbar/images/icons. Custom icons can be found in xivcrossbar/images/icons/iconpacks. The "How can I add icons of my own?" section in this post explains how to add your own custom icons.
White boxes are what happens when it can't load an icon correctly. Please let me know specifically which icon is loading as a white box and I'll take a look at it.
[+]
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-28 20:39:18
Asura.Kuroganashi said: »is it possible to change the Crossbar file depending on "Pet" that is currently summoned? Yes, but currently only for SMN. If you summon (e.g.) Carbuncle, then if you have a crossbar set named Carbuncle, it will automatically switch to it. oh so I can make a Crossbar for each pet and it would automatically swap to that as it summons it ? :O
PERFECT !!!!!!!!!!!
:)
By Aliekber 2022-07-28 20:53:54
Asura.Kuroganashi said: »Asura.Kuroganashi said: »is it possible to change the Crossbar file depending on "Pet" that is currently summoned? Yes, but currently only for SMN. If you summon (e.g.) Carbuncle, then if you have a crossbar set named Carbuncle, it will automatically switch to it. oh so I can make a Crossbar for each pet and it would automatically swap to that as it summons it ? :O
PERFECT !!!!!!!!!!!
:) Yep! :)
[+]
By shmobertson 2022-07-30 16:30:03
Hello,
I was wondering if it is possible to have the addon switch crossbars while idle/engaged? Similar to how FFXIV can switch crossbars depending on weapon sheathed or drawn.
Quetzalcoatl.Khajit
Serveur: Quetzalcoatl
Game: FFXI
Posts: 440
By Quetzalcoatl.Khajit 2022-07-30 20:48:28
I'm pretty sure you can integrate that into your gearswap via making it sent a command to switch crossbars whenever you engage/disengage.
[+]
By Axciom 2022-07-31 01:54:34
Quetzalcoatl.Khajit said: »I'm pretty sure you can integrate that into your gearswap via making it sent a command to switch crossbars whenever you engage/disengage.
You can. A bit ago I decided I was tired of Escha zones not having battle music, so I rigged up my global gs file to load new music on engage/disengage.
[+]
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-07-31 04:46:40
Quetzalcoatl.Khajit said: »I'm pretty sure you can integrate that into your gearswap via making it sent a command to switch crossbars whenever you engage/disengage.
How would said command look like in GS ? (curious now)
Quetzalcoatl.Khajit
Serveur: Quetzalcoatl
Game: FFXI
Posts: 440
By Quetzalcoatl.Khajit 2022-07-31 07:42:06
While I have the general idea of where to add the commands, it would be better to ask directly in the gearswap help thread or discord as there is at least some variance among gearswaps.
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-08-01 07:42:53
Quetzalcoatl.Khajit said: »While I have the general idea of where to add the commands, it would be better to ask directly in the gearswap help thread or discord as there is at least some variance among gearswaps.
Thanks and will do
Serveur: Asura
Game: FFXI
Posts: 160
By Asura.Kuroganashi 2022-08-02 07:45:26
So still haven't gotten any reply on my question.......
Also how do I map the icons for XIVCrossbar ?
not sure I follow how it maps which icons are which.
Cuz some work but others don't is there a list of names you can give me or a file that shows the names (I hate white box so I wanna map it myself maybe, idk)
Important Note: please submit new bugs from the Github page, which automatically emails me, so I can respond more quickly.
XIVCrossbar
A Gamepad Macro Addon (github link)
I had never planned on releasing this--because I thought nobody would care--but when I showed off my crossbar UI in the "Share your custom FFXI UI" thread, I got such a reaction that I decided it would be worth it to clean it up and make it publicly available. Due to work complications, it took a few weeks for me to get it ready for release, but here we are, and now it's ready.
What is XIVCrossbar?
XIVCrossbar is a recreation of FFXIV's crossbar gamepad macros...
...in FFXI.
Under the hood, XIVCrossbar is a heavily modified version of the (excellent) XIVHotbar by SirEdeonX. It uses a different name and different bindings such that the two can be used simultaneously, if you're into that.
How does XIVCrossbar work?
If you're already used to XIV's crossbar, go ahead and skip to the "How do I set up XIVCrossbar?" section; you probably know everything I'm about to explain.
The long and short of it is that you hold down your left/right trigger, then press either a dpad button or a face button in order to activate the action that has been bound to that button combination. While the previous screenshot of XIVCrossbar shows how it corresponds to XIV's actual crossbar, a screenshot of it with compact mode turned off should make things more clear. As an example: with the below crossbar setup, if I were to press B while holding the left trigger, I would cast Magic Fruit. If I were holding the right trigger instead, I would use Expiacion.
Having only 16 actions per crossbar set would be pretty limiting, so I took a cue from XIV's actual crossbar and gave the option to add a 3rd crossbar by holding down both left and right triggers. When you do that, the main 2 crossbars disappear and a 3rd appears in the center to replace them. So if I were to press B while holding down both triggers, I would cast Sweeping Gouge.
If 24 actions per crossbar set still isn't enough, then you can change settings.global.Hotbar.Number from 3 to 4 in your settings.xml, which will up you to having 4 crossbars per set, for a total of 32 actions per crossbar set. In this case, holding both triggers still brings up a new crossbar, but whether it is #3 or #4 depends on the order you press the triggers. R -> L shows crossbar #3, and L -> R shows crossbar #4. (This was also cribbed from FFXIV)
Update: I also added double-tap crossbars that you can enable by increasing settings.global.Hotbar.Number to 6 in settings.xml. You can jump to these crossbars by hitting one of the triggers twice in quick succession (like double-clicking a mouse), which means you can now have up to 48 bindings per crossbar set.
What's the advantage of using a crossbar over FFXI's native macros?
Well, if you're a keyboard-only user, then nothing. If you use a gamepad like me, though, then two words: muscle memory. FFXI isn't a particularly fast-paced game, but when you're in a hard fight, dpadding left and right in your macros to select the right one does take time and concentration. But having L -> B bound to Magic Fruit on all my BLU crossbars means that when I see my HP is low, I don't need to find the right macro and then execute it, I just hold the left trigger and press B.
How do I set up XIVCrossbar?
Everything you need to know is in the README file, but a high-level view is something like this:
Download the zip file from github, and extract it to your addons folder, as usual
Install AutoHotKey (free)
(But if you're playing on Steam Deck, skip AutoHotKey and just set up FFXI_Input.sh from the Github repo to run when you run FFXI)
Open FFXI Controller Config and make your setup look like this:
(Check the XInput box if you normally do)
Log into FFXI
Load xivcrossbar
Follow the setup dialog shown
When I'm in battle, sometimes a horizontal red or green bar appears above my crossbar. What is that?
It's a skillchain window indicator. When the bar is red, the window is not yet open. When it's green, the window is open. The bar expands while it's red, and then shrinks while it's green. When the green bar has shrunk completely and disappears, the skillchain window has closed.
Sometimes my weaponskill icons change to a different icon, and a yellow marching-ant border appears. What's going on?
That's to notify you that if you use that weaponskill right now, you'll make a skillchain. The icon of the weaponskill changes to the icon of the skillchain you would make if you used it. Naturally, this only happens when the skillchain window indicator is green.
Any weird quirks I should know about?
Unfortunately, yes.
The first quirk is that due to the way we're capturing gamepad input, we can't actually stop button presses from reaching the game, even if they're only intended to interact with XIVCrossbar menus. The way we handle this is to make the game capture and discard the dpad presses for us, by keeping the regular macro system open. This is why the macro palettes need to be mapped to the triggers. So, when you're interacting with XIVCrossbar dialogs like the gamepad mapper or the action binder, you will need to have one or both triggers held down in order for it to read your input. Since this is already how the crossbars work--even in FFXIV itself--it's unnoticeable during gameplay, but you'll need to keep note of it for when you're tweaking your crossbar sets. However, I highly, highly recommend setting aside a completely blank macro book in FFXI and using it when you're using XIVCrossbar so you can button mash as much as you want without accidentally firing off any vanilla FFXI macros.
The second quirk is that due to the way we're passing gamepad input to FFXI, we unbind any existing keybinds on Ctrl+F1 through Ctrl+F12. Under the hood, a gamepad button combo like L -> DpadLeft is sent as a button combination like Ctrl+F1+F12, which would fire both Ctrl+F1 and Ctrl+F12 bindings, if they existed. The plus side of this is that regular F1 through F12, Alt+F1 through Alt+F12 and Shift+F1 through Shift+F12 are unaffected. I will look into a way of porting over existing keybindings such that this is transparent once it's been set up, but I currently don't have it implemented. I have added a way to rebind Ctrl+F1 through Ctrl+F8 (Ctrl+F9 through Ctrl+F12 are still reserved). Just move your bindings for those into the command strings found in addons/xivcrossbar/function_key_bindings.lua.
The current status of feature work is as follows:
Planned:
Priority #1 - Light Arts/Dark Arts auto-swapping (Done)
Priority #2 - Addition of <stpc> to actions that normally only use <me> (Done)
Priority #3 - Roll/Double-Up combo action (available on experimental git branch)
Priority #4 - JA + WS Bindings ("Sneak Attack + WS" in one action) (available for XML editing folks on experimental git branch)
Priority #5 - Attack/Switch Target combo action
"Messing around in the shop"/non-functional:
- Multiple JOB-Default crossbars/Weapon-specific crossbars
- GearSwap Mode Changers (currently, nothing you couldn't do with ex commands)
On the drawing board:
- Display charges for abilities alongside recast (e.g. Strategems, Flourishes, Quick Draw)
- Equip weapon action
- Equip set action
- "Timer" XML attribute (overrides the default timer/lack of timer for an action's icon)
- Integration actions (e.g. EasyNuke)
- Refactoring/code cleanup
- Rendering code optimization
- Slot swap UI
- Hide/Show commands
- Follow command
Known bugs:
- Abilities on cooldown retain the "Job Default Set" or "Default Set" overlay when binding dialog is opened then closed
- Using the "Move Crossbar" UI makes icons appear in the corner of their slot until the addon reloads
Note that this isn't a promise to deliver these features in this order; it's just how I'm currently thinking things will go.
|
|