|
Gearswap Support Thread
Quetzalcoatl.Orestes
Server: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2019-04-18 09:11:36
I have just returned to the game this week and am trying to get the hand of gearswap again. Last night I was having some issues and I believe the issue is gearswap related. I have noticed the issue so far is on at least Blue Mage and I think Dark Knight and could be on all jobs. After playing for a little while my character becomes unable to cast any spells, or do any abilities unless I disable gearswap, change to a different job or exit FFXI (reloading gearswap doesnt fix the problem). If I change my job back to Blue Mage it still doesn't work either. Does anyone have any idea what the issue is? Could my BLU.lua, gearswap or windower be out of date? I had put quite a bit of time into gearswap for BLU when I last played.
I did just install DGvoodoo which is the only new feature I have introduced to my PC. Maybe I should reinstall windower or FFXI?
Any help is appreciated! Thanks!
Next time you notice this problem, open up the windower console. If you posted what you found there, it may be possible to help you out. Otherwise, if you narrow down which job's lua is the cause, you could pastebin the contents.
By RebornedHero 2019-04-18 14:33:29
Quetzalcoatl.Orestes said: »I have just returned to the game this week and am trying to get the hand of gearswap again. Last night I was having some issues and I believe the issue is gearswap related. I have noticed the issue so far is on at least Blue Mage and I think Dark Knight and could be on all jobs. After playing for a little while my character becomes unable to cast any spells, or do any abilities unless I disable gearswap, change to a different job or exit FFXI (reloading gearswap doesnt fix the problem). If I change my job back to Blue Mage it still doesn't work either. Does anyone have any idea what the issue is? Could my BLU.lua, gearswap or windower be out of date? I had put quite a bit of time into gearswap for BLU when I last played.
I did just install DGvoodoo which is the only new feature I have introduced to my PC. Maybe I should reinstall windower or FFXI?
Any help is appreciated! Thanks!
Next time you notice this problem, open up the windower console. If you posted what you found there, it may be possible to help you out. Otherwise, if you narrow down which job's lua is the cause, you could pastebin the contents.
Unfortunately the console doesn't state anything. It just stops me from being able to activate abilities or cast magic.
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-04-18 15:33:55
You'll need to post your lua code. Please do so in code tags :)
By Asura.Uzugami 2019-05-01 01:53:37
Trying to edit/add a spell into my WHM's lua; debugmode says it's trying to equip the set but it's equipping gear that I don't have tied to the set in question. Code Default precast set selection for Haste : sets.precast.FC["Enhancing Magic"]
------------------------- Debug Mode (gear not equipped) -------------------------
main (Adv.)
neck Orison Locket
right_ear Loquacious Earring
hands Gendewitha Gages
----------------------------------------------------------------
GearSwap (Debug Mode): Entering midcast
Default midcast set selection for Haste : sets.midcast.Haste
------------------------- Debug Mode (gear not equipped) -------------------------
head Nahtirah Hat
right_ear Loquacious Earring
hands Dynasty Mitts
waist Goading Belt
legs Gendewitha Spats
feet Gendewitha Galoshes
Gear I'm trying to use is: Code sets.midcast.Haste = {{main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}}}} I literally just added sets.midcast.Haste to the lua and it's being picked up...but nowhere near the gear i've set for it. Any clue as to why it's doing that?
Server: Asura
Game: FFXI
Posts: 709
By Asura.Chaostaru 2019-05-03 14:22:42
on a Mote 2 lua, Is it possible to have the Lua read current OffenseMode because atm all my Lua's, if in a OffenseMode other than 'Normal' , HybridMode's wont work until I return to OffenseMode 'Normal'. Which is annoying if Im in Midacc sets or such.
Quetzalcoatl.Orestes
Server: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2019-05-03 15:15:40
on a Mote 2 lua, Is it possible to have the Lua read current OffenseMode because atm all my Lua's, if in a OffenseMode other than 'Normal' , HybridMode's wont work until I return to OffenseMode 'Normal'. Which is annoying if Im in Midacc sets or such.
The following sets allow HybridMode = 'PDT' to account for OffenseModes 'Mid' and 'Acc'.
Code sets.engaged.PDT
sets.engaged.Mid.PDT
sets.engaged.Acc.PDT
[+]
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-05-03 16:52:50
Trying to edit/add a spell into my WHM's lua; debugmode says it's trying to equip the set but it's equipping gear that I don't have tied to the set in question. Code Default precast set selection for Haste : sets.precast.FC["Enhancing Magic"]
------------------------- Debug Mode (gear not equipped) -------------------------
main (Adv.)
neck Orison Locket
right_ear Loquacious Earring
hands Gendewitha Gages
----------------------------------------------------------------
GearSwap (Debug Mode): Entering midcast
Default midcast set selection for Haste : sets.midcast.Haste
------------------------- Debug Mode (gear not equipped) -------------------------
head Nahtirah Hat
right_ear Loquacious Earring
hands Dynasty Mitts
waist Goading Belt
legs Gendewitha Spats
feet Gendewitha Galoshes
Gear I'm trying to use is: Code sets.midcast.Haste = {{main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}}}} I literally just added sets.midcast.Haste to the lua and it's being picked up...but nowhere near the gear i've set for it. Any clue as to why it's doing that? Can you post full Lua?
Phoenix.Uzugami
Server: Phoenix
Game: FFXI
By Phoenix.Uzugami 2019-05-03 17:26:10
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.Buff['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('None', 'Normal')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT')
select_default_macro_book()
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Fast cast sets for spells
sets.precast.FC = {main=gear.FastcastStaff,ammo="Incantor Stone",
head="Vanya Hood",neck="Orison Locket",ear2="Loquacious Earring",
body="Inyanga Jubbah +2",hands="Gendewitha Gages",ring1="Prolix Ring",
back="Alaunus's Cape",waist="Witful Belt",legs="Ayanmo Cosciales +1",feet="Pinga Pumps"}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {{main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}}}})
sets.precast.FC.Stoneskin = set_combine(sets.precast.FC['Enhancing Magic'], {head="Umuthi Hat"})
sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {ammo="Incantor Stone", ring1="Prolix Ring", waist= "Acerbic Sash +1", legs="Ebers Pantaloons"})
sets.precast.FC.StatusRemoval = sets.precast.FC['Healing Magic']
sets.precast.FC.Cure = set_combine(sets.precast.FC['Healing Magic'], {main="Tamaxchi",sub="Genbu's Shield",ammo="Incantor Stone", ring1="Prolix Ring", waist= "Acerbic Sash +1"})
sets.precast.FC.Curaga = sets.precast.FC.Cure
sets.precast.FC.CureSolace = sets.precast.FC.Cure
-- CureMelee spell map should default back to Healing Magic.
-- Precast sets to enhance JAs
sets.precast.JA.Benediction = {body="Piety Briault"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Nahtirah Hat",ear1="Roundel Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",
back="Refraction Cape",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
gear.default.weaponskill_neck = "Asperity Necklace"
gear.default.weaponskill_waist = ""
sets.precast.WS = {
head="Nahtirah Hat",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Refraction Cape",waist=gear.ElementalBelt,legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.precast.WS['Flash Nova'] = {
head="Nahtirah Hat",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="Strendu Ring",
back="Toro Cape",waist="Thunder Belt",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
-- Midcast Sets
sets.midcast.FastRecast = {
head="Nahtirah Hat",ear2="Loquacious Earring",
body="Inyanga Jubbah +2",hands="Dynasty Mitts",ring1="Prolix Ring",
back="Swith Cape +1",waist="Goading Belt",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
-- Cure sets
gear.default.obi_waist = "Goading Belt"
gear.default.obi_back = "Mending Cape"
sets.midcast.CureSolace = {main="Raetic Rod +1",sub="Genbu's Shield",ammo="Leisure Musk +1",
head="Vanya Hood",neck="Cleric's Torque",ear1="Novia Earring",ear2="Nourishing Earring +1",
body="Ebers Bliaud",hands="Kaykaus Cuffs +1",ring1="Prolix Ring",ring2="Metanoia Ring",
back="Tempered Cape +1",waist=gear.ElementalObi,legs="Ebers Pantaloons",feet="Vanya Clogs"}
sets.midcast.Cure = {main="Raetic Rod +1",sub="Genbu's Shield",ammo="Leisure Musk +1",
head="Vanya Hood",neck="Cleric's Torque",ear1="Roundel Earring",ear2="Nourishing Earring",
body="Ebers Bliaud",hands="Kaykaus Cuffs +1",ring1="Prolix Ring",ring2="Metanoia Ring",
back="Tempered Cape +1",waist=gear.ElementalObi,legs="Ebers Pantaloons",feet="Vanya Clogs"}
sets.midcast.Curaga = {main="Tamaxchi",sub="Genbu's Shield",ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Orison Locket",ear1="Lifestorm Earring",ear2="Orison Earring",
body="Vanir Cotehardie",hands="Theophany Mitts",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Tuilha Cape",waist=gear.ElementalObi,legs="Ebers Pantaloons",feet="Piety Duckbills +1"}
sets.midcast.CureMelee = {ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Orison Locket",ear1="Lifestorm Earring",ear2="Orison Earring",
body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Tuilha Cape",waist=gear.ElementalObi,legs="Orison Pantaloons +2",feet="Piety Duckbills +1"}
sets.midcast.Cursna = {main="Queller Rod",sub="Genbu's Shield",
head="Orison Cap +2",neck="Debilis Medallion",
body="Orison Bliaud +2",hands="Hieros Mittens",ring1="Haoma's Ring",ring2="Haoma's Ring",
back="Alaunus's Cape",waist="Bishop's Sash",legs="Theophany Pantaloons",feet="Gendewitha Galoshes +1"}
sets.midcast.StatusRemoval = {
head="Orison Cap +2",legs="Orison Pantaloons +2"}
-- 110 total Enhancing Magic Skill; caps even without Light Arts
sets.midcast['Enhancing Magic'] = {main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},
head="Umuthi Hat",neck="Colossus's Torque",
body="Manasa Chasuble",hands="Dynasty Mitts",
back="Mending Cape",waist="Olympus Sash",legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}},feet="Orison Duckbills +2"}
sets.midcast.Stoneskin = {
head="Nahtirah Hat",neck="Orison Locket",ear1= "Earthcry Earring",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Dynasty Mitts",
back="Swith Cape +1",waist="Siegel Sash",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.midcast.Auspice = {hands="Dynasty Mitts",feet="Orison Duckbills +2"}
sets.midcast.Haste = {{main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}}}}
sets.midcast.BarElement = {main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},
head="Orison Cap +2",neck="Colossus's Torque",
body="Orison Bliaud +2",hands="Orison Mitts +2",
back="Mending Cape",waist="Olympus Sash",legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}},feet="Orison Duckbills +2"}
sets.midcast.Regen = {main="Bolelabunga",sub="Genbu's Shield",head="Inyanga Tiara +1",
body="Piety Briault",hands="Orison Mitts +1",
legs="Theophany Pantaloons"}
sets.midcast.Protectra = {main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}},ring1="Sheltered Ring",feet="Piety Duckbills +1"}
sets.midcast.Shellra = {main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}},ring1="Sheltered Ring",legs="Piety Pantaloons"}
sets.midcast['Divine Magic'] = {main="Bolelabunga",sub="Genbu's Shield",
head="Nahtirah Hat",neck="Colossus's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring2="Sangoma Ring",
back="Refraction Cape",waist=gear.ElementalObi,legs="Theophany Pantaloons",feet="Gendewitha Galoshes"}
sets.midcast['Dark Magic'] = {main="Bolelabunga", sub="Genbu's Shield",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanya Robe",hands="Yaoyotl Gloves",ring1="Stikini Ring +1",ring2="Stikini Ring +1",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Piety Duckbills +1"}
-- Custom spell classes
sets.midcast.MndEnfeebles = {main="Raetic Rod +1", ammo="Hydrocora",
head="Weatherspoon Corona +1",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanya Robe",hands="Kaykaus Cuffs +1",ring1="Stikini Ring +1",ring2="Stikini Ring +1",
back="Refraction Cape",waist="Salire Belt",legs="Orvail pants +1",feet="Pinga Pimps"}
sets.midcast.IntEnfeebles = {main="Lehbrailg +2", sub="Mephitis Grip",
head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Icesoul Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Piety Duckbills +1"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Ames", sub="Genbu's Shield",ammo="Incantor Stone",
head="Ayanmo Zucchetto +1",neck="Bathy Choker",ear1="Cassie Earring",ear2="Merman's Earring",
body="Ebers Bliaud",hands="Ayanmo Manopolas +1",ring1="Stikini Ring +1",ring2="Stikini Ring +1",
back="Moonbeam Cape",waist="Slipor Sash",legs="Ayanmo Cosciales +1",feet="Ayanmo Gambieras +1"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle = {main="Queller Rod", sub="Genbu's Shield",ammo="Incantor Stone",
head="Ayanmo Zucchetto +1",neck="Bathy Choker",ear1="Cassie Earring",ear2="Merman's Earring",
body="Ebers Bliaud",hands="Ayanmo Manopolas +1",ring1="Stikini Ring +1",ring2="Stikini Ring +1",
back="Moonbeam Cape",waist="Slipor Sash",legs="Ayanmo Cosciales +1",feet="Ayanmo Gambieras +1"}
sets.idle.PDT = {main="Bolelabunga", sub="Genbu's Shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Gendewitha Bliaut",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Umbra Cape",waist="Witful Belt",legs="Gendewitha Spats",feet="Herald's Gaiters"}
sets.idle.Town = {main="Bolelabunga", sub="Genbu's Shield",ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Gendewitha Bliaut",hands="Gendewitha Gages",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Umbra Cape",waist="Witful Belt",legs="Nares Trews",feet="Herald's Gaiters"}
sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Gendewitha Bliaut",hands="Yaoyotl Gloves",ring1="Stikini Ring +1",ring2="Stikini Ring +1",
back="Umbra Cape",waist="Witful Belt",legs="Nares Trews",feet="Gendewitha Galoshes"}
-- Defense sets
sets.defense.PDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Gendewitha Caubeen",neck="Twilight Torque",
body="Gendewitha Bliaut",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Umbra Cape",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Nahtirah Hat",neck="Twilight Torque",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Tuilha Cape",legs="Bokwus Slops",feet="Gendewitha Galoshes"}
sets.Kiting = {feet="Herald's Gaiters"}
sets.latent_refresh = {waist="Fucho-no-obi"}
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Basic set for if no TP weapon is defined.
sets.engaged = {
head="Nahtirah Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Vanir Cotehardie",hands="Dynasty Mitts",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Umbra Cape",waist="Goading Belt",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
sets.buff['Divine Caress'] = {hands="Orison Mitts +2",back="Mending Cape"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
if spell.english == "Paralyna" and buffactive.Paralyzed then
-- no gear swaps if we're paralyzed, to avoid blinking while trying to remove it.
eventArgs.handled = true
end
if spell.skill == 'Healing Magic' then
gear.default.obi_back = "Mending Cape"
else
gear.default.obi_back = "Toro Cape"
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
-- Apply Divine Caress boosting items as highest priority over other gear, if applicable.
if spellMap == 'StatusRemoval' and buffactive['Divine Caress'] then
equip(sets.buff['Divine Caress'])
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'Offense Mode' then
if newValue == 'Normal' then
disable('main','sub','range')
else
enable('main','sub','range')
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
if spell.action_type == 'Magic' then
if (default_spell_map == 'Cure' or default_spell_map == 'Curaga') and player.status == 'Engaged' then
return "CureMelee"
elseif default_spell_map == 'Cure' and state.Buff['Afflatus Solace'] then
return "CureSolace"
elseif spell.skill == "Enfeebling Magic" then
if spell.type == "WhiteMagic" then
return "MndEnfeebles"
else
return "IntEnfeebles"
end
end
end
end
function customize_idle_set(idleSet)
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
if cmdParams[1] == 'user' and not areas.Cities:contains(world.area) then
local needsArts =
player.sub_job:lower() == 'sch' and
not buffactive['Light Arts'] and
not buffactive['Addendum: White'] and
not buffactive['Dark Arts'] and
not buffactive['Addendum: Black']
if not buffactive['Afflatus Solace'] and not buffactive['Afflatus Misery'] then
if needsArts then
send_command('@input /ja "Afflatus Solace" <me>;wait 1.2;input /ja "Light Arts" <me>')
else
send_command('@input /ja "Afflatus Solace" <me>')
end
end
end
end
-- Function to display the current relevant user state when doing an update.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
set_macro_page(4, 14)
end
Bahamut.Ayasha
Server: Bahamut
Game: FFXI
Posts: 89
By Bahamut.Ayasha 2019-05-03 18:47:22
With the exception of the eye-twitching amounts of curly braces you have in that line, the lua looks ok. Your problem, so far as I can tell, is 'Haste' spells are not mapped in Mote's includes, so you will need to either specifically tell GS what spell that gear set is referencing:
Code
sets.midcast['Haste'] = {main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}}}
sets.midcast['Haste II'] = {main={ name="Grioavolr", augments={'Enh. Mag. eff. dur. +9','Mag. Acc.+18',}},legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}}}
Or make a rule in your job_post_midcast set.
Code
function job_post_midcast(spell, action, spellMap, eventArgs)
-- Apply Divine Caress boosting items as highest priority over other gear, if applicable.
if spellMap == 'StatusRemoval' and buffactive['Divine Caress'] then
equip(sets.buff['Divine Caress'])
end
if spell.english:startswith('Haste') then
equip (sets.midcast.Haste)
end
end
I'm sure there's another method, but these should work. Haven't tested them, but I'm sure some permutation of the above letters will have some effect.
Hope this helps!
Phoenix.Uzugami
Server: Phoenix
Game: FFXI
By Phoenix.Uzugami 2019-05-03 19:27:01
With the exception of the eye-twitching amounts of curly braces you have in that line, the lua looks ok. I ended up just copying them from the export, even though she only has 1 of each they refused to equip otherwise(For Protect/shell anyway.) I'll give the ['Haste'] a try! Code
if spell.english:startswith('Haste') then
equip (sets.midcast.Haste)
end
end
Interesting, I'm bad at understanding lua stuff but if that line should work, would this also work with something like, BLU spells while subbing BLU? I got the proper sets to equip on pld/blu, but for some reason I can't do the same on run/blu.
Bahamut.Ayasha
Server: Bahamut
Game: FFXI
Posts: 89
By Bahamut.Ayasha 2019-05-03 20:44:03
If you aren't using Mote's libraries in your RUN lua then it may not work properly as vanilla GearSwap doesn't automatically handle that. Or you may have something that is overriding your swapping. Hard to diagnose without seeing the lua, but those are common errors... as well as spelling errors. Troubleshooting your own code is a great way to learn the language. Keep it up!
Server: Asura
Game: FFXI
Posts: 79
By Asura.Iamarealgirl 2019-05-09 15:50:48
anyone know why my mote thf file isnt working when i tried to change treasure hunter modes?
i've copied and pasted the files (both the mote-treasure hunter file and the THF.lua) directly from the github page, but its still not working, it switches all my gear when i ws or enter idle mode. but when i try to switch treasure hunter modes i get a "mote-libs: cycle: unknown field {targetmode} error.
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-05-10 02:10:40
Asura.Iamarealgirl said: »anyone know why my mote thf file isnt working when i tried to change treasure hunter modes?
i've copied and pasted the files (both the mote-treasure hunter file and the THF.lua) directly from the github page, but its still not working, it switches all my gear when i ws or enter idle mode. but when i try to switch treasure hunter modes i get a "mote-libs: cycle: unknown field {targetmode} error. Without seeing your Lua, it's impossible to say.
The logic to handle TH gear is placed throughout the Lua file, as seen here: https://github.com/Kinematics/GearSwap-Jobs/blob/master/THF.lua
Asura.Eiryl
By Asura.Eiryl 2019-05-10 02:13:02
The update is causing an error on line 461 packet_parsing
Possibly due to the new icon from emporox
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-05-10 02:31:47
Should be fixed once the new resource files for Windower are published and downloaded.
Edit: Resources are now updated.
https://github.com/Windower/Resources/commit/1112fedf07d4f3ed00aaccab66737abdd994753d
Asura.Aillas
By Asura.Aillas 2019-05-27 01:20:44
Hi, I experienced a strange issue trying to load gearswap today. It reported error about not fining targerts.lua/.dll, or something. Why has this file randomly disappeared? GS was working fine a few hours earlier on my previous login.
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-05-27 02:47:14
Hi, I experienced a strange issue trying to load gearswap today. It reported error about not fining targerts.lua/.dll, or something. Why has this file randomly disappeared? GS was working fine a few hours earlier on my previous login. addons\GearSwap\targets.lua is a file that comes with Gearswap. There could be a hundred different reasons why it's no longer there.
You can obtain another copy of the file from https://github.com/Windower/Lua/blob/dev/addons/GearSwap/targets.lua
[+]
Asura.Aillas
By Asura.Aillas 2019-05-27 03:09:53
Hi, I experienced a strange issue trying to load gearswap today. It reported error about not fining targerts.lua/.dll, or something. Why has this file randomly disappeared? GS was working fine a few hours earlier on my previous login. addons\GearSwap\targets.lua is a file that comes with Gearswap. There could be a hundred different reasons why it's no longer there.
You can obtain another copy of the file from https://github.com/Windower/Lua/blob/dev/addons/GearSwap/targets.lua
Ty
[+]
Server: Odin
Game: FFXI
Posts: 3
By Odin.Medicat 2019-06-02 00:37:02
I'm trying to create a toggle for my gearswap to change between two specific sets depending on whether I am currently in one or the other, however I'm getting an error.
User file problem: C:FFXI Windower/addons/gearswap/data/Medicat/COR.lua:565 'then' expected near '='
I'm not exactly sure what the proper way to form this argument is. This is how it's currently written. Full lua paste below. Can anyone help me with this? The argument is from 563-574. Thanks!
elseif command == 'toggle standard' then
if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
if engaged_ind = 1
send_command('gs c equipset acc')
else
send_command('gs c equipset standard')
else
if swengaged_ind = 1
send_command('gs c equipset acc')
else
send_command('gs c equipset standard')
end
https://pastebin.com/g5xDEts8
Cerberus.Dougg
Server: Cerberus
Game: FFXI
Posts: 11
By Cerberus.Dougg 2019-06-02 07:53:11
Missing a "then" and a second "=". = is for assign, == is for comparison.
if engaged_ind == 1 then
if swengaged_ind == 1 then
Formatting aside, it looks like you'd be better off modifying your status_change function to actually handle the equipping and just have this toggle change a variable.
Phoenix.Garaku
Server: Phoenix
Game: FFXI
Posts: 11
By Phoenix.Garaku 2019-06-02 10:54:30
So something started happening to my luas last night where my ambu capes stopped swapping. I decided to do an export to see if there was an issue and it seems like all of my Resin augments on my ambu capes have:
back={ name="Intarabus's Cape", augments={'CHR+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','System: 1 ID: 1155 Val: 4',}},
If I change it in my lua to what it says here, it still doesn't work though.. Nobody else I know is having this problem however.
Bismarck.Tesiex
Server: Bismarck
Game: FFXI
Posts: 18
By Bismarck.Tesiex 2019-06-02 11:30:08
After playing for a little while my character becomes unable to cast any spells, or do any abilities unless I disable gearswap, ... or exit FFXI (reloading gearswap doesnt fix the problem).
Doesn't look like this ever got a LUA posted against it or resolved and I'm having the exact same problem. When this happens it's like GearSwap isn't getting any input at all. Nothing shows in debug mode or for "showswaps" or the console. When I unload GearSwap and load it again it loads the LUA just fine but still can't cast anything.
Code -- Original: Motenten / Modified: Arislan
-------------------------------------------------------------------------------------------------------------------
-- Keybinds
-------------------------------------------------------------------------------------------------------------------
-- Modes: [ F9 ] Cycle Offense Mode
-- [ CTRL+F9 ] Cycle Hybrid Modes
-- [ WIN+F9 ] Cycle Weapon Skill Modes
-- [ F10 ] Emergency -PDT Mode
-- [ ALT+F10 ] Toggle Kiting Mode
-- [ F11 ] Emergency -MDT Mode
-- [ CTRL+F11 ] Cycle Casting Modes
-- [ F12 ] Update Current Gear / Report Current Status
-- [ CTRL+F12 ] Cycle Idle Modes
-- [ ALT+F12 ] Cancel Emergency -PDT/-MDT Mode
-- [ WIN+C ] Toggle Capacity Points Mode
--
-- Abilities: [ CTRL+` ] Cycle SongMode
--
-- Songs: [ ALT+` ] Chocobo Mazurka
-- [ WIN+, ] Utsusemi: Ichi
-- [ WIN+. ] Utsusemi: Ni
--
-- Weapons: [ CTRL+W ] Toggles Weapon Lock
--
-- WS: [ CTRL+Numpad7 ] Mordant Rime
-- [ CTRL+Numpad4 ] Evisceration
-- [ CTRL+Numpad5 ] Rudra's Storm
-- [ CTRL+Numpad1 ] Aeolian Edge
--
--
-- (Global-Binds.lua contains additional non-job-related keybinds)
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
Custom commands:
SongMode may take one of three values: None, Placeholder, FullLength
You can set these via the standard 'set' and 'cycle' self-commands. EG:
gs c cycle SongMode
gs c set SongMode Placeholder
The Placeholder state will equip the bonus song instrument and ensure non-duration gear is equipped.
The FullLength state will simply equip the bonus song instrument on top of standard gear.
Simple macro to cast a placeholder Daurdabla song:
/console gs c set SongMode Placeholder
/ma "Shining Fantasia" <me>
To use a Terpander rather than Daurdabla, set the info.ExtraSongInstrument variable to
'Terpander', and info.ExtraSongs to 1.
--]]
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
res = require 'resources'
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.SongMode = M{['description']='Song Mode', 'None', 'Placeholder'}
state.Buff['Pianissimo'] = buffactive['pianissimo'] or false
state.Buff['Pianissimo'] = buffactive['pianissimo'] or false
--include('Mote-TreasureHunter')
lockstyleset = 6
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'Acc')
state.HybridMode:options('Normal', 'DT')
state.WeaponskillMode:options('Normal', 'Acc')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'DT', 'MEva')
state.LullabyMode = M{['description']='Lullaby Instrument', 'Horn', 'Harp'}
state.Carol = M{['description']='Carol',
'Fire Carol', 'Fire Carol II', 'Ice Carol', 'Ice Carol II', 'Wind Carol', 'Wind Carol II',
'Earth Carol', 'Earth Carol II', 'Lightning Carol', 'Lightning Carol II', 'Water Carol', 'Water Carol II',
'Light Carol', 'Light Carol II', 'Dark Carol', 'Dark Carol II',
}
state.Threnody = M{['description']='Threnody',
'Fire Threnody II', 'Ice Threnody II', 'Wind Threnody II', 'Earth Threnody II',
'Ltng. Threnody II', 'Water Threnody II', 'Light Threnody II', 'Dark Threnody II',
}
state.Etude = M{['description']='Etude', 'Sinewy Etude', 'Herculean Etude', 'Learned Etude', 'Sage Etude',
'Quick Etude', 'Swift Etude', 'Vivacious Etude', 'Vital Etude', 'Dextrous Etude', 'Uncanny Etude',
'Spirited Etude', 'Logical Etude', 'Echanting Etude', 'Bewitching Etude'}
state.WeaponLock = M(false, 'Weapon Lock')
state.CP = M(false, "Capacity Points Mode")
-- Additional local binds
--include('Global-Binds.lua') -- OK to remove this line
--include('Global-GEO-Binds.lua') -- OK to remove this line
-- Adjust this if using the Terpander (new +song instrument)
info.ExtraSongInstrument = 'Terpander'
-- How many extra songs we can keep from Daurdabla/Terpander
info.ExtraSongs = 1
send_command('bind ^` gs c cycle SongMode')
send_command('bind !` input /ma "Chocobo Mazurka" <me>')
send_command('bind !p input /ja "Pianissimo" <me>')
send_command('bind ^backspace gs c cycle SongTier')
send_command('bind ^insert gs c cycleback Etude')
send_command('bind ^delete gs c cycle Etude')
send_command('bind ^home gs c cycleback Carol')
send_command('bind ^end gs c cycle Carol')
send_command('bind ^pageup gs c cycleback Threnody')
send_command('bind ^pagedown gs c cycle Threnody')
send_command('bind @` gs c cycle LullabyMode')
send_command('bind @w gs c toggle WeaponLock')
send_command('bind @c gs c toggle CP')
send_command('bind ^numpad7 input /ws "Mordant Rime" <t>')
send_command('bind ^numpad4 input /ws "Evisceration" <t>')
send_command('bind ^numpad5 input /ws "Rudra\'s Storm" <t>')
send_command('bind ^numpad1 input /ws "Aeolian Edge" <t>')
send_command('bind ^numpad2 input /ws "Wasp Sting" <t>')
send_command('bind ^numpad3 input /ws "Gust Slash" <t>')
select_default_macro_book()
set_lockstyle()
--update_combat_form()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind ^backspace')
send_command('unbind !insert')
send_command('unbind !delete')
send_command('unbind ^insert')
send_command('unbind ^delete')
send_command('unbind ^home')
send_command('unbind ^end')
send_command('unbind ^pageup')
send_command('unbind ^pagedown')
send_command('unbind @`')
send_command('unbind @w')
send_command('unbind @c')
send_command('unbind ^numpad7')
send_command('unbind ^numpad4')
send_command('unbind ^numpad5')
send_command('unbind ^numpad1')
send_command('unbind ^numpad2')
send_command('unbind ^numpad3')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
------------------------------------------------------------------------------------------------
---------------------------------------- Precast Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- Fast cast sets for spells
sets.precast.FC = {
main="Kali", --7
sub="Genbu\'s Shield",
head="Fili Calot", --10
body="Brioso Just. +1", --14
hands="Gende. Gages +1", --7/5
legs="Ayanmo Cosciales", --6
feet="Telchine Pigaches", --6
neck="Nefarious Collar +1", --5
ear1="Loquac. Earring", --2
ear2="Magnetic Earring", --1
ring1="Weather. Ring", --5
ring2="Stikini Ring", --4
back="Intarabus\'s Cape", --10
waist="Witful Belt", --3(3)
}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {
feet="Kaykaus Boots +1", --0/7
ear2="Mendi. Earring", --0/5
})
sets.precast.FC.BardSong = set_combine(sets.precast.FC, {
head="Fili Calot", --0/14
feet="Bihu Slippers +1", --8
neck="Loricate Torque +1",
ear1="Genmei Earring",
ring2="Defending Ring",
})
sets.precast.FC.SongPlaceholder = set_combine(sets.precast.FC.BardSong, {range=info.ExtraSongInstrument})
-- Precast sets to enhance JAs
sets.precast.JA.Nightingale = {feet="Bihu Slippers +1"}
sets.precast.JA.Troubadour = {body="Bihu Jstcorps +1"}
sets.precast.JA['Soul Voice'] = {legs="Bihu Cannions +1"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {}
------------------------------------------------------------------------------------------------
------------------------------------- Weapon Skill Sets ----------------------------------------
------------------------------------------------------------------------------------------------
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
range=gear.Linos_WS,
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Aya. Manopolas",
legs="Ayanmo Cosciales",
feet="Aya. Gambieras +1",
neck="Nefarious Collar +1",
ear1="Brutal Earring",
ear2="Moonshade Earring",
ring1="Dagaz Ring",
ring2="Ayanmo Ring",
back="Rhapsode\'s Cape",
waist="Windbuffet Belt",
}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {
range=gear.Linos_TP,
ear1="Brutal Earring",
ring1="Begrudging Ring",
back=gear.BRD_TP_Cape,
})
sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {})
sets.precast.WS['Mordant Rime'] = set_combine(sets.precast.WS, {
neck="Bard's Charm",
ear2="Regal Earring",
ring2={name="Carb. Ring +1", bag="wardrobe4"},
waist="Grunfeld Rope",
})
sets.precast.WS['Rudra\'s Storm'] = set_combine(sets.precast.WS, {
legs="Lustr. Subligar +1",
neck="Bard's Charm",
waist="Grunfeld Rope",
})
------------------------------------------------------------------------------------------------
---------------------------------------- Midcast Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- General set for recast times.
sets.midcast.FastRecast = sets.precast.FC
-- Gear to enhance certain classes of songs.
sets.midcast.Ballad = {legs="Fili Rhingrave"}
sets.midcast.Carol = {hands="Mousai Gages"}
sets.midcast.Etude = {head="Mousai Turban"}
sets.midcast.HonorMarch = {range="Marsyas", hands="Fili Manchettes"}
sets.midcast.Lullaby = {body="Fili Hongreline", hands="Brioso Cuffs +1"}
sets.midcast.Madrigal = {head="Fili Calot"}
--sets.midcast.Mambo = {feet="Mousai Crackows"}
sets.midcast.March = {hands="Fili Manchettes"}
sets.midcast.Minne = {legs="Mousai Seraweels"}
sets.midcast.Minuet = {body="Fili Hongreline"}
sets.midcast.Paeon = {head="Brioso Roundlet +1"}
sets.midcast.Threnody = {body="Mousai Manteel"}
--sets.midcast['Magic Finale'] = {legs="Fili Rhingrave"}
sets.midcast["Sentinel's Scherzo"] = {feet="Fili Cothurnes"}
-- For song buffs (duration and AF3 set bonus)
sets.midcast.SongEnhancing = {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Fili Calot",
body="Fili Hongreline",
hands="Fili Manchettes",
legs="Fili Rhingrave",
feet="Brioso Slippers +1",
neck="Moonbow Whistle",
ear1="Loquac. Earring",
ear2="Magnetic Earring",
ring1="Weather. Ring",
ring2="Stikini Ring",
waist="Witful Belt",
back="Rhapsode\'s Cape",
}
-- For song defbuffs (duration primary, accuracy secondary)
sets.midcast.SongEnfeeble = {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Brioso Roundlet +1",
body="Brioso Justau. +1",
hands="Brioso Cuffs +1",
legs="Brioso Cannions +1",
feet="Brioso Slippers +1",
neck="Moonbow Whistle",
ear1="Loquac. Earring",
ear2="Magnetic Earring",
ring1={name="Weather. Ring", bag="wardrobe1"},
ring2={name="Stikini Ring", bag="wardrobe2"},
waist="Witful Belt",
back="Rhapsode\'s Cape",
}
-- For song defbuffs (accuracy primary, duration secondary)
sets.midcast.SongEnfeebleAcc = set_combine(sets.midcast.SongEnfeeble, {legs="Brioso Cannions +2"})
-- Placeholder song; minimize duration to make it easy to overwrite.
sets.midcast.SongPlaceholder = set_combine(sets.midcast.SongEnhancing, {range=info.ExtraSongInstrument})
-- Other general spells and classes.
sets.midcast.Cure = {
main="Chatoyant Staff", --10
sub="Achaq Grip",
head="Gende. Caubeen +1", --11
body="Gende. Bilaut +1", --(+4)/(-6)
hands="Gende. Gages +1", --11(+2)/(-6)
legs="Fili Rhingrave", --8
feet="Telchine Pigaches", --11(+2)/(-12)
neck="Nefarious Collar +1",
ear2="Magnetic Earring", --5
ring1="Weather. Ring", --3/(-5)
ring2="Sirona\'s Ring",
back="Ogapepo Cape",
waist="Witful Belt",
}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.StatusRemoval = {
head="Vanya Hood",
body="Vanya Robe",
legs="Ayanmo Cosciales",
feet="Vanya Clogs",
neck="Incanter's Torque",
ear2="Healing Earring",
ring1="Menelaus's Ring",
ring2="Haoma's Ring",
back=gear.BRD_Song_Cape,
waist="Bishop's Sash",
}
sets.midcast.Cursna = set_combine(sets.midcast.StatusRemoval, {
hands="Hieros Mittens",
neck="Debilis Medallion",
ear1="Beatific Earring",
back="Oretan. Cape +1",
})
sets.midcast['Enhancing Magic'] = {
main="Kali",
sub="Genbu\'s Shield",
head="Telchine Cap",
body="Telchine Chas.",
hands="Telchine Gloves",
legs="Telchine Braconi",
feet="Telchine Pigaches",
neck="Incanter's Torque",
ear1="Augment. Earring",
ear2="Andoaa Earring",
ring1={name="Weather. Ring", bag="wardrobe"},
ring2={name="Stikini Ring", bag="wardrobe2"},
back="Fi Follet Cape +1",
waist="Olympus Sash",
}
sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {head="Inyanga Tiara +2"})
sets.midcast.Haste = sets.midcast['Enhancing Magic']
sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {waist="Gishdubar Sash", back="Grapevine Cape"})
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {neck="Nodens Gorget", waist="Siegel Sash"})
sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {waist="Emphatikos Rope"})
sets.midcast.Protect = set_combine(sets.midcast['Enhancing Magic'], {ring2="Sheltered Ring"})
sets.midcast.Protectra = sets.midcast.Protect
sets.midcast.Shell = sets.midcast.Protect
sets.midcast.Shellra = sets.midcast.Shell
------------------------------------------------------------------------------------------------
----------------------------------------- Idle Sets --------------------------------------------
------------------------------------------------------------------------------------------------
sets.idle = {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Gende. Gages +1",
legs="Ayanmo Cosciales",
feet="Fili Cothurnes",
neck="Moonbow Whistle",
--neck="Bathy Choker +1",
ear1="Genmei Earring",
ear2="Infused Earring",
ring1={name="Stikini Ring +1", bag="wardrobe3"},
ring2={name="Stikini Ring +1", bag="wardrobe4"},
back="Moonlight Cape",
waist="Flume Belt +1",
}
sets.idle.DT = {
sub="Genbu\'s Shield", --10/0
head="Inyanga Tiara +2", --0/5
body="Ayanmo Corazza", --7/7
hands="Inyan. Dastanas +2", --0/4
legs="Bihu Cannions +1", --6/0
feet="Fili Cothurnes", --0/3
neck="Loricate Torque +1", --6/6
ear1="Genmei Earring", --2/0
ear2="Etiolation Earring", --0/3
ring1="Moonlight Ring", --5/5
ring2="Defending Ring", --10/10
back="Moonlight Cape", --6/6
waist="Flume Belt +1", --4/0
}
sets.idle.MEva = {
sub="Genbu\'s Shield", --10/0
head="Inyanga Tiara +2", --0/5
body="Inyanga Jubbah +2", --0/8
hands="Inyan. Dastanas +2", --0/4
legs="Inyanga Shalwar +2", --0/6
feet="Fili Cothurnes", --0/3
neck="Warder's Charm +1",
ear2="Etiolation Earring", --0/3
ring1="Moonlight Ring", --5/5
ring2="Defending Ring", --10/10
back="Moonlight Cape", --6/6
waist="Carrier's Sash",
}
sets.idle.Town = set_combine(sets.idle, {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Fili Calot",
body="Ayanmo Corazza",
hands="Gende. Gages +1",
legs="Bihu Cannions +1",
neck="Moonbow Whistle",
ear1="Enchntr. Earring +1",
ear2="Regal Earring",
back=gear.BRD_Song_Cape,
})
sets.idle.Weak = sets.idle.DT
------------------------------------------------------------------------------------------------
---------------------------------------- Defense Sets ------------------------------------------
------------------------------------------------------------------------------------------------
sets.defense.PDT = sets.idle.DT
sets.defense.MDT = sets.idle.DT
sets.Kiting = {feet="Fili Cothurnes +1"}
sets.latent_refresh = {waist="Fucho-no-obi"}
------------------------------------------------------------------------------------------------
---------------------------------------- Engaged Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
sets.engaged = {
main="Kali",
sub="Genbu\' Shield",
range=gear.Linos_TP,
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Aya. Manopolas",
legs="Ayanmo Cosciales",
feet="Aya. Gambieras +1",
neck="Bard's Charm +1",
ear1="Brutal Earring",
ear2="Telos Earring",
ring1={name="Chirich Ring +1", bag="wardrobe3"},
ring2="Ilabrat Ring",
back=gear.BRD_TP_Cape,
waist="Windbuffet Belt",
}
sets.engaged.Acc = set_combine(sets.engaged, {
ear2="Mache Earring +1",
ring2="Ramuh Ring +1",
waist="Kentarch Belt +1",
})
-- 45% Magic Haste (36% DW to cap)
sets.engaged.DW = {
main="Kali",
sub="Genbu\'s Shield",
range=gear.Linos_TP,
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Aya. Manopolas",
legs="Ayanmo Cosciales",
feet="Aya. Gambieras +1",
neck="Bard's Charm +1",
ear1="Brutal Earring", --4
ear2="Telos Earring",
ring1={name="Chirich Ring +1", bag="wardrobe3"},
ring2="Ilabrat Ring",
back=gear.BRD_TP_Cape,
waist="Reiki Yotai", --7
}
sets.engaged.DW.Acc = set_combine(sets.engaged.DW, {
ear2="Mache Earring +1",
ring2="Ramuh Ring +1",
})
------------------------------------------------------------------------------------------------
---------------------------------------- Special Sets ------------------------------------------
------------------------------------------------------------------------------------------------
sets.SongDWDuration = {main="Carnwenhan", sub="Kali"}
sets.buff.Doom = {
neck="Nicander's Necklace", --20
ring1={name="Eshmun's Ring", bag="wardrobe3"}, --20
ring2={name="Eshmun's Ring", bag="wardrobe4"}, --20
waist="Gishdubar Sash", --10
}
sets.Obi = {waist="Hachirin-no-Obi"}
sets.CP = {back="Mecisto. Mantle"}
--sets.Reive = {neck="Ygnas's Resolve +1"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
if spell.type == 'BardSong' then
--[[ Auto-Pianissimo
if ((spell.target.type == 'PLAYER' and not spell.target.charmed) or (spell.target.type == 'NPC' and spell.target.in_party)) and
not state.Buff['Pianissimo'] then
local spell_recasts = windower.ffxi.get_spell_recasts()
if spell_recasts[spell.recast_id] < 2 then
send_command('@input /ja "Pianissimo" <me>; wait 1.5; input /ma "'..spell.name..'" '..spell.target.name)
eventArgs.cancel = true
return
end
end]]
if spell.name == 'Honor March' then
equip({range="Marsyas"})
end
if string.find(spell.name,'Lullaby') then
if buffactive.Troubadour then
equip({range="Marsyas"})
elseif state.LullabyMode.value == 'Horn' then
equip({range="Gjallarhorn"})
else
equip({range="Daurdabla"})
end
end
end
if spellMap == 'Utsusemi' then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
cancel_spell()
add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
eventArgs.handled = true
return
elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
end
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_midcast(spell, action, spellMap, eventArgs)
if spell.type == 'BardSong' then
-- layer general gear on first, then let default handler add song-specific gear.
local generalClass = get_song_class(spell)
if generalClass and sets.midcast[generalClass] then
equip(sets.midcast[generalClass])
end
if spell.name == 'Honor March' then
equip({range="Marsyas"})
end
if string.find(spell.name,'Lullaby') then
if buffactive.Troubadour then
equip({range="Marsyas"})
elseif state.LullabyMode.value == 'Horn' then
equip({range="Gjallarhorn"})
else
equip({range="Daurdabla"})
end
end
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.type == 'BardSong' then
if state.CombatForm.current == 'DW' then
equip(sets.SongDWDuration)
end
end
end
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.english:contains('Lullaby') and not spell.interrupted then
get_lullaby_duration(spell)
end
end
function job_buff_change(buff,gain)
-- if buffactive['Reive Mark'] then
-- if gain then
-- equip(sets.Reive)
-- disable('neck')
-- else
-- enable('neck')
-- end
-- end
if buff == "doom" then
if gain then
equip(sets.buff.Doom)
send_command('@input /p Doomed.')
disable('ring1','ring2','waist')
else
enable('ring1','ring2','waist')
--handle_equipping_gear(player.status)
end
end
end
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if state.WeaponLock.value == true then
disable('main','sub')
else
enable('main','sub')
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
--function job_handle_equipping_gear(playerStatus, eventArgs)
--update_combat_form()
--end
function job_update(cmdParams, eventArgs)
--handle_equipping_gear(player.status)
end
-- Called for direct player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1]:lower() == 'etude' then
send_command('@input /ma '..state.Etude.value..' <stpc>')
elseif cmdParams[1]:lower() == 'carol' then
send_command('@input /ma '..state.Carol.value..' <stpc>')
elseif cmdParams[1]:lower() == 'threnody' then
send_command('@input /ma '..state.Threnody.value..' <stnpc>')
end
end
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if state.CP.current == 'on' then
equip(sets.CP)
disable('back')
else
enable('back')
end
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
local cf_msg = ''
if state.CombatForm.has_value then
cf_msg = ' (' ..state.CombatForm.value.. ')'
end
local m_msg = state.OffenseMode.value
if state.HybridMode.value ~= 'Normal' then
m_msg = m_msg .. '/' ..state.HybridMode.value
end
local ws_msg = state.WeaponskillMode.value
local c_msg = state.CastingMode.value
local d_msg = 'None'
if state.DefenseMode.value ~= 'None' then
d_msg = state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value
end
local i_msg = state.IdleMode.value
local msg = ''
if state.Kiting.value then
msg = msg .. ' Kiting: On |'
end
add_to_chat(002, '| ' ..string.char(31,210).. 'Melee' ..cf_msg.. ': ' ..string.char(31,001)..m_msg.. string.char(31,002).. ' |'
..string.char(31,207).. ' WS: ' ..string.char(31,001)..ws_msg.. string.char(31,002).. ' |'
..string.char(31,060).. ' Magic: ' ..string.char(31,001)..c_msg.. string.char(31,002).. ' |'
..string.char(31,004).. ' Defense: ' ..string.char(31,001)..d_msg.. string.char(31,002).. ' |'
..string.char(31,008).. ' Idle: ' ..string.char(31,001)..i_msg.. string.char(31,002).. ' |'
..string.char(31,002)..msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Determine the custom class to use for the given song.
function get_song_class(spell)
-- Can't use spell.targets:contains() because this is being pulled from resources
if set.contains(spell.targets, 'Enemy') then
if state.CastingMode.value == 'Resistant' then
return 'SongEnfeebleAcc'
else
return 'SongEnfeeble'
end
elseif state.SongMode.value == 'Placeholder' then
return 'SongPlaceholder'
else
return 'SongEnhancing'
end
end
function get_lullaby_duration(spell)
local self = windower.ffxi.get_player()
local troubadour = false
local clarioncall = false
local soulvoice = false
local marcato = false
for i,v in pairs(self.buffs) do
if v == 348 then troubadour = true end
if v == 499 then clarioncall = true end
if v == 52 then soulvoice = true end
if v == 231 then marcato = true end
end
local mult = 1
if player.equipment.range == 'Daurdabla' then mult = mult + 0.3 end -- change to 0.25 with 90 Daur
if player.equipment.range == "Gjallarhorn" then mult = mult + 0.4 end -- change to 0.3 with 95 Gjall
if player.equipment.range == "Marsyas" then mult = mult + 0.5 end
if player.equipment.main == "Carnwenhan" then mult = mult + 0.5 end -- 0.1 for 75, 0.4 for 95, 0.5 for 99/119
if player.equipment.main == "Legato Dagger" then mult = mult + 0.05 end
if player.equipment.main == "Kali" then mult = mult + 0.05 end
if player.equipment.sub == "Kali" then mult = mult + 0.05 end
if player.equipment.sub == "Legato Dagger" then mult = mult + 0.05 end
if player.equipment.neck == "Aoidos' Matinee" then mult = mult + 0.1 end
if player.equipment.neck == "Mnbw. Whistle +1" then mult = mult + 0.2 end
if player.equipment.neck == "Mnbw. Whistle +1 +1" then mult = mult + 0.3 end
if player.equipment.body == "Fili Hongreline +1" then mult = mult + 0.12 end
if player.equipment.legs == "Inyanga Shalwar +1" then mult = mult + 0.15 end
if player.equipment.legs == "Inyanga Shalwar +2" then mult = mult + 0.17 end
if player.equipment.feet == "Brioso Slippers" then mult = mult + 0.1 end
if player.equipment.feet == "Brioso Slippers +1" then mult = mult + 0.11 end
if player.equipment.feet == "Brioso Slippers +2" then mult = mult + 0.13 end
if player.equipment.feet == "Brioso Slippers +3" then mult = mult + 0.15 end
if player.equipment.hands == 'Brioso Cuffs +1' then mult = mult + 0.1 end
if player.equipment.hands == 'Brioso Cuffs +2' then mult = mult + 0.1 end
if player.equipment.hands == 'Brioso Cuffs +3' then mult = mult + 0.2 end
if troubadour then
mult = mult * 2
end
if spell.en == "Foe Lullaby II" or spell.en == "Horde Lullaby II" then
base = 60
elseif spell.en == "Foe Lullaby" or spell.en == "Horde Lullaby" then
base = 30
end
totalDuration = math.floor(mult * base)
-- Job Points Buff
totalDuration = totalDuration + self.job_points.brd.lullaby_duration
if troubadour then
totalDuration = totalDuration + self.job_points.brd.lullaby_duration
-- adding it a second time if Troubadour up
end
if clarioncall then
if troubadour then
totalDuration = totalDuration + (self.job_points.brd.clarion_call_effect * 2 * 2)
-- Clarion Call gives 2 seconds per Job Point upgrade. * 2 again for Troubadour
else
totalDuration = totalDuration + (self.job_points.brd.clarion_call_effect * 2)
-- Clarion Call gives 2 seconds per Job Point upgrade.
end
end
if marcato and not soulvoice then
totalDuration = totalDuration + self.job_points.brd.marcato_effect
end
-- Create the custom timer
if spell.english == "Foe Lullaby II" or spell.english == "Horde Lullaby II" then
send_command('@timers c "Lullaby II ['..spell.target.name..']" ' ..totalDuration.. ' down spells/00377.png')
elseif spell.english == "Foe Lullaby" or spell.english == "Horde Lullaby" then
send_command('@timers c "Lullaby ['..spell.target.name..']" ' ..totalDuration.. ' down spells/00376.png')
end
end
-- function update_combat_form()
-- classes.CustomMeleeGroups:clear()
-- if S{'NIN','DNC'}:contains(player.sub_job) then
-- --if not (player.equipment.sub:contains('Shield') or player.equipment.sub == 'empty') then
-- state.CombatForm:set('DW')
-- else
-- state.CombatForm:reset()
-- --end
-- end
-- end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 3)
end
function set_lockstyle()
send_command('wait 2; input /lockstyleset ' .. lockstyleset)
end
Any help is greatly appreciated. ^_^/
Server: Odin
Game: FFXI
Posts: 3
By Odin.Medicat 2019-06-02 23:41:58
That was definitely the syntax error. The lua loads without error now, but it doesn't actually function as intended. This is what I currently have...
elseif command == 'toggle standard' then
if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
if #sets.engaged.index >= 2 then
send_command('gs c equipset standard')
else
send_command('gs c equipset acc')
end
It will always equip my standard set, but when I input the toggle if my index is currently one, it won't detect it and use the equipset acc command to set my index to 2. Am I making this more complicated than it needs to be?
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-06-03 03:27:57
After playing for a little while my character becomes unable to cast any spells, or do any abilities unless I disable gearswap, ... or exit FFXI (reloading gearswap doesnt fix the problem).
Doesn't look like this ever got a LUA posted against it or resolved and I'm having the exact same problem. When this happens it's like GearSwap isn't getting any input at all. Nothing shows in debug mode or for "showswaps" or the console. When I unload GearSwap and load it again it loads the LUA just fine but still can't cast anything.
Code -- Original: Motenten / Modified: Arislan
-------------------------------------------------------------------------------------------------------------------
-- Keybinds
-------------------------------------------------------------------------------------------------------------------
-- Modes: [ F9 ] Cycle Offense Mode
-- [ CTRL+F9 ] Cycle Hybrid Modes
-- [ WIN+F9 ] Cycle Weapon Skill Modes
-- [ F10 ] Emergency -PDT Mode
-- [ ALT+F10 ] Toggle Kiting Mode
-- [ F11 ] Emergency -MDT Mode
-- [ CTRL+F11 ] Cycle Casting Modes
-- [ F12 ] Update Current Gear / Report Current Status
-- [ CTRL+F12 ] Cycle Idle Modes
-- [ ALT+F12 ] Cancel Emergency -PDT/-MDT Mode
-- [ WIN+C ] Toggle Capacity Points Mode
--
-- Abilities: [ CTRL+` ] Cycle SongMode
--
-- Songs: [ ALT+` ] Chocobo Mazurka
-- [ WIN+, ] Utsusemi: Ichi
-- [ WIN+. ] Utsusemi: Ni
--
-- Weapons: [ CTRL+W ] Toggles Weapon Lock
--
-- WS: [ CTRL+Numpad7 ] Mordant Rime
-- [ CTRL+Numpad4 ] Evisceration
-- [ CTRL+Numpad5 ] Rudra's Storm
-- [ CTRL+Numpad1 ] Aeolian Edge
--
--
-- (Global-Binds.lua contains additional non-job-related keybinds)
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
--[[
Custom commands:
SongMode may take one of three values: None, Placeholder, FullLength
You can set these via the standard 'set' and 'cycle' self-commands. EG:
gs c cycle SongMode
gs c set SongMode Placeholder
The Placeholder state will equip the bonus song instrument and ensure non-duration gear is equipped.
The FullLength state will simply equip the bonus song instrument on top of standard gear.
Simple macro to cast a placeholder Daurdabla song:
/console gs c set SongMode Placeholder
/ma "Shining Fantasia" <me>
To use a Terpander rather than Daurdabla, set the info.ExtraSongInstrument variable to
'Terpander', and info.ExtraSongs to 1.
--]]
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
res = require 'resources'
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.SongMode = M{['description']='Song Mode', 'None', 'Placeholder'}
state.Buff['Pianissimo'] = buffactive['pianissimo'] or false
state.Buff['Pianissimo'] = buffactive['pianissimo'] or false
--include('Mote-TreasureHunter')
lockstyleset = 6
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'Acc')
state.HybridMode:options('Normal', 'DT')
state.WeaponskillMode:options('Normal', 'Acc')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'DT', 'MEva')
state.LullabyMode = M{['description']='Lullaby Instrument', 'Horn', 'Harp'}
state.Carol = M{['description']='Carol',
'Fire Carol', 'Fire Carol II', 'Ice Carol', 'Ice Carol II', 'Wind Carol', 'Wind Carol II',
'Earth Carol', 'Earth Carol II', 'Lightning Carol', 'Lightning Carol II', 'Water Carol', 'Water Carol II',
'Light Carol', 'Light Carol II', 'Dark Carol', 'Dark Carol II',
}
state.Threnody = M{['description']='Threnody',
'Fire Threnody II', 'Ice Threnody II', 'Wind Threnody II', 'Earth Threnody II',
'Ltng. Threnody II', 'Water Threnody II', 'Light Threnody II', 'Dark Threnody II',
}
state.Etude = M{['description']='Etude', 'Sinewy Etude', 'Herculean Etude', 'Learned Etude', 'Sage Etude',
'Quick Etude', 'Swift Etude', 'Vivacious Etude', 'Vital Etude', 'Dextrous Etude', 'Uncanny Etude',
'Spirited Etude', 'Logical Etude', 'Echanting Etude', 'Bewitching Etude'}
state.WeaponLock = M(false, 'Weapon Lock')
state.CP = M(false, "Capacity Points Mode")
-- Additional local binds
--include('Global-Binds.lua') -- OK to remove this line
--include('Global-GEO-Binds.lua') -- OK to remove this line
-- Adjust this if using the Terpander (new +song instrument)
info.ExtraSongInstrument = 'Terpander'
-- How many extra songs we can keep from Daurdabla/Terpander
info.ExtraSongs = 1
send_command('bind ^` gs c cycle SongMode')
send_command('bind !` input /ma "Chocobo Mazurka" <me>')
send_command('bind !p input /ja "Pianissimo" <me>')
send_command('bind ^backspace gs c cycle SongTier')
send_command('bind ^insert gs c cycleback Etude')
send_command('bind ^delete gs c cycle Etude')
send_command('bind ^home gs c cycleback Carol')
send_command('bind ^end gs c cycle Carol')
send_command('bind ^pageup gs c cycleback Threnody')
send_command('bind ^pagedown gs c cycle Threnody')
send_command('bind @` gs c cycle LullabyMode')
send_command('bind @w gs c toggle WeaponLock')
send_command('bind @c gs c toggle CP')
send_command('bind ^numpad7 input /ws "Mordant Rime" <t>')
send_command('bind ^numpad4 input /ws "Evisceration" <t>')
send_command('bind ^numpad5 input /ws "Rudra\'s Storm" <t>')
send_command('bind ^numpad1 input /ws "Aeolian Edge" <t>')
send_command('bind ^numpad2 input /ws "Wasp Sting" <t>')
send_command('bind ^numpad3 input /ws "Gust Slash" <t>')
select_default_macro_book()
set_lockstyle()
--update_combat_form()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind ^backspace')
send_command('unbind !insert')
send_command('unbind !delete')
send_command('unbind ^insert')
send_command('unbind ^delete')
send_command('unbind ^home')
send_command('unbind ^end')
send_command('unbind ^pageup')
send_command('unbind ^pagedown')
send_command('unbind @`')
send_command('unbind @w')
send_command('unbind @c')
send_command('unbind ^numpad7')
send_command('unbind ^numpad4')
send_command('unbind ^numpad5')
send_command('unbind ^numpad1')
send_command('unbind ^numpad2')
send_command('unbind ^numpad3')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
------------------------------------------------------------------------------------------------
---------------------------------------- Precast Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- Fast cast sets for spells
sets.precast.FC = {
main="Kali", --7
sub="Genbu\'s Shield",
head="Fili Calot", --10
body="Brioso Just. +1", --14
hands="Gende. Gages +1", --7/5
legs="Ayanmo Cosciales", --6
feet="Telchine Pigaches", --6
neck="Nefarious Collar +1", --5
ear1="Loquac. Earring", --2
ear2="Magnetic Earring", --1
ring1="Weather. Ring", --5
ring2="Stikini Ring", --4
back="Intarabus\'s Cape", --10
waist="Witful Belt", --3(3)
}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {
feet="Kaykaus Boots +1", --0/7
ear2="Mendi. Earring", --0/5
})
sets.precast.FC.BardSong = set_combine(sets.precast.FC, {
head="Fili Calot", --0/14
feet="Bihu Slippers +1", --8
neck="Loricate Torque +1",
ear1="Genmei Earring",
ring2="Defending Ring",
})
sets.precast.FC.SongPlaceholder = set_combine(sets.precast.FC.BardSong, {range=info.ExtraSongInstrument})
-- Precast sets to enhance JAs
sets.precast.JA.Nightingale = {feet="Bihu Slippers +1"}
sets.precast.JA.Troubadour = {body="Bihu Jstcorps +1"}
sets.precast.JA['Soul Voice'] = {legs="Bihu Cannions +1"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {}
------------------------------------------------------------------------------------------------
------------------------------------- Weapon Skill Sets ----------------------------------------
------------------------------------------------------------------------------------------------
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
range=gear.Linos_WS,
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Aya. Manopolas",
legs="Ayanmo Cosciales",
feet="Aya. Gambieras +1",
neck="Nefarious Collar +1",
ear1="Brutal Earring",
ear2="Moonshade Earring",
ring1="Dagaz Ring",
ring2="Ayanmo Ring",
back="Rhapsode\'s Cape",
waist="Windbuffet Belt",
}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {
range=gear.Linos_TP,
ear1="Brutal Earring",
ring1="Begrudging Ring",
back=gear.BRD_TP_Cape,
})
sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {})
sets.precast.WS['Mordant Rime'] = set_combine(sets.precast.WS, {
neck="Bard's Charm",
ear2="Regal Earring",
ring2={name="Carb. Ring +1", bag="wardrobe4"},
waist="Grunfeld Rope",
})
sets.precast.WS['Rudra\'s Storm'] = set_combine(sets.precast.WS, {
legs="Lustr. Subligar +1",
neck="Bard's Charm",
waist="Grunfeld Rope",
})
------------------------------------------------------------------------------------------------
---------------------------------------- Midcast Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- General set for recast times.
sets.midcast.FastRecast = sets.precast.FC
-- Gear to enhance certain classes of songs.
sets.midcast.Ballad = {legs="Fili Rhingrave"}
sets.midcast.Carol = {hands="Mousai Gages"}
sets.midcast.Etude = {head="Mousai Turban"}
sets.midcast.HonorMarch = {range="Marsyas", hands="Fili Manchettes"}
sets.midcast.Lullaby = {body="Fili Hongreline", hands="Brioso Cuffs +1"}
sets.midcast.Madrigal = {head="Fili Calot"}
--sets.midcast.Mambo = {feet="Mousai Crackows"}
sets.midcast.March = {hands="Fili Manchettes"}
sets.midcast.Minne = {legs="Mousai Seraweels"}
sets.midcast.Minuet = {body="Fili Hongreline"}
sets.midcast.Paeon = {head="Brioso Roundlet +1"}
sets.midcast.Threnody = {body="Mousai Manteel"}
--sets.midcast['Magic Finale'] = {legs="Fili Rhingrave"}
sets.midcast["Sentinel's Scherzo"] = {feet="Fili Cothurnes"}
-- For song buffs (duration and AF3 set bonus)
sets.midcast.SongEnhancing = {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Fili Calot",
body="Fili Hongreline",
hands="Fili Manchettes",
legs="Fili Rhingrave",
feet="Brioso Slippers +1",
neck="Moonbow Whistle",
ear1="Loquac. Earring",
ear2="Magnetic Earring",
ring1="Weather. Ring",
ring2="Stikini Ring",
waist="Witful Belt",
back="Rhapsode\'s Cape",
}
-- For song defbuffs (duration primary, accuracy secondary)
sets.midcast.SongEnfeeble = {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Brioso Roundlet +1",
body="Brioso Justau. +1",
hands="Brioso Cuffs +1",
legs="Brioso Cannions +1",
feet="Brioso Slippers +1",
neck="Moonbow Whistle",
ear1="Loquac. Earring",
ear2="Magnetic Earring",
ring1={name="Weather. Ring", bag="wardrobe1"},
ring2={name="Stikini Ring", bag="wardrobe2"},
waist="Witful Belt",
back="Rhapsode\'s Cape",
}
-- For song defbuffs (accuracy primary, duration secondary)
sets.midcast.SongEnfeebleAcc = set_combine(sets.midcast.SongEnfeeble, {legs="Brioso Cannions +2"})
-- Placeholder song; minimize duration to make it easy to overwrite.
sets.midcast.SongPlaceholder = set_combine(sets.midcast.SongEnhancing, {range=info.ExtraSongInstrument})
-- Other general spells and classes.
sets.midcast.Cure = {
main="Chatoyant Staff", --10
sub="Achaq Grip",
head="Gende. Caubeen +1", --11
body="Gende. Bilaut +1", --(+4)/(-6)
hands="Gende. Gages +1", --11(+2)/(-6)
legs="Fili Rhingrave", --8
feet="Telchine Pigaches", --11(+2)/(-12)
neck="Nefarious Collar +1",
ear2="Magnetic Earring", --5
ring1="Weather. Ring", --3/(-5)
ring2="Sirona\'s Ring",
back="Ogapepo Cape",
waist="Witful Belt",
}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast.StatusRemoval = {
head="Vanya Hood",
body="Vanya Robe",
legs="Ayanmo Cosciales",
feet="Vanya Clogs",
neck="Incanter's Torque",
ear2="Healing Earring",
ring1="Menelaus's Ring",
ring2="Haoma's Ring",
back=gear.BRD_Song_Cape,
waist="Bishop's Sash",
}
sets.midcast.Cursna = set_combine(sets.midcast.StatusRemoval, {
hands="Hieros Mittens",
neck="Debilis Medallion",
ear1="Beatific Earring",
back="Oretan. Cape +1",
})
sets.midcast['Enhancing Magic'] = {
main="Kali",
sub="Genbu\'s Shield",
head="Telchine Cap",
body="Telchine Chas.",
hands="Telchine Gloves",
legs="Telchine Braconi",
feet="Telchine Pigaches",
neck="Incanter's Torque",
ear1="Augment. Earring",
ear2="Andoaa Earring",
ring1={name="Weather. Ring", bag="wardrobe"},
ring2={name="Stikini Ring", bag="wardrobe2"},
back="Fi Follet Cape +1",
waist="Olympus Sash",
}
sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {head="Inyanga Tiara +2"})
sets.midcast.Haste = sets.midcast['Enhancing Magic']
sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {waist="Gishdubar Sash", back="Grapevine Cape"})
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {neck="Nodens Gorget", waist="Siegel Sash"})
sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {waist="Emphatikos Rope"})
sets.midcast.Protect = set_combine(sets.midcast['Enhancing Magic'], {ring2="Sheltered Ring"})
sets.midcast.Protectra = sets.midcast.Protect
sets.midcast.Shell = sets.midcast.Protect
sets.midcast.Shellra = sets.midcast.Shell
------------------------------------------------------------------------------------------------
----------------------------------------- Idle Sets --------------------------------------------
------------------------------------------------------------------------------------------------
sets.idle = {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Gende. Gages +1",
legs="Ayanmo Cosciales",
feet="Fili Cothurnes",
neck="Moonbow Whistle",
--neck="Bathy Choker +1",
ear1="Genmei Earring",
ear2="Infused Earring",
ring1={name="Stikini Ring +1", bag="wardrobe3"},
ring2={name="Stikini Ring +1", bag="wardrobe4"},
back="Moonlight Cape",
waist="Flume Belt +1",
}
sets.idle.DT = {
sub="Genbu\'s Shield", --10/0
head="Inyanga Tiara +2", --0/5
body="Ayanmo Corazza", --7/7
hands="Inyan. Dastanas +2", --0/4
legs="Bihu Cannions +1", --6/0
feet="Fili Cothurnes", --0/3
neck="Loricate Torque +1", --6/6
ear1="Genmei Earring", --2/0
ear2="Etiolation Earring", --0/3
ring1="Moonlight Ring", --5/5
ring2="Defending Ring", --10/10
back="Moonlight Cape", --6/6
waist="Flume Belt +1", --4/0
}
sets.idle.MEva = {
sub="Genbu\'s Shield", --10/0
head="Inyanga Tiara +2", --0/5
body="Inyanga Jubbah +2", --0/8
hands="Inyan. Dastanas +2", --0/4
legs="Inyanga Shalwar +2", --0/6
feet="Fili Cothurnes", --0/3
neck="Warder's Charm +1",
ear2="Etiolation Earring", --0/3
ring1="Moonlight Ring", --5/5
ring2="Defending Ring", --10/10
back="Moonlight Cape", --6/6
waist="Carrier's Sash",
}
sets.idle.Town = set_combine(sets.idle, {
main="Kali",
sub="Genbu\'s Shield",
range="Linos",
head="Fili Calot",
body="Ayanmo Corazza",
hands="Gende. Gages +1",
legs="Bihu Cannions +1",
neck="Moonbow Whistle",
ear1="Enchntr. Earring +1",
ear2="Regal Earring",
back=gear.BRD_Song_Cape,
})
sets.idle.Weak = sets.idle.DT
------------------------------------------------------------------------------------------------
---------------------------------------- Defense Sets ------------------------------------------
------------------------------------------------------------------------------------------------
sets.defense.PDT = sets.idle.DT
sets.defense.MDT = sets.idle.DT
sets.Kiting = {feet="Fili Cothurnes +1"}
sets.latent_refresh = {waist="Fucho-no-obi"}
------------------------------------------------------------------------------------------------
---------------------------------------- Engaged Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- Engaged sets
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
sets.engaged = {
main="Kali",
sub="Genbu\' Shield",
range=gear.Linos_TP,
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Aya. Manopolas",
legs="Ayanmo Cosciales",
feet="Aya. Gambieras +1",
neck="Bard's Charm +1",
ear1="Brutal Earring",
ear2="Telos Earring",
ring1={name="Chirich Ring +1", bag="wardrobe3"},
ring2="Ilabrat Ring",
back=gear.BRD_TP_Cape,
waist="Windbuffet Belt",
}
sets.engaged.Acc = set_combine(sets.engaged, {
ear2="Mache Earring +1",
ring2="Ramuh Ring +1",
waist="Kentarch Belt +1",
})
-- 45% Magic Haste (36% DW to cap)
sets.engaged.DW = {
main="Kali",
sub="Genbu\'s Shield",
range=gear.Linos_TP,
head="Aya. Zucchetto",
body="Ayanmo Corazza",
hands="Aya. Manopolas",
legs="Ayanmo Cosciales",
feet="Aya. Gambieras +1",
neck="Bard's Charm +1",
ear1="Brutal Earring", --4
ear2="Telos Earring",
ring1={name="Chirich Ring +1", bag="wardrobe3"},
ring2="Ilabrat Ring",
back=gear.BRD_TP_Cape,
waist="Reiki Yotai", --7
}
sets.engaged.DW.Acc = set_combine(sets.engaged.DW, {
ear2="Mache Earring +1",
ring2="Ramuh Ring +1",
})
------------------------------------------------------------------------------------------------
---------------------------------------- Special Sets ------------------------------------------
------------------------------------------------------------------------------------------------
sets.SongDWDuration = {main="Carnwenhan", sub="Kali"}
sets.buff.Doom = {
neck="Nicander's Necklace", --20
ring1={name="Eshmun's Ring", bag="wardrobe3"}, --20
ring2={name="Eshmun's Ring", bag="wardrobe4"}, --20
waist="Gishdubar Sash", --10
}
sets.Obi = {waist="Hachirin-no-Obi"}
sets.CP = {back="Mecisto. Mantle"}
--sets.Reive = {neck="Ygnas's Resolve +1"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
if spell.type == 'BardSong' then
--[[ Auto-Pianissimo
if ((spell.target.type == 'PLAYER' and not spell.target.charmed) or (spell.target.type == 'NPC' and spell.target.in_party)) and
not state.Buff['Pianissimo'] then
local spell_recasts = windower.ffxi.get_spell_recasts()
if spell_recasts[spell.recast_id] < 2 then
send_command('@input /ja "Pianissimo" <me>; wait 1.5; input /ma "'..spell.name..'" '..spell.target.name)
eventArgs.cancel = true
return
end
end]]
if spell.name == 'Honor March' then
equip({range="Marsyas"})
end
if string.find(spell.name,'Lullaby') then
if buffactive.Troubadour then
equip({range="Marsyas"})
elseif state.LullabyMode.value == 'Horn' then
equip({range="Gjallarhorn"})
else
equip({range="Daurdabla"})
end
end
end
if spellMap == 'Utsusemi' then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
cancel_spell()
add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
eventArgs.handled = true
return
elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
end
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_midcast(spell, action, spellMap, eventArgs)
if spell.type == 'BardSong' then
-- layer general gear on first, then let default handler add song-specific gear.
local generalClass = get_song_class(spell)
if generalClass and sets.midcast[generalClass] then
equip(sets.midcast[generalClass])
end
if spell.name == 'Honor March' then
equip({range="Marsyas"})
end
if string.find(spell.name,'Lullaby') then
if buffactive.Troubadour then
equip({range="Marsyas"})
elseif state.LullabyMode.value == 'Horn' then
equip({range="Gjallarhorn"})
else
equip({range="Daurdabla"})
end
end
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.type == 'BardSong' then
if state.CombatForm.current == 'DW' then
equip(sets.SongDWDuration)
end
end
end
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.english:contains('Lullaby') and not spell.interrupted then
get_lullaby_duration(spell)
end
end
function job_buff_change(buff,gain)
-- if buffactive['Reive Mark'] then
-- if gain then
-- equip(sets.Reive)
-- disable('neck')
-- else
-- enable('neck')
-- end
-- end
if buff == "doom" then
if gain then
equip(sets.buff.Doom)
send_command('@input /p Doomed.')
disable('ring1','ring2','waist')
else
enable('ring1','ring2','waist')
--handle_equipping_gear(player.status)
end
end
end
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if state.WeaponLock.value == true then
disable('main','sub')
else
enable('main','sub')
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
--function job_handle_equipping_gear(playerStatus, eventArgs)
--update_combat_form()
--end
function job_update(cmdParams, eventArgs)
--handle_equipping_gear(player.status)
end
-- Called for direct player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1]:lower() == 'etude' then
send_command('@input /ma '..state.Etude.value..' <stpc>')
elseif cmdParams[1]:lower() == 'carol' then
send_command('@input /ma '..state.Carol.value..' <stpc>')
elseif cmdParams[1]:lower() == 'threnody' then
send_command('@input /ma '..state.Threnody.value..' <stnpc>')
end
end
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if state.CP.current == 'on' then
equip(sets.CP)
disable('back')
else
enable('back')
end
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
local cf_msg = ''
if state.CombatForm.has_value then
cf_msg = ' (' ..state.CombatForm.value.. ')'
end
local m_msg = state.OffenseMode.value
if state.HybridMode.value ~= 'Normal' then
m_msg = m_msg .. '/' ..state.HybridMode.value
end
local ws_msg = state.WeaponskillMode.value
local c_msg = state.CastingMode.value
local d_msg = 'None'
if state.DefenseMode.value ~= 'None' then
d_msg = state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value
end
local i_msg = state.IdleMode.value
local msg = ''
if state.Kiting.value then
msg = msg .. ' Kiting: On |'
end
add_to_chat(002, '| ' ..string.char(31,210).. 'Melee' ..cf_msg.. ': ' ..string.char(31,001)..m_msg.. string.char(31,002).. ' |'
..string.char(31,207).. ' WS: ' ..string.char(31,001)..ws_msg.. string.char(31,002).. ' |'
..string.char(31,060).. ' Magic: ' ..string.char(31,001)..c_msg.. string.char(31,002).. ' |'
..string.char(31,004).. ' Defense: ' ..string.char(31,001)..d_msg.. string.char(31,002).. ' |'
..string.char(31,008).. ' Idle: ' ..string.char(31,001)..i_msg.. string.char(31,002).. ' |'
..string.char(31,002)..msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Determine the custom class to use for the given song.
function get_song_class(spell)
-- Can't use spell.targets:contains() because this is being pulled from resources
if set.contains(spell.targets, 'Enemy') then
if state.CastingMode.value == 'Resistant' then
return 'SongEnfeebleAcc'
else
return 'SongEnfeeble'
end
elseif state.SongMode.value == 'Placeholder' then
return 'SongPlaceholder'
else
return 'SongEnhancing'
end
end
function get_lullaby_duration(spell)
local self = windower.ffxi.get_player()
local troubadour = false
local clarioncall = false
local soulvoice = false
local marcato = false
for i,v in pairs(self.buffs) do
if v == 348 then troubadour = true end
if v == 499 then clarioncall = true end
if v == 52 then soulvoice = true end
if v == 231 then marcato = true end
end
local mult = 1
if player.equipment.range == 'Daurdabla' then mult = mult + 0.3 end -- change to 0.25 with 90 Daur
if player.equipment.range == "Gjallarhorn" then mult = mult + 0.4 end -- change to 0.3 with 95 Gjall
if player.equipment.range == "Marsyas" then mult = mult + 0.5 end
if player.equipment.main == "Carnwenhan" then mult = mult + 0.5 end -- 0.1 for 75, 0.4 for 95, 0.5 for 99/119
if player.equipment.main == "Legato Dagger" then mult = mult + 0.05 end
if player.equipment.main == "Kali" then mult = mult + 0.05 end
if player.equipment.sub == "Kali" then mult = mult + 0.05 end
if player.equipment.sub == "Legato Dagger" then mult = mult + 0.05 end
if player.equipment.neck == "Aoidos' Matinee" then mult = mult + 0.1 end
if player.equipment.neck == "Mnbw. Whistle +1" then mult = mult + 0.2 end
if player.equipment.neck == "Mnbw. Whistle +1 +1" then mult = mult + 0.3 end
if player.equipment.body == "Fili Hongreline +1" then mult = mult + 0.12 end
if player.equipment.legs == "Inyanga Shalwar +1" then mult = mult + 0.15 end
if player.equipment.legs == "Inyanga Shalwar +2" then mult = mult + 0.17 end
if player.equipment.feet == "Brioso Slippers" then mult = mult + 0.1 end
if player.equipment.feet == "Brioso Slippers +1" then mult = mult + 0.11 end
if player.equipment.feet == "Brioso Slippers +2" then mult = mult + 0.13 end
if player.equipment.feet == "Brioso Slippers +3" then mult = mult + 0.15 end
if player.equipment.hands == 'Brioso Cuffs +1' then mult = mult + 0.1 end
if player.equipment.hands == 'Brioso Cuffs +2' then mult = mult + 0.1 end
if player.equipment.hands == 'Brioso Cuffs +3' then mult = mult + 0.2 end
if troubadour then
mult = mult * 2
end
if spell.en == "Foe Lullaby II" or spell.en == "Horde Lullaby II" then
base = 60
elseif spell.en == "Foe Lullaby" or spell.en == "Horde Lullaby" then
base = 30
end
totalDuration = math.floor(mult * base)
-- Job Points Buff
totalDuration = totalDuration + self.job_points.brd.lullaby_duration
if troubadour then
totalDuration = totalDuration + self.job_points.brd.lullaby_duration
-- adding it a second time if Troubadour up
end
if clarioncall then
if troubadour then
totalDuration = totalDuration + (self.job_points.brd.clarion_call_effect * 2 * 2)
-- Clarion Call gives 2 seconds per Job Point upgrade. * 2 again for Troubadour
else
totalDuration = totalDuration + (self.job_points.brd.clarion_call_effect * 2)
-- Clarion Call gives 2 seconds per Job Point upgrade.
end
end
if marcato and not soulvoice then
totalDuration = totalDuration + self.job_points.brd.marcato_effect
end
-- Create the custom timer
if spell.english == "Foe Lullaby II" or spell.english == "Horde Lullaby II" then
send_command('@timers c "Lullaby II ['..spell.target.name..']" ' ..totalDuration.. ' down spells/00377.png')
elseif spell.english == "Foe Lullaby" or spell.english == "Horde Lullaby" then
send_command('@timers c "Lullaby ['..spell.target.name..']" ' ..totalDuration.. ' down spells/00376.png')
end
end
-- function update_combat_form()
-- classes.CustomMeleeGroups:clear()
-- if S{'NIN','DNC'}:contains(player.sub_job) then
-- --if not (player.equipment.sub:contains('Shield') or player.equipment.sub == 'empty') then
-- state.CombatForm:set('DW')
-- else
-- state.CombatForm:reset()
-- --end
-- end
-- end
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 3)
end
function set_lockstyle()
send_command('wait 2; input /lockstyleset ' .. lockstyleset)
end
Any help is greatly appreciated. ^_^/ Does this happen even when you select a spell from the menu?
When you see the issue, try unloading Gearswap completely, then casting a spell, then reloading it, and casting another spell.
[+]
Bismarck.Tesiex
Server: Bismarck
Game: FFXI
Posts: 18
By Bismarck.Tesiex 2019-06-03 07:34:05
Does this happen even when you select a spell from the menu?
When you see the issue, try unloading Gearswap completely, then casting a spell, then reloading it, and casting another spell.
Yes, can't cast/ability from the menu at all.
When this happens the only way I've found to get any kind of control back is to do "lua unload gearswap" in the console. This lets me use the menu and macros again (though obviously no gearswap functionality).
Reloading gear swap (lua load gearswap) from this state results in being stuck again.
Tried engaging/disengaging in this state and I could but saw nothing from gearswap (no debug in chat window or swaps).
Bismarck.Xurion
Server: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2019-06-03 17:01:49
Does this happen even when you select a spell from the menu?
When you see the issue, try unloading Gearswap completely, then casting a spell, then reloading it, and casting another spell.
Yes, can't cast/ability from the menu at all.
When this happens the only way I've found to get any kind of control back is to do "lua unload gearswap" in the console. This lets me use the menu and macros again (though obviously no gearswap functionality).
Reloading gear swap (lua load gearswap) from this state results in being stuck again.
Tried engaging/disengaging in this state and I could but saw nothing from gearswap (no debug in chat window or swaps). I tested your Lua with no issue. I cycled through the different modes with the keybinds, engaged and killed some mobs, cast buffs and debuffs no problem.
Only suggestion I can give is to make sure your Windower console doesn't have any errors. Nowhere in your Lua does it prevent you from casting a spell under any circumstances :/
[+]
Bismarck.Ihinaa
Server: Bismarck
Game: FFXI
Posts: 160
By Bismarck.Ihinaa 2019-06-05 22:40:11
Quick question.
I set up my brd to be able to auto-sing one song after another. For example:
//mar3min543
...will do exactly what you think it will do.
//mar32min5sentd
...will also do exactly what you think it will do
The issue is, since everything is dynamic, I have to go into my script folder and do
alias mar3min543 gs c mar3min543
alias mar3min543d gs c mar3min543d
alias mar3min54sent gs c mar3min54sent
alias mar3min54sentd gs c mar3min54sentd
alias mar32min54 gs c mar32min54
alias mar32min54d gs c mar32min54d
...and on and on it goes in order to pass it to gearswap. When/if I add other types of songs (mads, etudes, etc), that'll just multiple the alias' needed several times over. Is there a way to send everything after '//' automatically to gearswap's self_command without needing to alias literally everything?
Server: Asura
Game: FFXI
Posts: 496
By Asura.Elizabet 2019-06-05 22:47:09
Not that I know of, since "gs c" is what gearswap picks up to know that what follows is the command.
But if you are going to go through the trouble of typing out
//mar3min543
why not just type out:
//gs c mar3min543
an extra 5 key presses I know, but it'll save you the aliases.
Bismarck.Ihinaa
Server: Bismarck
Game: FFXI
Posts: 160
By Bismarck.Ihinaa 2019-06-06 04:57:04
Because you always want to offload as much work as possible and let the machine handle it.
Is there a way to hide/ignore those soul pyre/mining points? They're getting in the way of my /targetnpc. I'm not sure but I think they won't appear if you delete their .dat file. I don't know how to find which one it belongs to though.
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.
|
|