Gearswap Support Thread |
||
Gearswap Support Thread
Offline
Posts: 1018
Any way to easily grab a spells recast timer?
Asura.Melbufrauma
Offline
After updating my includes to current I now keep getting this error (on any job I try to change to for some reason?)
Gearswap: Lua error (runtime)- ... files (x86)Windower4/addons/Gearswap/data/PUP.lua:30: attempt to call global 'binds_on_unload' (a nil value) You're using a version of Motenten's files that aren't fully updated.
Offline
Posts: 12
I just started using GearSwap without previous knowledge of Spellcast or Windower macros. So far was able to incorporate a working TP set, WS set and Idle set to my gameplay by adjusting one of the beta xml's that came with the addon. I'm quite pleased by the results.
Next i'd like to add different kinds of TP and Idle sets. So far I have 2 different working TP sets (PDT and MDT) that i can swap into by using a macro with /console gs equip, but every time after performing any action that would swap my gear out, my tp set goes back back to the default TP set. I'm now wondering how to override the default TP or Idle set with a different one, but i have not found a way to do this. Could anybody direct me to any source of information that would help me or explain to me how to do this? Thanks in advance and much appreciation to everyone involved in GearSwap's development and support. tavera said: » I just started using GearSwap without previous knowledge of Spellcast or Windower macros. So far was able to incorporate a working TP set, WS set and Idle set to my gameplay by adjusting one of the beta xml's that came with the addon. I'm quite pleased by the results. Next i'd like to add different kinds of TP and Idle sets. So far I have 2 different working TP sets (PDT and MDT) that i can swap into by using a macro with /console gs equip, but every time after performing any action that would swap my gear out, my tp set goes back back to the default TP set. I'm now wondering how to override the default TP or Idle set with a different one, but i have not found a way to do this. Could anybody direct me to any source of information that would help me or explain to me how to do this? Thanks in advance and much appreciation to everyone involved in GearSwap's development and support. Code --Define sets in get_sets() sets.TP.Haste = {stuff} sets.TP.PDT = {stuff} sets.TP.MDT = {stuff} sets.TP.Use = sets.TP.Haste and Code function self_command(command) if command == "equip PDT" then sets.TP.Use = sets.TP.PDT elseif command == "equip MDT" then sets.TP.Use = sets.TP.MDT elseif command == "equip Haste" then sets.TP.Use = sets.TP.Haste end with Code function status_change(new,old) if new == 'Engaged' then equip(sets.TP.Use) end end Edit add: And the syntax for self-commands is "/console gs c <command>", for example "/console gs c equip Haste" Offline
Posts: 12
Thanks for the quick reply, i'll try it.
Offline
Posts: 47
can anyone help me out >_< i'm working on the part to check whether is the day for mekira proc, been trying to make it work for hours but no luck, guess i'm doing it wrong:
function precast(spell) if sets.precast[spell.english] then equip(sets.precast[spell.english]) elseif spell.name=='Resolution' then if world.day=='Lightningday' or world.day=='Windsday' or word.day=='Earth Day' then set_ws=set_combine(sets.precast['Reso'],sets.precast['Mekira']) else equip(sets.precast['Reso']) end elseif spell.type=="Weaponskill" then equip(sets.precast.WS) end end thanks a lot m(_ _)m andy1110 said: » can anyone help me out >_< i'm working on the part to check whether is the day for mekira proc, been trying to make it work for hours but no luck, guess i'm doing it wrong: function precast(spell) if sets.precast[spell.english] then equip(sets.precast[spell.english]) elseif spell.name=='Resolution' then if world.day=='Lightningday' or world.day=='Windsday' or word.day=='Earth Day' then set_ws=set_combine(sets.precast['Reso'],sets.precast['Mekira']) else equip(sets.precast['Reso']) end elseif spell.type=="Weaponskill" then equip(sets.precast.WS) end end thanks a lot m(_ _)m If that doesn't fix it, put "send_command('@input /echo Day is correct')" or some such as first line in the daycheck if, to see whether the problem is in the if or inside it. It should also be world.day instead of word.day. And yeah, you're not equipping it.
Sylph.Peldin
Offline
Is there a tutorial for Gearswap that can help me understand the reasoning behind different lines of code?
I'd like to understand it to the point where I can write my own Lua instead of copying someone else's and just pasting in my gear from spellcast. However, I have no knowledge or understanding of Lua or any other programming language for that matter. Does anyone have a Gearswap Lua with comments that explain what each line of code is doing? Or would anyone be willing to do this for other people like myself? Offline
Posts: 47
ty for the quick reply, problem solved! stupid hands of mine... i remember seeing something like buff == 'Aftermath: Lv.3’ somewhere, but it is not working, what's the correct name to check aftermath level? where can i find the proper name for buff? thanks a lot!
Offline
Posts: 12
By reading the forums i figured part of the code within my file would allow me to cycle through the different TP sets by typing //gs c toggle TP set And it's working perfectly.
I have two questions though: Is it possible to go straight to a specific set instead of having to cycle through all of them until i get to the one i want? By performing a toggle while i'm in idle mode, this code is swapping out my idle gear in place for the TP sets i'm cycling through. Would it be possible to toggle my default TP set without having my idle set removed? Here is the code: Code function self_command(command) if command == 'toggle TP set' then TP_Index = TP_Index +1 if TP_Index > #TP_Set_Names then TP_Index = 1 end send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----') equip(sets.TP[TP_Set_Names[TP_Index]]) elseif command == 'toggle Idle set' then Idle_Index = Idle_Index +1 if Idle_Index > #Idle_Set_Names then Idle_Index = 1 end send_command('@input /echo ----- Idle Set changed to '..Idle_Set_Names[Idle_Index]..' -----') equip(sets.Idle[Idle_Set_Names[Idle_Index]]) end end Thanks so much for any information provided. tavera said: » By reading the forums i figured part of the code within my file would allow me to cycle through the different TP sets by typing //gs c toggle TP set And it's working perfectly. I have two questions though: Is it possible to go straight to a specific set instead of having to cycle through all of them until i get to the one i want? By performing a toggle while i'm in idle mode, this code is swapping out my idle gear in place for the TP sets i'm cycling through. Would it be possible to toggle my default TP set without having my idle set removed? Here is the code: Code function self_command(command) if command == 'toggle TP set' then TP_Index = TP_Index +1 if TP_Index > #TP_Set_Names then TP_Index = 1 end send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----') equip(sets.TP[TP_Set_Names[TP_Index]]) elseif command == 'toggle Idle set' then Idle_Index = Idle_Index +1 if Idle_Index > #Idle_Set_Names then Idle_Index = 1 end send_command('@input /echo ----- Idle Set changed to '..Idle_Set_Names[Idle_Index]..' -----') equip(sets.Idle[Idle_Set_Names[Idle_Index]]) end end Thanks so much for any information provided. if command == "high acc" then TP_Index = <index of high accuracy set> Or as addressed a couple post above yours if you don't care about the toggle functionality. For the second question, instead of "equip(sets.TP[TP_Set_Names[TP_Index]])" put gearswap equivalent of if engaged then equip tp set else equip idle set with the else being optional, since you're not changing idle set in that command. Offline
Posts: 12
Thanks again for your reply.
Ragnarok.Sharain said: » For the second question, instead of "equip(sets.TP[TP_Set_Names[TP_Index]])" put gearswap equivalent of if engaged then equip tp set else equip idle set with the else being optional, since you're not changing idle set in that command. Instead of rewriting those lines, I'd suggest calling status_change(player.status), where all of that stuff should be already. Offline
Posts: 12
Do you mean this part of the code?:
Code function status_change(new,old) if T{'Idle','Resting'}:contains(new) then equip(sets.Idle[Idle_Set_Names[Idle_Index]]) elseif new == 'Engaged' then equip(sets.TP[TP_Set_Names[TP_Index]]) end end How would i go about doing what you suggest? Also, would this part of code allow me to do what i asked before? To make a specific TP set the default TP set without going through the toggle, as Sharain suggested? Code function self_command(command) if command == 'PDT' then TP_Index = 'PDT' equip(sets.TP[TP_Set_Names[PDT]]) end end Sylph.Peldin said: » Is there a tutorial for Gearswap that can help me understand the reasoning behind different lines of code? I'd like to understand it to the point where I can write my own Lua instead of copying someone else's and just pasting in my gear from spellcast. However, I have no knowledge or understanding of Lua or any other programming language for that matter. Does anyone have a Gearswap Lua with comments that explain what each line of code is doing? Or would anyone be willing to do this for other people like myself? I actually started writing up a tutorial. Got two parts complete. Doesn't deal much with the fundamentals of programming lua, though; there are a bunch of really good tutorials for that on the web, so seems redundant. Edit: well, that's a bit of a lie; it does deal with a few basic ideas. Still, have to assume at least a 5th grader's programming level if I don't want to go mad explaining every little thing. tavera said: » Do you mean this part of the code?: Code function status_change(new,old) if T{'Idle','Resting'}:contains(new) then equip(sets.Idle[Idle_Set_Names[Idle_Index]]) elseif new == 'Engaged' then equip(sets.TP[TP_Set_Names[TP_Index]]) end end How would i go about doing what you suggest? Also, would this part of code allow me to do what i asked before? To make a specific TP set the default TP set without going through the toggle, as Sharain suggested? Code function self_command(command) if command == 'PDT' then TP_Index = 'PDT' equip(sets.TP[TP_Set_Names[PDT]]) end end Answering the second question first. No, if you are going with what the default example Lua files had, TP_Index is supposed to be a number. Most likely, your PDT set's index is "2" (i.e. it is the second option listed in the TP_Set_Names table). Answering both questions together: Code function self_command(command) if command == 'PDT' then TP_Index = 2 status_change(player.status) end end Fenrir.Motenten said: » I actually started writing up a tutorial. Got two parts complete. Doesn't deal much with the fundamentals of programming lua, though; there are a bunch of really good tutorials for that on the web, so seems redundant. Edit: well, that's a bit of a lie; it does deal with a few basic ideas. Still, have to assume at least a 5th grader's programming level if I don't want to go mad explaining every little thing. Wondering if this is a generic GearSwap guide, or a guide that focuses on using your includes and such. Offline
Posts: 41
I have the new include and other files and the command :
//gs c cycle "Modes" (offense defense ...) dont work anymore (since Monday). No message on console. I use rng lua and i have a problem with precast snpashot. I see gear change, i check the delay for shot, and i dont see difference vs no snpashot gear (i have all snpashot gear available). Using spellcast i count something like 1 sec less than no gear, but not difference using gearswap. Can someone help me? Anarkus had similar problem.. then realized requires a sidecar for gear swaps. Pull this as a .lua edit ur gears and should be good.
Note: save as RNG_gear.lua http://pastebin.com/ErktirjE Offline
Posts: 41
strange i dont use sidecar files (not obligatory and my mnk work without)
All swap work on rng, WS tp , but i dont see difference with precast and without precast using gearswap when i see one using spellcast. And i see the swap for precast, so he change gear but its like it dont have "effect". Will test sidecar but idk yeah i was getting exact same thing. It would look like I was swapping and chances are u are using same .lua I am.. in which I assure u .. pull RNG_gear.lua and use that for ur armor and works perfectly fine.. good luck =)
@Anarkus:
If you're using mine, enter: //gs c showset precast That will stop all equips at the precast level, so it won't equip midcast/aftercast, and let you see exactly what's being equipped at that stage. You can turn it off with //gs c showset off Also, you said stuff stopped working. There was a significant update about a week ago, dealing with how Gearswap loads includes. You need to make sure to update -all- Mote-* files after that, or things will be broken. I've had a couple people say they have the "new" files, but haven't actually updated in a couple weeks. I've been putting out new updates pretty much every day for the last month. @Flippant: It's a generic tutorial starting from the ground up, and dealing with things that I see trips a lot of people up, or that I often see done poorly when people write their own. Right now it's a bit stuck trying to find a logical progression of advancement from the most basic stuff to the more intermediate. Feel free to suggest anything you think would be helpful to include. Offline
Posts: 12
Ragnarok.Flippant said: » Answering the second question first. No, if you are going with what the default example Lua files had, TP_Index is supposed to be a number. Most likely, your PDT set's index is "2" (i.e. it is the second option listed in the TP_Set_Names table). Answering both questions together: Code function self_command(command) if command == 'PDT' then TP_Index = 2 status_change(player.status) end end Thank you very much, that's exactly what i was looking for. Offline
Posts: 41
Ty all work now for rng,
Something have change with //gs c cycle ???? Something with key bind? I update again all mote file today but //gs c cycle offensemode dont react. Not so important as precast but if someone know what i did wrong? Ty again for help Fenrir.Motenten said: » @Flippant: It's a generic tutorial starting from the ground up, and dealing with things that I see trips a lot of people up, or that I often see done poorly when people write their own. Right now it's a bit stuck trying to find a logical progression of advancement from the most basic stuff to the more intermediate. Feel free to suggest anything you think would be helpful to include. Not sure what you cover as basic or intermediate, but I think the biggest problem people have is using the tools they learn to create a complete and solid flow. So I think after covering the basics--or intermediates, whatever is appropriate--you should show a step-by-step on how you, yourself, use exactly what you talked about in the guide to build something more advanced, like a complete GearSwap file (even if it may be relatively simple). The goal for them at the end shouldn't be that they can then create something from scratch with nothing but their memory, but they can read and understand the control flow and simple concepts in a GS file and, based on this, learn how to eventually play with it and adapt it into their own code. Expanding their knowledge to do more than a basic GearSwap probably isn't even something you would need to cover because if they feel comfortable enough and want to go further, they should be able to read and learn straight from most code at that point (using Google for Lua's libraries as necessary). Offline
Posts: 12
This is how my GS file for THF ended up:
Code function get_sets() TP_Index = 1 Idle_Index = 1 sets.weapons = {} sets.weapons[1] = {main="Izhiikoh"} sets.weapons[2]={main="Atoyac"} sets.weapons[3]={main="Thief's Knife"} sets.JA = {} sets.JA.Conspirator = {body="Raider's Vest +2"} sets.JA.Accomplice = {head="Raider's Bonnet +2"} sets.JA.Collaborator = {head="Raider's Bonnet +2"} sets.JA['Perfect Dodge'] = {hands="Assassin's Armlets +2"} sets.JA.Steal = {head="Assassin's Bonnet +2",neck="Rabbit Charm",hands="Thief's Kote", waist="Key Ring Belt",legs="Assassin's Culottes",feet="Pillager's Poulaines"} sets.JA.Flee = {feet="Pillager's Poulaines"} sets.JA.Despoil = {legs="Raider's Culottes +2",feet="Raider's Poulaines +2"} sets.JA.Mug = {head="Assassin's Bonnet +2"} sets.JA.Waltz = {head="Anwig Salade",neck="Dualism Collar",body="Iuitl Vest",hands="Buremte Gloves",ring1="Valseur's Ring",ring2="Veela Ring", waist="Aristo Belt",legs="Desultor Tassets",feet="Dance Shoes"} sets.WS = {} sets.WS.SA = {} sets.WS.TA = {} sets.WS.SATA = {} sets.WS.Evisceration = {head="Uk'uxkaj Cap",neck="Nefarious Collar",ear1="Brutal Earring",ear2="Moonshade Earring", body="Manibozho Jerkin",hands="Pillager's Armlets",ring1="Rajas Ring",ring2="Epona's Ring", back="Rancorous Mantle",waist="Wanion Belt",legs="Manibozho Brais",feet="Manibozho Boots"} sets.WS.SA.Evisceration = set_combine(sets.WS.Evisceration,{hands="Raider's Armlets +2"}) sets.WS["Rudra's Storm"] = {head="Whirlpool Mask",neck="Love Torque",ear1="Brutal Earring",ear2="Moonshade Earring", body="Manibozho Jerkin",hands="Iuitl Wristbands",ring1="Rajas Ring",ring2="Thundersoul Ring", back="Atheling Mantle",waist="Wanion Belt",legs="Manibozho Brais",feet="Iuitl Gaiters"} sets.WS.SA["Rudra's Storm"] = set_combine(sets.WS["Rudra's Storm"],{hands="Raider's Armlets +2"}) sets.WS.Exenterator = {head="Uk'uxkaj Cap",neck="Justiciar's Torque",ear1="Steelflash Earring",ear2="Bladeborn Earring", body="Manibozho Jerkin",hands="Iuitl Wristbands",ring1="Stormsoul Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Elanid Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters"} sets.WS.TA.Exenterator = {head="Uk'uxkaj Cap",neck="Justiciar's Torque",ear1="Steelflash Earring",ear2="Bladeborn Earring", body="Manibozho Jerkin",hands="Pillager's Armlets",ring1="Stormsoul Ring",ring2="Epona's Ring", back="Atheling Mantle",waist="Elanid Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters"} sets.WS.SATA.Exenterator = sets.WS.TA.Exenterator TP_Set_Names = {"Normal","PDT","MDT","TH"} sets.TP = {} sets.TP['Normal'] = {range="Raider's Bmrng.",head="Whirlpool Mask",neck="Nefarious Collar", ear1="Dudgeon Earring",ear2="Heartseeker Earring",body="Thaumas Coat",hands="Pillager's Armlets", ring1="Rajas Ring",ring2="Epona's Ring",back="Atheling Mantle",waist="Patentia Sash", legs="Quiahuiz Leggings",feet="Manibozho Boots"} sets.TP['PDT'] = {ranged="Raider's Bmrng.",head="Whirlpool Mask",neck="Twilight Torque", ear1="Dudgeon Earring",ear2="Heartseeker Earring",body="Iuitl Vest",hands="Iuitl Wristbands", ring1="Rajas Ring",ring2="Epona's Ring",back="Mollusca Mantle",waist="Flume Belt", legs="Kaabnax Trousers",feet="Iuitl Gaiters"} sets.TP['MDT'] = {ranged="Raider's Bmrng.",head="Whirlpool Mask",neck="Twilight Torque", ear1="Merman's Earring",ear2="Merman's Earring",body="Iuitl Vest",hands="Iuitl Wristbands", ring1="Shadow Ring",ring2="Epona's Ring",back="Mollusca Mantle",waist="Resolute Belt", legs="Kaabnax Trousers",feet="Iuitl Gaiters"} sets.TP['TH'] = {range="Raider's Bmrng.",head="Whirlpool Mask",neck="Nefarious Collar", ear1="Dudgeon Earring",ear2="Heartseeker Earring",body="Thaumas Coat",hands="Assassin's Armlets +2", ring1="Rajas Ring",ring2="Epona's Ring",back="Atheling Mantle",waist="Twilight Belt", legs="Kaabnax Trousers",feet="Raider's Poulaines +2"} Idle_Set_Names = {'Normal','MDT'} sets.Idle = {} sets.Idle.Normal = {head="Oce. Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring", body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Paguroidea Ring",ring2="Sheltered Ring", back="Mollusca Mantle",waist="Flume Belt",legs="Kaabnax Trousers",feet="Skadi's Jambeaux +1"} sets.Idle.MDT = {head="Whirlpool Mask",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring", body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Shadow Ring",ring2="Epona's Ring", back="Mollusca Mantle",waist="Resolute Belt",legs="Nahtirah Trousers",feet="Skadi's Jambeaux +1"} send_command('input /macro book 6;wait .1;input /macro set 1') end function precast(spell) if sets.JA[spell.english] then equip(sets.JA[spell.english]) elseif spell.type=="WeaponSkill" then if sets.WS[spell.english] then equip(sets.WS[spell.english]) end if buffactive['sneak attack'] and buffactive['trick attack'] and sets.WS.SATA[spell.english] then equip(sets.WS.SATA[spell.english]) elseif buffactive['sneak attack'] and sets.WS.SA[spell.english] then equip(sets.WS.SA[spell.english]) elseif buffactive['trick attack'] and sets.WS.TA[spell.english] then equip(sets.WS.TA[spell.english]) end elseif string.find(spell.english,'Waltz') then equip(sets.JA.Waltz) end end function aftercast(spell) if player.status=='Engaged' then equip(sets.TP[TP_Set_Names[TP_Index]]) else equip(sets.Idle[Idle_Set_Names[Idle_Index]]) end end function status_change(new,old) if T{'Idle','Resting'}:contains(new) then equip(sets.Idle[Idle_Set_Names[Idle_Index]]) elseif new == 'Engaged' then equip(sets.TP[TP_Set_Names[TP_Index]]) end end function buff_change(buff,gain_or_loss) if buff=="Sneak Attack" then soloSA = gain_or_loss elseif buff=="Trick Attack" then soloTA = gain_or_loss end end function self_command(command) if command == 'Normal' then TP_Index = 1 send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----') status_change(player.status) elseif command == 'PDT' then TP_Index = 2 send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----') status_change(player.status) elseif command == 'MDT' then TP_Index = 3 send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----') status_change(player.status) elseif command == 'TH' then TP_Index = 4 send_command('@input /echo ----- TP Set changed to '..TP_Set_Names[TP_Index]..' -----') status_change(player.status) elseif command == 'Normal Idle' then Idle_Index = 1 send_command('@input /echo ----- Idle Set changed to '..Idle_Set_Names[Idle_Index]..' -----') status_change(player.status) elseif command == 'MDT Idle' then Idle_Index = 2 send_command('@input /echo ----- Idle Set changed to '..Idle_Set_Names[Idle_Index]..' -----') status_change(player.status) end end Thanks to Sharain and Flippant for sharing their knowledge. Any feedback would be greatly appreciated. As it is, it works perfectly and i'm able to do 95% of the things i wanted it to do. Until i learn how to add variables for different situations and buffs, it is finished. Next on my list is whm. For this i went to Gearswap Shop Thread at BG and found a file with the next lines: Code -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this. -- Initialization function for this job file. function get_sets() -- Load and initialize the include file. include('Mote-Include.lua') end -- Called when this job file is unloaded (eg: job change) function file_unload() if binds_on_unload then binds_on_unload() end end Honestly, i'm not sure how to work with this. I have a few questions for whoever would be kind enough to help out. -Am i supposed to have this other file in my data folder? -Which are the "supplementary files", and what should i do with them? -What exactly are these files for? Thanks in advance. Edit: figured out the first 2 questions. Carbuncle.Anesthesia
Offline
Question.
How can I get gearswap to differentiate between items based on augments? Let's say I have two dark rings with PDT +5 and two dark rings with MDT +5. How could I tell gearswap to equip the PDTs for my PDT set and my MDTs for my MDT set? Code set.PDT = {ring1={name="Dark Ring",augment="Physical Damage Taken -5%"},ring2={name="Dark Ring",augment="Physical Damage Taken -5%"}} set.PDT = {ring1={name="Dark Ring",augment="Magical Damage Taken -5%"},ring2={name="Dark Ring",augment="Magical Damage Taken -5%"}} ^ That should work, I think. Phoenix.Innina
Offline
Hi, I am using Motentens Gearswap.lua for SMN. I'm encountering a very small issue. Using his shortcuts, none of my bloodpacts are firing.
For example in my macro I have: /console gs c pact buffOffense in my chatlog it shows: >> /pet "Rolling Thunder" Seems like there may be an underlying target missing? I'm new to this. I really am stumped :( FYI: It's happening on all my ward/rage pacts for shortcuts. Siphon seems to work as intended. Thanks for reading. |
||
All FFXI content and images © 2002-2024 SQUARE ENIX CO., LTD. FINAL
FANTASY is a registered trademark of Square Enix Co., Ltd.
|