Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -- Modified JUL 01 2018
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- state.Buff['Sleep'] = buffactive['Sleep'] or false
- state.Buff['Aurorastorm'] = buffactive['Aurorastorm'] or false
- state.Buff['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
- state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
- state.Buff['Divine Caress'] = buffactive['Divine Caress'] or false
- state.Buff['Reive Mark'] = buffactive['Reive Mark'] 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()
- state.CastingMode:options('Normal', 'Resistant')
- state.OffenseMode:options('None', 'Normal')
- select_default_macro_book()
- -- Gear Definitions
- gear.DarkRing = {name="Dark Ring"}
- gear.Reive = {name="Ygnas's Resolve +1"}
- gear.JPcape = {name="Mecistopins Mantle"}
- gear.HasteBelt = {name="Witful Belt"}
- gear.default.cure_waist = {name="Witful Belt"}
- gear.default.obi_waist = {name="Eschan Stone"}
- gear.default.obi_back = {name="Alaunus's Cape"}
- gear.default.cure_back = {name="Alaunus's Cape"}
- -- Melee Set, for the melee whm
- gear.MeleeHead = {name="Telchine Cap"}
- gear.MeleeBody = {name="Telchine Chasuble"}
- gear.MeleeHands = {name="Telchine Gloves"}
- gear.MeleeLegs = {name="Telchine Braconi"}
- gear.MeleeFeet = {name="Telchine Pigaches"}
- -- Artifact set
- -- For most whm, this set is unneccessary
- -- Artifact Head has cure potency, cure cast
- gear.AFHead = {name="Theophany Cap +2"}
- -- Artifact Body has enfeebling skill, cure potency
- gear.AFBody = {name="Theophany Briault +2"}
- -- Artifact Hands have healing skill
- gear.AFHands = {name="Theophany Mitts +2"}
- -- Artifact Legs have divine skill, regen duration, cursna
- gear.AFLegs = {name="Theophany Pantaloons +2"}
- -- Artifact Feet have enhancing skill, enfeebling skill, spell interruption -25%
- gear.AFFeet = {name="Theophany Duckbills +2"}
- -- Relic set
- -- Hands are unneccessary
- -- Relic Head has cure cast, aug: Devotion
- gear.RHead = {name="Piety Cap +3"}
- -- Relic Body has regen potency, aug: Benediction
- gear.RBody = {name="Piety Briault +3"}
- -- Relic Hands have banish potency, divine skill, enfeebling skill, aug: Martyr
- gear.RHands = {name="Piety Mitts +3"}
- -- Relic Legs have healing skill, enhancing skill, barspell +30, aug: Shellra
- gear.RLegs = {name="Piety Pantaloons +2"}
- -- Relic Feet have enhancing skill, enfeebling skill, cure potency, aug: Protectra
- gear.RFeet = {name="Piety Duckbills +3"}
- -- Empyrean set
- -- Empyrean set has a unique set bonus which applies with as little as 2 pieces.
- -- This entire set should be acquired and +2.
- -- Empyrean Head is for aug: Divine Veil
- gear.EmpHead = {name="Ebers Cap +1"}
- -- Empyrean Body is for aug: Afflatus Solace
- gear.EmpBody = {name="Ebers Bliaud +1"}
- -- Empyrean Hands are for regen duration, aug: divine caress
- gear.EmpHands = {name="Ebers Mitts +1"}
- -- Empyrean Legs are for mp return from cure
- gear.EmpLegs = {name="Ebers Pantaloons +1"}
- -- Empyrean Feet are for aug: Auspice
- gear.EmpFeet = {name="Ebers Duckbills +1"}
- -- Gendewitha Set
- -- This entire set should be acquired and aug for DT, either NQ or +1
- -- Gendewitha head is for DT, Cure potency
- -- Best aug is cure potency
- gear.GHead = {name="Gendewitha Caubeen +1"}
- -- Gendewitha body is for DT
- gear.GBody = {name="Gendewitha Bliaut +1"}
- -- Gendewitha hands is for DT, Precast fast cast, Midcast recast
- gear.GHands = {name="Gendewitha Gages +1"}
- -- Gendewitha legs is for DT, Precast song cast
- gear.GLegs = {name="Gendewitha Spats +1"}
- -- Gendewitha feet is for DT, cursna
- gear.GFeet = {name="Gendewitha Galoshes +1"}
- -- Telchine set
- -- Many augs are available for this set, multiple sets are an option
- -- This set assumes max Fast Cast and Enhancing duration augs on all pieces
- -- Telchine head is for M.Acc
- gear.THeadEnh = {name="Telchine Cap", augments={'Enh. Mag. eff. dur. +10'}}
- -- Telchine body is for Enhancing skill+12, Regen duration +12
- gear.TBodyEnh = {name="Telchine Chasuble", augments={'Enh. Mag. eff. dur. +10'}}
- -- Telchine hands is for cure potency
- gear.THandsEnh = {name="Telchine Gloves", augments={'Enh. Mag. eff. dur. +10'}}
- -- Telchine legs is for MAB+15, DA+3
- gear.TLegsEnh = {name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +10'}}
- -- Telchine feet is for precast song cast
- gear.TFeetEnh = {name="Telchine Pigaches", augments={'Enh. Mag. eff. dur. +10'}}
- -- Vanya set
- -- Vanya head is for conserve mp, cure pot, mdt-
- -- Path D aug for precast fc and haste
- gear.VHead = {name="Vanya Hood"}
- -- Vanya body is for m.acc, divine skill, enfeebling skill, dt-
- gear.VBody = {name="Vanya Robe"}
- -- Vanya hands is for singing skill
- gear.VHands = {name="Vanya Cuffs"}
- -- Vanya legs is for m.acc, conserve mp
- gear.VLegs = {name="Vanya Slops"}
- -- Vanya feet is for healing skill, cure pot, cursna
- gear.VFeet = {name="Vanya Clogs"}
- -- Chironic set
- -- Chironic head is for acc, mdt, aquaveil
- gear.CHead = {name="Chironic Hat"}
- -- Chironic body is for
- --gear.CBody = {name="Chironic"}
- -- Chironic hands is for acc, mab, enhancing skill, enm-, spell interruption-
- gear.CHands = {name="Chironic Gloves"}
- -- Chironic legs is for enfeebling skill, cure pot, immunobreak
- gear.CLegs = {name="Chironic Hose"}
- -- Chironic feet is for atk, mab, divine skill, enm-, pdt
- gear.CFeet = {name="Chironic Slippers"}
- -- Kaykaus set
- -- Kaykaus head is for m.acc, healing skill, cure pot, mdt
- gear.KHead = {name="Kaykaus Mitra"}
- -- Kaykaus body is for acc, m.acc, refresh, cure potII
- gear.KBody = {name="Kaykaus Bliaut"}
- -- Kaykaus hands is for m.acc, enfeebling skill, enm-, cure pot
- gear.KHands = {name="Kaykaus Cuffs"}
- -- Kaykaus legs is for m.atk, divine skill, fc, cure pot
- gear.KLegs = {name="Kaykaus Tights"}
- -- Kaykaus feet is for enhancing skill, enm-, conserve mp, cure pot
- gear.KFeet = {name="Kaykaus Boots"}
- -- Ayanmo set
- -- Ayanmo head is for
- gear.AyaHead = {name="Ayanmo Zuccheto +1"}
- -- Ayanmo body is for
- gear.AyaBody = {name="Ayanmo Corazza +1"}
- -- Ayanmo hands is for
- gear.AyaHands = {name="Ayanmo Manopolas +1"}
- -- Ayanmo legs is for precast fc and haste
- gear.AyaLegs = {name="Ayanmo Cosciales +2"}
- -- Ayanmo feet is for
- gear.AyaFeet = {name="Ayanmo Gambieras +1"}
- -- Inyanga set
- -- Inyanga head is for
- gear.IHead = {name="Inyanga +2"}
- -- Inyanga body is for precast precast fc and haste
- gear.IBody = {name="Inyanga Jubbah +2"}
- -- Inyanga hands is for
- gear.IHands = {name="Inyanga +2"}
- -- Inyanga legs is for precast haste and fc
- gear.ILegs = {name="Inyanga Shalwar +2"}
- -- Inyanga feet is for
- gear.IFeet = {name="Inyanga +2"}
- -- Additional local binds
- -- F10, F11, F12 are occupied by default as follows:
- -- f10 reset DefenseMode
- -- ^f10 DefenseMode Physical
- -- !f10 DefenseMode Magical
- -- f11 toggle CP
- -- ^f11 toggle Kiting
- -- !f11 EquipStop
- -- f12 update user
- -- ^f12 IdleMode
- send_command('bind f9 gs c cycle CastingMode')
- send_command('bind !f9 gs c cycle OffenseMode')
- send_command('bind ^` input /ma "Reraise IV" <me>')
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind ^`')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Special sets (required by rules)
- --------------------------------------
- -- Globally defined sets
- sets.Kiting = {feet="Herald's Gaiters"}
- sets.CP = {back=gear.JPcape}
- -- vm0d's Custom Sets
- -- Sets to augment the Idle set
- sets.latent_refresh = {waist="Fucho-no-obi"}
- sets.DayRefresh = {head="Befouled Crown",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
- sets.NightRefresh = {head="Befouled Crown",legs="Assiduity Pants +1",hands="Serpentes Cuffs"}
- sets.ExtraRegen = {neck="Sanctity Necklace",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- sets.ExtraRefresh = {head="Befouled Crown",legs="Assiduity Pants +1"}
- sets.SelfRefresh = {back="Grapevine Cape",waist="Gishdubar Sash"}
- sets.Sanction = {ring1="Balrahn's Ring"}
- sets.Roll = {ring1="Roller's Ring"}
- sets.poison = {back="Taster's Cape"}
- sets.Aries = {back="Aries Mantle"}
- sets.ProSh = {ring1="Sheltered Ring"}
- sets.ObiCure = {back="Twilight Cape",waist="Hachirin-no-Obi"}
- -- Sets that augment various sets
- sets.Moonshade = {ear2="Moonshade Earring"}
- -- Normal Offense mode locked weapon set
- sets.Offense = {main="Yagrush",sub="Culminus"}
- -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
- sets.buff['Afflatus Solace'] = {body=gear.EmpBody}
- sets.buff['Divine Caress'] = {hands=gear.EmpHands,back="Mending Cape"}
- sets.buff['Reive Mark'] = {neck=gear.Reive}
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Fast cast sets for spells
- sets.precast.FC = {main="Nibiru Cudgel",sub="Chanter's Shield",ammo="Impatiens",
- head=gear.VHead,neck="Orunmila's Torque",ear1="Enchanter Earring +1",ear2="Loquacious Earring",
- body=gear.IBody,hands=gear.GHands,ring1="Kishar Ring",ring2="Veneficium Ring",
- back="Perimede Cape",waist="Witful Belt",legs=gear.AyaLegs,feet="Regal Pumps +1"}
- sets.precast['Enhancing Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.Stoneskin = set_combine(sets.precast.FC, {head="Umuthi Hat"})
- sets.precast['Healing Magic'] = set_combine(sets.precast.FC, {legs=gear.EmpLegs})
- sets.precast.Cure = set_combine(sets.precast['Healing Magic'], {main="Vadose Rod",sub="Genbu's Shield",ear2="Mendicant's Earring"})
- sets.precast.StatusRemoval = set_combine(sets.precast.FC['Healing Magic'], {})
- -- Precast sets to enhance JAs
- sets.precast.JA.Benediction = {body=gear.RBody}
- sets.precast.JA.Devotion = {body=gear.RHead}
- --sets.precast.JA.Martyr = {body=gear.RHands}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {
- head=gear.GHead,
- body=gear.GBody,hands=gear.GHands,
- legs=gear.GLegs,feet=gear.GFeet}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- head=gear.MeleeHead,neck="Fotia Gorget",ear1="Steelflash Earring",ear2="Bladeborn Earring",
- body=gear.MeleeBody,hands=gear.MeleeHands,ring1="Petrov Ring",ring2="Rajas Ring",
- back="Kayapa Cape",waist="Fotia Belt",legs=gear.MeleeLegs,feet=gear.MeleeFeet}
- -- Hexa Strike
- -- Delivers a sixfold attack. Critical hit chance varies with TP.
- -- 30% STR / 30% MND
- -- This weaponskill has its fTP transferred across all hits, making Elemental Gorgets and Elemental Belts excellent neck and waist gear options.
- sets.precast.WS['Hexa Strike'] = set_combine(sets.precast.WS, {})
- -- Realmrazer
- -- Delivers a sevenfold attack. Accuracy varies with TP.
- -- 73% MND mod on 1st merit, +3% for 2nd-5th merits. 85% MND mod at 5/5.
- -- This weaponskill has its fTP transferred across all hits, making Elemental Gorgets and Elemental Belts excellent neck and waist gear options.
- sets.precast.WS['Realmrazer'] = set_combine(sets.precast.WS, {})
- -- Flash Nova
- -- Delivers light elemental damage. Additional effect: Flash. Chance of effect varies with TP.
- -- 50% STR / 50% MND, (pINT-mINT)/2 + 8
- sets.precast.WS['Flash Nova'] = {ammo="Hydrocera",
- head=gear.THeadEnh,neck="Fotia Gorget",ear1="Friomisi Earring",ear2="Novio Earring",
- body=gear.TBodyEnh,hands=gear.THandsEnh,ring1="Shiva Ring +1",ring2="Arvina Ringlet +1",
- back="Toro Cape",waist="Fotia Belt",legs=gear.TLegsEnh,feet=gear.TFeetEnh}
- -- Dagan
- -- 15% MP & 22% HP recovered @ 1000TP, 22% MP & 33% HP @ 2000TP, 35% MP & 52% HP @ 3000TP
- sets.precast.WS['Dagan'] = {ammo="Hydrocera",
- head=gear.EmpHead,neck="Fotia Gorget",ear1="Andoaa Earring",ear2="Loquacious Earring",
- body=gear.EmpBody,hands=gear.EmpHands,ring1="Metamorph Ring +1",ring2="Zodiac Ring",
- back="Twilight Cape",waist="Fotia Belt",legs=gear.RLegs,feet=gear.EmpFeet}
- -- Moonlight restores floor(Club Skill × 0.11) × Multiplier (2.25 @ 1000TP/3.5 @ 2000TP/4.75 @ 3000TP)
- -- WHM99 capped club skill base 404, merits 16, skill 242 weapon: total 662. base multiplier = 72.82mp
- sets.precast.WS['Moonlight'] = {neck="Fotia Gorget",ear1="Sanare Earring",waist="Fotia Belt"}
- --------------------------------------
- -- Midcast Sets
- --------------------------------------
- -- Base fast recast for spells
- sets.midcast.FastRecast = {main="Luckitoo",sub="Chanter's Shield",ammo="Incantor Stone",
- head=gear.VHead,neck="Orunmila's Torque",ear1="Enchanter Earring +1",ear2="Loquacious Earring",
- body=gear.IBody,hands="Fanatic Gloves",ring1="Kishar Ring",ring2="Prolix Ring",
- back="Alaunus's Cape",waist="Witful Belt",legs=gear.AyaLegs,feet=gear.TFeetEnh}
- -- Cure Sets
- sets.midcast.Cure = {main="Raetic Rod",sub="Sors Shield",ammo="Hydrocera",
- head=gear.GHead,neck="Incanter's Torque",ear1="Novia Earring",ear2="Glorious Earring",
- body=gear.EmpBody,hands=gear.AFHands,ring1="Kuchekula Ring",ring2="Sirona's Ring",
- back="Alaunus's Cape",waist=gear.HasteBelt,legs=gear.EmpLegs,feet=gear.RFeet}
- sets.midcast.CureSolace = set_combine(sets.midcast.Cure, {})
- sets.midcast.CureMelee = set_combine(sets.midcast.Cure, {})
- sets.midcast.Cursna = set_combine(sets.midcast.FastRecast, {main="Yagrush",
- hands="Fanatic Gloves",ring2="Haoma's Ring",
- back="Alaunus's Cape",legs=gear.AFLegs,feet=gear.GFeet})
- sets.midcast.StatusRemoval = set_combine(sets.midcast.FastRecast, {main="Yagrush"})
- -- Buff Sets
- -- White Mage has C+ rating in enhancing magic, at 99 cap skill is 378
- -- 16 skill in merits raises the total to 394
- -- Optionally, Light arts adds 26 skill to raise the total to 420
- sets.midcast['Enhancing Magic'] = set_combine(sets.midcast.FastRecast, {main="Gada",
- head=gear.THeadEnh,body=gear.TBodyEnh,hands=gear.THandsEnh,legs=gear.TLegsEnh,feet=gear.TFeetEnh})
- sets.midcast['Aquaveil'] = set_combine(sets.midcast['Enhancing Magic'], {main="Vadose Rod",head=gear.ChiHead,waist="Emphatikos Rope"})
- -- WHM base MND ~90.
- -- If ((Enhancing Magic Skill ÷ 3) + MND) ≥ 130 [base whm stats: 394/3 + 90 = 221 and 221 > 130],
- -- then (Enhancing Magic Skill + 3×MND - 190) = Stoneskin strength [base whm stats: (380 + 3x90 - 190) = 385 Stoneskin strength]
- -- Stoneskin caps at 350 HP absorbed, therefore WHM need only use Stoneskin enhancing gear.
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {neck="Stone Gorget",ear1="Earthcry Earring",waist="Siegel Sash",legs="Haven Hose"})
- -- Phalanx reaches potency cap at 500 Enhancing Magic Skill
- -- 106 or 80 (SJ SCH+Light Art) skill needed to reach cap
- sets.midcast.Phalanx = set_combine(sets.midcast['Enhancing Magic'], {
- neck="Incanter's Torque",ear1="Augmenting Earring",ear2="Andoaa Earring",ring2="Stikini Ring",back="Mending Cape",waist="Olympus Sash"})
- -- Elemental Barspell reaches potency cap at 500 Enhancing Magic Skill
- -- 106 or 80 (SJ SCH+Light Art) skill needed to reach cap
- -- Relic legs add resistance beyond the cap
- -- Beneficus adds Magic Defense Bonus +5
- -- Empyrean body has Afflatus Solace: Magic Defense Bonus +
- -- Empyrean set will occasionally annul dmg (+2~10%)
- sets.midcast.BarElement = set_combine(sets.midcast['Enhancing Magic'], {main="Beneficus",
- head=gear.EmpHead,neck="Incanter's Torque",ear1="Augmenting Earring",ear2="Andoaa Earring",
- body=gear.EmpBody,hands=gear.EmpHands,ring2="Stikini Ring",
- back="Alaunus's Cape",legs=gear.RLegs,feet=gear.EmpFeet})
- -- Status Barspell (likely) reaches potency cap at 500 Enhancing Magic Skill
- -- 106 or 80 (SJ SCH+Light Arts) skill needed to reach cap
- sets.midcast.BarStatus = set_combine(sets.midcast['Enhancing Magic'], {
- neck="Incanter's Torque",ear1="Augmenting Earring",ear2="Andoaa Earring",ring2="Stikini Ring",back="Mending Cape",waist="Olympus Sash"})
- sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {main="Bolelabunga",sub="Thuellaic Ecu +1",hands=gear.EmpHands,legs=gear.AFLegs})
- sets.midcast.Auspice = set_combine(sets.midcast['Enhancing Magic'], {feet=gear.EmpFeet})
- -- Boost spells reach potency cap at 500 Enhancing Magic Skill
- -- 106 or 80 (SJ SCH+Light Art) skill needed to reach cap
- sets.midcast.Boost = set_combine(sets.midcast['Enhancing Magic'], {
- neck="Incanter's Torque",ear1="Augmenting Earring",ear2="Andoaa Earring",ring2="Stikini Ring",back="Mending Cape",waist="Olympus Sash"})
- sets.midcast.Protectra = set_combine(sets.midcast['Enhancing Magic'], {ring1="Sheltered Ring",feet=gear.RFeet})
- sets.midcast.Shellra = set_combine(sets.midcast['Enhancing Magic'], {ring1="Sheltered Ring",legs=gear.RLegs})
- -- Currently, these spells have no augmenting gear, therefore need not be defined individually
- --sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {})
- --sets.midcast.Haste = set_combine(sets.midcast['Enhancing Magic'], {})
- --sets.midcast.Flurry = set_combine(sets.midcast['Enhancing Magic'], {})
- --sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {})
- -- Offensive Magic Sets
- sets.midcast.Dia = set_combine(sets.midcast.FastRecast, {main="Dia Wand"})
- sets.midcast['Divine Magic'] = {main="Gada",sub="Thuellaic Ecu +1",ammo="Hydrocera",
- head=gear.CHead,neck="Incanter's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
- body=gear.AFBody,hands=gear.RHands,ring1="Globidonta Ring",ring2="Metamorph Ring +1",
- back="Alaunus's Cape",waist="Ovate Rope",legs=gear.AFLegs,feet=gear.CFeet}
- sets.midcast.Repose = {main="Gada",sub="Thuellaic Ecu +1",ammo="Hydrocera",
- head=gear.CHead,neck="Incanter's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
- body=gear.AFBody,hands=gear.RHands,ring1="Globidonta Ring",ring2="Metamorph Ring +1",
- back="Alaunus's Cape",waist="Ovate Rope",legs=gear.AFLegs,feet=gear.CFeet}
- sets.midcast['Dark Magic'] = {main="Gada",sub="Thuellaic Ecu +1",ammo="Hydrocera",
- head=gear.CHead,neck="Incanter's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
- body=gear.AFBody,hands=gear.CHands,ring1="Sangoma Ring",ring2="Metamorph Ring +1",
- back="Alaunus's Cape",waist="Ovate Rope",legs=gear.CLegs,feet=gear.AFFeet}
- sets.midcast['Enfeebling Magic'] = {main="Gada",sub="Thuellaic Ecu +1",ammo="Hydrocera",
- head=gear.CHead,neck="Incanter's Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
- body=gear.AFBody,hands=gear.RHands,ring1="Kishar Ring",ring2="Metamorph Ring +1",
- back="Alaunus's Cape",waist="Ovate Rope",legs=gear.CLegs,feet=gear.AFFeet}
- --proper banish set
- --sets.midcast.Banish = set_combine(sets.midcast['Divine Magic'], {main="Mes'yohi Rod",
- --head="Ipoca Beret", neck="Jokushu Chain", hands=gear.RHands, cape="Disperser's Cape"})
- sets.midcast.Banish = set_combine(sets.midcast['Divine Magic'], {main="Mes'yohi Rod",hands=gear.RHands})
- --------------------------------------
- -- Idle sets
- --------------------------------------
- -- Sets to return to when not performing an action.
- -- if you won't be in danger of taking dmg and you are in a caster party {body="Anhur Robe"}
- -- normal circumstances {body=gear.GBody}
- sets.idle = {main="Bolelabunga",sub="Genbu's Shield",ammo="Homiliary",
- head=gear.GHead,neck="Loricate Torque +1",ear1="Ethereal Earring",ear2="Sanare Earring",
- body=gear.GBody,hands=gear.GHands,ring1=gear.DarkRing,ring2="Defending Ring",
- back="Solemnity Cape",waist="Slipor Sash",legs=gear.GLegs,feet=gear.GFeet}
- sets.idle.PDT = set_combine(sets.idle, {})
- sets.idle.MDT = set_combine(sets.idle, {})
- sets.idle.Town = set_combine(sets.idle, {main="Yagrush",sub="Genbu's Shield",feet="Herald's Gaiters"})
- sets.idle.Weak = set_combine(sets.idle, {})
- -- Resting sets
- sets.resting = set_combine(sets.idle, sets.ExtraRefresh)
- -- 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
- -- Basic set, Main and sub are defined earlier and locked if Offense mode is normal
- sets.engaged = set_combine(sets.Offense, {ammo="Hasty Pinion +1",
- head=gear.MeleeHead,neck="Lissome Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
- body=gear.MeleeBody,hands=gear.MeleeHands,ring1="Petrov Ring",ring2="Rajas Ring",
- back="Kayapa Cape",waist=gear.HasteBelt,legs=gear.MeleeLegs,feet=gear.MeleeFeet})
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
- function job_precast(spell, action, spellMap, eventArgs)
- if spell.english == "Paralyna" and buffactive.Paralyzed then
- -- no gear swaps if we're paralyzed, to avoid blinking while trying to remove it.
- eventArgs.handled = true
- end
- end
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.type:lower() == 'weaponskill' then
- if (player.tp > 1749 and player.tp < 2000) or (player.tp > 2749 and player.tp < 3000) then
- equip(sets.Moonshade)
- end
- end
- end
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if spell.action_type == 'Magic' then
- -- Apply Divine Caress boosting items as highest priority over other gear, if applicable.
- if spellMap == 'StatusRemoval' and buffactive['Divine Caress'] then
- equip(sets.buff['Divine Caress'])
- end
- if spellMap == 'Cure' and (buffactive['Aurorastorm'] or world.weather_element == 'Light' or world.day_element == 'Light') then
- equip(sets.ObiCure)
- end
- if spellMap == 'Refresh' and spell.target.type == 'SELF' then
- equip(sets.SelfRefresh)
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when a player gains or loses a buff.
- -- buff == buff gained or lost
- -- gain == true if the buff was gained, false if it was lost.
- function job_buff_change(buff, gain)
- -- Check if we're in a Reive
- if buff == "Reive Mark" then
- if player.inventory[sets.buff['Reive Mark']] or player.wardrobe[sets.buff['Reive Mark']] or player.wardrobe2[sets.buff['Reive Mark']] or player.wardrobe3[sets.buff['Reive Mark']] or player.wardrobe4[sets.buff['Reive Mark']] then
- if gain then
- equip(sets.buff['Reive Mark'])
- disable('neck')
- elseif not gain then
- enable('neck')
- status_change(player.status)
- end
- end
- end
- end
- -- Handle notifications of general user state change.
- function job_state_change(stateField, newValue, oldValue)
- -- Lock gear that affects TP
- if stateField == 'Offense Mode' then
- if newValue == 'Normal' then
- equip(sets.Offense)
- disable('main','sub','range')
- else
- enable('main','sub','range')
- end
- end
- -- Equip capacity point gear
- if stateField == 'CP' then
- if newValue ~= false then
- equip(sets.CP)
- disable('back','ring1')
- else
- enable('back','ring1')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- -- Custom spell mapping.
- function job_get_spell_map(spell, default_spell_map)
- if spell.action_type == 'Magic' then
- if spellMap == 'Cure' and player.status == 'Engaged' then
- return "CureMelee"
- elseif spellMap == 'Cure' and state.Buff['Afflatus Solace'] then
- return "CureSolace"
- end
- end
- end
- -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
- function job_handle_equipping_gear(playerStatus, eventArgs)
- end
- function customize_idle_set(idleSet)
- if player.hpp < 80 and state.DefenseMode.value == 'None' then
- idleSet = set_combine(idleSet, sets.ExtraRegen)
- end
- if player.mpp < 86 and state.DefenseMode.value == 'None' then
- if world.time >= (18*60) or world.time <= (6*60) then
- idleSet = set_combine(idleSet, sets.NightRefresh)
- else
- idleSet = set_combine(idleSet, sets.DayRefresh)
- end
- end
- if areas.TOAU:contains(world.area) then
- idleSet = set_combine(idleSet, sets.Sanction)
- end
- if buffactive['Poison'] and state.DefenseMode.value == 'None' then
- idleSet = set_combine(idleSet, sets.poison)
- end
- if player.mpp < 51 and state.DefenseMode.value == 'None' then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- if buffactive["Dancer's Roll"] or buffactive["Evoker's Roll"] or buffactive["Corsair's Roll"] or buffactive["Bolter's Roll"] then
- idleSet = set_combine(idleSet, sets.Roll)
- end
- if buffactive["Fighter's Roll"] or buffactive["Rogue's Roll"] or buffactive["Hunter's Roll"] or buffactive["Chaos Roll"] then
- idleSet = set_combine(idleSet, sets.Roll)
- end
- if buffactive["Wizard's Roll"] or buffactive["Warlock's Roll"] or buffactive["Caster's Roll"] or buffactive["Courser's Roll"] then
- idleSet = set_combine(idleSet, sets.Roll)
- end
- if buffactive["Samurai Roll"] or buffactive["Blitzer's Roll"] or buffactive["Tactician's Roll"] or buffactive["Miser's Roll"] then
- idleSet = set_combine(idleSet, sets.Roll)
- end
- if buffactive['Sleep'] then
- idleSet = set_combine(idleSet, sets.Aries)
- end
- if not buffactive['Protect'] or not buffactive['Shell'] then
- idleSet = set_combine(idleSet, sets.ProSh)
- end
- return idleSet
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- if cmdParams[1] == 'user' and not areas.Cities:contains(world.area) then
- local needsArts =
- player.sub_job:lower() == 'sch' and
- not buffactive['Light Arts'] and
- not buffactive['Addendum: White'] and
- not buffactive['Dark Arts'] and
- not buffactive['Addendum: Black']
- if not buffactive['Afflatus Solace'] and not buffactive['Afflatus Misery'] then
- if needsArts then
- send_command('@input /ja "Afflatus Solace" <me>;wait 1.2;input /ja "Light Arts" <me>')
- else
- send_command('@input /ja "Afflatus Solace" <me>')
- end
- end
- end
- end
- -- Function to display the current relevant user state when doing an update.
- function display_current_job_state(eventArgs)
- local msg = 'White Mage'
- if state.CombatForm.has_value then
- msg = msg .. ' (' .. state.CombatForm.value .. ')'
- end
- msg = msg .. ', Magic: ' .. state.CastingMode.value
- msg = msg .. ', Offense: ' .. state.OffenseMode.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 ON'
- end
- if state.CP.value == true then
- msg = msg .. ', CP ON'
- end
- add_to_chat(122, msg)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book
- set_macro_page(1, 3)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement