As mentioned, I post them on pastebin. However sharing on Google Drive isn't a bad idea, so I added a folder for them there: shared here shared here.
Changed the folder I was sharing on Google Drive to here. Made it so that it was sharing a clone of the entire repository (uses Mercurial). You can download the individual files that are in the folder, or you can download the entire folder (Google Drive should let you download it as a zip).
Also created a repo on GitHub: repo. You can download individual files by going to the file on GitHub, right-clicking the Raw button at the top of the display, and do Save Link As...
Still not sure which method of sharing I'm happiest with -- Pastebin, Google Drive or GitHub. Only have to click a couple buttons to keep the Google Drive and GitHub in sync, though, as opposed to the manual copy/paste on Pastebin.
when i try to make the above code a string of if > elseif > elseif statements It gives an end error. Do i need to have them all as if > if > if ?Code:--This will handle Waist for Normal TP set depending on Ionis buff being active --Caution with buff when not in an Ionis effected area if buffactive.Ionis then sets.melee.TP.Normal = set_combine(sets.melee.TP.Normal, {waist='Cetl Belt'}) else sets.melee.TP.Normal = set_combine(sets.melee.TP.Normal, {waist='Twilight Belt'}) end --Will change default earring for Normal TP when approaching delay cap if buffactive.Haste and buffactive.March == 2 then sets.melee.TP.Normal = set_combine(sets.melee.TP.Normal, {lear="Brutal Earring", rear="Suppanomimi"}) else sets.melee.TP.Normal = set_combine(sets.melee.TP.Normal, {lear="Dudgeon Earring", rear="Heartseeker Earring"}) end if buffactive.Minuet == 2 then sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS['Requiescat'], {lear="Bladeborn Earring", rear="Steelflash Earring"}) else sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS['Requiescat'], {lear="Brutal Earring", rear="Moonshade Earring"}) end
Also was wondering about this:
Motenten was amazing and helped me with adding but, but it seems to be limited to when GS first loads and calls the file. I was hoping to set it so when ever i change sub job in mog house it will update accordingly. Is that possible with GS or do I still need to rely on AutoExec for job change events?Code:--Will change to different Macro book and set based on sub job local book = 7 if player.sub_job:lower() == 'dnc' then book = 7 elseif player.sub_job:lower() == 'nin' then book = 8 elseif player.sub_job:lower() == 'rdm' then book = 9 elseif player.sub_job:lower() == 'war' then book = 10 end send_command('input /macro book '..tostring(book)..';wait .1;input /macro set 9') send_command('input /echo [ Job Changed to '..player.main_job..'/'..player.sub_job..' ]') send_command('input /echo [ Set Spells to sub job now ]') send_command('@bind f10 gs c tryweaponskill')
Like always thank you all for any insight.
Oh and I have said it before you want to again, GS is just so so neat. Amazing addon.
"else" has to be last in a conditional, so trying to do if -> else -> elseif -> else -> elseif -> else doesn't work. Also, you do need to have them as independent if statements if you want them to be treated independently. Like, if you changed it to five elseif statements and had Ionis (so buffactive.Ionis would be true) then you'd never make it past the first conditional and wouldn't adapt for buff level. The way you have it written now is right.
It doesn't need to be constrained to the MH. Just change it to this and put it in pretarget:Also was wondering about this:
Motenten was amazing and helped me with adding but, but it seems to be limited to when GS first loads and calls the file. I was hoping to set it so when ever i change sub job in mog house it will update accordingly. Is that possible with GS or do I still need to rely on AutoExec for job change events?Code:--Will change to different Macro book and set based on sub job local book = 7 if player.sub_job:lower() == 'dnc' then book = 7 elseif player.sub_job:lower() == 'nin' then book = 8 elseif player.sub_job:lower() == 'rdm' then book = 9 elseif player.sub_job:lower() == 'war' then book = 10 end send_command('input /macro book '..tostring(book)..';wait .1;input /macro set 9') send_command('input /echo [ Job Changed to '..player.main_job..'/'..player.sub_job..' ]') send_command('input /echo [ Set Spells to sub job now ]') send_command('@bind f10 gs c tryweaponskill')
Like always thank you all for any insight.
Oh and I have said it before you want to again, GS is just so so neat. Amazing addon.
Then it will check whether you're on the right set every time you use an ability and change you if you aren't. You can make this code simpler when we get event registration working in user files.Code:current_sub = '' (up in get_sets()) --Will change to different Macro book and set based on sub job local book = 7 if current_sub ~= player.sub_job:lower() then if player.sub_job:lower() == 'dnc' then book = 7 current_sub = 'dnc' elseif player.sub_job:lower() == 'nin' then book = 8 current_sub = 'nin' elseif player.sub_job:lower() == 'rdm' then book = 9 current_sub = 'rdm' elseif player.sub_job:lower() == 'war' then book = 10 current_sub = 'war' end send_command('input /macro book '..tostring(book)..';wait .1;input /macro set 9') send_command('input /echo [ Job Changed to '..player.main_job..'/'..player.sub_job..' ]') send_command('input /echo [ Set Spells to sub job now ]') send_command('@bind f10 gs c tryweaponskill') end
Shouldn't run get_sets() every time you change subjob? Though I see that you don't search for mainjob_subjob.lua (as Spellcast did) when refreshing, so maybe it doesn't?
It is possible to put variable definitions, such as includes, outside of get_sets(), so I don't want to risk partially reinitializing the user environment by running get_sets() multiple times. When event registration is possible, it'll just be a matter of windower.register_event('job change',function(etc.) end)
No, I'm saying that when you change your main job, it does a complete reload of your script. Why isn't it doing that when you change your subjob as well? It shouldn't be a question of partial re-initialization.
When you have access to a "job change" event, sure, just call that instead when the subjob is changed.
Can GS do overlays using some function of windower?
I have no idea what you are asking for, Yugl.
Motenten, I guess we could do that, but Spellcast's reason for it was to potentially load a new file. GearSwap does not have that issue and I do not want to add something so fundamental to fix a temporary problem (event registration.)
Can you display the last equip set over a transparent black box?
Yes, it can, but it could be made much easier by exposing the texts library to gearswap, and then just add texts = texts to the refresh.lua lib section to make it really easy. Then destroying would just have to be facilitated.
Then you could just do
my_text = texts.new('This is your text string!')
my_text:show()
my_text = texts.new('This is your text string that supports variables. For example, your TP mode is: ${_TPMode|None}.')
my_text._TPMode = TPMode
my_text:show()
Every time you change your TPMode, you can reassign my_text._TPMode = TPMode and your text box would update automatically.
I'd really love to just leave my equip menu open while i fight, so I can watch my gear swap, and always be aware of exactly what I'm TP/Idling in.(Blinkmenot user and sometimes I forget to turn PDT,etc back off.).
Unfortunately, you can't open the macro palette with a menu open(someone fix that!) <,<
I aactually use something like that to display my current spellcast group on screen. Although I'm doing it via teh text plugin. which is really clunky and annoying to use. Time to make a lua version.
I've tried looking for the answer to this, but haven't found it. Is there a way to export a file of what you currently have equipped in GearSwap format?
SpellCast has "//sc exportgeat filename.xml" which made updating sets super fast. I would like something like this. Does it exist currently?
GearSwap has an export command, which has a few options. (default):
* (equipment)/inventory/sets - Exports either your currently worn equipment, inventory, or all of your sets table.
* (lua)/xml - Exports it in either Lua format or gearcollector-compatible xml format.
So "//gs export" would pop out a table of your current gear in .lua format that you could copy/paste into your document. "//gs export sets xml" or "//gs export inventory xml" are basically just two options for making gearcollector files.
If you make a gearcollector file (and move it to your spellcast folder and name it properly) and use //gc <job name>. When it's done, you can use //gs validate. This will iterate over your sets table and tell you which pieces of gear you are still missing. Very helpful for finding spelling errors.
Edit:
Also, I pushed an update last night that exposes automaton information in the pet table. The documentation has been updated accordingly. There was also an update to shortcuts that should solve a lot of the problems people have complained about.
Awesome. Thanks, Byrth. This (my laziness/lack of time to update manually) was the only thing really holding me back on switching to GearSwap.
EDIT: Ah, I figured out the issue I was having with export. It, for some reason, required me to have an existing Gearswap file loaded before exporting data.
Appreciate the work you've done Motenten.
I'm trying to learn lua but i haven't gotten around to it, so for now i'm trying to adapt your THF gearswap, and am curious if i want to make sets for Rudra's storm instead of Shark bite, how to do so since this seems to mess up the context with the apostrophe in the weaponskill name.
Code:sets.precast.WS['Rudra's Storm']
Use double quotes around the entire name, or escape the internal apostrophe. Either works:
"Rudra's Storm"
'Rudra\'s Storm'