|
Gearswap Support Thread
Sylph.Leafe
Serveur: Sylph
Game: FFXI
Posts: 27
By Sylph.Leafe 2014-12-11 08:39:27
I'm having an issue where my aftercast sets are not properly equipping after I perform a job ability or weaponskill. I turned showswaps on to be sure, and it shows gear equipping for precast or when I'm switching between modes like engaged/idle/resting, but it does not show swaps taking place for aftercast.
Just as an example, if I use Focus it will equip my Anchor. Crown +1 properly for the JA, but it will leave the piece equipped afterwards instead of switching back to my TP/Idle piece. If I perform a WS it will properly equip my WS set, but I will continue to fight in this set until I manually hit a macro to switch back into my TP set.
My .lua was working properly before the December version update and I've not edited it in any way since then, so has something changed that I may need to account for or is this a known issue?
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-12-11 11:55:35
I haven't heard anything from anyone else that would suggest that something has changed to cause this. Seeing your file might help, though.
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-11 15:07:29
Ragnarok.Flippant said: »I haven't heard anything from anyone else that would suggest that something has changed to cause this. Seeing your file might help, though.
Actually this happens to me also since the update on sam (I added a rule so after a WS event it sends "gs c TP" to counteract it temporarily...
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-11 15:16:16
ActionPacket = require 'actions'
ActionPacket.open_listener(function (act)
local actionpacket = ActionPacket.new(act)
for target in actionpacket:get_targets() do
for action in target:get_actions() do
local event = action:get_basic_info()
if event.type == 'damage' then
windower.add_to_chat(8,'Damage: '..tostring(event.value))
end
end
end
end)
Got home to test this, this actually produces an error
Attempt to index global"ActionPacket" (a nil value)
:3
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-11 17:39:23
ok thanks to reading the actions packets and the examples provided I've managed to throw together a messy code to get the "nuts and bolts" however I had an issue with making event 1, 2, 3 etc stating they would error.
leaving it as 1 it include critical hits which throws it off, reading the libraries it talks about the reaction (8 being the code for just melee no crit, no blocks etc).
If I could either add this so it would update o every single attack (this gives no average and isn't as efficient as I'd like or a method for it to add the last 8 attack rounds together and average them.
As it stands it gives relatively accurate returns on targets etc when it doesn't crit (minus anomalous results here and there).
Any ideas?
Here's a Snippet ~
Code
windower.register_event('action',function (act)
local actor = act.actor_id
local category = act.category
local param = act.param
local player = windower.ffxi.get_player()
local damage = act.targets[1].actions[1].param
local hits = act.targets[1].action_count
if ((actor == (player.id or player.index))) then
if category == 1 then
if hits == 1 then
if damage > 575 then
add_to_chat(167,'pDIF : [2.25]')
elseif damage < 575 and damage > 510 then
add_to_chat(167,'pDIF : [2.00]')
elseif damage < 510 then
add_to_chat(167,'pDIF under [1.75]')
end
elseif hits == 2 then
if damage > 575*2 then
add_to_chat(167,'pDIF : [2.25] divided by 2 hits')
elseif damage < 575*2 and damage > 510*2 then
add_to_chat(167,'pDIF : [2.00]')
elseif damage < 510*2 then
add_to_chat(167,'pDIF under [1.75]')
end
elseif hits == 3 then
if damage > 575*3 then
add_to_chat(167,'pDIF : [2.25] divided by 3 hits')
elseif damage < 575*3 and damage > 510*3 then
add_to_chat(167,'pDIF : [2.00]')
elseif damage < 510*3 then
add_to_chat(167,'pDIF under [1.75]')
end
elseif hits == 4 then
if damage > 575*4 then
add_to_chat(167,'pDIF : [2.25] divided by 4 hits')
elseif damage < 575*4 and damage > 510*4 then
add_to_chat(167,'pDIF : [2.00]')
elseif damage < 510*4 then
add_to_chat(167,'pDIF under [1.75]')
end
end
end
end
end)
By Iryoku 2014-12-12 04:57:30
First, you should be doing this in a loop and summing the damage to get an average, right now you're assuming every hit does the same damage, which isn't the case. Also, actor == (player.id or player.index) doesn't do what you think it does, it's functionally equivalent to actor == player.id. Finally, as you said, you can check if reaction is 8 to check for noncritical hits.
Code
windower.register_event('action',function (act)
local actor = act.actor_id
local category = act.category
local player = windower.ffxi.get_player()
if actor == player.id and category == 1 then
local total_hits = act.targets[1].action_count
local avg_damage = 0;
local avg_hits = 0;
for i = 1, i <= total_hits do
if act.targets[1].actions[i].reaction == 8 then
avg_damage = avg_damage + act.targets[1].actions[i].param
avg_hits = avg_hits + 1
end
end
avg_damage = avg_damage / avg_hits
-- use avg_damage and avg_hits to calculate whatever you want.
end
end)
Note: this is completely untested, may have syntax or logic errors.
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-12 06:56:35
First, you should be doing this in a loop and summing the damage to get an average, right now you're assuming every hit does the same damage, which isn't the case. Also, actor == (player.id or player.index) doesn't do what you think it does, it's functionally equivalent to actor == player.id. Finally, as you said, you can check if reaction is 8 to check for noncritical hits.
Code
windower.register_event('action',function (act)
local actor = act.actor_id
local category = act.category
local player = windower.ffxi.get_player()
if actor == player.id and category == 1 then
local total_hits = act.targets[1].action_count
local avg_damage = 0;
local avg_hits = 0;
for i = 1, i <= total_hits do
if act.targets[1].actions[i].reaction == 8 then
avg_damage = avg_damage + act.targets[1].actions[i].param
avg_hits = avg_hits + 1
end
end
avg_damage = avg_damage / avg_hits
-- use avg_damage and avg_hits to calculate whatever you want.
end
end)
Note: this is completely untested, may have syntax or logic errors.
Edited cos lolwtf Phones Text
I managed to get the code for reactions - I had not managed to loop it however (Your usage of i and <= seems to of nailed this, I use something similar in what Flippant helped (most of) with for WHM)
Will Test this later.
Sylph.Leafe
Serveur: Sylph
Game: FFXI
Posts: 27
By Sylph.Leafe 2014-12-12 12:11:53
Ragnarok.Flippant said: »I haven't heard anything from anyone else that would suggest that something has changed to cause this. Seeing your file might help, though.
Sorry for the delayed response, wanted to confirm that the issue was still occurring before troubling people further with this. In hindsight I probably should've included my .lua to begin with. Here's the whole thing:
Code function get_sets()
CP_Index = 1
Reive_Index = 1
-- Precast Sets
-- JOB ABILITY SETS
sets.precast = {}
sets.precast.Boost = {hands="Anch. Gloves +1"}
sets.precast.Focus = {head="Anchor. Crown +1"}
sets.precast.Dodge = {feet="Anch. Gaiters +1"}
sets.precast.Counterstance = {feet="Hes. Gaiters +1"}
sets.precast.Mantra = {feet="Hes. Gaiters +1"}
sets.precast['Hundred Fists'] = {legs="Hes. Hose +1"}
sets.precast['Formless Strikes'] = {body="Hes. Cyclas +1"}
sets.precast.FC = {ear1="Loquac. Earring", ear2="Enchntr. Earring +1", ring1="Weather. Ring", ring2="Prolix Ring"}
sets.precast['Utsusemi: Ichi'] = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
sets.precast['Utsusemi: Ni'] = set_combine(sets.precast['Utsusemi: Ichi'])
-- Chakra Sets
sets.precast.ChakraBase = {ammo="Brigantia Pebble", head="Uk'uxkaj Cap", neck="Tjukurrpa Medal", ear1="Terra's Pearl",
ear2="Soil Pearl", body="Anch. Cyclas +1", hands="Hes. Gloves +1", ring1="Titan Ring",
ring2="Titan Ring", back="Iximulew Cape", waist="Caudata Belt", legs="Kaabnax Trousers",
feet="Thur. Boots +1"}
sets.precast.ChakraDark = set_combine(sets.precast.ChakraBase, {back="Shadow Mantle"})
-- Chi Blast Set
sets.precast['Chi Blast'] = {head="Anchor. Crown +1", body="Anch. Cyclas +1", hands="Slither Gloves +1", ring1="Dark Ring",
ring2="Dark Ring", legs="Quiahuiz Trousers", feet="Anch. Gaiters +1"}
-- Waltz Sets
sets.precast.SelfWaltz = {ammo="Brigantia Pebble", head="Uk'uxkaj Cap", neck="Tjukurrpa Medal", ear1="Terra's Pearl",
ear2="Soil Pearl", body="Anch. Cyclas +1", hands="Slither Gloves +1", ring1="Titan Ring",
ring2="Titan Ring", back="Iximulew Cape", waist="Caudata Belt", legs="Kaabnax Trousers",
feet="Anch. Gaiters +1"}
sets.precast.SelfWaltzDark = set_combine(sets.precast.SelfWaltz, {back="Shadow Mantle"})
sets.precast.Waltz = {head="Uk'uxkaj Cap", body="Anch. Cyclas +1", hands="Slither Gloves +1", ring1="Dark Ring",
ring2="Dark Ring", legs="Hes. Hose +1", feet="Anch. Gaiters +1"}
-- Swipe/Lunge Sets
sets.precast.Lunge = {ammo="Erlene's Notebook", neck="Atzintli Necklace", ear1="Hecate's Earring", ear2="Friomisi Earring",
ring1="Acumen Ring", back="Toro Cape", waist="Yamabuki-no-Obi"}
sets.precast.Swipe = set_combine(sets.precast.Lunge)
--WEAPON SKILL SETS
-- Victory Smite Base Set
sets.precast.VSDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Rancor Collar",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Anch. Gloves +1",
ring1="Pyrosoul Ring", ring2="Epona's Ring", back="Buquwik Cape", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Victory Smite Accuracy Set
sets.precast.VSAcc = set_combine(sets.precast.VSDD, {body="Anch. Cyclas +1", hands="Hes. Gloves +1", legs="Hes. Hose +1",
feet="Qaaxo Leggings"})
-- Victory Smite Impetus Set
sets.precast.VSImpetus = set_combine(sets.precast.VSDD, {body="Tantra Cyclas +2"})
-- Victory Smite Impetus + Accuracy Set
sets.precast.VSImpacc = set_combine(sets.precast.VSImpetus, {body="Anch. Cyclas +1", hands="Hes. Gloves +1", legs="Hes. Hose +1",
feet="Qaaxo Leggings"})
-- Default Set for Victory Smite
sets.precast['Victory Smite'] = sets.precast.VSDD
-- Shijin Spiral Base Set
sets.precast.SSDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Justiciar's Torque",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Ramuh Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Hes. Hose +1", feet="Qaaxo Leggings"}
-- Shijin Spiral Accuracy Set
sets.precast.SSAcc = set_combine(sets.precast.SSDD, {ammo="Honed Tathlum", ring1="Rajas Ring"})
-- Default Set for Shijin Spiral
sets.precast['Shijin Spiral'] = sets.precast.SSDD
-- Final Heaven Base Set
sets.precast.FHDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Light Gorget",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Spiral Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Thur. Boots +1"}
-- Final Heaven Accuracy Set
sets.precast.FHAcc = set_combine(sets.precast.FHDD, {back="Anchoret's Mantle", legs="Kaabnax Trousers", feet="Qaaxo Leggings"})
-- Default Set for Final Heaven
sets.precast['Final Heaven'] = sets.precast.FHDD
-- Ascetic's Fury Base Set
sets.precast.AFDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Rancor Collar",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Anch. Gloves +1",
ring1="Spiral Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Kaabnax Trousers", feet="Hes. Gaiters +1"}
-- Ascetic's Fury Accuracy Set
sets.precast.AFAcc = set_combine(sets.precast.AFDD, {ammo="Honed Tathlum", body="Anch. Cyclas +1", hands="Hes. Gloves +1",
back="Anchoret's Mantle"})
-- Ascetic's Fury Impetus Set
sets.precast.AFImpetus = set_combine(sets.precast.AFDD, {body="Tantra Cyclas +2"})
-- Default Set for Ascetic's Fury
sets.precast["Ascetic's Fury"] = sets.precast.AFDD
-- Asuran Fists Base Set
sets.precast.AsuranDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Justiciar's Torque",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Pyrosoul Ring", ring2="Spiral Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Asuran Fists Accuracy Set
sets.precast.AsuranAcc = set_combine(sets.precast.AsuranDD, {back="Anchoret's Mantle", legs="Qaaxo Tights", feet="Qaaxo Leggings"})
-- Default Set for Asuran Fists
sets.precast['Asuran Fists'] = sets.precast.AsuranDD
-- Spinning Attack Base Set
sets.precast.SpinningDD = {main="Spharai", ammo="Ginsen", head="Ejekamal Mask", neck="Justiciar's Torque",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Pyrosoul Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Spinning Attack Accuracy Set
sets.precast.SpinningAcc = set_combine(sets.precast.SpinningDD, {back="Anchoret's Mantle", legs="Qaaxo Tights"})
-- Default Set for Spinning Attack
sets.precast['Spinning Attack'] = sets.precast.SpinningDD
-- Tornado Kick Base Set
sets.precast.TKDD = {main="Spharai", ammo="Ginsen", head="Anchor. Crown +1", neck="Justiciar's Torque",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Spiral Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Tornado Kick Accuracy Set
sets.precast.TKAcc = set_combine(sets.precast.TKDD, {head="Ejekamal Mask", back="Anchoret's Mantle", legs="Qaaxo Tights"})
-- Default Set for Asuran Fists
sets.precast['Tornado Kick'] = sets.precast.TKDD
-- Dragon Kick Base Set
sets.precast.DKDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Justiciar's Torque",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Dragon Kick Accuracy Set
sets.precast.DKAcc = set_combine(sets.precast.DKDD, {body="Anch. Cyclas +1", back="Anchoret's Mantle", legs="Qaaxo Tights"})
-- Default Set for Dragon Kick
sets.precast['Dragon Kick'] = sets.precast.DKDD
-- Backhand Blow Base Set
sets.precast.BBDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Rancor Collar",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Backhand Blow Accuracy Set
sets.precast.BBAcc = set_combine(sets.precast.BBDD, {ammo="Honed Tathlum", body="Anch. Cyclas +1", legs="Qaaxo Tights"})
-- Default Set for Backhand Blow
sets.precast['Backhand Blow'] = sets.precast.BBDD
-- Combo Base Set
sets.precast.ComboDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Justiciar's Torque",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Combo Accuracy Set
sets.precast.ComboAcc = set_combine(sets.precast.ComboDD, {body="Anch. Cyclas +1", back="Anchoret's Mantle", legs="Qaaxo Tights"})
-- Default Set for Combo
sets.precast['Combo'] = sets.precast.ComboDD
-- Shoulder Tackle Base Set
sets.precast.STDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Asperity Necklace",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Spiral Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Thur. Boots +1"}
-- Shoulder Tackle Accuracy Set
sets.precast.STAcc = set_combine(sets.precast.STDD, {neck="Tjukurrpa Medal", back="Anchoret's Mantle", legs="Qaaxo Tights"})
-- Default Set for Shoulder Tackle
sets.precast['Shoulder Tackle'] = sets.precast.STDD
-- One Inch Punch Base Set
sets.precast.OneIPDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Asperity Necklace",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Spiral Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Thur. Boots +1"}
-- One Inch Punch Accuracy Set
sets.precast.OneIPAcc = set_combine(sets.precast.OneIPDD, {neck="Tjukurrpa Medal", back="Anchoret's Mantle", legs="Qaaxo Tights"})
-- Default Set for One Inch Punch
sets.precast['One Inch Punch'] = sets.precast.OneIPDD
-- Raging Fists Base Set
sets.precast.RFDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Justiciar's Torque",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Quiahuiz Trousers", feet="Hes. Gaiters +1"}
-- Raging Fists Accuracy Set
sets.precast.RFAcc = set_combine(sets.precast.RFDD, {back="Anchoret's Mantle", legs="Hes. Hose +1", feet="Qaaxo Leggings"})
-- Default Set for Raging Fists
sets.precast['Raging Fists'] = sets.precast.RFDD
-- Howling Fist Base Set
sets.precast.HowlingFDD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Justiciar's Torque",
ear1="Brutal Earring", ear2="Moonshade Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Caudata Belt",
legs="Hes. Hose +1", feet="Qaaxo Leggings"}
-- Howling Fist Accuracy Set
sets.precast.HowlingFAcc = set_combine(sets.precast.HowlingFDD, {body="Anch. Cyclas +1"})
-- Default Set for Howling Fist
sets.precast['Howling Fist'] = sets.precast.HowlingFDD
-- TP Sets
sets.TP = {}
sets.TP.DD = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Asperity Necklace",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Windbuffet Belt +1",
legs="Hes. Hose +1", feet="Anch. Gaiters +1"}
sets.TP.Acc = set_combine(sets.TP.DD, {head="Ejekamal Mask", hands="Hes. Gloves +1", legs="Qaaxo Tights", feet="Qaaxo Leggings"})
sets.TP.Fullacc = set_combine(sets.TP.Acc, {ammo="Honed Tathlum", body="Anch. Cyclas +1", back="Anchoret's Mantle",
waist="Anguinus Belt"})
sets.TP.Hybrid = set_combine(sets.TP.Acc, {neck="Twilight Torque", body="Otro. Harness +1", waist="Black Belt",
ring1="Dark Ring", ring2="Dark Ring", back="Mollusca Mantle",})
sets.TP.Impetus = set_combine(sets.TP.DD, {body="Tantra Cyclas +2", waist="Cetl Belt"})
sets.TP.Thaumas = set_combine(sets.TP.DD, {body="Thaumas Coat"})
--PDT/MDT Sets
sets.PDT = {head="Otronif Mask", neck="Twilight Torque", ear1="Colossus's Earring", ear2="Darkness Earring",
body="Otro. Harness +1", hands="Otronif Gloves +1", ring1="Dark Ring", ring2="Dark Ring",
back="Mollusca Mantle", waist="Black Belt", legs="Qaaxo Tights", feet="Qaaxo Leggings"}
sets.MDT = set_combine(sets.PDT, {})
--Situational Lock Sets
CP_Set_Names = {"Unlocked", "Locked"}
sets.CP = {}
sets.CP.Unlocked = {}
sets.CP.Locked = {back="Mecisto. Mantle"}
Reive_Set_Names = {"Unlocked", "Locked"}
sets.Reive = {}
sets.Reive.Unlocked = {}
sets.Reive.Locked = {neck="Adoulin's Refuge +1"}
-- Aftercast Sets
sets.aftercast = {}
sets.aftercast.TP = sets.TP.DD
sets.aftercast.Idle = set_combine(sets.aftercast.TP, {ammo="Brigantia Pebble", neck="Wiglen Gorget", ear1="Colossus's Earring",
ear2="Darkness Earring", ring1="Paguroidea Ring", ring2="Sheltered Ring", back="Repulse Mantle",
waist="Black Belt", feet="Hermes' Sandals"})
sets.aftercast.Regen = set_combine(sets.aftercast.Idle, {head="Oce. Headpiece +1", body="Hes. Cyclas +1", hands="Garden Bangles"})
sets.aftercast.Resting = set_combine(sets.aftercast.Regen, {back="Mollusca Mantle", legs="Qaaxo Tights", feet="Qaaxo Leggings"})
-- Variables
WaltzList = T{'Curing Waltz', 'Curing Waltz II', 'Curing Waltz III', 'Curing Waltz IV', 'Curing Waltz V', 'Divine Waltz', 'Divine Waltz II'}
ProtectList = T{'Protect', 'Protect II', 'Protect III', 'Protect IV', 'Protect V', 'Shell', 'Shell II', 'Shell III', 'Shell IV', 'Shell V',
'Protectra', 'Protectra II', 'Protectra III', 'Protectra IV', 'Protectra V', 'Shellra', 'Shellra II', 'Shellra III', 'Shellra IV', 'Shellra V'}
end
-- Gearset Rules
function precast(spell,action)
if spell.english == 'Spectral Jig' and (buffactive['Sneak'])
then send_command('cancel 71')
end
if spell.english == 'Victory Smite' then
if (buffactive['Impetus']) then
if sets.aftercast.TP == sets.TP.Acc then
sets.precast['Victory Smite'] = sets.precast.VSImpacc
elseif sets.aftercast.TP == sets.TP.Hybrid then
sets.precast['Victory Smite'] = sets.precast.VSImpacc
else
sets.precast['Victory Smite'] = sets.precast.VSImpetus
end
else
sets.precast['Victory Smite'] = sets.precast.VSDD
end
end
if spell.english == "Ascetic's Fury" then
if sets.aftercast.TP == sets.TP.Acc then
sets.precast["Ascetic's Fury"] = sets.precast.AFAcc
elseif sets.aftercast.TP == sets.TP.Hybrid then
sets.precast["Ascetic's Fury"] = sets.precast.AFAcc
elseif (buffactive['Impetus']) then
sets.precast["Ascetic's Fury"] = sets.precast.AFImpetus
else
sets.precast["Ascetic's Fury"] = sets.precast.AFDD
end
end
if spell.english == "Chakra" then
if world.day_element == 'Dark' then
equip(sets.precast.ChakraDark)
else
equip(sets.precast.ChakraBase)
end
end
if WaltzList:contains(spell.english) and spell.target.type == 'SELF' then
if world.day_element == 'Dark' then
equip(sets.precast.SelfWaltzDark)
else
equip(sets.precast.SelfWaltz)
end
elseif WaltzList:contains(spell.english) then
equip(sets.precast.Waltz)
end
if ProtectList:contains(spell.english) and spell.target.type == 'SELF' then
equip(set_combine(sets.precast.FC, {ring2="Sheltered Ring"}))
end
if spell.skill == 'Enhancing Magic' then
equip(sets.precast.FC)
elseif spell.skill == 'Divine Magic' then
equip(sets.precast.FC)
end
equip(sets.precast[spell.english])
end
function midcast(spell,action)
end
function aftercast(spell,action)
if CP_Index == 2 then disable('back') else enable('back') end
if Reive_Index == 2 then disable('neck') else enable('neck') end
if player.status =='Engaged' then
if sets.aftercast.TP == sets.TP.DD then
if (buffactive['Impetus']) then
if player.mp > 99 then
equip(set_combine(sets.TP.Impetus, {ring1="Oneiros Ring"}))
else
equip(sets.TP.Impetus)
end
else
if player.mp > 99 then
equip(set_combine(sets.aftercast.TP, {ring1="Oneiros Ring"}))
else
equip(sets.aftercast.TP)
end
end
elseif sets.aftercast.TP == sets.TP.Acc or sets.aftercast.TP == sets.TP.Fullacc or sets.aftercast.TP == sets.TP.Thaumas then
if player.mp > 99 then
equip(set_combine(sets.aftercast.TP, {ring1="Oneiros Ring"}))
else
equip(sets.aftercast.TP)
end
else
equip(sets.aftercast.TP)
end
else
equip(sets.aftercast.Idle)
end
end
function status_change(new,old)
if CP_Index == 2 then disable('back') else enable('back') end
if Reive_Index == 2 then disable('neck') else enable('neck') end
if new == 'Engaged' and (buffactive['Impetus']) then
if sets.aftercast.TP == sets.TP.DD then
if player.mp > 99 then
equip(set_combine(sets.TP.Impetus, {ring1="Oneiros Ring"}))
else
equip(sets.TP.Impetus)
end
end
elseif new == 'Engaged' then
if sets.aftercast.TP == sets.TP.DD or sets.aftercast.TP == sets.TP.Acc or sets.aftercast.TP == sets.TP.Fullacc or sets.aftercast.TP == sets.TP.Thaumas then
if player.mp > 99 then
equip(set_combine(sets.aftercast.TP, {ring1="Oneiros Ring"}))
else
equip(sets.aftercast.TP)
end
else
equip(sets.aftercast.TP)
end
elseif new == 'Resting' then
equip(sets.aftercast.Resting)
else
equip(sets.aftercast.Idle)
end
end
function buff_change(status,gain_or_loss)
if status == "Impetus" then
if gain_or_loss == "gain" then
if sets.aftercast.TP == sets.TP.DD then
equip(sets.TP.Impetus)
sets.aftercast.TP = sets.TP.Impetus
end
elseif gain_or_loss == "loss" then
if sets.aftercast.TP == sets.TP.Impetus then
equip(sets.TP.DD)
sets.aftercast.TP = sets.TP.DD
end
end
end
end
-- SE Macros /console gs c "command" [case sensitive]
function self_command(command)
if command == 'TP' then
equip(sets.TP.DD)
sets.aftercast.TP = sets.TP.DD
sets.precast['Victory Smite'] = sets.precast.VSDD
sets.precast['Shijin Spiral'] = sets.precast.SSDD
sets.precast['Final Heaven'] = sets.precast.FHDD
sets.precast['Asuran Fists'] = sets.precast.AsuranDD
sets.precast["Ascetic's Fury"] = sets.precast.AFDD
sets.precast['Spinning Attack'] = sets.precast.SpinningDD
sets.precast['Tornado Kick'] = sets.precast.TKDD
sets.precast['Dragon Kick'] = sets.precast.DKDD
sets.precast['Backhand Blow'] = sets.precast.BBDD
sets.precast['Combo'] = sets.precast.ComboDD
sets.precast['Raging Fists'] = sets.precast.RFDD
sets.precast['Howling Fist'] = sets.precast.HowlingFDD
sets.precast['Shoulder Tackle'] = sets.precast.STDD
sets.precast['One Inch Punch'] = sets.precast.OneIPDD
add_to_chat(158,'Equipping Gearset: TP')
elseif command == 'Acc' then
equip(sets.TP.Acc)
sets.aftercast.TP = sets.TP.Acc
sets.precast['Victory Smite'] = sets.precast.VSAcc
sets.precast['Shijin Spiral'] = sets.precast.SSAcc
sets.precast['Final Heaven'] = sets.precast.FHAcc
sets.precast['Asuran Fists'] = sets.precast.AsuranAcc
sets.precast["Ascetic's Fury"] = sets.precast.AFAcc
sets.precast['Spinning Attack'] = sets.precast.SpinningAcc
sets.precast['Tornado Kick'] = sets.precast.TKAcc
sets.precast['Dragon Kick'] = sets.precast.DKAcc
sets.precast['Backhand Blow'] = sets.precast.BBAcc
sets.precast['Combo'] = sets.precast.ComboAcc
sets.precast['Raging Fists'] = sets.precast.RFAcc
sets.precast['Howling Fist'] = sets.precast.HowlingFAcc
sets.precast['Shoulder Tackle'] = sets.precast.STAcc
sets.precast['One Inch Punch'] = sets.precast.OneIPAcc
add_to_chat(158,'Equipping Gearset: Acc')
elseif command == 'Fullacc' then
equip(sets.TP.Fullacc)
sets.aftercast.TP = sets.TP.Fullacc
sets.precast['Victory Smite'] = sets.precast.VSAcc
sets.precast['Shijin Spiral'] = sets.precast.SSAcc
sets.precast['Final Heaven'] = sets.precast.FHAcc
sets.precast['Asuran Fists'] = sets.precast.AsuranAcc
sets.precast["Ascetic's Fury"] = sets.precast.AFAcc
sets.precast['Spinning Attack'] = sets.precast.SpinningAcc
sets.precast['Tornado Kick'] = sets.precast.TKAcc
sets.precast['Dragon Kick'] = sets.precast.DKAcc
sets.precast['Backhand Blow'] = sets.precast.BBAcc
sets.precast['Combo'] = sets.precast.ComboAcc
sets.precast['Raging Fists'] = sets.precast.RFAcc
sets.precast['Howling Fist'] = sets.precast.HowlingFAcc
sets.precast['Shoulder Tackle'] = sets.precast.STAcc
sets.precast['One Inch Punch'] = sets.precast.OneIPAcc
add_to_chat(158,'Equipping Gearset: Max Acc')
elseif command == 'Hybrid' then
equip(sets.TP.Hybrid)
sets.aftercast.TP = sets.TP.Hybrid
sets.precast['Victory Smite'] = sets.precast.VSAcc
sets.precast['Shijin Spiral'] = sets.precast.SSAcc
sets.precast['Final Heaven'] = sets.precast.FHAcc
sets.precast['Asuran Fists'] = sets.precast.AsuranAcc
sets.precast["Ascetic's Fury"] = sets.precast.AFAcc
sets.precast['Spinning Attack'] = sets.precast.SpinningAcc
sets.precast['Tornado Kick'] = sets.precast.TKAcc
sets.precast['Dragon Kick'] = sets.precast.DKAcc
sets.precast['Backhand Blow'] = sets.precast.BBAcc
sets.precast['Combo'] = sets.precast.ComboAcc
sets.precast['Raging Fists'] = sets.precast.RFAcc
sets.precast['Howling Fist'] = sets.precast.HowlingFAcc
sets.precast['Shoulder Tackle'] = sets.precast.STAcc
sets.precast['One Inch Punch'] = sets.precast.OneIPAcc
add_to_chat(158,'Equipping Gearset: Acc-DT Hybrid')
elseif command == 'Impetus' then
equip(sets.TP.Impetus)
sets.aftercast.TP = sets.TP.Impetus
sets.precast['Victory Smite'] = sets.precast.VSImpetus
add_to_chat(158,'Equipping Gearset: Impetus')
elseif command == 'Thaumas' then
equip(sets.TP.Thaumas)
sets.aftercast.TP= sets.TP.Thaumas
sets.precast['Victory Smite'] = sets.precast.VSDD
sets.precast['Shijin Spiral'] = sets.precast.SSDD
sets.precast['Final Heaven'] = sets.precast.FHDD
sets.precast['Asuran Fists'] = sets.precast.AsuranDD
sets.precast["Ascetic's Fury"] = sets.precast.AFDD
sets.precast['Spinning Attack'] = sets.precast.SpinningDD
sets.precast['Tornado Kick'] = sets.precast.TKDD
sets.precast['Dragon Kick'] = sets.precast.DKDD
sets.precast['Backhand Blow'] = sets.precast.BBDD
sets.precast['Combo'] = sets.precast.ComboDD
sets.precast['Raging Fists'] = sets.precast.RFDD
sets.precast['Howling Fist'] = sets.precast.HowlingFDD
sets.precast['Shoulder Tackle'] = sets.precast.STDD
sets.precast['One Inch Punch'] = sets.precast.OneIPDD
add_to_chat(158,'Equipping Gearset: Thaumas')
elseif command == 'PDT' then
equip(sets.PDT)
sets.aftercast.TP = sets.PDT
sets.precast['Victory Smite'] = sets.precast.VSAcc
sets.precast['Shijin Spiral'] = sets.precast.SSAcc
sets.precast['Final Heaven'] = sets.precast.FHAcc
sets.precast['Asuran Fists'] = sets.precast.AsuranAcc
sets.precast["Ascetic's Fury"] = sets.precast.AFAcc
sets.precast['Spinning Attack'] = sets.precast.SpinningAcc
sets.precast['Tornado Kick'] = sets.precast.TKAcc
sets.precast['Dragon Kick'] = sets.precast.DKAcc
sets.precast['Backhand Blow'] = sets.precast.BBAcc
sets.precast['Combo'] = sets.precast.ComboAcc
sets.precast['Raging Fists'] = sets.precast.RFAcc
sets.precast['Howling Fist'] = sets.precast.HowlingFAcc
sets.precast['Shoulder Tackle'] = sets.precast.STAcc
sets.precast['One Inch Punch'] = sets.precast.OneIPAcc
add_to_chat(158,'Equipping Gearset: PDT')
elseif command == 'MDT' then
equip(sets.MDT)
sets.aftercast.TP = sets.MDT
add_to_chat(158,'Equipping Gearset: MDT')
elseif command == 'toggle CP set' then
CP_Index = CP_Index +1
if CP_Index > #CP_Set_Names then CP_Index = 1 end
send_command('@input /echo ----- CP Set is now '..CP_Set_Names[CP_Index]..' -----')
equip(sets.CP[CP_Set_Names[CP_Index]])
elseif command == 'toggle Reive set' then
Reive_Index = Reive_Index +1
if Reive_Index > #Reive_Set_Names then Reive_Index = 1 end
send_command('@input /echo ----- Reive Set is now '..Reive_Set_Names[Reive_Index]..' -----')
equip(sets.Reive[Reive_Set_Names[Reive_Index]])
end
end I had no experience with lua prior to gearswap, and I made this from what I learned by looking at a couple guides and a few examples of how others had done theirs. So I wouldn't be too surprised if there are some mistakes or inefficient coding in there (and I'm pretty sure there's a non-functional gearset or two that I never got around to finishing), but like I said this was working before the December update. Anyway thanks to anyone who might be willing to take a look at it, if you see anything that could be causing issues with my aftercast sets (or sets swapping in general) please let me know!
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-12-12 19:46:21
You do a number of odd things (and your buff_change function won't work, because gain_or_loss is boolean, true for gain), but that aside, I cannot reproduce your issue. Are there any commands or actions you do before this occurs, or even just after loading for the first time and using Focus, your aftercast does not work?
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-12 19:49:18
Ragnarok.Flippant said: »You do a number of odd things (and your buff_change function won't work, because gain_or_loss is boolean, true for gain), but that aside, I cannot reproduce your issue. Are there any commands or actions you do before this occurs, or even just after loading for the first time and using Focus, your aftercast does not work?
I just managed to replicate it on Windows 8 however,, not sure if this is the issue, used his copied file as is. Tried on Alt on Windows 7 - it worked perfectly fine.......????
Sylph.Leafe
Serveur: Sylph
Game: FFXI
Posts: 27
By Sylph.Leafe 2014-12-12 23:20:46
Ragnarok.Flippant said: »You do a number of odd things (and your buff_change function won't work, because gain_or_loss is boolean, true for gain) Honestly, I was expecting someone to say as much lol. It's probably a combination of me not knowing better/more efficient ways of doing certain things, and the way I would sort of frankenstein together pieces of different .lua files in an attempt to get it to work the way I wanted. Thanks for pointing out the issue with my buff_change, I'll need to look into that a bit more.
Ragnarok.Flippant said: »I cannot reproduce your issue. Are there any commands or actions you do before this occurs, or even just after loading for the first time and using Focus, your aftercast does not work? When I originally noticed the issue I was fighting mobs in one of the Gates zones, so I had switched to one of my Acc. sets, had my Mecisto. Mantle locked on, and had probably hit a few other macros along the way. However the issue seems to occur even when I'm just standing around in town.
Just now I switched my job to MNK, stepped outside of my Mog House, and waited for all items in my inventory to load. I loaded gearswap and my .lua file, enabled showswaps, and used Focus by selecting the ability from the Job Abilities menu (mostly to ensure it's not something in my macros that's interfering). Gearswap properly equipped my Anchor. Crown +1 before performing Focus, but it left the piece equipped afterwards instead of switching back to my idle piece.
Actually I did notice something interesting just now while testing this. If the recast timer for the ability is not up and I hit a macro that attempts to perform that job ability, gearswap will equip the precast set, I'll get the standard "Unable to use job ability." message in chat, and then sometimes it will equip the aftercast set. Almost just as often it will still get "stuck" in the precast gear though, and I can't really see a noticeable pattern to it. When the ability is successfully performed it always seems to get stuck in the precast set.
I just managed to replicate it on Windows 8 however,, not sure if this is the issue, used his copied file as is. Tried on Alt on Windows 7 - it worked perfectly fine.......???? That's interesting. For what it's worth I'm playing on a computer that's running Windows 7.
Also - thanks to both of you for actually taking the time to look into this for me. I really do appreciate it! :)
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2014-12-13 00:09:50
Since I can't seem to reproduce it, I just want to make sure that it's not some of the other stuff you're doing that I'm not used to
Load this:
Code function get_sets()
sets.precast = {}
sets.precast.Boost = {hands="Anch. Gloves +1"}
sets.precast.Focus = {head="Anchor. Crown +1"}
sets.precast.Dodge = {feet="Anch. Gaiters +1"}
sets.precast.Counterstance = {feet="Hes. Gaiters +1"}
sets.precast.Mantra = {feet="Hes. Gaiters +1"}
sets.precast['Hundred Fists'] = {legs="Hes. Hose +1"}
sets.precast['Formless Strikes'] = {body="Hes. Cyclas +1"}
sets.aftercast = {}
sets.aftercast.TP = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Asperity Necklace",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Windbuffet Belt +1",
legs="Hes. Hose +1", feet="Anch. Gaiters +1"}
sets.aftercast.Idle = set_combine(sets.aftercast.TP, {ammo="Brigantia Pebble", neck="Wiglen Gorget", ear1="Colossus's Earring",
ear2="Darkness Earring", ring1="Paguroidea Ring", ring2="Sheltered Ring", back="Repulse Mantle",
waist="Black Belt", feet="Hermes' Sandals"})
sets.aftercast.Resting = set_combine(sets.aftercast.Idle, {back="Mollusca Mantle", legs="Qaaxo Tights", feet="Qaaxo Leggings"})
end
function precast(spell,action)
equip(sets.precast[spell.english])
end
function aftercast(spell,action)
if player.status =='Engaged' then
equip(sets.aftercast.TP)
else
equip(sets.aftercast.Idle)
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.aftercast.TP)
elseif new == 'Resting' then
equip(sets.aftercast.Resting)
else
equip(sets.aftercast.Idle)
end
end
and if you are still having a problem after using any of those JAs whose sets are still listed, you may need to try reporting it on the Windower GitHub 'cause they'd be much better help if it comes down to that.
By Mozhat 2014-12-13 08:21:18
Is it just me or we have not had a windower update since 2 days before the update.
None of the GS commands show up in chat log.
SMN still don't work on the new BPs using GS.
I use macros to change gear between jobs because I want my pcs of gear not scattered every where. The scripts I made still work but don't show up in the chat log.
Any help here. Thx in advance.
Lakshmi.Byrth
VIP
Serveur: Lakshmi
Game: FFXI
Posts: 6184
By Lakshmi.Byrth 2014-12-13 08:33:43
You appear to be having proxy problems or antivirus problems. Something is blocking your connection to the windower servers.
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-13 12:01:32
Is it just me or we have not had a windower update since 2 days before the update.
None of the GS commands show up in chat log.
SMN still don't work on the new BPs using GS.
I use macros to change gear between jobs because I want my pcs of gear not scattered every where. The scripts I made still work but don't show up in the chat log.
Any help here. Thx in advance.
Uninstall Norton, this is currently known to be blocking the ports used for Windower. (Had this with a LS mate, uninstalling Norton followed by a Huge Windower update and fixed 99.9999% of issues)
And no, adding this to your whitelist does NOT SOLVE THE ISSUE Uninstall Norton if you use it and it will probably work fine.
By Mozhat 2014-12-13 12:24:56
Don't use Norton.[can't stand that ram hog pc of software]
Have Avast Internet Security. Disabled the shields and got the updates. Never had to do that before...hmm
Thanks for help everyone /smile
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-13 12:28:14
Don't use Norton.[can't stand that ram hog pc of software]
Have Avast Internet Security. Disabled the shields and got the updates. Never had to do that before...hmm
Thanks for help everyone /smile
Yeah it seems something in FFXI (Vanilla version) raised a Red FLag with Virus protection and thus anything manipulating data based on the process i.e Windower gets *** blocked by the filter.
By Mozhat 2014-12-13 13:01:33
? for Byrth
You think its possible to be able to use the Equipment sets[1-100] in Gearswap?
It would make it allot easier to edit the macros in stead of the GS script.
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-13 13:31:30
? for Byrth
You think its possible to be able to use the Equipment sets[1-100] in Gearswap?
It would make it allot easier to edit the macros in stead of the GS script.
Equipsets has alot of lag and delay inbuilt. While I can't speak for Byrth, you can just type the following in your "new set to be equipped" and then copy this new gear over your old set in your GS file in a matter of seconds.
//gs export lua
done!
However what you propose is entirely doable, but the amount of rework for one person would require adding a command for every single actions/packet event and then testing to see if it worked......................
:£
Odin.Tamoa
Serveur: Odin
Game: FFXI
Posts: 197
By Odin.Tamoa 2014-12-13 14:01:37
Not sure if this is the appropriate thread to post this, but trying anyway. Since the game update on Dec. 10th GS has been kind of sluggish and unreliable. I'll weaponskill and it won't swap back to tp gear, it's happening very often and is really annoying. This specific problem was something I disliked about spellcast, and I really like GS because I can count on one had the number of times it's happened. Up until 3 days ago, that is. I've made no changes whatsoever to any of my GS files.
Serveur: Odin
Game: FFXI
Posts: 2255
By Odin.Llewelyn 2014-12-13 14:06:45
Had that problem for a little as well, but it was only during a BC fight in Cirdas_U (might've happened a bit in a Yorcia_U BC fight as well, but don't remember). After that I stopped having that issue. Might be zone related somehow?
Odin.Tamoa
Serveur: Odin
Game: FFXI
Posts: 197
By Odin.Tamoa 2014-12-13 14:46:37
It's happened in salvage, Einherjar and in Qufim (while doing Kaggen). That's pretty much all I've done these last few days, too busy to play much this close to Christmas.
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-13 15:32:07
I'm getting this in every zone, however I added this in my GS to double ensure it swaps
Code elseif command == 'TP' then
add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
status_change(player.status)
Then here ~
Code if spell.type == "WeaponSkill" then
send_command('wait 0.3;gs c TP')
It's not perfect! But it definitely updates your status forcefully and checks your TP after WS in Green Party chat.
SO 0.3 seconds after a WS it send this command to the game (which works perfectly) so as long as you get a TP return value (should be 250~500 depending on JA / WS on SAM for example) then it updates your status which in turn triggers an event swapping you from W.E gear you're in (I.e makes the game think you went from idle to TP for example although without doing a if Idle check)
Sylph.Leafe
Serveur: Sylph
Game: FFXI
Posts: 27
By Sylph.Leafe 2014-12-13 18:47:54
Ragnarok.Flippant said: »Since I can't seem to reproduce it, I just want to make sure that it's not some of the other stuff you're doing that I'm not used to
Load this:
Code function get_sets()
sets.precast = {}
sets.precast.Boost = {hands="Anch. Gloves +1"}
sets.precast.Focus = {head="Anchor. Crown +1"}
sets.precast.Dodge = {feet="Anch. Gaiters +1"}
sets.precast.Counterstance = {feet="Hes. Gaiters +1"}
sets.precast.Mantra = {feet="Hes. Gaiters +1"}
sets.precast['Hundred Fists'] = {legs="Hes. Hose +1"}
sets.precast['Formless Strikes'] = {body="Hes. Cyclas +1"}
sets.aftercast = {}
sets.aftercast.TP = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Asperity Necklace",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Windbuffet Belt +1",
legs="Hes. Hose +1", feet="Anch. Gaiters +1"}
sets.aftercast.Idle = set_combine(sets.aftercast.TP, {ammo="Brigantia Pebble", neck="Wiglen Gorget", ear1="Colossus's Earring",
ear2="Darkness Earring", ring1="Paguroidea Ring", ring2="Sheltered Ring", back="Repulse Mantle",
waist="Black Belt", feet="Hermes' Sandals"})
sets.aftercast.Resting = set_combine(sets.aftercast.Idle, {back="Mollusca Mantle", legs="Qaaxo Tights", feet="Qaaxo Leggings"})
end
function precast(spell,action)
equip(sets.precast[spell.english])
end
function aftercast(spell,action)
if player.status =='Engaged' then
equip(sets.aftercast.TP)
else
equip(sets.aftercast.Idle)
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.aftercast.TP)
elseif new == 'Resting' then
equip(sets.aftercast.Resting)
else
equip(sets.aftercast.Idle)
end
end and if you are still having a problem after using any of those JAs whose sets are still listed, you may need to try reporting it on the Windower GitHub 'cause they'd be much better help if it comes down to that.
Just loaded up the lua you posted and the issue is still occurring with it the same as before (only JA that I didn't test was Hundred Fists). I suppose I'll head over to the GitHub as you suggested and see about reporting the issue there in a minute or so.
Some of the issues I'm seeing others mention on here do sound similar to mine (GS acting sluggish, not switching gear after a WS, etc.) only mine seems to be affecting my job abilities as well. I might play around with the code Conagh's posted and see if it helps anything on my end when I get a chance (busy, busy weekend for me).
I did try disabling my antivirus to see if Windower updated but it downloaded nothing for me. I do remember Windower updating right after the December version update, but I don't think it's downloaded anything in the past day or two if there's another update that was pushed more recently.
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-13 19:43:08
Ragnarok.Flippant said: »Since I can't seem to reproduce it, I just want to make sure that it's not some of the other stuff you're doing that I'm not used to
Load this:
Code function get_sets()
sets.precast = {}
sets.precast.Boost = {hands="Anch. Gloves +1"}
sets.precast.Focus = {head="Anchor. Crown +1"}
sets.precast.Dodge = {feet="Anch. Gaiters +1"}
sets.precast.Counterstance = {feet="Hes. Gaiters +1"}
sets.precast.Mantra = {feet="Hes. Gaiters +1"}
sets.precast['Hundred Fists'] = {legs="Hes. Hose +1"}
sets.precast['Formless Strikes'] = {body="Hes. Cyclas +1"}
sets.aftercast = {}
sets.aftercast.TP = {main="Spharai", ammo="Ginsen", head="Uk'uxkaj Cap", neck="Asperity Necklace",
ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Qaaxo Harness", hands="Hes. Gloves +1",
ring1="Rajas Ring", ring2="Epona's Ring", back="Atheling Mantle", waist="Windbuffet Belt +1",
legs="Hes. Hose +1", feet="Anch. Gaiters +1"}
sets.aftercast.Idle = set_combine(sets.aftercast.TP, {ammo="Brigantia Pebble", neck="Wiglen Gorget", ear1="Colossus's Earring",
ear2="Darkness Earring", ring1="Paguroidea Ring", ring2="Sheltered Ring", back="Repulse Mantle",
waist="Black Belt", feet="Hermes' Sandals"})
sets.aftercast.Resting = set_combine(sets.aftercast.Idle, {back="Mollusca Mantle", legs="Qaaxo Tights", feet="Qaaxo Leggings"})
end
function precast(spell,action)
equip(sets.precast[spell.english])
end
function aftercast(spell,action)
if player.status =='Engaged' then
equip(sets.aftercast.TP)
else
equip(sets.aftercast.Idle)
end
end
function status_change(new,old)
if new == 'Engaged' then
equip(sets.aftercast.TP)
elseif new == 'Resting' then
equip(sets.aftercast.Resting)
else
equip(sets.aftercast.Idle)
end
end and if you are still having a problem after using any of those JAs whose sets are still listed, you may need to try reporting it on the Windower GitHub 'cause they'd be much better help if it comes down to that.
Just loaded up the lua you posted and the issue is still occurring with it the same as before (only JA that I didn't test was Hundred Fists). I suppose I'll head over to the GitHub as you suggested and see about reporting the issue there in a minute or so.
Some of the issues I'm seeing others mention on here do sound similar to mine (GS acting sluggish, not switching gear after a WS, etc.) only mine seems to be affecting my job abilities as well. I might play around with the code Conagh's posted and see if it helps anything on my end when I get a chance (busy, busy weekend for me).
I did try disabling my antivirus to see if Windower updated but it downloaded nothing for me. I do remember Windower updating right after the December version update, but I don't think it's downloaded anything in the past day or two if there's another update that was pushed more recently.
I plugged into your code and yours has not acted up for 7 hours since.
By dustinfoley 2014-12-16 14:23:53
Random questions.
I keep hearing that gearswap can auto weapon skill for you. Is this true, because i cant seem to find a single example of it?
Can you set it up for for mythics so that it blocks ws unless you are at 3000 tp?
Anyone got an update pup one for mythics?
By Iryoku 2014-12-16 14:56:51
Random answers.
I keep hearing that gearswap can auto weapon skill for you. Is this true, because i cant seem to find a single example of it? It's true in the sense that, like Spellcast before it, it doesn't provide any built in support for this. However, you can fairly easily jury-rig something to do this. For whatever that's worth.
Can you set it up for for mythics so that it blocks ws unless you are at 3000 tp? Certainly! Code if player.tp < 3000 then cancel_spell() end
Cerberus.Conagh
Serveur: Cerberus
Game: FFXI
Posts: 3189
By Cerberus.Conagh 2014-12-16 15:15:49
Random answers.
I keep hearing that gearswap can auto weapon skill for you. Is this true, because i cant seem to find a single example of it? It's true in the sense that, like Spellcast before it, it doesn't provide any built in support for this. However, you can fairly easily jury-rig something to do this. For whatever that's worth.
Can you set it up for for mythics so that it blocks ws unless you are at 3000 tp? Certainly! Code if player.tp < 3000 then cancel_spell() end
Code if AutoFudo == 1 then
if not buffactive['amnesia'] then
if player.tp > 999 and player.status == 'Engaged' then
windower.send_command('input /ws "Tachi: Fudo" <t>')
end
end
end
Example ~
Better rule for Auto WS and Am3 managment however though is..
Code
windower.register_event('tp change', function(tp)
if Autows == 1 then
if not buffactive['amnesia'] then
if buffactive["Aftermath: Lv.3"] then
if player.tp > 999 and player.status == 'Engaged' then
windower.send_command('input /ws "Tachi: Fudo" <t>')
end
elseif player.tp > 2999 then
windower.send_command('input /ws "Tachi: Rana" <t>')
end
end
end
end)
Or for just *** blocking if not AM3 and using Koga then ~
Code
AM == 1
Mythic = S{"Tachi: Rana"}
if player.main == 'Koga' then
if AM == 1
if spell.type == "Weaponskill" then
if not buffactive['amnesia'] then
if not buffactive["Aftermath: Lv.3"] then
if player.tp < 2999 or not Mythic[spell.name] then
cancel_spell()
return
end
end
end
end
end
end
Or for Normal play ~
Code If player.main == @Koga' then
if
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.
|
|