Okay, so I released two things for the experimental client today:
1) Shortcuts v0.9 - For a while Shortcuts had a bug where it would fail to create the right target when you didn't provide one but your current target was valid for the spell. Like, if you were targeting a non-party member and used /haste it would cast Haste on you instead of the party member. That problem is now fixed. AFAIK and possibly barring <st> weirdness, shortcuts is pretty much done.
2) GearSwap v0.703 - A few things in this:
* It now checks to see whether your spell target dies while you're casting and resets midaction if it does. There are still a few more action-freeze cases like this out there (like zoning while casting), but this was the last big one.
* It now has case insensitive data tables. So player.ID is the same as player.id. buffactive.pRoTeCT is the same as buffactive.protect, etc.
* The windower data structure is now available for .lua users. It was at least partially available before, but now it's a little bit cleaner. windower.unregister_event(id) causes desktop crashes, but that's just because it's broken at the moment.
* I made some changes to the require function that I forgot to test until just now. Hopefully they work!
* There is now an "export" command that will dump your current set or entire inventory into a GearSwap .lua or Spellcast .xml file. The command is:
Code:
//gs export
//gs export inventory
//gs export xml
//gs export inventory xml
It defaults to exporting the currently equipped gear in .lua format unless one of the options is listed. All files are exported to windower/addons/lua/gearswap/data/export/
I made an issues tracker here: https://github.com/Byrth/Lua/issues
Please let me know if you find anything else wrong, and I am still thinking about how to address change_spell() with st targets.