|
Gearswap Support Thread
Asura.Loire
サーバ: Asura
Game: FFXI
Posts: 563
By Asura.Loire 2015-04-27 10:19:26
If this has been asked before Sorry.... However, I am swapping gear to fast when skill chaining with others and myself. I don’t see the Animation and others say the same thing, but I know I am doing it at the proper time.
An example would be great thanks!
The animation won't show up if you have effects off during battle. Skillchain damage doesn't show up in chat log if you blink. Check your settings and try when having lockstyle on.
Edit: actually, when rereading your post I'm a little confused what you mean. It doesn't matter if you swap gear too fast, you will still skillchain.
I cannot see the animation of the skillchain... I am also not seeing the dmg.
Lockstyle only works if I don’t use Shurikens, as I still blink even if lockstyle is on. So before I used GS I use to give my In-game macros a wait command to allow the animation catch-up to the gear swaps even the in game will cause this to happen.
It is a simple fix to allow a wait before you switch back to TP gear.
Does that clear it up, Sorry I confuse many people all the time, especially when typing. As it was said already, it doesn't matter if you do not see the sc animation itself. If you swap gear when the animation is going off you won't visibly see it and it won't show up in the traditional chatlog but it will still register. You would need to use dressup/blinkmenot to fully lock your gear to see it or use battlemod to alter the chatlog paraing to see it.
[+]
By inkydo 2015-04-27 12:30:27
As it was said already, it doesn't matter if you do not see the sc animation itself. If you swap gear when the animation is going off you won't visibly see it and it won't show up in the traditional chatlog but it will still register. You would need to use dressup/blinkmenot to fully lock your gear to see it or use battlemod to alter the chatlog paraing to see it.
Sorry if the question was asked, but answering it with dressup/blinkmenot, wasn't what I was asking.
I know all the above, its not the point.
First off I don't like them. I like the in-game Lockstyle much better as it is Cleaner, and its a preference thing.
It is really a issue only nin has at this point, Cause SE wont fix it or cant fix it.
Anyways if there is no way to add a /wait to the timing of swapping gear. Then just say so, however I find it very hard to believe it cant be done.
I don't know maybe you never want to do that someone can say that as well.
I am simply just trying to pick the brains of the community, and truthfully some really smart people.
Its funny as I find it so much fun sitting for hours configuring my Gear lua's. Yes, I am weird, but it feels like such a accomplishment to finish one up, that works the way you want.
Asura.Loire
サーバ: Asura
Game: FFXI
Posts: 563
By Asura.Loire 2015-04-27 13:26:54
As it was said already, it doesn't matter if you do not see the sc animation itself. If you swap gear when the animation is going off you won't visibly see it and it won't show up in the traditional chatlog but it will still register. You would need to use dressup/blinkmenot to fully lock your gear to see it or use battlemod to alter the chatlog paraing to see it.
Sorry if the question was asked, but answering it with dressup/blinkmenot, wasn't what I was asking.
I know all the above, its not the point.
First off I don't like them. I like the in-game Lockstyle much better as it is Cleaner, and its a preference thing.
It is really a issue only nin has at this point, Cause SE wont fix it or cant fix it.
Anyways if there is no way to add a /wait to the timing of swapping gear. Then just say so, however I find it very hard to believe it cant be done.
I don't know maybe you never want to do that someone can say that as well.
I am simply just trying to pick the brains of the community, and truthfully some really smart people.
Its funny as I find it so much fun sitting for hours configuring my Gear lua's. Yes, I am weird, but it feels like such a accomplishment to finish one up, that works the way you want. You hadn't been precise in what you needed done so the blinkmenot/dressup suggestion was an alternative to allow you to both see the animation and dmg in default chatlog. Options would be to globaly add a delay in ws aftercast which I am sure is doable in some fashion though I personally do not know the syntax for it. Other then that you do have the option to run battlemod with or without any of its filters in simplified or non-simplified mode to at least see the dmg show up in chatlog. That or hold out to SE to fix the ammo blink issue.
[+]
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2015-04-27 16:24:26
As it was said already, it doesn't matter if you do not see the sc animation itself. If you swap gear when the animation is going off you won't visibly see it and it won't show up in the traditional chatlog but it will still register. You would need to use dressup/blinkmenot to fully lock your gear to see it or use battlemod to alter the chatlog paraing to see it.
Sorry if the question was asked, but answering it with dressup/blinkmenot, wasn't what I was asking.
I know all the above, its not the point.
First off I don't like them. I like the in-game Lockstyle much better as it is Cleaner, and its a preference thing.
It is really a issue only nin has at this point, Cause SE wont fix it or cant fix it.
Anyways if there is no way to add a /wait to the timing of swapping gear. Then just say so, however I find it very hard to believe it cant be done.
I don't know maybe you never want to do that someone can say that as well.
I am simply just trying to pick the brains of the community, and truthfully some really smart people.
Its funny as I find it so much fun sitting for hours configuring my Gear lua's. Yes, I am weird, but it feels like such a accomplishment to finish one up, that works the way you want.
Personally, I'd go with one of the options Loire listed, but you can try one of these. Note that they might not work, as I can't test them now.
This one is for Mote's. Code
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
eventArgs.handled = true
send_command('@wait 1.5;gs c update')
end
end
If you don't use Mote's, this may work. Code
function aftercast(spell, action)
if spell.type == 'WeaponSkill' then
disable('ammo')
send_command('@wait 1.5;gs c reset_ammo_state')
end
end
function self_command(cmdParams, eventArgs)
if cmdParams[1] == 'reset_ammo_state' then
enable('ammo')
end
end
Neither are copy + paste solutions. You'll have to work whichever one you want to try out into your lua very carefully. The timing may also need tweaking, as I randomly chose 1.5 seconds.
Quetzalcoatl.Eithin
サーバ: Quetzalcoatl
Game: FFXI
Posts: 10
By Quetzalcoatl.Eithin 2015-04-27 21:31:47
I do have augmented Helios and Telchine.
Thank you for testing.
サーバ: Odin
Game: FFXI
Posts: 170
By Odin.Quixacotl 2015-04-28 06:04:38
Quetzalcoatl.Eithin said: »I do have augmented Helios and Telchine.
Thank you for testing. In the past, GS had problems equipping augmented Alluvion-Skirmish gear. Again, I'm not sure if this issue has been resolved or not. There is a fallback system but you'll need to do a bit of edit work.
First equip all your Telchine gear then type //gs export. You'll need to repeat this step again for the Helios gear.
Now look in the export folder and you'll see the lua files you just created. These files contain the augmented stats which you'll need for your main lua.
Copy this code, paste the augments for each gear from the exported files into the appropriate gear.slot accordingly. Replace lines 201-220 user_setup() with your new code. Code
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'Acc', 'Refresh', 'Learning')
state.WeaponskillMode:options('Normal', 'Acc')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT', 'Learning')
-- Augmented Gear --
-- examples only. your stats will be different.
gear.IdleHead = {name="Helios Band", augments={'"Mag.Atk.Bns."+25','"Occult Acumen"+10','Mag. crit. hit dmg. +5%'}}
gear.IdleFeet = {name="Helios Boots", augments={'(your augmented stats here)'}}
gear.HealingHead = {name="Telchine Cap", augments={'(your augmented stats)'}}
gear.HealingBody = {name="Telchine Chasuble", augments={'(your augmented stats)'}}
gear.HealingHands = {name="Telchine Gloves", augments={'(your augmented stats)'}}
gear.HealingLegs = {name="Telchine Braconi", augments={'(your augmented stats)'}}
gear.HealingFeet = {name="Telchine Pigaches", augments={'(your augmented stats)'}}
-- Additional local binds
send_command('bind ^` input /ja "Chain Affinity" <me>')
send_command('bind !` input /ja "Efflux" <me>')
send_command('bind @` input /ja "Burst Affinity" <me>')
update_combat_form()
select_default_macro_book()
end
Then replace the appropriate sets with these codes. Code
sets.midcast['Blue Magic'].Healing = {
head=gear.HealingHead,
ear1="Lifestorm Earring", ear2="Loquacious Earring",
body=gear.HealingBody, hands=gear.HealingHands,
ring1="Aquasoul Ring", ring2="Asklepian Ring",
back="Swith Cape +1", waist="Chuq'aba Belt",
legs=gear.HealingLegs, feet=gear.HealingFeet}
sets.idle = {ammo="Impatiens",
head=gear.IdleHead, neck="Wiglen Gorget",
ear1="Enchanter Earring +1", ear2="Loquacious Earring",
body="Hagondes Coat +1", hands="Hagondes Cuffs",
ring1="Sheltered Ring", ring2="Paguroidea Ring",
back="Cornflower Cape", waist="Aswang Sash",
legs="Crimson Cuisses", feet=gear.IdleFeet}
By inkydo 2015-04-28 12:14:49
Quetzalcoatl.Orestes said: »Personally, I'd go with one of the options Loire listed, but you can try one of these. Note that they might not work, as I can't test them now.
This one is for Mote's.
Code
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
eventArgs.handled = true
send_command('@wait 1.5;gs c update')
end
end
Yes i do think i am building from Motes... so thanks i will play around with it!!
Quetzalcoatl.Eithin
サーバ: Quetzalcoatl
Game: FFXI
Posts: 10
By Quetzalcoatl.Eithin 2015-04-30 08:13:35
Thank you sir!
サーバ: Odin
Game: FFXI
Posts: 170
By Odin.Quixacotl 2015-05-03 14:16:58
Here's another good Gearswap tutorial I've found to date. /node/145
Depending on your lua, you'll use custom-commands to switch to the various mode-types (Normal, Acc, PDT, etc). Exactly what those commands are, and how they are handled, differs with each author and lua.
If you are using Kinematics then the basic controls are:
F9 - Cycles Offense modes. Options are typically Normal and Acc.
F10 - Turns on PDT mode.
F11 - Turns on MDT mode.
Ctrl-F11 - Cycles Casting modes. Options are typically Normal and Resistant (aka Macc).
F12 - Displays your current status and updates your gear.
A more detailed list of Kinematic's commands can be found on his Wiki page here.
I'm not sure why you'd want to put a wait command for a Maneuver but here's an example for the GS wait command: Code send_command('@wait .5;@input /ja "Wind Maneuver"') -- Shortcuts will autocomplete <me>.
サーバ: Fenrir
Game: FFXI
Posts: 11681
By Fenrir.Nightfyre 2015-05-05 18:39:29
Do new inputs still override any mid/aftercast processing like they did in Spellcast?
By kenshynofshiva 2015-05-05 18:57:37
Any way to check bst charges? or if the actual pet spell is ready?
Asura.Sechs
サーバ: Asura
Game: FFXI
Posts: 10088
By Asura.Sechs 2015-05-07 05:00:40
I already posted elsewhere but sharing the strange issue here as well in hope some people have a clue what's happening.
Generic Description
Gearswap unequips my grip during midcast
More Details
1) I precast with Marin Staff +1 and Vivid Strap
2) Midcast sets don't have any main or sub selected (main/sub fields missing) yet the result is that I midcast with Marin Staf +1 and no grip
3) I tried to put Marin Staff +1 and Vivid Strap in my midcast sets, but result is the same
Example setsCode
sets.precast.Magic = {main={name="Marin Staff +1",priority=1}, sub={name="Vivid Strap",priority=2}, ammo="Impatiens",
head="Nahtirah Hat", neck="Voltsurge Torque", ear1="Loquacious Earring", ear2="Enchanter Earring +1",
body="Vanir Cotehardie", hands="Gendewitha Gages +1", ring1="Weatherspoon Ring", ring2="Prolix Ring",
back="Swith Cape +1", waist="Witful Belt", legs="Artsieq Hose", feet="Regal Pumps +1"}
--------------------
sets.midcast.recast = {main={name="Marin Staff +1",priority=1}, sub={name="Vivid Strap",priority=2}, ammo="Incantor Stone",
head="Nahtirah Hat", neck="Voltsurge Torque", ear1="Loquacious Earring", ear2="Enchanter Earring +1",
body="Vanir Cotehardie", hands="Gendewitha Gages +1", ring1="Weatherspoon Ring", ring2="Prolix Ring",
back="Swith Cape +1", waist="Cetl Belt", legs="Artsieq Hose", feet="Regal Pumps +1"}
sets.midcast.stormspells = set_combine(sets.midcast.recast, {hands="Telchine Gloves", feet="Pedagogy Loafers +1"})
sets.midcast.enhancing = {main={name="Kirin's Pole",priority=1}, sub={name="Fulcio Grip",priority=2}, ammo="Savant's Treatise",
head="Befouled Crown", neck="Colossus's torque", ear1="Andoaa Earring",
body="Pedagogy Gown +1", hands="Telchine Gloves",
waist="Olympus Sash", legs="Academic's Pants +1", feet="Regal Pumps +1"}
sets.midcast['Stoneskin'] = set_combine(sets.midcast.recast, {waist="Siegel Sash"})
sets.midcast.rege = set_combine(sets.midcast.recast, {main="Coeus", head="Arbatel Bonnet", body="Telchine Chasuble", hands="Telchine Gloves", back="Bookworm's Cape"})
I'll add a Showswaps screenshot as well.
As you can see Gearswap doesn't display any error at all.
It's like when the Precast staff doesn't change in midcast, for some reason Gearswap decide to unequips the grip.
Asura.Sechs
サーバ: Asura
Game: FFXI
Posts: 10088
By Asura.Sechs 2015-05-07 05:10:06
Ok, I think I have solved it.
The issue was in the priority system of the precast.
Appearently numbers were swapped around, I shoul've put 2 on staff and 1 on grip.
Or, more simply, leave the priority for staff but remove the priority system for grip.
Now everything looks like it's working again, as far as I can tell.
By Selindrile 2015-05-07 20:00:49
Nightfyre: It doesn't cancel midcast/postcast processing in Gearswap however it may not be in the right set at the right time if you input too quickly without some sort of check in pretarget so it doesn't swap in the new set, that said, if your checks are too stringent you may find it cancelling casts you really want to go through with, I've modified and updated Motes files quite a bit, if you're interested can hit me up in game or here, but here's my fix to this issue, this won't let a spell fire unless it's cooldown is under 1 second remaining, along with some other things, I placed this in user-globals using my updated version of Mote's files but it could be placed many places:
Code --Prevents swapping if the ability is on cooldown
function user_pretarget (spell)
if spell.type == 'WeaponSkill' then
if buffactive['amnesia'] then
cancel_spell()
return
end
elseif spell.action_type == 'Ability' then
local abil_recasts = windower.ffxi.get_ability_recasts()
if abil_recasts[spell.recast_id] > 1 and not spell.recast_id == 231 then
cancel_spell()
return
end
elseif spell.action_type == 'Magic' then
if buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
send_command('input /item "Echo Drops" <me>')
return
end
local spell_recasts = windower.ffxi.get_spell_recasts()
if spell_recasts[spell.recast_id] > 100 then
cancel_spell()
return
end
end
end
Sechs: I've also found that if you leave a spot blank in precast, sometimes I cannot get that spot to swap in regardless of what I put in midcast, I've fixed that in the past by simply putting something, (anything) in precast, and then it works in midcast, still unsure why it happens at times.
[+]
サーバ: Fenrir
Game: FFXI
Posts: 11681
By Fenrir.Nightfyre 2015-05-07 23:24:43
Nightfyre: It doesn't cancel midcast/postcast processing in Gearswap Good.
Quote: however it may not be in the right set at the right time if you input too quickly without some sort of check in pretarget so it doesn't swap in the new set That's nothing new to me, I had something similar going with Spellcast. This should be significantly less cumbersome though, since I'm not forced to work around the system's limitations to nearly the same extent.
サーバ: Phoenix
Game: FFXI
Posts: 82
By Phoenix.Raistlinmaj 2015-05-09 06:03:35
I am having an issue with my BLM gs, I created a Bokura style toggle for my nuking sets, but now I don't swap into any of them, nuking in fastcast gear sucks,lol. I pretty much followed the same coding as my PLD gs toggle functions which work fine. Can anyone give me some examples for the midcast function coding, any help much appreciated.
Code Nuking_sets = {'MAB','Macc','CMP'}
Nuking_Ind = 1
sets.midcast.MAB = {main="Keraunos",sub="Wizzan Grip",ammo="Ghastly Tathlum +1",
head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Novio Earring",
body="Hagondes Coat +1",hands="Wicce Gloves",ring1="Shiva Ring",ring2="Shiva Ring",
back="Bane Cape",waist="Maniacus Sash",
legs="Hagondes Pants +1",feet="Umbani Boots"}
sets.midcast.Macc = {main="Keraunos",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Novio Earring",
body="Wicce Coat +1",hands="Helios Gloves",ring1="Shiva Ring",ring2="Shiva Ring",
back="Bane Cape",waist="Yamabuki-no-Obi",
legs="Hagondes Pants +1",feet="Umbani Boots"}
sets.midcast.CMP = {main="Keraunos",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Novio Earring",
body="Spaekona's Coat +1",hands="Wicce Gloves",ring1="Shiva Ring",ring2="Shiva Ring",
back="Bane Cape",waist="Yamabuki-no-Obi",
legs="Hagondes Pants +1",feet="Umbani Boots"}
Code function midcast(spell)
if AMII[spell.english] then
weathercheck(spell.element,sets.midcast[Nuking_sets[Nuking_Ind]])
equip({head="Archmage's Petasos",feet="Archmage's Sabots"})
end
if string.find(spell.english,'Cur') then
weathercheck(spell.element,sets.midcast.Cure)
end
if spell.english == 'Impact' then
local tempset = sets.midcast[spell.skill]
tempset['body'] = 'Twilight Cloak'
tempset['head'] = 'empty'
weathercheck(spell.element,tempset)
end
if sets.midcast[spell.name] then
equip(sets.midcast[spell.name])
end
if spell.type == 'ElementalMagic' then
weathercheck(spell.element,sets.midcast[Nuking_sets[Nuking_Ind]])
elseif spell.skill then
weathercheck(spell.element,sets.midcast[spell.skill])
end
Code function self_command(command)
if command == 'toggle Nuking set' then
if Nuking_Ind == 1 then
Nuking_Ind = 2
send_command('@input /echo Macc SET')
elseif Nuking_Ind == 2 then
Nuking_Ind = 3
send_command('@input /echo CMP SET')
elseif Nuking_Ind == 3 then
Nuking_Ind = 1
send_command('@input /echo MAB SET')
end
end
Seraph.Jacaut
サーバ: Seraph
Game: FFXI
Posts: 383
By Seraph.Jacaut 2015-05-09 22:33:27
Here's another good Gearswap tutorial I've found to date. /node/145
Depending on your lua, you'll use custom-commands to switch to the various mode-types (Normal, Acc, PDT, etc). Exactly what those commands are, and how they are handled, differs with each author and lua.
If you are using Kinematics then the basic controls are:
F9 - Cycles Offense modes. Options are typically Normal and Acc.
F10 - Turns on PDT mode.
F11 - Turns on MDT mode.
Ctrl-F11 - Cycles Casting modes. Options are typically Normal and Resistant (aka Macc).
F12 - Displays your current status and updates your gear.
A more detailed list of Kinematic's commands can be found on his Wiki page here.
I'm not sure why you'd want to put a wait command for a Maneuver but here's an example for the GS wait command: Code send_command('@wait .5;@input /ja "Wind Maneuver"') -- Shortcuts will autocomplete <me>. ive been trying to figure out how to switch to acc and such ty!
サーバ: Odin
Game: FFXI
Posts: 170
By Odin.Quixacotl 2015-05-10 01:36:43
Phoenix.Raistlinmaj said: »I am having an issue with my BLM gs, I created a Bokura style toggle for my nuking sets, but now I don't swap into any of them, nuking in fastcast gear sucks,lol. I pretty much followed the same coding as my PLD gs toggle functions which work fine. Can anyone give me some examples for the midcast function coding, any help much appreciated. Code function midcast(spell)
if AMII[spell.english] then
weathercheck(spell.element,sets.midcast[Nuking_sets[Nuking_Ind]])
equip({head="Archmage's Petasos",feet="Archmage's Sabots"})
end
if string.find(spell.english,'Cur') then
weathercheck(spell.element,sets.midcast.Cure)
end
if spell.english == 'Impact' then
local tempset = sets.midcast[spell.skill]
tempset['body'] = 'Twilight Cloak'
tempset['head'] = 'empty'
weathercheck(spell.element,tempset)
end
if sets.midcast[spell.name] then
equip(sets.midcast[spell.name])
end
if spell.type == 'ElementalMagic' then
weathercheck(spell.element,sets.midcast[Nuking_sets[Nuking_Ind]])
elseif spell.skill then
weathercheck(spell.element,sets.midcast[spell.skill])
end Line 18 is an improper syntax so it will always be false. It should be... Code
if spell.skill == 'Elemental Magic' then
You can also substitute this code for less redundancy. Code
function self_command(command)
if command == 'toggle Nuking set' then
Nuking_Ind = Nuking_Ind +1
if Nuking_Ind > #Nuking_sets then
Nuking_Ind = 1
end
add_to_chat(8,'----- You are in '..Nuking_sets[Nuking_Ind]..' Mode. -----')
end
end
サーバ: Odin
Game: FFXI
Posts: 170
By Odin.Quixacotl 2015-05-10 02:02:27
Any way to check bst charges? or if the actual pet spell is ready? It's possible to create a code to count Ready charges. If you look at Kinematic's SCH example, it contains this code for tracking Strategems which works on the same principle. Code
-- Gets the current number of available strategems based on the recast remaining
-- and the level of the sch.
function get_current_strategem_count()
-- returns recast in seconds.
local allRecasts = windower.ffxi.get_ability_recasts()
local stratsRecast = allRecasts[231]
local maxStrategems = (player.main_job_level + 10) / 20
local fullRechargeTime = 4*60
local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)
return currentCharges
end
The bad news is, Mote once posted that it's an unused function which he left in there for testing purposes but never got around to implementing and testing. He did say that it's usable and workable if you want to play around with it. It's just a matter of someone taking over where he left off. Sorry to say, math.floor is beyond my knowledge of Lua.
By Iryoku 2015-05-10 04:18:25
Sorry to say, math.floor is beyond my knowledge of Lua. math.floor is just the standard floor function. It returns the value of its argument rounded toward negative infinity, i.e. rounded "down" to the nearest (representable) integer. For positive arguments it's the same as taking the argument and truncating, or chopping off, the fractional part. It has a counterpart called the ceiling function (math.ceil in Lua), which, as you might guess, returns its argument rounded toward positive infinity, i.e. rounded "up" to the nearest integer.
サーバ: Phoenix
Game: FFXI
Posts: 82
By Phoenix.Raistlinmaj 2015-05-10 08:31:11
That did the trick, thanks Quix
Ragnarok.Flanteus
サーバ: Ragnarok
Game: FFXI
Posts: 82
By Ragnarok.Flanteus 2015-05-12 16:30:57
Hello,
I have a problem with sets.midcast.Pet.Weaponskill for my automaton it does swap equipments (verified by showswaps) but with no effect on weaponskill (+1000 TP)! what gives?
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-05-13 04:41:14
Any way to check bst charges? or if the actual pet spell is ready? It's possible to create a code to count Ready charges. If you look at Kinematic's SCH example, it contains this code for tracking Strategems which works on the same principle. Code
-- Gets the current number of available strategems based on the recast remaining
-- and the level of the sch.
function get_current_strategem_count()
-- returns recast in seconds.
local allRecasts = windower.ffxi.get_ability_recasts()
local stratsRecast = allRecasts[231]
local maxStrategems = (player.main_job_level + 10) / 20
local fullRechargeTime = 4*60
local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)
return currentCharges
end
The bad news is, Mote once posted that it's an unused function which he left in there for testing purposes but never got around to implementing and testing. He did say that it's usable and workable if you want to play around with it. It's just a matter of someone taking over where he left off. Sorry to say, math.floor is beyond my knowledge of Lua. To break down what this function does:
local allRecasts = windower.ffxi.get_ability_recasts() points to the file "ability_recasts" inside /Windower4/res/
local stratsRecast = allRecasts[231] singles out recast ID 231 from the aforementioned ability_recasts
local maxStrategems = (player.main_job_level + 10) / 20 indicates your maximum strategem count based on your level, e.g. Lv60 SCH ((60+10)/20)=3
local fullRechargeTime = 4*60 merely indicates how long it takes to completely recharge all strategems, which is always 4 minutes (4*60, where 60 indicates seconds) regardless of SCH level.
local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime) this is intended to provide your currently available strategems.
Example:
Lv99 SCH, 3 strats used currently.
At 99 SCH, recharge timer is 48 sec/strat.
Say we're looking for number available 30 seconds after initial use.
stratsRecast = (3*48 - 30) = 114
maxStrategems = (99+10) / 20 = 109 / 20 = 5
currentCharges = math.floor(5 - 5*114/240) = math.floor(5 - 2.375) = math.floor(2.625) = 2
I actually have this implemented in my SCH file when I use a strategem. Here's the code I have: Code function handle_strategems(cmdParams)
if not cmdParams[2] then
add_to_chat(123,'Error: No strategem command given.')
return
end
local currentStrats = get_current_strategem_count()
local newStratCount = currentStrats - 1
if currentStrats > 0 then
add_to_chat(122, '***Current Charges Available: ['..newStratCount..']***')
else
add_to_chat(122, '***Out of strategems! Canceling...***')
return
end
local strategem = cmdParams[2]:lower()
if strategem == 'light' then
if buffactive['light arts'] then
send_command('input /ja "Addendum: White" <me>')
elseif buffactive['addendum: white'] then
add_to_chat(122,'Error: Addendum: White is already active.')
else
send_command('input /ja "Light Arts" <me>')
end
elseif strategem == 'dark' then
if buffactive['dark arts'] then
send_command('input /ja "Addendum: Black" <me>')
elseif buffactive['addendum: black'] then
add_to_chat(122,'Error: Addendum: Black is already active.')
else
send_command('input /ja "Dark Arts" <me>')
end
elseif buffactive['light arts'] or buffactive['addendum: white'] then
if strategem == 'cost' then
send_command('@input /ja Penury <me>')
elseif strategem == 'speed' then
send_command('@input /ja Celerity <me>')
elseif strategem == 'aoe' then
send_command('@input /ja Accession <me>')
elseif strategem == 'power' then
send_command('@input /ja Rapture <me>')
elseif strategem == 'duration' then
send_command('@input /ja Perpetuance <me>')
elseif strategem == 'accuracy' then
send_command('@input /ja Altruism <me>')
elseif strategem == 'enmity' then
send_command('@input /ja Tranquility <me>')
elseif strategem == 'skillchain' then
add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
elseif strategem == 'addendum' then
send_command('@input /ja "Addendum: White" <me>')
else
add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
end
elseif buffactive['dark arts'] or buffactive['addendum: black'] then
if strategem == 'cost' then
send_command('@input /ja Parsimony <me>')
elseif strategem == 'speed' then
send_command('@input /ja Alacrity <me>')
elseif strategem == 'aoe' then
send_command('@input /ja Manifestation <me>')
elseif strategem == 'power' then
send_command('@input /ja Ebullience <me>')
elseif strategem == 'duration' then
add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
elseif strategem == 'accuracy' then
send_command('@input /ja Focalization <me>')
elseif strategem == 'enmity' then
send_command('@input /ja Equanimity <me>')
elseif strategem == 'skillchain' then
send_command('@input /ja Immanence <me>')
elseif strategem == 'addendum' then
send_command('@input /ja "Addendum: Black" <me>')
else
add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
end
else
add_to_chat(123,'No arts has been activated yet.')
end
end What this spits out on my 99BLM/49SCH is this:
I am not familiar *at all* with BST and how Ready factors into Gearswap, but I think your function should look something like this: Code function get_current_ready_count()
local allRecasts = windower.ffxi.get_ability_recasts()
local readyRecast = allRecasts[255]
local maxCharges = 3
local fullRechargeTime = 3*20
local currentCharges = math.floor(maxCharges - maxCharges * readyRecast / fullRechargeTime)
return currentCharges
end That fullRechargeTime = 3*20 assumes max merits and augmented Desultor Tassets. If you really want to get fancy, 3*15 adding in Charmer's Merlin.
As for how to tie that in with your own file, that I couldn't tell you. I could probably figure it out, but I'll leave that to someone with more knowledge of BST GS.
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-05-13 05:13:55
Ragnarok.Flanteus said: »Hello,
I have a problem with sets.midcast.Pet.Weaponskill for my automaton it does swap equipments (verified by showswaps) but with no effect on weaponskill (+1000 TP)! what gives? Either a typo on your part when posting this, or it could completely solve your issue: if you're using the PUP.lua from Kinematics, the set must be called sets.midcast.Pet.WeaponSkill, not sets.midcast.Pet.Weaponskill
Annoying, but capitals do matter. If you have it capitalized properly in your file, no one will be able to fix it unless you post it, preferably using PasteBin.
Ragnarok.Flanteus
サーバ: Ragnarok
Game: FFXI
Posts: 82
By Ragnarok.Flanteus 2015-05-13 10:48:32
Ragnarok.Flanteus said: »Hello,
I have a problem with sets.midcast.Pet.Weaponskill for my automaton it does swap equipments (verified by showswaps) but with no effect on weaponskill (+1000 TP)! what gives? Either a typo on your part when posting this, or it could completely solve your issue: if you're using the PUP.lua from Kinematics, the set must be called sets.midcast.Pet.WeaponSkill, not sets.midcast.Pet.Weaponskill
Annoying, but capitals do matter. If you have it capitalized properly in your file, no one will be able to fix it unless you post it, preferably using PasteBin.
Yes I'm using PUP.lua from Kinematics, the thing is it was actually written as WeaponSkill but the gear wasn't swapping at all, so I changed it to Weaponskill and Showswap command started showing the gear swap in chat under pet_midcast but it wasn't actually happening...
Code sets.midcast.Pet.WeaponSkill = {head="Karagoz Capello", hands="Karagoz Guanti", legs="Karagoz Pantaloni",
back={ name="Dispersal Mantle", augments={'STR+4','Pet: TP Bonus+480','"Martial Arts"+17',}}}
the test was done with Cannibal Blade which has a fixed dmg that is only modified by TP and automaton melee skill, so adding an extra 1000 TP should be very noticeable and consistent increase.
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-05-13 16:05:56
Ragnarok.Flanteus said: »Ragnarok.Flanteus said: »Hello,
I have a problem with sets.midcast.Pet.Weaponskill for my automaton it does swap equipments (verified by showswaps) but with no effect on weaponskill (+1000 TP)! what gives? Either a typo on your part when posting this, or it could completely solve your issue: if you're using the PUP.lua from Kinematics, the set must be called sets.midcast.Pet.WeaponSkill, not sets.midcast.Pet.Weaponskill
Annoying, but capitals do matter. If you have it capitalized properly in your file, no one will be able to fix it unless you post it, preferably using PasteBin.
Yes I'm using PUP.lua from Kinematics, the thing is it was actually written as WeaponSkill but the gear wasn't swapping at all, so I changed it to Weaponskill and Showswap command started showing the gear swap in chat under pet_midcast but it wasn't actually happening...
Code sets.midcast.Pet.WeaponSkill = {head="Karagoz Capello", hands="Karagoz Guanti", legs="Karagoz Pantaloni",
back={ name="Dispersal Mantle", augments={'STR+4','Pet: TP Bonus+480','"Martial Arts"+17',}}}
the test was done with Cannibal Blade which has a fixed dmg that is only modified by TP and automaton melee skill, so adding an extra 1000 TP should be very noticeable and consistent increase. I'm at work right now, but I'll attempt to root it out if no one else does when i get home. Can you please upload your specific file to Pastebin so I can work directly with it?
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.
|
|