Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------------------------------------------------------------
- --- RDM GEARSWAP LUA
- --------------------------------------------------------------------------
- --[[
- Ice = Paralyze, Bind, Frost, Eva Down, AGI Down
- Wind = Silence, Gravity, Choke, Def Down, VIT Down
- Earth = Slow, Petrify, Rasp, Acc Down, DEX Down
- Thunder = Stun, Shock, MND Down
- Water = Poison, Drown, STR Down, Atk Down, M. Def Down
- Fire = Addle, Amnesia, Virus, Burn, Nocturne, MAB down, INT Down
- --]]
- --------------------------------------------------------------------------
- --- INCLUDE
- --------------------------------------------------------------------------
- function get_sets()
- include('Include.lua')
- include('ui-lib-mule')
- end
- --------------------------------------------------------------------------
- --- JOB SETUP
- --------------------------------------------------------------------------
- function job_setup()
- --- Loading Addons
- send_command('lua load debuffed')
- --- Enfeebling Spell Map
- enfeeb_maps = {
- --- Pure Macc
- ['Sleep']='macc', ['Sleep II']='macc', ['Sleepga']='macc',
- ['Silence']='macc',
- ['Dispel']='macc',
- ['Break']='macc',
- ['Bind']='macc',
- ['Frazzle']='macc', ['Frazzle II']='macc',
- --- Potency
- ['Dia']='potency', ['Dia II']='potency', ['Dia III']='potency',
- ['Bio']='potency', ['Bio II']='potency', ['Bio III']='potency',
- ['Gravity']='potency', ['Gravity II']='potency',
- ['Inundation']='potency',
- --- Mnd & Potency
- ['Paralyze']='mndpot', ['Paralyze II']='mndpot',
- ['Slow']='mndpot', ['Slow II']='mndpot',
- ['Adle']='mndpot', ['Adle II']='mndpot',
- --- Int & Potency
- ['Blind']='intpot', ['Blind II']='intpot',
- --- Skill, Mnd, & Potency
- ['Frazzle III']='skillmndpot',
- ['Distract']='skillmndpot', ['Distract II']='skillmndpot', ['Distract III']='skillmndpot',
- --- Skill & Potency
- ['Poison']='skillpot', ['Poison II']='skillpot', ['Poisonga']='skillpot',
- }
- skill_spells = S{'Temper', 'Temper II', 'Enfire', 'Enfire II', 'Enblizzard', 'Enblizzard II', 'Enaero', 'Enaero II', 'Enstone', 'Enstone II', 'Enthunder', 'Enthunder II', 'Enwater', 'Enwater II'}
- --- Auto Modes
- state.AutoShadowMode = M(false, 'Auto Shadow Mode')
- state.AutoPositionMode = M(true, 'Auto Position Mode')
- --- Nuke Gear
- gear.obi_high_nuke_waist = "Refoccilation Stone"
- end
- --------------------------------------------------------------------------
- --- USER SETUP
- --------------------------------------------------------------------------
- function user_setup()
- --- Default States
- state.OffenseMode:options('None')
- state.CastingMode:options('Normal')
- state.IdleMode:options('Normal')
- state.Weapons:options('None','Crocea','Naegling','Murgleis')
- --- Auto Modes
- send_command('bind ~numpad7 gs c toggle AutoPositionMode')
- --- Cycle Binds
- send_command('bind %z gs c cycle Weapons')
- --- JobA Binds
- send_command('bind %e input /ja "Saboteur" <me>')
- send_command('bind !e input /ja "Spontaneity" <me>')
- send_command('bind delete input /ja "Composure" <me>')
- --- Buffs Binds
- send_command('bind %1 input /ma "Aquaveil" <me>')
- send_command('bind %2 input /ma "Blink" <me>')
- send_command('bind %3 input /ma "Stoneskin" <me>')
- send_command('bind %4 input /ma "Phalanx II" <stpt>')
- send_command('bind %5 input /ma "Haste II" <stpt>')
- send_command('bind %6 input /ma "Refresh III" <stpt>')
- send_command('bind %7 input /ma "Regen II" <stpt>')
- send_command('bind %8 input /ma "Shock Spikes" <me>')
- send_command('bind %9 input /ma "Protect V" <stpt>')
- send_command('bind %0 input /ma "Shell V" <stpt>')
- --- RDM Binds
- send_command('bind ^d input /ma "Dispel" <t>')
- send_command('bind !d input /ma "Drain" <t>')
- send_command('bind ^a input /ma "Aspir" <t>')
- send_command('bind ^s input /ma "Sleep II" <t>')
- --- Subjobs Binds
- if player.sub_job == 'SCH' then
- send_command('bind end input /ja "Light Arts" <me>')
- send_command('bind pagedown input /ja "Dark Arts" <me>')
- send_command('wait 5; input //gs equip sets.stylelock; wait 5; input /lockstyleset 1;wait 2; input //gs c update')
- elseif player.sub_job == 'BLM' then
- send_command('bind %x input /ma "Stun" <t>; input /party Stun just used!')
- send_command('bind !s input /ma "Sleepga" <t>')
- send_command('wait 5; input //gs equip sets.stylelock; wait 5; input /lockstyleset 1;wait 2; input //gs c update')
- elseif player.sub_job == 'NIN' then
- send_command('bind end input /ja "Temper II" <me>')
- send_command('bind pagedown input /ja "Gain-STR" <me>')
- send_command('bind %numpad9 gs c toggle AutoShadowMode')
- send_command('bind %~e input /ma "Utsusemi: Ni" <me>')
- send_command('wait 5; input /lockstyleset 1')
- end
- --- Misc
- select_default_macro_book()
- --- Load Check
- windower.add_to_chat(8,'---- RDM.lua Loaded ----')
- end
- --- User Unload
- function user_unload()
- --- Unlock Gear
- send_command('input //gs enable all')
- --- Unloading Addons
- send_command('lua unload debuffed')
- end
- --------------------------------------------------------------------------
- --- GEAR SETS
- --------------------------------------------------------------------------
- function init_gear_sets()
- ----------------------------------------------------------------------
- --- Misc
- ----------------------------------------------------------------------
- --- Remove Shield from Lockstyle
- sets.stylelock = {
- main = "Chatoyant Staff",
- sub = "Enki Strap",
- }
- ----------------------------------------------------------------------
- --- RDM Augments
- ----------------------------------------------------------------------
- SucellosMND = { name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
- SucellosMeva = { name="Sucellos's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
- SucellosHeal = { name="Sucellos's Cape", augments={'MND+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}
- SucellosINT = { name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}}
- SucellosDW = { name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+5','"Dual Wield"+10','Phys. dmg. taken-10%',}}
- SucellosWSD = { name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}}
- TelchineHead_ENHD = { name="Telchine Cap", augments={'Enh. Mag. eff. dur. +9',}}
- TelchineLegs_ENHD = { name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +10',}}
- TaeonHead_Phalanx = { name="Taeon Chapeau", augments={'"Conserve MP"+3','Phalanx +2',}}
- TaeonHands_Phalanx = { name="Taeon Gloves", augments={'"Conserve MP"+2','Phalanx +2',}}
- ChironicHoseMnd = { name="Chironic Hose", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','MND+12','Mag. Acc.+13','"Mag.Atk.Bns."+4',}}
- GrioavolrMND = { name="Grioavolr", augments={'"Conserve MP"+5','MND+15','Mag. Acc.+21','"Mag.Atk.Bns."+2','Magic Damage +3',}}
- ----------------------------------------------------------------------
- --- Set Buffs
- ----------------------------------------------------------------------
- sets.precast.JA['Chainspell'] = { body="Vitiation Tabard +3" }
- --------------------------------------------------------------------------
- --- Idle
- --------------------------------------------------------------------------
- --- Idle | PDT 51/50
- sets.idle = {
- main = "Bolelabunga",
- sub = "Genmei Shield",
- ammo = "Staunch Tathlum +1",
- range = empty,
- head = "Vitiation Chapeau +3", -- REF'3
- neck = "Warder's Charm +1",
- ear1 = "Genmei Earring", --- Etiolation
- ear2 = "Hearty Earring",
- body = "Atrophy Tabard +3", -- REF'3
- hands = "Ayanmo Manopolas +2", -- DT'3
- ring1 = "Vocane Ring", -- DT'7
- ring2 = "Defending Ring", -- DT'10
- back = SucellosMeva, -- PDT'10
- waist = "Carrier's Sash",
- legs = "Vitiation Tights +3", -- PDT'5
- feet = "Ayanmo Gambieras +2" -- DT'3
- }
- --- Refresh on Low MP
- sets.latent_refresh = {
- ammo = "Homiliary",
- neck = "Loricate Torque +1",
- waist = "Fucho-no-Obi",
- ring1 = {name="Stikini Ring +1", bag="wardrobe"},
- ring2 = {name="Stikini Ring +1", bag="wardrobe2"}
- }
- --- Resting
- sets.resting = {
- main = "Chatoyant Staff",
- waist = "Austerity Belt +1"
- }
- --------------------------------------------------------------------------
- --- Defense
- --------------------------------------------------------------------------
- sets.defense.PDT = set_combine(sets.idle, {})
- sets.defense.MDT = set_combine(sets.idle, {})
- --------------------------------------------------------------------------
- --- Precast & Recast
- --------------------------------------------------------------------------
- --- FastCast | FC'50/42
- sets.precast.FC = {
- --- main = "Mafic Cudgel",
- head = "Atrophy Chapeau +2", -- FC'16%
- ear1 = "Etiolation Earring", -- FC'1%
- ear2 = "Loquacious Earring", -- FC'2%
- body = "Vitiation Tabard +3", -- FC'15%
- back = SucellosMeva, -- FC'10%
- legs = "Ayanmo Cosciales +2", -- FC'6%
- }
- --- FastRecast and Conserve MP
- sets.midcast.FastRecast = set_combine(sets.precast.FC, {
- range = empty,
- ammo = "Pemphredo Tathlum", -- CMP'4
- neck = "Incanter's Torque", -- 1% Save
- ear1 = "Calamitous Earring", -- CMP'4
- ear2 = "Magnetic Earring", -- CMP'5
- back = "Fi Follet Cape +1", -- CMP'5
- waist = "Hachirin-no-Obi" -- 1% Save
- })
- --- Utsusemi
- sets.precast.FC.Utsusemi = sets.precast.FC
- --------------------------------------------------------------------------
- --- Healing Magic
- --------------------------------------------------------------------------
- --- Cure | CP'61/50 | EN'45/45
- sets.midcast.Cure = {
- main = "Tamaxchi", -- CP'22
- sub = "Ammurapi Shield",
- ammo = "Esper Stone +1", -- EN'-5
- range = empty,
- head = "Kaykaus Mitra +1", -- CP'11 | EN'-6
- -- neck = "Incanter's Torque",
- ear1 = "Regal Earring",
- ear2 = "Healing Earring",
- body = "Kaykaus Bliaut +1", -- EN'-6
- hands = "Kaykaus Cuffs +1", -- CP'11 | EN'-6
- ring1 = {name="Stikini Ring +1", bag="wardrobe"},
- ring2 = {name="Stikini Ring +1", bag="wardrobe2"},
- waist = "Bishop's Sash",
- back = SucellosHeal, -- EN'-10
- legs = "Kaykaus Tights +1", -- CP'11 | EN'-6
- feet = "Kaykaus Boots +1" -- CP'17 | EN'-6
- }
- sets.midcast.Curaga = set_combine(sets.midcast.Cure,{})
- sets.midcast.CureWeather = set_combine(sets.midcast.Cure,{
- main = "Chatoyant Staff",
- sub = "Enki Strap",
- -- waist = "Hachirin-no-Obi",
- -- back = "Twilight Cape"
- })
- sets.midcast.StatusRemoval = set_combine(sets.midcast.Cure,{
- -- head = "Vanya Hood",
- -- body = "Vanya Robe",
- legs = "Atrophy Tights +2",
- -- feet = VanyaFeet_CST -- CRN'+5
- })
- sets.midcast.Cursna = set_combine(sets.midcast.StatusRemoval,{
- neck = "Malison Medallion", -- CRN'+10
- body = "Vitiation Tabard +3",
- -- hands = VanyaHands_HMS,
- ring1 = "Ephedra Ring", -- CRN'+5
- -- back = "Oretania's Cape +1", -- CRN'+5
- -- legs = VanyaLegs_HMS,
- -- feet = VanyaFeet_CST -- CRN'+5
- })
- --------------------------------------------------------------------------
- --- Enhancing Magic
- --------------------------------------------------------------------------
- --- Enhancing Base | 516/500
- sets.midcast['Enhancing Magic'] = {
- main = "Colada",
- sub = "Ammurapi Shield",
- head = TelchineHead_ENHD,
- neck = "Duelist's Torque +2",
- ear1 = "Andoaa Earring",
- ear2 = "Augmenting Earring",
- body = "Vitiation Tabard +3",
- hands = "Atrophy Gloves +3",
- ring1 = {name="Stikini Ring +1", bag="wardrobe"},
- ring2 = {name="Stikini Ring +1", bag="wardrobe2"},
- back = "Ghostfyre Cape",
- waist = "Olympus Sash",
- legs = TelchineLegs_ENHD,
- feet = "Lethargy Houseaux +1"
- }
- --- Enhancing Skill | Temper Enspells
- sets.midcast.EnhancingSkill = set_combine(sets.midcast['Enhancing Magic'], {
- main = "Pukulatmuj +1",
- sub = "Pukulatmuj",
- head = "Umuthi Hat", -- Befouled Crown
- -- neck = "Incanter's Torque"
- hands = "Vitiation Gloves +3",
- legs = "Atrophy Tights +2",
- feet = "Lethargy Houseaux +1"
- })
- --- Gain & Spikes
- sets.midcast.GainSpell = { hands="Vitiation Gloves +3" }
- sets.midcast.SpikesSpell = { legs="Vitiation Tights +3" }
- --- Duration for NoSkill Enhancing Magic
- sets.midcast.EnhancingDuration = {
- main = "Colada",
- sub = "Ammurapi Shield",
- head = TelchineHead_ENHD,
- neck = "Duelist's Torque +2",
- body = "Vitiation Tabard +3",
- hands = "Atrophy Gloves +3",
- ring1 = {name="Stikini Ring +1", bag="wardrobe"},
- ring2 = {name="Stikini Ring +1", bag="wardrobe2"},
- back = "Ghostfyre Cape",
- legs = TelchineLegs_ENHD,
- feet = "Lethargy Houseaux +1"
- }
- --- Enhancing on others
- sets.midcast.Composure = set_combine(sets.midcast.EnhancingDuration, {
- head = "Lethargy Chappel +1",
- body = "Lethargy Sayon +1",
- legs = "Lethargy Fuseau +1",
- feet = "Lethargy Houseaux +1"
- })
- --- Refresh
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
- head = "Amalric Coif +1", -- +2
- body = "Atrophy Tabard +3", -- +3
- legs = "Lethargy Fuseau +1", -- +2
- })
- --- RefreshSelf
- sets.Self_Refresh = {
- --- waist = "Gishdubar Sash",
- back = "Grapevine Cape"
- }
- --- Stoneskin
- sets.midcast.Stoneskin = set_combine(sets.midcast.EnhancingDuration, {
- neck = "Nodens Gorget"
- })
- --- Aquaveil
- sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingDuration, {
- --- main = "Vadose Rod",
- head = "Amalric Coif +1",
- --- hands = "Regal Cuffs",
- waist = "Emphatikos Rope"
- })
- --- Storm
- sets.midcast.Storm = set_combine(sets.midcast.EnhancingDuration, {})
- --- Phalanx | 504
- sets.midcast['Phalanx'] = set_combine(sets.midcast.EnhancingDuration, {
- head = TaeonHead_Phalanx,
- hands = TaeonHands_Phalanx
- })
- --- Protect
- sets.midcast.Protect = set_combine(sets.midcast.EnhancingDuration, {
- ring1 = "Sheltered Ring"
- })
- sets.midcast.Protectra = sets.midcast.Protect
- --- Shell
- sets.midcast.Shell = set_combine(sets.midcast.EnhancingDuration, {
- ring1 = "Sheltered Ring"
- })
- sets.midcast.Shellra = sets.midcast.Shell
- --------------------------------------------------------------------------
- --- Enfeebling Magic
- --------------------------------------------------------------------------
- sets.midcast.Enfeebling = {}
- --- Pure Macc | Sleep Silence Dispel Break Bind Frazzle I-II
- sets.midcast.Enfeebling.macc = {
- main = "Murgleis",
- sub = "Ammurapi Shield",
- range = "Ullr",
- ammo = empty,
- head = "Vitiation Chapeau +3",
- neck = "Duelist's Torque +2",
- ear1 = "Dignitary's Earring",
- ear2 = "Regal Earring",
- body = "Atrophy Tabard +3",
- hands = "Kaykaus Cuffs +1",
- ring1 = {name="Stikini Ring +1", bag="wardrobe"},
- ring2 = {name="Stikini Ring +1", bag="wardrobe2"},
- back = SucellosINT,
- legs = ChironicHoseMnd,
- waist = "Luminary Sash",
- feet = "Vitiation Boots +3"
- }
- --- Stun
- sets.midcast["Stun"] = set_combine(sets.midcast.Enfeebling.macc, {})
- --- Mnd & Potency | Paralyze Slow Addle
- sets.midcast.Enfeebling.mndpot = set_combine(sets.midcast.Enfeebling.macc, {
- --- Regal Gem
- back = SucellosMND,
- })
- --- Int & Potency | Blind
- sets.midcast.Enfeebling.intpot= set_combine(sets.midcast.Enfeebling.macc, {
- --- Regal Gem
- body = "Lethargy Sayon +1"
- })
- --- Skill & Potency | Poison
- sets.midcast.Enfeebling.skillpot= set_combine(sets.midcast.Enfeebling.macc, {
- --- Regal Gem
- })
- --- Skill, Mnd, & Potency | Frazzle III Distract I-III
- sets.midcast.Enfeebling.skillmndpot= set_combine(sets.midcast.Enfeebling.macc, {
- back = SucellosMND,
- })
- --- Potency | Dia Bio Gravity Inundation
- sets.midcast.Enfeebling.potency= set_combine(sets.midcast.Enfeebling.macc, {
- --- Regal Gem
- ring2 = "Kishar Ring",
- body = "Lethargy Sayon +1"
- })
- --- Aspir
- sets.midcast.Aspir = set_combine(sets.midcast.Enfeebling.macc, {
- head = "Pixie Hairpin +1",
- neck = "Erra Pendant",
- waist = "Fucho-no-Obi",
- })
- --- Drain
- sets.midcast.Drain = set_combine(sets.midcast.Aspir, {})
- --------------------------------------------------------------------------
- --- Divine Magic
- --------------------------------------------------------------------------
- sets.midcast['Divine Magic'] = {
- }
- --------------------------------------------------------------------------
- --- Elemental Magic
- --------------------------------------------------------------------------
- sets.midcast['Elemental Magic'] = {
- main = GrioavolrMND,
- sub = "Enki Strap",
- range = "Ullr",
- ammo = empty,
- head = "Amalric Coif +1",
- neck = "Duelist's Torque +2",
- ear1 = "Friomisi Earring",
- ear2 = "Regal Earring",
- body = "Amalric Doublet +1",
- hands = "Amalric Gages +1",
- ring1 = "Jhakri Ring",
- ring2 = "Shiva Ring +1",
- back = SucellosINT,
- waist = gear.ElementalObi,
- legs = "Amalric Slops +1",
- feet = "Amalric Nails +1"
- }
- --------------------------------------------------------------------------
- --- Weapons
- --------------------------------------------------------------------------
- sets.weapons.Crocea = {
- main = "Crocea Mors",
- sub = "Tauret",
- range = "Ullr",
- ammo = "Silver Arrow"
- }
- sets.weapons.Murgleis = {
- main = "Murgleis",
- sub = "Thibron",
- range = "Ullr",
- ammo = "Silver Arrow"
- }
- sets.weapons.Naegling = {
- main = "Naegling",
- sub = "Thibron",
- range = "Ullr",
- ammo = "Silver Arrow"
- }
- sets.EnhWeapon = {
- main = "Pukulatmuj +1",
- sub = "Pukulatmuj"
- }
- --------------------------------------------------------------------------
- --- Enganged
- --------------------------------------------------------------------------
- sets.engaged = {
- head = "Ayanmo Zucchetto +1",
- neck = "Anu Torque",
- ear1 = "Dignitary's Earring", -- Sherida
- ear2 = "Dedition Earring",
- body = "Ayanmo Corazza +2",
- hands = "Ayanmo Manopolas +2",
- ring1 = {name="Chirich Ring +1", bag="wardrobe"},
- ring2 = {name="Chirich Ring +1", bag="wardrobe2"},
- back = SucellosDW, -- DA Cape
- waist = "Windbuffet Belt +1",
- legs = "Ayanmo Cosciales +2",
- feet = "Ayanmo Gambieras +2"
- }
- --------------------------------------------------------------------------
- --- Enganged Crocea Mors
- --------------------------------------------------------------------------
- sets.engaged.Crocea = {
- head = "Ayanmo Zucchetto +1",
- neck = "Anu Torque",
- ear1 = "Dignitary's Earring", -- Sherida
- ear2 = "Dedition Earring",
- body = "Ayanmo Corazza +2",
- hands = "Ayanmo Manopolas +2",
- ring1 = {name="Chirich Ring +1", bag="wardrobe"},
- ring2 = {name="Chirich Ring +1", bag="wardrobe2"},
- back = SucellosDW,
- waist = "Orpheus's Sash",
- legs = "Ayanmo Cosciales +2",
- feet = "Ayanmo Gambieras +2"
- }
- --------------------------------------------------------------------------
- --- Enganged Murgleis
- --------------------------------------------------------------------------
- sets.engaged.Murgleis = {
- head = "Ayanmo Zucchetto +1",
- neck = "Anu Torque",
- ear1 = "Dignitary's Earring", -- Sherida
- ear2 = "Dedition Earring",
- body = "Ayanmo Corazza +2",
- hands = "Ayanmo Manopolas +2",
- ring1 = {name="Chirich Ring +1", bag="wardrobe"},
- ring2 = {name="Chirich Ring +1", bag="wardrobe2"},
- back = SucellosDW,
- waist = "Windbuffet Belt +1",
- legs = "Ayanmo Cosciales +2",
- feet = "Ayanmo Gambieras +2"
- }
- --------------------------------------------------------------------------
- --- Weaponskills
- --------------------------------------------------------------------------
- --- Savage Blade | Death Blossom
- sets.precast.WS = {
- head = "Vitiation Chapeau +3",
- neck = "Duelist's Torque +2",
- ear1 = "Regal Earring",
- ear2 = "Ishvara Earring",
- body = "Vitiation Tabard +3",
- hands = "Atrophy Gloves +3",
- ring1 = "Epaminondas's Ring",
- ring2 = "Rufescent Ring",
- back = SucellosWSD,
- waist = "Prosilio Belt +1",
- legs = "Jhakri Slops +2",
- feet = "Jhakri Pigaches +2" -- DM?
- }
- --- Chant du Cygne (80% DEX | fTP: 1.6 )
- -- sets.precast.WS['Chant du Cygne'] = {
- --
- -- }
- --- Requiescat (73~85% MND | fTP: 1 )
- sets.precast.WS['Requiescat'] = {
- -- ammmo = "Regal Gem",
- head = "Jhakri Coronal +1",
- neck = "Duelist's Torque +2", --- Fotia
- ear1 = "Regal Earring", -- ear1 = "Sherida Earring",
- ear2 = "Ishvara Earring", -- ear2 = "Moonshade Earring"
- body = "Jhakri Robe +2",
- hands = "Atrophy Gloves +3",
- ring1 = "Epaminondas's Ring", --- Shukuyu Ring
- ring2 = "Rufescent Ring",
- back = SucellosWSD, -- DA Cape
- waist = "Prosilio Belt +1", --- Fotia
- legs = "Jhakri Slops +2",
- feet = "Jhakri Pigaches +2"
- }
- --- Sanguine Blade (50% MND / 30% STR | fTP: 2.75 | Dark Element)
- sets.precast.WS['Sanguine Blade'] = {
- range = "Ullr",
- head = "Pixie Hairpin +1",
- neck = "Duelist's Torque +2", -- Baetyl Pendant
- ear1 = "Friomisi Earring",
- ear2 = "Regal Earring",
- body = "Amalric Doublet +1",
- hands = "Jhakri Cuffs +2",
- ring1 = "Epaminondas's Ring",
- ring2 = "Shiva Ring +1", -- Archon Ring
- back = SucellosMND,
- waist = "Orpheus's Sash",
- legs = "Amalric Slops +1",
- feet = "Amalric Nails +1"
- }
- --- Seraph Blade (40% STR / 40% MND | fTP: 1.125-4.125 | Light Element)
- sets.precast.WS['Seraph Blade'] = {
- range = "Ullr",
- head = "Jhakri Coronal +1",
- neck = "Duelist's Torque +2", -- Baetyl Pendant
- ear1 = "Friomisi Earring",
- ear2 = "Regal Earring",
- body = "Amalric Doublet +1",
- hands = "Jhakri Cuffs +2",
- ring1 = "Epaminondas's Ring",
- ring2 = "Shiva Ring +1", -- Weather. Ring
- back = SucellosMND,
- waist = "Orpheus's Sash",
- legs = "Amalric Slops +1",
- feet = "Amalric Nails +1"
- }
- --- Red Lotus Blade (40% STR / 40% INT | fTP: 1-3.75 | Fire Element)
- sets.precast.WS['Red Lotus Blade'] = {
- range = "Ullr",
- head = "Jhakri Coronal +1",
- neck = "Duelist's Torque +2", -- Baetyl Pendant
- ear1 = "Friomisi Earring",
- ear2 = "Regal Earring",
- body = "Amalric Doublet +1",
- hands = "Jhakri Cuffs +2",
- ring1 = "Epaminondas's Ring",
- ring2 = "Shiva Ring +1", -- Weather. Ring
- back = SucellosMND,
- waist = "Orpheus's Sash",
- legs = "Amalric Slops +1",
- feet = "Amalric Nails +1"
- }
- --- Black Halo (70% MND / 30% STR | fTP: 3-9.75)
- sets.precast.WS['Black Halo'] = {
- -- ammo = "Regal Gem",
- head = "Vitiation Chapeau +3",
- neck = "Duelist's Torque +2",
- ear1 = "Regal Earring",
- -- ear2 = "Moonshade Earring",
- body = "Vitiation Tabard +3",
- hands = "Atrophy Gloves +3",
- ring1 = "Epaminondas's Ring",
- ring2 = "Rufescent Ring",
- back = SucellosMND,
- waist = "Luminary Sash",
- legs = "Vitiation Tights +3",
- feet = "Jhakri Pigaches +2" -- DM?
- }
- end
- --------------------------------------------------------------------------
- --- Filter FUNCTION
- --------------------------------------------------------------------------
- --- Filter Precast
- function job_filter_precast(spell, spellMap, eventArgs)
- if spell.name == "Light Arts" then
- if buffactive['Light Arts'] then
- cancel_spell()
- send_command('input /ja "Addendum: White" <me>')
- elseif buffactive['Addendum: White'] then
- cancel_spell()
- send_command('input /ma "Aurorastorm" <me>')
- end
- elseif spell.name == "Dark Arts" then
- if buffactive['Dark Arts'] then
- cancel_spell()
- send_command('input /ja "Addendum: Black" <me>')
- end
- end
- end
- --------------------------------------------------------------------------
- --- PRECAST FUNCTION
- --------------------------------------------------------------------------
- function job_precast(spell, spellMap, eventArgs)
- if spell.action_type == 'Magic' then
- if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
- gear.default.obi_waist = gear.obi_high_nuke_waist
- elseif spell.english == 'Phalanx II' and (spell.target.type == 'SELF' or buffactive.Accession) then
- windower.chat.input('/ma "Phalanx" <me>')
- cancel_spell()
- eventArgs.cancel = true
- elseif spell.english == 'Phalanx' and (spell.target.type ~= 'SELF') then
- windower.chat.input('/ws "Phalanx II" '..spell.target.raw)
- cancel_spell()
- eventArgs.cancel = true
- end
- end
- end
- --------------------------------------------------------------------------
- --- MIDCAST FUNCTION
- --------------------------------------------------------------------------
- --- Post Midcast
- function job_post_midcast(spell, action, spellMap, eventArgs)
- local enfeebMap = get_enfeeb_map(spell)
- if spell.skill == 'Enhancing Magic' then
- --- Duration Gear
- if classes.NoSkillSpells:contains(spell.english) then
- equip(sets.midcast.EnhancingDuration)
- if spellMap == 'Refresh' then
- equip(sets.midcast.Refresh)
- if spell.target.type == 'SELF' then
- equip(sets.Self_Refresh)
- end
- end
- elseif skill_spells:contains(spell.english) then
- equip(sets.midcast.EnhancingSkill)
- --- Equip Weapons for Temper / Enspells
- if sets.EnhWeapon then
- enable('main','sub','range','ammo')
- equip(sets.EnhWeapon)
- end
- elseif spell.english:startswith('Gain') then
- equip(sets.midcast.GainSpell)
- elseif spell.english:contains('Spikes') then
- equip(sets.midcast.SpikesSpell)
- end
- --- Composure on Targets
- if (spell.target.type == 'PLAYER' or spell.target.type == 'NPC') and buffactive['Composure'] then
- equip(sets.midcast.Composure)
- end
- elseif spell.skill == 'Enfeebling Magic' then
- equip(sets.midcast.Enfeebling[enfeebMap])
- end
- end
- --------------------------------------------------------------------------
- --- AFTERCAST
- --------------------------------------------------------------------------
- function job_aftercast(spell, spellMap, eventArgs)
- --- Equip Back Weapons after Temper / Enspells
- if not spell.interrupted and state.Weapons.value ~= "None" then
- if skill_spells:contains(spell.english) then
- if player.equipment.main and sets.EnhWeapon and player.equipment.main == sets.EnhWeapon.main and player.equipment.main ~= sets.weapons[state.Weapons.value].main then
- handle_weapons()
- end
- end
- end
- end
- --------------------------------------------------------------------------
- --- SPELL MAP
- --------------------------------------------------------------------------
- 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
- end
- end
- function get_enfeeb_map(spell)
- return enfeeb_maps[spell.name]
- end
- --------------------------------------------------------------------------
- --- UPDATE COMBAT/MELEE FORM | JOB | STATUS FUNCTION
- --------------------------------------------------------------------------
- --- Melee Groups
- function update_melee_groups()
- classes.CustomMeleeGroups:clear()
- end
- --- Call Update
- function job_update(cmdParams, eventArgs)
- update_melee_groups()
- end
- --------------------------------------------------------------------------
- --- BUFF CHANGE FUNCTION
- --------------------------------------------------------------------------
- function job_buff_change(buff, gain)
- --- Roll Buff Gain
- if buff:startswith('Aftermath') then
- update_melee_groups()
- end
- --- Loss Notifications
- if buff == "Aftermath: Lv.3" and not gain then
- add_to_chat(28, '---- Aftermath Down ----')
- elseif buff:startswith('Food') and not gain then
- add_to_chat(28, '---- Food Off ----')
- end
- end
- --------------------------------------------------------------------------
- --- JOB STATE CHANGE
- --------------------------------------------------------------------------
- function job_state_change(stateField, newValue, oldValue)
- --- State Change on Weapon Switch
- if stateField == 'Weapons' then
- if newValue == 'Crocea' then
- autows = "Sanguine Blade"
- autowstp = 2000
- --- Bind WeaponSkills
- send_command('bind !q input /ws "Savage Blade" <t>')
- send_command('bind %q input /ws "Sanguine Blade" <t>')
- send_command('bind ^q input /ws "Chant du Cygne" <t>')
- send_command('bind pagedown input /ja "Gain-INT" <me>')
- elseif newValue == 'Murgleis' then
- autows = "Death Blossom"
- autowstp = 1000
- send_command('wait 5; input /lockstyleset 2')
- --- Bind WeaponSkills
- send_command('bind !q input /ws "Savage Blade" <t>')
- send_command('bind %q input /ws "Death Blossom" <t>')
- send_command('bind ^q input /ws "Chant du Cygne" <t>')
- send_command('bind pagedown input /ja "Gain-STR" <me>')
- elseif newValue == 'Naegling' then
- autows = "Savage Blade"
- autowstp = 1000
- send_command('wait 5; input /lockstyleset 2')
- --- Bind WeaponSkills
- send_command('bind %q input /ws "Savage Blade" <t>')
- send_command('bind ^q input /ws "Chant du Cygne" <t>')
- send_command('bind pagedown input /ja "Gain-STR" <me>')
- elseif newValue == 'None' then
- autowstp = 1000
- end
- end
- end
- --------------------------------------------------------------------------
- --- MELEE SET FUNCTION
- --------------------------------------------------------------------------
- function job_customize_melee_set(meleeSet)
- --- Low HP Rule
- if player.hp < 500 then
- meleeSet = set_combine(meleeSet, sets.defense.PDT)
- add_to_chat(28, '---- Low HP | Hyprid Gear ----')
- end
- return meleeSet
- end
- --------------------------------------------------------------------------
- --- IDLE SET FUNCTION
- --------------------------------------------------------------------------
- function job_customize_idle_set(idleSet)
- --- Refresh on Low MP
- if player.mpp < 51 and state.DefenseMode.value == 'None' then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- return idleSet
- end
- --------------------------------------------------------------------------
- --- CALL TICK
- --------------------------------------------------------------------------
- function job_tick()
- if check_shadows() then return true end
- if check_position() then return true end
- return false
- end
- --------------------------------------------------------------------------
- --- AUTO SHADOW FUNCTION
- --------------------------------------------------------------------------
- --- Count Shadows
- function has_shadows()
- if buffactive["Copy Image (4+)"] then
- return 4
- elseif buffactive["Copy Image (3)"] then
- return 3
- elseif buffactive["Copy Image (2)"] then
- return 2
- elseif buffactive["Copy Image"] then
- return 1
- else
- return 0
- end
- end
- --- Check Shadows
- function check_shadows()
- if not state.AutoShadowMode.value or areas.Cities:contains(world.area) then
- return false
- elseif handle_shadows() then
- return true
- else
- return false
- end
- end
- --- Handle Shadows
- function handle_shadows()
- local spell_recasts = windower.ffxi.get_spell_recasts()
- local currentshadows = has_shadows()
- if player.sub_job == 'NIN' then
- if currentshadows < 2 then
- if spell_recasts[339] < spell_latency then
- windower.chat.input('/ma "Utsusemi: Ni" <me>')
- tickdelay = os.clock() + 1.8
- return true
- elseif spell_recasts[338] < spell_latency then
- windower.chat.input('/ma "Utsusemi: Ichi" <me>')
- tickdelay = os.clock() + 2
- return true
- else
- return false
- end
- else
- return false
- end
- end
- end
- --------------------------------------------------------------------------
- --- AUTO POSITION FUNCTION
- --------------------------------------------------------------------------
- --- Check Position
- function check_position()
- if not state.AutoPositionMode.value or areas.Cities:contains(world.area) then
- return false
- elseif handle_position() then
- return true
- else
- return false
- end
- end
- --- Handle Position
- function handle_position()
- if player.status == "Engaged" and player.target.type == "MONSTER" then
- face_target(actor)
- end
- end
- --------------------------------------------------------------------------
- --- UTILITY FUNCTIONS
- --------------------------------------------------------------------------
- --- Lock off on Engage
- function job_status_change(newStatus, oldStatus, eventArgs)
- if newStatus == "Engaged" and player.target.type == "MONSTER" then
- send_command('input /lockon')
- end
- end
- --- Display States
- function display_current_job_state(eventArgs)
- display_current_caster_state()
- eventArgs.handled = true
- end
- --- Change Macro Book to BLM
- function select_default_macro_book()
- set_macro_page(1, 1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement