Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Table of Contents
- --You can search the file for the #'s to aid in search, Ctrl + F #()
- --#1 Random Use
- --#2 Idle Sets
- --#3 Precast Sets
- --#4 Midcast Sets
- --#5 Melee Sets
- --#6 WS sets
- --#7 Aftercast Sets
- --#8 Setup Functions
- --#9 Sub jobs Sets
- --#10 Haste Group
- --#11 Sub Job Functions
- --#12 Job-specific hooks for standard casting events.
- --#13 Stratagems
- function init_gear_sets()
- -----------------------------------------------------------------------------------------------------------
- ---------------------------------------------- # Random Sets -------------------------------------------
- -----------------------------------------------------------------------------------------------------------
- -- Custom buff sets
- -- Job-specific buff sets
- sets.buff.ComposureOther = {
- head="Leth. Chappel +1",
- body="Lethargy Sayon +1",
- hands="Leth. Gantherots +1",
- legs="Leth. Fuseau +1",
- feet="Leth. Houseaux +1",}
- sets.Kiting = {legs="Carmine Cuisses +1"}
- sets.latent_refresh = {waist="Fucho-no-obi"}
- sets.precast.JA['Chainspell'] = {body="Viti. Tabard +1"}
- sets.Reive = {neck="Ygnas's Resolve +1"}
- sets.buff.Doom = {ring1="Saida Ring", ring2="Saida Ring", waist="Gishdubar Sash"}
- sets.Obi = {waist="Hachirin-no-Obi"}
- sets.weapons = {sub="Murgleis",main="Almace",ammo="Mandau"}
- sets.buff.Saboteur = {hands="Leth. Gantherots +1"}
- sets.genmei = {sub={name="Genmei Shield"}}
- sets.sors = {sub={name="Sors Shield"}}
- sets.beat = {sub={name="Beatific Shield"}}
- current_shield = {name="Genmei Shield"}
- --[[sets.weapons = {sub="Burtgang",main="Xiutleato",ammo="Excalibur"}
- sets.aegis = {sub={name="Aegis"}}
- sets.ochain = {sub={name="Ochain"}}
- sets.priwen = {sub={name="Priwen"}}
- current_shield = {name="Ochain"}]]
- --Enmity + Set
- sets.Enmity = {}
- sets.midcast.WS_Day = {}
- -- Initializes trusts at iLvl 119
- sets.midcast.Trust = sets.precast.FC
- sets.TreasureHunter = {
- waist="Chaac Belt",
- }
- -------------------------------------------------------------------------------------------------------------
- ------------------------------------------------ #2 Idle Sets --------------------------------------------
- -------------------------------------------------------------------------------------------------------------
- sets.idle = {
- main={ name="Colada", augments={'"Refresh"+2','INT+5','Mag. Acc.+15','DMG:+10',}},
- sub="Forfend",
- 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="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
- legs={ name="Lengo Pants", augments={'INT+5','Mag. Acc.+4','"Mag.Atk.Bns."+1','"Refresh"+1',}},
- feet={ name="Amalric Nails +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
- neck="Sanctity Necklace",
- waist="Yamabuki-no-Obi",
- left_ear="Etiolation Earring",
- right_ear="Mache Earring",
- left_ring="Etana Ring",
- right_ring="Mephitas's Ring +1",
- back="Xucau Mantle"}
- sets.idle.DT = set_combine(sets.idle, {
- main="Mafic Cudgel", --10/0
- --sub="Beatific Shield +1", --4/29
- ammo="Staunch Tathlum", --2/2
- head="Aya. Zucchetto +1", --4/4
- body="Ayanmo Corazza +1", --6/0
- hands="Aya. Manopolas +1", --4/3
- legs="Aya. Cosciales +1", --4/4
- neck="Twilight Torque", --5/5
- --ear1="Genmei Earring", --2/0
- ring1="Gelatinous Ring +1", --7/(-1)
- ring2="Defending Ring", --10/10
- back="Solemnity Cape", --4/4
- waist="Flume Belt +1",}) --4/0)
- sets.idle.Town = set_combine(sets.idle, {
- main="Murgleis",
- sub="Genmei Shield",
- body="Councilor's Garb",
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6'}},
- neck="Mizu. Kubikazari",
- waist="Flume Belt +1",
- left_ear="Static Earring",
- right_ear="Friomisi Earring",
- left_ring="Levia. Ring +1",
- right_ring="Shiva Ring +1",
- back="Solemnity Cape"})
- sets.idle.Weak = sets.idle.DT
- sets.resting = set_combine(sets.idle, {
- main="Chatoyant Staff",
- waist="Shinjutsu-no-Obi +1",})
- sets.defense.PDT = sets.idle.DT
- sets.defense.MDT = sets.idle.DT
- ----------------------------------------------------------------------------------------------------------------------------------------------
- ---------------------------------------------------------#3 Precast --------------------------------------------------------------------------
- ----------------------------------------------------------------------------------------------------------------------------------------------
- --Cap 80% Fast-Cast Native +38% with Gifts
- sets.precast.FC = {
- main={ name="Nibiru Cudgel", augments={'MP+50','INT+10','"Mag.Atk.Bns."+15',}},
- sub="Forfend",
- ammo="Impatiens", --(2)
- head={ name="Amalric Coif +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}}, --11
- body={ name="Viti. Tabard +1", augments={'Enhances "Chainspell" effect',}}, --13
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}}, --8
- 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="Orunmila's Torque", --5
- waist="Witful Belt", --3(3)
- left_ear="Etiolation Earring", --1
- right_ear="Loquac. Earring", --2
- left_ring="Etana Ring",
- right_ring="Lebeche Ring", --(2)
- back="Perimede Cape"} --(4)
- --43/(11) total
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash", head="Carmine Mask +1" })
- sets.precast.FC['Enfeebling Magic'] = set_combine(sets.precast.FC, {head="Leth. Chappel +1"})
- sets.precast.FC["Healing Magic"] = set_combine(sets.precast.FC, {main="Vejovis Wand +1"})
- sets.precast.JA['Convert'] = {
- main="Murgleis", --Convert--
- sub="Forfend",
- ammo="Ghastly Tathlum +1",
- head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
- body={ name="Amalric Doublet +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
- hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
- legs={ name="Kaykaus Tights +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
- feet={ name="Kaykaus Boots +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
- neck="Sanctity Necklace",
- waist="Yamabuki-no-Obi",
- left_ear="Etiolation Earring",
- right_ear="Gifted Earring",
- left_ring="Etana Ring",
- right_ring="Sangoma Ring",
- back="Xucau Mantle"}
- ---------------------------------------------------------------------------------------------------------------------------------------------
- ---------------------------------------------------- #4 Magic Sets Mid Cast -------------------------------------------------------------
- ---------------------------------------------------------------------------------------------------------------------------------------------
- sets.midcast = {}
- sets.midcast.FastRecast = sets.precast.FC
- sets.midcast.Cure = {
- main="Septoptic +1",
- sub="Forfend",
- ammo="Impatiens", --(2)
- head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}}, --11
- body={ name="Kaykaus Bliaut +1", augments={'MP+80','Spell interruption rate down +12%','"Cure" spellcasting time -7%',}}, --11
- hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
- legs={ name="Kaykaus Tights +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}}, --11
- feet={ name="Kaykaus Boots +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}}, --11
- neck="Incanter's Torque",
- waist="Austerity Belt +1",
- left_ear="Mendi. Earring", --5
- right_ear="Gifted Earring",
- ring1="Etana Ring",
- ring2="Lebeche Ring", --3
- back="Solemnity Cape",} --For Conserve MP --7
- sets.midcast.CureWeather = set_combine(sets.midcast.Cure, {
- main="Chatoyant Staff",
- back="Twilight Cape",
- waist="Hachirin-no-Obi",})
- sets.midcast.Curaga = set_combine(sets.midcast.Cure, {
- ring2="Levia. Ring +1",
- waist="Luminary Sash",})
- sets.midcast.StatusRemoval = {
- main="Murgleis",
- sub="Forfend",
- ammo="Impatiens",
- head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
- 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="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Vanya Clogs", augments={'"Cure" potency +5%','"Cure" spellcasting time -15%','"Conserve MP"+6',}},
- neck="Incanter's Torque",
- waist="Siegel Sash",
- left_ear="Etiolation Earring",
- right_ear="Friomisi Earring",
- left_ring="Levia. Ring +1",
- right_ring="Lebeche Ring",
- back="Solemnity Cape",}
- sets.midcast.Cursna = set_combine(sets.midcast.StatusRemoval, {
- feet="Vanya Clogs",
- neck="Malison Medallion",
- ear1="Beatific Earring",
- back="Oretan. Cape +1",})
- sets.midcast['Enhancing Magic'] = {
- main={ name="Serenity", augments={'MP+50','Enha.mag. skill +10','"Cure" potency +5%','"Cure" spellcasting time -10%',}},
- sub="Enki Strap",
- ammo="Pemphredo Tathlum",
- head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
- body={ name="Viti. Tabard +1", augments={'Enhances "Chainspell" effect',}},
- hands={ name="Viti. Gloves +1", augments={'Enhances "Phalanx II" effect',}},
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet="Leth. Houseaux +1",
- neck="Incanter's Torque",
- waist="Luminary Sash",
- left_ear="Etiolation Earring",
- right_ear="Stikini Ring",
- left_ring="Stikini Ring",
- right_ring="Lebeche Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},} --"Ghostfyre Cape
- sets.midcast.EnhancingDuration = {
- main="Murgleis",
- sub="Forfend",
- head="Telchine Cap",
- body="Telchine Chas.",
- hands="Atrophy Gloves +1",
- legs="Telchine Braconi",
- feet="Leth. Houseaux +1",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},} --Mnd one to Make
- sets.midcast.Spikes = set_combine(sets.midcast.EnhancingDuration, { legs= "Mrc. Trousers"}) --Add more.
- sets.midcast.Regen = set_combine(sets.midcast.EnhancingDuration, {
- main="Bolelabunga",
- sub="Beatific Shield +1",}) -- To get
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
- head="Amalric Coif +1",
- --body="Atrophy Tabard +2",
- legs="Leth. Fuseau +1",
- waist="Gishdubar Sash",
- back="Grapevine Cape",}) --Ghostfyre
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
- neck="Nodens Gorget",
- waist="Siegel Sash",}) --To work on set
- sets.midcast['Phalanx'] = sets.midcast['Enhancing Magic']
- sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
- head="Amalric Coif +1",
- waist="Emphatikos Rope",})
- -- Custom spell classes
- sets.midcast.MndEnfeebles = {
- main="Murgleis",
- sub="Forfend",
- ammo="Quartz Tathlum +1",
- head="Carmine Mask +1",
- --body="Atrophy Tabard +2",
- body="Lethargy Sayon +1",
- hands="Kaykaus Cuffs +1",
- legs="Chironic Hose",
- feet="Skaoi Boots",
- neck="Imbodla Necklace",
- ear1="Gwati Earring",
- ear2="Digni. Earring",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- back="Sucellos's Cape", --Mnd one to Make
- waist="Luminary Sash",}
- sets.midcast['MndEnfeebles'].Resistant = set_combine(sets.midcast['MndEnfeebles'], {
- body= "Vanya Robe"})
- sets.midcast.IntEnfeebles = set_combine(sets.midcast["MndEnfeebles"],{
- ammo="Pemphredo Tathlum",
- back={name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
- waist="Channeler's Stone"})
- sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
- sets.midcast['Dia III'] = set_combine(sets.midcast.MndEnfeebles, {head="Viti. Chapeau +1"})
- sets.midcast['Paralyze II'] = set_combine(sets.midcast.MndEnfeebles, {head="Vitivation Boots +1"})
- sets.midcast['Slow II'] = set_combine(sets.midcast.MndEnfeebles, {head="Viti. Chapeau +1"})
- sets.midcast['Dark Magic'] = {
- main="Murgleis",
- sub="Forfend",
- ammo="Pemphredo Tathlum",
- head="Amalric Coif +1",
- body="Shango Robe",
- hands="Jhakri Cuffs +1",
- legs="Chironic Hose",
- feet="Merlinic Crackows",
- neck="Incanter's Torque",
- ear1="Hermetic Earring",
- ear2="Digni. Earring",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- back={name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
- waist="Casso Sash",}
- sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
- head="Pixie Hairpin +1",
- feet="Merlinic Crackows",
- ear2="Hirudinea Earring",
- ring2="Archon Ring",
- waist="Fucho-no-obi",
- hands="Chironic Gloves"}) --to type augment or export
- sets.midcast.Aspir = sets.midcast.Drain
- sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {waist="Luminary Sash"})
- sets.midcast['Elemental Magic'] = {
- main={ name="Grioavolr", augments={'Magic burst mdg.+10%','INT+7','Mag. Acc.+8','"Mag.Atk.Bns."+12',}},
- sub="Enki Strap",
- ammo="Pemphredo Tathlum",
- head={ name="Merlinic Hood", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Magic burst mdg.+10%','Mag. Acc.+3',}},
- body={ name="Amalric Doublet +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}}, --(6)
- hands={ name="Amalric Gages +1", augments={'INT+12','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
- 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="Mizu. Kubikazari",
- waist="Yamabuki-no-Obi", --Refoccilation Stone
- left_ear="Friomisi Earring",
- right_ear="Hecate's Earring",
- left_ring="Shiva Ring +1",
- right_ring="Mujin Band",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}}}
- sets.magic_burst = {
- main={ name="Grioavolr", augments={'Magic burst mdg.+10%','INT+7','Mag. Acc.+8','"Mag.Atk.Bns."+12',}}, --10
- head={ name="Merlinic Hood", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Magic burst mdg.+10%','Mag. Acc.+3',}}, --10
- neck="Mizu. Kubikazari", --10
- ring1="Mujin Band", --(5)
- right_ear="Static Earring", --5
- left_ring="Locus Ring",} --5
- sets.midcast['Elemental Magic'].Seidr = set_combine(sets.midcast['Elemental Magic'], {
- body="Seidr Cotehardie",
- neck="Sanctity Necklace",})
- sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
- main="Murgleis",
- neck="Sanctity Necklace",
- ear2="Hermetic Earring",
- waist="Yamabuki-no-Obi",})
- sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
- main="",
- sub="Niobid Strap",
- head=empty,
- body="Twilight Cloak",
- ring1="Archon Ring",})
- sets.midcast.Utsusemi = sets.midcast.SpellInterrupt
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- #5 Melee 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
- -- RDM DW Trait: 25% DW /NIN, 15% /DNC
- -- No Magic Haste (74% DW to cap) -- 71%
- sets.engaged = {
- ammo="Ginsen",
- head={ name="Taeon Chapeau", augments={'Accuracy+18 Attack+18','"Dual Wield"+5','DEX+7',}}, --5
- body={ name="Taeon Tabard", augments={'Mag. Evasion+7','"Triple Atk."+2','Phalanx +2',}}, --5
- hands={ name="Taeon Gloves", augments={'Mag. Acc.+1','"Triple Atk."+2',}}, --5
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}}, --6
- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','DEX+9',}}, --9
- neck="Asperity Necklace",
- waist="Reiki Yotai", --7
- left_ear="Suppanomimi", --5
- right_ear="Eabani Earring", --4
- left_ring="Petrov Ring",
- right_ring="Hetairoi Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},}
- sets.engaged.LowAcc = set_combine(sets.engaged, {
- neck="Combatant's Torque",
- ring1="Cacoethic Ring +1",
- })
- sets.engaged.MidAcc = set_combine(sets.engaged.LowAcc, {
- head="Carmine Mask +1",
- })
- sets.engaged.HighAcc = set_combine(sets.engaged.MidAcc, {
- ear1="Digni. Earring",
- waist="Olseni Belt",
- })
- sets.engaged.STP = set_combine(sets.engaged, {
- ammo="Ginsen",
- head="Aya. Zucchetto +1",
- body="Ayanmo Corazza +1",
- hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
- legs="Aya. Cosciales +1",
- feet={ name="Carmine Greaves +1", augments={'Accuracy+10','DEX+10','MND+15',}},
- neck="Caro Necklace",
- waist="Windbuffet Belt +1",
- left_ear="Brutal Earring",
- right_ear="Mache Earring",
- left_ring="Etana Ring",
- right_ring="Mephitas's Ring +1",
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+1','"Fast Cast"+4',}},
- })
- -- 15% Magic Haste (67% DW to cap) --67 Cap
- sets.engaged.LowHaste = {
- ammo="Ginsen",
- head={ name="Taeon Chapeau", augments={'Accuracy+18 Attack+18','"Dual Wield"+5','DEX+7',}}, --5
- body={ name="Taeon Tabard", augments={'Mag. Evasion+7','"Triple Atk."+2','Phalanx +2',}}, --5
- hands={ name="Taeon Gloves", augments={'Mag. Acc.+1','"Triple Atk."+2',}}, --5
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}}, --6
- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','DEX+9',}}, --9
- neck="Asperity Necklace",
- waist="Reiki Yotai", --7
- left_ear="Suppanomimi", --5
- right_ear="Brutal Earring",
- left_ring="Petrov Ring",
- right_ring="Hetairoi Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},}
- sets.engaged.LowAcc.LowHaste = set_combine(sets.engaged.LowHaste, {
- neck="Combatant's Torque",
- ring1="Cacoethic Ring +1",
- })
- sets.engaged.MidAcc.LowHaste = set_combine(sets.engaged.LowAcc.LowHaste, {
- head="Carmine Mask +1",
- right_ear="Eabani Earring",
- })
- sets.engaged.HighAcc.LowHaste = set_combine(sets.engaged.MidAcc.LowHaste, {
- ear1="Cessance Earring",
- ear2="Telos Earring",
- ring1="Ramuh Ring +1",
- waist="Olseni Belt",
- })
- sets.engaged.STP.LowHaste = set_combine(sets.engaged.STP, {})
- -- 30% Magic Haste (56% DW to cap) --57
- sets.engaged.MidHaste = {
- ammo="Ginsen",
- head={ name="Taeon Chapeau", augments={'Accuracy+18 Attack+18','"Dual Wield"+5','DEX+7',}}, --5
- body="Ayanmo Corazza +1",
- hands={ name="Taeon Gloves", augments={'Mag. Acc.+1','"Triple Atk."+2',}}, --5
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}}, --6
- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','DEX+9',}}, --9
- neck="Asperity Necklace",
- waist="Reiki Yotai", --7
- left_ear="Trux Earring",
- right_ear="Brutal Earring",
- left_ring="Petrov Ring",
- right_ring="Hetairoi Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},}
- sets.engaged.LowAcc.MidHaste = set_combine(sets.engaged.MidHaste, {
- neck="Combatant's Torque",
- ring1="Cacoethic Ring +1",
- })
- sets.engaged.MidHaste.MidAcc = set_combine(sets.engaged.LowAcc.MidHaste, {
- head="Carmine Mask +1",
- })
- sets.engaged.HighAcc.MidHaste = set_combine(sets.engaged.MidHaste.MidAcc, {
- ear2="Digni. Earring",
- ring2="Cacoethic Ring",
- waist="Olseni Belt",
- })
- sets.engaged.STP.MidHaste = set_combine(sets.engaged.STP, {})
- -- 35% Magic Haste (51% DW to cap) 50
- sets.engaged.HighHaste = {
- ammo="Ginsen",
- head={ name="Taeon Chapeau", augments={'Accuracy+18 Attack+18','"Dual Wield"+5','DEX+7',}}, --5
- body="Ayanmo Corazza +1",
- hands={ name="Taeon Gloves", augments={'Mag. Acc.+1','"Triple Atk."+2',}}, --5
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}}, --6
- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','DEX+9',}}, --9
- neck="Asperity Necklace",
- waist="Windbuffet Belt +1",
- left_ear="Trux Earring",
- right_ear="Brutal Earring",
- left_ring="Petrov Ring",
- right_ring="Hetairoi Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},}
- sets.engaged.LowAcc.HighHaste = set_combine(sets.engaged.HighHaste, {
- neck="Combatant's Torque",
- ring1="Cacoethic Ring +1",
- })
- sets.engaged.MidAcc.HighHaste = set_combine(sets.engaged.LowAcc.HighHaste, {
- head="Carmine Mask +1",
- waist="Reiki Yotai",
- })
- sets.engaged.HighAcc.HighHaste = set_combine(sets.engaged.MidAcc.HighHaste, {
- ear2="Telos Earring",----Digni
- ring2="Cacoethic Ring",
- waist="Olseni Belt",})
- sets.engaged.STP.HighHaste = set_combine(sets.engaged.STP, {})
- -- 47% Magic Haste (36% DW to cap)
- sets.engaged.MaxHaste = {
- ammo="Ginsen",
- head="Carmine Mask +1",
- body="Ayanmo Corazza +1",
- hands={ name="Taeon Gloves", augments={'Mag. Acc.+1','"Triple Atk."+2',}}, --5
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}}, --6
- feet="Carmine Greaves +1",
- neck="Asperity Necklace",
- waist="Windbuffet Belt +1",
- left_ear="Trux Earring",
- right_ear="Brutal Earring",
- left_ring="Petrov Ring",
- right_ring="Hetairoi Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},}
- sets.engaged.LowAcc.MaxHaste = set_combine(sets.engaged.MaxHaste, {
- neck="Combatant's Torque",
- ring1="Cacoethic Ring +1",
- })
- sets.engaged.MidAcc.MaxHaste = set_combine(sets.engaged.LowAcc.MaxHaste, {
- })
- sets.engaged.HighAcc.MaxHaste = set_combine(sets.engaged.MidAcc.MaxHaste, {
- ear2="Telos Earring",----Digni
- ring2="Cacoethic Ring",
- waist="Olseni Belt",})
- sets.engaged.STP.MaxHaste = set_combine(sets.engaged.STP, {})
- sets.aftercast = {}
- sets.aftercast.DT = {
- sub=current_shield,
- ammo="Homiliary",
- head="Aya. Zucchetto +1",
- body="Ayanmo Corazza +1",
- hands="Aya. Manopolas +1",
- legs="Aya. Cosciales +1",
- feet="Aya. Gambieras +1",
- neck="Twilight Torque",
- waist="Flume Belt +1",
- left_ear="Etiolation Earring",
- right_ear="Odnowa Earring +1",
- left_ring="Defending Ring",
- right_ring="Patricius Ring",
- back="Reiki Cloak"}
- -------------------------------------------------------------------------------------------------------------------------------------
- ---------------------------------------------------------#6 WS Sets -----------------------------------------------------------------
- -------------------------------------------------------------------------------------------------------------------------------------
- sets.midcast['Chant du Cygne']= {
- ammo="Yetshila",
- head={ name="Carmine Mask", augments={'Accuracy+10','DEX+10','MND+15',}},
- body="Ayanmo Corazza +1",
- hands="Jhakri Cuff +1",
- legs="Aya. Cosciales +1",
- feet="Aya. Gambieras +1",
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Mache Earring",
- right_ear={ name="Moonshade Earring", augments={'"Mag.Atk.Bns."+4','TP Bonus +25',}},
- left_ring="Begrudging Ring",
- right_ring="Apate Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},}
- sets.midcast= {}
- 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
- -------------------------------------------------------------------------------------------------------------------
- --------------------------------#12 Job-specific hooks for standard casting events.--------------------------------
- -------------------------------------------------------------------------------------------------------------------
- -- 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' and classes.NoSkillSpells:contains(spell.english) then
- equip(sets.midcast.EnhancingDuration)
- elseif spell.skill == 'Enhancing Magic' and spell.target.type == 'PLAYER' then
- if buffactive.composure then
- equip(sets.buff.ComposureOther)
- end
- elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
- equip(sets.midcast.CureSelf)
- elseif spell.skill == 'Elemental Magic' then
- if spell.english == "Impact" then
- equip(sets.midcast.Impact)
- end
- end
- if (spell.element == world.day_element or spell.element == world.weather_element) then
- equip(sets.Obi)
- end
- if default_spell_map == 'Spike' then
- equip(sets.midcast.spike)
- end
- end
- function job_aftercast(spell, action, spellMap, eventArgs)
- if autorun == 1 then
- windower.ffxi.run()
- autorun = 0
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_buff_change(buff,gain)
- if buff == "doom" then
- if gain then
- equip(sets.buff.Doom)
- send_command('@input /p Doomed.')
- disable('ring1','ring2','waist')
- else
- enable('ring1','ring2','waist')
- handle_equipping_gear(player.status)
- end
- end
- if buff == "Saboteur" then
- if gain then
- equip(sets.buff.Saboteur)
- send_command('@input /p Saboteur.')
- disable('hands')
- else
- enable('hands')
- handle_equipping_gear(player.status)
- end
- end
- end
- -- Called when a player gains or loses a buff.
- -- buff == buff gained or lost
- -- gain == true if the buff was gained, false if it was lost.
- function job_buff_change(buff,gain)
- -- If we gain or lose any haste buffs, adjust which gear set we target.
- if S{'haste', 'march', 'mighty guard', 'embrava', 'haste samba', 'geo-haste', 'indi-haste'}:contains(buff:lower()) then
- determine_haste_group()
- if not midaction() then
- handle_equipping_gear(player.status)
- end
- end
- if buffactive['Reive Mark'] then
- equip(sets.Reive)
- disable('neck')
- else
- enable('neck')
- end
- if buff == "doom" then
- if gain then
- equip(sets.buff.Doom)
- send_command('@input /p Doomed.')
- disable('ring1','ring2','waist')
- else
- enable('ring1','ring2','waist')
- handle_equipping_gear(player.status)
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- ------------------------- User code that supplements standard library decisions. ----------------------------------
- -------------------------------------------------------------------------------------------------------------------
- -- Called for direct player commands.
- function job_self_command(cmdParams, eventArgs)
- if cmdParams[1]:lower() == 'scholar' then
- handle_strategems(cmdParams)
- eventArgs.handled = true
- elseif cmdParams[1]:lower() == 'nuke' then
- handle_nuking(cmdParams)
- eventArgs.handled = true
- end
- end
- -- Custom spell mapping.
- function job_get_spell_map(spell, default_spell_map)
- if spell.action_type == 'Magic' then
- if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
- if (world.weather_element == 'Light' or world.day_element == 'Light') then
- return 'CureWeather'
- end
- elseif spell.skill == 'Enfeebling Magic' then
- if spell.type == 'WhiteMagic' then
- return 'MndEnfeebles'
- else
- return 'IntEnfeebles'
- end
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- --#10 Utility functions specific to this job for Haste calculation when Sub NIN, Sub DNC needs 10% more DW.
- -------------------------------------------------------------------------------------------------------------------
- function determine_haste_group()
- -- Gearswap can't detect the difference between Haste I and Haste II
- -- so use winkey-H to manually set Haste spell level.
- -- Haste (buffactive[33]) - 15%
- -- Haste II (buffactive[511]) - 30%
- -- Haste Samba - 5%/10%
- -- Victory March +0/+3/+4/+5 9.4%/14%/15.6%/17.1%
- -- Advancing March +0/+3/+4/+5 6.3%/10.9%/12.5%/14%
- -- Honor March +0/+1 (Spell id[417])
- -- Embrava - 30%
- -- Mighty Guard (buffactive[604]) - 15%
- -- Geo-Haste (buffactive[580]) - 40%
- classes.CustomMeleeGroups:clear()
- if state.HasteMode.value == 'Haste II' then
- if(((buffactive[33] or buffactive[580] or buffactive.embrava) and (buffactive.march or buffactive[604])) or
- (buffactive[33] and (buffactive[580] or buffactive.embrava)) or
- (buffactive.march == 2 and buffactive[604])) then
- --add_to_chat(215, '---------- <<<< | Magic Haste Level: 43% | >>>> ----------')
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif ((buffactive[33] or buffactive.march == 2 or buffactive[580]) and buffactive['haste samba']) then
- --add_to_chat(004, '---------- <<<< | Magic Haste Level: 35% | >>>> ----------')
- classes.CustomMeleeGroups:append('HighHaste')
- elseif ((buffactive[580] or buffactive[33] or buffactive.march == 2) or
- (buffactive.march == 1 and buffactive[604])) then
- --add_to_chat(008, '---------- <<<< | Magic Haste Level: 30% | >>>> ----------')
- classes.CustomMeleeGroups:append('MidHaste')
- elseif (buffactive.march == 1 or buffactive[604]) then
- --add_to_chat(007, '---------- <<<< | Magic Haste Level: 15% | >>>> ----------')
- classes.CustomMeleeGroups:append('LowHaste')
- end
- else
- if (buffactive[580] and ( buffactive.march or buffactive[33] or buffactive.embrava or buffactive[604]) ) or
- (buffactive.embrava and (buffactive.march or buffactive[33] or buffactive[604])) or
- (buffactive.march == 2 and (buffactive[33] or buffactive[604])) or
- (buffactive[33] and buffactive[604] and buffactive.march ) then
- --add_to_chat(215, '---------- <<<< | Magic Haste Level: 43% | >>>> ----------')
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif ((buffactive[604] or buffactive[33]) and buffactive['haste samba'] and buffactive.march == 1) or
- (buffactive.march == 2 and buffactive['haste samba']) or
- (buffactive[580] and buffactive['haste samba'] ) then
- --add_to_chat(004, '---------- <<<< | Magic Haste Level: 35% | >>>> ----------')
- classes.CustomMeleeGroups:append('HighHaste')
- elseif (buffactive.march == 2 ) or
- ((buffactive[33] or buffactive[604]) and buffactive.march == 1 ) or -- MG or haste + 1 march
- (buffactive[580] ) or -- geo haste
- (buffactive[33] and buffactive[604]) then
- --add_to_chat(008, '---------- <<<< | Magic Haste Level: 30% | >>>> ----------')
- classes.CustomMeleeGroups:append('MidHaste')
- elseif buffactive[33] or buffactive[604] or buffactive.march == 1 then
- --add_to_chat(007, '---------- <<<< | Magic Haste Level: 15% | >>>> ----------')
- classes.CustomMeleeGroups:append('LowHaste')
- end
- end
- end
- -- State buff checks that will equip buff gear and mark the event as handled.
- function check_buff(buff_name, eventArgs)
- if state.Buff[buff_name] then
- equip(sets.buff[buff_name] or {})
- if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- eventArgs.handled = true
- end
- end
- -- Check for various actions that we've specified in user code as being used with TH gear.
- -- This will only ever be called if TreasureMode is not 'None'.
- -- Category and Param are as specified in the action event packet.
- function th_action_check(category, param)
- if category == 2 or -- any ranged attack
- --category == 4 or -- any magic action
- (category == 3 and param == 30) or -- Aeolian Edge
- (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
- (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
- then return true
- end
- end
- -- Function to lock the ranged slot if we have a ranged weapon equipped.
- function check_range_lock()
- if player.equipment.range ~= 'empty' then
- disable('range', 'ammo')
- else
- enable('range', 'ammo')
- end
- end
- -- 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(1, 2)
- elseif player.sub_job == 'WAR' then
- set_macro_page(2, 2)
- elseif player.sub_job == 'NIN' then
- set_macro_page(3, 2)
- elseif player.sub_job == 'BLM' then
- set_macro_page(4, 2)
- elseif player.sub_job == 'WHM' then
- set_macro_page(5, 2)
- elseif player.sub_job == 'SCH' then
- set_macro_page(7, 2)
- elseif player.sub_job == 'THF' then
- set_macro_page(6, 2)
- else
- set_macro_page(4, 2)
- end
- end
- function set_lockstyle()
- send_command('wait 2; input /lockstyleset 56')
- end
- -------------------------------------------------------------------------------------------------------------------
- --#6-- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function user_setup()
- state.OffenseMode:options('STP', 'Normal', 'LowAcc', 'MidAcc', 'HighAcc')
- state.CastingMode:options('Normal', 'Seidr', 'Resistant')
- state.IdleMode:options('Normal', 'DT')
- state.WeaponLock = M(false, 'Weapon Lock')
- state.MagicBurst = M(false, 'Magic Burst')
- -- Additional local binds
- send_command('bind !` gs c toggle MagicBurst')
- send_command('bind ^- gs c scholar light')
- send_command('bind ^= gs c scholar dark')
- send_command('bind !- gs c scholar addendum')
- send_command('bind != gs c scholar addendum')
- send_command('bind ^; gs c scholar speed')
- send_command('bind ![ gs c scholar aoe')
- send_command('bind !; gs c scholar cost')
- send_command('bind ^, input /ma Sneak <stpc>')
- send_command('bind ^. input /ma Invisible <stpc>')
- send_command('bind @z gs c toggle WeaponLock')
- send_command('bind @h gs c cycle HasteMode')
- select_default_macro_book()
- set_lockstyle()
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind !`')
- send_command('unbind ^-')
- send_command('unbind ^=')
- send_command('unbind !-')
- send_command('unbind !=')
- send_command('unbind ^;')
- send_command('unbind ![')
- send_command('unbind !;')
- send_command('unbind ^,')
- send_command('unbind !.')
- send_command('unbind ^.')
- end
- function customize_melee_set(meleeSet)
- if state.TreasureMode.value == 'Fulltime' then
- meleeSet = set_combine(meleeSet, sets.TreasureHunter)
- end
- return meleeSet
- end
- function job_setup() --Sub THF
- state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
- state.Buff['Trick Attack'] = buffactive['trick attack'] or false
- --Sub BLM
- state.Buff['Elemental Seal'] = buffactive['Elemental Seal'] or false
- --Sub WHM
- state.Buff['Divine Seal'] = buffactive['Divine Seal'] or false
- --Main
- state.Buff['Composure'] = buffactive['Composure'] or false
- state.Buff['Chainspell'] = buffactive['Chainspell'] or false
- state.Buff['Stymie'] = buffactive['Stymie'] or false
- state.Buff['Spontaneity'] = buffactive['Spontaneity'] or false
- state.Buff['Saboteur'] = buffactive['Saboteur'] or false
- state.Buff[''] = buffactive[''] or false
- state.Buff[''] = buffactive[''] or false
- state.Buff[''] = buffactive[''] or false
- include('Mote-TreasureHunter')
- -- For th_action_check():
- -- JA IDs for actions that always have TH: Provoke, Animated Flourish
- info.default_ja_ids = S{35, 204}
- -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
- info.default_u_ja_ids = S{201, 202, 203, 205, 207}
- state.HasteMode = M{['description']='Haste Mode', 'Haste II', 'Haste I'}
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- th_update(cmdParams, eventArgs)
- end
- function job_update(cmdParams, eventArgs)
- determine_haste_group()
- end
- -- Function to display the current relevant user state when doing an update.
- -- Return true if display was handled, and you don't want the default info shown.
- function display_current_job_state(eventArgs)
- local msg = '[ Melee'
- if state.CombatForm.has_value then
- msg = msg .. ' (' .. state.CombatForm.value .. ')'
- end
- msg = msg .. ': '
- msg = msg .. state.OffenseMode.value
- if state.HybridMode.value ~= 'Normal' then
- msg = msg .. '/' .. state.HybridMode.value
- end
- msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value
- if state.DefenseMode.value ~= 'None' then
- msg = msg .. ' ][ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value
- end
- if state.Kiting.value then
- msg = msg .. ' ][ Kiting Mode: ON'
- end
- msg = msg .. ' ][ TH: ' .. state.TreasureMode.value
- msg = msg .. ' ]'
- add_to_chat(060, msg)
- eventArgs.handled = true
- end
- ------------------------------------------------------------------------------------------------------------
- -----------------------------------------------#13 Stratagems --------------------------------------------
- ------------------------------------------------------------------------------------------------------------
- --[[ Addendum Commands:
- Shorthand versions for each strategem type that uses the version appropriate for
- the current Arts.
- Light Arts Dark Arts
- gs c scholar light Light Arts/Addendum
- gs c scholar dark Dark Arts/Addendum
- gs c scholar cost Penury Parsimony
- gs c scholar speed Celerity Alacrity
- gs c scholar aoe Accession Manifestation
- gs c scholar addendum Addendum: White Addendum: Black
- --]]
- function update_active_strategems()
- state.Buff['Accession'] = buffactive['Accession'] or false
- state.Buff['Manifestation'] = buffactive['Manifestation'] or false
- state.Buff['Penury'] = buffactive['Penury'] or false
- state.Buff['Parsimony'] = buffactive['Parsimony'] or false
- state.Buff['Celerity'] = buffactive['Celerity'] or false
- state.Buff['Alacrity'] = buffactive['Alacrity'] or false
- state.Buff['Klimaform'] = buffactive['Klimaform'] or false
- end
- function update_sublimation()
- state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
- end
- function job_state_change(stateField, newValue, oldValue)
- if state.WeaponLock.value == true then
- disable('main','sub')
- else
- enable('main','sub')
- end
- end
- --------------------------------------------------------------------------------------------------
- ---------------------------- General handling of strategems in an Arts-agnostic way. -------------
- -------------------------------------- Format: gs c scholar <strategem> --------------------------
- --------------------------------------------------------------------------------------------------
- function handle_strategems(cmdParams)
- --cmdParams[1] == 'scholar'
- --cmdParams[2] == 'strategem to use'
- if not cmdParams[2] then
- add_to_chat(123,'Error: No strategem command given.')
- return
- end
- local strategem = cmdParams[2]:lower()
- if strategem == 'light' then
- if buffactive['light arts'] then
- send_command('input /ja "Addendum: White" <me>')
- elseif buffactive['addendum: white'] then
- add_to_chat(122,'Error: Addendum: White is already active.')
- else
- send_command('input /ja "Light Arts" <me>')
- end
- elseif strategem == 'dark' then
- if buffactive['dark arts'] then
- send_command('input /ja "Addendum: Black" <me>')
- elseif buffactive['addendum: black'] then
- add_to_chat(122,'Error: Addendum: Black is already active.')
- else
- send_command('input /ja "Dark Arts" <me>')
- end
- elseif buffactive['light arts'] or buffactive['addendum: white'] then
- if strategem == 'cost' then
- send_command('input /ja Penury <me>')
- elseif strategem == 'speed' then
- send_command('input /ja Celerity <me>')
- elseif strategem == 'aoe' then
- send_command('input /ja Accession <me>')
- elseif strategem == 'addendum' then
- send_command('input /ja "Addendum: White" <me>')
- else
- add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
- end
- elseif buffactive['dark arts'] or buffactive['addendum: black'] then
- if strategem == 'cost' then
- send_command('input /ja Parsimony <me>')
- elseif strategem == 'speed' then
- send_command('input /ja Alacrity <me>')
- elseif strategem == 'aoe' then
- send_command('input /ja Manifestation <me>')
- elseif strategem == 'addendum' then
- send_command('input /ja "Addendum: Black" <me>')
- else
- add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
- end
- else
- add_to_chat(123,'No arts has been activated yet.')
- end
- end
- -----------------------------------------------------------------------------------------------------------------------------
- -----------------------------------------------------Dual Wield or Not Dual Wield...-----------------------------------------
- -----------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement