Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Original: Motenten / Modified: Arislan/Boposhopo
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- -- state.CP = M(false, "Capacity Points Mode")
- state.Buff.Composure = buffactive.Composure or false
- state.Buff.Saboteur = buffactive.Saboteur or false
- state.Buff.Stymie = buffactive.Stymie or false
- no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
- "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
- enfeebling_magic_acc = S{'Bind', 'Break', 'Dispel', 'Distract', 'Distract II', 'Frazzle',
- 'Frazzle II', 'Gravity', 'Gravity II', 'Silence'}
- enfeebling_magic_skill = S{'Distract III', 'Frazzle III', 'Poison II'}
- enfeebling_magic_effect = S{'Dia', 'Dia II', 'Dia III', 'Diaga', 'Blind', 'Blind II'}
- enfeebling_magic_sleep = S{'Sleep', 'Sleep II', 'Sleepga'}
- skill_spells = S{
- 'Temper', 'Temper II', 'Enfire', 'Enfire II', 'Enblizzard', 'Enblizzard II', 'Enaero', 'Enaero II',
- 'Enstone', 'Enstone II', 'Enthunder', 'Enthunder II', 'Enwater', 'Enwater II'}
- include('Mote-TreasureHunter')
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- state.OffenseMode:options('Normal', 'Enspell')
- state.HybridMode:options('Normal', 'DT')
- state.WeaponskillMode:options('Normal', 'Acc')
- state.IdleMode:options('Normal', 'DT')
- state.CombatWeapon = M{['description']='Weapon Selection', 'Normal', 'Crocea', 'Bunzi', 'Excal', 'Naegling', 'Maxentius', 'Mandau'}
- state.EnSpell = M{['description']='EnSpell', 'Enfire', 'Enblizzard', 'Enaero', 'Enstone', 'Enthunder', 'Enwater'}
- state.BarElement = M{['description']='BarElement', 'Barfire', 'Barblizzard', 'Baraero', 'Barstone', 'Barthunder', 'Barwater'}
- state.BarStatus = M{['description']='BarStatus', 'Baramnesia', 'Barvirus', 'Barparalyze', 'Barsilence', 'Barpetrify', 'Barpoison', 'Barblind', 'Barsleep'}
- state.GainSpell = M{['description']='GainSpell', 'Gain-STR', 'Gain-INT', 'Gain-AGI', 'Gain-VIT', 'Gain-DEX', 'Gain-MND', 'Gain-CHR'}
- send_command('wait 6;input /lockstyleset 7')
- select_default_macro_book()
- end
- -- Called when this job file is unloaded (eg: job change)
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- sets.weapons = {}
- sets.weapons['Crocea'] = {main="Crocea Mors", sub="Ammurapi Shield"}
- sets.weapons['Bunzi'] = {main="Bunzi's Rod", sub="Ammurapi Shield"}
- sets.weapons['Excal'] = {main="Excalibur", sub="Ternion Dagger +1"}
- sets.weapons['Naegling'] = {main="Naegling", sub="Ternion Dagger +1"}
- sets.weapons['Maxentius'] = {main="Maxentius", sub="Ternion Dagger +1"}
- sets.weapons['Mandau'] = {main="Mandau", sub="Ternion Dagger +1"}
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Precast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.TreasureHunter = {ammo="Perfect Lucky Egg", waist="Chaac Belt", legs="Volte Hose",}
- -- Precast sets to enhance JAs
- sets.precast.JA['Chainspell'] = {body="Viti. Tabard +3"}
- -- Fast cast sets for spells
- sets.precast.FC = {head="Atro. Chapeau +2",
- body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
- hands="Malignance Gloves",
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Loricate Torque +1",
- waist="Embla Sash",
- left_ear="Loquac. Earring",
- right_ear="Etiolation Earring",
- right_ring="Defending Ring",
- left_ring="Fortified Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {})
- sets.precast.FC.Curaga = set_combine(sets.precast.FC, {})
- sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.FC.Impact = set_combine(sets.precast.FC, {})
- sets.precast.Storm = set_combine(sets.precast.FC, {})
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {})
- ------------------------------------------------------------------------------------------------
- ------------------------------------- Weapon Skill Sets ----------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.precast.WS = {ammo="Oshasha's Treatise",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body={ name="Nyame Mail", augments={'Path: B',}},
- hands="Nyame Gauntlets",
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Sherida Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring="Rufescent Ring",
- right_ring="Epaminondas's Ring",
- back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {})
- sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {ammo="Yetshila +1",
- head={ name="Blistering Sallet +1", augments={'Path: A',}},
- body="Ayanmo Corazza +2",
- hands={ name="Bunzi's Gloves", augments={'Path: A',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Sherida Earring",
- right_ear="Brutal Earring",
- left_ring="Rufescent Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10',}},})
- sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS['Chant du Cygne'], {})
- sets.precast.WS['Savage Blade'] = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Nyame Helm", augments={'Path: B',}},
- body={ name="Nyame Mail", augments={'Path: B',}},
- hands="Nyame Gauntlets",
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet="Leth. Houseaux +3",
- neck="Rep. Plat. Medal",
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear="Sherida Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring="Rufescent Ring",
- right_ring="Epaminondas's Ring",
- back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
- sets.precast.WS['Knights of Round'] = set_combine(sets.precast.WS['Savage Blade'], {right_ear="Ishvara Earring"})
- sets.precast.WS['Death Blossom'] = set_combine(sets.precast.WS['Savage Blade'], {})
- sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ammo="Aurgelmir Orb",
- head="Nyame Helm",
- body="Nyame Mail",
- hands="Nyame Gauntlets",
- legs="Nyame Flanchard",
- feet="Nyame Sollerets",
- neck="Fotia Gorget",
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear="Ishvara Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Shukuyu Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},})
- sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS['Requiescat'], {})
- sets.precast.WS['Sanguine Blade'] = {ammo="Sroda Tathlum",
- head="Pixie Hairpin +1",
- body={ name="Nyame Mail", augments={'Path: B',}},
- hands="Nyame Gauntlets",
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet="Leth. Houseaux +3",
- neck="Sibyl Scarf",
- waist="Eschan Stone",
- left_ear="Malignance Earring",
- right_ear="Regal Earring",
- left_ring="Archon Ring",
- right_ring="Epaminondas's Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
- sets.precast.WS['Seraph Blade'] = {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
- head={ name="Nyame Helm", augments={'Path: B',}},
- body={ name="Nyame Mail", augments={'Path: B',}},
- hands="Nyame Gauntlets",
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet="Leth. Houseaux +3",
- neck="Sibyl Scarf",
- waist="Eschan Stone",
- left_ear="Malignance Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring="Freke Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},}
- sets.precast.WS['Aeolian Edge'] = {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
- head={ name="Nyame Helm", augments={'Path: B',}},
- body={ name="Nyame Mail", augments={'Path: B',}},
- hands="Nyame Gauntlets",
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Sibyl Scarf",
- waist="Eschan Stone",
- left_ear="Malignance Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring="Freke Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},}
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Midcast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.midcast.FastRecast = {}
- sets.midcast.Cure = {
- ammo="Regal Gem",
- head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
- body={ name="Kaykaus Bliaut +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
- hands={ name="Kaykaus Cuffs", augments={'MP+60','MND+10','Mag. Acc.+15',}},
- legs="Atrophy Tights +2",
- feet={ name="Vanya Clogs", augments={'MP+50','"Cure" potency +7%','Enmity-6',}},
- neck="Phalaina Locket",
- waist="Luminary Sash",
- left_ear="Beatific Earring",
- right_ear="Mendi. Earring",
- left_ring="Kishar Ring",
- right_ring="Sirona's Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},}
- sets.midcast.CureWeather = set_combine(sets.midcast.Cure, {
- waist="Hachirin-no-Obi",
- })
- sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {
- neck="Phalaina Locket", -- 4(4)
- waist="Gishdubar Sash", -- (10)
- })
- sets.midcast.Curaga = set_combine(sets.midcast.Cure, {
- ammo="Regal Gem",
- waist="Luminary Sash",
- })
- sets.midcast.StatusRemoval = {
- head="Vanya Hood",
- body="Vanya Robe",
- legs="Atrophy Tights +2",
- feet="Vanya Clogs",
- neck="Incanter's Torque",
- ring1="Menelaus's Ring",
- ring2="Ephedra Ring",
- }
- sets.midcast.Cursna = set_combine(sets.midcast.StatusRemoval, {})
- sets.midcast['Enhancing Magic'] = {
- main="Pukulatmuj +1",
- sub="Ammurapi Shield",
- ammo="Staunch Tathlum",
- head="Befouled Crown",
- body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
- hands={ name="Viti. Gloves +3", augments={'Enhancing Magic duration',}},
- legs="Atrophy Tights +2",
- feet="Leth. Houseaux +3",
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Olympus Sash",
- left_ear="Andoaa Earring",
- right_ear="Lethargy Earring +1",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.midcast.EnhancingDuration = {
- main="Colada",
- sub="Ammurapi Shield",
- ammo="Sapience Orb",
- head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +9',}},
- body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
- hands="Atrophy Gloves +2",
- legs={ name="Telchine Braconi", augments={'"Cure" potency +8%','Enh. Mag. eff. dur. +9',}},
- feet="Leth. Houseaux +3",
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Embla Sash",
- right_ear="Lethargy Earring +1",
- left_ear="Andoaa Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.midcast['Haste II'] = set_combine(sets.midcast.EnhancingDuration, {})
- sets.midcast.EnhancingSkill = {
- main="Pukulatmuj +1",
- sub="Ammurapi Shield",
- ammo="Staunch Tathlum",
- head="Befouled Crown",
- body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
- hands={ name="Viti. Gloves +3", augments={'Enhancing Magic duration',}},
- legs="Atrophy Tights +2",
- feet="Leth. Houseaux +3",
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Olympus Sash",
- right_ear="Andoaa Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back="Ghostfyre Cape"
- }
- sets.buff.ComposureOther = {sub="Ammurapi Shield",
- ammo="Sapience Orb",
- head="Leth. Chappel +2",
- body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
- hands="Leth. Ganth. +3",
- legs="Leth. Fuseau +3",
- feet="Leth. Houseaux +3",
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Embla Sash",
- right_ear="Leth. Earring +1",
- left_ear="Andoaa Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.midcast.Regen = set_combine(sets.midcast.EnhancingDuration, {})
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3", -- +2
- legs="Leth. Fuseau +3", -- +4
- waist="Gishdubar Sash",
- })
- sets.buff.ComposureRefresh = set_combine(sets.buff.ComposureOther, {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3", -- +2
- legs="Leth. Fuseau +3", -- +4
- waist="Gishdubar Sash",
- })
- sets.midcast.RefreshSelf = {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3", -- +2
- legs="Leth. Fuseau +3", -- +2
- waist="Gishdubar Sash",
- right_ear="Lethargy Earring +1",
- back="Grapevine Cape"
- }
- sets.midcast.Stoneskin = set_combine(sets.midcast.EnhancingSkill, {
- neck="Nodens Gorget",
- waist="Siegel Sash",
- })
- sets.midcast['Phalanx'] = {main="Pukulatmuj +1",
- sub="Ammurapi Shield",
- ammo="Staunch Tathlum",
- head={ name="Taeon Chapeau", augments={'"Fast Cast"+5','Phalanx +2',}},
- body={ name="Taeon Tabard", augments={'Spell interruption rate down -9%','Phalanx +3',}},
- hands={ name="Taeon Gloves", augments={'Spell interruption rate down -10%','Phalanx +3',}},
- legs={ name="Taeon Tights", augments={'Spell interruption rate down -9%','Phalanx +3',}},
- feet={ name="Taeon Boots", augments={'Spell interruption rate down -10%','Phalanx +3',}},
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Embla Sash",
- left_ear="Andoaa Earring",
- right_ear={ name="Leth. Earring +1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+12','Mag. Acc.+12','"Dbl.Atk."+4',}},
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +19',}},}
- sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingDuration, {head="Amalric Coif +1", hands="Regal Cuffs"})
- sets.midcast.Storm = set_combine(sets.midcast.EnhancingDuration, {})
- sets.midcast.GainSpell = {hands="Viti. Gloves +3"}
- sets.midcast.SpikesSpell = {legs="Viti. Tights +1"}
- sets.midcast.Protect = set_combine(sets.midcast.EnhancingDuration, {ring2="Sheltered Ring"})
- sets.midcast.Protectra = set_combine(sets.midcast.Protect, {})
- sets.midcast.Shell = set_combine(sets.midcast.Protect, {})
- sets.midcast.Shellra = set_combine(sets.midcast.Protect, {})
- -- Custom spell classes
- sets.macc = {range="Ullr",
- head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
- body="Atrophy Tabard +3",
- hands="Lethargy Gantherots +3",
- legs={ name="Chironic Hose", augments={'Mag. Acc.+30','"Conserve MP"+1','MND+8',}},
- feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Obstinate Sash",
- left_ear="Regal Earring",
- right_ear="Malignance Earring",
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},}
- sets.midcast['Enfeebling Magic'] = {ammo="Regal Gem",
- head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
- body="Lethargy Sayon +2",
- hands="Lethargy Gantherots +3",
- legs="Lethargey Fuseau +3",
- feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Obstinate Sash",
- left_ear="Regal Earring",
- right_ear="Malignance Earring",
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},}
- sets.midcast['Frazzle III'] = {ammo="Regal Gem",
- head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
- body="Lethargy Sayon +2",
- hands="Leth. Gantherots +3",
- egs="Lethargey Fuseau +3",
- feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Obstinate Sash",
- left_ear="Regal Earring",
- right_ear="Malignance Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +19',}},}
- sets.midcast.EnfeebleAcc = set_combine(sets.macc, {})
- sets.midcast['Dark Magic'] = {
- main="Crocea Mors",
- sub="Ammurapi Shield",
- ammo="Regal Gem",
- head="Atro. Chapeau +2",
- body="Atrophy Tabard +3",
- hands={ name="Bunzi's Gloves", augments={'Path: A',}},
- legs="Malignance Tights",
- feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist="Luminary Sash",
- left_ear="Malignance Earring",
- right_ear="Regal Earring",
- left_ring="Kishar Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
- head="Pixie Hairpin +1",
- feet="Merlinic Crackows",
- ear1="Hirudinea Earring",
- ring1="Archon Ring",
- waist="Fucho-no-obi",
- })
- sets.midcast.Aspir = set_combine(sets.midcast.Drain, {})
- sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {})
- sets.midcast['Bio III'] = set_combine(sets.midcast['Dark Magic'], {})
- sets.midcast['Absorb-TP'] = {range="Ullr",
- head="Amalric Coif +1",
- body="Carmine Scale Mail +1",
- hands="Leth. Ganth. +3",
- legs="Leth. Fuseau +3",
- feet="Leth. Houseaux +3",
- neck={ name="Dls. Torque +1", augments={'Path: A',}},
- waist={ name="Obstin. Sash", augments={'Path: A',}},
- left_ear="Malignance Earring",
- right_ear="Lethargy Earring +1",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},}
- sets.midcast['Elemental Magic'] = {
- main={ name="Bunzi's Rod", augments={'Path: A',}},
- sub="Ammurapi Shield",
- ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
- head="Ea Hat +1",
- body="Ea Houppe. +1",
- hands={ name="Bunzi's Gloves", augments={'Path: A',}},
- legs="Leth. Fuseau +3",
- feet="Leth. Houseaux +3",
- neck="Duelist's Torque +1",
- waist="Eschan Stone",
- left_ear="Regal Earring",
- right_ear="Malignance Earring",
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Freke Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.midcast['Elemental Magic'].Seidr = set_combine(sets.midcast['Elemental Magic'], { })
- sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {})
- sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
- head=empty,
- body="Twilight Cloak",
- ring1="Archon Ring",
- })
- -- Job-specific buff sets
- sets.buff.Saboteur = {hands="Leth. Gantherots +3"}
- sets.midcast.RA = {head={ name="Bunzi's Hat", augments={'Path: A',}},
- body="Malignance Tabard",
- hands="Malignance Gloves",
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Anu Torque",
- waist="Reiki Yotai",
- left_ear="Enervating Earring",
- right_ear="Crep. Earring",
- left_ring="Lehko's Ring",
- right_ring="Chirich Ring +1",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10','Phys. dmg. taken-10%',}},}
- ------------------------------------------------------------------------------------------------
- ----------------------------------------- Idle Sets --------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.idle = {}
- sets.idle.Field = {
- ammo="Homiliary",
- head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
- body="Lethargy Sayon +2",
- hands={ name="Bunzi's Gloves", augments={'Path: A',}},
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Loricate Torque +1",
- waist="Platinum Moogle Belt",
- left_ear="Infused Earring",
- right_ear="Etiolation Earring",
- left_ring="Shneddick Ring",
- right_ring="Defending Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},}
- sets.idle.Town = set_combine(sets.idle, {
- ammo="Homiliary",
- head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
- body="Lethargy Sayon +2",
- hands={ name="Bunzi's Gloves", augments={'Path: A',}},
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Loricate Torque +1",
- waist="Platinum Moogle Belt",
- left_ear="Infused Earring",
- right_ear="Etiolation Earring",
- left_ring="Shneddick Ring",
- right_ring="Defending Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- })
- sets.idle.Weak = set_combine(sets.idle, {})
- sets.resting = set_combine(sets.idle, {})
- 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
- sets.engaged = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Bunzi's Hat", augments={'Path: A',}},
- body="Malignance Tabard",
- hands="Malignance Gloves",
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Anu Torque",
- waist="Reiki Yotai",
- left_ear="Suppanomimi",
- right_ear="Crepuscular Earring",
- left_ring="Chirich Ring +1",
- right_ring="Chirich Ring +1",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10',}},
- }
- sets.engaged.Enspell = set_combine(sets.engaged, {head="Umuthi Hat", hands="Aya. Manopolas +2", left_ring="Metamorph Ring +1", right_ring="Crepuscular Ring"})
- -- No Magic Haste (74% DW to cap)
- sets.engaged.DW = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Bunzi's Hat", augments={'Path: A',}},
- body="Malignance Tabard",
- hands="Malignance Gloves",
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Anu Torque",
- waist="Reiki Yotai",
- left_ear="Suppanomimi",
- right_ear="Telos Earring",
- left_ring="Chirich Ring +1",
- right_ring="Chirich Ring +1",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10',}},
- } --41
- sets.engaged.DW.Enspell = set_combine(sets.engaged, {hands="Aya. Manopolas +2",})
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Hybrid Sets -------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.engaged.Hybrid = {
- ammo="Aurgelmir Orb",
- head={ name="Bunzi's Hat", augments={'Path: A',}},
- body="Malignance Tabard",
- hands="Malignance Gloves",
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Loricate Torque +1",
- waist="Reiki Yotai",
- left_ear="Suppanomimi",
- right_ear="Crep. Earring",
- left_ring="Defending Ring",
- right_ring="Chirich Ring +1",
- }
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_precast(spell, action, spellMap, eventArgs)
- if spellMap == 'Utsusemi' then
- if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
- cancel_spell()
- add_to_at(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
- eventArgs.handled = true
- return
- elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
- send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
- end
- end
- end
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.name == 'Impact' then
- equip(sets.precast.FC.Impact)
- end
- if spell.english == "Phalanx II" and spell.target.type == 'SELF' then
- cancel_spell()
- send_command('@input /ma "Phalanx" <me>')
- end
- enforce_blocks()
- 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 == 'Enhancing Magic' then
- if classes.NoSkillSpells:contains(spell.english) then
- equip(sets.midcast.EnhancingDuration)
- if spellMap == 'Refresh' then
- equip(sets.midcast.Refresh)
- if spell.target.type == 'SELF' then
- equip (sets.midcast.RefreshSelf)
- end
- end
- elseif skill_spells:contains(spell.english) then
- equip(sets.midcast.EnhancingSkill)
- elseif spell.english:startswith('Gain') then
- equip(sets.midcast.GainSpell)
- elseif spell.english:contains('Spikes') then
- equip(sets.midcast.SpikesSpell)
- end
- if (spell.target.type == 'PLAYER' or spell.target.type == 'NPC') and buffactive.Composure then
- if spellMap == 'Refresh' then
- equip(sets.buff.ComposureRefresh)
- else
- equip(sets.buff.ComposureOther)
- end
- end
- if spellMap == 'Cure' and spell.target.type == 'SELF' then
- equip(sets.midcast.CureSelf)
- end
- if spell.skill == 'Elemental Magic' then
- if spell.english == "Impact" then
- equip(sets.midcast.Impact)
- end
- end
- if spell.skill == 'Elemental Magic' or spell.english == "Kaustra" then
- if spell.element == world.weather_element and (get_weather_intensity() == 2 and spell.element ~= elements.weak_to[world.day_element]) then
- equip(sets.Obi)
- -- Target distance under 1.7 yalms.
- elseif spell.target.distance < (1.7 + spell.target.model_size) then
- equip({waist="Orpheus's Sash"})
- -- Matching day and weather.
- elseif spell.element == world.day_element and spell.element == world.weather_element then
- equip(sets.Obi)
- -- Target distance under 8 yalms.
- elseif spell.target.distance < (8 + spell.target.model_size) then
- equip({waist="Orpheus's Sash"})
- -- Match day or weather.
- elseif spell.element == world.day_element or spell.element == world.weather_element then
- equip(sets.Obi)
- end
- end
- enforce_blocks()
- end
- end
- function job_post_aftercast(spell, action, spellMap, eventArgs)
- enforce_blocks()
- 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
- end
- -- Handle notifications of general user state change.
- function job_state_change(stateField, newValue, oldValue)
- if stateField == "Weapon Selection" and sets.weapons[newValue] then
- equip(sets.weapons[newValue])
- end
- end
- function block_slots(...)
- local slots = S{...}
- local set = {}
- for slot in slots:it() do
- set[slot] = ""
- end
- equip(set)
- end
- function enforce_blocks()
- if S{'Crocea', 'Bunzi', 'Excal', 'Naegling', 'Maxentius', 'Mandau'}:contains(state.CombatWeapon.value) then
- block_slots('main', 'sub', 'range')
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- -- Called by the 'update' self-command, for common needs.
- function job_self_command(cmdParams, eventArgs)
- if cmdParams[1]:lower() == 'scholar' then
- handle_strategems(cmdParams)
- eventArgs.handled = true
- end
- end
- -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
- 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
- end
- if spell.skill == 'Enfeebling Magic' then
- if enfeebling_magic_skill:contains(spell.english) then
- return "SkillEnfeebles"
- elseif spell.type == "WhiteMagic" then
- if enfeebling_magic_acc:contains(spell.english) and not buffactive.Stymie then
- return "EnfeeblesAcc"
- elseif enfeebling_magic_effect:contains(spell.english) then
- return "EnfeeblesEffect"
- else
- return "EnfeeblesAcc"
- end
- elseif spell.type == "BlackMagic" then
- if enfeebling_magic_acc:contains(spell.english) and not buffactive.Stymie then
- return "EnfeeblesAcc"
- elseif enfeebling_magic_effect:contains(spell.english) then
- return "EnfeeblesEffect"
- elseif enfeebling_magic_sleep:contains(spell.english) then
- return "Sleep"
- else
- return "EnfeeblesAcc"
- end
- else
- return "EnfeeblesAcc"
- end
- end
- end
- end
- function get_custom_wsmode(spell, action, spellMap)
- local wsmode
- if state.OffenseMode.value == 'MidAcc' or state.OffenseMode.value == 'HighAcc' then
- wsmode = 'Acc'
- end
- return wsmode
- 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
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- 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
- function set_sleep_timer(spell)
- local self = windower.ffxi.get_player()
- if spell.en == "Sleep II" then
- base = 90
- elseif spell.en == "Sleep" or spell.en == "Sleepga" then
- base = 60
- end
- if state.Buff.Saboteur then
- if state.NM.value then
- base = base * 1.25
- else
- base = base * 2
- end
- end
- -- Merit Points Duration Bonus
- base = base + self.merits.enfeebling_magic_duration*6
- -- Job Points Duration Bonus
- base = base + self.job_points.rdm.enfeebling_magic_duration
- --Enfeebling duration non-augmented gear total
- gear_mult = 1.40
- --Enfeebling duration augmented gear total
- aug_mult = 1.25
- --Estoquer/Lethargy Composure set bonus
- --2pc = 1.1 / 3pc = 1.2 / 4pc = 1.35 / 5pc = 1.5
- empy_mult = 1 --from sets.midcast.Sleep
- totalDuration = math.floor(base * gear_mult * aug_mult * empy_mult)
- 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 check_gear()
- if no_swap_gear:contains(player.equipment.left_ring) then
- disable("ring1")
- else
- enable("ring1")
- end
- if no_swap_gear:contains(player.equipment.right_ring) then
- disable("ring2")
- else
- enable("ring2")
- end
- end
- windower.register_event('zone change',
- function()
- if no_swap_gear:contains(player.equipment.left_ring) then
- enable("ring1")
- equip(sets.idle)
- end
- if no_swap_gear:contains(player.equipment.right_ring) then
- enable("ring2")
- equip(sets.idle)
- end
- end
- )
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book
- set_macro_page(1, 2)
- end
Add Comment
Please, Sign In to add comment