Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- (Original: Motenten / Modified: Arislan)
- -------------------------------------------------------------------------------------------------------------------
- --[[ Custom Features:
- Rune Selector Cycle through available runes and trigger with a single macro [Ctl-`]
- Knockback Mode Equips knockback prevention gear (Ctl-[)
- Death Mode Equips death prevention gear (Ctl-])
- Auto. Doom Automatically equips cursna received gear on doom status
- Capacity Pts. Mode Capacity Points Mode Toggle [WinKey-C]
- Reive Detection Automatically equips Reive bonus gear
- Auto. Lockstyle Automatically locks specified equipset on file load
- --]]
- -------------------------------------------------------------------------------------------------------------------
- -- 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')
- include('organizer-lib')
- 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', 'Actinic Burst', 'Temporal Shift',
- 'Poison Breath', 'Blitzstrahl', 'Sheep Song', 'Chaotic Eye', 'Stinking Gas', 'Fantod'}
- blue_magic_maps.Cure = S{'Wild Carrot', 'Pollen'}
- blue_magic_maps.Buffs = S{'Cocoon', 'Refueling'}
- rayke_duration = 35
- gambit_duration = 92
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- function user_setup()
- state.OffenseMode:options('Normal', 'MidAcc', 'HighAcc', 'MaxAcc') -- 'STP',
- state.WeaponskillMode:options('Normal', 'Acc')
- state.HybridMode:options('Normal', 'PDT')
- state.CastingMode:options('Normal', 'Resistant')
- state.IdleMode:options('Normal', 'DT', 'Refresh', 'Regen')
- state.PhysicalDefenseMode:options('PDT', 'HP', 'Magic') -- ALT+F10
- state.MagicalDefenseMode:options('MDT', 'Status')
- state.WeaponLock = M(false, 'Weapon Lock')
- state.Charm = M(false, 'Charm')
- 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"}
- state.Rune = M{['description']='which',
- "Fire Dmg | Ice Resist: Paralyze, Bind, Frost",
- "Ice Dmg | Wind Resist: Choke, Gravity, Silence",
- "Wind dmg | Earth Resist: Slow, Petrify, Rasp",
- "Earth dmg | Lightning Resist: Stun, Shock",
- "Lightning Dmg | Water Resist: Poison, Drown",
- "Water dmg | Fire Resist: Addle, Burn, Plague, Amnesia",
- "Light Dmg | Dark Resist's: Blind, Bio, Sleep",
- "Dark Dmg | Light Resist's: Repose, Dia, Charm"
- }
- send_command('bind ` input /ma "Flash" <t>')
- send_command('bind ^` input //gs c rune')
- send_command('bind !` input /ja "Vivacious Pulse" <me>')
- send_command('bind @` input /ma "Stun" <t>')
- send_command('bind ^- gs c cycleback Runes')
- send_command('bind ^= gs c cycle Runes')
- send_command('bind ^f10 gs c cycle PhysicalDefenseMode')
- send_command('bind !f11 gs c cycle MagicalDefenseMode')
- send_command('bind ^[ gs c toggle Knockback')
- send_command('bind ^] gs c toggle Death')
- send_command('bind ^\ gs c toggle Charm')
- send_command('bind !q input /ma "Temper" <me>')
- send_command('bind delete input /ws "Resolution" <t>')
- send_command('bind end input /ws "Dimidiation" <t>')
- send_command('bind @w gs c toggle WeaponLock')
- send_command('bind ^f11 gs c toggle Kiting')
- send_command('bind @c gs c toggle CP')
- if player.sub_job == 'BLU' then
- send_command('bind home input /ma "Cocoon" <me>')
- elseif player.sub_job == 'WAR' then
- send_command('bind home input /ja "Berserk" <me>')
- send_command('bind != input /ja "Defender" <me>')
- elseif player.sub_job == 'DRK' then
- send_command('bind home input /ja "Last Resort" <me>')
- send_command('bind != input /ja "Souleater" <me>')
- send_command('bind !- input /ja "Weapon Bash" <me>')
- elseif player.sub_job == 'SAM' then
- send_command('bind home input /ja "Hasso" <me>')
- send_command('bind != input /ja "Sekkanoki" <me>')
- send_command('bind !- input /ja "Meditate" <me>')
- end
- select_default_macro_book()
- set_lockstyle()
- define_rune_info()
- target_distance = 5.5 -- Set Default Distance Here --
- end
- function user_unload()
- send_command('unbind `')
- send_command('unbind ^`')
- send_command('unbind !`')
- send_command('unbind @`')
- send_command('unbind ^-')
- send_command('unbind !-')
- send_command('unbind @-')
- send_command('unbind ^=')
- send_command('unbind !=')
- send_command('unbind @=')
- send_command('unbind delete')
- send_command('unbind end')
- send_command('unbind home')
- send_command('unbind ^delete')
- send_command('unbind ^end')
- send_command('unbind ^home')
- send_command('unbind !delete')
- send_command('unbind !end')
- send_command('unbind !home')
- send_command('unbind @delete')
- send_command('unbind @end')
- send_command('unbind @home')
- send_command('unbind !q')
- send_command('unbind !p')
- send_command('unbind @c')
- send_command('unbind !f9')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- -- Priority defining gear: ring1={name="Ramuh Ring +1", priority=1},
- -- Organizer: weapons
- organizer_items = {"Aettir","Lionheart","Refined Grip +1","Utu Grip"}
- ------------------------------------------------------------------------------------------
- -------------------------------------- Enmity set ----------------------------------------
- ------------------------------------------------------------------------------------------
- sets.Enmity = {ammo="Iron Gobbet",
- head={name="Halitus Helm", priority=2},neck="Unmoving Collar +1",ear1="Trux Earring",ear2="Friomisi Earring",
- body={name="Emet Harness +1", priority=5},hands={name="Kurys Gloves", priority=7},ring1={name="Begrudging Ring", priority=1},ring2="Moonbeam Ring",
- back={name=run_HP, priority=4},waist={name="Kasiri Belt", priority=6},legs={name="Erilaz Leg Guards +1", priority=3},feet={name="Erilaz Greaves +1", priority=8}}
- ------------------------------------------------------------------------------------------
- -------------------------------------- Precast sets --------------------------------------
- ------------------------------------------------------------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Vallation'] = set_combine(sets.Enmity, {body="Runeist's Coat +2",legs="Futhark Trousers +1",back=run_HP})
- sets.precast.JA['Valiance'] = set_combine(sets.precast.JA['Vallation'], {})
- sets.precast.JA['Pflug'] = set_combine(sets.Enmity, {feet="Runeist's Boots +2"})
- sets.precast.JA['Battuta'] = set_combine(sets.Enmity, {head="Futhark Bandeau +1"})
- sets.precast.JA['Liement'] = set_combine(sets.Enmity, {body="Futhark Coat +1"})
- sets.precast.JA['Lunge'] = {ammo="Seeth. Bomblet +1",
- head=herc_head_MAB,neck="Sanctity Necklace",ear1="Novio Earring",ear2="Friomisi Earring",
- body="Samnuha Coat",hands="Leyline Gloves",ring1="Shiva Ring +1",ring2="Shiva Ring +1",
- back="Toro Cape",waist="Eschan Stone",legs="Ayanmo Cosciales +2",feet="Ayanmo Gambieras +1"}
- sets.precast.JA['Swipe'] = set_combine(sets.precast.JA['Lunge'], {})
- sets.precast.JA['Gambit'] = {hands="Runeist's Mitons +3"}
- sets.precast.JA['Rayke'] = {feet="Futhark Boots"}
- sets.precast.JA['Elemental Sforzo'] = set_combine(sets.Enmity, {body="Futhark Coat +1"})
- sets.precast.JA['Swordplay'] = set_combine(sets.Enmity, {hands="Futhark Mitons"})
- sets.precast.JA['Embolden'] = set_combine(sets.Enmity, {back="Evasionist's Cape",head="Erilaz Galea +1",legs="Futhark Trousers +1"})
- sets.precast.JA['Vivacious Pulse'] = set_combine(sets.Enmity, {head="Erilaz Galea +1",neck="Incanter's Torque",ring1="Stikini Ring",ring2="Stikini Ring",waist="Bishop's Sash",legs="Rune. Trousers +2"})
- sets.precast.JA['One For All'] = set_combine(sets.Enmity, {})
- sets.precast.JA['Provoke'] = set_combine(sets.Enmity, {})
- sets.precast.Waltz = {}
- sets.precast.Waltz['Healing Waltz'] = {}
- ------------------------------------------------------------------------------------------
- -------------------------------------- Fastcast sets -------------------------------------
- ------------------------------------------------------------------------------------------
- sets.precast.FC = {ammo="Staunch Tathlum",
- head={name="Runeist's Bandeau +2", priority=3},neck="Unmoving Collar +1",ear1="Loquacious Earring",ear2={name="Odnowa Earring +1", priority=1},
- body={name="Emet Harness +1", priority=6},hands={name="Leyline Gloves", priority=8},ring1="Kishar Ring",ring2={name="Moonbeam Ring", priority=2},
- back={name=run_HP, priority=5},waist={name="Oneiros Belt", priority=7},legs={name="Erilaz Leg Guards +1", priority=4},feet={name="Carmine Greaves", priority=9}}
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {legs="Futhark Trousers +1"})
- 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",neck="Magoraga Beads"})
- ------------------------------------------------------------------------------------------
- -------------------------------------- Weaponskill sets ----------------------------------
- ------------------------------------------------------------------------------------------
- sets.precast.WS = {ammo="Knobkierrie",
- head="Adhemar Bonnet +1",neck="Fotia Gorget",ear1="Moonshade Earring",ear2="Brutal earring",
- body=herc_body_TA,hands="Meghanada Gloves +2",ring1="Epona's Ring",ring2="Regal Ring",
- back=run_DA,waist="Fotia Belt",legs="Samnuha Tights",feet=herc_feet_TA}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {ear2="Telos Earring",legs="Meg. Chausses +2"})
- ------------------------------------------------------------------------------------------
- -------------------------------------- Resolution sets -----------------------------------
- ------------------------------------------------------------------------------------------
- sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {
- ear2="Sherida Earring",body="Adhemar Jacket +1",hands="Adhemar Wristbands +1",ring1="Niqmaddu Ring",legs="Meghanada Chausses +2",feet="Lustratio Leggings +1"})
- sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS['Resolution'], {ammo="Seething Bomblet +1",head="Dampening Tam",ear1="Telos Earring"})
- ------------------------------------------------------------------------------------------
- -------------------------------------- Dimidiation sets ----------------------------------
- ------------------------------------------------------------------------------------------
- sets.precast.WS['Dimidiation'] = set_combine(sets.precast.WS, {
- ear2="Sherida Earring",body="Adhemar Jacket +1",ring1="Ilabrat Ring",ring2="Regal Ring",
- back=run_WSD,waist="Fotia Belt",legs="Lustratio Subligar +1",feet="Lustratio Leggings +1"})
- sets.precast.WS['Dimidiation'].Acc = set_combine(sets.precast.WS['Dimidiation'], {
- hands="Meghanada Gloves +2",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1"})
- ------------------------------------------------------------------------------------------
- -------------------------------------- All other WS sets ---------------------------------
- ------------------------------------------------------------------------------------------
- sets.precast.WS['Herculean Slash'] = set_combine(sets.precast.JA['Lunge'], {})
- sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {ammo="Floestone",
- head=herc_head_STRWSD,neck="Caro Necklace",ear1="Moonshade Earring",ear2="Ishvara Earring",
- body=herc_body_STRWSD,hands=herc_hands_STRWSD,ring2="Regal Ring",
- waist="Prosilio Belt +1",legs=herc_legs_STRWSD,feet=herc_feet_STRWSD})
- sets.precast.WS['Sanguine Blade'] = set_combine(sets.precast.Lunge, {head="Pixie Hairpin +1",ear1="Moonshade Earring"})
- sets.precast.WS['True Strike']= set_combine(sets.precast.WS['Resolution'], {})
- sets.precast.WS['Judgment'] = set_combine(sets.precast.WS['Savage Blade'])
- sets.precast.WS['Black Halo'] = set_combine(sets.precast.WS['Savage Blade'])
- sets.precast.WS['Flash Nova'] = set_combine(sets.precast.Lunge, {})
- sets.precast.WS['Shockwave'] = {ammo="Hydrocera",
- head="Aya. Zucchetto +2",neck="Sanctity Necklace",ear1="Digni. Earring",ear2="Gwati Earring",
- body="Ayanmo Corazza +2",hands="Leyline Gloves",ring1="Stikini Ring",ring2="Stikini Ring",
- waist="Eschan Stone",legs="Aya. Cosciales +2",feet="Aya. Gambieras +1"}
- ------------------------------------------------------------------------------------------
- -------------------------------------- Midcast sets --------------------------------------
- ------------------------------------------------------------------------------------------
- sets.midcast.FastRecast = set_combine(sets.precast.FC, {})
- sets.midcast.SpellInterrupt = {ammo="Staunch Tathlum",ring1="Evanescence Ring",legs="Carmine Cuisses +1"}
- sets.midcast.Cure = {ammo="Staunch Tathlum",
- head=herc_head_DT,neck="Loricate Torque +1",ear1="Roundel Earring",ear2="Mendi. Earring",
- body="Vrikodara Jupon",hands="Buremte Gloves",ring1="Defending Ring",ring2="Gelatinous Ring +1",
- waist="Gishdubar Sash",legs="Eri. Leg Guards +1",feet="Skaoi Boots"}
- sets.midcast['Enhancing Magic'] = {
- head={name="Carmine Mask", priority=7},neck="Incanter's Torque",ear1="Andoaa Earring",ear2={name="Odnowa Earring +1", priority=1},
- body={name="Futhark Coat +1", priority=4},hands={name="Runeist's Mitons +3", priority=5},ring1="Stikini Ring",ring2={name="Moonbeam Ring", priority=2},
- back="Evasionist's Cape",waist="Cascade Belt",legs={name="Carmine Cuisses +1", priority=7},feet={name="Erilaz Greaves +1", priority=8}}
- sets.midcast.EnhancingDuration = {head="Erilaz Galea +1",legs="Futhark Trousers +1",back="Evasionist's Cape"}
- sets.midcast['Temper'] = set_combine(sets.midcast['Enhancing Magic'], {head="Erilaz Galea +1"})
- sets.midcast['Phalanx'] = set_combine(sets.midcast['Enhancing Magic'], {head="Futhark Bandeau +1"})
- sets.midcast['Regen'] = set_combine(sets.midcast['Enhancing Magic'], {head="Runeist's Bandeau +2"})
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {waist="Gishdubar Sash"})
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {})
- sets.midcast.Protect = set_combine(sets.midcast.EnhancingDuration, {ring2="Sheltered Ring"})
- sets.midcast.Shell = set_combine(sets.midcast.Protect, {})
- sets.midcast.Crusade = set_combine(sets.midcast.EnhancingDuration, {})
- sets.midcast['Divine Magic'] = {neck="Incanter's Torque",waist="Bishop's Sash",legs="Rune. Trousers +2"} --ring1="Stikini Ring",ring2="Stikini Ring",
- sets.midcast.Flash = set_combine(sets.Enmity, {})
- sets.midcast.Stun = set_combine(sets.Enmity, {})
- sets.midcast.Foil = set_combine(sets.Enmity, {head="Erilaz Galea +1",legs="Futhark Trousers +1"})
- sets.midcast.Diaga = set_combine(sets.Enmity, {})
- sets.midcast.Utsusemi = set_combine(sets.midcast.SpellInterrupt, {})
- sets.midcast['Blue Magic'] = {}
- sets.midcast['Blue Magic'].Enmity = set_combine(sets.Enmity, {})
- sets.midcast['Blue Magic'].Cure = set_combine(sets.midcast.Cure, {})
- sets.midcast['Blue Magic'].Buff = set_combine(sets.midcast['Enhancing Magic'])
- ------------------------------------------------------------------------------------------
- -------------------------------------- Idle sets -----------------------------------------
- ------------------------------------------------------------------------------------------
- sets.idle = {ammo="Homiliary",
- head="Rawhide Mask",neck="Loricate Torque +1",ear1={name="Odnowa Earring", priority=4},ear2={name="Odnowa Earring +1", priority=3},
- body={name="Runeist's Coat +2", priority=2},hands=herc_hands_REF,ring1="Defending Ring",ring2="Gelatinous Ring +1",
- back={name="Moonbeam Cape", priority=1},waist="Flume Belt",legs="Carmine Cuisses +1",feet="Erilaz Greaves +1"}
- -- PDT: 20% | DT: 24
- sets.idle.DT = set_combine(sets.idle, {ammo="Staunch Tathlum",
- head=herc_head_DT,body={name="Futhark Coat +1", priority=2},hands=herc_hands_DT,ring2={name="Moonbeam Ring", priority=1},feet="Ayanmo Gambieras +1"})
- sets.idle.Refresh = set_combine(sets.idle, {legs="Rawhide Trousers"})
- sets.idle.Regen = set_combine(sets.idle.DT, {neck="Sanctity Necklace",ring1="Paguroidea Ring",ring2="Sheltered Ring"})
- sets.idle.Town = set_combine(sets.idle, {head="Runeist's Bandeau +2",hands=herc_hands_DT})
- sets.idle.Weak = set_combine(sets.idle.DT, {})
- sets.Kiting = {legs="Carmine Cuisses +1"}
- ------------------------------------------------------------------------------------------
- -------------------------------------- Defense sets --------------------------------------
- ------------------------------------------------------------------------------------------
- sets.defense.PDT = {ammo="Staunch Tathlum",
- head=herc_head_DT,neck="Loricate Torque +1", ear1="Ethereal Earring",ear2={name="Odnowa Earring +1", priority=1},
- body={name="Futhark Coat +1", priority=3},ring1="Defending Ring",ring2={name="Moonbeam Ring", priority=2},
- hands={name="Herculean Gloves", augments={'Attack+11','Damage taken-4%','STR+5','Accuracy+9'}, priority=7},
- back={name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10'}, priority=5},
- waist="Flume Belt",legs={name="Erilaz Leg Guards +1", priority=4},feet={name="Turms Leggings", priority=8}}
- -- DT: Ammo 2, Head 4, Neck 6, Body 7, Hands 4, Rings 14, TOTAL: 37%
- -- PDT: Hands 2, Waist 4, Legs 7, TOTAL: 13%
- sets.defense.MDT = {ammo="Staunch Tathlum",
- head=herc_head_DT,neck="Loricate Torque +1",ear1="Etiolation Earring",ear2="Sanare Earring",
- body="Futhark Coat +1",hands=herc_hands_DT,ring1="Defending Ring",ring2="Shadow Ring",
- back="Engulfer Cape +1",waist="Flume Belt",legs="Ayanmo Cosciales +2",feet="Erilaz Greaves +1"}
- sets.defense.Magic = {ammo="Staunch Tathlum",
- head=herc_head_DT,neck="Warder's Charm +1",ear1="Etiolation Earring",ear2="Odnowa Earring +1",
- body="Runeist's Coat +2",hands=herc_hands_DT,ring1="Defending Ring",ring2="Shadow Ring",
- back="Reiki Cloak",waist="Flume Belt",legs="Eri. Leg Guards +1",feet="Erilaz Greaves +1"}
- sets.defense.Status = {ammo="Staunch Tathlum",
- head=herc_head_DT,neck="Loricate Torque +1",ear1="Hearty Earring",ear2="Odnowa Earring +1",
- body="Runeist's Coat +2",hands="Erilaz Gauntlets +1",ring1="Defending Ring",ring2="Gelatinous Ring +1",
- back="Evasionist's Cape",waist="Flume Belt",legs="Rune. Trousers +2",feet="Erilaz Greaves +1"}
- sets.defense.HP = {ammo="Staunch Tathlum",
- head=herc_head_DT,neck="Loricate Torque +1",ear1={name="Odnowa Earring", priority=4},ear2={name="Odnowa Earring +1", priority=3},
- body={name="Runeist's Coat +2", priority=2},hands={name="Runeist's Mitons +3", priority=6},ring1="Defending Ring",ring2={name="Moonbeam Ring", priority=5},
- back={name="Moonbeam Cape", priority=1},waist="Flume Belt",legs={name="Erilaz Leg Guards +1", priority=7},feet={name="Turms Leggings", priority=9}}
- sets.defense.Critical = {}
- --sets.defense.Knockback = {back="Repulse Mantle"}
- sets.defense.Death = {body="Samnuha Coat",ring1="Warden's Ring"}
- ------------------------------------------------------------------------------------------
- -------------------------------------- Engaged sets --------------------------------------
- ------------------------------------------------------------------------------------------
- -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
- -- sets if more refined versions aren't defined.
- -- If you create a set with both offense and defense modes, the offense mode should be first.
- -- EG: sets.engaged.Dagger.Accuracy.Evasion
- -- General order that slots should be swapped out: Ammo > Head > Neck > Waist > Feet > Earring (Brutal) > Legs > everything else.
- -- /SAM 35+15 sTP, /DRK 50 sTP
- sets.engaged = {}
- sets.engaged.MidAcc = {}
- sets.engaged.HighAcc = {}
- sets.engaged.MaxAcc = {}
- sets.engaged.SAM = {ammo="Yamarang",
- head="Adhemar Bonnet +1",neck="Anu Torque",ear1="Telos Earring",ear2="Sherida Earring",
- body="Adhemar Jacket +1",hands="Adhemar Wristbands +1",ring1="Niqmaddu Ring",ring2="Epona's Ring",
- back=run_DA,waist="Windbuffet Belt +1",legs="Samnuha Tights",feet=herc_feet_TA}
- -- sTP: Lionheart 10, Yamarang 3, Anu 7, Sherida 5, Telos 5, Wristbands 7, Tights 7
- sets.engaged.MidAcc.SAM = set_combine(sets.engaged, {neck="Combatant's Torque",hands="Adhemar Wristbands +1"})
- -- Accuracy: Aettir 1249 | Zulfiqar 1216
- sets.engaged.HighAcc.SAM = set_combine(sets.engaged.MidAcc, {ammo="Falcon Eye",waist="Ioskeha Belt +1",legs="Carmine Cuisses +1"})
- -- Accuracy: Aettir 1331 | Zulfiqar 1298
- sets.engaged.MaxAcc.SAM = set_combine(sets.engaged.HighAcc, {
- head="Carmine Mask",ear1="Dignitary's Earring",
- head="Carmine Mask",ear1="Dignitary's Earring",
- body=herc_body_ACC,ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
- feet=herc_feet_ACC})
- -- Kentarch Belt +1
- sets.engaged.DRK = {ammo="Yamarang",
- head="Adhemar Bonnet +1",neck="Anu Torque",ear1="Telos Earring",ear2="Sherida Earring",
- body="Adhemar Jacket +1",hands="Adhemar Wristbands +1",ring1="Niqmaddu Ring",ring2="Epona's Ring",
- back=run_TP,waist="Windbuffet Belt +1",legs="Samnuha Tights",feet=herc_feet_TA}
- -- sTP: Lionheart 10, Yamarang 3, Anu 7, Sherida 5, Telos 5, Wristbands 7, Cape 10, Tights 7
- sets.engaged.MidAcc.DRK = set_combine(sets.engaged.MidAcc.SAM,{})
- sets.engaged.HighAcc.DRK = set_combine(sets.engaged.HighAcc.SAM,{})
- sets.engaged.MaxAcc.DRK = set_combine(sets.engaged.MaxAcc.SAM,{})
- sets.engaged.PDT = {ammo="Yamarang",
- head={name="Ayanmo Zucchetto +2", priority=3},neck="Loricate Torque +1",ear1="Telos Earring",ear2="Sherida Earring",
- body={name="Ayanmo Corazza +2", priority=2},hands=herc_hands_TA,ring1="Defending Ring",ring2={name="Moonbeam Ring", priority=1},
- back=run_TP,waist="Ioskeha Belt +1",legs={name="Meghanada Chausses +2", priority=4},feet=herc_feet_PDT}
- -- PDT: Meg Hands 4, Meg Legs 6, Herc Feet 6 = +16
- -- DT: Aya Head 3 Body 6, Neck 6, Rings 14 = +29
- sets.engaged.PDT.MidAcc = set_combine(sets.engaged.PDT,{})
- sets.engaged.PDT.HighAcc = set_combine(sets.engaged.PDT.MidAcc,{})
- sets.engaged.PDT.MaxAcc = set_combine(sets.engaged.PDT.HighAcc,{})
- -- Custom buff sets
- --sets.buff.Doom = {ring1="Saida Ring",ring2="Saida Ring",waist="Gishdubar Sash"}
- sets.Embolden = set_combine(sets.midcast.EnhancingDuration, {back="Evasionist's Cape"})
- sets.CP = {back="Mecisto. Mantle"}
- sets.Reive = {}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_pretarget(spell,action)
- if spell.type == "WeaponSkill" and player.status == 'Engaged' and spell.target.distance > target_distance then -- Cancel WS If You Are Out Of Range --
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- return
- end
- end
- function job_precast(spell, action, spellMap, eventArgs)
- 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
- 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
- if (spell.type:endswith('Magic') or spell.type == "Ninjutsu" or spell.type == "Geomancy") then
- if buffactive.Silence then
- cancel_spell()
- send_command('input /item "Echo Drops" <me>')
- end
- end
- if spell.english == 'Berserk' then
- if buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
- cancel_spell()
- send_command('input /ja Aggressor <me>')
- end
- 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)
- 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' or spell.english == "Phalanx") then
- handle_equipping_gear(player.status)
- eventArgs.handled = true
- end
- if buffactive['Reive Mark'] and spell.type == 'WeaponSkill' then
- equip(sets.Reive)
- 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 <bstar><bstar><bstar> <ldangle> Rayke: OFF <rdangle> <bstar><bstar><bstar> <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 <bstar><bstar><bstar> <ldangle> Gambit: OFF <rdangle> <bstar><bstar><bstar> <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.Knockback.current)
- classes.CustomDefenseGroups:append(state.Death.current)
- classes.CustomMeleeGroups:clear()
- 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.
- --Embolden cape lock--
- if buff == 'Embolden' then
- if gain then
- add_to_chat(122, 'On')
- equip(sets.buff.Embolden)
- disable('head','legs','back')
- else
- add_to_chat(122, 'Off')
- enable('head','legs','back')
- status_change(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')
- 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.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.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 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 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.Kiting.value == true then
- msg = msg .. ', Kiting'
- end
- msg = msg .. ', Rune: '..state.Runes.current ..''
- add_to_chat(122, msg)
- eventArgs.handled = true
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- 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 define_rune_info()
- rune_info = {
- ["Ignis"] = {damage="Fire", resistance="Ice"},
- ["Gelus"] = {damage="Ice", resistance="Wind"},
- ["Flabra"] = {damage="Wind", resistance="Earth"},
- ["Tellus"] = {damage="Earth", resistance="Lightning"},
- ["Sulpor"] = {damage="Lightning", resistance="Water"},
- ["Unda"] = {damage="Water", resistance="Fire"},
- ["Lux"] = {damage="Light", resistance="Darkness"},
- ["Tenebrae"]= {damage="Darkness", resistance="Light"},
- }
- end
- function job_self_command(cmdParams, eventArgs)
- if cmdParams[2] then
- local tab = {
- Ignis= "Ignis - [Resistance] Ice | Bind, Paralyze. [Damage] Fire",
- Gelus= "Gelus - [Resistance] Wind | Gravity, Silence. [Damage] Ice.",
- Flabra= "Flabra - [Resistance] Earth | Slow, Petrify. [Damage] Wind.",
- Tellus= "Tellus - [Resistance] Lightning | Stun. [Damage] Earth.",
- Sulpor= "Sulpor - [Resistance] Water | Poison. [Damage] Lightning.",
- Unda= "Unda - [Resistance] Fire | Addle, Amnesia, Plague. [Damage] Water.",
- Lux= "Lux - [Resistance] Dark | Bio, Curse, Doom, Sleep (Dark), Terror, Zombie. [Damage] Light.",
- Tenebrae= "Tenebrae - [Resistance] Light | Charm, Dia, Sleep (Light). [Damage] Dark.",}
- add_to_chat(7,tab[state.Runes.value])
- end
- 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 get_rune_obi_element()
- weather_rune = buffactive[elements.rune_of[world.weather_element] or '']
- day_rune = buffactive[elements.rune_of[world.day_element] or '']
- local found_rune_element
- if weather_rune and day_rune then
- if weather_rune > day_rune then
- found_rune_element = world.weather_element
- else
- found_rune_element = world.day_element
- end
- elseif weather_rune then
- found_rune_element = world.weather_element
- elseif day_rune then
- found_rune_element = world.day_element
- end
- return found_rune_element
- end
- function get_obi(element)
- if element and elements.obi_of[element] then
- return (player.inventory[elements.obi_of[element]] or player.wardrobe[elements.obi_of[element]]) and elements.obi_of[element]
- end
- end
- -- 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(2, 11)
- else
- set_macro_page(1, 11)
- end
- end
- function set_lockstyle()
- send_command('wait 6;input /lockstyleset 10')
- end
- --[[ Notes:
- --- Omen ---
- --- Source: http://www.ffxiah.com/forum/topic/37086/endeavoring-to-awaken-a-guide-to-rune-fencer/105/#3215221
- General Stuff: Helps to organize enemies, being able to tank while doing objectives is a huge help. Gambit and Rayke are great for some of those magic damage objectives,
- but I haven't done runs with mages yet so I haven't had to think about them for NMs/Bosses. Toggling in/out of DT gear can be an easy way to do the 10 cures for 500+ if you have a smaller crew.
- I'm still not crazy about WAR here since there's a lot of dispel, etc and Provoke is still garbage. /BLU might be a bad call due to buff absorb/dispels.
- /SAM, /DRK, and /NIN should all be quite fine, though you might prefer one over others depending on your boss of choice, strategy, playstyle, and experiences.
- Floor 1: Might as well use Ignis to resist Paralyze. Barblizz/Para.
- Floor 2: I use Sulpor for resisting Attack Down. Barwater.
- Glassy Craver: Sulpor helps against Promyvion Brume. No matter what, you're going to lose hate regularly, though you should try to get it back so it doesn't murder your support.
- I ride Hasso and focus on DDing while I tank so I can contribute even when I don't have hate. Barwater/Poison.
- Glassy Gorger: Lux for his drain attack. Don't use Temper, Phalanx, or Ice Spikes. Up to you and your group if you wanna drop other buffs, but I find it's not a big deal.
- He can copy Wards, but it shouldn't be a big deal (for instance, he has no weapon, so Battuta doesn't do anything for him). Don't underestimate Quadratic Continuum. Barblizz/Para.
- Glassy Thinker: Lux to resist Sleep/Curse/Blind. Only buff I'd suggest against is Temper (unless your dispellers aren't super lazy), since he can steal buffs.
- If you're tanking and unsure you'll be able to turn in time during Pain Sync, just back tank him. Pain Sync doesn't seem to have an element, but is Breath Damage, and OFA also works.
- Don't even bother using Lunge for a quick MB cuz you'll probably fuck it up and kill everyone. I like Barfire/virus.
- Floor 4: You'll probably change runes if you care, though I definitely recommend either Ignis or Lux for the Fu path (mostly undead).
- Helps a melee group when you can self-Light and kill a Transcended Skeleton or Ghost with Lunge.
- All Bosses: Lux. Barfire/Amnesia, except Fu, where you'd probably want Barwater or whatever. /DRK can help, as Arcane Circle will reduce all damage taken (including fixed moves) by 5%,
- and increase damage output by 5%. I wouldn't suggest it for Fu though, unless you're planning some kind of Souleater shenanigans.
- Kin: Lux Pflug helps big time vs. Death Sentence. Only WS when he's casting if you really wanna play it safe. If he uses Target on you, just stop using hate generating stuff until you lose hate for a second.
- Gin: Lux Wards and OFA reduce Zero Hour. Not a hard fight at all.
- Kei: Haven't fought him yet but you'll still want Lux (except maybe for Gambit/Rayke). Kei's strategy is a bit specific to go into detail here. /DRK and an HP set could be very helpful with reducing his fixed damage.
- Kyou: Haven't bothered with him either, but I could see either Seigan or /NIN working well to deal with his added effects (or just bark at your support). Heard he's overall pretty tame though.
- Fu: There's a lot of ways to handle this guy. Just bear in mind that when he's crazy, even super DT sets won't save you. I rely on Seigan and Battuta,
- especially if the plan is to push him down so you can ride Battuta longer. Might actually want Ignis for this too cuz he does use powerful Blizzaga.
- As the tank, I usually pull him alone from behind with a lot of buffs that won't help him (Preludes, Barwater/sleep, Crusade, etc).
- ]]--
Add Comment
Please, Sign In to add comment