Verda said: »
Is this the complete list of commands for scripts? I can't help but feel it's missing alot:
http://wiki.windower.net/doku.php?id=windower:commands
http://wiki.windower.net/doku.php?id=windower:commands
Possibly.
Verda said: »
I noticed this too for Gearswap:
http://wiki.windower.net/doku.php?id=addons:gearswap:documentation:global_variables:start
which is pretty extensive awesome!
http://wiki.windower.net/doku.php?id=addons:gearswap:documentation:global_variables:start
which is pretty extensive awesome!
This is not as up-to-date as the file that is bundled with GearSwap (Windower/addons/GearSwap/beta_examples_and_information/Variables.xlsx). That's actually the file it's based on, but it has to manually be updated whenever GS is updated, and I don't know if anyone still maintains it.
Verda said: »
I'm just wanting to write some basic macros. But there's a few hangups I have I hope some nice person can answer for me.
I'm not nice, but I'll answer anyway. One of the advantages of not being nice is not to have to care about what you want!
Verda said: »
Example, lets say I want a macro when hitting alt + 4 to use sneak attack, trick attack and assassin's charge followed by an evisceration:
Supposedly that works if I typed all the names right. But it's hard to edit and read. I'd like it if I could do more:
I didn't test but I doubt that works because I can find no examples of that.
Code
bind !4 input /ja "Sneak Attack";wait 1;/ja "Assassin's Charge";wait 1;/ja "Trick Attack";wait 1;/ws "Evisceration" <t>
Supposedly that works if I typed all the names right. But it's hard to edit and read. I'd like it if I could do more:
Code
bind !4 [[ input /ja "Sneak Attack" wait 1 /ja "Assassin's Charge" wait 1 /ja "Trick Attack" wait 1 /ws "Evisceration" <t> ]]
I didn't test but I doubt that works because I can find no examples of that.
It does not. There is currently no way to do this in a regular script file.
Verda said: »
so instead you have to start making tons of txt files:
(Or use a better macro setup that doesn't chain abilities ;p)
Verda said: »
Now with gear swap, people have all sorts of conditional gear equipped for their skills and different situations. Which is great, but I don't have multiple gear sets yet being a noob. So I really just need good macros I can rely on and then add that as I get gear.
GS is not the right place for this. It's often called a "macro engine", but it's not, it's a gear change engine. You can abuse it to set key binds, but you can also use Yush for that, which is what it's intended for.
Verda said: »
Binds don't seem to show up in any of the example lua gearswap things however.
For the above reason.
Verda said: »
And I'm not sure on the syntax. But what I would like to do is make one big lua file for all my macros using the gearswap global variables.
There are Lua scripts in addition to regular Windower scripts that allow you to use Lua code. That's completely unrelated to GearSwap.
Just create a .lua file instead of a .txt file and then you can format it like this:
Code
windower.send_command('bind ^3 ' .. table.concat({
'input /ja "Sneak Attack" <me>',
'wait 1',
'input /ja "Trick Attack" <me>',
'wait 1',
'input /ja "Assassin's Charge" <me>',
'wait 1',
'input /ws "Evisceration" <t>',
}, ';'))Verda said: »
Then I can do something like for summoner cast different BP's based on what summon is out.
I.E. I want to be able to choose my summon and contextually use bloodpacts bound to the same keys.
I.E. I want to be able to choose my summon and contextually use bloodpacts bound to the same keys.
This is something GearSwap should do! GearSwap has an option to register your own commands with the self_command function. I'm not sure on the details (someone can correct me), but I think it works something like this:
Code
self_command = function(command, ...)
local args = {...}
if command == 'bp' then
-- Disambiguate here based on the provided argument
end
endThe easiest way to do the spell disambiguation is to define a table:
Code
bps = {
Garuda = {
ward1 = 'Aerial Armor',
ward2 = 'Whispering Wind',
...
},
Leviathan = {
ward1 = 'Slowga',,
ward2 = 'Spring Water',
...
}
}
self_command = function(command, ...)
local args = {...}
if command == 'bp' then
local pet = windower.ffxi.get_mob_by_target('pet')
if pet then
local ja = bps[pet.name][args[1]]
if ja then
windower.send_command('input /ja "%s" <me>':format(ja))
end
end
end
end