Gearswap Support Thread

Eorzea Time
 
 
 
Language: JP EN FR DE
Version 3.1
New Items
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 117 118 119 ... 181 182 183
 Quetzalcoatl.Chanceikin
Offline
Server: Quetzalcoatl
Game: FFXI
Posts: 138
By Quetzalcoatl.Chanceikin 2017-02-01 13:10:35
Link | Quote | Reply
 
Every one of my luas is setup with toggles (F9, F10, F11 usually) where you can toggle specific sets, but it doesn't really work with how I equip my PDT and MDT.

The way the toggles are setup, I can activate PDT or MDT, but can never turn them off without typing in the //gs c cycle DefenseMode to go back to normal.

Is there a way to set this up so that pushing just one of those buttons will cycle DefenseMode between None, PDT, and MDT?

This is probably easy peasy to some folks, but I'd rather ask a pro then spend an hour debugging code.

Any help is greatly appreciated.
 Asura.Pintseyes
Offline
Server: Asura
Game: FFXI
user: yurmy123
Posts: 115
By Asura.Pintseyes 2017-02-01 15:13:13
Link | Quote | Reply
 
What I do for modes is make macros.

/console gs c cycle DefenseMode

Pushing it once turns on PDT, twice MDT, thrice off. This isn't any guru fix or anything. I'm actually interested to see some answers also.

I'd personally like to toggle via macro to resistant, but like you I can only "cycle" to it.

I'm eager to see if someone has a method to mode straight into certain modes. Trying to toggle some modes on results in an error: "Self commands can only toggle in Boolean mode".
 Asura.Verbannt
Offline
Server: Asura
Game: FFXI
user: Akton
Posts: 166
By Asura.Verbannt 2017-02-02 07:43:19
Link | Quote | Reply
 
in most but not all lua's that I have (right) alt + f12 sets defense mode to none, this will only apply if the lua is mote based and the bindings have not been over written. At least give it a try, with out seeing your lua I can not confirm if it will or not.
[+]
 Ragnarok.Valauge
Offline
Server: Ragnarok
Game: FFXI
user: Valauge
Posts: 21
By Ragnarok.Valauge 2017-02-02 13:36:59
Link | Quote | Reply
 
I'm writing a WAR lua using Spicyryan's BLU lua as a base. I want to put a rule in for changing my TP gear to an abyssea proc set when wearing Ark Tachi in my mainhand, but I'm not sure how to go about doing that.

Engaged equipment is currently being handled like this:
Code
function ac_Global()
		if player.status == 'Engaged' then
			equip(sets.TP[sets.TP.index[TP_ind]])
		else
			equip(sets.Idle[sets.Idle.index[Idle_ind]])
		end
end

And here's the full lua so far
 Asura.Verbannt
Offline
Server: Asura
Game: FFXI
user: Akton
Posts: 166
By Asura.Verbannt 2017-02-02 13:45:51
Link | Quote | Reply
 
You can make it so it sees abyssea by using
Code
function job_buff_change(buff, gain)
if buff == "Visitant" then

And you would edit from there but its an effective way to make your lua see your in abyssea, with out spamming your lua checking for abyssea all the time, as it's noticed when you gain and lose visitant status. Just make it make a state argument and then you can tie it into your current argument.
 Asura.Verbannt
Offline
Server: Asura
Game: FFXI
user: Akton
Posts: 166
By Asura.Verbannt 2017-02-02 13:47:50
Link | Quote | Reply
 
Just placed function so you see where it goes and you can see what does the check I am aware its an incomplete argument ^^
 Ragnarok.Valauge
Offline
Server: Ragnarok
Game: FFXI
user: Valauge
Posts: 21
By Ragnarok.Valauge 2017-02-02 14:59:56
Link | Quote | Reply
 
Is there no context for just checking what the equipped weapon is each time it goes back into tp set anyway? Something like: if player.equip.main = "Ark Tachi", or something like that? Ideally I'd only want that equipset to be used only when that weapon is on, instead of whenever I'm in abyssea.
 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 2905
By Ragnarok.Martel 2017-02-02 15:15:31
Link | Quote | Reply
 
player.equipment.main would return as your equipped weapon.

so like,
Code
if player.status == 'Engaged' then
	if player.equipment.main == 'Ark Tachi' then
		equip(sets.TP[sets.TP.index[TP_ind]]) -- <-- edit arktachi set name here
	else
		equip(sets.TP[sets.TP.index[TP_ind]]) 
	end
else
	equip(sets.Idle[sets.Idle.index[Idle_ind]])
end
[+]
 Ragnarok.Valauge
Offline
Server: Ragnarok
Game: FFXI
user: Valauge
Posts: 21
By Ragnarok.Valauge 2017-02-02 15:37:45
Link | Quote | Reply
 
That did it, thanks.
 
Offline
Posts:
By 2017-02-03 13:17:23
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 2905
By Ragnarok.Martel 2017-02-03 13:23:13
Link | Quote | Reply
 
//gs export

will import your currently equipped set to a file in the export folder.

//gs export inv

will export your entire inventory.
 Asura.Toralin
Offline
Server: Asura
Game: FFXI
user: toralin
Posts: 1365
By Asura.Toralin 2017-02-03 16:34:48
Link | Quote | Reply
 
I have been working on my BLM sets again and was tryign to really drill down gearswap priority to make sure my Death set was not "wasting" mp by swapping items from Idle->Fastcast->death set.

My idle set has 2239MP
My FC set has 2227MP

When I manually swap piece by piece I never go below 2227.

When I "test" using //gs equip sets.Precast.FastCast.HighMP

it kicks me down to 2138MP. /fume. I have tried starting priority 15->3, 13->1, 1->13, 3->15. Still does not work

Code below:
Code
  sets.Precast.FastCast.HighMP = {
            head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15', priority=15}}, -- +99MP
            neck={ name="Orunmila's Torque", priority=14}, -- +30MP 
			ammo={ name="Psilomene", priority=13}, -- +15MP
            ear1={ name="Loquac. Earring", priority=12}, --already on idle
            ear2={ name="Etiolation Earring", priority=11}, --already on idle
            body={ name="Amalric Doublet +1", priority=10}, --already on idle
            hands={ name="Amalric Gages +1", priority=9}, --already on idle
			feet={ name="Amalric Nails +1", priority=8}, --already on idle
            ring2={ name="Mephitas's Ring +1", priority=7}, --already on idle
            back={ name="Bane Cape", augments={'Elem. magic skill +1','Dark magic skill +5','"Mag.Atk.Bns."+3','"Fast Cast"+2', priority=6}}, --already on idle
            waist={ name="Witful belt", priority=5}, --negative -(30)
			ring1={ name="Prolix Ring", priority=4}, --negative -(55)
            legs={ name="Psycloth Lappas", priority=3}} --negative -(96))


Any thoughts?
 Ragnarok.Kenshi
Offline
Server: Ragnarok
Game: FFXI
user: KenshiDRK
Posts: 123
By Ragnarok.Kenshi 2017-02-03 16:59:12
Link | Quote | Reply
 
Can you post your idle set?
 Asura.Toralin
Offline
Server: Asura
Game: FFXI
user: toralin
Posts: 1365
By Asura.Toralin 2017-02-03 17:11:04
Link | Quote | Reply
 
edit: still broken i had my statics.lua changed to manually fit my order, gave me a false positive on working
 Ragnarok.Kenshi
Offline
Server: Ragnarok
Game: FFXI
user: KenshiDRK
Posts: 123
By Ragnarok.Kenshi 2017-02-03 17:14:57
Link | Quote | Reply
 
It should work with the space
 Asura.Toralin
Offline
Server: Asura
Game: FFXI
user: toralin
Posts: 1365
By Asura.Toralin 2017-02-03 17:19:41
Link | Quote | Reply
 
Code
        sets.Idle.HighMP = {
            main={ name="Grioavolr", augments={'Magic burst mdg.+9%','MP+54','Mag. Acc.+23','"Mag.Atk.Bns."+14',}},
			sub="Niobid Strap",
            ammo="Ghastly Tathlum +1",
            head="Befouled Crown",
            neck="Loricate Torque +1",
            ear1="Etiolation Earring",
            ear2="Loquac. Earring",
            body="Amalric Doublet +1",
            hands="Amalric Gages +1",
            ring1="Fenrir Ring +1",
            ring2="Mephitas's Ring +1",
            back={ name="Bane Cape", augments={'Elem. magic skill +10','Dark magic skill +9','"Mag.Atk.Bns."+4',}},
            waist="Fucho-no-Obi",
            legs="Amalric Slops +1",
            feet="Amalric nails +1"}



If I MANUALLY change the order in statics.lua to match the order I need, it works, its like its overriding the priority in my BLM.lua

modifying my statics.lua to this makes it work, but all im doing changing the default order for ALL of gearswap to match what I need for this one swap
Code
slot_map = make_user_table()

slot_map.main = 0
slot_map.sub = 1
slot_map.range = 2
slot_map.ranged = 2
slot_map.ammo = 5
slot_map.head = 3
slot_map.body = 8
slot_map.hands = 9
slot_map.legs = 15
slot_map.feet = 10
slot_map.neck = 4
slot_map.waist = 13
slot_map.ear1 = 6
slot_map.ear2 = 7
slot_map.left_ear = 6
slot_map.right_ear = 7
slot_map.learring = 6
slot_map.rearring = 7
slot_map.lear = 6
slot_map.rear = 7
slot_map.left_ring = 14
slot_map.right_ring = 10
slot_map.lring = 14
slot_map.rring = 10
slot_map.ring1 = 14
slot_map.ring2 = 10
slot_map.back = 12


TLDR& Statics.lua is overiding my gear slot order even using priority within the set
 Ragnarok.Kenshi
Offline
Server: Ragnarok
Game: FFXI
user: KenshiDRK
Posts: 123
By Ragnarok.Kenshi 2017-02-04 08:16:24
Link | Quote | Reply
 
On the almaric coif and bane cape you have the priority inside your augments, that should be the reason. Don't touch the statics.lua.
 Asura.Toralin
Offline
Server: Asura
Game: FFXI
user: toralin
Posts: 1365
By Asura.Toralin 2017-02-04 10:37:41
Link | Quote | Reply
 
Ragnarok.Kenshi said: »
On the almaric coif and bane cape you have the priority inside your augments, that should be the reason. Don't touch the statics.lua.
you are the man! fixed it, thank you!
 Sylph.Larien
Offline
Server: Sylph
Game: FFXI
user: Penello
Posts: 6
By Sylph.Larien 2017-02-08 23:34:37
Link | Quote | Reply
 
I'm having a bit of trouble with Dualboxing and Gearswap, and am hoping someone can point me toward a fix.

When I'm using one character and swap to say my PDT set or swap to a hybrid DT/acc set on my RUN while tanking, the keyboard command also takes effect on my dual box character's window while not in focus. The reverse is also true - so my BST swapping to their pet DD set causes my RUN or BLU or w/e job I'm on on main to also change sets on me. Is there a command I may be missing in my Lua scripts to prevent the commands from going cross-character?
 Shiva.Arislan
Offline
Server: Shiva
Game: FFXI
user: Arislan
Posts: 1052
By Shiva.Arislan 2017-02-10 07:57:11
Link | Quote | Reply
 
Trying to put together something that stops movement on spell cast to combat latency interrupts.

What I have so far works...
Code
function job_precast(spell, action, spellMap, eventArgs)
	if spell.action_type == 'Magic' then
		windower.ffxi.run(false)
		cast_delay(0.3)
	end
end


... but the cast delay triggers for all spells, even when the player isn't moving, which is a bit annoying.

Is there a way to check if your player is moving or not w/o getting into position/time math? I couldn't find a windower api function for it.
Offline
Posts: 42
By knoxvegas 2017-02-11 12:50:22
Link | Quote | Reply
 
Can anyone help me with some lua code plz? Seems like when i use N/T and sing the precast fc is messin up my song duration most the time. Does anyone have something like if buff active N/T then precast=midcast or something like that. Thank you!
 
Offline
Posts:
By 2017-02-11 13:06:31
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
Offline
Posts: 42
By knoxvegas 2017-02-11 13:48:59
Link | Quote | Reply
 
Thxz fpor the reply! So i tried that and it still seems to be switching to precastm heres my lua any idea what i did wrong?
Code
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job.  Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------

--[[
    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['Nightingale'] = buffactive['Nightingale'] or false
    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', 'Aphotic Kukri', 'Sabebus'}
    pick_tp_weapon()
    
    -- 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
    
    -- 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',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    head="Fili Calot +1",
    body="Sha'ir Manteel",
    hands={ name="Gendewitha Gages", augments={'Phys. dmg. taken -1%','"Cure" potency +3%',}},
    legs="Limbo Trousers",
    feet="Brd. Slippers +2",
    neck="Aoidos' Matinee",
    waist="Goading Belt",
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    right_ring="Prolix Ring",
    back="Swith Cape",
}

    sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris"})

    sets.precast.FC.Stoneskin = set_combine(sets.precast.FC, {head="Umuthi Hat"})

    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',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    head="Fili Calot +1",
    body="Sha'ir Manteel",
    hands={ name="Gendewitha Gages", augments={'Phys. dmg. taken -1%','"Cure" potency +3%',}},
    legs="Limbo Trousers",
    feet="Brd. Slippers +2",
    neck="Aoidos' Matinee",
    waist="Goading Belt",
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    right_ring="Prolix Ring",
    back="Swith Cape",
}
    sets.precast.Paeon = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Terpander",
    head="Fili Calot +1",
    body="Sha'ir Manteel",
    hands={ name="Gendewitha Gages", augments={'Phys. dmg. taken -1%','"Cure" potency +3%',}},
    legs="Limbo Trousers",
    feet="Brd. Slippers +2",
    neck="Aoidos' Matinee",
    waist="Goading Belt",
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    left_ring="Weather. Ring",
    right_ring="Prolix Ring",
    back="Swith Cape",
}

    sets.precast.FC.Terpander = set_combine(sets.precast.FC.BardSong, {range=info.ExtraSongInstrument})
        
    
    -- Precast sets to enhance JAs
    
    sets.precast.JA.Nightingale = {feet="Bihu Slippers"}
    sets.precast.JA.Troubadour = {body="Bihu Justaucorps"}
    sets.precast.JA['Soul Voice'] = {legs="Bihu Cannions"}

    -- Waltz set (chr and vit)
    sets.precast.Waltz = {range="Gjallarhorn",
        head="Nahtirah Hat",
        body="Gendewitha Bliaut",hands="Buremte Gloves",
        back="Kumbira Cape",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
    
       
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {range="Gjallarhorn",
        head="Nahtirah Hat",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
        body="Bihu Justaucorps",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
        back="Atheling Mantle",waist="Caudata Belt",legs="Brioso Cannions +1",feet="Gendewitha Galoshes"}
    
    -- 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 = {range="Angel Lyre",
        head="Nahtirah Hat",ear2="Loquacious Earring",
        body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",
        back="Swith Cape +1",waist="Goading Belt",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
        
    -- 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.Minuet = {body="Fili Hongreline +1"}
    sets.midcast.Minne = {}
    sets.midcast.Paeon = {head="Brioso Roundlet +1"}
    sets.midcast.Carol = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}
    sets.midcast["Sentinel's Scherzo"] = {feet="Fili Cothurnes"}
    sets.midcast['Magic Finale'] = {neck="Wind Torque",waist="Corvax Sash",legs="Aoidos' Rhing. +2"}

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

    -- For song buffs (duration and AF3 set bonus)
    sets.midcast.SongEffect = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    -- For song defbuffs (duration primary, accuracy secondary)
    sets.midcast.SongDebuff = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    -- For song defbuffs (accuracy primary, duration secondary)
    sets.midcast.ResistantSongDebuff = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    -- Song-specific recast reduction
    sets.midcast.SongRecast = {ear2="Loquacious Earring",
        ring1="Prolix Ring",
        back="Harmony Cape",waist="Corvax Sash",legs="Aoidos' Rhing. +2"}

    --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="Nahtirah Hat",neck="Wind Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
        body="Brioso Justaucorps +1",hands="Aoidos' Manchettes +2",ring1="Prolix Ring",ring2="Sangoma Ring",
        back="Swith Cape +1",waist="Goading Belt",legs="Gendewitha Spats",feet="Bokwus Boots"}

    -- Other general spells and classes.
    sets.midcast.Cure = {main="Arka IV",sub='Achaq Grip',
        head="Gendewitha Caubeen",
        body="Gendewitha Bliaut",hands="Bokwus Gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
        legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
        
    sets.midcast.Curaga = sets.midcast.Cure
        
    sets.midcast.Stoneskin = {
        head="Nahtirah Hat",
        body="Gendewitha Bliaut",hands="Gendewitha Gages",
        legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
        
    sets.midcast.Paeon = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Terpander",
    head="Fili Calot +1",
    body="Sha'ir Manteel",
    hands={ name="Gendewitha Gages", augments={'Phys. dmg. taken -1%','"Cure" potency +3%',}},
    legs="Limbo Trousers",
    feet="Brd. Slippers +2",
    neck="Aoidos' Matinee",
    waist="Goading Belt",
    left_ear="Etiolation Earring",
    right_ear="Loquac. Earring",
    left_ring="Weather. Ring",
    right_ring="Prolix Ring",
    back="Swith Cape",
}

    
    -- Sets to return to when not performing an action.
    
    -- Resting sets
    sets.resting = {main=gear.Staff.HMP, 
        body="Gendewitha Bliaut",
        legs="Nares Trews",feet="Chelona Boots +1"}
    
    
    -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
    sets.idle = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Fili cothurnes",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    sets.idle.PDT = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    sets.idle.Town = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Fili cothurnes",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}
    
    sets.idle.Weak = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}
    
    
    -- Defense sets

    sets.defense.PDT = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    sets.defense.MDT = {
    main={ name="Kali", augments={'Mag. Acc.+15','String instrument skill +10','Wind instrument skill +10',}},
    sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -6%','HP+21',}},
    range="Eminent Flute",
    head="Fili Calot +1",
    body="Fili Hongreline +1",
    hands="Fili Manchettes +1",
    legs="Inyanga Shalwar +1",
    feet="Brioso Slippers +1",
    neck="Brioso Whistle",
    waist="Demonry Sash",
    left_ear="Musical Earring",
    right_ear="Loquac. Earring",
    left_ring="Perception Ring",
    right_ring="Prolix Ring",
    back="Rhapsode's Cape",
}

    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 = {range="Angel Lyre",
        head="Nahtirah Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
        body="Bihu Justaucorps",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
        back="Atheling Mantle",waist="Goading Belt",legs="Brioso Cannions +1",feet="Gendewitha Galoshes"}

    -- Sets with weapons defined.
    sets.engaged.Dagger = {range="Angel Lyre",
        head="Nahtirah Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
        body="Bihu Justaucorps",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
        back="Atheling Mantle",waist="Goading Belt",legs="Brioso Cannions +1",feet="Gendewitha Galoshes"}

    -- Set if dual-wielding
    sets.engaged.DW = {range="Angel Lyre",
        head="Nahtirah Hat",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
        body="Bihu Justaucorps",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
        back="Atheling Mantle",waist="Goading Belt",legs="Brioso Cannions +1",feet="Gendewitha Galoshes"}
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
function job_precast(spell, action, spellMap, eventArgs)
    if spell.type == 'BardSong' then
        if state.Buff['Nightingale'] then
            eventArgs.useMidcastGear = true
        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.
-------------------------------------------------------------------------------------------------------------------

-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
    pick_tp_weapon()
end


-- 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 == "Carnwenhan" then mult = mult + 0.1 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.sub == "Legato Dagger" then mult = mult + 0.05 end
    if player.equipment.neck == "Aoidos' Matinee" 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" then mult = mult + 0.1 end
    if player.equipment.feet == "Brioso Slippers +1" 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 == "Aoidos' Calot +2" 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


-- Examine equipment to determine what our current TP weapon is.
function pick_tp_weapon()
    if brd_daggers:contains(player.equipment.main) then
        state.CombatWeapon:set('Dagger')
        
        if S{'NIN','DNC'}:contains(player.sub_job) and brd_daggers:contains(player.equipment.sub) then
            state.CombatForm:set('DW')
        else
            state.CombatForm:reset()
        end
    else
        state.CombatWeapon:reset()
        state.CombatForm:reset()
    end
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(10, 1)
end


windower.raw_register_event('zone change',reset_timers)
windower.raw_register_event('logout',reset_timers)
i tried stickin at bottom didnt work so i dropped it at 492, maybe i just put it in wrong place?
 
Offline
Posts:
By 2017-02-11 14:45:28
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Cerberus.Clackk
Offline
Server: Cerberus
Game: FFXI
user: cocl
Posts: 12
By Cerberus.Clackk 2017-02-12 04:51:51
Link | Quote | Reply
 
I just started gearing up RDM again and using a lua I found quite a while ago I tried adding to it but I can't quite figure out how to make it swap into my refresh set vs enhancing duration and using a max enhancing set for Temper and Enspells. Also, how would I handle this for composure up/down and casting on others vs myself? Thanks in advance for any help.
Code
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job.  Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------

-- Initialization function for this job file.
function get_sets()
    mote_include_version = 2
include('organizer-lib')
    -- 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.Saboteur = buffactive.saboteur 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.HybridMode:options('Normal', 'PhysicalDef', 'MagicalDef')
    state.CastingMode:options('Normal', 'Resistant')
    state.IdleMode:options('Normal', 'PDT', 'MDT')

    gear.default.obi_waist = "Sekhmet Corset"
    
    select_default_macro_book()
end


-- Define sets and vars used by this job file.
function init_gear_sets()
    --------------------------------------
    -- Start defining the sets
    --------------------------------------
    
    -- Precast Sets
    
    -- Precast sets to enhance JAs
    sets.precast.JA['Chainspell'] = {body="Vitivation Tabard"}
    

    -- Waltz set (chr and vit)
    sets.precast.Waltz = {
        head="Atrophy Chapeau +1",
        body="Atrophy Tabard +1",hands="Yaoyotl Gloves",
        back="Refraction Cape",legs="Hagondes Pants",feet="Hagondes Sabots"}
        
    -- Don't need any special gear for Healing Waltz.
    sets.precast.Waltz['Healing Waltz'] = {}

    -- Fast cast sets for spells
    --
    -- 80% Fast Cast (including trait) for all spells, plus 5% quick cast
    -- No other FC sets necessary.
    sets.precast.FC = {
    main={},
    sub={},
    ammo="Impatiens",
    head="Atro. Chapeau +1",
    body={ name="Viti. Tabard +1", augments={'Enhances "Chainspell" effect',}},
    hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
    legs={ name="Lengo Pants", augments={'INT+9','Mag. Acc.+15','"Mag.Atk.Bns."+14',}},
    feet={ name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Fast Cast"+5','INT+4 MND+4',}},
    neck="Wiglen Gorget",
    waist="Witful Belt",
    left_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
    right_ear="Loquac. Earring",
    left_ring="Prolix Ring",
    right_ring="Weather. Ring",
    back="Swith Cape +1",
}
    sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
       
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {
    ammo="Oreiad's Tathlum",
    head={ name="Taeon Chapeau", augments={'Attack+21','"Triple Atk."+2','Crit. hit damage +2%',}},
    body={ name="Taeon Tabard", augments={'Accuracy+17 Attack+17','"Triple Atk."+2','STR+6 VIT+6',}},
    hands={ name="Taeon Gloves", augments={'Accuracy+17 Attack+17','"Triple Atk."+2','STR+8',}},
    legs={ name="Taeon Tights", augments={'Accuracy+16 Attack+16','"Triple Atk."+2','STR+6 VIT+6',}},
    feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','Weapon skill damage +3%',}},
    neck="Fotia Gorget",
    waist="Fotia Belt",
    left_ear="Steelflash Earring",
    right_ear="Bladeborn Earring",
    left_ring="Ramuh Ring +1",
    right_ring="Ramuh Ring +1",
    back="Rancorous Mantle",
}

    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, 
        {neck="Soil Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
        ring1="Aquasoul Ring",ring2="Aquasoul Ring",waist="Soil Belt"})

    sets.precast.WS['Sanguine Blade'] = {
    ammo="Ghastly Tathlum",
    head="Pixie Hairpin +1",
    body={ name="Witching Robe", augments={'MP+45','Mag. Acc.+14','"Mag.Atk.Bns."+14',}},
    hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
    legs={ name="Hagondes Pants +1", augments={'Phys. dmg. taken -1%','"Mag.Atk.Bns."+19',}},
    feet={ name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Fast Cast"+5','INT+4 MND+4',}},
    neck="Eddy Necklace",
    waist="Othila Sash",
    left_ear="Friomisi Earring",
    right_ear="Novio Earring",
    left_ring="Shiva Ring +1",
    right_ring="Shiva Ring +1",
    back="Toro Cape",
}

    
    -- Midcast Sets
    
    sets.midcast.FastRecast = {
    main="Bolelabunga",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Impatiens",
    head="Atro. Chapeau +1",
    body={ name="Viti. Tabard +1", augments={'Enhances "Chainspell" effect',}},
    hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
    legs={ name="Lengo Pants", augments={'INT+9','Mag. Acc.+15','"Mag.Atk.Bns."+14',}},
    feet={ name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Fast Cast"+5','INT+4 MND+4',}},
    neck="Wiglen Gorget",
    waist="Witful Belt",
    left_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
    right_ear="Loquac. Earring",
    left_ring="Prolix Ring",
    right_ring="Weather. Ring",
    back="Swith Cape +1",
}

    sets.midcast.Cure = {
    main={ name="Tamaxchi", augments={'Occ. atk. twice+8','Enmity-10',}},
    sub="Sors Shield",
    ammo="Oreiad's Tathlum",
    head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
    body={ name="Viti. Tabard +1", augments={'Enhances "Chainspell" effect',}},
    hands={ name="Helios Gloves", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','"Occult Acumen"+3','INT+9',}},
    legs="Atrophy Tights +1",
    feet="Rubeus Boots",
    neck="Colossus's Torque",
    waist="Bishop's Sash",
    left_ear="Healing Earring",
    right_ear="Beatific Earring",
    left_ring="Sirona's Ring",
    right_ring="Haoma's Ring",
    back="Pahtli Cape",
}
        
    sets.midcast.Curaga = sets.midcast.Cure
    sets.midcast.CureSelf = sets.midcast.Cure

    sets.midcast['Enhancing Magic'] = {
    main="Pukulatmuj",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Oreiad's Tathlum",
    head="Umuthi Hat",
    body={ name="Viti. Tabard +1", augments={'Enhances "Chainspell" effect',}},
    hands="Atrophy Gloves +1",
    legs="Atrophy Tights +1",
    feet="Estq. Houseaux +2",
    neck="Colossus's Torque",
    waist="Olympus Sash",
    left_ear="Andoaa Earring",
    right_ear="Loquac. Earring",
    left_ring="Prolix Ring",
    right_ring="Weather. Ring",
    back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +8','Enha.mag. skill +3','Mag. Acc.+4','Enh. Mag. eff. dur. +17',}},
}


    sets.midcast.Refresh = {
    main={ name="Grioavolr", augments={'Magic burst mdg.+7%','INT+10','Mag. Acc.+27','"Mag.Atk.Bns."+22','Magic Damage +6',}},
    sub="Niobid Strap",
    ammo="Sapience Orb",
    head="Atro. Chapeau +1",
    body={ name="Telchine Chas.", augments={'Enh. Mag. eff. dur. +9',}},
    hands="Atrophy Gloves +1",
    legs="Leth. Fuseau +1",
    feet="Leth. Houseaux +1",
    neck="Colossus's Torque",
    waist="Witful Belt",
    left_ear="Loquac. Earring",
    right_ear="Enchntr. Earring +1",
    left_ring="Kishar Ring",
    right_ring="Prolix Ring",
    back="Grapevine Cape",
}

    sets.midcast.Stoneskin = {waist="Siegel Sash",neck="stone Gorget",
				right_ear="earthcry earring",legs="haven hose"}

    sets.midcast['Phalanx II']= set_combine(sets.midcast['Enhancing Magic'], {hands="vitivation gloves +1"})
    
    sets.midcast['Enfeebling Magic'] = {
    main={ name="Twebuliij", augments={'MP+60','Mag. Acc.+15','MND+12',}},
    sub="Mephitis Grip",
    ammo="Oreiad's Tathlum",
    head="Befouled Crown",
    body="Lethargy Sayon +1",
    hands="Lurid Mitts",
    legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
    feet={ name="Medium's Sabots", augments={'MP+40','MND+6','"Conserve MP"+5','"Cure" potency +3%',}},
    neck="Imbodla Necklace",
    waist="Ovate Rope",
    left_ear="Enchntr. Earring +1",
    right_ear="Gwati Earring",
    left_ring="Levia. Ring +1",
    right_ring="Levia. Ring +1",
    back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +8','Enha.mag. skill +3','Mag. Acc.+4','Enh. Mag. eff. dur. +17',}},
}

    sets.midcast['Dia III'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau +1"})

    sets.midcast['Slow II'] = set_combine(sets.midcast['Enfeebling Magic'], {head="Vitivation Chapeau +1" })
    
    sets.midcast['Elemental Magic'] = {
    main={ name="Grioavolr", augments={'Magic burst mdg.+7%','INT+10','Mag. Acc.+27','"Mag.Atk.Bns."+22','Magic Damage +6',}},
    sub="Niobid Strap",
    ammo="Pemphredo Tathlum",
    head={ name="Merlinic Hood", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','"Drain" and "Aspir" potency +4','INT+7','Mag. Acc.+11','"Mag.Atk.Bns."+15',}},
    body={ name="Amalric Doublet +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
    legs={ name="Amalric Slops +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    feet={ name="Amalric Nails +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    neck="Eddy Necklace",
    waist="Refoccilation Stone",
    left_ear="Friomisi Earring",
    right_ear="Novio Earring",
    left_ring="Shiva Ring +1",
    right_ring="Shiva Ring +1",
    back="Toro Cape",
}
        
    sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {head=empty,body="Twilight Cloak"})

    sets.midcast['Dark Magic'] = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Kalboron Stone",
        head="Atrophy Chapeau +1",neck="Weike Torque",ear1="Lifestorm Earring",ear2="Psystorm Earring",
        body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
        back="Refraction Cape",waist="Goading Belt",legs="Bokwus Slops",feet="Bokwus Boots"}

    --sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {})

    sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {ring1="Excelsis Ring", waist="Fucho-no-Obi"})

    sets.midcast.Aspir = sets.midcast.Drain


    -- Sets for special buff conditions on spells.

    sets.midcast.EnhancingDuration = {
    main="Pukulatmuj",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head="Befouled Crown",
    body={ name="Telchine Chas.", augments={'Enh. Mag. eff. dur. +9',}},
    hands="Atrophy Gloves +1",
    legs={ name="Telchine Braconi", augments={'Mag. Acc.+7','"Cure" potency +5%','Enh. Mag. eff. dur. +7',}},
    feet="Leth. Houseaux +1",
    neck="Colossus's Torque",
    waist="Olympus Sash",
    left_ear="Andoaa Earring",
    right_ear="Infused Earring",
    left_ring="Kishar Ring",
    right_ring="Stikini Ring",
    back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +8','Enha.mag. skill +3','Mag. Acc.+4','Enh. Mag. eff. dur. +17',}},
}
        
    sets.buff.ComposureOther = {
    main="Pukulatmuj",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head="Befouled Crown",
    body="lethargy sayon +1",
    hands="Atrophy Gloves +1",
    legs={ name="Telchine Braconi", augments={'Mag. Acc.+7','"Cure" potency +5%','Enh. Mag. eff. dur. +7',}},
    feet="Leth. Houseaux +1",
    neck="Colossus's Torque",
    waist="Olympus Sash",
    left_ear="Andoaa Earring",
    right_ear="Infused Earring",
    left_ring="Kishar Ring",
    right_ring="Stikini Ring",
    back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +8','Enha.mag. skill +3','Mag. Acc.+4','Enh. Mag. eff. dur. +17',}},
}

    sets.buff.Saboteur = {hands="Estoqueur's Gantherots +2"}
    

    -- Sets to return to when not performing an action.
    
    -- Resting sets
    sets.resting = {main="Chatoyant Staff",
        head="Vitivation Chapeau",neck="Wiglen Gorget",
        body="Atrophy Tabard +1",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
        waist="Austerity Belt",legs="Nares Trews",feet="Chelona Boots +1"}
    

    -- Idle sets
    sets.idle = {
    main="Bolelabunga",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head={ name="Viti. Chapeau +1", augments={'Enhances "Dia III" effect','Enhances "Slow II" effect',}},
    body={ name="Amalric Doublet +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    hands={ name="Viti. Gloves +1", augments={'Enhances "Phalanx II" effect',}},
    legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
    feet={ name="Merlinic Crackows", augments={'Pet: "Subtle Blow"+8','Accuracy+7','"Refresh"+2','Accuracy+7 Attack+7','Mag. Acc.+8 "Mag.Atk.Bns."+8',}},
    neck="Sanctity Necklace",
    waist="Fucho-no-Obi",
    left_ear="Ethereal Earring",
    right_ear="Infused Earring",
    left_ring="Sheltered Ring",
    right_ring="Paguroidea Ring",
    back="Kumbira Cape",
}
    sets.idle.Town = {
    main="Bolelabunga",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head={ name="Viti. Chapeau +1", augments={'Enhances "Dia III" effect','Enhances "Slow II" effect',}},
    body={ name="Amalric Doublet +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    hands={ name="Viti. Gloves +1", augments={'Enhances "Phalanx II" effect',}},
    legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
    feet={ name="Merlinic Crackows", augments={'Pet: "Subtle Blow"+8','Accuracy+7','"Refresh"+2','Accuracy+7 Attack+7','Mag. Acc.+8 "Mag.Atk.Bns."+8',}},
    neck="Sanctity Necklace",
    waist="Fucho-no-Obi",
    left_ear="Ethereal Earring",
    right_ear="Infused Earring",
    left_ring="Sheltered Ring",
    right_ring="Paguroidea Ring",
    back="Kumbira Cape",
}
    
    sets.idle.Weak = {
    main="Bolelabunga",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head={ name="Viti. Chapeau +1", augments={'Enhances "Dia III" effect','Enhances "Slow II" effect',}},
    body={ name="Amalric Doublet +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
    hands={ name="Viti. Gloves +1", augments={'Enhances "Phalanx II" effect',}},
    legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
    feet={ name="Merlinic Crackows", augments={'Pet: "Subtle Blow"+8','Accuracy+7','"Refresh"+2','Accuracy+7 Attack+7','Mag. Acc.+8 "Mag.Atk.Bns."+8',}},
    neck="Sanctity Necklace",
    waist="Fucho-no-Obi",
    left_ear="Ethereal Earring",
    right_ear="Infused Earring",
    left_ring="Sheltered Ring",
    right_ring="Paguroidea Ring",
    back="Kumbira Cape",
}

    sets.idle.PDT = {
    main="Bolelabunga",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head={ name="Hagondes Hat +1", augments={'Phys. dmg. taken -4%','"Mag.Atk.Bns."+27',}},
    body={ name="Gende. Bilaut +1", augments={'Phys. dmg. taken -3%',}},
    hands={ name="Hagondes Cuffs", augments={'Phys. dmg. taken -4%','Mag. Acc.+23',}},
    legs={ name="Hagondes Pants +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+29',}},
    feet="Battlecast Gaiters",
    neck="Twilight Torque",
    waist="Flume Belt",
    left_ear="Colossus's Earring",
    right_ear="Sanare Earring",
    left_ring="Defending Ring",
    right_ring="Vocane Ring",
    back="Repulse Mantle",
}

    sets.idle.MDT = {main="Bolelabunga",sub="Genbu's Shield",ammo="Demonry Stone",
        head="Gendewitha Caubeen +1",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
        body="Gendewitha Caubeen +1",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
        back="Engulfer Cape",waist="Flume Belt",legs="Osmium Cuisses",feet="Gendewitha Galoshes"}
    
    
    -- Defense sets
    sets.defense.PDT = {
    main="Bolelabunga",
    sub={ name="Beatific Shield +1", augments={'Phys. dmg. taken -3%','HP+30 MP+30','Magic dmg. taken -3%',}},
    ammo="Homiliary",
    head={ name="Hagondes Hat +1", augments={'Phys. dmg. taken -4%','"Mag.Atk.Bns."+27',}},
    body={ name="Gende. Bilaut +1", augments={'Phys. dmg. taken -3%',}},
    hands={ name="Hagondes Cuffs", augments={'Phys. dmg. taken -4%','Mag. Acc.+23',}},
    legs={ name="Hagondes Pants +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+29',}},
    feet="Battlecast Gaiters",
    neck="Twilight Torque",
    waist="Flume Belt",
    left_ear="Colossus's Earring",
    right_ear="Sanare Earring",
    left_ring="Defending Ring",
    right_ring="Vocane Ring",
    back="Repulse Mantle",
}

    sets.defense.MDT = {ammo="Demonry Stone",
        head="Atrophy Chapeau +1",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
        body="Atrophy Tabard +1",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
        back="Engulfer Cape",waist="Flume Belt",legs="Bokwus Slops",feet="Gendewitha Galoshes"}

    sets.Kiting = {legs="Carmine Cuisses +1"}

    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
    
    -- Normal melee group
    sets.engaged = {
    ammo="Hasty Pinion +1",
    head={ name="Taeon Chapeau", augments={'Attack+21','"Triple Atk."+2','Crit. hit damage +2%',}},
    body={ name="Taeon Tabard", augments={'Accuracy+17 Attack+17','"Triple Atk."+2','STR+6 VIT+6',}},
    hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
    legs={ name="Taeon Tights", augments={'Accuracy+16 Attack+16','"Triple Atk."+2','STR+6 VIT+6',}},
    feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','Weapon skill damage +3%',}},
    neck="Asperity Necklace",
    waist="Shetal Stone",
    left_ear="Steelflash Earring",
    right_ear="Bladeborn Earring",
    left_ring="Rajas Ring",
    right_ring="Cacoethic Ring",
    back="Letalis Mantle",
}

    sets.engaged.Defense = {ammo="Demonry Stone",
        head="Atrophy Chapeau +1",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
        body="Atrophy Tabard +1",hands="Atrophy Gloves +1",ring1="Rajas Ring",ring2="K'ayres Ring",
        back="Kayapa Cape",waist="Goading Belt",legs="Osmium Cuisses",feet="Atrophy Boots"}

end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
function job_midcast(spell, action, spellMap, eventArgs)
 if spellMap == 'Refresh' then
        equip(sets.midcast.Refresh)
        end
	end



-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
    if spell.skill == 'Enfeebling Magic' and state.Buff.Saboteur then
        equip(sets.buff.Saboteur)
    elseif spell.skill == 'Enhancing Magic' then
        equip(sets.midcast.EnhancingDuration)
        if buffactive.composure and spell.target.type == 'PLAYER' then
            equip(sets.buff.ComposureOther)
        end
    elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
        equip(sets.midcast.CureSelf)
    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 == 'None' then
            enable('main','sub','range')
        else
            disable('main','sub','range')
        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

-- Set eventArgs.handled to true if we don't want the automatic display to be run.
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
    if player.sub_job == 'DNC' then
        set_macro_page(2, 4)
    elseif player.sub_job == 'NIN' then
        set_macro_page(3, 4)
    elseif player.sub_job == 'THF' then
        set_macro_page(4, 4)
    else
        set_macro_page(1, 4)
    end
end
Offline
Posts: 256
By Brynach 2017-02-13 13:00:12
Link | Quote | Reply
 
Im trying to update my lua to include conditions that change engaged sets when Samurai Roll is active. I also have sets defined by the mainweapon for example: sets.engaged.Masamune.
I would like to have the lua follow suit so that with sam roll up the lua will equip sets.engaged.Masamune.SamRoll and would then follow with any defined accuracy sets.
Since I am a little outside my wheelhouse, can anyone check this out to see where ive gone wrong?
Offline
Posts: 346
By Sidiov 2017-02-13 14:05:56
Link | Quote | Reply
 
After this latest XI/windower update, I cant get any binds using the Windows key to work anymore. Does anyone know what might be causing that?

*Edit - Forget this - Win10 did an update at the same time and it reset my keyboard settings. Jerks!
 Shiva.Hiep
Offline
Server: Shiva
Game: FFXI
user: Hiepo
Posts: 669
By Shiva.Hiep 2017-02-14 18:42:21
Link | Quote | Reply
 
Is there a way to prevent Arbatel Bracers +1 from being equipped during a certain spell? I want my Phalanx hands equipped even with perpetuance on. Is there a way to do this for certain casting modes? I have 3 casting modes, Normal, ConserveMP, and MACC. I'd like Arbatel Bracers +1 to be equipped only during Normal casting mode, while Phalanx hands to be worn during ConserveMP and MACC mode. All of this assuming perpetuance being on. Tyty!
Offline
Posts: 28
By Celther 2017-02-14 19:00:08
Link | Quote | Reply
 
Getting this error starting today
gearswap/refresh.lua:391: attempt to index field 'days' (a nil value)

reinstalled GS and everything, still getting it.
Any ideas?
 Shiva.Arislan
Offline
Server: Shiva
Game: FFXI
user: Arislan
Posts: 1052
By Shiva.Arislan 2017-02-15 11:36:58
Link | Quote | Reply
 
Code
function init_gear_sets()
     sets.buff['Perpetuance'] = {hands="Arbatel Bracers +1"}
end

Code
function job_post_midcast(spell, action, spellMap, eventArgs)
     if spell.skill == 'Enhancing Magic' and state.Buff.Perpetuance then
          if state.CastingMode.value == "Normal" then
               equip(sets.buff['Perpetuance'])
          else
               if spell.english == "Phalanx" then
                    equip({hands=___________})
               else
                    equip(sets.buff['Perpetuance'])
               end
          end
     end
end


Didn't test it.
[+]
First Page 2 3 ... 117 118 119 ... 181 182 183