Gearswap Support Thread

Language: JP EN DE FR
New Items
2023-11-19
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 132 133 134 ... 181 182 183
 Asura.Chaostaru
Offline
Server: Asura
Game: FFXI
Posts: 695
By Asura.Chaostaru 2018-04-05 11:49:26
Link | Quote | Reply
 
Ragnarok.Lockfort said: »
Have you updated your resources by opening up windower, then logging out and back in?

Yep log/relog several times. after 1st original windower update after the servers came back up, i havent seen another.
 Sylph.Talym
VIP
Offline
Server: Sylph
Game: FFXI
user: Talym
Posts: 70
By Sylph.Talym 2018-04-05 11:53:06
Link | Quote | Reply
 
Asura.Chaostaru said: »
does GS need to be updated?

export for new cape augs does this.

back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','Crit.hit rate+10','System: 1 ID: 1158 Val: 4',}},

Which augment is this supposed to be?
 Asura.Chaostaru
Offline
Server: Asura
Game: FFXI
Posts: 695
By Asura.Chaostaru 2018-04-05 12:14:37
Link | Quote | Reply
 
Sylph.Talym said: »
Asura.Chaostaru said: »
does GS need to be updated?

export for new cape augs does this.

back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','Crit.hit rate+10','System: 1 ID: 1158 Val: 4',}},

Which augment is this supposed to be?

Thats suppose to be status resist +10
 Sylph.Talym
VIP
Offline
Server: Sylph
Game: FFXI
user: Talym
Posts: 70
By Sylph.Talym 2018-04-05 12:15:53
Link | Quote | Reply
 
Thanks, investigating.
 Asura.Dagget
Offline
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-05 15:50:14
Link | Quote | Reply
 
Hello all,

Question; Do I have to logout of FFxi (shutdown) to reload a gearset list Ive edited while in game? Or can I just reload my file while still in game to get the updated gear sets Ive changed?
 Sylph.Talym
VIP
Offline
Server: Sylph
Game: FFXI
user: Talym
Posts: 70
By Sylph.Talym 2018-04-05 16:27:29
Link | Quote | Reply
 
Asura.Dagget said: »
Hello all,

Question; Do I have to logout of FFxi (shutdown) to reload a gearset list Ive edited while in game? Or can I just reload my file while still in game to get the updated gear sets Ive changed?

//gs reload
 Asura.Dagget
Offline
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-05 16:51:48
Link | Quote | Reply
 
Sylph.Talym said: »
Asura.Dagget said: »
Hello all,

Question; Do I have to logout of FFxi (shutdown) to reload a gearset list Ive edited while in game? Or can I just reload my file while still in game to get the updated gear sets Ive changed?

//gs reload

Thank you. I was told I needed to logout, but I thought the /gs reload would work, just wanted confirmation.
 Asura.Eiryl
Offline
Server: Asura
Game: FFXI
user: Eiryl
By Asura.Eiryl 2018-04-05 19:02:02
Link | Quote | Reply
 
Does GS work with the 'System: 1 ID: 1158 Val: 4'

As current aug, or are you ***outta luck until they push a resources update
Offline
Posts: 346
By Sidiov 2018-04-05 19:07:35
Link | Quote | Reply
 
works
 Asura.Bangerang
Offline
Server: Asura
Game: FFXI
user: Eela
By Asura.Bangerang 2018-04-05 19:18:37
Link | Quote | Reply
 
Can anyone figure out why this Selindre lua won't equip any engaged sets? Always just equips sets.idle as melee set !?!?

https://pastebin.com/kzrCkwft

Edit: Nevermind. I figured out that these luas won't switch to engaged sets until you've been attacking for some time. Although, it appears to get stuck now and then.
 Bahamut.Mayoyama
Offline
Server: Bahamut
Game: FFXI
user: Mayoyama
Posts: 26
By Bahamut.Mayoyama 2018-04-06 09:35:37
Link | Quote | Reply
 
Hi all. I've been happily using motenen's PUP lua for a couple months now, I just noticed that as of the most recent patch (april) the lua no longer registers whether my pet is idle or engaged, and it also no longer detects/swaps gear when my automaton does provoke/flash. Anyone else having these issues?
 Asura.Vienner
Offline
Server: Asura
Game: FFXI
Posts: 1544
By Asura.Vienner 2018-04-06 09:57:30
Link | Quote | Reply
 
Hi everyone, I'm not very good at gearswap and recently picked up BRD and with that all the problems with finding and updating a suitable lua. I ran into the problem that when i engage i keep wearing assiduity pants and the brioso feet, while my engaged set states that i should equip ayanmo gear. Any thoughts on what the obvious thing is I'm not seeing? (cause I've been messing with it for 2 hours now and I dont know anymore)
Code
------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job.  Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
send_command('wait 6;input /lockstyleset 6')

--[[
    Custom commands:
    
    ExtraSongsMode may take one of three values: None, Dummy, FullLength
    
    You can set these via the standard 'set' and 'cycle' self-commands.  EG:
    gs c cycle ExtraSongsMode
    gs c set ExtraSongsMode Dummy
    
    The Dummy 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 dummy Daurdabla song:
    /console gs c set ExtraSongsMode Dummy
    /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')
end


-- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
function job_setup()
    state.ExtraSongsMode = M{['description']='Extra Songs', 'None', 'Dummy', 'FullLength'}

    state.Buff['Pianissimo'] = buffactive['pianissimo'] or false

    -- For tracking current recast timers via the Timers plugin.
    custom_timers = {}
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')

    brd_daggers = S{'Izhiikoh', 'Vanir Knife', 'Atoyac', 'Kali', 'Sabebus','Felbre Dague'}
    pick_tp_weapon()
    
    -- Adjust this if using the Terpander (new +song instrument)
    info.ExtraSongInstrument = 'Daurdabla'
    -- How many extra songs we can keep from Daurdabla/Terpander
    info.ExtraSongs = 2
    
    -- Set this to false if you don't want to use custom timers.
    state.UseCustomTimers = M(true, 'Use Custom Timers')
    
    -- Additional local binds
    send_command('bind ^` gs c cycle ExtraSongsMode')
    send_command('bind !` input /ma "Chocobo Mazurka" <me>')

    select_default_macro_book()
end


-- Called when this job file is unloaded (eg: job change)
function user_unload()
    send_command('unbind ^`')
    send_command('unbind !`')
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={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}}, --7
	ammo="Impatiens",
    head="Nahtirah Hat", --10
    body="Inyanga Jubbah +2", --14
    hands={ name="Chironic Gloves", augments={'Accuracy+2','"Fast Cast"+3','"Mag.Atk.Bns."+8',}}, --3
    legs={ name="Kaykaus Tights", augments={'MP+60','"Cure" spellcasting time -5%','Enmity-5',}}, --6
    feet={ name="Chironic Slippers", augments={'Mag. Acc.+5 "Mag.Atk.Bns."+5','"Fast Cast"+2','MND+10','Mag. Acc.+13','"Mag.Atk.Bns."+3',}}, --2
    neck="Voltsurge Torque", --4
    waist="Witful Belt", --5
    left_ear="Etiolation Earring", --1
    right_ear="Loquac. Earring", --2
    left_ring="Prolix Ring", --2
    right_ring="Kishar Ring", --4
    back={ name="Intarabus's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','CHR+10','"Fast Cast"+10',}}} --10

    sets.precast.FC.Cure = set_combine(sets.precast.FC, {})

    sets.precast.FC.Stoneskin = set_combine(sets.precast.FC, {hand="Carapacho Cuffs", waist="Siegel Sash", legs="Doyen Pants"})

    sets.precast.FC['Enhancing Magic'] =  set_combine(sets.precast.FC, {waist="Siegel Sash"})
																			

    sets.precast.FC.BardSong = {
		main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
		legs="Doyen Pants",
        head="Fili calot +1", ear1="Aoidos' Earring",ear2="Loquac. Earring",
        body="Inyanga jubbah +2",}

    sets.precast.FC["Honor March"] = set_combine(sets.precast.FC.BardSong,{range="Marsyas"})
    sets.precast.FC.Daurdabla = 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 Justaucorps +1"}
    sets.precast.JA['Soul Voice'] = {legs="Bards's Cannions"}

    -- Waltz set (chr and vit)
    sets.precast.Waltz = {
	head="Brioso Roundlet +1",
	neck="Unmoving Collar +1",
	ear1="Regal Earring",
	body="Inyanga Jubbah +2",
	hands="Inyanga Dastanas +1",
	ring1="Defending Ring",
	ring2="Moonbeam Ring",
	back={ name="Intarabus's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','CHR+10','"Fast Cast"+10',}},
	waist="Aristo Belt",
	legs="Gyve Trousers",
	feet="Kaykaus Boots"}
	
	
    
       
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = { 
	main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    head="Aya. Zucchetto +1",
    body="Inyanga Jubbah +2",
    hands={ name="Chironic Gloves", augments={'Accuracy+2','"Fast Cast"+3','"Mag.Atk.Bns."+8',}},
    legs="Aya. Cosciales +1",
    feet="Aya. Gambieras +1",
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Ishvara Earring",
    right_ear="Bladeborn Earring",
    left_ring="Moonbeam Ring",
    right_ring="Rajas Ring",
    back={ name="Intarabus's Cape", augments={'Accuracy+20 Attack+20','Weapon skill damage +10%',}}}
    
    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS)

    sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS)

    sets.precast.WS['Mordant Rime'] = set_combine(sets.precast.WS)
    
    
    -- Midcast Sets

    -- General set for recast times.
    sets.midcast.FastRecast = {  
	main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}}, --7
	ammo="Impatiens",
    head="Nahtirah Hat", --10
    body="Inyanga Jubbah +2", --14
    hands={ name="Chironic Gloves", augments={'Accuracy+2','"Fast Cast"+3','"Mag.Atk.Bns."+8',}}, --3
    legs={ name="Kaykaus Tights", augments={'MP+60','"Cure" spellcasting time -5%','Enmity-5',}}, --6
    feet={ name="Chironic Slippers", augments={'Mag. Acc.+5 "Mag.Atk.Bns."+5','"Fast Cast"+2','MND+10','Mag. Acc.+13','"Mag.Atk.Bns."+3',}}, --2
    neck="Voltsurge Torque", --4
    waist="Witful Belt", --5
    left_ear="Etiolation Earring", --1
    right_ear="Loquac. Earring", --2
    left_ring="Prolix Ring", --2
    right_ring="Kishar Ring", --4
    back={ name="Intarabus's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','CHR+10','"Fast Cast"+10',}}} --10	
															
																		
        
    -- Gear to enhance certain classes of songs.  No instruments added here since Gjallarhorn is being used.
    sets.midcast.Ballad = {legs="Fili Rhingrave"}
    sets.midcast.Lullaby = {hands="Brioso Cuffs +1"}
    sets.midcast.Madrigal = {head="Fili calot +1"}
    sets.midcast.March = {hands="Fili manchettes +1"}
    sets.midcast["Honor March"] = set_combine(sets.midcast.SongEffect,{range="Marsyas"})
    sets.midcast.Minuet = {body="Fili hongreline +1"}
    sets.midcast.Minne = {}
    sets.midcast.Paeon = {head="Brioso Roundlet +1"}
    sets.midcast.Carol = {head="Fili calot +1"}
    body={"Fili hongreline +1",hands="Fili manchettes +1"}
    legs={"Aoidos' Rhing. +2",feet="Fili Cothurnes"}
    sets.midcast["Sentinel's Scherzo"] = {feet="Fili Cothurnes"}
    sets.midcast['Magic Finale'] = {neck="Wind Torque",waist="Corvax Sash",legs="Fili Rhingrave"}

    sets.midcast.Mazurka = {range=info.ExtraSongInstrument}
    

    -- For song buffs (duration and AF3 set bonus)
    sets.midcast.SongEffect = {main="Carnwenhan",sub="Kali",
		range="Gjallarhorn",
        head="Fili calot +1",neck="Moonbow whistle +1",ear2="Loquacious Earring",
        body="Fili hongreline +1",hands="Fili manchettes +1",ring1="Inyanga Ring",
        back="Harmony Cape",waist="Corvax Sash",legs="Inyanga shalwar +2",feet="Brioso Slippers +3"}

    -- For song defbuffs (duration primary, accuracy secondary)
    sets.midcast.SongDebuff = {main="Carnwenhan",sub="Kali",range="Gjallarhorn",
        head="Brioso Roundlet +1",neck="Moonbow whistle +1",ear1="Psystorm Earring",ear2="Lifestorm Earring",
        body="Fili hongreline +1",hands="Brioso Cuffs +1",ring1="Inyanga Ring",ring2="Kishar ring",
        back={ name="Intarabus's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','CHR+10','"Fast Cast"+10',}},waist="Goading Belt",legs="Inyanga shalwar +2",feet="Brioso Slippers +1"}

    -- For song defbuffs (accuracy primary, duration secondary)
    sets.midcast.ResistantSongDebuff = {main={ name="Kali", augments={'MP+60','Mag. Acc.+20','"Refresh"+1',}},sub="Ammurapi shield",range="Gjallarhorn",
        head="Brioso Roundlet +1",neck="Deceiver's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
        body="Brioso Justaucorps +1",hands="Brioso Cuffs +1",ring1="Inyanga Ring",ring2="Kishar ring",
        back={ name="Intarabus's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','CHR+10','"Fast Cast"+10',}},waist="Demonry Sash",legs="Inyanga shalwar +2",feet="Brioso Slippers +1"}

    -- Song-specific recast reduction
    sets.midcast.SongRecast = {ear2="Loquacious Earring",
        ring1="Inyanga Ring",
        back="Harmony Cape",waist="Corvax Sash",legs="Fili Rhingrave"}

    --sets.midcast.Daurdabla = set_combine(sets.midcast.FastRecast, sets.midcast.SongRecast, {range=info.ExtraSongInstrument})

    -- Cast spell with normal gear, except using Daurdabla instead
    sets.midcast.Daurdabla = {range=info.ExtraSongInstrument}

    -- Dummy song with Daurdabla; minimize duration to make it easy to overwrite.
    sets.midcast.DaurdablaDummy = {main="Izhiikoh",range=info.ExtraSongInstrument,
        head="Fili Calot +1",neck="Orunmila's torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
        body="Brioso Justaucorps +1",hands="Fili manchettes +1",ring1="Inyanga Ring",ring2="Kishar ring",
        back="Swith Cape",waist="Goading Belt",legs="Kaykaus tights",feet="Bokwus Boots"}

    -- Other general spells and classes.
    sets.midcast.Cure = {main="Arka IV",sub='Achaq Grip',
        head="Gendewitha Caubeen",
        body="Annoint. Kalasiris",hands="Kaykaus cuffs",ring1="Ephedra Ring",ring2="Sirona's Ring",
        legs="Kaykaus Tights",feet="Medium's Sabots"}
        
    sets.midcast.Curaga = sets.midcast.Cure
        
    sets.midcast.Stoneskin = {
        head="Fili Calot +1",
        body="Annoint. Kalasiris",hands="Gendewitha Gages",
        legs="Kaykaus tights",feet="Gendewitha Galoshes"}
        
    sets.midcast.Cursna = {
        neck="Malison Medallion",
        hands="Hieros Mittens",ring1="Ephedra Ring"}

    
    -- Sets to return to when not performing an action.
    
    -- Resting sets
    sets.resting = {main=gear.Staff.HMP, 
        body="Annoint. Kalasiris",
        legs="Assid. Pants +1",feet="Chelona Boots +1"}
    
    
    -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
    sets.idle = {    
	head="Aya. Zucchetto +1",
    body="Inyanga Jubbah +2",
    hands="Aya. Manopolas +1",
    legs="Aya. Cosciales +1",
    feet="Aya. Gambieras +1",
    neck="Loricate Torque +1",
    waist="Gishdubar Sash",
    left_ear="Hearty Earring",
    right_ear="Odnowa Earring +1",
    left_ring="Moonbeam Ring",
    right_ring="Defending Ring",
    back="Solemnity Cape",}

    sets.idle.PDT = {main="Sangoma", sub="Ammurapi Shield",range="Oneiros Harp",
        head="Brioso Roundlet +1",neck="Loricate torque +1",ear1="Moonshade Earring",ear2="Loquacious Earring",
        body="Annoint. Kalasiris",hands="Brioso Cuffs +1",ring1="Defending Ring",ring2="Dark Ring",
        back="Moonbeam cape",waist="Flume Belt +1",legs="Assid. Pants +1",feet="Ayanmo Gambieras +1"}

    sets.idle.Town = {main="Sangoma", sub="Ammurapi Shield",range="Oneiros Harp",
        head="Brioso Roundlet +1",neck="Loricate torque +1",ear1="Moonshade Earring",ear2="Loquacious Earring",
        body="Annoint. Kalasiris",hands="Brioso Cuffs +1",ring1="Defending Ring",ring2="Dark Ring",
        back="Moonbeam Cape",waist="Flume Belt +1",legs="Assid. Pants +1",feet="Ayanmo Gambieras +1"}
    
    sets.idle.Weak = {main="Sangoma",sub="Ammurapi Shield",range="Oneiros Harp",
        head="Brioso Roundlet +1",neck="Loricate torque +1",ear1="Moonshade Earring",
        body="Annoint. Kalasiris",hands="Brioso Cuffs +1",ring1="Defending Ring",ring2="Dark Ring",
        back="Moonbeam cape",waist="Flume Belt +1",legs="Assid. Pants +1",feet="Ayanmo Gambieras +1"}
    
    
    -- Defense sets

    sets.defense.PDT = {main="Sangoma",sub="Ammurapi shield",
        head="Brioso Roundlet +3",neck="Loricate torque +1",
        body="Annoint. Kalasiris",hands="Brioso Cuffs +3",ring1="Defending Ring",ring2=gear.DarkRing.physical,
        back="Umbra Cape",waist="Flume Belt +1",legs="Assid. Pants +1",feet="Ayanmo Gambieras +1"}

    sets.defense.MDT = {main="Sangoma",sub="Ammurapi shield",
        head="Brioso Roundlet +3",neck="Loricate torque +1",
        body="Annoint. Kalasiris",hands="Brioso Cuffs +3",ring1="Defending Ring",ring2="Shadow Ring",
        back="Engulfer Cape",waist="Flume Belt +1",legs="Assid. Pants +1",feet="Ayanmo Gambieras +1"}

    sets.Kiting = {feet="Aoidos' Cothurnes +2"}

    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="Aya. Zucchetto +2",
    body="Ayanmo Corazza +2",
    hands="Aya. Manopolas +1",
    legs="Aya. Cosciales +1",
    feet="Aya. Gambieras +1",
    neck="Defiant Collar",
    waist="Sarissapho. Belt",
    left_ear="Steelflash Earring",
    right_ear="Bladeborn Earring",
    left_ring="Hetairoi Ring",
    right_ring="Moonbeam Ring",
    back={ name="Intarabus's Cape", augments={'Accuracy+20 Attack+20','Weapon skill damage +10%',}}}
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
    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.action_type == 'Magic' then
        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
        end
    end
end

function job_post_midcast(spell, action, spellMap, eventArgs)
    if spell.type == 'BardSong' then
        if state.ExtraSongsMode.value == 'FullLength' then
            equip(sets.midcast.Daurdabla)
        end

        state.ExtraSongsMode:reset()
    end
end

-- Set eventArgs.handled to true if we don't want automatic gear equipping to be done.
function job_aftercast(spell, action, spellMap, eventArgs)
    if spell.type == 'BardSong' and not spell.interrupted then
        if spell.target and spell.target.type == 'SELF' then
            adjust_timers(spell, spellMap)
        end
    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','ammo')
        else
            enable('main','sub','ammo')
        end
    end
end

-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------


-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
    if player.mpp < 51 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
    
    return idleSet
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.
-------------------------------------------------------------------------------------------------------------------

-- 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 'ResistantSongDebuff'
        else
            return 'SongDebuff'
        end
    elseif state.ExtraSongsMode.value == 'Dummy' then
        return 'DaurdablaDummy'
    else
        return 'SongEffect'
    end
end


-- Function to create custom buff-remaining timers with the Timers plugin,
-- keeping only the actual valid songs rather than spamming the default
-- buff remaining timers.
function adjust_timers(spell, spellMap)
    if state.UseCustomTimers.value == false then
        return
    end
    
    local current_time = os.time()
    
    -- custom_timers contains a table of song names, with the os time when they
    -- will expire.
    
    -- Eliminate songs that have already expired from our local list.
    local temp_timer_list = {}
    for song_name,expires in pairs(custom_timers) do
        if expires < current_time then
            temp_timer_list[song_name] = true
        end
    end
    for song_name,expires in pairs(temp_timer_list) do
        custom_timers[song_name] = nil
    end
    
    local dur = calculate_duration(spell.name, spellMap)
    if custom_timers[spell.name] then
        -- Songs always overwrite themselves now, unless the new song has
        -- less duration than the old one (ie: old one was NT version, new
        -- one has less duration than what's remaining).
        
        -- If new song will outlast the one in our list, replace it.
        if custom_timers[spell.name] < (current_time + dur) then
            send_command('timers delete "'..spell.name..'"')
            custom_timers[spell.name] = current_time + dur
            send_command('timers create "'..spell.name..'" '..dur..' down')
        end
    else
        -- Figure out how many songs we can maintain.
        local maxsongs = 2
        if player.equipment.range == info.ExtraSongInstrument then
            maxsongs = maxsongs + info.ExtraSongs
        end
        if buffactive['Clarion Call'] then
            maxsongs = maxsongs + 1
        end
        -- If we have more songs active than is currently apparent, we can still overwrite
        -- them while they're active, even if not using appropriate gear bonuses (ie: Daur).
        if maxsongs < table.length(custom_timers) then
            maxsongs = table.length(custom_timers)
        end
        
        -- Create or update new song timers.
        if table.length(custom_timers) < maxsongs then
            custom_timers[spell.name] = current_time + dur
            send_command('timers create "'..spell.name..'" '..dur..' down')
        else
            local rep,repsong
            for song_name,expires in pairs(custom_timers) do
                if current_time + dur > expires then
                    if not rep or rep > expires then
                        rep = expires
                        repsong = song_name
                    end
                end
            end
            if repsong then
                custom_timers[repsong] = nil
                send_command('timers delete "'..repsong..'"')
                custom_timers[spell.name] = current_time + dur
                send_command('timers create "'..spell.name..'" '..dur..' down')
            end
        end
    end
end

-- Function to calculate the duration of a song based on the equipment used to cast it.
-- Called from adjust_timers(), which is only called on aftercast().
function calculate_duration(spellName, spellMap)
    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.main == "Dancing Dagger" then mult = mult + 0.1 end -- 0.1 for 75, 0.4 for 95, 0.5 for 99/119
    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.neck == "Moonbow whistle +1" then mult = mult + 0.1 end
    if player.equipment.body == "Aoidos' Hngrln. +2" then mult = mult + 0.1 end
    if player.equipment.legs == "Mdk. Shalwar +1" then mult = mult + 0.1 end
    if player.equipment.feet == "Brioso Slippers +3" then mult = mult + 0.1 end
    if player.equipment.feet == "Brioso Slippers +3" then mult = mult + 0.11 end
    
    if spellMap == 'Paeon' and player.equipment.head == "Brioso Roundlet" then mult = mult + 0.1 end
    if spellMap == 'Paeon' and player.equipment.head == "Brioso Roundlet +1" then mult = mult + 0.1 end
    if spellMap == 'Madrigal' and player.equipment.head == "Fili calot +1" then mult = mult + 0.1 end
    if spellMap == 'Minuet' and player.equipment.body == "Aoidos' Hngrln. +2" then mult = mult + 0.1 end
    if spellMap == 'March' and player.equipment.hands == 'Ad. Mnchtte. +2' then mult = mult + 0.1 end
    if spellMap == 'Ballad' and player.equipment.legs == "Aoidos' Rhing. +2" then mult = mult + 0.1 end
    if spellName == "Sentinel's Scherzo" and player.equipment.feet == "Aoidos' Cothrn. +2" then mult = mult + 0.1 end
    
    if buffactive.Troubadour then
        mult = mult*2
    end
    if spellName == "Sentinel's Scherzo" then
        if buffactive['Soul Voice'] then
            mult = mult*2
        elseif buffactive['Marcato'] then
            mult = mult*1.5
        end
    end
    
    local totalDuration = math.floor(mult*120)

    return totalDuration
end


-- Function to reset timers.
function reset_timers()
    for i,v in pairs(custom_timers) do
        send_command('timers delete "'..i..'"')
    end
    custom_timers = {}
end


-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    set_macro_page(1, 1)
end


windower.raw_register_event('zone change',reset_timers)
windower.raw_register_event('logout',reset_timers)
 Asura.Fabiano
Offline
Server: Asura
Game: FFXI
user: Falsetto
Posts: 81
By Asura.Fabiano 2018-04-06 10:05:44
Link | Quote | Reply
 
Asura.Vienner said: »
Hi everyone, I'm not very good at gearswap and recently picked up BRD and with that all the problems with finding and updating a suitable lua. I ran into the problem that when i engage i keep wearing assiduity pants and the brioso feet, while my engaged set states that i should equip ayanmo gear. Any thoughts on what the obvious thing is I'm not seeing? (cause I've been messing with it for 2 hours now and I dont know anymore)

Silly possibility -- did you upgrade your Ayanmo Pants and Boots to +2 but forget to update your lua to say +2 instead of +1?

Not that I've done something like that before or anything... heh... **looks around nervously**
 Asura.Vienner
Offline
Server: Asura
Game: FFXI
Posts: 1544
By Asura.Vienner 2018-04-06 10:27:21
Link | Quote | Reply
 
Asura.Fabiano said: »
Asura.Vienner said: »
Hi everyone, I'm not very good at gearswap and recently picked up BRD and with that all the problems with finding and updating a suitable lua. I ran into the problem that when i engage i keep wearing assiduity pants and the brioso feet, while my engaged set states that i should equip ayanmo gear. Any thoughts on what the obvious thing is I'm not seeing? (cause I've been messing with it for 2 hours now and I dont know anymore)

Silly possibility -- did you upgrade your Ayanmo Pants and Boots to +2 but forget to update your lua to say +2 instead of +1?

Not that I've done something like that before or anything... heh... **looks around nervously**
heh I wish it was that, just like you not the first time that would have happened. But I'm unlucky this time and its not that ><
 Asura.Vienner
Offline
Server: Asura
Game: FFXI
Posts: 1544
By Asura.Vienner 2018-04-06 11:51:49
Link | Quote | Reply
 
I fixed my problem, thanks for looking anyways :)
 Asura.Eiryl
Offline
Server: Asura
Game: FFXI
user: Eiryl
By Asura.Eiryl 2018-04-06 18:18:03
Link | Quote | Reply
 
Can someone tell me what I would add to a GS file to make it

gs c reset DefenseMode if HP > 90%

Something along the lines of "if hp > 90% and defensemode Magical, and idle, reset defensemode"

Keep ending up in MDT set due to the way react works, if a triggered command is interrupted the finish command never completes and it hangs, so looking for a work around.

IE: "readies flare > defensemodemagical" "completes flare > reset defensemode" But when the casting gets interrupted it never "completes" and remains in defensemodemagical

Or even something as simple as "if idle = reset defensemode"
 Fenrir.Maren
Offline
Server: Fenrir
Game: FFXI
Posts: 1
By Fenrir.Maren 2018-04-06 18:20:53
Link | Quote | Reply
 
Hello, everyone.

I began writing my own BST gearswap file using the "core" of Gearswap (without Motenten's library) to get a grasp of LUA as it relates to FFXI and Gearswap. It's a learning experiment more or less. Some parts are working for me. Other's are not.

I am attempting to create player customized lists for valuable pets and foods as well as normal pets and foods. These could be used for any number of reasons. In my attached example, the "Reward" precast attempts to check to see if you have a "valuable pet" active. If so, "valuable food" is equipped and used. Otherwise "normal food" is equipped and used.

In its current form, the variable/definition names do not seem to work as intended. Perhaps the scope of the variables is off or I do not have a good grasp of the syntax. The question is, how do you create global definitions to use in a "vanilla" Gearswap file? Or can you?

https://pastebin.com/MdyLqWJ4
Offline
Posts: 319
By aisukage 2018-04-06 22:42:03
Link | Quote | Reply
 
Started to have a weird issue. I have 2 Chars and both use Mote-Include files and i have global binds which worked earlier. I don't know what happened but my main char's global binds stopped loading. His job specific binds still loaded just fine. The weird part was the globals were still fine on my other character on the same PC.

I checked to make sure nothing changed with the lines that told it to include the globals and found nada wrong. I don't know what happened and it has me stumped. Just seems so weird it worked on both earlier and now only 1 char.

Any help is much appreciated thanks.
 Asura.Odysseuss
Offline
Server: Asura
Game: FFXI
user: Cuda
Posts: 3
By Asura.Odysseuss 2018-04-08 16:28:34
Link | Quote | Reply
 
Just made Agoge Mask +3, my War lua won't swap to it. I did a /gs export, it shows it as:

head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},

Gearswap still won't recognize it, does anyone else have this problem with Relic +2/3?
 Ragnarok.Lockfort
Offline
Server: Ragnarok
Game: FFXI
user: Terazuma
Posts: 251
By Ragnarok.Lockfort 2018-04-08 16:58:58
Link | Quote | Reply
 
have you just tried: head="Agoge Mask +3",

it's not like you will have multiple copies of it
 Asura.Wormfeeder
Offline
Server: Asura
Game: FFXI
Posts: 470
By Asura.Wormfeeder 2018-04-08 17:03:38
Link | Quote | Reply
 
Windower had an update this morning try restarting game and update.
 Asura.Odysseuss
Offline
Server: Asura
Game: FFXI
user: Cuda
Posts: 3
By Asura.Odysseuss 2018-04-08 18:38:03
Link | Quote | Reply
 
Didn't work as head="Agoge Mask +3" Either. Also restarted windower, reloaded lua ect.
Offline
Posts: 1025
By Foxfire 2018-04-08 19:46:02
Link | Quote | Reply
 
are there any rules that would alter you changing your head slot?

Or is it just not changing at all?

My relic+3 body works fine on samurai.
 Asura.Varunius
Offline
Server: Asura
Game: FFXI
user: nates1984
Posts: 6
By Asura.Varunius 2018-04-09 21:44:44
Link | Quote | Reply
 
set_combine doesn't appear to work for me within get_sets, and by that I mean the main / ammo / body defined in the second argument are equipped, but the equipment in sets.aftercast.dt is seemingly ignored:
Code
	sets.aftercast = {}
    sets.aftercast.refresh = set_combine(sets.aftercast.dt, {
		main="Queller Rod",
		ammo="Homiliary", 
		body="Ebers Bliaud +1",
		})
		
	sets.aftercast.dt = {
		main="Queller Rod",
		sub="Genbu's Shield", 
		ammo="Homiliary", 
		head="Aya. Zucchetto +1", 
		neck="Loricate Torque +1", 
		ear1="Infused Earring", 
		--ear2="", 
		body="Ayanmo Corazza +1",
		hands="Aya. Manopolas +1", 
		ring1="Ayanmo Ring", 
		ring2="Defending Ring", 
		back="Solemnity Cape",
		--waist="", 
		legs="Aya. Cosciales +1", 
		feet="Aya. Gambieras +1",
		}
Code
function aftercast(spell)
	equip(sets.aftercast.refresh)
end


But changing aftercast to this makes it work:
Code
function aftercast(spell)
	equip(set_combine(sets.aftercast.dt, {
		main="Queller Rod",
		ammo="Homiliary", 
		body="Ebers Bliaud +1",
		}))
end


Can anyone explain what I'm doing wrong?
 Bismarck.Dunigs
Offline
Server: Bismarck
Game: FFXI
user: Dunigs
Posts: 83
By Bismarck.Dunigs 2018-04-09 22:02:32
Link | Quote | Reply
 
I'd imagine it's because in your first snippet you call set_combine before defining sets.aftercast.dt so at that time the first argument is technically empty. Define the dt set first.
 Asura.Varunius
Offline
Server: Asura
Game: FFXI
user: nates1984
Posts: 6
By Asura.Varunius 2018-04-09 22:54:25
Link | Quote | Reply
 
Well, that was it, and now I feel a bit silly.

Thanks for the help!
 Asura.Dagget
Offline
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-10 00:06:25
Link | Quote | Reply
 
Can anyone please show me how I would setup a earring to be used on Watersday only in my idle set? Hibernation Earring.
Code
sets.idle = {main="Terra\'s Staff",sub="Umbra Strap",ammo="Thunder Sachet",
		head="Hike Khat",neck="Dampener's Torque",ear1="Infused Earring",ear2="Hibernation Earring",
		body="Jhakri Robe +2",hands="Bagua Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring +1",
		back="Shadow Mantle",waist="Acipayam Belt",legs="Assid. Pants +1",feet="Mallquis Clogs +1"}
Offline
Posts: 1186
By Boshi 2018-04-10 01:13:44
Link | Quote | Reply
 
Code
function customize_idle_set(idleSet)
    if player.mpp < 52 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
	if world.day_element == 'Water' then
		idleSet = set_combine(idleSet, {ear2="Hibernation Earring"})
	return idleSet
end



I added the mp< thing cause most basic mage luas have something for equiping the latent refresh belt at low mp, figured it might make it easier to find for you.

edit:note: Carrier's Sash might be something you'd like for that set
[+]
 Asura.Dagget
Offline
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-10 01:18:19
Link | Quote | Reply
 
Boshi said: »
Code
function customize_idle_set(idleSet)
    if player.mpp < 52 then
        idleSet = set_combine(idleSet, sets.latent_refresh)
    end
	if world.day_element == 'Water' then
		idleSet = set_combine(idleSet, {ear2="Hibernation Earring"})
	return idleSet
end

I added the mp< thing cause most basic mage luas have something for equiping the latent refresh belt at low mp, figured it might make it easier to find for you.

Thank you Sir!

Quote:
edit:note: Carrier's Sash might be something you'd like for that set

I'll look into that for sure
First Page 2 3 ... 132 133 134 ... 181 182 183
Log in to post.