|
Gearswap Support Thread
Server: Asura
Game: FFXI
Posts: 21
By Asura.Hadroncollider 2025-06-21 07:49:25
Hello. I doubt I'm the only one with the following problems, but I need help.
With the new macro tester buff and also the Limbus grace buffs, I get a Lua runtime error: GearSwap/packet_parsing.lua:464: attempt to index field '?' (a nil value)
Also I get the Lua runtime error: GearSwap/packet_parsing.lua:246: attempt to index field '?' (a nil value) if I try to equip any +4 relic, af or null gear.
Since gearswap stops working with those errors, I can basically not attempt the new content nor play my main job anymore. I'd be really glad if somoene has a solution for those problems. Thanks in advance!
Okay, found it out myself. For anyone wondering: it's an update error. Erasing the update folder and the res folder and restarting windower afterwards fixes the issue.
So... thanks for nothing!
[+]
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1,456
By Quetzalcoatl.Xilkk 2025-07-02 13:47:58
I've been trying out Lycus' Bst lua
I like alot of things in it, and I've pulled over all the stuff from my previous lua that it doesn't have.
I don't think Lycus is still playing. hasn't been a post or updates for 3 years.
The nice features include weaponlocking, the hud and weaponcycling.
However, it seems the sub weapon cycling breaks when player is not dualwielding.
I've been looking thru it and I can't find where it breaks down. I had it very briefly working bst/war. but after changing jobs and reloading it doesn't actually swap the sub slot anymore. the hud shows the value changing, but the equip doesn't actually swap.
Wondering if fresh eyes could help.
Best regards.
Fenrir.Jinxs
Server: Fenrir
Game: FFXI
Posts: 732
By Fenrir.Jinxs 2025-07-02 14:13:26
To understand better
Someone will need to know what you are doing and what is the expected outcome vs what it does
Also what's in your subhand if you are let's say war sub
Quote: I had it very briefly working bst/war. but after changing jobs and reloading it doesn't actually swap the sub slot anymore. the hud shows the value changing, but the equip doesn't actually swap. This is hard to follow can you break it down
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1,456
By Quetzalcoatl.Xilkk 2025-07-02 14:23:19
There is a toggle button in the lua to swap the currently equipped main hand weapon from a list, and the same w/ a different toggle button for the sub slot. it cycles thru a list of weapons, in the char_bst.lua main file.
When you change to a non-dual wield support job, the toggle for the sub slot keeps changing as reflected in the HUD, but it doesn't actually change your equipped offhand.
Code KeyBinds:
F9 ........... Cycle Offense Mode
Alt+F9 ....... Cycle Haste Mode (What kind of haste spell is being cast on you)
Ctrl+F9 ...... Toggle Solo / Party Mode (For determining whether or not your buffs are coming from Trusts)
F10 .......... Toggle Defense Mode
Alt+F10 ...... Reset Defense Mode
Ctrl+F10 ..... Cycle Defense Mode Options
F11 .......... Cycle Main-Hand
Ctrl+F11 ..... Toggle Main Weapon enable/disable
CtrlF8 ....... Cycle Off-Hand
Alt+F8........ Toggle Off-Hand enable/disable
Alt+F12 ...... Toggle Kiting
Home ......... Cycle Jugs List (List is obtained from your current inventory & wardrobes)
End .......... Cycle Reward Item
Ctrl+PageUp .. Toggle Showing Keybinds In HUD
Ctrl+PageDn .. Toggle HUD On/Off
Windows+1~7 .. Use Ready Move for # (/bstpet #)
send_command('bind !f8 gs c cycle Sub')
send_command('bind ^f8 gs c cycle LockSub')
--Weapon lists. Feel free to customize
state.Main = M{['description']='Main-hand Mode', "Aymur", "Spalirisos", "Pangu", "Dolichenus", "Tri-Edge"}
state.Sub = M{['description']='Off-hand Mode', 'Empty', "Agwu's Axe", "Fernagu", "Spalirisos", "Izizoeksi", "Diamond Aspis", "Sacro Bulwark", "Adapa Shield", "Ikenga's Axe"}
--By default weapons/shield swaps are enabled
state.LockMain = M{['description']='Main-hand', 'enabled', 'disabled'}
state.LockSub = M{['description']='Off-hand', 'enabled', 'disabled'}
the following functions in the bst-lib.lua
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
if state.LockMain.value ~= 'disabled' or player.equipment.main == '' then
meleeSet = set_combine(meleeSet, {main=state.Main.value})
end
if (state.LockSub.value ~= 'disabled' or player.equipment.sub == '') and dualwield then
if state.Sub.value:lower() == 'empty' then
meleeSet = set_combine(meleeSet, {sub=empty})
else
meleeSet = set_combine(meleeSet, {sub=state.Sub.value})
end
end
return meleeSet
end
function customize_defense_set(defenseSet)
if state.LockMain.value ~= 'disabled' or player.equipment.main == '' then
defenseSet = set_combine(defenseSet, {main=state.Main.value})
end
if (state.LockSub.value ~= 'disabled' or player.equipment.sub == '') and dualwield then
if state.Sub.value:lower() == 'empty' then
defenseSet = set_combine(defenseSet, {sub=empty})
else
defenseSet = set_combine(defenseSet, {sub=state.Sub.value})
end
end
return defenseSet
end
Fenrir.Jinxs
Server: Fenrir
Game: FFXI
Posts: 732
By Fenrir.Jinxs 2025-07-02 14:31:27
Right I can see that part
But I am asking what are you expecting to be equipped when you are /war empty? Is this on idle, what action?
And it looks like you have main and sub coded into various sets so understanding when it's not swapping and what will also be helpful and what your setup is at the time including subjob action
Then we can work backwards on whatever the UI is telling you
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1,456
By Quetzalcoatl.Xilkk 2025-07-02 14:42:39
I expect it to equip Sacro Bulwark when I toggle it to Sacro Bulwark. I expect it to equip Adapa shield when I toggle it to Adapa Shield, etc. I do NOT expect it to equip an offhand axe ofcourse.
Normally if I toggle it when on /dnc or /nin, it will cycle thru and equip each item in turn and equip them. Unless I have toggled the lock function, which I have not.
It doesn't matter whether I'm idle or engaged. It does not equip any shield in the sub slot. I cycle thru to Sacro Bulwark, Adapa Shield, or Diamond Aspis, but it does not equip it. The only thing that equips is if I use Killer instinct, because I also have Diamond Aspis in that precast set.
If I am /dnc or /nin it will equip diamond aspis, for the job ability then revert to whichiever off-hand is selected, as expected.
at present I am standing idle, pressing the bind hot-key to cycle the sub weapon slot. however if i'm engaged, the toggle likewise, changes the listed weapon in the hud, but does not change the equipped shield.
Fenrir.Jinxs
Server: Fenrir
Game: FFXI
Posts: 732
By Fenrir.Jinxs 2025-07-02 14:45:37
Now I have found that the gs lock command does not come off if I reload the gearswap
Only if I unload then reload it or turn off specific locks
What happens when you start on something like sub war with these conditions
Fenrir.Jinxs
Server: Fenrir
Game: FFXI
Posts: 732
By Fenrir.Jinxs 2025-07-02 14:57:58
Code function customize_idle_set(idleSet)
if pet.isvalid then
if pet.status == 'Engaged' then
if state.DefenseMode.Value == 'None' then
idleSet = set_combine(idleSet, sets.idle.Field.Pet.engaged)
else
idleSet = set_combine(idleSet, sets.idle.Field.Pet.engaged[state.ActiveDefenseMode.Value])
end
end
end
if state.LockMain.value ~= 'disabled' or player.equipment.main == '' then
idleSet = set_combine(idleSet, {main=state.Main.value})
end
if (state.LockSub.value ~= 'disabled' or player.equipment.sub == '') and dualwield then
if state.Sub.value:lower() == 'empty' then
idleSet = set_combine(idleSet, {sub=empty})
else
idleSet = set_combine(idleSet, {sub=state.Sub.value})
end
end
return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
if state.LockMain.value ~= 'disabled' or player.equipment.main == '' then
meleeSet = set_combine(meleeSet, {main=state.Main.value})
end
if (state.LockSub.value ~= 'disabled' or player.equipment.sub == '') and dualwield then
if state.Sub.value:lower() == 'empty' then
meleeSet = set_combine(meleeSet, {sub=empty})
else
meleeSet = set_combine(meleeSet, {sub=state.Sub.value})
end
end
return meleeSet
end
function customize_defense_set(defenseSet)
if state.LockMain.value ~= 'disabled' or player.equipment.main == '' then
defenseSet = set_combine(defenseSet, {main=state.Main.value})
end
if (state.LockSub.value ~= 'disabled' or player.equipment.sub == '') and dualwield then
if state.Sub.value:lower() == 'empty' then
defenseSet = set_combine(defenseSet, {sub=empty})
else
defenseSet = set_combine(defenseSet, {sub=state.Sub.value})
end
end
return defenseSet
end
The code in the side car file bst-lib
Without really deep diving it nor am I an expert mind you
Has "and dual wield" on most of the statements that even do anything with sub so unless you alter this it won't even look at the sub without dual wield
Server: Fenrir
Game: FFXI
Posts: 254
By Fenrir.Brimstonefox 2025-07-02 14:59:28
In the lib it appears the check_haste() function is relying on /dnc or /nin so that's probably why its not doing anything. (best guess just from eyeballing the code)
The the engaged sets in the main file appear to have DW in the name too not sure if there's a check where else that might be related, is it changing any gear at all?
Quetzalcoatl.Xilkk
Server: Quetzalcoatl
Game: FFXI
Posts: 1,456
By Quetzalcoatl.Xilkk 2025-07-02 15:05:06
Thank you very much
Server: Fenrir
Game: FFXI
Posts: 254
By Fenrir.Brimstonefox 2025-07-03 08:53:06
Were you able to get it to work then?
Just looking for someone to explain this addon a bit for me. It looks like it is an alternative to Spellcast.
Is it going to be replacing Spellcast? In which ways is it better or worse. I don't know any programming but I've slowly learned more and more about spellcast and the 'language' used in gearswap is confusing to me.
It says it uses packets so it potentially could be more detectable? but does that also eliminate any lag that spellcast may encounter?
I plan on redoing my PUP xml to include pet casting sets thanks to the new addon petschool. I'm just not sure if it's worth it to just wait until gearswap gets more popular or to go ahead and do it in spellcast.
If anyone could give me more info I'd greatly appreciate it.
|
|