Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Original: Motenten / Modified: Arislan
- -------------------------------------------------------------------------------------------------------------------
- -- Keybinds
- -------------------------------------------------------------------------------------------------------------------
- -- Modes: [ F9 ] Cycle Offense Modes
- -- [ CTRL+F9 ] Cycle Hybrid Modes
- -- [ WIN+F9 ] Cycle Weapon Skill Modes
- -- [ F10 ] Emergency -PDT Mode
- -- [ ALT+F10 ] Toggle Kiting Mode
- -- [ F11 ] Emergency -MDT Mode
- -- [ CTRL+F11 ] Cycle Magic Defense Modes
- -- [ F12 ] Update Current Gear / Report Current Status
- -- [ CTRL+F12 ] Cycle Idle Modes
- -- [ ALT+F12 ] Cancel Emergency -PDT/-MDT Mode
- -- [ WIN+H ] Toggle Charm Defense Mods
- -- [ WIN+D ] Toggle Death Defense Mods
- -- [ WIN+K ] Toggle Knockback Defense Mods
- -- [ WIN+C ] Toggle Capacity Points Mode
- --
- -- Spells [ ALT+w ] Crusade
- -- [ CTRL+w ] Foil
- -- [ ALT+q ] Regen IV
- -- [ ALT+e ] Blink
- -- [ ALT+r ] Refresh
- -- [ ALT+t ] Aquaveil
- -- [ ALT+y ] Phalanx
- -- [ CTRL+y ] Cocoon
- -- [ ALT+u ] Stoneskin
- -- [ ALT+o ] Shock Spikes
- -- [ Alt+numpad/ ] Utsusemi: Ichi
- -- [ CTRL+numpad/ ] Utsusemi: Ni
- --
- -- Abilities: [ CTRL+` ] Use current Rune
- -- [ CTRL+[ ] Valiance
- -- [ ALT+[ ] Vallation
- -- [ WIN+[ ] Gambit
- -- [ CTRL+] ] Pflug
- -- [ ALT+] ] Rayke
- -- [ WIN+] ] Embolden
- -- [ CTRL+p ] Liement
- -- [ ALT+p ] All for One
- -- [ CTRL+- ] Rune element cycle forward.
- -- [ CTRL+= ] Rune element cycle backward.
- -- [ CTRL+Numpad/ ] Berserk/Meditate/Souleater
- -- [ ALT+Numpad/ ] Defender
- -- [ CTRL+Numpad* ] Warcry/Sekkanoki/Last Resort
- -- [ ALT+Numpad* ] Third Eye
- -- [ CTRL+Numpad- ] Aggressor/Hasso/Weapon Bash
- -- [ AlT+Numpad- ] Seigan/Arcane Circle
- --
- -- Weapons: [ CTRL+G ] Cycles between available greatswords
- -- [ CTRL+W ] Toggle Weapon Lock
- --
- -- WS: [ CTRL+Numpad8 ] Resolution
- -- [ CTRL+Numpad7 ] Dimidiation
- -- [ CTRL+Numpad9 ] Ground Strike
- -- [ ALT+Numpad9 ] Spinning Slash
- -- [ CTRL+Numpad1 ] Herculean Slash
- -- [ CTRL+Numpad2 ] Shockwave
- -------------------------------------------------------------------------------------------------------------------
- -- Custom Commands (preface with /console to use these in macros)
- -------------------------------------------------------------------------------------------------------------------
- -- gs c rune Uses current rune
- -- gs c cycle Runes Cycles forward through rune elements
- -- gs c cycleback Runes Cycles backward through rune elements
- -------------------------------------------------------------------------------------------------------------------
- -- 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.
- function job_setup()
- -- /BLU Spell Maps
- blue_magic_maps = {}
- blue_magic_maps.Enmity = S{'Blank Gaze', 'Geist Wall', 'Jettatura', 'Soporific',
- 'Poison Breath', 'Blitzstrahl', 'Sheep Song', 'Chaotic Eye'}
- blue_magic_maps.Cure = S{'Wild Carrot'}
- blue_magic_maps.Buffs = S{'Cocoon', 'Refueling'}
- rayke_duration = 47
- gambit_duration = 96
- lockstyleset = 1
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- function user_setup()
- state.OffenseMode:options('Normal', 'HighAcc')
- state.WeaponskillMode:options('Normal', 'Acc')
- state.HybridMode:options('Normal', 'DT')
- state.CastingMode:options('Normal', 'Resistant')
- state.IdleMode:options('Normal', 'DT')
- state.PhysicalDefenseMode:options('PDT', 'Parry', 'HP')
- state.MagicalDefenseMode:options('MDT', 'Status')
- state.WeaponLock = M(false, 'Weapon Lock')
- state.Greatsword = M{['description']='Current Weapon', 'Aettir'}
- state.Charm = M(false, 'Charm Resistance')
- state.Knockback = M(false, 'Knockback')
- state.Death = M(false, "Death Resistance")
- state.CP = M(false, "Capacity Points Mode")
- state.Runes = M{['description']='Runes', 'Ignis', 'Gelus', 'Flabra', 'Tellus', 'Sulpor', 'Unda', 'Lux', 'Tenebrae'}
- -- Additional local binds
- send_command('bind ^` input //gs c rune')
- send_command('bind !` input /ja "Vivacious Pulse" <me>')
- send_command('bind @] input /ja "Embolden" <me>')
- send_command('bind @[ input /ja "Gambit" <t>')
- send_command('bind ^] input /ja "Pflug" <me>')
- send_command('bind ^[ input /ja "Valiance" <me>')
- send_command('bind !] input /ja "Rayke" <me>')
- send_command('bind ![ input /ja "Vallation" <me>')
- send_command('bind ^p input /ja "Liement" <me>')
- send_command('bind !p input /ja "One for All" <me>')
- send_command('bind ^- gs c cycleback Runes')
- send_command('bind ^= gs c cycle Runes')
- send_command('bind ^f11 gs c cycle MagicalDefenseMode')
- send_command('bind @c gs c toggle CP')
- send_command('bind @g gs c cycle Greatsword')
- send_command('bind @h gs c toggle Charm')
- send_command('bind @k gs c toggle Knockback')
- send_command('bind @d gs c toggle Death')
- send_command('bind !q input /ma "Regen IV" <me>')
- send_command('bind !w input /ma "Crusade" <me>')
- send_command('bind ^w input /ma "Foil" <me>')
- send_command('bind !e input /ma "Blink" <me>')
- send_command('bind !r input /ma "Refresh" <stpc>')
- send_command('bind !t input /ma "Aquaveil" <me>')
- send_command('bind !y input /ma "Phalanx" <me>')
- send_command('bind !u input /ma "Stoneskin" <me>')
- send_command('bind !o input /ma "Shock Spikes" <me>')
- send_command('bind ^z input /item "Echo Drops" <me>')
- send_command('bind ^x input /item "Remedy" <me>')
- send_command('bind ^c input /item "Holy Water" <me>')
- send_command('bind @w gs c toggle WeaponLock')
- send_command('bind @c gs c toggle CP')
- if player.sub_job == 'WAR' then
- send_command('bind ^numpad/ input /ja "Berserk" <me>')
- send_command('bind ^numpad* input /ja "Warcry" <me>')
- send_command('bind ^numpad- input /ja "Aggressor" <me>')
- send_command('bind !numpad/ input /ja "Defender" <me>')
- send_command('bind !. input /item "Silent Oil" <me>')
- send_command('bind !, input /item "Prism Powder" <me>')
- elseif player.sub_job == 'DRK' then
- send_command('bind ^numpad/ input /ja "Souleater" <me>')
- send_command('bind ^numpad* input /ja "Last Resort" <me>')
- send_command('bind ^numpad- input /ja "Weapon Bash" <me>')
- send_command('bind !numpad- input /ja "Arcane Circle" <me>')
- send_command('bind !. input /item "Silent Oil" <me>')
- send_command('bind !, input /item "Prism Powder" <me>')
- elseif player.sub_job == 'SAM' then
- send_command('bind ^numpad/ input /ja "Meditate" <me>')
- send_command('bind ^numpad* input /ja "Sekkanoki" <me>')
- send_command('bind ^numpad- input /ja "Hasso" <me>')
- send_command('bind !numpad* input /ja "Third Eye" <me>')
- send_command('bind !numpad- input /ja "Seigan" <me>')
- send_command('bind !. input /item "Silent Oil" <me>')
- send_command('bind !, input /item "Prism Powder" <me>')
- elseif player.sub_job == "NIN" then
- send_command('bind !. input /ma "Monomi: Ichi" <me>')
- send_command('bind !, input /ma "Tonko: Ni" <me>')
- send_command('bind !numpad+ input /ma "Utsusemi: Ichi" <me>')
- send_command('bind ^numpad+ input /ma "Utsusemi: Ni" <me>')
- elseif player.sub_job == 'DNC' then
- send_command('bind !. input /ja "Spectral Jig" <me>')
- elseif player.sub_job == 'WHM' then
- send_command('bind !. input /ma "Sneak" <me>')
- send_command('bind !, input /ma "Invisible" <me>')
- elseif player.sub_job == 'BLU' then
- send_command('bind ^y input /ma "Cocoon" <me>')
- send_command('bind !. input /item "Silent Oil" <me>')
- send_command('bind !, input /item "Prism Powder" <me>')
- end
- send_command('bind ^numpad8 input /ws "Resolution" <t>')
- send_command('bind ^numpad7 input /ws "Dimidiation" <t>')
- send_command('bind ^numpad9 input /ws "Ground Strike" <t>')
- send_command('bind !numpad9 input /ws "Spinning Slash" <t>')
- send_command('bind ^numpad1 input /ws "Herculean Slash" <t>')
- send_command('bind ^numpad2 input /ws "Shockwave" <t>')
- select_default_macro_book()
- set_lockstyle()
- end
- function user_unload()
- send_command('unbind ^`')
- send_command('unbind !`')
- send_command('unbind !.')
- send_command('unbind !,')
- send_command('unbind ^numpad+')
- send_command('unbind !numpad+')
- 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 ^p')
- send_command('unbind !p')
- send_command('unbind ^f11')
- send_command('unbind @c')
- send_command('unbind @h')
- send_command('unbind @g')
- send_command('unbind @k')
- send_command('unbind @d')
- send_command('unbind !q')
- send_command('unbind !w')
- send_command('unbind ^w')
- send_command('unbind !e')
- send_command('unbind !r')
- send_command('unbind !t')
- send_command('unbind !y')
- send_command('unbind ^y')
- send_command('unbind !u')
- send_command('unbind !o')
- send_command('unbind ^,')
- send_command('unbind @w')
- send_command('unbind ^numpad/')
- send_command('unbind ^numpad*')
- send_command('unbind ^numpad-')
- send_command('unbind ^numpad7')
- send_command('unbind ^numpad9')
- send_command('unbind !numpad9')
- send_command('unbind ^numpad2')
- send_command('unbind ^numpad1')
- send_command('unbind @numpad*')
- send_command('unbind ^z')
- send_command('unbind ^x')
- send_command('unbind ^c')
- 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')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Precast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Enmity sets
- sets.Enmity = {
- ammo="Sapience Orb", --2
- head="Halitus Helm", --8
- body="Emet Harness +1", --10
- hands="Kurys Gloves", --9
- legs="Eri. Leg Guards +1", --7
- feet="Erilaz Greaves +1",--6
- neck="Unmoving Collar +1", --10
- ear1="Cryptic Earring", --4
- ear2="Friomisi Earring", --2
- ring1="Supershear Ring", --5
- ring2="Eihwaz Ring", --5
- back="Evasionist's Cape", --4
- waist="Kasiri Belt", --3
- }
- sets.Enmity.HP = set_combine(sets.Enmity, {
- })
- sets.precast.JA['Vallation'] = set_combine(sets.Enmity, {body="Runeist's Coat +3", legs="Futhark Trousers +1", back="Ogma's Cape"})
- sets.precast.JA['Valiance'] = sets.precast.JA['Vallation']
- sets.precast.JA['Pflug'] = set_combine(sets.Enmity, {feet="Runeist's Boots +3"})
- sets.precast.JA['Battuta'] = set_combine(sets.Enmity, {head="Fu. Bandeau +1"})
- sets.precast.JA['Liement'] = set_combine(sets.Enmity, {body="Futhark Coat +1"})
- sets.precast.JA['Lunge'] = {
- ammo="Ghastly Tathlum",
- head={ name="Herculean Helm", augments={'"Mag.Atk.Bns."+22','Weapon skill damage +4%','Rng.Acc.+2','Rng.Atk.+10',}},
- body={ name="Samnuha Coat", augments={'Mag. Acc.+12','"Mag.Atk.Bns."+12','"Dual Wield"+3',}},
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs={ name="Herculean Trousers", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','"Store TP"+5','INT+6','Mag. Acc.+15','"Mag.Atk.Bns."+10',}},
- feet={ name="Herculean Boots", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','STR+3','"Mag.Atk.Bns."+13',}},
- neck="Sanctity Necklace",
- waist="Eschan Stone",
- left_ear="Friomisi Earring",
- right_ear="Hecate's Earring",
- left_ring="Shiva Ring +1",
- right_ring="Shiva Ring +1",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.precast.JA['Swipe'] = sets.precast.JA['Lunge']
- sets.precast.JA['Gambit'] = {hands="Runeist's Mitons +3"}
- sets.precast.JA['Rayke'] = {feet="Futhark Boots +1"}
- sets.precast.JA['Elemental Sforzo'] = set_combine(sets.Enmity, {body="Futhark Coat +1"})
- sets.precast.JA['Swordplay'] = set_combine(sets.Enmity, {hands="Futhark Mitons +1"})
- sets.precast.JA['Vivacious Pulse'] = set_combine(sets.Enmity, {
- head="Erilaz Galea +1",
- legs="Rune. Trousers +3",
- neck="Incanter's Torque",
- ear1="Beatific Earring",
- ring1="Globidonta Ring",
- waist="Bishop's Sash",
- back="Merciful Cape",
- })
- sets.precast.JA['One For All'] = set_combine(sets.Enmity, {})
- sets.precast.JA['Provoke'] = sets.Enmity
- -- Fast cast sets for spells
- sets.precast.FC = {
- ammo="Sapience Orb",
- head={ name="Carmine Mask", augments={'Accuracy+15','Mag. Acc.+10','"Fast Cast"+3',}},
- body={ name="Taeon Tabard", augments={'Accuracy+19 Attack+19','"Fast Cast"+5','Phalanx +3',}},
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs={ name="Rawhide Trousers", augments={'MP+50','"Fast Cast"+5','"Refresh"+1',}},
- feet={ name="Carmine Greaves +1", augments={'HP+80','MP+80','Phys. dmg. taken -4',}},
- neck="Orunmila's Torque",
- waist="Austerity Belt",
- left_ear="Loquac. Earring",
- right_ear="Etiolation Earring",
- left_ring="Rahab Ring",
- right_ring="Kishar Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.precast.FC.HP = set_combine(sets.precast.FC, {
- head="Rune. Bandeau +3",
- body="Runeist's Coat +3",
- ear1="Odnowa Earring",
- ear2="Odnowa Earring +1",
- ring1="Moonbeam Ring",
- waist="Oneiros Belt",
- })
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
- legs="Futhark Trousers +1",
- waist="Siegel Sash",
- })
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {ammo="Impatiens", ear2="Mendi. Earring"})
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {
- ammo="Impatiens",
- body="Passion Jacket",
- neck="Magoraga Beads",
- ring1="Lebeche Ring",
- waist="Rumination Sash",
- })
- ------------------------------------------------------------------------------------------------
- ------------------------------------- Weapon Skill Sets ----------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.precast.WS = {
- ammo="Seething Bomblet",
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- legs={ name="Herculean Trousers", augments={'Accuracy+25','"Triple Atk."+3','DEX+4',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Sherida Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +25',}},
- left_ring="Epona's Ring",
- right_ring="Niqmaddu Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS['Resolution'], {
- })
- sets.precast.WS['Dimidiation'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Dimidiation'].Acc = set_combine(sets.precast.WS['Dimidiation'], {
- })
- sets.precast.WS['Herculean Slash'] = sets.precast.JA['Lunge']
- sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Sanguine Blade'] = {
- }
- sets.precast.WS['True Strike'] = sets.precast.WS['Resolution']
- sets.precast.WS['True Strike'] = sets.precast.WS['Savage Blade']
- sets.precast.WS['Judgment'] = sets.precast.WS['Savage Blade']
- sets.precast.WS['Black Halo'] = sets.precast.WS['Savage Blade']
- sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS['Sanguine Blade'], {
- })
- sets.precast.WS['Upheaval'] = sets.precast.WS['Resolution']
- sets.precast.WS['Fell Cleave'] = sets.precast.WS['Savage Blade']
- sets.precast.WS['Full Break'] = {
- }
- sets.precast.WS['Shockwave'] = {
- }
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Midcast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.midcast.FastRecast = sets.precast.FC
- sets.midcast.SpellInterrupt = {
- ammo="Impatiens", --10
- hands="Regal Gauntlets", --10
- legs="Carmine Cuisses +1", --20
- ring1="Evanescence Ring", --5
- waist="Rumination Sash", --10
- }
- sets.midcast.Cure = {
- ammo="Hydrocera",
- head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
- body={ name="Taeon Tabard", augments={'Accuracy+19 Attack+19','"Fast Cast"+5','Phalanx +3',}},
- hands="Aya. Manopolas +2",
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet="Meg. Jam. +1",
- neck="Phalaina Locket",
- waist="Chuq'aba Belt",
- left_ear="Loquac. Earring",
- right_ear="Etiolation Earring",
- left_ring="Kunaji Ring",
- right_ring="Levia. Ring",
- back="Solemnity Cape",
- }
- sets.midcast['Enhancing Magic'] = {
- ammo="Yamarang",
- head={ name="Carmine Mask", augments={'Accuracy+15','Mag. Acc.+10','"Fast Cast"+3',}},
- body={ name="Taeon Tabard", augments={'Accuracy+19 Attack+19','"Fast Cast"+5','Phalanx +3',}},
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Orunmila's Torque",
- waist="Flume Belt",
- left_ear="Loquac. Earring",
- right_ear="Etiolation Earring",
- left_ring="Kishar Ring",
- right_ring="Prolix Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.midcast.EnhancingDuration = set_combine(sets.midcast['Enhancing Magic'], {
- head="Erilaz Galea +1",
- hands="Regal Gauntlets",
- legs="Futhark Trousers +1",
- })
- sets.midcast['Temper'] = set_combine(sets.midcast['Enhancing Magic'], {
- main="Pukulatmuj +1",
- sub="Pukulatmuj",
- head="Carmine Mask",
- body="Manasa Chasuble",
- hands="Runeist's Mitons +3",
- legs="Carmine Cuisses +1",
- })
- sets.midcast['Phalanx'] = set_combine(sets.midcast['Enhancing Magic'], {
- head="Fu. Bandeau +1", --5
- body={ name="Taeon Tabard", augments={'Accuracy+19 Attack+19','"Fast Cast"+5','Phalanx +3',}},
- })
- sets.midcast['Regen'] = set_combine(sets.midcast['Enhancing Magic'], {
- head="Rune. Bandeau +3",
- legs={ name="Taeon Tights", augments={'"Regen" potency+3',}},
- })
- sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {waist="Gishdubar Sash"})
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
- sets.midcast.Protect = set_combine(sets.midcast['Enhancing Magic'], {ring2="Sheltered Ring"})
- sets.midcast.Shell = sets.midcast.Protect
- sets.midcast['Divine Magic'] = {
- ammo="Yamarang",
- legs="Rune. Trousers +3",
- neck="Incanter's Torque",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- waist="Bishop's Sash",
- }
- sets.midcast.Flash = sets.Enmity
- sets.midcast.Foil = sets.Enmity
- sets.midcast.Utsusemi = sets.midcast.SpellInterrupt
- sets.midcast['Blue Magic'] = {}
- sets.midcast['Blue Magic'].Enmity = sets.Enmity
- sets.midcast['Blue Magic'].Cure = sets.midcast.Cure
- sets.midcast['Blue Magic'].Buff = sets.midcast['Enhancing Magic']
- ------------------------------------------------------------------------------------------------
- ----------------------------------------- Idle Sets --------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.idle = {
- ammo="Staunch Tathlum",
- head={ name="Herculean Helm", augments={'AGI+14','VIT+1','"Refresh"+2','Accuracy+20 Attack+20','Mag. Acc.+5 "Mag.Atk.Bns."+5',}},
- body="Runeist's Coat +2",
- hands="Kurys Gloves",
- legs={ name="Rawhide Trousers", augments={'MP+50','"Fast Cast"+5','"Refresh"+1',}},
- feet="Aya. Gambieras +2",
- neck="Sanctity Necklace",
- waist="Flume Belt",
- left_ear="Ethereal Earring",
- right_ear="Infused Earring",
- left_ring={ name="Dark Ring", augments={'Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- right_ring="Defending Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.idle.DT = {
- ammo="Staunch Tathlum",
- head="Aya. Zucchetto +2",
- body="Ayanmo Corazza +2",
- hands="Aya. Manopolas +2",
- legs="Eri. Leg Guards +1",
- feet="Aya. Gambieras +2",
- neck="Loricate Torque +1",
- waist="Flume Belt",
- left_ear="Ethereal Earring",
- right_ear="Etiolation Earring",
- left_ring={ name="Dark Ring", augments={'Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- right_ring="Defending Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.idle.Weak = sets.idle.DT
- sets.Kiting = {legs="Carmine Cuisses +1"}
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Defense Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.defense.Charm = {
- neck="Unmoving Collar +1",
- ear2="Arete del Luna +1",
- ring1="Wuji Ring",
- back="Solemnity Cape",
- }
- sets.defense.Knockback = {back="Repulse Mantle"}
- sets.defense.Death = {body="Samnuha Coat", ring1="Warden's Ring", ring2="Eihwaz Ring"}
- sets.defense.PDT = {
- ammo="Staunch Tathlum",
- head="Aya. Zucchetto +2",
- body="Ayanmo Corazza +2",
- hands="Aya. Manopolas +2",
- legs="Aya. Cosciales +2",
- feet="Aya. Gambieras +2",
- neck="Loricate Torque +1",
- waist="Flume Belt",
- left_ear="Ethereal Earring",
- right_ear="Etiolation Earring",
- left_ring={ name="Dark Ring", augments={'Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- right_ring="Defending Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.defense.MDT = {
- ammo="Staunch Tathlum",
- head="Aya. Zucchetto +2",
- body="Ayanmo Corazza +2",
- hands="Aya. Manopolas +2",
- legs="Aya. Cosciales +2",
- feet="Aya. Gambieras +2",
- neck="Loricate Torque +1",
- waist="Flume Belt",
- left_ear="Ethereal Earring",
- right_ear="Etiolation Earring",
- left_ring={ name="Dark Ring", augments={'Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- right_ring="Defending Ring",
- back="Reiki Cloak",
- }
- sets.defense.Status = {
- sub="Mensch Strap +1", --5/0
- ammo="Staunch Tathlum", --2/2
- head=gear.Herc_DT_head, --3/3
- body="Ayanmo Corazza +2", --6/6
- hands="Erilaz Gauntlets +1",
- legs="Rune. Trousers +3", --5/0
- feet="Erilaz Greaves +1", --5/0
- neck="Loricate Torque +1", --6/6
- ear1="Genmei Earring", --2/0
- ear2="Hearty Earring",
- ring1="Gelatinous Ring +1", --7/(-1)
- ring2="Defending Ring", --10/10
- back=gear.RUN_HP_Cape,
- waist="Engraved Belt",
- }
- sets.defense.HP = {
- sub="Refined Grip +1", --3/3
- ammo="Staunch Tathlum", --2/2
- head=gear.Adhemar_D_head, --3/0
- body="Runeist's Coat +3",
- hands="Runeist's Mitons +3", --3/0
- legs="Eri. Leg Guards +1", --7/0
- feet="Turms Leggings",
- neck="Loricate Torque +1", --6/6
- ear1="Odnowa Earring", --0/1
- ear2="Odnowa Earring +1", --0/2
- ring1="Moonbeam Ring", --4/4
- ring2="Defending Ring", --10/10
- back="Moonbeam Cape", --5/5
- waist="Flume Belt +1", --4/0
- }
- sets.defense.Parry = {
- sub="Refined Grip +1", --3/3
- ammo="Staunch Tathlum", --2/2
- head=gear.Herc_DT_head, --3/3
- body="Meg. Cuirie +2", --8/0
- hands="Turms Mittens",
- legs="Eri. Leg Guards +1", --7/0
- feet="Turms Leggings",
- neck="Loricate Torque +1", --6/6
- ear1="Odnowa Earring", --0/1
- ear2="Odnowa Earring +1", --0/2
- ring1="Gelatinous Ring +1", --7/(-1)
- ring2="Defending Ring", --10/10
- back=gear.RUN_HP_Cape,
- waist="Flume Belt +1", --4/0
- }
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Engaged Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.engaged = {
- ammo="Yamarang",
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- legs={ name="Herculean Trousers", augments={'Accuracy+25','"Triple Atk."+3','DEX+4',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Clotharius Torque",
- waist="Windbuffet Belt +1",
- left_ear="Sherida Earring",
- right_ear="Cessance Earring",
- left_ring="Niqmaddu Ring",
- right_ring="Epona's Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- }
- sets.engaged.HighAcc = set_combine(sets.engaged, {
- ammo="Yamarang",
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- legs="Meg. Chausses +2",
- feet="Meg. Jam. +2",
- neck="Iqabi Necklace",
- waist="Kentarch Belt +1",
- left_ear="Mache Earring",
- right_ear="Mache Earring",
- left_ring="Ramuh Ring +1",
- right_ring="Niqmaddu Ring",
- back={ name="Evasionist's Cape", augments={'Enmity+4','"Embolden"+14','"Dbl.Atk."+2','Damage taken-3%',}},
- })
- sets.engaged.Aftermath = {
- head="Aya. Zucchetto +2",
- body="Turms Harness",
- neck="Anu Torque",
- ear2="Telos Earring",
- ring1="Ilabrat Ring",
- waist="Kentarch Belt +1",
- }
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Hybrid Sets -------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.engaged.DT = {
- --sub="Mensch Strap +1", --5/0
- ammo="Yamarang",
- head=gear.Adhemar_D_head, --3/0
- body="Ayanmo Corazza +2", --6/6
- --hands=gear.Herc_DT_hands, --7/5
- hands=gear.Adhemar_B_hands,
- legs="Meg. Chausses +2", --6/0
- feet=gear.Herc_TA_feet,
- neck="Loricate Torque +1", --6/6
- ear1="Sherida Earring",
- ear2="Brutal Earring",
- ring1="Moonbeam Ring", --4/4
- ring2="Defending Ring", --10/10
- back=gear.RUN_TP_Cape,
- waist="Ioskeha Belt",
- }
- sets.engaged.HighAcc.DT = set_combine(sets.engaged.DT, {
- hands="Runeist's Mitons +3", --3/0
- feet=gear.Herc_STP_feet,
- ear1="Cessance Earring",
- })
- sets.engaged.Aftermath.DT = {
- head="Aya. Zucchetto +2",
- body="Turms Harness",
- legs="Samnuha Tights",
- feet="Carmine Greaves +1",
- neck="Loricate Torque +1",
- ear2="Telos Earring",
- waist="Flume Belt +1",
- }
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Special Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.buff.Doom = {ring1="Eshmun's Ring", ring2="Eshmun's Ring", waist="Gishdubar Sash"}
- sets.Embolden = set_combine(sets.midcast.EnhancingDuration, {back="Evasionist's Cape"})
- sets.CP = {back="Aptitude Mantle +1"}
- sets.Reive = {neck="Ygnas's Resolve +1"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_precast(spell, action, spellMap, eventArgs)
- if state.PhysicalDefenseMode.value == 'HP' then
- eventArgs.handled = true
- if spell.action_type == 'Magic' then
- if spell.English == 'Flash' or spell.English == 'Foil' or spell.English == 'Stun'
- or blue_magic_maps.Enmity:contains(spell.english) then
- equip(sets.Enmity.HP)
- else
- equip(sets.precast.FC.HP)
- end
- elseif spell.action_type == 'Ability' then
- equip(sets.Enmity.HP)
- end
- end
- if spell.english == 'Lunge' then
- local abil_recasts = windower.ffxi.get_ability_recasts()
- if abil_recasts[spell.recast_id] > 0 then
- send_command('input /jobability "Swipe" <t>')
- -- add_to_chat(122, '***Lunge Aborted: Timer on Cooldown -- Downgrading to Swipe.***')
- eventArgs.cancel = true
- return
- end
- end
- if spell.english == 'Valiance' then
- local abil_recasts = windower.ffxi.get_ability_recasts()
- if abil_recasts[spell.recast_id] > 0 then
- send_command('input /jobability "Vallation" <me>')
- eventArgs.cancel = true
- return
- elseif spell.english == 'Valiance' and buffactive['vallation'] then
- cast_delay(0.2)
- send_command('cancel Vallation') -- command requires 'cancel' add-on to work
- end
- end
- 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_midcast(spell, action, spellMap, eventArgs)
- if state.PhysicalDefenseMode.value == 'HP' and spell.action_type == 'Magic' then
- eventArgs.handled = true
- equip(sets.Enmity.HP)
- 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.english == 'Lunge' or spell.english == 'Swipe' then
- local obi = get_obi(get_rune_obi_element())
- if obi then
- equip({waist=obi})
- end
- end
- if spell.skill == 'Enhancing Magic' and classes.NoSkillSpells:contains(spell.english) then
- equip(sets.midcast.EnhancingDuration)
- if spellMap == 'Refresh' then
- equip(sets.midcast.Refresh)
- end
- end
- -- If DefenseMode is active, apply that gear over midcast
- -- choices. Precast is allowed through for fast cast on
- -- spells, but we want to return to def gear before there's
- -- time for anything to hit us.
- -- Exclude Job Abilities from this restriction, as we probably want
- -- the enhanced effect of whatever item of gear applies to them,
- -- and only one item should be swapped out.
- --if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
- -- handle_equipping_gear(player.status)
- -- eventArgs.handled = true
- --end
- end
- function job_aftercast(spell, action, spellMap, eventArgs)
- if spell.name == 'Rayke' and not spell.interrupted then
- send_command('@timers c "Rayke ['..spell.target.name..']" '..rayke_duration..' down spells/00136.png')
- send_command('wait '..rayke_duration..';input /p Rayke: OFF <call21>;')
- elseif spell.name == 'Gambit' and not spell.interrupted then
- send_command('@timers c "Gambit ['..spell.target.name..']" '..gambit_duration..' down spells/00136.png')
- send_command('wait '..gambit_duration..';input /p Gambit: OFF <call21>;')
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when the player's status changes.
- function job_state_change(field, new_value, old_value)
- classes.CustomDefenseGroups:clear()
- classes.CustomDefenseGroups:append(state.Charm.current)
- classes.CustomDefenseGroups:append(state.Knockback.current)
- classes.CustomDefenseGroups:append(state.Death.current)
- classes.CustomMeleeGroups:clear()
- classes.CustomMeleeGroups:append(state.Charm.current)
- classes.CustomMeleeGroups:append(state.Knockback.current)
- classes.CustomMeleeGroups:append(state.Death.current)
- end
- function job_buff_change(buff,gain)
- -- If we gain or lose any haste buffs, adjust which gear set we target.
- -- if buffactive['Reive Mark'] then
- -- if gain then
- -- equip(sets.Reive)
- -- disable('neck')
- -- else
- -- enable('neck')
- -- end
- -- end
- if buff == "doom" then
- if gain then
- equip(sets.buff.Doom)
- send_command('@input /p Doomed.')
- disable('ring1','ring2','waist')
- else
- enable('ring1','ring2','waist')
- handle_equipping_gear(player.status)
- end
- end
- if buff == 'Embolden' then
- if gain then
- equip(sets.Embolden)
- disable('head','legs','back')
- else
- enable('head','legs','back')
- status_change(player.status)
- end
- end
- if buff:startswith('Aftermath') then
- state.Buff.Aftermath = gain
- customize_melee_set()
- handle_equipping_gear(player.status)
- end
- if buff == 'Battuta' and not gain then
- status_change(player.status)
- 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')
- else
- enable('main','sub')
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- -- Modify the default idle set after it was constructed.
- function customize_idle_set(idleSet)
- if player.mpp < 51 then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- if state.Charm.value == true then
- idleSet = set_combine(idleSet, sets.defense.Charm)
- end
- if state.Knockback.value == true then
- idleSet = set_combine(idleSet, sets.defense.Knockback)
- end
- if state.Death.value == true then
- idleSet = set_combine(idleSet, sets.defense.Death)
- end
- if state.Greatsword.current == 'Epeolatry' then
- equip({main="Epeolatry"})
- elseif state.Greatsword.current == 'Lionheart' then
- equip({main="Lionheart"})
- elseif state.Greatsword.current == 'Aettir' then
- equip({main="Aettir"})
- end
- --if state.CP.current == 'on' then
- -- equip(sets.CP)
- -- disable('back')
- --else
- -- enable('back')
- --end
- return idleSet
- end
- -- Modify the default melee set after it was constructed.
- function customize_melee_set(meleeSet)
- if buffactive['Aftermath: Lv.3'] and player.equipment.main == "Epeolatry"
- and state.DefenseMode.value == 'None' then
- if state.HybridMode.value == "DT" then
- meleeSet = set_combine(meleeSet, sets.engaged.Aftermath.DT)
- else
- meleeSet = set_combine(meleeSet, sets.engaged.Aftermath)
- end
- end
- if state.Charm.value == true then
- meleeSet = set_combine(meleeSet, sets.defense.Charm)
- end
- if state.Knockback.value == true then
- meleeSet = set_combine(meleeSet, sets.defense.Knockback)
- end
- if state.Death.value == true then
- meleeSet = set_combine(meleeSet, sets.defense.Death)
- end
- return meleeSet
- end
- function customize_defense_set(defenseSet)
- if buffactive['Battuta'] then
- defenseSet = set_combine(defenseSet, sets.defense.Parry)
- end
- if state.Charm.value == true then
- defenseSet = set_combine(defenseSet, sets.defense.Charm)
- end
- if state.Knockback.value == true then
- defenseSet = set_combine(defenseSet, sets.defense.Knockback)
- end
- if state.Death.value == true then
- defenseSet = set_combine(defenseSet, sets.defense.Death)
- end
- return defenseSet
- end
- -- Function to display the current relevant user state when doing an update.
- -- Set eventArgs.handled to true if display was handled, and you don't want the default info shown.
- function display_current_job_state(eventArgs)
- local msg = '[ Melee'
- if state.CombatForm.has_value then
- msg = msg .. ' (' .. state.CombatForm.value .. ')'
- end
- msg = msg .. ': '
- msg = msg .. state.OffenseMode.value
- if state.HybridMode.value ~= 'Normal' then
- msg = msg .. '/' .. state.HybridMode.value
- end
- msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value .. ' ]'
- if state.DefenseMode.value ~= 'None' then
- msg = msg .. '[ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ' ]'
- end
- if state.Charm.value == true then
- msg = msg .. '[ Charm ]'
- end
- if state.Knockback.value == true then
- msg = msg .. '[ Knockback ]'
- end
- if state.Death.value == true then
- msg = msg .. '[ Death ]'
- end
- if state.Kiting.value then
- msg = msg .. '[ Kiting Mode ]'
- end
- msg = msg .. '[ *' .. state.Runes.current .. '* ]'
- add_to_chat(060, msg)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other events.
- -------------------------------------------------------------------------------------------------------------------
- function job_get_spell_map(spell, default_spell_map)
- if spell.skill == 'Blue Magic' then
- for category,spell_list in pairs(blue_magic_maps) do
- if spell_list:contains(spell.english) then
- return category
- end
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- function job_self_command(cmdParams, eventArgs)
- if cmdParams[1]:lower() == 'rune' then
- send_command('@input /ja '..state.Runes.value..' <me>')
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book: (set, book)
- if player.sub_job == 'BLU' then
- set_macro_page(1, 5)
- elseif player.sub_job == 'SAM' then
- set_macro_page(2, 5)
- elseif player.sub_job == 'DRK' then
- set_macro_page(3, 5)
- elseif player.sub_job == 'WAR' then
- set_macro_page(4, 5)
- elseif player.sub_job == 'WHM' then
- set_macro_page(5, 5)
- else
- set_macro_page(7, 5)
- end
- end
- function set_lockstyle()
- send_command('wait 2; input /lockstyleset ' .. lockstyleset)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement