|
Gearswap Support Thread
By Sylph.Atigevomega 2014-01-12 20:44:54
Ok having an issue again and I'm not totally sure why. Basically my GS is locking me into my PDT set on war, even after hitting my toggle and it /echo in game the dd set. Can anyone help me, here is my pastebin:
http://pastebin.com/t4R24inf
Also is there a way to add a delay in GS? As in on my RNG one I'm afraid that the acc set is not actually procing if that makes sense....
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-01-12 21:07:04
Sylph.Atigevomega said: »Ok having an issue again and I'm not totally sure why. Basically my GS is locking me into my PDT set on war, even after hitting my toggle and it /echo in game the dd set. Can anyone help me, here is my pastebin:
http://pastebin.com/t4R24inf
Also is there a way to add a delay in GS? As in on my RNG one I'm afraid that the acc set is not actually procing if that makes sense....
In the case that you use 'toggle DT' and sets.aftercast.TP is currently sets.TP.PDT, you are sending a function to equip sets.aftercast.TP (which we know is equal to sets.TP.PDT) on line 97 rather than, I assume as you'd like to, setting sets.aftercast.TP to sets.TP.DD.
I'm kinda guessing here, I don't know anything about Lua ^_^
Server: Asura
Game: FFXI
Posts: 373
By Asura.Aikchan 2014-01-12 21:38:10
Sylph.Atigevomega said: »Ok having an issue again and I'm not totally sure why. Basically my GS is locking me into my PDT set on war, even after hitting my toggle and it /echo in game the dd set. Can anyone help me, here is my pastebin:
http://pastebin.com/t4R24inf
Also is there a way to add a delay in GS? As in on my RNG one I'm afraid that the acc set is not actually procing if that makes sense.... Code
if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
end
have to be :
Code
if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
equip(sets.aftercast.TP)
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
end
you DW have the same problem w/ the Equip... you press it and "nothing happens" till the next action
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-01-12 22:30:39
He should not need the equip line twice. He has it on line 100 for the DT toggle; but he does have to change line 109 to the same thing for the DW toggle to work.
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6187
By Lakshmi.Byrth 2014-01-13 15:47:01
No, Aikchan's edit was correct. It's true that you could move the equip command to after the if/elseif/end, but the important part is "sets.aftercast.TP = sets.TP.DD"
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-01-13 16:02:32
My point was that he already has the equip command after the if/elseif/end (line 100), so if he copy and pastes the above, he's just going to process it twice every time. All he needs is to change is line 97 to "sets.aftercast.tp=sets.TP.DD".
Additionally, to fix the DW, all he needs it to change is line 109 to "equip(sets.aftercast.TP)".
Or in fact, just switch those two lines around.
By Sylph.Atigevomega 2014-01-14 09:46:38
Code if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
equip(sets.aftercast.TP)
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
end
Ok I did this, and it works, mostly. However, say, I am in town and testing gear sets, I hit my macro and boom I am in PDT, nice. Now i hit my macro again, boom I am in TP gear, it does not put me into idle gear. Is there a part of the code I am missing to auto put me into engage/idle/resting etc sets?
Cerberus.Conagh
Server: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-01-15 19:25:51
Sylph.Atigevomega said: »if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
equip(sets.aftercast.TP)
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
end
try
Code if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
equip(sets.aftercast.TP)
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
if new=='Engaged' then
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
else
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.Idle)
send_command('@input /echo BEAT *** SET ON!')
end
end
Server: Asura
Game: FFXI
Posts: 373
By Asura.Aikchan 2014-01-15 20:11:02
the only error I see in Conagh's code is that: use "player.status" instead "new"
not sure if that's what you want... it will put you from DD to PDT while idle, and if you're not engage when you do it again, should switch you to idle Code
if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
equip(sets.aftercast.TP)
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
if player.status =='Engaged' then
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
else
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.Idle)
send_command('@input /echo BEAT *** SET ON!')
end
end
end
Cerberus.Conagh
Server: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-01-21 13:28:54
the only error I see in Conagh's code is that: use "player.status" instead "new"
not sure if that's what you want... it will put you from DD to PDT while idle, and if you're not engage when you do it again, should switch you to idle Code
if command == 'toggle DT' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.DW then
sets.aftercast.TP = sets.TP.PDT
equip(sets.aftercast.TP)
send_command('@input /echo PDT SET ON!')
elseif sets.aftercast.TP == sets.TP.PDT then
if player.status =='Engaged' then
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.TP)
send_command('@input /echo BEAT *** SET ON!')
else
sets.aftercast.TP = sets.TP.DD
equip(sets.aftercast.Idle)
send_command('@input /echo BEAT *** SET ON!')
end
end
end
Both work, I snipped a piece of my code that uses Current status and defines it as "new" I like shortcuts :3
Cerberus.Conagh
Server: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-01-21 13:32:11
Code function aftercast(spell,act)
if new == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.TP[sets.TP.index[TP_ind]])
else
equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
end
function equip_TP_set()
equip(sets.TP[sets.TP.index[TP_ind]])
end
function self_command(command)
if command == 'toggle TP set' then
TP_ind = TP_ind +1
if TP_ind > #sets.TP.index then TP_ind = 1 end
send_command('@input /echo <----- TP Set changed to '..sets.TP.index[TP_ind]..' ----->')
equip(sets.TP[sets.TP.index[TP_ind]])
elseif command == 'toggle Earring set' then
Earring_ind = Earring_ind +1
if Earring_ind > #sets.Earring.index then Earring_ind = 1 end
send_command('@input /echo <----- Earring Set changed to '..sets.Earring.index[Earring_ind]..' ----->')
equip(sets.Earring[sets.Earring.index[Earring_ind]])
elseif command == 'toggle Idle set' then
Idle_ind = Idle_ind +1
if Idle_ind > #sets.Idle.index then Idle_ind = 1 end
send_command('@input /echo <----- Idle Set changed to '..sets.Idle.index[Idle_ind]..' ----->')
equip(sets.Idle[sets.Idle.index[Idle_ind]])
elseif command == 'toggle Req set' then
Requiescat_ind = Requiescat_ind +1
if Requiescat_ind > #sets.Requiescat.index then Requiescat_ind = 1 end
send_command('@input /echo <----- Requiescat Set changed to '..sets.Requiescat.index[Requiescat_ind]..' ----->')
elseif command == 'toggle CDC set' then
ChantDuCygne_ind = ChantDuCygne_ind +1
if ChantDuCygne_ind > #sets.ChantDuCygne.index then ChantDuCygne_ind = 1 end
send_command('@input /echo <----- Chant du Cygne Set changed to '..sets.ChantDuCygne.index[ChantDuCygne_ind]..' ----->')
elseif command == 'equip TP set' then
equip_TP_set()
elseif command == 'equip Idle set' then
equip_Idle_set()
end
end
I use this and I have no issues, this is loosely built on Prothescars Gearswap but I added little things within sets.
Code --TP Sets--
sets.TP = {}
sets.TP.index = {'Standard', 'AccuracyLite', 'AccuracyMid', 'AccuracyHigh', 'AccuracyExtreme', 'AccuracyFull', 'DT', 'DTAccuracy'}
--1=Standard, 2=AccuracyLite, 3=AccuracyMid, 4=AccuracyHigh, 5=AccuracyEx, 6=AccuracyFull, 7=DT, 8=DTAccuracy--
TP_ind = 1
sets.TP.Standard = set_combine(sets.Earring[sets.Earring.index[Earring_ind]],{ammo="Cheruski needle",
head="Thurandaut chapeau +1",neck="Asperity necklace",
body="Thaumas coat",hands="Iuitl Wristbands",ring2="Epona's ring",ring1="Rajas ring",
back="Atheling mantle",waist="Twilight belt",legs="Iuitl tights",feet="Manibozho boots"})
You can place an Index check within a Combine rule, which I thought was kinda cool :x
Cerberus.Conagh
Server: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-01-21 17:03:00
That said, using new is a little buggy, where as "player.status" works everytime so I amended my GS for this :£ Thanks for the Hot tip!
Ragnarok.Flippant
Server: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-01-21 20:28:48
You can place an Index check within a Combine rule, which I thought was kinda cool :x
Although you can do this, you may want to be aware that it is, from inside get_sets(), not dynamically changing. get_sets() is only called once and each value is interpreted at that time. If you change a variable used in a set later, the set will not be updated.
You could (re)define the set inside a function that could then be regularly called to update it appropriately. Could also possibly call get_sets() from inside a function in order to update the all sets, but I am not familiar enough know of any unwanted consequences or to think of a way to declare your variables at the beginning that won't also re-declare them when called again.
On a side note, I suggest avoiding redundant code. There should ideally be one function that handles your idle/engaged sets and everywhere else should then call that function. This way, your sets are far more maintainable.
Server: Phoenix
Game: FFXI
Posts: 1
By Phoenix.Abigheadhum 2014-01-22 02:28:55
can someone help me with this >_< in spellcast, it's easy to use variables to store results from certain condition rules then get to the final set i want to equip, how can i make that happen in gearswap? for example: weapon: GS, SJ: SAM, Low accuracy, Low buff, then i get GS-SAM-LowAcc-LowBuff set. Thx in advance!
Ragnarok.Sharain
Server: Ragnarok
Game: FFXI
Posts: 88
By Ragnarok.Sharain 2014-01-22 04:58:05
Phoenix.Abigheadhum said: »can someone help me with this >_< in spellcast, it's easy to use variables to store results from certain condition rules then get to the final set i want to equip, how can i make that happen in gearswap? for example: weapon: GS, SJ: SAM, Low accuracy, Low buff, then i get GS-SAM-LowAcc-LowBuff set. Thx in advance! Something like this should work (I'm a newbie to gearswap as well, but I'm using something like this for branching for different ws with different acc levels):
Code sub_index = 1
weapon_index = 1
acc_index = 1
buff_index = 1
weapons = {GS, scythe}
subs = {war, sam}
acc = {LowAcc, MediumAcc, HighAcc}
buffs = {LowBuff, MediumBuff, HighBuff}
--Then define the sets:
sets.TP = {}
sets.TP['GS'] = {stuff you wear when you're using GS}
sets.TP['scythe'] = {stuff you wear when you're using scythe}
-- Then define children with set_combine
sets.TP['GS']['war'] = set_combine(sets.TP['GS'], {stuff you only use when your sub is war})
and so on, finally you'll have sets like sets.TP['GS']['sam'][LowAcc][LowBuff]
Then you need
Code function status_change(new,old)
if T{'Idle','Resting'}:contains(new) then
something
elseif new == 'Engaged' then
equip(sets.TP[weapons[weapon_index]][subs[sub_index]][acc[acc_index]][buffs[buff_index]])
end
end
and in self_command
Code function self_command(command)
if command == 'toggle weapon' then
weapon_index = weapon_index +1
if weapon_index > #weapons then weapon_index = 1 end
-- same for all the indexes
end
You can find the sub automatically of course, make it check on loading and set accordingly. Weapon could also check when engage and change sets accordingly. But that could cause an issue if you change weapons midfight.
By andy1110 2014-01-22 11:08:06
ty so much! i'm getting the idea, i will give it a try later! weapon could also check means something like this? if player.equipment.main == 'Ragnarok' then weapon_index = 1, what would happen when i change weapons midfight? maintenance atm, cant test it lol
Leviathan.Arcon
VIP
Server: Leviathan
Game: FFXI
Posts: 666
By Leviathan.Arcon 2014-01-22 13:03:20
Just fyi: Code weapon_index = weapon_index +1
if weapon_index > #weapons then weapon_index = 1 end
This can be rewritten to: Code weapon_index = (weapon_index % #weapons) + 1
[+]
Hades.Triet
Server: Hades
Game: FFXI
Posts: 1615
By Hades.Triet 2014-01-22 14:22:58
Curious is there a way to set it up so that you have your engaged set, lets say PDT, and it detect if you are being targeted by a spell (or someone within range of you) to have it automatically switch to a MDT set until the spell hits you? Or is that too far fetched?
Fenrir.Jinjo
VIP
Server: Fenrir
Game: FFXI
Posts: 2269
By Fenrir.Jinjo 2014-01-22 14:39:32
It's possible, but it'd take significant effort to make it work properly and you'd likely need to be familiar with Lua to tune it to what you specifically need.
Lakshmi.Byrth
VIP
Server: Lakshmi
Game: FFXI
Posts: 6187
By Lakshmi.Byrth 2014-01-22 14:42:19
Yeah, there is no built-in functionality that would allow that. GearSwap does not have an event that informs you when there is an action targetting you. However, it would not be impossible for a user to make one.
Asura.Gabba
Server: Asura
Game: FFXI
Posts: 86
By Asura.Gabba 2014-01-22 15:54:06
Curious is there a way to set it up so that you have your engaged set, lets say PDT, and it detect if you are being targeted by a spell (or someone within range of you) to have it automatically switch to a MDT set until the spell hits you? Or is that too far fetched?
...that's making it like a bot, is not in the same category as "gear swaps", you could have 4 Macros for 1 ws depending the conditions, GS helps to just have 1, but you still decide when to WS.
Swapping gear in response to some mob action is botting (not that no ones have a stun bot or healing bot...)
Carbuncle.Anesthesia
Server: Carbuncle
Game: FFXI
Posts: 845
By Carbuncle.Anesthesia 2014-01-22 16:07:57
Curious is there a way to set it up so that you have your engaged set, lets say PDT, and it detect if you are being targeted by a spell (or someone within range of you) to have it automatically switch to a MDT set until the spell hits you? Or is that too far fetched?
...that's making it like a bot, is not in the same category as "gear swaps", you could have 4 Macros for 1 ws depending the conditions, GS helps to just have 1, but you still decide when to WS.
Swapping gear in response to some mob action is botting (not that no ones have a stun bot or healing bot...)
And...?
The discussion is regarding technicality, not morality.
[+]
Asura.Gabba
Server: Asura
Game: FFXI
Posts: 86
By Asura.Gabba 2014-01-22 16:17:16
Carbuncle.Anesthesia said: »Curious is there a way to set it up so that you have your engaged set, lets say PDT, and it detect if you are being targeted by a spell (or someone within range of you) to have it automatically switch to a MDT set until the spell hits you? Or is that too far fetched?
...that's making it like a bot, is not in the same category as "gear swaps", you could have 4 Macros for 1 ws depending the conditions, GS helps to just have 1, but you still decide when to WS.
Swapping gear in response to some mob action is botting (not that no ones have a stun bot or healing bot...)
And...?
The discussion is regarding technicality, not morality.
sorry my master forgot this place is to make/create bots...
Carbuncle.Anesthesia
Server: Carbuncle
Game: FFXI
Posts: 845
By Carbuncle.Anesthesia 2014-01-22 16:17:59
as long as you know your place
Cerberus.Conagh
Server: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-01-22 16:28:06
Ragnarok.Flippant said: »You can place an Index check within a Combine rule, which I thought was kinda cool :x
Although you can do this, you may want to be aware that it is, from inside get_sets(), not dynamically changing. get_sets() is only called once and each value is interpreted at that time. If you change a variable used in a set later, the set will not be updated.
You could (re)define the set inside a function that could then be regularly called to update it appropriately. Could also possibly call get_sets() from inside a function in order to update the all sets, but I am not familiar enough know of any unwanted consequences or to think of a way to declare your variables at the beginning that won't also re-declare them when called again.
On a side note, I suggest avoiding redundant code. There should ideally be one function that handles your idle/engaged sets and everywhere else should then call that function. This way, your sets are far more maintainable.
It might not be the "cleanest" method, however once the earring set is defined, it seems to work everytime in every situation, until I come across an instance where this does not work, I won't be changing it.
However for the interests of learning, could you show an example of the coding you are talking about so we can see a working example and perhaps use this in the future ~
Hades.Triet
Server: Hades
Game: FFXI
Posts: 1615
By Hades.Triet 2014-01-22 17:28:28
Well I was more so wondering for another reason, not botting.
For instance you have PDT set, MDT set and TP set. You decide to solo something like Azdaja. Is it possible, when engaged, to equip your TP set when you HP >75%. If its below that then you TP in PDT set and when incoming nukes it switches to MDT set vs. having to toggle between sets while meleeing and having to cycle through them. Unless there is a way to switch to specific sets, which there probably is? Didn't make it seem to be seen as botting.
By Selindrile 2014-01-23 00:39:08
I notice things like "/ma cure4 me" don't work under gearswap like they did in spellcast, do I have to write all those thousands of alias's myself? or is there a way to get that functionality back, I know it was mentioned that gearswap does it, but I guess it's not innate like it was in spellcast. Or should I leave spellcast running but with an empty XML or will that cause conflicts?
Edit: Tried running both, and the spellcast alias do seem to work, and nothing crashes however anything that spellcasts alias fixes, gearswap doesn't swap gear for, which, I suppose I should've expected.
Lakshmi.Rooks
Administrator
Server: Lakshmi
Game: FFXI
Posts: 1566
By Lakshmi.Rooks 2014-01-23 00:59:00
I notice things like "/ma cure4 me" don't work under gearswap
Have you looked at Shortcuts? It handles that part of Spellcast.
By Selindrile 2014-01-23 01:16:20
I have not, I'll look into it, thanks.
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.
|
|