Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 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.
- function job_setup()
- indi_timer = ''
- indi_duration = 300
- state.Buff['Theurgic Focus'] = buffactive['Theurgic Focus'] or false
- state.Buff['Bolster'] = buffactive['Bolster'] or false
- end
- -- //gs debugmode
- -- //gs showswaps
- function binds_on_load()
- -- F9-F12
- send_command('bind f9 gs c cycle OffenseMode')
- send_command('bind f10 gs c cycle HybridMode')
- send_command('bind f11 gs c cycle CastingMode')
- send_command('bind f12 gs c cycle IdleMode')
- -- ALT F9-12
- send_command('bind !f9 gs c update user')
- send_command('bind !f10 gs c cycle RangedMode')
- send_command('bind !f11 gs c cycle WeaponskillMode')
- send_command('bind !f12 gs c cycle Kiting')
- end
- -- 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', 'MagicBurst')
- state.IdleMode:options('Normal', 'PDT')
- LowTierNuke = S{
- 'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
- 'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
- 'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
- 'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
- 'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
- select_default_macro_book(1, 3)
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- -- Augmented Gear
- -- Back
- Nan_INT_back = { name="Nantosuelta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}
- -- Merlinic Nuke
- Mer_Nuke_head = { name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','"Drain" and "Aspir" potency +9','Mag. Acc.+10','"Mag.Atk.Bns."+13',}}
- Mer_Nuke_body = { name="Merlinic Jubbah", augments={'Mag. Acc.+21 "Mag.Atk.Bns."+21','"Occult Acumen"+1','MND+8','Mag. Acc.+14','"Mag.Atk.Bns."+11',}}
- Mer_Nuke_legs = { name="Merlinic Shalwar", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','CHR+4','Mag. Acc.+10','"Mag.Atk.Bns."+15',}}
- -- Merlinic Magic Burst
- Mer_MB_head = { name="Merlinic Hood", augments={'"Mag.Atk.Bns."+29','Magic burst mdg.+9%','INT+15','Mag. Acc.+4',}}
- Mer_MB_legs = { name="Merlinic Shalwar", augments={'Mag. Acc.+16 "Mag.Atk.Bns."+16','Magic burst mdg.+8%','Mag. Acc.+13','"Mag.Atk.Bns."+10',}}
- Mer_MB_feet = { name="Merlinic Crackows", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','Magic burst mdg.+5%','CHR+10','Mag. Acc.+7','"Mag.Atk.Bns."+11',}}
- -- Merlinic FC
- Mer_FC_feet = { name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+9','"Fast Cast"+5','MND+4',}}
- -- Merlinic DT
- -- Merlinic INT MACC
- -- Merlinic MND MACC
- -- Precast Sets
- sets.precast.JA['Bolster'] = {body="Bagua Tunic +1"}
- sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
- sets.precast.JA['Life Cycle'] = {body="Geomancy Tunic +1", back=Nan_INT_back}
- sets.precast.JA['Theurgic Focus'] = {head="Bagua Galero +1"}
- -- Fast cast sets for spells
- sets.precast.FC = {
- range="Dunna",
- main="Grioavolr", sub="Niobid Strap",
- head="Amalric Coif", body="Helios Jacket",
- back="Perimede Cape", neck="Orunmila's Torque",
- hands="Telchine Gloves", waist="Witful Belt",
- legs="Psycloth Lappas", feet=Mer_FC_feet,
- ring1="Lebeche Ring", ring2="Prolix Ring",
- ear1="Enchanter Earring +1", ear2="Loquacious Earring"}
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {
- feet="Vanya Clogs", ear2="Mendicant's Earring"})
- sets.precast.FC.Curaga = sets.precast.FC.Cure
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
- waist="Siegel Sash"})
- sets.precast.FC.Stoneskin = set_combine(sets.precast.FC, {
- head="Umuthi Hat", hands="Carapacho Cuffs",
- waist="Siegel Sash"})
- sets.precast.FC.Impact = set_combine(sets.precast.FC, {
- head=empty, body="Twilight Cloak"})
- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
- hands="Bagua Mitaines", ear1="Barkarole Earring"})
- -- Midcast Sets
- sets.midcast.FastRecast = {
- range="Dunna",
- main="Grioavolr", sub="Niobid Strap",
- head="Amalric Coif", body="Helios Jacket",
- back="Perimede Cape", neck="Orunmila's Torque",
- hands="Telchine Gloves", waist="Witful Belt",
- legs="Psycloth Lappas", feet=Mer_FC_feet,
- ring1="Lebeche Ring", ring2="Prolix Ring",
- ear1="Enchanter Earring +1", ear2="Loquacious Earring"}
- sets.midcast.Geomancy = {
- range="Dunna",
- main="Solstice", sub="Genmei Shield",
- neck="Incanter's Torque",
- head="Azimuth Hood", body="Bagua Tunic +1",
- back="Lifestream Cape", hands="Geomancy Mitaines +1",
- legs="Bagua Pants +1", feet="Medium's Sabots"}
- sets.midcast.Geomancy.Indi = {
- range="Dunna",
- main="Solstice", sub="Genmei Shield",
- neck="Incanter's Torque",
- head="Azimuth Hood", body="Bagua Tunic +1",
- back="Lifestream Cape", hands="Geomancy Mitaines +1",
- legs="Bagua Pants +1", feet="Azimuth Gaiters +1"}
- sets.midcast.Cure = {
- ammo="Impatiens",
- main="Vadose Rod", sub="Genmei Shield",
- head="Telchine Cap", body="Telchine Chasuble",
- back=Nan_INT_back, neck="Incanter's Torque",
- hands="Telchine Gloves", waist="Luminary Sash",
- legs="Psycloth Lappas", feet="Vanya Clogs",
- ring1="Leviathan Ring +1", ring2="Leviathan Ring +1",
- ear1="Enchanter Earring +1", ear2="Mendicant's Earring"}
- sets.midcast.Curaga = sets.midcast.Cure
- sets.midcast['Enhancing Magic'] = {
- ammo="Impatiens",
- main="Grioavolr", sub="Niobid Strap",
- head="Telchine Cap", body="Telchine Chasuble",
- back="Perimede Cape", neck="Incanter's Torque",
- hands="Telchine Gloves", waist="Luminary Sash",
- legs="Telchine Braconi", feet="Telchine Pigaches",
- ring1="Lebeche Ring", ring2="Evanescence Ring",
- ear1="Enchanter Earring +1",ear2="Loquacious Earring"}
- sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
- head="Amalric Coif", feet="Inspirited Boots"})
- sets.midcast['Haste'] = sets.midcast['Enhancing Magic']
- sets.midcast['Regen'] = set_combine(sets.midcast['Enhancing Magic'], {
- main="Bolelabunga", sub="Genmei Shield",
- body="Telchine Chasuble", feet="Telchine Pigaches"})
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
- main="Grioavolr", sub="Benthos Grip",
- neck="Nodens Gorget", waist="Siegel Sash",
- legs="Shedir Seraweels", ear2="Earthcry Earring"})
- sets.midcast['Aquaveil'] = set_combine(sets.midcast['Enhancing Magic'], {
- main="Vadose Rod", sub="Genmei Shield",
- head="Amalric Coif", body="Vanya Robe",
- hands="Amalric Gages",
- legs="Shedir Seraweels", feet="Amalric Nails"})
- sets.midcast['Enfeebling Magic'] = {
- ammo="Quartz Tathlum +1",
- main="Grioavolr", sub="Mephitis Grip",
- head="Befouled Crown", body="Vanya Robe",
- back=Nan_INT_back, neck="Imbodla Necklace",
- hands="Lurid Mitts", waist="Rumination Sash",
- legs="Psycloth Lappas", feet="Uk'uxkaj Boots",
- ring1="Globidonta Ring", ring2="Leviathan Ring +1",
- ear1="Barkarole Earring", ear2="Dignitary's Earring"}
- sets.midcast['Enfeebling Magic'].Resistant = set_combine(sets.midcast['Enfeebling Magic'],{
- ammo="Pemphredo Tathlum",
- main="Grioavolr", sub="Benthos Grip",
- head=Mer_Nuke_head, body=Mer_Nuke_body,
- waist="Luminary Sash", feet="Medium's Sabots",
- ring1="Leviathan Ring +1"})
- sets.midcast.Impact = set_combine(sets.midcast['Enfeebling Magic'], {head=empty, body="Twilight Cloak"})
- sets.midcast.Impact.Resistant = set_combine(sets.midcast['Enfeebling Magic'].Resistant, {head=empty, body="Twilight Cloak",feet="Bagua Sandals +1"})
- sets.midcast['Dark Magic'] = {
- ammo="Pemphredo Tathlum",
- main="Grioavolr", sub="Benthos Grip",
- head=Mer_Nuke_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Incanter's Torque",
- hands="Helios Gloves", waist="Luminary Sash",
- legs=Mer_Nuke_body, feet=Mer_MB_feet,
- ring1="Archon Ring", ring2="Evanescence Ring",
- ear1="Barkarole Earring", ear2="Dignitary's Earring"}
- --24haste+47FC+MACC -- Ionis 2haste, 3FC.
- sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {
- ammo="Pemphredo Tathlum",
- main="Grioavolr", sub="Benthos Grip",
- head=Mer_Nuke_head, body="Helios Jacket",
- back="Perimede Cape", neck="Orunmila's Torque",
- hands="Telchine Gloves", waist="Witful Belt",
- legs="Psycloth Lappas", feet=Mer_FC_feet,
- ring1="Lebeche Ring", ring2="Prolix Ring",
- ear1="Enchanter Earring +1", ear2="Loquacious Earring"})
- sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {
- body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Incanter's Torque",
- waist="Luminary Sash",
- legs=Mer_Nuke_legs, feet=Mer_MB_feet,
- ring1="Sangoma Ring", ring2="Evanescence Ring",
- ear1="Barkarole Earring", ear2="Dignitary's Earring"})
- sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
- head="Bagua Galero +1", waist="Fucho-no-Obi",
- hands="Helios Gloves",feet=Mer_MB_feet,
- ring1="Archon Ring", ring2="Evanescence Ring",
- ear1="Barkarole Earring", ear2="Dignitary's Earring"})
- sets.midcast.Aspir = sets.midcast.Drain
- -- Elemental Magic sets are default for handling low-tier nukes.
- sets.midcast.LowTierNuke = {
- ammo="Pemphredo Tathlum",
- main="Grioavolr",sub="Alber Strap",
- head=Mer_Nuke_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Sanctity Necklace",
- hands="Amalric Gages", waist="Refoccilation Stone",
- legs=Mer_Nuke_legs, feet=Mer_MB_feet,
- ring1="Shiva Ring +1", ring2="Shiva Ring +1",
- ear1="Crematio Earring", ear2="Friomisi Earring"}
- sets.midcast.LowTierNuke.Resistant = {
- ammo="Pemphredo Tathlum",
- main="Grioavolr", sub="Niobid Strap",
- head=Mer_Nuke_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Sanctity Necklace",
- hands="Amalric Gages", waist="Yamabuki-no-obi",
- legs=Mer_Nuke_legs,feet=Mer_MB_feet,
- ring1="Shiva Ring +1", ring2="Shiva Ring +1",
- ear1="Crematio Earring", ear2="Friomisi Earring"}
- sets.midcast.LowTierNuke.MagicBurst = set_combine(sets.midcast.LowTierNuke, {
- head=Mer_MB_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Mizukage-no-Kubikazari",
- legs=Mer_MB_legs,feet=Mer_MB_feet,
- ring1="Mujin Band", ring2="Locus Ring",
- ear2="Static Earring"})
- -- Custom classes for high-tier nukes.
- sets.midcast.HighTierNuke = {
- ammo="Pemphredo Tathlum",
- main="Grioavolr",sub="Alber Strap",
- head=Mer_Nuke_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Sanctity Necklace",
- hands="Amalric Gages", waist="Refoccilation Stone",
- legs=Mer_Nuke_legs, feet=Mer_MB_feet,
- ring1="Shiva Ring +1", ring2="Shiva Ring +1",
- ear1="Crematio Earring", ear2="Friomisi Earring"}
- sets.midcast.HighTierNuke.Resistant = {
- ammo="Pemphredo Tathlum",
- main="Grioavolr", sub="Niobid Strap",
- head=Mer_Nuke_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Sanctity Necklace",
- hands="Amalric Gages", waist="Yamabuki-no-obi",
- legs=Mer_Nuke_legs,feet=Mer_MB_feet,
- ring1="Shiva Ring +1", ring2="Shiva Ring +1",
- ear1="Crematio Earring", ear2="Friomisi Earring"}
- sets.midcast.HighTierNuke.MagicBurst = set_combine(sets.midcast.HighTierNuke, {
- head=Mer_MB_head, body=Mer_Nuke_body,
- back=Nan_INT_back, neck="Mizukage-no-Kubikazari",
- legs=Mer_MB_legs,feet=Mer_MB_feet,
- ring1="Mujin Band", ring2="Locus Ring",
- ear2="Static Earring"})
- -- Resting sets
- sets.resting = {
- range="Dunna",
- main="Bolelabunga", sub="Genmei Shield",
- head="Befouled Crown", body="Amalric Doublet",
- back="Kumbira Cape", neck="Sanctity Necklace",
- hands="Bagua Mitaines", waist="Fucho-no-Obi",
- legs="Assiduity Pants +1", feet="Inspirited Boots",
- ear1="Infused Earring", ear2="Genmei Earring",
- ring1="Sheltered Ring", ring2="Paguroidea Ring"}
- -- Idle Sets
- sets.idle = {
- range="Dunna",
- main="Bolelabunga", sub="Genmei Shield",
- head="Befouled Crown", body="Amalric Doublet",
- back="Mecisto. Mantle", neck="Sanctity Necklace",
- hands="Bagua Mitaines", waist="Isa Belt",
- legs="Assiduity Pants +1", feet="Herald's Gaiters",
- ring1="Sheltered Ring", ring2="Paguroidea Ring",
- ear1="Infused Earring", ear2="Genmei Earring"}
- sets.idle.PDT = {
- range="Dunna",
- main="Mafic Cudgel", sub="Genmei Shield",
- head="Befouled Crown", body="Hagondes Coat +1",
- back="Lifestream Cape", neck="Twilight Torque",
- hands="Geomancy Mitaines +1", waist="Isa Belt",
- legs="Assiduity Pants +1", feet="Azimuth Gaiters +1",
- ring1="Defending Ring", ring2="Patricius Ring",
- ear1="Sanare Earring", ear2="Genmei Earring"}
- sets.idle.Town = {
- range="Dunna",
- main="Mafic Cudgel", sub="Genmei Shield",
- head="Befouled Crown", body="Amalric Doublet",
- back="Lifestream Cape", neck="Twilight Torque",
- hands="Geomancy Mitaines +1", waist="Isa Belt",
- legs="Assiduity Pants +1", feet="Herald's Gaiters",
- ring1="Defending Ring", ring2="Patricius Ring",
- ear1="Sanare Earring", ear2="Genmei Earring"}
- -- .Pet sets are for when Luopan is present.
- sets.idle.Pet = {
- range="Dunna",
- main="Solstice", sub="Genmei Shield",
- head="Azimuth Hood", body="Hagondes Coat +1",
- back="Lifestream Cape", neck="Twilight Torque",
- hands="Geomancy Mitaines +1", waist="Isa Belt",
- legs="Psycloth Lappas", feet="Bagua Sandals +1",
- ring1="Defending Ring",ring2="Paguroidea Ring",
- ear1="Handler's Earring +1",ear2="Handler's Earring"}
- sets.idle.PDT.Pet = {
- range="Dunna",
- main="Mafic Cudgel", sub="Genmei Shield",
- head="Azimuth Hood", body="Hagondes Coat +1",
- back="Lifestream Cape", neck="Twilight Torque",
- hands="Geomancy Mitaines +1", waist="Isa Belt",
- legs="Psycloth Lappas", feet="Bagua Sandals +1",
- ring1="Defending Ring",ring2="Patricius Ring",
- ear1="Handler's Earring +1",ear2="Handler's Earring"}
- sets.idle.Indi = sets.idle
- sets.idle.Pet.Indi = sets.idle.Pet
- sets.idle.PDT.Indi = sets.idle.PDT
- sets.idle.PDT.Pet.Indi = sets.idle.PDT.Pet
- sets.Kiting = {feet="Herald's Gaiters"}
- sets.latent_refresh = {waist="Fucho-no-obi"}
- -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
- sets.buff['Theurgic Focus'] = {head="Bagua Galero +1"}
- sets.buff['Bolster'] = {body="Bagua Tunic +1"}
- -- Engaged sets
- sets.engaged = {
- range="Dunna",
- main="Mafic Cudgel", sub="Genmei Shield",
- head="Befouled Crown", body="Hagondes Coat +1",
- back="Lifestream Cape", neck="Twilight Torque",
- hands="Geomancy Mitaines +1", waist="Isa Belt",
- legs="Assiduity Pants +1", feet="Azimuth Gaiters +1",
- ring1="Defending Ring", ring2="Patricius Ring",
- ear1="Sanare Earring", ear2="Genmei Earring"}
- 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'
- end
- end
- end
- end
- function customize_idle_set(idleSet)
- if player.mpp < 51 then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- return idleSet
- 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
- -- Custom spell mapping.
- function job_get_spell_map(spell, default_spell_map)
- if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
- if LowTierNuke:contains(spell.english) then
- return 'LowTierNuke'
- else
- return 'HighTierNuke'
- end
- end
- end
- -- Utility functions specific to this job.
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- set_macro_page(1, 3)
- end
Add Comment
Please, Sign In to add comment