For what it's worth, you can use Mote's Modes library independently from the rest of his Gearswap stuff. Modes is pretty useful when you get the hang of it.
For what it's worth, you can use Mote's Modes library independently from the rest of his Gearswap stuff. Modes is pretty useful when you get the hang of it.
Is there a fonction that check for Skillchain so i can create a rule to cast specific spell on said skillchain element?
Any big downsides to using Ashitacast over Gearswap? I come from the Spellcast era (been gone for 7-8 or so years now) and I'm having a very hard time wrapping my head around lua as I'm not familiar with the language.
for what is built in not realy
-except for the differences in coding language
how ever with gearswap you have access to almost everything that you can access in windowers lua api if you chose to add it your self
-like Events/etc.
once you understand the differences between lua and xml you will find lua to be better then xml
here is a quick reference for differences from spellcast to gearswap
https://pastebin.com/GLdhjSuR
lol I come from 2008 Try playing now from my perspective.
trust me lua i vary easy to learn and eaiser to do advanced things in
here are some tut's
http://supernovaffxi.wikia.com/wiki/...arSwap_Lessons
https://www.ffxiah.com/forum/topic/4...p-for-dummies/
In some of my Luas I make use of the disable/enable commands to avoid swapping my mainhand/offhand when I'm engaged.
It works perfectly but under some circumstances I remain with my MH/OH "disabled".
The "disable" part happens in the function status_change(new,old), with a simple "if new == 'Engaged' then", works flawlessly.
The "enable" part happens in the same function, in a consequent "else" within the if described above, and this is where things work a bit less flawlessly.
For instance if I die while engaged there won't be a "disengage" status_change, so I will remain locked.
Likewise sometimes if the monster I'm engaged gets... I dunno, killed too quickly in a laggy zone? Packetloss? Whatever, I don't know what happens and it's very rare, but sometimes when shit dies too fast it's like the game doesn't "see" I've been disengaged for whatever reason and hence the "enable" part of my status_change function doesn't get processed.
Can anybody think of a very simple and straightforward way to avoid this? Or do I just have to eat it because the cause is a packet-loss and nothing we can do about it?
I also see the same thing in the pet job luas that I've written, if something gets one-shotted from a Ready/BP. I'm pretty sure it's probably due to me not knowing what I'm doing when working with pet functions in my case tho. ><;; In your case, have you tried ending that IF and starting a new one for other statuses? Something like:
It's not as pretty as ELSE functions, but I'm pretty sure it should work since I've used similar structure before.Code:function status_change(new,old) if new == "Engaged" then ...disable code... end if new == "Idle" then ...enable code... end end
Hmm, that might be worth a shot.
Is there a "status" state for death?
Where can I find a list of all possible statuses?
Going this route I'm confident I could totally avoid the "death" error, probably not the other one though, I'm not even sure what causes it. If it's a packetloss I'm afraid there's no way to avoid it.
Status list here: https://github.com/Windower/Resource...a/statuses.lua
Also found in your windower install directory/res/statuses.lua
Also could try:
It shouldn't be possible to miss the "engage" packet, and with the default shifted to "not equal to engaged", it might work better. At the very least, this method should reset to "enabled" by resting. ^^;;Code:function status_change(new,old) if new ~= "Engaged" then ...enable code... else ...disable code... end end
gearswap does not watch packets for engaged it uses windowers windower.register_event('status change',function(new,old) to do it
so if windower does not trigger it wont trigger status_change function
and if new or old are Dead,Engaged dead,Event it wont trigger status_change function eather
edit--
if you want to watch packets for status change you would need to watch 0x00D,0x037(and possibly others) packets
if there isnt a status for death you can prolly use weakened status ?
The primary issue is when player/pet status goes from Idle > Engaged > Idle too quickly, which causes some sort of trigger failure. Is it likely that Windower/GearSwap are getting hit w/ a timing conflict and ignoring the 2nd set of instructions?
EX:
* Kill target with WS/Ready.
** Attempt to enter normal aftercast code.
** Attempt to enter status change code. < Gets ignored since already executing aftercast code at this time?
If this is what's happening, what kind of solutions should we be looking for?
I was wondering, is gearswap able to detect which SAM roll you currently have and based on that information equip different gear sets?
Also another question I have this.
It swaps to the propper midcast RA set when weapon is draw, however when idle it doesnt. How do it make it so it also works when using RA when weapon isn't drawn?Code:function update_combat_weapon() state.CombatWeapon:set(player.equipment.range) end
as a cor in a roll specific code you can call spell.value i think it is and it will tell you the roll, but as a non cor i dont think so but dont quote me on that
like:
if phantom roll then
if spell.value = 12 then
ect
ect
ect
tried:
if player.status == 'Idle' and player.in_combat then
maybe?
Cant get it to work out of combat. It works when im in engage mode. Otherwise, when im out of combat and not engaged it just uses generic RA set instead of sets.midcast.RA.Annihilator.
Code:function job_status_change(newStatus, oldStatus, eventArgs) update_combat_weapon() end function job_update(cmdParams, eventArgs) update_combat_weapon() end function update_combat_weapon() state.CombatWeapon:set(player.equipment.range) end