Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- 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. Please note that this file uses a modified Mote-Include.lua that has the following lines added:
- -- Line 50: state.WeaponSet = M{['description'] = 'WeaponSet'}
- -- Line 51: state.HasteLevel = M{['description'] = 'HasteLevel'}
- -- Line 581: if meleeSet[state.WeaponSet.current] then
- -- Line 582: meleeSet = meleeSet[state.WeaponSet.current]
- -- Line 583: mote_vars.set_breadcrumbs:append(state.WeaponSet.current)
- -- Line 584: end
- -- Line 585:
- -- Line 586: if meleeSet[state.HasteLevel.current] then
- -- Line 587: meleeSet = meleeSet[state.HasteLevel.current]
- -- Line 588: mote_vars.set_breadcrumbs:append(state.HasteLevel.current)
- -- Line 589: end
- -- Line 590:
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- state.Buff.Saboteur = buffactive.saboteur or false
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- -- Define offense sets here (cycled with F9)
- state.OffenseMode:options('Normal', 'MidAccuracy', 'HighAccuracy', 'Defense')
- -- Define Hybrid sets here (cycled with CTRL+F9)
- state.HybridMode:options('Normal', 'PhysicalDef', 'MagicalDef')
- -- Define Weapon sets here (cycled with Numpad 9)
- state.WeaponSet:options('MurgCol', 'MurgEnrich', 'MurgAmmu', 'VitiEnrich', 'VitiAmmu')
- -- Define Haste Level options here (cycled with Numpad 8)
- -- MaxHaste is equipment sets for capped equipment haste and capped magical haste (no JA haste)
- -- ThirtyHaste is equipment sets for having only Haste II and capped equipment haste
- -- NoHaste is equipment sets for fighting unbuffed, benefiting only from equipment haste
- state.HasteLevel:options('MaxHaste', 'ThirtyHaste', 'NoHaste')
- -- Define Casting Mode options here (cycled with CTRL+F11)
- -- Normal = Magic Burst nuking equipment set
- -- Free = Non-magic burst nuking set
- state.CastingMode:options('Normal', 'Free')
- -- Define idle sets here (cycled with CTRL+F12)
- -- Normal = Normal mix of refresh where available (non-weapons) and DT gear/regen gear in other slots
- -- DT = prefer DT gear over Refresh
- -- MaxRefresh = same as normal, but also uses Refresh weapons (causes TP loss when entering idle. only use for full-time Mage activities)
- state.IdleMode:options('Normal', 'DT', 'MaxRefresh')
- -- set default macro book and page on job change to RDM
- set_macro_page(1, 1)
- -- bind custom functions
- send_command('bind numpad9 gs c cycle WeaponSet')
- send_command('bind numpad8 gs c cycle HasteLevel')
- -------------------------
- -- Define Spell groups --
- -------------------------
- -- These spells benefit from increased Enhancing Magic Skill. Will use +Enhancing Magic Skill where available over Enhancing Magic Duration
- enhancing_magic_skill = S{'Temper', 'Temper II', 'Enfire', 'Enfire II', 'Enblizzard', 'Enblizzard II', 'Enaero', 'Enaero II', 'Enstone', 'Enstone II', 'Enthunder', 'Enthunder II', 'Enwater', 'Enwater II'}
- -- These spells do not benefit from additional Enhancing Magic Skill. Use maximum Enhancing Magic Duration equipment
- enhancing_magic_duration = S{'Barfire', 'Barfira', 'Barblizzard', 'Barblizzara', 'Baraero', 'Baraera', 'Barstone', 'Barstonra', 'Barthunder', 'Barthundra', 'Barwater', 'Barwatera', 'Barsleep', 'Barsleepra', 'Barpoison', 'Barpoisonra', 'Barparalyze', 'Barparalyzra', 'Barblind', 'Barblindra', 'Barsilence', 'Barsilencera', 'Barpetrify', 'Barpetra', 'Barvirus', 'Barvira', 'Haste', 'Haste II', 'Flurry', 'Flurry II', 'Blink', 'Regen', 'Regen II', 'Sandstorm', 'Rainstorm', 'Windstorm', 'Firestorm', 'Hailstorm', 'Thunderstorm', 'Voidstorm', 'Aurorastorm', 'Invisible', 'Sneak', 'Deodorize', 'Ice Spikes', 'Blaze Spikes', 'Shock Spikes'}
- -- These spells do not benefit from Enfeebling Magic Effect, or dSTAT. Maximize enfeebling duration.
- enfeebling_magic_duration = S{'Sleep', 'Sleepga', 'Sleep II', 'Break', 'Poison', 'Inundation', 'Dispel'}
- -- Add treasure hunter equipment to these enfeebling spells
- enfeebling_magic_treasure_hunter = S{'Dia', 'Diaga', 'Dia II'}
- -- These spells benefit from Enfeebling Magic Effect
- enfeebling_magic_effect = S{'Gravity', 'Gravity II', 'Addle', 'Addle II', 'Blind', 'Paralyze', 'Slow', 'Distract', 'Distract II', 'Distract III', 'Frazzle', 'Frazzle II', 'Frazzle III'}
- --------------------------------------------------------------------------------------------------------------------------------------------
- -- Note that the following spells are not included in these sets, as they have Relic armor augments and are individually overridden below:--
- -- Dia III, Slow II, Phalanx II, Blind II, Paralyze II, GAIN spells --
- -- Additionally, Phalanx is not located here due to the availability of Phalanx augments on Taeon and from Dark Matter. --
- -- Finally, Aquaveil is individually defined below due to the Amalric Coif effect. --
- --------------------------------------------------------------------------------------------------------------------------------------------
- end
- function user_unload()
- -- unbind custom functions when this lua is unloaded (job change)
- send_command('unbind numpad9')
- send_command('unbind numpad8')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- ------------------
- -- Precast Sets --
- ------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Chainspell'] = {body="Vitiation Tabard +3"}
- sets.precast.JA['Convert'] = {main="Murgleis"}
- sets.precast.JA['Sabotuer'] = {hands="Lethargy Gantherots +1"}
- -------------------------------
- -- Fast cast sets for spells --
- -------------------------------
- sets.precast.FC = {
- head="Atrophy Chapeau +3",
- neck="Voltsurge Torque",
- ear1="Loquacious Earring",
- ear2="Estoqueur's Earring",
- body="Vitiation Tabard +3",
- hands={ name="Helios Gloves", augments={'"Fast Cast"+5',}},
- ring1="Kishar Ring",
- ring2="Prolix Ring",
- back="Swith Cape",
- waist="Rumination Sash",
- legs="Ayanmo Cosciales +1",
- feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}}}
- -- sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
- -- Weaponskill sets
- sets.precast.WS = {}
- sets.precast.WS.Physical = {
- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+7 DEX+7',}},
- neck="Caro Necklace",
- ear1="Ishvara Earring",
- ear2="Sherida Earring",
- body="Jhakri Robe +2",
- hands="Atrophy Gloves +3",
- ring1="Shukuyu Ring",
- ring2="Apate Ring",
- back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
- waist="Chuq'aba Belt",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2"}
- sets.precast.WS.Physical.Fotia = set_combine(sets.precast.WS.Physical, {
- neck="Fotia Gorget",
- waist="Fotia Belt",
- legs={ name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+6 DEX+6',}},
- feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}}})
- sets.precast.WS.Physical.Fotia.Dex = set_combine(sets.precast.WS.Physical.Fotia, {
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}},
- ring1="Ilabrat Ring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}})
- sets.precast.WS.Physical.Fotia.Dex.Crit = set_combine(sets.precast.WS.Physical.Fotia.Dex, {
- head={ name="Taeon Chapeau", augments={'Accuracy+15 Attack+15','Crit. hit damage +2%',}},
- ear1="Dignitary's Earring",
- body={ name="Taeon Tabard", augments={'Accuracy+14 Attack+14','"Subtle Blow"+6','Crit. hit damage +2%',}},
- hands={ name="Taeon Gloves", augments={'Accuracy+19 Attack+19','Crit.hit rate+3','Crit. hit damage +3%',}}})
- sets.precast.WS.Physical.Fotia.Mnd = set_combine(sets.precast.WS.Physical.Fotia, {
- head={ name="Carmine Mask +1", augments={'Accuracy+12','DEX+12','MND+20',}},
- ear1="Regal Earring",
- body="Vitiation Tabard +3",
- ring1="Rufescent Ring",
- ring2="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','Weapon skill damage +10%','Damage taken-5%',}},
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2"})
- sets.precast.WS.Physical.Mnd = set_combine(sets.precast.WS.Physical, {
- ear2="Regal Earring",
- body="Vitiation Tabard +3",
- ring2="Rufescent Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','Weapon skill damage +10%','Damage taken-5%',}},
- waist="Chuq'aba Belt"})
- sets.precast.WS.Physical.Dex = set_combine(sets.precast.WS.Physical, {
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}},
- hands={ name="Taeon Gloves", augments={'Accuracy+19 Attack+19','Crit.hit rate+3','Crit. hit damage +3%',}},
- ring1="Ilabrat Ring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- legs={ name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+6 DEX+6',}},
- feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}}})
- sets.precast.WS.Physical.Ranged = set_combine(sets.precast.WS.Physical, {
- head="Atrophy Chapeau +3",
- neck="Marked Gorget",
- ear2="Infused Earring",
- body="Atrophy Tabard +3",
- hands="Atrophy Gloves +3",
- ring1="Ilabrat Ring",
- ring2="Paqichikaji Ring",
- waist="Yemaya Belt",
- legs="Atrophy Tights +2",
- feet="Atrophy Boots +2"})
- sets.precast.WS.Magical = {
- head="Ea Hat",
- neck="Mizukage-no-Kubikazari",
- ear1="Regal Earring",
- ear2="Friomisi Earring",
- body="Vitiation Tabard +3",
- hands="Ea Cuffs",
- ring1="Shukuyu Ring",
- ring2="Rufescent Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','Weapon skill damage +10%','Damage taken-5%',}},
- waist="Refoccilation Stone",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2"}
- sets.precast.WS.Magical.Int = set_combine(sets.precast.WS.Magical, {
- body="Jhakri Robe +2",
- hands="Ea Cuffs",
- ring2="Acumen Ring",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}}})
- -- 85% MND, fTP transfer, 5 hit
- sets.precast.WS['Requiescat'] = sets.precast.WS.Physical.Fotia.Mnd
- -- 80% DEX, fTP transfer, 3 hit, crit
- sets.precast.WS['Chant du Cygne'] = sets.precast.WS.Physical.Fotia.Dex.Crit
- -- 60% STR, fTP transfer, 5 hit
- sets.precast.WS['Vorpal Blade'] = sets.precast.WS.Physical.Fotia
- -- 50% STR 50% MND, fTP transfer, 3 hit
- sets.precast.WS['Swift Blade'] = sets.precast.WS.Physical.Fotia.Mnd
- -- 30% STR 50% MND
- sets.precast.WS['Death Blossom'] = sets.precast.WS.Physical.Mnd
- -- 50% STR 50% MND
- sets.precast.WS['Savage Blade'] = sets.precast.WS.Physical.Mnd
- -- 100% STR
- sets.precast.WS['Circle Blade'] = sets.precast.WS.Physical
- -- 100% STR
- sets.precast.WS['Flat Blade'] = sets.precast.WS.Physical
- -- 40% Str 40% Dex
- sets.precast.WS['Fast Blade'] = sets.precast.WS.Physical.Dex
- -- 30% STR 50% MND
- sets.precast.WS['Sanguine Blade'] = sets.precast.WS.Magical
- -- 40% STR 40% MND
- sets.precast.WS['Seraph Blade'] = sets.precast.WS.Magical
- -- 40% STR 40% MND
- sets.precast.WS['Shining Blade'] = sets.precast.WS.Magical
- -- 40% STR 40% INT
- sets.precast.WS['Red Lotus Blade'] = sets.precast.WS.Magical.Int
- -- 40% STR 40% INT
- sets.precast.WS['Burning Blade'] = sets.precast.WS.Magical.Int
- -- 100% Dex TP Scales Duration [Physical]
- sets.precast.WS['Wasp Sting'] = sets.precast.WS.Physical.Dex
- -- 40% DEX 40% INT TP scales FTP 1.0 to 2.5 [Magical, dINT]
- sets.precast.WS['Gust Slash'] = sets.precast.WS.Magical.Int
- -- 100% CHR TP Scales Success Chance [Physical]
- sets.precast.WS['Shadowstitch'] = sets.precast.WS.Physical
- -- 100% DEX TP scales Duration [Physical, Double benefit from ATK]
- sets.precast.WS['Viper Bite'] = sets.precast.WS.Physical.Dex
- -- 100% DEX TP scales fTP 1.0 to 2.875 [Magical, dINT]
- sets.precast.WS.Cyclone = sets.precast.WS.Magical.Int
- -- 100% MND TP scales MP stolen [Magical]
- sets.precast.WS['Energy Steal'] = sets.precast.WS.Magical
- -- 100% MND TP scales MP stolen [Magical]
- sets.precast.WS['Energy Drain'] = sets.precast.WS.Magical
- -- 40% DEX 40% CHR TP scales accuracy [Physical, fTP transfer]
- sets.precast.WS['Dancing Edge'] = sets.precast.WS.Physical.Fotia.Dex
- -- 40% DEX 40% AGI TP scales fTP 4.5 to 8.5 [Physical]
- sets.precast.WS['Shark Bite'] = sets.precast.WS.Physical.Fotia.Dex
- -- 50% DEX TP Scales Critical Hit Rate [Physical, fTP transfer]
- sets.precast.WS.Evisceration = sets.precast.WS.Physical.Fotia.Dex.Crit
- -- 40% DEX 40% INT TP Scales fTP 2.0 to 4.5 [Magical, dINT]
- sets.precast.WS['Aeolian Edge'] = sets.precast.WS.Magical.Int
- -- 85% AGI TP scales duration [Physical, fTP Transfer]
- sets.precast.WS.Exenterator = sets.precast.WS.Physical
- -- 40% STR 40% MND, TP scales fTP, Magical
- sets.precast.WS['Shining Strike'] = sets.precast.WS.Magical
- -- 40% STR 40% MND, TP scales fTP, Magical
- sets.precast.WS['Seraph Strike'] = sets.precast.WS.Magical
- -- 100% STR, TP scales chance to stun
- sets.precast.WS.Brainshaker = sets.precast.WS.Physical
- -- Restores MP to self, scales with fTP
- sets.precast.WS.Starlight = sets.precast.WS.Physical
- -- Restores MP to party, scales with fTP
- sets.precast.WS.Moonlight = sets.precast.WS.Physical
- -- 100% STR Reduces target INT by 10. Accuracy scales with fTP
- sets.precast.WS.Skullbreaker = sets.precast.WS.Physical
- -- 100% STR, crit, fTP scales accuracy
- sets.precast.WS['True Strike'] = sets.precast.WS.Physical
- -- 50% STR 50% MND, fTP scales damage
- sets.precast.WS.Judgment = sets.precast.WS.Physical.Mnd
- -- 70% MND 30% STR, fTP scales damage
- sets.precast.WS['Black Halo'] = sets.precast.WS.Physical.Mnd
- -- 50% STR, 50% MND, magical, inflicts Flash
- sets.precast.WS['Flash Nova'] = sets.precast.WS.Magical
- -- All ranged WSes are 50% AGI and 20% Str. Flaming arrow is Magical, but gear options aren't really different from Physical for RDM.
- sets.precast.WS['Flaming Arrow'] = sets.precast.WS.Physical.Ranged
- sets.precast.WS['Piercing Arrow'] = sets.precast.WS.Physical.Ranged
- sets.precast.WS['Dullinh Arrow'] = sets.precast.WS.Physical.Ranged
- sets.precast.WS.Sidewinder = sets.precast.WS.Physical.Ranged
- sets.precast.WS['Blast Arrow'] = sets.precast.WS.Physical.Ranged
- sets.precast.WS['Arching Arrow'] = sets.precast.WS.Physical.Ranged
- sets.precast.WS['Empyreal Arrow'] = sets.precast.WS.Physical.Ranged
- -- Midcast Sets
- sets.midcast.Cure = {
- head="Vanya Hood",
- neck="Nodens Gorget",
- ear1="Mendicant's Earring",
- ear2="Roundel Earring",
- body="Atrophy Tabard +3",
- hands="Kaykaus Cuffs +1",
- ring1="Haoma's Ring",
- ring2="Sirona's Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Cure" potency +10%',}},
- legs="Atrophy Tights +2",
- feet="Vanya Clogs"}
- sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {
- neck="Phalaina Locket",
- hands="Buremte Gloves",
- ring1="Kunaji Ring",
- ring2="Vocane Ring",
- waist="Chuq'aba Belt"})
- sets.midcast.Curaga = sets.midcast.Cure
- sets.midcast.Cursna = {
- ring1="Haoma's Ring",
- ring2="Haoma's Ring",
- back="Oretania's Cape +1",
- waist="Bishop's Sash",
- feet="Vanya Clogs"}
- sets.midcast.EnhancingSkill = {
- main="Pukulatmuj +1",
- sub="Pukulatmuj",
- head="Befouled Crown",
- neck="Enhancing Torque",
- ear1="Andoaa Earring",
- ear2="Augmenting Earring",
- body="Vitiation tabard +3",
- hands="Vitiation Gloves +3",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- back="Ghostfyre Cape",
- waist="Olympus Sash",
- legs="Atrophy Tights +2",
- feet="Lethargy Houseaux +1"}
- sets.midcast.EnhancingDuration = {
- head={ name="Telchine Cap", augments={'"Fast Cast"+5','Enh. Mag. eff. dur. +10',}},
- neck="Duelist's Torque",
- ear1="Andoaa Earring",
- body="Vitiation Tabard +3",
- hands="Atrophy Gloves +3",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Cure" potency +10%',}},
- legs={ name="Telchine Braconi", augments={'"Fast Cast"+5','Enh. Mag. eff. dur. +10',}},
- feet="Lethargy Houseaux +1"}
- sets.buff.ComposureOther = {
- head="Lethargy Chappel",
- body="Vitiation Tabard +3",
- hands="Atrophy Gloves +3",
- legs="Lethargy Fuseau +1",
- feet="Lethargy Houseaux +1"}
- sets.midcast.GainSpells = set_combine(sets.midcast.EnhancingDuration, {
- hands="Vitiation Gloves +3"})
- sets.midcast.Phalanx = set_combine(sets.midcast.EnhancingDuration, {
- head={ name="Taeon Chapeau", augments={'Phalanx +3',}},
- body={ name="Taeon Tabard", augments={'Phalanx +3',}},
- hands={ name="Taeon Gloves", augments={'Phalanx +3',}},
- legs={ name="Taeon Tights", augments={'Phalanx +3',}},
- feet={ name="Taeon Boots", augments={'"Counter"+3','Phalanx +3',}}})
- sets.midcast['Phalanx II'] = sets.midcast.Phalanx
- sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingDuration, {head="Amalric Coif +1"})
- sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3",
- legs="Lethargy Fuseau +1"})
- sets.midcast.ComposureOtherRefresh = set_combine(sets.midcast.EnhancingDuration, {
- head="Amalric Coif +1",
- body="Atrophy Tabard +3",
- hands="Atrophy Gloves +3",
- legs="Lethargy Fuseau +1",
- feet="Lethargy Houseaux +1"})
- sets.midcast.Stoneskin = {
- neck="Nodens Gorget",
- waist="Siegel Sash"}
- sets.midcast.EnfeeblingEffect = {
- ranged="Eletta Bow",
- ammo="Chapuli Arrow",
- head="Atrophy Chapeau +3",
- neck="Duelist's torque",
- ear1="Regal Earring",
- ear2="Dignitary's Earring",
- body="Lethargy Sayon +1",
- hands="Kaykaus Cuffs +1",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Cure" potency +10%',}},
- waist="Luminary Sash",
- legs="Chironic Hose",
- feet="Jhakri Pigaches +2"}
- sets.midcast.EnfeeblingDuration = set_combine(sets.midcast.EnfeeblingEffect, {
- body="Atrophy Tabard +3",
- ring1="Kishar Ring",
- ring2="Stikini Ring"})
- sets.midcast.EnfeeblingTreasureHunter = {
- ring1="Kishar Ring",
- waist="Chaac Belt"}
- sets.midcast['Dia III'] = set_combine(sets.midcast.EnfeeblingTreasureHunter, {head="Vitiation Chapeau +1"})
- sets.midcast['Slow II'] = set_combine(sets.midcast.EnfeeblingEffect, {head="Vitiation Chapeau +1"})
- sets.midcast['Paralyze II'] = set_combine(sets.midcast.EnfeeblingEffect, {})
- sets.midcast['Blind II'] = set_combine(sets.midcast.EnfeeblingEffect, {})
- sets.midcast['Bio III'] = set_combine(sets.midcast.EnfeeblingDuration, {})
- sets.midcast['Elemental Magic'] = {
- ranged="Eletta Bow",
- ammo="Chapuli Arrow",
- head="Ea Hat",
- neck="Mizukage-no-Kubikazari",
- ear1="Regal Earring",
- ear2="Friomisi Earring",
- body="Ea Houppelande",
- hands="Ea Cuffs",
- ring1="Locus Ring",
- ring2="Mujin Band",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
- waist="Refoccilation Stone",
- legs="Ea Slops",
- feet="Jhakri Pigaches +2"}
- sets.midcast['Elemental Magic'].Free = set_combine(sets.midcast['Elemental Magic'], {
- neck="Sanctity Necklace",
- body="Jhakri Robe +2",
- ring2="Acumen Ring",
- legs="Jhakri Slops +2",
- feet="Merlinic Crakows"})
- --sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
- -- head=empty,
- -- body="Twilight Cloak"})
- sets.midcast['Dark Magic'] = {
- ranged="Eletta Bow",
- ammo="Chapuli Arrow",
- head="Ea Hat",
- neck="Erra Pendant",
- ear1="Regal Earring",
- ear2="Friomisi Earring",
- body="Ea Houppelande",
- hands="Ea Cuffs",
- ring1="Locus Ring",
- ring2="Mujin Band",
- back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
- waist="Fucho-no-obi",
- legs="Ea Slops",
- feet="Merlinic Crakows"}
- sets.midcast['Dark Magic'].Free = set_combine(sets.midcast['Dark Magic'], {
- neck="Sanctity Necklace",
- body="Jhakri Robe +2",
- ring2="Acumen Ring",
- legs="Chironic Hose",
- feet="Merlinic Crakows"})
- sets.midcast.Stun = {
- head="Atrophy Chapeau +3",
- neck="Voltsurge Torque",
- ear1="Loquacious Earring",
- ear2="Estoqueur's Earring",
- body="Vitiation Tabard +3",
- hands={ name="Helios Gloves", augments={'"Fast Cast"+5',}},
- ring1="Kishar Ring",
- ring2="Stikini Ring",
- back="Swith Cape",
- waist="Rumination Sash",
- legs="Ayanmo Cosciales +1",
- feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}}}
- -- Enmity set for tanking
- sets.midcast['Blue Magic'] = {
- ear1="Friomisi Earring",
- body="Emet Harness",
- ring1="Petrov Ring",
- waist="Rumination Sash",
- legs="Carmine Cuisses +1",
- feet="Rager Ledelsens +1"}
- sets.buff.Saboteur = set_combine(sets.midcast.EnfeeblingEffect, {hands="Lethargy Gantherots +1"})
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {}
- -- Idle sets
- sets.idle = {
- head="Vitiation Chapeau +1", --2 Refresh
- neck="Twilight Torque", --5 DT
- ear1="Infused Earring", --1 Regen
- body="Jhakri Robe +2", --4 Refresh
- hands="Vitiation Gloves +3", --MEVA/MDB
- ring1="Defending Ring", --10 DT
- ring2="Warp Ring", --Convenience
- back="Moonbeam cape", --5 DT
- waist="Flume belt", --4 PDT
- legs="Carmine Cuisses +1", --Speed
- feet="Atrophy Boots +2"} --MEVA/MDB/Shield Block
- sets.idle.Town = set_combine(sets.idle, {
- body="Councilor's Garb"})
- sets.idle.DT = set_combine(sets.idle, {
- head="Ayanmo zucchetto +1", --2 DT
- body="Ayanmo corazza +1", --5 DT
- hands="Ayanmo manopolas +1", --2 DT
- ring2="Vocane Ring", --8 DT
- legs="Ayanmo Cosciales +1", --4 DT
- feet="Ayanmo gambieras +1"}) --2 DT
- -- Defense sets
- --sets.defense.PDT = {}
- --sets.defense.MDT = {}
- --sets.Kiting = {}
- sets.latent_refresh = {waist="Fucho-no-obi"}
- -- Engaged sets
- -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
- -- sets if more refined versions aren't defined.
- -- If you create a set with both offense and defense modes, the offense mode should be first.
- -- EG: sets.engaged.Dagger.Accuracy.Evasion
- -- Normal melee group
- sets.engaged = {
- ranged="Eletta Bow",
- ammo="Chapuli Arrow",
- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+7 DEX+7',}},
- neck="Anu Torque",
- ear1="Dedition Earring",
- ear2="Sherida Earring",
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}},
- hands="Chironic Gloves",
- ring1="Ilabrat Ring",
- ring2="Petrov Ring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- waist="Windbuffet Belt +1",
- legs={ name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+6 DEX+6',}},
- feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}}}
- sets.engaged.MurgCol = set_combine(sets.engaged, {
- main="Murgleis",
- sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
- sets.engaged.MurgCol.ThirtyHaste = set_combine(sets.engaged.MurgCol, {
- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
- hands={ name="Taeon Gloves", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','DEX+10',}},
- legs="Carmine Cuisses +1"})
- sets.engaged.MurgCol.NoHaste = set_combine(sets.engaged.MurgCol.ThirtyHaste, {
- ear1="Suppanomimi"})
- sets.engaged.MurgEnrich = set_combine(sets.engaged, {
- main="Murgleis",
- sub="Enriching Sword",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.MurgEnrich.ThirtyHaste = set_combine(sets.engaged.MurgEnrich, {
- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
- ear1="Suppanomimi",
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
- legs="Carmine Cuisses +1"})
- sets.engaged.MurgEnrich.NoHaste = sets.engaged.MurgEnrich.ThirtyHaste
- sets.engaged.MurgAmmu = set_combine(sets.engaged, {
- main="Murgleis",
- sub="Ammurapi Shield",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}})
- sets.engaged.MurgAmmu.ThirtyHaste = sets.engaged.MurgAmmuMaxHaste
- sets.engaged.MurgAmmu.NoHaste = sets.engaged.MurgAmmuMaxHaste
- sets.engaged.VitiEnrich = set_combine(sets.engaged, {
- main="Vitiation Sword",
- sub="Enriching Sword",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.VitiEnrich.ThirtyHaste = set_combine(sets.engaged.VitiEnrich, {
- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
- ear1="Suppanomimi",
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
- legs="Carmine Cuisses +1"})
- sets.engaged.VitiEnrich.NoHaste = sets.engaged.VitiEnrich.ThirtyHaste
- sets.engaged.VitiAmmu = set_combine(sets.engaged, {
- main="Vitiation Sword",
- sub="Ammurapi Shield"})
- sets.engaged.VitiAmmu.ThirtyHaste = sets.engaged.VitiAmmuMaxHaste
- sets.engaged.VitiAmmu.NoHaste = sets.engaged.VitiAmmuMaxHaste
- -- Mid Accuracy melee group
- sets.engaged.MidAccuracy = set_combine(sets.engaged, {
- head="Carmine Mask +1",
- ear1="Dignitary's Earring",
- body="Ayanmo Corazza +1",
- hands="Atrophy Gloves +3",
- feet="Carmine Greaves +1"})
- sets.engaged.MidAccuracy.MurgCol = set_combine(sets.engaged.MidAccuracy, {
- main="Murgleis",
- sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
- sets.engaged.MidAccuracy.MurgCol.ThirtyHaste = set_combine(sets.engaged.MidAccuracy.MurgCol, {
- ear2="Suppanomimi",
- hands={ name="Taeon Gloves", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','DEX+10',}},
- legs="Carmine Cuisses +1"})
- sets.engaged.MidAccuracy.MurgCol.NoHaste = sets.engaged.MidAccuracy.MurgCol.ThirtyHaste
- sets.engaged.MidAccuracy.MurgEnrich = set_combine(sets.engaged.MidAccuracy, {
- main="Murgleis",
- sub="Enriching Sword",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.MidAccuracy.MurgEnrich.ThirtyHaste = set_combine(sets.engaged.MidAccuracy.MurgEnrich, {
- ear2="Suppanomimi",
- hands="Ayanmo Manopolas +1",
- legs="Carmine Cuisses +1"})
- sets.engaged.MidAccuracy.MurgEnrich.NoHaste = sets.engaged.MidAccuracy.MurgEnrich.ThirtyHaste
- sets.engaged.MidAccuracy.MurgAmmu = set_combine(sets.engaged.MidAccuracy, {
- main="Murgleis",
- sub="Ammurapi Shield"})
- sets.engaged.MidAccuracy.MurgAmmu.ThirtyHaste = sets.engaged.MurgAmmu
- sets.engaged.MidAccuracy.MurgAmmu.NoHaste = sets.engaged.MurgAmmu
- sets.engaged.MidAccuracy.VitiEnrich = set_combine(sets.engaged.MidAccuracy, {
- main="Vitiation Sword",
- sub="Enriching Sword",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.MidAccuracy.VitiEnrich.ThirtyHaste = set_combine(sets.engaged.MidAccuracy.VitiEnrich, {
- ear2="Suppanomimi",
- hands="Ayanmo Manopolas +1",
- legs="Carmine Cuisses +1"})
- sets.engaged.MidAccuracy.VitiEnrich.NoHaste = sets.engaged.MidAccuracy.VitiEnrich.ThirtyHaste
- sets.engaged.MidAccuracy.VitiAmmu = set_combine(sets.engaged.MidAccuracy, {
- main="Vitiation Sword",
- sub="Ammurapi Shield",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.MidAccuracy.VitiAmmu.ThirtyHaste = sets.engaged.VitiAmmu
- sets.engaged.MidAccuracy.VitiAmmu.NoHaste = sets.engaged.VitiAmmu
- -- High Accuracy melee group
- sets.engaged.HighAccuracy = {
- head="Carmine Mask +1",
- neck="Decimus Torque",
- ear1="Dignitary's Earring",
- ear2="Regal Earring",
- body="Ayanmo Corazza +1",
- hands="Atrophy Gloves +3",
- ring1="Ilabrat Ring",
- ring2="Apate Ring",
- back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
- waist="Eschan Stone",
- legs="Carmine Cuisses +1",
- feet="Atrophy Boots +2"}
- sets.engaged.HighAccuracy.MurgCol = set_combine(sets.engaged.HighAccuracy, {
- main="Murgleis",
- sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
- sets.engaged.HighAccuracy.MurgCol.ThirtyHaste = sets.engaged.HighAccuracy.MurgCol
- sets.engaged.HighAccuracy.MurgCol.NoHaste = sets.engaged.HighAccuracy.MurgCol
- sets.engaged.HighAccuracy.MurgEnrich = set_combine(sets.engaged.HighAccuracy, {
- main="Murgleis",
- sub="Enriching Sword",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.HighAccuracy.MurgEnrich.ThirtyHaste = sets.engaged.HighAccuracy.MurgEnrich
- sets.engaged.HighAccuracy.MurgEnrich.NoHaste = sets.engaged.HighAccuracy.MurgEnrich
- sets.engaged.HighAccuracy.MurgAmmu = set_combine(sets.engaged.HighAccuracy, {
- main="Murgleis",
- sub="Ammurapi Shield"})
- sets.engaged.HighAccuracy.MurgAmmu.ThirtyHaste = sets.engaged.MurgAmmu
- sets.engaged.HighAccuracy.MurgAmmu.NoHaste = sets.engaged.MurgAmmu
- sets.engaged.HighAccuracy.VitiEnrich = set_combine(sets.engaged.HighAccuracy, {
- main="Vitiation Sword",
- sub="Enriching Sword",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.HighAccuracy.VitiEnrich.ThirtyHaste = sets.engaged.HighAccuracy.VitiEnrich
- sets.engaged.HighAccuracy.VitiEnrich.NoHaste = sets.engaged.HighAccuracy.VitiEnrich
- sets.engaged.HighAccuracy.VitiAmmu = set_combine(sets.engaged.HighAccuracy, {
- main="Vitiation Sword",
- sub="Ammurapi Shield",
- hands="Ayanmo Manopolas +1"})
- sets.engaged.HighAccuracy.VitiAmmu.ThirtyHaste = sets.engaged.VitiAmmu
- sets.engaged.HighAccuracy.VitiAmmu.NoHaste = sets.engaged.VitiAmmu
- -- Defense melee group
- sets.engaged.Defense = set_combine(sets.HighAccuracy, {
- head="Ayanmo Zucchetto +1",
- neck="Twilight Torque",
- body="Ayanmo Corazza +1",
- hands="Ayanmo Manopolas +1",
- ring1="Defending Ring",
- ring2="Vocane Ring",
- back="Moonbeam Cape",
- waist="Flume Belt",
- legs="Ayanmo Cosciales +1",
- feet="Ayanmo Gambieras +1"})
- sets.engaged.Defense.MurgCol = set_combine(sets.Defense, {
- main="Murgleis",
- sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
- sets.engaged.Defense.MurgEnrich = set_combine(sets.Defense, {
- main="Murgleis",
- sub="Enriching Sword"})
- sets.engaged.Defense.MurgAmmu = set_combine(sets.Defense, {
- main="Murgleis",
- sub="Ammurapi Shield"})
- sets.engaged.Defense.VitiEnrich = set_combine(sets.Defense, {
- main="Vitiation Sword",
- sub="Enriching Sword"})
- sets.engaged.Defense.VitiAmmu = set_combine(sets.Defense, {
- main="Vitiation Sword",
- sub="Ammurapi Shield"})
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Run after the default midcast() is done.
- -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if spell.skill == 'Enfeebling Magic' then
- if state.Buff.Saboteur and enfeebling_magic_effect:contains(spell.english) then
- equip(sets.buff.Saboteur)
- elseif state.Buff.Saboteur and enfeebling_magic_duration:contains(spell.english) then
- equip(sets.midcast.EnfeeblingDuration)
- elseif state.Buff.Saboteur and enfeebling_magic_treasure_hunter:contains(spell.english) then
- equip(sets.midcast.EnfeeblingTreasureHunter)
- elseif enfeebling_magic_effect:contains(spell.english) then
- equip(sets.midcast.EnfeeblingEffect)
- elseif enfeebling_magic_duration:contains(spell.english) then
- equip(sets.midcast.EnfeeblingDuration)
- elseif enfeebling_magic_treasure_hunter:contains(spell.english) then
- equip(sets.midcast.EnfeeblingTreasureHunter)
- end
- elseif spell.skill == 'Enhancing Magic' then
- if spell.english == "Refresh" then
- if buffactive.composure and spell.target.type == 'PLAYER' then
- equip(sets.buff.ComposureOtherRefresh)
- elseif buffactive.composure and spell.target.type == 'NPC' then
- equip(sets.buff.ComposureOtherRefresh)
- end
- elseif spell.english == "Refresh II" then
- if buffactive.composure and spell.target.type == 'PLAYER' then
- equip(sets.buff.ComposureOtherRefresh)
- elseif buffactive.composure and spell.target.type == 'NPC' then
- equip(sets.buff.ComposureOtherRefresh)
- end
- elseif spell.english == "Refresh III" then
- if buffactive.composure and spell.target.type == 'PLAYER' then
- equip(sets.buff.ComposureOtherRefresh)
- elseif buffactive.composure and spell.target.type == 'NPC' then
- equip(sets.buff.ComposureOtherRefresh)
- end
- elseif buffactive.composure and spell.target.type == 'PLAYER' then
- equip(sets.buff.ComposureOther)
- elseif buffactive.composure and spell.target.type == 'NPC' then
- equip(sets.buff.ComposureOther)
- elseif enhancing_magic_duration:contains(spell.english) then
- equip (sets.midcast.EnhancingDuration)
- elseif enhancing_magic_skill:contains(spell.english) then
- equip(sets.midcast.EnhancingSkill)
- elseif spell.english:startswith('Gain') then
- equip(sets.midcast.GainSpells)
- end
- elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
- equip(sets.midcast.CureSelf)
- end
- end
- function job_precast(spell, action, spellMap, eventArgs)
- if spellMap == 'Utsusemi' then
- if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
- cancel_spell()
- add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
- eventArgs.handled = true
- return
- elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
- send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_buff_change(buff,gain)
- if buff == "doom" then
- if gain then
- --equip(sets.buff.Doom)
- send_command('@input /p I am doomed! Please assist!')
- --disable('ring1','ring2','waist')
- else
- --enable('ring1','ring2','waist')
- --handle_equipping_gear(player.status)
- end
- 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
- return idleSet
- end
- -- Set eventArgs.handled to true if we don't want the automatic display to be run.
- function display_current_job_state(eventArgs)
- display_current_caster_state()
- eventArgs.handled = true
- end
- function job_aftercast(spell, action, spellMap, eventArgs)
- if not spell.interrupted then
- if spell.english == "Sleep II" then
- send_command('@timers c "Sleep II ['..spell.target.name..']" 112 down spells/00259.png')
- elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
- send_command('@timers c "Sleep ['..spell.target.name..']" 75 down spells/00253.png')
- elseif spell.english == "Break" then
- send_command('@timers c "Break ['..spell.target.name..']" 37 down spells/00255.png')
- end
- end
- end
- function job_handle_equipping_gear(playerStatus, eventArgs)
- end
- function job_update(cmdParams, eventArgs)
- handle_equipping_gear(player.status)
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement