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()
- include('organizer-lib')
- 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['Burst Affinity'] = buffactive['Burst Affinity'] or false
- state.Buff['Chain Affinity'] = buffactive['Chain Affinity'] or false
- state.Buff.Convergence = buffactive.Convergence or false
- state.Buff.Diffusion = buffactive.Diffusion or false
- state.Buff.Efflux = buffactive.Efflux or false
- state.Buff['Unbridled Learning'] = buffactive['Unbridled Learning'] or false
- blue_magic_maps = {}
- -- Mappings for gear sets to use for various blue magic spells.
- -- While Str isn't listed for each, it's generally assumed as being at least
- -- moderately signficant, even for spells with other mods.
- -- Physical Spells --
- -- Physical spells with no particular (or known) stat mods
- blue_magic_maps.Physical = S{
- 'Bilgestorm'
- }
- -- Spells with heavy accuracy penalties, that need to prioritize accuracy first.
- blue_magic_maps.PhysicalAcc = S{
- 'Heavy Strike',
- }
- -- Physical spells with Str stat mod
- blue_magic_maps.PhysicalStr = S{
- 'Battle Dance','Bloodrake','Death Scissors','Dimensional Death',
- 'Empty Thrash','Quadrastrike','Spinal Cleave',
- 'Uppercut','Vertical Cleave'
- }
- -- Physical spells with Dex stat mod
- blue_magic_maps.PhysicalDex = S{
- 'Amorphic Spikes','Asuran Claws','Barbed Crescent','Claw Cyclone','Disseverment',
- 'Foot Kick','Frenetic Rip','Goblin Rush','Hysteric Barrage','Paralyzing Triad',
- 'Seedspray','Sickle Slash','Smite of Rage','Terror Touch','Thrashing Assault',
- 'Vanity Dive','Sinker Drill'
- }
- -- Physical spells with Vit stat mod
- blue_magic_maps.PhysicalVit = S{
- 'Body Slam','Cannonball','Delta Thrust','Glutinous Dart','Grand Slam',
- 'Power Attack','Quad. Continuum','Saurian Slide','Sprout Smack','Sub-zero Smash'
- }
- -- Physical spells with Agi stat mod
- blue_magic_maps.PhysicalAgi = S{
- 'Benthic Typhoon','Feather Storm','Helldive','Hydro Shot','Jet Stream',
- 'Pinecone Bomb','Spiral Spin','Wild Oats'
- }
- -- Physical spells with Int stat mod
- blue_magic_maps.PhysicalInt = S{
- 'Mandibular Bite','Queasyshroom'
- }
- -- Physical spells with Mnd stat mod
- blue_magic_maps.PhysicalMnd = S{
- 'Ram Charge','Screwdriver','Tourbillion'
- }
- -- Physical spells with Chr stat mod
- blue_magic_maps.PhysicalChr = S{
- 'Bludgeon'
- }
- -- Physical spells with HP stat mod
- blue_magic_maps.PhysicalHP = S{
- 'Final Sting'
- }
- -- Magical Spells --
- -- Magical spells with the typical Int mod
- blue_magic_maps.Magical = S{
- 'Anvil Lightning','Blastbomb','Blazing Bound','Blinding Fulgor','Bomb Toss','Cursed Sphere','Dark Orb','Death Ray',
- 'Diffusion Ray','Droning Whirlwind','Embalming Earth','Entomb','Firespit','Ice Break','Leafstorm','Maelstrom',
- 'Molting Plumage','Rail Cannon','Regurgitation','Rending Deluge','Retinal Glare','Searing Tempest','Spectral Floe',
- 'Subduction','Scouring Spate','Tem. Upheaval','Tenebral Crush','Water Bomb'
- }
- -- Magical spells with a primary Mnd mod
- blue_magic_maps.MagicalMnd = S{
- 'Acrid Stream','Evryone. Grudge','Magic Hammer','Mind Blast'
- }
- -- Magical spells with a primary Chr mod
- blue_magic_maps.MagicalChr = S{
- 'Eyes On Me','Mysterious Light'
- }
- -- Magical spells with a Vit stat mod (on top of Int)
- blue_magic_maps.MagicalVit = S{
- 'Thermal Pulse'
- }
- -- Magical spells with a Dex stat mod (on top of Int)
- blue_magic_maps.MagicalDex = S{
- 'Charged Whisker','Gates of Hades'
- }
- -- Magical spells (generally debuffs) that we want to focus on magic accuracy over damage.
- -- Add Int for damage where available, though.
- blue_magic_maps.MagicAccuracy = S{
- '1000 Needles','Absolute Terror','Actinic Burst','Atra. Libations','Auroral Drape','Awful Eye',
- 'Blank Gaze','Blistering Roar','Blood Drain','Blood Saber','Chaotic Eye',
- 'Cimicine Discharge','Cold Wave','Corrosive Ooze','Demoralizing Roar','Digest',
- 'Dream Flower','Enervation','Feather Tickle','Filamented Hold','Foul Waters','Frightful Roar',
- 'Geist Wall','Hecatomb Wave','Infrasonics','Jettatura','Light of Penance',
- 'Lowing','Mind Blast','Mortal Ray','MP Drainkiss','Nectarous Deluge','Osmosis','Reaving Wind',
- 'Sandspin','Sandspray','Sheep Song','Silent Storm','Soporific','Sound Blast','Stinking Gas',
- 'Sub-zero Smash','Venom Shell','Voracious Trunk','Yawn'
- }
- -- Breath-based spells
- blue_magic_maps.Breath = S{
- 'Bad Breath','Flying Hip Press','Frost Breath','Heat Breath',
- 'Hecatomb Wave','Magnetite Cloud','Poison Breath','Radiant Breath','Self-Destruct',
- 'Thunder Breath','Vapor Spray','Wind Breath'
- }
- -- Stun spells
- blue_magic_maps.Stun = S{
- 'Blitzstrahl','Frypan','Head Butt','Sudden Lunge','Tail slap','Temporal Shift',
- 'Thunderbolt','Whirl of Rage'
- }
- -- Healing spells
- blue_magic_maps.Healing = S{
- 'Healing Breeze','Magic Fruit','Plenilune Embrace','Pollen','Restoral','White Wind',
- 'Wild Carrot'
- }
- -- Buffs that depend on blue magic skill
- blue_magic_maps.SkillBasedBuff = S{
- 'Barrier Tusk','Diamondhide','Magic Barrier','Metallic Body','Plasma Charge',
- 'Pyric Bulwark','Reactor Cool', 'Occultation'
- }
- -- Other general buffs
- blue_magic_maps.Buff = S{
- 'Amplification','Animating Wail','Battery Charge','Carcharian Verve','Cocoon',
- 'Erratic Flutter','Exuviation','Fantod','Feather Barrier','Harden Shell',
- 'Memento Mori','Nat. Meditation','Orcish Counterstance','Refueling',
- 'Regeneration','Saline Coat','Triumphant Roar','Warm-Up','Winds of Promyvion',
- 'Zephyr Mantle'
- }
- -- Spells that require Unbridled Learning to cast.
- unbridled_spells = S{
- 'Absolute Terror','Bilgestorm','Blistering Roar','Bloodrake','Carcharian Verve',
- 'Crashing Thunder','Droning Whirlwind','Gates of Hades','Harden Shell','Mighty Guard','Polar Roar',
- 'Pyric Bulwark','Thunderbolt','Tourbillion','Uproot','Tearing Gust'
- }
- include('Mote-TreasureHunter')
- state.TreasureMode:set('Tag')
- 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('Normal', 'AccLow', 'AccHigh', 'Tizona')
- state.RangedMode:options('Normal')
- state.HybridMode:options('Normal', 'PDT')
- state.WeaponskillMode:options('Normal', 'AccLow', 'AccHigh', 'Attack')
- state.CastingMode:options('Normal', 'Resistant')
- state.IdleMode:options('Normal', 'Craft')
- state.RestingMode:options('Normal')
- state.PhysicalDefenseMode:options('PDT', 'Reraise')
- state.MagicalDefenseMode:options('MDT')
- send_command('bind f9 gs c cycle OffenseMode')
- send_command('bind ^f9 gs c cycle HybridMode')
- send_command('bind !f9 gs c cycle RangedMode')
- send_command('bind @f9 gs c cycle WeaponskillMode')
- send_command('bind f10 gs c set DefenseMode Physical')
- send_command('bind ^f10 gs c cycle PhysicalDefenseMode')
- send_command('bind !f10 gs c toggle Kiting')
- send_command('bind f11 gs c set DefenseMode Magical')
- send_command('bind ^f11 gs c cycle CastingMode')
- send_command('bind f12 gs c update user')
- send_command('bind ^f12 gs c cycle IdleMode')
- send_command('bind !f12 gs c reset DefenseMode')
- send_command('lua l gearinfo')send_command('lua l gearinfo')
- -- Additional local binds
- send_command('bind ^` input /ja "Chain Affinity" <me>')
- send_command('bind !` input /ja "Efflux" <me>')
- send_command('bind @` input /ja "Burst Affinity" <me>')
- send_command('unbind f9')
- send_command('unbind ^f9')
- send_command('unbind !f9')
- send_command('unbind @f9')
- send_command('unbind f10')
- send_command('unbind ^f10')
- send_command('unbind !f10')
- send_command('unbind f11')
- send_command('unbind ^f11')
- send_command('unbind !f11')
- send_command('unbind f12')
- send_command('unbind ^f12')
- send_command('unbind !f12')
- update_combat_form()
- select_default_macro_book()
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind ^`')
- send_command('unbind !`')
- send_command('unbind @`')
- end
- -- Set up gear sets.
- function init_gear_sets()
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- sets.buff['Burst Affinity'] = {feet="Hashi. Basmak +3"}
- sets.buff['Chain Affinity'] = {head="Hashishin Kavuk +3"}
- sets.buff.Convergence = {head="Luh. Keffiyeh +3"}
- sets.buff.Diffusion = {feet="Luhlaza Charuqs +1"}
- sets.buff.Enchainment = {body="Luhlaza Jubbah +3"}
- sets.buff.Efflux = {legs="Hashishin Tayt +2"}
- -- Precast Sets
- sets.TreasureHunter = {head="Volte Cap",
- body="Volte Jupon",
- feet="Volte Boots"}
- -- Precast sets to enhance JAs
- sets.precast.JA['Azure Lore'] = {hands="Luhlaza Bazubands +1"}
- sets.precast.Diffusion = {feet="Luhlaza Charuqs +1"}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Fast cast sets for spells
- sets.precast.FC = {ammo="Sapience Orb",
- head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
- body="Luhlaza Jubbah +3",
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs="Aya. Cosciales +2",
- feet={ name="Carmine Greaves +1", augments={'HP+80','MP+80','Phys. dmg. taken -4',}},
- neck="Orunmila's Torque",
- waist="Witful Belt",
- left_ear="Loquac. Earring",
- right_ear="Etiolation Earring",
- left_ring="Rahab Ring",
- right_ring="Kishar Ring",
- back={ name="Rosmerta's Cape", augments={'INT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
- sets.precast.FC['Blue Magic'] = set_combine(sets.precast.FC, {body="Hashishin Mintan +3"})
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = { ammo="Aurgelmir Orb +1",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Assim. Jubbah +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- right_ear="Ishvara Earring",
- left_ring="Cornelia's Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}}}
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Requiescat'] = {ammo="Crepuscular Pebble",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Assim. Jubbah +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- right_ear="Ishvara Earring",
- left_ring="Cornelia's Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}}}
- sets.precast.WS['Sanguine Blade'] = {
- ammo="Pemphredo Tathlum",
- head="Pixie Hairpin +1",
- body={ name="Nyame Mail", augments={'Path: A',}},
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Baetyl Pendant",
- waist="Sacro Cord",
- left_ear="Regal Earring",
- right_ear="Friomisi Earring",
- left_ring="Shiva Ring +1",
- right_ring="Archon Ring",
- back={ name="Rosmerta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Magic Damage +10','Haste+10',}}}
- sets.precast.WS['Seraph Blade'] = {
- ammo="Pemphredo Tathlum",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body={ name="Nyame Mail", augments={'Path: A',}},
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Baetyl Pendant",
- waist="Orpheus's Sash",
- left_ear="Regal Earring",
- right_ear="Friomisi Earring",
- left_ring="Shiva Ring +1",
- right_ring="Cornelia's Ring",
- back={ name="Rosmerta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Magic Damage +10','Haste+10',}},}
- sets.precast.WS['Red Lotus Blade'] = set_combine(sets.precast.WS['Seraph Blade'], {})
- sets.precast.WS['Chant du Cygne'] = {ammo="Coiste Bodhar",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Assim. Jubbah +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist="Fotia Belt",
- left_ear="Odr Earring",
- right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- left_ring="Cornelia's Ring",
- right_ring="Ilabrat Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},}
- sets.precast.WS['Savage Blade'] = {ammo="Crepuscular Pebble",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Assim. Jubbah +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- right_ear="Ishvara Earring",
- left_ring="Cornelia's Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}}}
- sets.precast.WS['Expiacion'] = {ammo="Crepuscular Pebble",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Assim. Jubbah +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- right_ear="Ishvara Earring",
- left_ring="Cornelia's Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}}}
- sets.precast.WS['Black Halo'] = {ammo="Crepuscular Pebble",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Assim. Jubbah +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- right_ear="Ishvara Earring",
- left_ring="Cornelia's Ring",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}}}
- -- Midcast Sets
- sets.midcast.FastRecast = set_combine(sets.precast.FC, {})
- sets.midcast['Blue Magic'] = set_combine(sets.precast.FC,{body="Hashishin Mintan +3",
- hands="Hashi. Bazu. +2"})
- -- Physical Spells --
- sets.midcast['Blue Magic'].Physical = {ammo="Coiste Bodhar",
- head="Hashishin Kavuk +3",
- body="Hashishin Mintan +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Hashishin Tayt +2",
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Rep. Plat. Medal",
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear="Telos Earring",
- right_ear="Balder Earring +1",
- left_ring="Ilabrat Ring",
- right_ring="Sroda Ring",
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},}
- sets.midcast['Blue Magic'].PhysicalAcc = {}
- sets.midcast['Blue Magic'].PhysicalStr = set_combine(sets.midcast['Blue Magic'].Physical,
- {})
- sets.midcast['Blue Magic'].PhysicalDex = set_combine(sets.midcast['Blue Magic'].Physical,
- {})
- sets.midcast['Blue Magic'].PhysicalVit = set_combine(sets.midcast['Blue Magic'].Physical,
- {})
- sets.midcast['Blue Magic'].PhysicalAgi = set_combine(sets.midcast['Blue Magic'].Physical,
- {})
- sets.midcast['Blue Magic'].PhysicalInt = set_combine(sets.midcast['Blue Magic'].Physical,
- {ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
- feet="Hashi. Basmak +3",
- neck="Sibyl Scarf",
- waist={ name="Acuity Belt +1", augments={'Path: A',}},
- right_ear="Regal Earring",
- left_ring="Shiva Ring +1",
- right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','Haste+10','Phys. dmg. taken-10%',}}})
- sets.midcast['Blue Magic'].PhysicalMnd = set_combine(sets.midcast['Blue Magic'].PhysicalInt,
- {})
- sets.midcast['Blue Magic'].PhysicalChr = set_combine(sets.midcast['Blue Magic'].Physical,
- {})
- sets.midcast['Blue Magic'].PhysicalHP = set_combine(sets.midcast['Blue Magic'].Physical)
- -- Magical Spells --
- sets.midcast['Blue Magic'].Magical = {ammo="Pemphredo Tathlum",
- head="Hashishin Kavuk +3",
- body="Hashishin Mintan +3",
- hands="Hashi. Bazu. +2",
- legs="Hashishin Tayt +2",
- feet="Hashi. Basmak +3",
- neck="Baetyl Pendant",
- waist="Orpheus's Sash",
- left_ear="Regal Earring",
- right_ear="Friomisi Earring",
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Shiva Ring +1",
- back={ name="Rosmerta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','Haste+10','Phys. dmg. taken-10%',}}}
- sets.midcast['Blue Magic'].Magical.Resistant = set_combine(sets.midcast['Blue Magic'].Magical, {
- neck="Mirage Stole +2",
- waist="Sacro Cord",
- left_ear="Crep. Earring",
- right_ear={ name="Hashi. Earring +1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','"Dbl.Atk."+5',}},
- right_ring="Stikini Ring +1",})
- sets.midcast['Blue Magic']['Tenebral Crush'] = set_combine(sets.midcast['Blue Magic'].Magical,
- {head="Pixie Hairpin +1",right_ring="Archon Ring"})
- sets.midcast['Blue Magic']['Tenebral Crush'].Resistant = set_combine(sets.midcast['Blue Magic'].Magical,
- {head="Pixie Hairpin +1",
- neck="Mirage Stole +2",
- waist="Sacro Cord",
- left_ear="Crep. Earring",
- right_ear={ name="Hashi. Earring +1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+15','Mag. Acc.+15','"Dbl.Atk."+5',}},
- right_ring="Archon Ring"})
- sets.midcast['Blue Magic'].MagicalMnd = set_combine(sets.midcast['Blue Magic'].Magical,
- {})
- sets.midcast['Blue Magic'].MagicalChr = set_combine(sets.midcast['Blue Magic'].Magical)
- sets.midcast['Blue Magic'].MagicalVit = set_combine(sets.midcast['Blue Magic'].Magical,
- {})
- sets.midcast['Blue Magic'].MagicalDex = set_combine(sets.midcast['Blue Magic'].Magical)
- sets.midcast['Blue Magic'].MagicAccuracy = {ammo="Pemphredo Tathlum",
- head="Assim. Keffiyeh +3",
- body="Hashishin Mintan +3",
- hands="Hashi. Bazu. +2",
- legs="Hashishin Tayt +2",
- feet="Hashi. Basmak +3",
- neck="Mirage Stole +2",
- waist="Luminary Sash",
- left_ear="Regal Earring",
- right_ear={ name="Hashi. Earring +1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+12','Mag. Acc.+12','"Dbl.Atk."+4',}},
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Stikini Ring +1",
- back={ name="Rosmerta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','Haste+10','Phys. dmg. taken-10%',}}}
- -- Breath Spells --
- sets.midcast['Blue Magic'].Breath = {ammo="Pemphredo Tathlum",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body={ name="Nyame Mail", augments={'Path: A',}},
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Baetyl Pendant",
- waist="Orpheus's Sash",
- left_ear="Regal Earring",
- right_ear="Friomisi Earring",
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Shiva Ring +1",
- back={ name="Rosmerta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','Haste+10','Phys. dmg. taken-10%'}}}
- -- Other Types --
- sets.midcast['Blue Magic'].Stun = set_combine(sets.midcast['Blue Magic'].MagicAccuracy, {})
- sets.midcast['Blue Magic']['White Wind'] = {ammo="Egoist's Tathlum",
- head="Telchine Cap",
- body="Pinga Tunic +1",
- hands={ name="Telchine Gloves", augments={'"Cure" potency +7%','HP+47',}},
- legs="Pinga Pants +1",
- feet={ name="Carmine Greaves +1", augments={'HP+80','MP+80','Phys. dmg. taken -4',}},
- neck={ name="Unmoving Collar +1", augments={'Path: A',}},
- waist="Plat. Mog. Belt",
- left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- right_ear="Tuisto Earring",
- left_ring="Eihwaz Ring",
- right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- back="Moonlight Cape",}
- sets.midcast['Blue Magic'].Healing = {
- ammo="Pemphredo Tathlum",
- head="Aya. Zucchetto +2",
- body="Vrikodara Jupon",
- hands={ name="Telchine Gloves", augments={'Pet: DEF+20','Pet: "Regen"+3','Pet: Damage taken -4%',}},
- legs="Gyve Trousers",
- feet="Aya. Gambieras +2",
- neck="Phalaina Locket",
- waist="Sacro Cord",
- left_ear="Regal Earring",
- right_ear="Celestial Earring",
- left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
- right_ring="Sirona's Ring",
- back="Solemnity Cape"}
- sets.midcast['Blue Magic'].SkillBasedBuff = {ammo="Staunch Tathlum +1",
- head={ name="Luh. Keffiyeh +3", augments={'Enhances "Convergence" effect',}},
- body="Assim. Jubbah +3",
- hands="Hashi. Bazu. +2",
- legs="Hashishin Tayt +2",
- feet={ name="Luhlaza Charuqs +1", augments={'Enhances "Diffusion" effect',}},
- neck="Mirage Stole +2",
- waist="Plat. Mog. Belt",
- right_ear={ name="Hashi. Earring +1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+12','Mag. Acc.+12','"Dbl.Atk."+4',}},
- left_ring="Stikini Ring +1",
- back={ name="Cornflower Cape", augments={'MP+22','Accuracy+2','Blue Magic skill +10',}}}
- sets.midcast['Blue Magic'].Buff = {}
- sets.midcast.Protect = {ring1="Sheltered Ring"}
- sets.midcast.Protectra = {ring1="Sheltered Ring"}
- sets.midcast.Shell = {ring1="Sheltered Ring"}
- sets.midcast.Shellra = {ring1="Sheltered Ring"}
- -- Sets to return to when not performing an action.
- -- Gear for learning spells: +skill and AF hands.
- sets.Learning = {ammo="Mavi Tathlum",hands="Assimilator's Bazubands"}
- --head="Luh. Keffiyeh +3",
- --body="Assimilator's Jubbah",hands="Assimilator's Bazubands +1",
- --back="Cornflower Cape",legs="Mavi Tayt +2",feet="Luhlaza Charuqs"}
- sets.latent_refresh = {waist="Fucho-no-obi"}
- -- Resting sets
- sets.resting = {}
- -- Idle sets
- sets.idle = {head={ name="Nyame Helm", augments={'Path: B',}},
- body="Hashishin Mintan +3",
- hands={ name="Gleti's Gauntlets", augments={'Path: A',}},
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet="Hashi. Basmak +3",
- neck="Sibyl Scarf",
- waist="Fucho-no-Obi",
- left_ear="Hearty Earring",
- right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- left_ring="Stikini Ring +1",
- right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'INT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
- sets.idle.PDT = {ammo="Staunch Tathlum +1",
- head="Volte Cap",
- body="Hashishin Mintan +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck={ name="Loricate Torque +1", augments={'Path: A',}},
- waist="Plat. Mog. Belt",
- left_ear="Eabani Earring",
- right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- left_ring="Stikini Ring +1",
- right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- back={ name="Rosmerta's Cape", augments={'INT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
- sets.idle.Town = set_combine(sets.idle, {legs= "Carmine Cuisses +1"})
- sets.idle.Learning = set_combine(sets.idle, sets.Learning)
- -- Defense sets
- sets.defense.PDT = {ammo="Staunch Tathlum +1",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Malignance Tabard",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Malignance Tights",
- feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist="Reiki Yotai",
- left_ear="Cessance Earring",
- right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- left_ring="Epona's Ring",
- right_ring="Chirich Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
- sets.defense.MDT = {}
- sets.Kiting = {legs="Carmine Cuisses +1"}
- -- 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.Normal = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist="Windbuffet Belt +1",
- left_ear="Suppanomimi",
- right_ear="Dedition Earring",
- left_ring="Epona's Ring",
- right_ring="Petrov Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%'}},}
- sets.engaged.AccLow = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Gleti's Cuirass", augments={'Path: A',}},
- hands={ name="Gleti's Gauntlets", augments={'Path: A',}},
- legs="Malignance Tights",
- feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist="Reiki Yotai",
- left_ear="Suppanomimi",
- right_ear="Hashi. Earring +1",
- left_ring="Chirich Ring +1",
- right_ring="Chirich Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
- sets.engaged.AccHigh = set_combine(sets.engaged.Acc, {})
- sets.engaged.Tizona = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- hands={ name="Gleti's Gauntlets", augments={'Path: A',}},
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
- left_ear="Suppanomimi",
- right_ear="Hashi. Earring +1",
- left_ring="Epona's Ring",
- right_ring="Chirich Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
- sets.engaged.Tizona.PDT = {ammo="Aurgelmir Orb +1",
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Gleti's Cuirass", augments={'Path: A',}},
- hands={ name="Gleti's Gauntlets", augments={'Path: A',}},
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist="Reiki Yotai",
- left_ear="Suppanomimi",
- right_ear="Hashi. Earring +1",
- left_ring="Epona's Ring",
- right_ring="Chirich Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
- sets.engaged.Tizona.AM3 = set_combine(sets.engaged.Tizona, {head="Aya. Zucchetto +2",
- body="Malignance Tabard",
- hands="Gleti's Gauntlets",
- legs="Malignance Tights",
- feet="Malignance Boots",
- waist="Reiki Yotai",
- left_ear="Suppanomimi",
- right_ear="Dedition Earring",
- left_ring="Chirich Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%'}}})
- sets.engaged.Learning = set_combine(sets.engaged.Normal, sets.Learning)
- sets.engaged.Hybrid = {ammo="Staunch Tathlum +1",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Malignance Tabard",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Malignance Tights",
- feet="Malignance Boots",
- neck={ name="Mirage Stole +2", augments={'Path: A',}},
- waist="Reiki Yotai",
- left_ear="Cessance Earring",
- right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- left_ring="Epona's Ring",
- right_ring="Chirich Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%'}}}
- sets.engaged.Hybrid.AM3 = {}
- sets.self_healing = {ring1="Kunaji Ring",ring2="Asklepian Ring"}
- 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 unbridled_spells:contains(spell.english) and not state.Buff['Unbridled Learning'] then
- eventArgs.cancel = true
- windower.send_command('@input /ja "Unbridled Learning" <me>; wait 1.5; input /ma "'..spell.name..'" '..spell.target.name)
- end
- end
- -- 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)
- -- Add enhancement gear for Chain Affinity, etc.
- if spell.skill == 'Blue Magic' then
- for buff,active in pairs(state.Buff) do
- if active and sets.buff[buff] then
- equip(sets.buff[buff])
- end
- end
- if spellMap == 'Healing' and spell.target.type == 'SELF' and sets.self_healing then
- equip(sets.self_healing)
- end
- end
- -- If in learning mode, keep on gear intended to help with that, regardless of action.
- if state.OffenseMode.value == 'Learning' then
- equip(sets.Learning)
- 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 buff:startswith('Aftermath') then
- classes.CustomMeleeGroups:clear()
- if player.equipment.main == 'Tizona' then
- if (buff == "Aftermath: Lv.3" and gain) or buffactive['Aftermath: Lv.3'] then
- classes.CustomMeleeGroups:append('AM3')
- add_to_chat(8, '-------------Mythic AM3 UP-------------')
- elseif (buff == "Aftermath: Lv.3" and not gain) then
- add_to_chat(8, '-------------Mythic AM3 DOWN-------------')
- end
- if not midaction() then
- handle_equipping_gear(player.status)
- end
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- -- Custom spell mapping.
- -- Return custom spellMap value that can override the default spell mapping.
- -- Don't return anything to allow default spell mapping to be used.
- function job_get_spell_map(spell, default_spell_map)
- if spell.skill == 'Blue Magic' then
- for category,spell_list in pairs(blue_magic_maps) do
- if spell_list:contains(spell.english) then
- return category
- end
- end
- end
- end
- -- Modify the default idle set after it was constructed.
- function customize_idle_set(idleSet)
- if player.mpp < 51 then
- set_combine(idleSet, sets.latent_refresh)
- end
- return idleSet
- end
- -- Called by the 'update' self-command, for common needs.
- -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
- function job_update(cmdParams, eventArgs)
- update_combat_form()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function update_combat_form()
- -- Check for H2H or single-wielding
- if player.equipment.sub == "Genbu's Shield" or player.equipment.sub == 'empty' then
- state.CombatForm:reset()
- else
- state.CombatForm:set('DW')
- end
- end
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book
- if player.sub_job == 'DNC' then
- set_macro_page()
- else
- set_macro_page(1,12)
- end
- end
- function self_command(command)
- if command == 'C1' then
- TP_ind = TP_ind +1
- if TP_ind > #sets.TP.index then TP_ind = 1 end
- send_command('@input /echo <----- TP Set changed to '..sets.TP.index[TP_ind]..' ----->')
- equip(sets.TP[sets.TP.index[TP_ind]])
- end
- end
- function job_self_command(cmdParams, eventArgs)
- gearinfo(cmdParams, eventArgs)
- end
- function gearinfo(cmdParams, eventArgs)
- if cmdParams[1] == 'gearinfo' then
- if type(cmdParams[4]) == 'string' then
- if cmdParams[4] == 'true' then
- moving = true
- elseif cmdParams[4] == 'false' then
- moving = false
- end
- end
- if not midaction() then
- job_update()
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement