Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (Global-Binds.lua contains additional non-job-related keybinds)
- -- 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')
- include('Mote-Include.lua')
- end
- function job_setup()
- state.CP = M(false, "CP 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", "Endorsement Ring", "Caliber Ring", "Signal Pearl", "Tactics Pearl", "Cumulus Masque +1", "Maat's Cap", "Treat Staff II"}
- 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'}
- lockstyleset = 6
- end
- --
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- --
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- state.OffenseMode:options('Normal', 'MidAcc', 'HighAcc')
- state.HybridMode:options('Normal', 'DT')
- state.WeaponskillMode:options('Normal', 'Acc')
- state.CastingMode:options('Normal', 'Seidr', 'Resistant')
- state.IdleMode:options('DWIdle', 'DT', 'Normal')
- 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'}
- state.WeaponLock = M(false, 'Weapon Lock')
- state.MagicBurst = M(false, 'Magic Burst')
- state.SleepMode = M{['description']='Sleep Mode', 'Normal', 'MaxDuration'}
- state.EnspellMode = M(false, 'Enspell Melee Mode')
- state.NM = M(false, 'NM?')
- state.CP = M(false, "AutoWS Mode")
- -- Additional local binds
- include('Global-Binds.lua') -- OK to remove this line
- --include('Global-WHM-Binds.lua') -- OK to remove this line
- send_command('lua l gearinfo')
- send_command('bind ^` input /ja "Composure" <me>')
- send_command('bind !` gs c toggle MagicBurst')
- if player.sub_job == 'SCH' then
- 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')
- end
- send_command('bind !q input /ma "Temper II" <me>')
- send_command('bind !w input /ma "Flurry II" <stpc>')
- send_command('bind !e input /ma "Haste II" <stpc>')
- send_command('bind !r input /ma "Refresh III" <stpc>')
- send_command('bind !y input /ma "Phalanx II" <stpc>')
- send_command('bind !o input /ma "Regen II" <stpc>')
- send_command('bind !p input /ma "Blaze Spikes" <me>')
- send_command('bind !insert gs c cycleback EnSpell')
- send_command('bind !delete gs c cycle EnSpell')
- send_command('bind ^insert gs c cycleback GainSpell')
- send_command('bind ^delete gs c cycle GainSpell')
- send_command('bind ^home gs c cycleback BarElement')
- send_command('bind ^end gs c cycle BarElement')
- send_command('bind ^pageup gs c cycleback BarStatus')
- send_command('bind ^pagedown gs c cycle BarStatus')
- send_command('bind @s gs c cycle SleepMode')
- send_command('bind @e gs c cycle EnspellMode')
- send_command('bind @d gs c toggle NM')
- send_command('bind @w gs c toggle WeaponLock')
- send_command('bind @c gs c toggle CP')
- --send_command('bind @e gs c cycleback WeaponSet')
- send_command('bind @r gs c cycle WeaponSet')
- send_command('bind ^numpad7 input /ws "Savage Blade" <t>')
- send_command('bind ^numpad9 input /ws "Chant du Cygne" <t>')
- send_command('bind ^numpad4 input /ws "Requiescat" <t>')
- send_command('bind ^numpad1 input /ws "Sanguine Blade" <t>')
- send_command('bind ^numpad2 input /ws "Seraph Blade" <t>')
- select_default_macro_book()
- set_lockstyle()
- state.Auto_Kite = M(false, 'Auto_Kite')
- Haste = 0
- DW_needed = 0
- DW = false
- moving = false
- update_combat_form()
- determine_haste_group()
- 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 !q')
- send_command('unbind !w')
- send_command('bind !e input /ma "Haste" <stpc>')
- send_command('bind !r input /ma "Refresh" <stpc>')
- send_command('bind !y input /ma "Phalanx" <me>')
- send_command('unbind !o')
- send_command('unbind !p')
- send_command('unbind @s')
- send_command('unbind @e')
- send_command('unbind @d')
- send_command('unbind @w')
- -- send_command('unbind @c')
- send_command('unbind @r')
- send_command('unbind !insert')
- send_command('unbind !delete')
- send_command('unbind ^insert')
- send_command('unbind ^delete')
- send_command('unbind ^home')
- send_command('unbind ^end')
- send_command('unbind ^pageup')
- send_command('unbind ^pagedown')
- send_command('unbind ^numpad7')
- send_command('unbind ^numpad9')
- send_command('unbind ^numpad4')
- send_command('unbind ^numpad1')
- send_command('unbind ^numpad2')
- send_command('unbind #`')
- send_command('unbind #1')
- send_command('unbind #2')
- send_command('unbind #3')
- send_command('unbind #4')
- send_command('unbind #5')
- send_command('unbind #6')
- send_command('unbind #7')
- send_command('unbind #8')
- send_command('unbind #9')
- send_command('unbind #0')
- send_command('unbind ^n')
- send_command('lua u gearinfo')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --Precast Sets
- sets.precast.JA['Chainspell'] = {body="Viti. Tabard +1"}
- sets.precast.FC = {
- head="Atrophy Chapeau +2", --14
- neck="Orunmila's Torque", --5
- body="Viti. Tabard +1", --13
- hands="Leyline Gloves", --8
- legs="Malignance Tights",
- --legs="Aya. Cosciales +2", --6
- feet={ name="Merlinic Crackows", augments={'VIT+2','Accuracy+14','Accuracy+10 Attack+10','Mag. Acc.+20 "Mag.Atk.Bns."+20',}}, --5
- --waist="Embla Sash", --5
- --back="Swith Cape", --3
- back="Ogapepo Cape", --2QC
- ear1="Malignance Earring", --4
- ear2="Loquacious Earring", --2
- --ring2="Weather. Ring +1", --5
- ring1="Lebeche Ring", --2QC
- ammo="Impatiens", --2QC
- waist="Witful Belt" --3QC
- }
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {
- ammo="Impatiens", --(2)
- --legs="Kaykaus Tights +1", --7
- ring1="Lebeche Ring", --(2)
- --ring2="Weather. Ring +1", --5/(4)
- back="Ogapepo Cape", --(2)
- waist="Witful Belt", --(3)
- })
- sets.precast.FC.Curaga = sets.precast.FC.Cure
- sets.precast.FC['Healing Magic'] = sets.precast.FC.Cure
- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.FC.Impact = set_combine(sets.precast.FC, {
- --ammo="Sapience Orb", --2
- head=empty,
- body="Twilight Cloak",
- --hands="Gende. Gages +1", --7
- neck="Orunmila's Torque", --5
- ear1="Malignance Earring",
- ear2="Loquacious Earring", --2
- --ear2="Enchntr. Earring +1", --2
- --ring1="Kishar Ring", --4
- back="Swith Cape", --3
- --waist="Shinjutsu-no-Obi +1", --5
- })
- sets.precast.FC.Dispelga = set_combine(sets.precast.FC, {
- main="Daybreak",
- sub="Sacro Bulwark",
- })
- sets.precast.Storm = set_combine(sets.precast.FC)
- sets.precast.FC.Utsusemi = sets.precast.FC.Cure
- --Weaponskill Sets
- sets.precast.WS = {
- ammo="Oshasha's Treatise",
- head="Viti. Chapeau +1",
- body="Viti. Tabard +1",
- hands="Atrophy Gloves +3",
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck="Fotia Gorget",
- ear1="Brutal Earring",
- ear2="Moonshade Earring",
- ring1="Rufescent Ring",
- ring2="Karieyh Ring +1",
- back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+2','Weapon skill damage +10%',}},
- waist="Fotia Belt",
- }
- sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {
- --ammo="Yetshila +1",
- head="Malignance Chapeau",
- body="Ayanmo Corazza +2",
- hands="Malignance Gloves",
- --legs="Zoar Subligar +1",
- feet="Thereoid Greaves",
- --ear1="Sherida Earring",
- ring1="Begrudging Ring",
- --ring2="Ilabrat Ring",
- --back=gear.RDM_WS2_Cape,
- })
- sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS['Chant du Cygne'], {
- --ammo="Voluspa Tathlum",
- head="Malignance Chapeau",
- neck="Combatant's Torque",
- ear2="Mache Earring +1",
- })
- sets.precast.WS['Vorpal Blade'] = sets.precast.WS['Chant du Cygne']
- sets.precast.WS['Vorpal Blade'].Acc = sets.precast.WS['Chant du Cygne'].Acc
- sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {
- --head="Cath Palug Crown",
- head="Merlinic Hood",
- body="Shamash Robe",
- --hands="Malignance Gloves",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2",
- --waist="Sailfi Belt +1",
- })
- sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {
- --ammo="Voluspa Tathlum",
- body="Jhakri Robe +2",
- neck="Combatant's Torque",
- hands="Malignance Gloves",
- waist="Kentarch Belt +1",
- })
- sets.precast.WS['Sanguine Blade'] = {
- --ammo="Pemphredo Tathlum",
- head="Cath Palug Crown",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2",
- neck="Sanctity Necklace",
- ear1="Malignance Earring",
- ear2="Friomisi Earring",
- ring1="Diamond Ring",
- ring2="Freke Ring",
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- waist="Sacro Cord",
- }
- sets.precast.WS['Seraph Blade'] = set_combine(sets.precast.WS['Sanguine Blade'], {
- --head="Merlinic Hood",
- ear2="Moonshade Earring",
- --ring1="Weather. Ring +1",
- })
- sets.precast.WS['Aeolian Edge'] = set_combine(sets.precast.WS['Seraph Blade'], {
- --head="Merlinic Hood",
- ear2="Moonshade Earring",
- --ring1="Shiva Ring +1",
- --waist="Orpheus's Sash",
- })
- sets.precast.WS['Black Halo'] = set_combine(sets.precast.WS['Savage Blade'], {
- --ear2="Sherida Earring",
- ring1="Rufescent Ring",
- })
- sets.precast.WS['Black Halo'].Acc = set_combine(sets.precast.WS['Black Halo'], {
- --ammo="Voluspa Tathlum",
- neck="Combatant's Torque",
- --ear2="Telos Earring",
- --waist="Grunfeld Rope",
- })
- --Midcast Sets
- sets.midcast.FastRecast = sets.precast.FC
- sets.midcast.SpellInterrupt = {
- --sub="Sacro Bulwark", --7
- ammo="Impatiens", --10
- legs="Carmine Cuisses +1", --20
- --ring1="Evanescence Ring", --5
- --waist="Rumination Sash", --10
- }
- sets.midcast.Cure = {
- main="Daybreak", --30
- --sub="Sors Shield", --3/(-5)
- sub="Sacro Bulwark",
- ammo="Kalboron Stone",
- head="Vitiation Chapeau +1",
- body="Vitiation Tabard +1",
- hands="Telchine Gloves", --10
- legs="Atrophy Tights +2", --11
- feet="Chironic Slippers",
- neck="Incanter's Torque",
- ear1="Malignance Earring",
- ear2="Loquacious Earring",
- ring1="Lebeche Ring",
- ring2="Haoma's Ring",
- back="Solemnity Cape", --7
- waist="Latria Sash",
- }
- sets.midcast.CureWeather = set_combine(sets.midcast.Cure, {
- main="Chatoyant Staff",
- --sub="Enki Strap",
- back="Twilight Cape",
- waist="Hachirin-no-Obi",
- })
- sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {
- neck="Phalaina Locket", -- 4(4)
- --ring2="Asklepian Ring", -- (3)
- waist="Gishdubar Sash", -- (10)
- })
- sets.midcast.Curaga = set_combine(sets.midcast.Cure, {
- --ammo="Regal Gem",
- --ring1={name="Stikini Ring +1", bag="wardrobe3"},
- --ring2={name="Stikini Ring +1", bag="wardrobe4"},
- --waist="Luminary Sash",
- })
- sets.midcast.StatusRemoval = {
- --head="Vanya Hood",
- --body="Vanya Robe",
- legs="Atrophy Tights +2",
- feet="Lethargy Houseaux +1",
- neck="Incanter's Torque",
- ear1="Malignance Earring",
- ear2="Loquacious Earring",
- ring1="Haoma's Ring",
- ring2="Haoma's Ring",
- back="Swith Cape",
- waist="Embla Sash",
- }
- sets.midcast.Cursna = set_combine(sets.midcast.StatusRemoval, {
- --hands="Hieros Mittens",
- body="Viti. Tabard +1",
- neck="Debilis Medallion",
- legs="Carmine Cuisses +1",
- feet="Vanya Clogs",
- --ear1="Beatific Earring",
- ring1="Haoma's Ring",
- ring2="Haoma's Ring",
- back="Oretan. Cape +1",
- })
- sets.midcast['Enhancing Magic'] = {
- main="Pukulatmuj +1", --11
- sub="Pukulatmuj", --10
- --ammo="Regal Gem",
- head="Befouled Crown", --16
- body="Viti. Tabard +1", --19
- hands="Viti. Gloves +2", --22
- legs="Atrophy Tights +2", --19
- feet="Leth. Houseaux +1", --25
- neck="Incanter's Torque", --10
- ear1="Mimir Earring", --10
- ear2="Andoaa Earring", --5
- ring1={name="Stikini Ring +1", bag="wardrobe"}, --8
- ring2={name="Stikini Ring +1", bag="wardrobe"}, --8
- back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +3','Enha.mag. skill +10','Mag. Acc.+5','Enh. Mag. eff. dur. +19',}}, --10
- waist="Olympus Sash", --5
- }
- sets.midcast.EnhancingDuration = set_combine(sets.midcast['Enhancing Magic'], {
- main={ name="Colada", augments={'Enh. Mag. eff. dur. +4','Mag. Acc.+3','"Mag.Atk.Bns."+17',}},
- sub="Ammurapi Shield",
- head="Telchine Cap",
- --body="Viti. Tabard +1",
- body="Telchine Chasuble",
- hands="Atrophy Gloves +3",
- legs="Telchine Braconi",
- feet="Leth. Houseaux +1",
- neck="Orunmila's Torque",
- back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +3','Enha.mag. skill +10','Mag. Acc.+5','Enh. Mag. eff. dur. +19',}},
- --back="Sucellos's Cape",
- waist="Embla Sash",
- ear1="Malignance Earring",
- ear2="Loquacious Earring",
- })
- sets.buff.ComposureOther = set_combine(sets.midcast.EnhancingDuration, {
- head="Leth. Chappel +1",
- body="Lethargy Sayon +1",
- hands="Atrophy Gloves +3",
- legs="Leth. Fuseau +1",
- feet="Leth. Houseaux +1",
- waist="Embla Sash",
- })
- sets.midcast.EnhancingSkill = set_combine(sets.midcast['Enhancing Magic'], {
- main="Pukulatmuj +1",
- sub="Pukulatmuj",
- hands="Viti. Gloves +2",
- })
- sets.midcast.Regen = set_combine(sets.midcast.EnhancingDuration, {
- main="Bolelabunga",
- sub="Ammurapi Shield",
- })
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
- --head="Amalric Coif +1", -- +1
- --body="Atrophy Tabard +3", -- +1
- body="Atrophy Tabard +3",
- legs="Leth. Fuseau +1", -- +2
- })
- sets.midcast.RefreshOtherComposure = set_combine(sets.buff.ComposureOther, {
- body="Atrophy Tabard +3", -- +1
- legs="Leth. Fuseau +1", -- +2
- })
- sets.midcast.RefreshSelf = {
- --waist="Gishdubar Sash",
- --back="Grapevine Cape"
- body="Atrophy Tabard +3",
- legs="Leth. Fuseau +1",
- }
- sets.midcast.Stoneskin = set_combine(sets.midcast.EnhancingDuration, {
- waist="Siegel Sash",
- })
- sets.midcast['Phalanx'] = set_combine(sets.midcast.EnhancingDuration, { --caps at 500 enh skill
- main={ name="Colada", augments={'Enh. Mag. eff. dur. +4','Mag. Acc.+3','"Mag.Atk.Bns."+17',}},
- sub="Ammurapi Shield",
- ear2="Mimir Earring", --10 enh
- neck="Incanter's Torque", -- 10 enh
- hands="Atrophy Gloves +3",
- ring1="Stikini Ring +1", --8 enh
- ring2="Stikini Ring +1", --8 enh
- back="Ghostfyre Cape", --10 enh
- })
- sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingSkill, sets.midcast.EnhancingDuration, {
- head="Chironic Hat",
- })
- sets.midcast.Storm = sets.midcast.EnhancingDuration
- sets.midcast['Flurry II'] = sets.midcast.EnhancingDuration
- sets.midcast['Flurry'] = sets.midcast.EnhancingDuration
- sets.midcast.GainSpell = set_combine(sets.midcast.EnhancingDuration, {
- main={ name="Colada", augments={'Enh. Mag. eff. dur. +4','Mag. Acc.+3','"Mag.Atk.Bns."+17',}},
- sub="Ammurapi Shield",
- --hands="Atrophy Gloves +3",
- hands="Vitiation Gloves +2",
- back="Ghostfyre Cape",
- })
- sets.midcast.SpikesSpell = {
- main="Maxentius",
- sub="Pukulatmuj +1",
- head="Cath Palug Crown",
- body="Jhakri Robe +2",
- hands="Vitiation Gloves +2",
- legs="Chironic Hose",
- feet="Lethargy Houseaux +1",
- back="Ghostfyre Cape",
- neck="Sibyl Scarf",
- ear1="Malignance Earring",
- --ear2="Friomisi Earring",
- ring1="Diamond Ring",
- ring2="Freke Ring",
- waist="Sacro Cord"
- }
- sets.midcast.Protect = set_combine(sets.midcast.EnhancingDuration, {ring2="Sheltered Ring"})
- sets.midcast.Protectra = sets.midcast.Protect
- sets.midcast.Shell = sets.midcast.Protect
- sets.midcast.Shellra = sets.midcast.Shell
- -- Custom spell classes
- sets.midcast.MndEnfeebles = {
- main="Daybreak",
- sub="Ammurapi Shield",
- --sub="Maxentius",
- range="Ullr",
- head="Cath Palug Crown",
- body="Lethargy Sayon +1",
- hands="Malignance Gloves",
- legs={name="Chironic Hose", augments={'Accuracy+9 Attack+9','CHR+8','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- feet="Malignance Boots",
- neck="Duelist's Torque +1",
- ear1="Malignance Earring",
- ear2="Snotra Earring",
- ring1="Stikini Ring +1",
- ring2="Stikini Ring +1",
- --back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +2','Enha.mag. skill +9','Mag. Acc.+9',}},
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- waist="Sacro Cord",
- }
- sets.midcast.MndEnfeeblesAcc = set_combine(sets.midcast.MndEnfeebles, {
- main="Daybreak",
- sub="Ammurapi Shield",
- range="Ullr",
- --ammo=empty,
- head="Cath Palug Crown",
- body="Atrophy Tabard +3",
- hands="Malignance Gloves",
- legs={name="Chironic Hose", augments={'Accuracy+9 Attack+9','CHR+8','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- feet="Malignance Boots",
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- --ring1={name="Stikini Ring +1", bag="wardrobe3"},
- waist="Sacro Cord",
- })
- sets.midcast.MndEnfeeblesEffect = set_combine(sets.midcast.MndEnfeebles, {
- --ammo="Regal Gem",
- body="Lethargy Sayon +1",
- feet="Vitiation Boots +1",
- neck="Dls. Torque +1",
- --back=gear.RDM_MND_Cape,
- })
- sets.midcast.IntEnfeebles = set_combine(sets.midcast.MndEnfeebles, {
- --main="Maxentius",
- --sub="Ammurapi Shield",
- --back=gear.RDM_INT_Cape,
- --waist="Acuity Belt +1",
- ring2="Freke Ring",
- })
- sets.midcast.IntEnfeeblesAcc = set_combine(sets.midcast.IntEnfeebles, {
- --main="Crocea Mors",
- --sub="Ammurapi Shield",
- range="Ullr",
- --ammo=empty,
- head="Cath Palug Crown",
- body="Atrophy Tabard +3",
- hands="Malignance Gloves",
- legs={name="Chironic Hose", augments={'Accuracy+9 Attack+9','CHR+8','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- feet="Malignance Boots",
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2={name="Stikini Ring +1", bag="wardrobe"},
- waist="Sacro Cord",
- })
- sets.midcast.IntEnfeeblesEffect = set_combine(sets.midcast.IntEnfeebles, {
- --ammo="Regal Gem",
- body="Lethargy Sayon +1",
- feet="Vitiation Boots +1",
- neck="Dls. Torque +1",
- --back=gear.RDM_INT_Cape,
- })
- sets.midcast.SkillEnfeebles = set_combine(sets.midcast.MndEnfeebles, { --477 base enf
- main="Daybreak",
- sub="Ammurapi Shield",
- --sub="Maxentius",
- range="Ullr",
- --head="Cath Palug Crown",
- head="Vitiation Chapeau +1",--22
- body="Atrophy Tabard +3", --21
- hands="Lethargy Gantherots +1", --19
- legs={name="Chironic Hose", augments={'Accuracy+9 Attack+9','CHR+8','Mag. Acc.+20 "Mag.Atk.Bns."+20',}}, --13
- --legs="Psycloth Lappas", --18
- --feet="Malignance Boots",
- feet="Vitiation Boots +1", --12
- neck="Incanter's Torque", --10
- ear1="Vor Earring", --10
- ear2="Snotra Earring",
- ring1="Stikini Ring +1", --8
- ring2="Stikini Ring +1", --8
- --back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +2','Enha.mag. skill +9','Mag. Acc.+9',}},
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- waist="Sacro Cord",
- })
- sets.midcast.Sleep = set_combine(sets.midcast.IntEnfeeblesAcc, {
- --head="Viti. Chapeau +3",
- --neck="Dls. Torque +2",
- --ear2="Snotra Earring",
- --ring1="Kishar Ring",
- })
- sets.midcast.SleepMaxDuration = set_combine(sets.midcast.Sleep, {
- --head="Leth. Chappel +1",
- --body="Lethargy Sayon +1",
- --hands="Regal Cuffs",
- --legs="Leth. Fuseau +1",
- --feet="Leth. Houseaux +1",
- })
- sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
- sets.midcast.Dispelga = set_combine(sets.midcast.IntEnfeeblesAcc, {
- main="Daybreak",
- --sub="Ammurapi Shield",
- --waist="Shinjutsu-no-Obi +1"
- })
- sets.midcast['Dark Magic'] = {
- main="Naegling",
- sub="Tauret",
- --sub="Genbu's Shield",
- range="Ullr",
- head="Cath Palug Crown",
- body="Malignance Tabard",
- hands="Malignance Gloves",
- legs={name="Chironic Hose", augments={'Accuracy+9 Attack+9','CHR+8','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- feet="Malignance Boots",
- neck="Erra Pendant",
- ear1="Malignance Earring",
- ear2="Snotra Earring",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2={name="Stikini Ring +1", bag="wardrobe"},
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- waist="Sacro Cord",
- }
- sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
- --head="Pixie Hairpin +1",
- feet={ name="Merlinic Crackows", augments={'VIT+2','Accuracy+14','Accuracy+10 Attack+10','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- --ear2="Hirudinea Earring",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2="Excelsis Ring",
- --back="Perimede Cape",
- waist="Fucho-no-obi",
- })
- sets.midcast.Aspir = sets.midcast.Drain
- sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {waist="Luminary Sash"})
- sets.midcast['Bio III'] = set_combine(sets.midcast['Dark Magic'], {
- --legs="Viti. Tights +1"
- })
- sets.midcast.Dia = {
- main="Daybreak",
- neck="Duelist's Torque +1",
- ear1="Snotra Earring",
- head="Lethargy Chappel +1",
- body="Lethargy Sayon +1",
- hands="Lethargy Gantherots +1",
- legs="Lethargy Fuseau +1",
- feet="Lethargy Houseaux +1",
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- }
- sets.midcast['Elemental Magic'] = {
- sub="Ammurapi Shield",
- main="Maxentius",
- ammo="Ghastly Tathlum",
- head="Cath Palug Crown",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2",
- neck="Sanctity Necklace",
- ear1="Malignance Earring",
- ear2="Friomisi Earring",
- ring1="Freke Ring",
- ring2="Diamond Ring",
- back={ name="Sucellos's Cape", augments={'Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}},
- waist="Sacro Cord",
- }
- sets.midcast['Elemental Magic'].Seidr = set_combine(sets.midcast['Elemental Magic'], {
- body="Seidr Cotehardie",
- legs="Merlinic Shalwar",
- feet={ name="Merlinic Crackows", augments={'VIT+2','Accuracy+14','Accuracy+10 Attack+10','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- neck="Erra Pendant",
- waist="Acuity Belt +1",
- })
- sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
- range="Ullr",
- head="Atrophy Chapeau +2",
- ammo=empty,
- legs="Merlinic Shalwar",
- feet={ name="Merlinic Crackows", augments={'VIT+2','Accuracy+14','Accuracy+10 Attack+10','Mag. Acc.+20 "Mag.Atk.Bns."+20',}},
- neck="Erra Pendant",
- ear2="Crepuscular Earring",
- ring1="Stikini Ring +1",
- ring2="Stikini Ring +1",
- waist="Sacro Cord",
- })
- sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
- head=empty,
- body="Twilight Cloak",
- ammo="Ullr",
- ring1={name="Stikini Ring +1", bag="wardrobe2"},
- ring2={name="Stikini Ring +1", bag="wardrobe"},
- waist="Shinjutsu-no-Obi +1",
- })
- sets.midcast.Utsusemi = sets.midcast.SpellInterrupt
- -- Initializes trusts at iLvl 119
- sets.midcast.Trust = sets.precast.FC
- -- Job-specific buff sets
- sets.buff.Saboteur = {hands="Leth. Gantherots +1"}
- --Idle Sets
- sets.idle = {
- main={ name="Colada", augments={'"Refresh"+2','INT+1',}},
- --main="Bolelabunga",
- sub="Sacro Bulwark",
- --sub="Daybreak",
- ammo="Homiliary",
- head="Viti. Chapeau +1",
- body="Jhakri Robe +2",
- hands="Chironic Gloves",
- legs="Malignance Tights",
- feet="Chironic Slippers",
- neck="Sibyl Scarf",
- ear2="Infused Earring",
- ear1="Eabani Earring",
- ring1="Stikini Ring +1",
- ring2="Stikini Ring +1",
- --ring2= "Karieyh Ring +1",
- back="Moonbeam Cape",
- waist="Fucho-no-obi",
- }
- sets.idle.DWIdle = {
- main={ name="Colada", augments={'"Refresh"+2','INT+1',}},
- sub="Bolelabunga",
- --sub="Daybreak",
- --sub="Daybreak",
- ammo="Homiliary",
- head="Viti. Chapeau +1",
- body="Jhakri Robe +2",
- hands="Chironic Gloves",
- legs="Malignance Tights",
- feet="Chironic Slippers",
- neck="Sibyl Scarf",
- ear2="Infused Earring",
- ear1="Eabani Earring",
- ring1="Stikini Ring +1",
- ring2="Stikini Ring +1",
- --ring2= "Karieyh Ring +1",
- back="Moonbeam Cape",
- waist="Fucho-no-obi",
- }
- sets.idle.DT = set_combine(sets.idle, {
- main={ name="Colada", augments={'"Refresh"+2','INT+1',}},
- sub="Sacro Bulwark", --10/10
- ammo="Crepuscular Pebble", --3/3
- head="Malignance Chapeau", --6/6
- neck="Loricate Torque +1", --6/6
- --body="Malignance Tabard", --9/9
- back="Moonbeam Cape", --5/5
- hands="Malignance Gloves", --5/5
- --legs="Malignance Tights", --7/7
- legs="Carmine Cuisses +1",
- --feet="Malignance Boots", --4/4
- --neck="Warder's Charm +1",
- ear1="Eabani Earring",
- ear2="Infused Earring",
- ring1= "Defending Ring", --10/10
- ring2= { name="Dark Ring", augments={'Magic dmg. taken -6%','Phys. dmg. taken -5%','Breath dmg. taken -3%',}}, --5/6
- --ring2= { name="Dark Ring", augments={'Phys. dmg. taken -6%','Magic dmg. taken -3%',}}, --6/3
- --back=gear.RDM_INT_Cape,
- --waist="Carrier's Sash",
- })
- --Treasure Hunter gear set to trigger when casting Slow I spell.
- sets.TH = {
- ammo="Perfect Lucky Egg", --1
- waist="Chaac Belt", --1
- legs="Merlinic Shalwar" --2
- }
- --Defense Sets
- sets.defense.PDT = sets.idle.DT
- sets.defense.MDT = set_combine(sets.idle.DT, { --set for Charm at the moment
- ear1="Eabani Earring",
- back="Solemnity Cape",
- --neck="Mizukage-no-Kubikazari"
- })
- sets.magic_burst = {
- --head="Ea Hat +1", --7/(7)
- --body="Ea Houppe. +1", --9/(9)
- --hands="Amalric Gages +1", --(6)
- --legs="Ea Slops +1", --8/(8)
- --feet="Ea Pigaches +1", --5/(5)
- neck="Mizu. Kubikazari", --10
- --ring2="Mujin Band", --(5)
- }
- sets.Kiting = set_combine(sets.idle.DT, {legs="Carmine Cuisses +1"})
- sets.latent_refresh = {waist="Fucho-no-obi"}
- --Engaged Sets
- sets.engaged = { --1175 accuracy capped gear haste
- main="Naegling",
- sub="Sacro Bulwark",
- ammo="Ginsen",
- head="Malignance Chapeau", --6hst
- body="Ayanmo Corazza +2", --4hst
- hands="Malignance Gloves", --4hst
- legs="Malignance Tights", --9hst
- feet="Malignance Boots", --3hst
- neck="Lissome Necklace",
- ear1="Brutal Earring",
- ear2="Cessance Earring",
- ring1="Pernicious Ring",
- ring2="Karieyh Ring +1",
- --back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- back="Relucent Cape",
- waist="Kentarch Belt +1",
- }
- sets.engaged.MidAcc = set_combine(sets.engaged, { --1216 accuracy
- main="Naegling",
- sub="Sacro Bulwark",
- ammo="Ginsen",
- head="Malignance Chapeau", --6hst
- body="Ayanmo Corazza +2", --4hst
- hands="Malignance Gloves", --4hst
- legs="Malignance Tights", --9hst
- feet="Malignance Boots", --3hst
- --neck="Lissome Necklace",
- neck="Combatant's Torque",
- ear1="Brutal Earring",
- ear2="Cessance Earring",
- ring1="Pernicious Ring",
- --ring1="Begruding Ring",
- ring2="Karieyh Ring +1",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- --back="Relucent Cape",
- waist="Kentarch Belt +1",
- })
- sets.engaged.HighAcc = set_combine(sets.engaged, { --1254 accuracy
- ammo="Ginsen",
- head="Malignance Chapeau", --6hst
- body="Malignance Tabard", --4hst
- --hands="Malignance Gloves", --4hst
- hands="Atrophy Gloves +3", --3hst
- legs="Malignance Tights", --9hst
- --legs="Carmine Cuisses +1", --6hst
- feet="Malignance Boots", --3hst
- neck="Combatant's Torque",
- ring1="Begrudging Ring",
- ring2="Etana Ring",
- ear1="Mache Earring +1",
- ear2="Mache Earring +1",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- waist="Kentarch Belt +1",
- --waist="Cetl Belt",
- })
- -- No Magic Haste (74% DW to cap)
- sets.engaged.DW = set_combine(sets.engaged, { --34DW+25DW = 59DW total 1195 accuracy 1144 with Thibron
- main="Naegling",
- --sub="Tauret",
- sub="Crepuscular Knife",
- --main="Rusty Dagger",
- --sub="Rusty Dagger",
- ammo="Ginsen",
- head="Malignance Chapeau", --6hst
- body="Ayanmo Corazza +2", --4hst
- hands="Malignance Gloves", --4hst
- legs="Carmine Cuisses +1", --6hst --6DW
- --feet="Malignance Boots", --3hst
- feet={ name="Taeon Boots", augments={'"Dual Wield"+5',}}, --4hst --9DW
- neck="Lissome Necklace",
- ear1="Eabani Earring", --4DW
- --ear1="Brutal Earring",
- ear2="Suppanomimi", --5DW
- ring1="Pernicious Ring",
- ring2="Karieyh Ring +1",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}, --10DW
- --back="Relucent Cape",1
- --waist="Kentarch Belt +1",
- waist="Cetl Belt" --5hst
- })
- sets.engaged.DW.MidAcc = set_combine(sets.engaged.DW, { --1251 accuracy 1200 with Thibron
- main="Naegling",
- sub="Crepuscular Knife",
- ammo="Ginsen",
- head="Malignance Chapeau", --6hst
- body="Ayanmo Corazza +2", --4hst
- --body="Malignance Tabard",
- hands="Malignance Gloves", --4hst
- legs="Carmine Cuisses +1", --6hst --6DW
- --legs="Malignance Tights",
- feet="Malignance Boots", --3hst
- --feet={ name="Taeon Boots", augments={'"Dual Wield"+5',}}, --4hst --9DW
- --neck="Combatant's Torque",
- --neck="Sanctity Necklace",
- ear1="Eabani Earring", --4DW
- --ear1="Brutal Earring",
- --ear1="Zennaroi Earring",
- ear2="Suppanomimi", --5DW
- --ring1="Begrudging Ring",
- ring2="Karieyh Ring +1",
- ring1="Pernicious Ring",
- --ring2="Etana Ring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}, --10DW
- --back="Relucent Cape",
- --waist="Kentarch Belt +1",
- waist="Cetl Belt" --5hst
- })
- sets.engaged.DW.HighAcc = set_combine(sets.engaged.HighAcc, { --1306 accuracy 1255 with Thibron
- main="Naegling",
- sub="Tauret",
- --sub="Crepuscular Knife",
- ammo="Ginsen",
- head="Malignance Chapeau", --6hst
- body="Malignance Tabard", --4hst
- hands="Atrophy Gloves +3", --3hst
- legs="Carmine Cuisses +1", --6hst --6DW
- --legs="Malignance Tights",
- --feet={ name="Taeon Boots", augments={'"Dual Wield"+5',}}, --4hst --9DW
- feet="Malignance Boots",
- --ear1="Eabani Earring", --4DW
- --ear2="Suppanomimi", --5DW
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}, --10DW
- waist="Kentarch Belt +1",
- })
- -- 15% Magic Haste (67% DW to cap)
- sets.engaged.DW.LowHaste = set_combine(sets.engaged.DW, {
- }) --59
- sets.engaged.DW.MidAcc.LowHaste = set_combine(sets.engaged.DW.MidAcc, {
- --ring1={name="Chirich Ring +1", bag="wardrobe3"},
- })
- sets.engaged.DW.HighAcc.LowHaste = set_combine(sets.engaged.DW.HighAcc, {
- })
- -- 30% Magic Haste (56% DW to cap)
- sets.engaged.DW.MidHaste = set_combine(sets.engaged.DW, {
- }) --31
- sets.engaged.DW.MidAcc.MidHaste = set_combine(sets.engaged.DW.MidAcc, {
- --neck="Combatant's Torque",
- })
- sets.engaged.DW.HighAcc.MidHaste = set_combine(sets.engaged.DW.HighAcc, {
- })
- -- 35% Magic Haste (51% DW to cap)
- sets.engaged.DW.HighHaste = set_combine(sets.engaged.DW, {
- ear2="Brutal Earring",
- }) --26
- sets.engaged.DW.MidAcc.HighHaste = set_combine(sets.engaged.DW.MidAcc, {
- --legs="Carmine Cuisses +1", --6
- --neck="Combatant's Torque",
- --ring1={name="Chirich Ring +1", bag="wardrobe3"},
- })
- --sets.engaged.DW.HighAcc.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, {
- sets.engaged.DW.HighAcc.HighHaste = set_combine(sets.engaged.DW.HighHaste, {
- })
- -- 45% Magic Haste (36% DW to cap)
- sets.engaged.DW.MaxHaste = set_combine(sets.engaged, { --1291 accuracy 1240 with Thibron
- main="Naegling",
- sub="Crepuscular Knife",
- legs="Malignance Tights", --9hst
- feet="Malignance Boots", --3hst
- waist="Kentarch Belt +1",
- --ear1="Brutal Earring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- }) --10
- sets.engaged.DW.MidAcc.MaxHaste = set_combine(sets.engaged.DW.HighHaste, {
- --neck="Combatant's Torque",
- --ring1={name="Chirich Ring +1", bag="wardrobe3"},
- --waist="Kentarch Belt +1",
- })
- sets.engaged.DW.HighAcc.MaxHaste = set_combine(sets.engaged.HighAcc, { --1335 accuracy 1284 with Thibron
- main="Naegling",
- sub="Crepuscular Knife",
- body="Malignance Tabard", --4hst
- hands="Atrophy Gloves +3", --3hst
- --legs="Carmine Cuisses +1", --6hst
- legs="Malignance Tights",
- feet="Malignance Boots", --3hst
- neck="Combatant's Torque",
- ear1="Mache Earring +1",
- ear2="Mache Earring +1",
- ring1="Begrudging Ring",
- ring2="Etana Ring",
- waist="Kentarch Belt +1",
- --waist="Cetl Belt", --5hst
- --back="Relucent Cape",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- })
- --Hybrid sets
- sets.engaged.Hybrid = set_combine(sets.engaged, {
- main="Naegling",
- sub="Sacro Bulwark", --10/10
- head="Malignance Chapeau", --6/6
- neck="Loricate Torque +1", --6/6
- --body="Malignance Tabard", --9/9
- body="Ayanmo Corazza +2", --6/6
- hands="Malignance Gloves", --5/5
- legs="Malignance Tights", --7/7
- feet="Malignance Boots", --4/4
- --back="Moonbeam Cape", --5/5
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- ring1= "Defending Rnig", --10/10
- --ring2= { name="Dark Ring", augments={'Phys. dmg. taken -6%','Magic dmg. taken -3%',}}, --6/3
- ring2="Karieyh Ring +1",
- ear1="Cessance Earring",
- ear2="Brutal Earring"
- })
- sets.engaged.DT = set_combine(sets.engaged, sets.engaged.Hybrid, { --49PDT 50MDT
- main="Naegling",
- sub="Sacro Bulwark", --10/10
- head="Malignance Chapeau", --6/6
- neck="Loricate Torque +1", --6/6
- --body="Malignance Tabard", --9/9
- body="Ayanmo Corazza +2", --6/6
- hands="Malignance Gloves", --5/5
- legs="Malignance Tights", --7/7
- feet="Malignance Boots", --4/4
- --back="Moonbeam Cape", --5/5
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- ring1= "Defending Ring", --10/10
- --ring2= { name="Dark Ring", augments={'Phys. dmg. taken -6%','Magic dmg. taken -3%',}}, --6/3
- ring2="Karieyh Ring +1"
- })
- sets.engaged.MidAcc.DT = set_combine(sets.engaged.DT, sets.engaged.MidAcc, sets.engaged.Hybrid)
- sets.engaged.HighAcc.DT = set_combine(sets.engaged.DT, sets.engaged.HighAcc, sets.engaged.Hybrid, {
- ear1="Mache Earring +1",
- ear2="Mache Earring +1",
- })
- sets.engaged.DW.DT = set_combine(sets.engaged.DW, sets.engaged.Hybrid, { --50+PDT 50+MDT
- main="Naegling",
- --sub="Tauret",
- --sub="Maxentius",
- sub="Crepuscular Knife",
- head="Malignance Chapeau", --6/6
- neck="Loricate Torque +1", --6/6
- body="Malignance Tabard", --9/9
- hands="Malignance Gloves", --5/5
- legs="Malignance Tights", --7/7
- feet="Malignance Boots", --4/4
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- --back="Moonbeam Cape", --5/5
- ring2= { name="Dark Ring", augments={'Magic dmg. taken -6%','Phys. dmg. taken -5%','Breath dmg. taken -3%',}}, --5/6
- ring1= "Defending Ring", --10/10
- })
- sets.engaged.DW.MidAcc.DT = set_combine(sets.engaged.DW.DT, sets.engaged.DW.MidAcc, sets.engaged.Hybrid)
- sets.engaged.DW.HighAcc.DT = set_combine(sets.engaged.DW.DT, sets.engaged.DW.HighAcc, sets.engaged.Hybrid)
- sets.engaged.DW.DT.LowHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.LowHaste, sets.engaged.Hybrid)
- sets.engaged.DW.MidAcc.DT.LowHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.MidAcc.LowHaste, sets.engaged.Hybrid)
- sets.engaged.DW.HighAcc.DT.LowHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.HighAcc.LowHaste, sets.engaged.Hybrid)
- sets.engaged.DW.DT.MidHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.MidHaste, sets.engaged.Hybrid)
- sets.engaged.DW.MidAcc.DT.MidHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.MidAcc.MidHaste, sets.engaged.Hybrid)
- sets.engaged.DW.HighAcc.DT.MidHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.HighAcc.MidHaste, sets.engaged.Hybrid)
- sets.engaged.DW.DT.HighHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.HighHaste, sets.engaged.Hybrid)
- sets.engaged.DW.MidAcc.DT.HighHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.MidAcc.HighHaste, sets.engaged.Hybrid)
- sets.engaged.DW.HighAcc.DT.HighHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.HighAcc.HighHaste, sets.engaged.Hybrid)
- sets.engaged.DW.DT.MaxHaste = set_combine(sets.engaged.DW.DT, sets.engaged.DW.MaxHaste, sets.engaged.Hybrid, {
- main="Naegling",
- sub="Tauret",
- --sub="Maxentius",
- head="Malignance Chapeau", --6/6
- neck="Loricate Torque +1", --6/6
- body="Malignance Tabard", --9/9
- hands="Malignance Gloves", --5/5
- legs="Malignance Tights", --7/7
- feet="Malignance Boots", --4/4
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- --back="Moonbeam Cape", --5/5
- ring1= { name="Dark Ring", augments={'Magic dmg. taken -6%','Phys. dmg. taken -5%','Breath dmg. taken -3%',}}, --5/6
- ring2= "Defending Ring", --10/10
- })
- sets.engaged.DW.MidAcc.DT.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.Hybrid)
- sets.engaged.DW.HighAcc.DT.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.Hybrid)
- sets.engaged.Enspell = {
- hands="Aya. Manopolas +1",
- neck="Dls. Torque +1",
- --waist="Orpheus's Sash",
- }
- --Special Sets
- sets.Obi = {
- waist="Hachirin-no-Obi",
- back="Twilight Cape",
- ring2="Zodiac Ring"
- }
- sets.CP = {
- ammo="Perfect Lucky Egg", --1
- waist="Chaac Belt", --1
- legs="Merlinic Shalwar" --2}
- }
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_precast(spell, action, spellMap, eventArgs)
- if spell.en:startswith("En") then
- local slist={Dark="blizzard",Water="water",Earth="stone",Ice="blizzard",Fire="fire",Wind="aero",Lightning="thunder",Light="fire"}
- if spell.en ~= 'En'..slist[world.day_element]..''..(spell.en:endswith(' II') and ' II' or '') then
- cancel_spell()
- windower.send_command('@input /ma "En'..slist[world.day_element]..''..(spell.en:endswith(' II') and ' II' or '')..'" <me>')
- return
- end
- end
- end
- 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_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
- eventArgs.handled = true
- return
- elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
- send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
- end
- end
- end
- 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
- 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 player.sub_job == 'NIN' or 'DNC' then
- equip({main="Daybreak", sub="Maxentius"})
- end
- if spell.skill == 'Elemental Magic' and player.sub_job == 'NIN' or 'DNC' then
- equip({main="Daybreak", sub="Maxentius"})
- end
- if spell.skill == 'Dark Magic' and player.sub_job == 'NIN' or 'DNC' then
- equip({main="Daybreak", sub="Maxentius"})
- end
- if spell.skill == 'Divine Magic' and player.sub_job == 'NIN' or 'DNC' then
- equip({main="Daybreak", sub="Maxentius"})
- end
- if spell.skill == 'Enhancing Magic' and player.sub_job == 'NIN' or 'DNC' then
- --if classes.NoSkillSpells:contains(spell.english) or classes.NoSkillSpells:contains(spellMap) then
- equip(sets.midcast.EnhancingDuration)
- end
- --end
- if spell.name=="Stoneskin" and buffactive["Stoneskin"] then
- windower.send_command('cancel 37;')
- elseif spell.name=="Sneak" and buffactive["Sneak"] and spell.target.type=="SELF" then
- windower.send_command('cancel 71;')
- elseif spell.name=="Temper" and buffactive["Multi Strikes"] then
- windower.send_command('cancel 432;')
- elseif spell.name=="Spectral Jig" and buffactive["Sneak"] then
- windower.send_command('cancel 71;')
- end
- if spell.name=="Aquaveil" then
- equip (sets.midcast.EnhancingDuration, sets.midcast.Aquaveil)
- end
- if spell.name == 'Dia' then
- equip(sets.midcast.Dia, sets.TH)
- end
- if spell.skill == 'Enhancing Magic' then
- if classes.NoSkillSpells:contains(spell.english) or classes.NoSkillSpells:contains(spellMap) 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
- if spellMap == 'Regen' then
- equip(sets.midcast.Regen)
- 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
- equip(sets.buff.ComposureOther)
- end
- --if spellMap == 'Refresh' and (spell.target.type == 'PLAYER' or spell.target.type == 'NPC') and buffactive.Composure then
- -- equip(sets.midcast.RefreshOtherComposure)
- --end
- end
- if spellMap == 'Cure' and spell.target.type == 'SELF' then
- equip(sets.midcast.CureSelf)
- end
- if spell.skill == 'Elemental Magic' then
- if state.MagicBurst.value and spell.english ~= 'Death' then
- equip(sets.magic_burst)
- 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
- end
- end
- function job_aftercast(spell, action, spellMap, eventArgs)
- if spell.english:contains('Sleep') and not spell.interrupted then
- set_sleep_timer(spell)
- 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
- end
- -- Handle notifications of general user state change.
- function job_state_change(stateField, newValue, oldValue)
- if state.WeaponLock.value == true then
- disable('main','sub','range')
- else
- enable('main','sub','range')
- end
- end
- -- User code that supplements standard library decisions.
- -- Called by the 'update' self-command, for common needs.
- -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
- function job_handle_equipping_gear(playerStatus, eventArgs)
- check_gear()
- update_combat_form()
- determine_haste_group()
- check_moving()
- end
- function job_update(cmdParams, eventArgs)
- handle_equipping_gear(player.status)
- end
- function update_combat_form()
- if DW == true then
- state.CombatForm:set('DW')
- elseif DW == false then
- state.CombatForm:reset()
- 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
- 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 "MndEnfeeblesAcc"
- elseif enfeebling_magic_effect:contains(spell.english) then
- return "MndEnfeeblesEffect"
- else
- return "MndEnfeebles"
- end
- elseif spell.type == "BlackMagic" then
- if enfeebling_magic_acc:contains(spell.english) and not buffactive.Stymie then
- return "IntEnfeeblesAcc"
- elseif enfeebling_magic_effect:contains(spell.english) then
- return "IntEnfeeblesEffect"
- elseif enfeebling_magic_sleep:contains(spell.english) and ((buffactive.Stymie and buffactive.Composure) or state.SleepMode.value == 'MaxDuration') then
- return "SleepMaxDuration"
- elseif enfeebling_magic_sleep:contains(spell.english) then
- return "Sleep"
- else
- return "IntEnfeebles"
- end
- else
- return "MndEnfeebles"
- 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
- --if state.CP.current == 'on' then
- -- equip(sets.CP)
- -- disable('waist')
- -- disable('ammo')
- -- disable('legs')
- --else
- -- enable('waist')
- -- enable('ammo')
- -- enable('legs')
- -- end
- if state.Auto_Kite.value == true then
- idleSet = set_combine(idleSet, sets.Kiting)
- end
- return idleSet
- end
- function customize_melee_set(meleeSet)
- if state.EnspellMode.value == true then
- meleeSet = set_combine(meleeSet, sets.engaged.Enspell)
- end
- if state.EnspellMode.value == true and player.hpp <= 75 and player.tp < 1000 then
- meleeSet = set_combine(meleeSet, sets.engaged.Enspell.Fencer)
- end
- --if state.CP.current == 'on' then
- -- equip(sets.CP)
- -- disable('waist')
- -- disable('ammo')
- -- disable('legs')
- --else
- -- enable('waist')
- -- enable('ammo')
- -- enable('legs')
- --end
- return meleeSet
- 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
- -- 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 cf_msg = ''
- if state.CombatForm.has_value then
- cf_msg = ' (' ..state.CombatForm.value.. ')'
- end
- local m_msg = state.OffenseMode.value
- if state.HybridMode.value ~= 'Normal' then
- m_msg = m_msg .. '/' ..state.HybridMode.value
- end
- local ws_msg = state.WeaponskillMode.value
- local c_msg = state.CastingMode.value
- local d_msg = 'None'
- if state.DefenseMode.value ~= 'None' then
- d_msg = state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value
- end
- local i_msg = state.IdleMode.value
- local msg = ''
- if state.MagicBurst.value then
- msg = ' Burst: On |'
- end
- if state.Kiting.value then
- msg = msg .. ' Kiting: On |'
- end
- add_to_chat(002, '| ' ..string.char(31,210).. 'Melee' ..cf_msg.. ': ' ..string.char(31,001)..m_msg.. string.char(31,002).. ' |'
- ..string.char(31,207).. ' WS: ' ..string.char(31,001)..ws_msg.. string.char(31,002).. ' |'
- ..string.char(31,060).. ' Magic: ' ..string.char(31,001)..c_msg.. string.char(31,002).. ' |'
- ..string.char(31,004).. ' Defense: ' ..string.char(31,001)..d_msg.. string.char(31,002).. ' |'
- ..string.char(31,008).. ' Idle: ' ..string.char(31,001)..i_msg.. string.char(31,002).. ' |'
- ..string.char(31,002)..msg)
- eventArgs.handled = true
- end
- -- Utility functions specific to this job.
- function determine_haste_group()
- classes.CustomMeleeGroups:clear()
- if DW == true then
- if DW_needed <= 14 then
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif DW_needed > 15 and DW_needed <= 26 then
- classes.CustomMeleeGroups:append('HighHaste')
- elseif DW_needed > 26 and DW_needed <= 32 then
- classes.CustomMeleeGroups:append('MidHaste')
- elseif DW_needed > 32 and DW_needed <= 43 then
- classes.CustomMeleeGroups:append('LowHaste')
- elseif DW_needed > 43 then
- classes.CustomMeleeGroups:append('')
- end
- end
- end
- function gearinfo(cmdParams, eventArgs)
- if cmdParams[1] == 'gearinfo' then
- if type(tonumber(cmdParams[2])) == 'number' then
- if tonumber(cmdParams[2]) ~= DW_needed then
- DW_needed = tonumber(cmdParams[2])
- DW = true
- end
- elseif type(cmdParams[2]) == 'string' then
- if cmdParams[2] == 'false' then
- DW_needed = 0
- DW = false
- end
- end
- if type(tonumber(cmdParams[3])) == 'number' then
- if tonumber(cmdParams[3]) ~= Haste then
- Haste = tonumber(cmdParams[3])
- end
- end
- if type(cmdParams[4]) == 'string' then
- if cmdParams[4] == 'true' then
- moving = true
- elseif cmdParams[4] == 'false' then
- moving = false
- end
- end
- if not midaction() then
- job_update()
- end
- end
- end
- 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
- elseif cmdParams[1]:lower() == 'enspell' then
- send_command('@input /ma '..state.EnSpell.value..' <me>')
- elseif cmdParams[1]:lower() == 'barelement' then
- send_command('@input /ma '..state.BarElement.value..' <me>')
- elseif cmdParams[1]:lower() == 'barstatus' then
- send_command('@input /ma '..state.BarStatus.value..' <me>')
- elseif cmdParams[1]:lower() == 'gainspell' then
- send_command('@input /ma '..state.GainSpell.value..' <me>')
- end
- gearinfo(cmdParams, eventArgs)
- 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
- 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
- -- Relic Head Duration Bonus
- if not ((buffactive.Stymie and buffactive.Composure) or state.SleepMode.value == 'MaxDuration') then
- base = base + self.merits.enfeebling_magic_duration*3
- end
- -- 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
- if ((buffactive.Stymie and buffactive.Composure) or state.SleepMode.value == 'MaxDuration') then
- if buffactive.Stymie then
- base = base + self.job_points.rdm.stymie_effect
- end
- empy_mult = 1.35 --from sets.midcast.SleepMaxDuration
- end
- totalDuration = math.floor(base * gear_mult * aug_mult * empy_mult)
- -- Create the custom timer
- if spell.english == "Sleep II" then
- send_command('@timers c "Sleep II ['..spell.target.name..']" ' ..totalDuration.. ' down spells/00259.png')
- elseif spell.english == "Sleep" or spell.english == "Sleepga" then
- send_command('@timers c "Sleep ['..spell.target.name..']" ' ..totalDuration.. ' down spells/00253.png')
- end
- add_to_chat(1, 'Base: ' ..base.. ' Merits: ' ..self.merits.enfeebling_magic_duration.. ' Job Points: ' ..self.job_points.rdm.stymie_effect.. ' Set Bonus: ' ..empy_mult)
- end
- function check_moving()
- if state.DefenseMode.value == 'None' and state.Kiting.value == false then
- if state.Auto_Kite.value == false and moving then
- state.Auto_Kite:set(true)
- elseif state.Auto_Kite.value == true and moving == false then
- state.Auto_Kite:set(false)
- end
- 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
- if no_swap_gear:contains(player.equipment.head) then
- disable("head")
- else
- enable("head")
- end
- --if no_swap_gear:contains(player.equipment.main) then
- --disable("main")
- --else
- --enable("main")
- --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
- if no_swap_gear:contains(player.equipment.head) then
- enable("head")
- equip(sets.idle)
- end
- end
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement