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.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- indi_timer = ''
- indi_duration = 237
- 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.OffenseMode:options('None', 'Normal')
- state.CastingMode:options('Normal', 'Resistant')
- state.IdleMode:options('Normal', 'PDT')
- select_default_macro_book()
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Life Cycle'] = {body="Geo. Tunic +1"}
- sets.precast.JA['Full Circle'] = {hands="Bagua Mitaines +1"}
- sets.precast.JA['Bolster'] = {body="Bagua Tunic +1"}
- sets.precast.JA['Mending Halation'] = {legs="Bagua Pants +1"}
- sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
- -- Fast cast sets for spells
- sets.precast.FC = {ammo="Impatiens",
- head="Nahtirah Hat",neck="Orunmila's Torque",left_ear="Enchntr. Earring +1",right_ear="Loquacious Earring",
- body="Anhur Robe",hands="Otomi Gloves",ring1="Weather. Ring",ring2="Lebeche Ring",
- back="Lifestream Cape",waist="Witful Belt",legs="Geo. Pants +1",feet="Regal Pumps +1"}
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
- sets.precast.FC.Stoneskin = set_combine(sets.precast.FC['Enhancing Magic'], {head="Umuthi Hat"})
- sets.precast.FC.Cure = {ammo="Impatiens",
- head="Nahtirah Hat",neck="Orunmila's Torque",left_ear="Enchntr. Earring +1",right_ear="Loquacious Earring",
- body="Heka's Kalasiris",hands="Otomi Gloves",ring1="Weather. Ring",ring2="Lebeche Ring",
- back="Pahtli Cape",waist="Witful Belt",legs="Geo. Pants +1",feet="Regal Pumps +1"}
- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {hands="Bagua Mitaines +1"})
- sets.precast.FC.Geomancy = set_combine(sets.precast.FC, {range="Dunna"})
- sets.precast.Waltz = {
- head="Nahtirah Hat",neck="Orunmila's Torque",left_ear="Lifestorm Earring",right_ear="Psystorm Earring",
- body="Ischemia Chasu.",hands="Bagua Mitaines +1",ring1="Sangoma Ring",ring2="Prolix Ring",
- back="Refraction Cape",waist="Chaac Belt",legs="Bagua Pants +1",feet="Bagua Sandals +1"}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS['Realmrazer'] = {ammo="Hasty Pinion +1",
- head="Sukeroku Hachi.",neck="Thunder Gorget",left_ear="Bladeborn Earring",right_ear="Steelflash Earring",
- body="Ischemia Chasu.",hands="Bagua Mitaines +1",ring1="Levia. Ring +1",ring2="Levia. Ring +1",
- back="Refraction Cape",waist="Thunder Belt",legs="Mes'yohi Slacks",feet="Battlecast Gaiters"}
- sets.precast.WS['Judgement'] = {ammo="Hasty Pinion +1",
- head="Sukeroku Hachi.",neck="Thunder Gorget",left_ear="Bladeborn Earring",right_ear="Steelflash Earring",
- body="Vanir Cotehardie",hands="Bagua Mitaines +1",ring1="Levia. Ring +1",ring2="Levia. Ring +1",
- back="Refraction Cape",waist="Windbuffet Belt +1",legs="Mes'yohi Slacks",feet="Battlecast Gaiters"}
- sets.precast.WS['Black Halo'] = {ammo="Hasty Pinion +1",
- head="Sukeroku Hachi.",neck="Thunder Gorget",left_ear="Bladeborn Earring",right_ear="Steelflash Earring",
- body="Vanir Cotehardie",hands="Bagua Mitaines +1",ring1="Levia. Ring +1",ring2="Levia. Ring +1",
- back="Refraction Cape",waist="Windbuffet Belt +1",legs="Mes'yohi Slacks",feet="Battlecast Gaiters"}
- sets.precast.WS['Hexa Strike'] = {ammo="Hasty Pinion +1",
- head="Sukeroku Hachi.",neck="Iqabi Necklace",left_ear="Bladeborn Earring",right_ear="Steelflash Earring",
- body="Ischemia Chasu.",hands="Bagua Mitaines +1",ring1="Levia. Ring +1",ring2="Levia. Ring +1",
- back="Refraction Cape",waist="Windbuffet Belt +1",legs="Mes'yohi Slacks",feet="Bagua Sandals +1"}
- sets.precast.WS['Exudation'] = {ammo="Hasty Pinion +1",
- head="Buremte Hat",neck="Asperity Necklace",left_ear="Steelflash Earring",right_ear="Bladeborn Earring",
- body="Ischemia Chasu.",hands="Geo. Gloves +1",ring1="Levia. Ring +1",ring2="Levia. Ring +1",
- back="Refraction Cape",waist="Windbuffet Belt +1",legs="Mes'Yohi Slacks",feet="Bagua Sandals +1"}
- sets.precast.WS['Seraph Strike'] = {ammo="Dosis Tathlum",
- head="Hagondes Hat",neck="Eddy Necklace",left_ear="Friomisi Earring",right_ear="Crematio Earring",
- body="Hagondes Coat +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+24',}},ring1="Weather. Ring",ring2="Levia. Ring +1",
- back="Toro Cape",waist="Thunder Belt",legs="Hagondes Pants +1",feet="Hag. Sabots +1"}
- sets.precast.WS['Starlight'] = {right_ear="Moonshade Earring"}
- sets.precast.WS['Moonlight'] = {right_ear="Moonshade Earring"}
- sets.precast.WS['Flash Nova'] = {ammo="Dosis Tathlum",
- head="Hagondes Hat",neck="Eddy Necklace",left_ear="Friomisi Earring",right_ear="Crematio Earring",
- body="Hagondes Coat +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+24',}},ring1="Weather. Ring",ring2="Levia. Ring +1",
- back="Toro Cape",waist="Snow Belt",legs="Hagondes Pants +1",feet="Hag. Sabots +1"}
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- -- Base fast recast for spells
- sets.midcast.FastRecast = {ammo="Hasty Pinion +1",
- head="Nahtirah Hat",neck="Orunmila's Torque",right_ear="Loquacious Earring",left_ear="Enchntr. Earring +1",
- body="Vanir Cotehardie",hands="Otomi Gloves",ring1="Weather. Ring",ring2="Defending Ring",
- back="Lifestream Cape",waist="Witful Belt",legs="Geo. Pants +1",feet="Regal Boots +1"}
- sets.midcast.Phalanx = set_combine(sets.midcast.FastRecast, {body="Anhur Robe",legs="Shedir Seraweels",feet="Regal Pumps +1"})
- sets.midcast.Stoneskin = set_combine(sets.midcast.FastRecast, {neck="Stone Gorget",left_ear="Earthcry Earring",waist="Siegel Sash",legs="Shedir Seraweels"})
- sets.midcast.Aquaveil = set_combine(sets.midcast.FastRecast, {waist="Emphatikos Rope",legs="Shedir Seraweels"})
- sets.midcast.BarElement = set_combine(sets.midcast.FastRecast, {body="Anhur Robe",legs="Shedir Seraweels",feet="Regal Pumps +1"})
- sets.midcast.Geomancy = {main="Idris",range="Dunna",
- head="Selenian Cap",neck="Orunmila's Torque",left_ear="Magnetic Earring",right_ear="Loquacious Earring",
- body="Bagua Tunic +1",hands="Geo. Mitaines +1",ring1="Weather. Ring",ring2="Patricius Ring",
- back="Lifestream Cape",waist="Austerity Belt +1",legs="Theurgist's Slacks",feet="Umbani Boots"}
- sets.midcast.Geomancy = set_combine(sets.midcast.Geomancy, {legs="Bagua Pants +1"})
- sets.midcast.Cure = {ammo="Hasty Pinion +1",
- head="Nahtirah Hat",neck="Phalaina Locket",left_ear="Loquacious Earring",right_ear="Beatific Earring",
- body="Heka's Kalasiris",hands="Revealer's Mitts",ring1="Lebeche Ring",ring2="Sirona's Ring",
- back="Tempered Cape",waist="Witful Belt",legs="Nares Trews",feet="Regal Pumps +1"}
- sets.midcast.Curaga = sets.midcast.Cure
- sets.midcast.Stun = {ammo="Hasty Pinion +1",
- head="Nahtirah Hat",neck="Orunmila's Torque",left_ear="Loquacious Earring",right_ear="Psystorm Earring",
- body="Vanir Cotehardie",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Weather. Ring",ring2="Prolix Ring",
- back="Lifestream Cape",waist="Witful Belt",legs="Geo. Pants +1",feet="Artsieq Boots"}
- sets.midcast.Drain = {main="Idris",ammo="Plumose Sachet",
- head="Bagua Galero +1",neck="Eddy Necklace",left_ear="Psystorm Earring",right_ear="Lifestorm Earring",
- body="Geo. Tunic +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Weather. Ring",ring2="Archon Ring",
- back="Refraction Cape",waist="Fucho-no-obi",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
- sets.midcast.Aspir = sets.midcast.Drain
- sets.midcast['Aspir II'] = sets.midcast.Drain
- sets.midcast['Elemental Magic'] = {main="Idris",ammo="Dosis Tathlum",
- head="Hagondes Hat",neck="Eddy Necklace",left_ear="Crematio Earring",right_ear="Friomisi Earring",
- body="Hagondes Coat +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+24',}},ring1="Shiva Ring +1",ring2="Shiva Ring +1",
- back="Toro Cape",waist="Yamabuki-no-Obi",legs="Hagondes Pants +1",feet="Umbani Boots"}
- sets.midcast['Protect III'] = {ring1="Sheltered Ring"}
- sets.midcast['Shell II'] = {ring1="Sheltered Ring"}
- -- Enfeebling Magic Sets
- sets.midcast.MndEnfeebles = {main="Idris",ammo="Plumose Sachet",
- head="Artsieq Hat",neck="Weike Torque",left_ear="Psystorm Earring",right_ear="Lifestorm Earring",
- body="Ischemia Chasu.",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Levia. Ring +1",ring2="Levia. Ring +1",
- back="Lifestream Cape",waist="Bougonia Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
- sets.midcast.IntEnfeebles = {main="Idris",ammo="Plumose Sachet",
- head="Artsieq Hat",neck="Weike Torque",left_ear="Psystorm Earring",right_ear="Lifestorm Earring",
- body="Ischemia Chasu.",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Weather. Ring",ring2="Sangoma Ring",
- back="Lifestream Cape",waist="Bougonia Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
- sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
- --------------------------------------
- -- Idle/resting/defense/etc sets
- --------------------------------------
- -- Resting sets
- sets.resting = {main="Chatoyant Staff",neck="Wiglen Gorget",
- body="Hagondes Coat +1",hands="Bagua Mitaines",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- waist="Austerity Belt",legs="Assiduity Pants",feet="Chelona Boots"}
- -- Idle sets
- sets.resting = {range="Dunna",
- neck="Wiglen Gorget",left_ear="Sanare Earring",right_ear="Merman's Earring",
- body="Respite Cloak",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Umbra Cape",waist="Austerity Belt +1",legs="Assid. Pants +1"}
- sets.idle.PDT = {sub="Genbu's Shield",range="Dunna",
- head="Hagondes Hat +1",neck="Twilight Torque",left_ear="Sanare Earring",right_ear="Merman's Earring",
- body="Hagondes Coat +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Patricius Ring",ring2="Defending Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Hagondes Pants +1",feet="Battlecast Gaiters"}
- -- .Pet sets are for when Luopan is present.
- sets.idle.Pet = set_combine(sets.idle.Field, {hands="Geomancy Mitaines +1"})
- sets.idle.PDT.Pet = set_combine(sets.idle.PDT, {hands="Geomancy Mitaines +1"})
- -- .Indi sets are for when an Indi-spell is active.
- sets.idle.Town = {main="Idris",range="Dunna",
- head="Bagua Galero +1",neck="Wiglen Gorget",left_ear="Sanare Earring",right_ear="Merman's Earring",
- body="Councilor's Garb",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Defending Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Assid. Pants +1",feet="Geo. Sandals +1"}
- sets.idle.Field = {main="Idris",range="Dunna",
- neck="Wiglen Gorget",left_ear="Sanare Earring",right_ear="Merman's Earring",
- body="Respite Cloak",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Defending Ring",
- back="Lifestream Cape",waist="Slipor Sash",legs="Assid. Pants +1",feet="Geo. Sandals +1"}
- sets.idle.Weak = {range="Dunna",
- head="Hagondes Hat +1",neck="Twilight Torque",left_ear="Sanare EArring",right_ear="Merman's Earring",
- body="Hagondes Coat +1",hands="Geo. Mitaines +1",ring1="Defending Ring",ring2="Paguroidea Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Hagondes Pants +1",feet="Geo. Sandals +1"}
- -- Defense sets
- sets.defense.PDT = {sub="Genbu's Shield",range="Dunna",
- head="Hagondes Hat +1",neck="Twilight Torque",left_ear="Sanare Earring",right_ear="Merman's Earring",
- body="Hagondes Coat +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Patricius Ring",ring2="Defending Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Hagondes Pants +1",feet="Battlecast Gaiters"}
- sets.defense.MDT = {sub="Genbu's Shield",range="Dunna",
- head="Hagondes Hat +1",neck="Twilight Torque",left_ear="Sanare Earring",right_ear="Merman's Earring",
- body="Hagondes Coat +1",hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Mag. Acc.+23',}},ring1="Patricius Ring",ring2="Defending Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Hagondes Pants +1",feet="Battlecast Gaiters"}
- sets.Kiting = {feet="Geomancy Sandals +1"}
- 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 = {main="Idris",ammo="Hasty Pinion +1",
- head="Espial Cap",neck="Iqabi Necklace",left_ear="Steelflash Earring",right_ear="Bladeborn Earring",
- body="Ischemia Chasu.",hands="Bokwus Gloves",ring1="Enlivened Ring",ring2="Mars's Ring",
- back="Mecisto. Mantle",waist="Olseni Belt",legs="Bokwus Slops",feet="Battlecast Gaiters"}
- --------------------------------------
- -- Custom buff sets
- --------------------------------------
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_aftercast(spell, action, spellMap, eventArgs)
- if not spell.interrupted then
- if spell.english:startswith('Indi') then
- if not classes.CustomIdleGroups:contains('Indi') then
- classes.CustomIdleGroups:append('Indi')
- end
- send_command('@timers d "'..indi_timer..'"')
- indi_timer = spell.english
- send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
- elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
- send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
- elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
- send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
- end
- elseif not player.indi then
- classes.CustomIdleGroups:clear()
- 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)
- if player.indi and not classes.CustomIdleGroups:contains('Indi')then
- classes.CustomIdleGroups:append('Indi')
- handle_equipping_gear(player.status)
- elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
- classes.CustomIdleGroups:clear()
- handle_equipping_gear(player.status)
- end
- end
- function job_state_change(stateField, newValue, oldValue)
- if stateField == 'Offense Mode' then
- if newValue == 'Normal' then
- disable('main','sub','range')
- else
- enable('main','sub','range')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- function job_get_spell_map(spell, default_spell_map)
- if spell.action_type == 'Magic' then
- if spell.skill == 'Enfeebling Magic' then
- if spell.type == 'WhiteMagic' then
- return 'MndEnfeebles'
- else
- return 'IntEnfeebles'
- end
- elseif spell.skill == 'Geomancy' then
- if spell.english:startswith('Indi') then
- return 'Indi'
- elseif spell.english:startswith('Geo') then
- return 'Geo'
- end
- elseif spell.skill == 'Dark Magic' then
- if spell.english:startswith('Stu') then
- return 'Stun'
- else
- return
- end
- return
- end
- end
- end
- function customize_idle_set(idleSet)
- if player.mpp < 51 then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- return idleSet
- end
- sets.reive = {neck="Arciela's Grace +1"}
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if buffactive['Reive Mark'] and (spell.skill == 'Elemental Magic' or spellMap == 'Cure' or spellMap == 'Curaga') then
- equip(sets.reive)
- end
- end
- function customize_idle_set(idleSet)
- if buffactive['Reive Mark'] then
- idleSet = set_combine(idleSet, sets.reive)
- end
- return idleSet
- end
- function job_customize_melee_set(meleeSet)
- if buffactive['Reive Mark'] then
- meleeSet = set_combine(meleeSet, sets.reive)
- end
- return meleeSet
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- classes.CustomIdleGroups:clear()
- if player.indi then
- classes.CustomIdleGroups:append('Indi')
- end
- end
- -- Function to display the current relevant user state when doing an update.
- function display_current_job_state(eventArgs)
- display_current_caster_state()
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function job_self_command(cmdParams, eventArgs)
- if command == 'coffer' then
- cycle = 0
- invCount = windower.ffxi.get_bag_info(0).count
- if invCount == 80 then
- add_to_chat(140,'Inv. full. Ending cycle')
- elseif player.inventory["Velkk Coffer"] then
- send_command('input /item "Velkk Coffer" <me> ')
- cycle = 1
- else
- add_to_chat(140,'No Coffers found in inv.')
- send_command('findall Velkk Coffer')
- end
- if cycle == 1 then
- send_command('wait 2;gs c coffer')
- end
- end
- end
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- set_macro_page(5, 1)
- end
Advertisement
Add Comment
Please, Sign In to add comment