Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Original: Motenten / Modified: Arislan
- -------------------------------------------------------------------------------------------------------------------
- -- Keybinds
- -------------------------------------------------------------------------------------------------------------------
- -- Modes: [ F9 ] Cycle Offense Modes
- -- [ CTRL+F9 ] Cycle Hybrid Modes
- -- [ WIN+F9 ] Cycle Weapon Skill Modes
- -- [ F10 ] Emergency -PDT Mode
- -- [ ALT+F10 ] Toggle Kiting Mode
- -- [ F11 ] Emergency -MDT Mode
- -- [ F12 ] Update Current Gear / Report Current Status
- -- [ CTRL+F12 ] Cycle Idle Modes
- -- [ ALT+F12 ] Cancel Emergency -PDT/-MDT Mode
- -- [ WIN+C ] Toggle Capacity Points Mode
- --
- -- Abilities: [ CTRL+- ] Chain Affinity
- -- [ CTRL+= ] Burst Affinity
- -- [ ALT+- ] Efflux
- -- [ CTRL+[ ] Diffusion
- -- [ CTRL+] ] Unbridled Learning
- -- [ CTRL+Numpad/ ] Berserk
- -- [ CTRL+Numpad* ] Warcry
- -- [ CTRL+Numpad- ] Aggressor
- --
- -- Spells: [ CTRL+` ] Blank Gaze
- -- [ ALT+Q ] Nature's Meditation
- -- [ ALT+W ] Erratic Flutter
- -- [ ALT+R ] Battery Charge/Refresh
- -- [ ALT+E ] Occultation
- -- [ ALT+Y ] Barrier Tusk/Phalanx
- -- [ ALT+U ] Diamondhide/Stoneskin
- -- [ ALT+] ] Carcharian Verve
- -- [ ALT+[ ] Mighty Guard
- -- [ ALT+. ] Sneak
- -- [ ALT+, ] Invisible/Spectral Jig
- -- [ ALT+Numpad+ ] Utsusemi: Ichi
- -- [ CTRL+Numpad+ ] Utsusemi: Ni
- --
- -- Items: [ ALT+. ] Silent Oil
- -- [ ALT+, ] Prism Powder
- --
- -- WS: [ CTRL+Numpad7 ] Sanguine Blade
- -- [ CTRL+Numpad8 ] Chant Du Cygne
- -- [ CTRL+Numpad9 ] Savage Blade
- -- [ CTRL+Numpad4 ] Requiescat
- -- [ CTRL+Numpad5 ] Expiacion
- -- [ CTRL+Numpad1 ] Fast Blade
- -- [ CTRL+Numpad2 ] Burning Blade
- -- [ CTRL+Numpad3 ] Red Lotus Blade
- --
- --
- --------------------------------------------------------------------------------------------------------------------
- -- 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()
- 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 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','Saurian Slide','Sinker Drill','Spinal Cleave','Sweeping Gouge',
- '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'}
- -- Physical spells with Vit stat mod
- blue_magic_maps.PhysicalVit = S{'Body Slam','Cannonball','Delta Thrust','Glutinous Dart','Grand Slam',
- 'Power Attack','Quad. Continuum','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 with the typical Int mod
- blue_magic_maps.Magical = S{'Anvil Lightning','Blastbomb','Blazing Bound','Bomb Toss','Cursed Sphere',
- 'Droning Whirlwind','Embalming Earth','Entomb','Firespit','Foul Waters','Ice Break','Leafstorm',
- 'Maelstrom','Molting Plumage','Nectarous Deluge','Regurgitation','Rending Deluge','Scouring Spate',
- 'Silent Storm','Spectral Floe','Subduction','Tem. Upheaval','Water Bomb'}
- blue_magic_maps.MagicalDark = S{'Dark Orb','Death Ray','Eyes On Me','Evryone. Grudge','Palling Salvo',
- 'Tenebral Crush'}
- blue_magic_maps.MagicalLight = S{'Blinding Fulgor','Diffusion Ray','Radiant Breath','Rail Cannon',
- 'Retinal Glare'}
- -- Magical spells with a primary Mnd mod
- blue_magic_maps.MagicalMnd = S{'Acrid Stream','Magic Hammer','Mind Blast'}
- -- Magical spells with a primary Chr mod
- blue_magic_maps.MagicalChr = S{'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 Saber','Chaotic Eye',
- 'Cimicine Discharge','Cold Wave','Corrosive Ooze','Demoralizing Roar','Digest','Dream Flower',
- 'Enervation','Feather Tickle','Filamented Hold','Frightful Roar','Geist Wall','Hecatomb Wave',
- 'Infrasonics','Jettatura','Light of Penance','Lowing','Mind Blast','Mortal Ray','MP Drainkiss',
- 'Osmosis','Reaving Wind','Sandspin','Sandspray','Sheep Song','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','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','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'}
- blue_magic_maps.Refresh = S{'Battery Charge'}
- -- Spells that require Unbridled Learning to cast.
- unbridled_spells = S{'Absolute Terror','Bilgestorm','Blistering Roar','Bloodrake','Carcharian Verve','Cesspool',
- 'Crashing Thunder','Cruel Joke','Droning Whirlwind','Gates of Hades','Harden Shell','Mighty Guard',
- 'Polar Roar','Pyric Bulwark','Tearing Gust','Thunderbolt','Tourbillion','Uproot'}
- state.CP = M(false, "Capacity Points Mode")
- lockstyleset = 1
- -- Setup Haste Detection
- haste = nil
- p = require('packets')
- update_offense_mode()
- 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', 'HighAcc', 'TH')
- state.HybridMode:options('Normal', 'DT')
- state.RangedMode:options('Normal', 'Acc')
- state.WeaponskillMode:options('Normal', 'Acc')
- state.CastingMode:options('Normal', 'Resistant')
- state.PhysicalDefenseMode:options('PDT', 'MDT')
- state.IdleMode:options('Normal', 'DT')--, 'Learning')
- state.MagicBurst = M(false, 'Magic Burst')
- state.CP = M(false, "Capacity Points Mode")
- -- Additional local binds
- send_command('bind ^` input /ma "Blank Gaze" <t>')
- send_command('bind !` gs c toggle MagicBurst')
- 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('bind ^[ input /ja "Diffusion" <me>')
- send_command('bind ^] input /ja "Unbridled Learning" <me>')
- send_command('bind !q input /ma "Nat. Meditation" <me>')
- send_command('bind ^q input /ma "Cocoon" <me>')
- send_command('bind !w input /ma "Erratic Flutter" <me>')
- send_command('bind !e input /ma "Occultation" <me>')
- send_command('bind !r input /ma "Battery Charge" <me>')
- send_command('bind !u input /ma "Diamondhide" <me>')
- send_command('bind @u input /ma "Metallic Body" <me>')
- send_command('bind !] input /ma "Carcharian Verve" <me>')
- send_command('bind ![ input /ma "Mighty Guard" <me>')
- send_command('bind !t input /ma "Aquaveil" <me>')
- send_command('bind ^. input /ma "Magic Hammer" <t>')
- send_command('bind ^z input /item "Echo Drops" <me>')
- send_command('bind ^x input /item "Remedy" <me>')
- send_command('bind ^c input /item "Holy Water" <me>')
- if player.sub_job == "RDM" then
- send_command('bind !r input /ma "Refresh" <stpc>')
- send_command('bind !y input /ma "Phalanx" <me>')
- send_command('bind !u input /ma "Stoneskin" <me>')
- send_command('bind !. input /ma "Sneak" <me>')
- send_command('bind !, input /ma "Invisible" <me>')
- elseif player.sub_job == "DNC" then
- send_command('bind !. input /ja "Spectral Jig" <me>')
- elseif player.sub_job == "NIN" then
- send_command('bind !. input /ma "Monomi: Ichi" <me>')
- send_command('bind !, input /ma "Tonko: Ni" <me>')
- send_command('bind !numpad+ input /ma "Utsusemi: Ichi" <me>')
- send_command('bind ^numpad+ input /ma "Utsusemi: Ni" <me>')
- elseif player.sub_job == 'WAR' then
- send_command('bind ^numpad/ input /ja "Berserk" <me>')
- send_command('bind ^numpad* input /ja "Warcry" <me>')
- send_command('bind ^numpad- input /ja "Aggressor" <me>')
- send_command('bind !. input /item "Silent Oil" <me>')
- send_command('bind !, input /item "Prism Powder" <me>')
- else
- send_command('bind !r input /ma "Battery Charge" <me>')
- send_command('bind !y input /ma "Barrier Tusk" <me>')
- send_command('bind !u input /ma "Diamondhide" <me>')
- send_command('bind @u input /ma "Metallic Body" <me>')
- send_command('bind !. input /item "Silent Oil" <me>')
- send_command('bind !, input /item "Prism Powder" <me>')
- end
- send_command('bind @c gs c toggle CP')
- send_command('bind ^numpad7 input /ws "Sanguine Blade" <t>')
- send_command('bind ^numpad8 input /ws "Chant du Cygne" <t>')
- send_command('bind ^numpad9 input /ws "Savage Blade" <t>')
- send_command('bind ^numpad4 input /ws "Requiescat" <t>')
- send_command('bind ^numpad5 input /ws "Expiacion" <t>')
- send_command('bind ^numpad1 input /ws "Fast Blade" <t>')
- send_command('bind ^numpad2 input /ws "Burning Blade" <t>')
- send_command('bind ^numpad3 input /ws "Red Lotus Blade" <t>')
- select_default_macro_book()
- set_lockstyle()
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind !t')
- send_command('unbind ^`')
- send_command('unbind !`')
- send_command('unbind ^-')
- send_command('unbind ^=')
- send_command('unbind ^[')
- send_command('unbind ^]')
- send_command('unbind ![')
- send_command('unbind !]')
- send_command('unbind !q')
- send_command('unbind ^q')
- send_command('unbind !w')
- send_command('unbind !e')
- send_command('unbind !t')
- send_command('unbind !r')
- send_command('unbind !y')
- send_command('unbind !u')
- send_command('unbind @u')
- send_command('unbind !p')
- send_command('unbind ^.')
- send_command('unbind !,')
- send_command('unbind !.')
- send_command('unbind ^numpad+')
- send_command('unbind !numpad+')
- send_command('unbind @c')
- send_command('unbind @h')
- send_command('unbind ^numlock')
- send_command('unbind ^numpad/')
- send_command('unbind ^numpad*')
- send_command('unbind ^numpad-')
- send_command('unbind ^numpad7')
- send_command('unbind ^numpad9')
- send_command('unbind ^numpad4')
- send_command('unbind ^numpad5')
- send_command('unbind ^numpad1')
- send_command('unbind ^numpad2')
- send_command('unbind ^numpad3')
- send_command('unbind ^z')
- send_command('unbind ^x')
- send_command('unbind ^c')
- send_command('unbind #`')
- send_command('unbind #1')
- send_command('unbind #2')
- send_command('unbind #3')
- send_command('unbind #4')
- send_command('unbind #5')
- send_command('unbind #6')
- send_command('unbind #7')
- send_command('unbind #8')
- send_command('unbind #9')
- send_command('unbind #0')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Precast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Precast sets to enhance JAs
- -- Enmity set
- sets.Enmity = {
- ammo="Sapience Orb", --2
- head="Halitus Helm", --8
- body="Emet Harness +1", --10
- hands="Kurys Gloves", --9
- neck="Unmoving Collar +1", --10
- ear1="Cryptic Earring", --4
- ear2="Friomisi Earring", --2
- ring1="Supershear Ring", --5
- ring2="Eihwaz Ring", --5
- waist="Kasiri Belt", --3
- }
- sets.precast.JA['Provoke'] = sets.Enmity
- sets.buff['Burst Affinity'] = {legs="Assim. Shalwar +2", feet="Hashi. Basmak +1"}
- sets.buff['Diffusion'] = {feet="Luhlaza Charuqs +3"}
- sets.buff['Efflux'] = {legs="Hashishin Tayt +1"}
- sets.precast.JA['Azure Lore'] = {hands="Luhlaza Bazubands +3"}
- sets.precast.JA['Chain Affinity'] = {feet="Assim. Charuqs +2"}
- --sets.precast.JA['Convergence'] = {head="Luh. Keffiyeh +3"}
- --sets.precast.JA['Enchainment'] = {body="Luhlaza Jubbah +3"}
- sets.precast.FC = {
- main={ name="Vampirism", augments={'STR+10','INT+10','"Occult Acumen"+10','DMG:+15',}},
- sub={ name="Vampirism", augments={'STR+5','INT+1','DMG:+1',}},
- ammo="Sapience Orb",
- head={ name="Carmine Mask", augments={'Accuracy+15','Mag. Acc.+10','"Fast Cast"+3',}},
- body={ name="Taeon Tabard", augments={'Accuracy+19 Attack+19','"Fast Cast"+5','Phalanx +3',}},
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
- 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="Kishar Ring",
- right_ring="Rahab Ring",
- back="Swith Cape",
- }
- sets.precast.FC['Blue Magic'] = set_combine(sets.precast.FC, {body="Hashishin Mintan +1"})
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {ammo="Impatiens", ear2="Mendi. Earring"})
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {
- ammo="Impatiens",
- body="Passion Jacket",
- })
- ------------------------------------------------------------------------------------------------
- ------------------------------------- Weapon Skill Sets ----------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.precast.WS = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Mantoptera Eye",
- head={ name="Herculean Helm", augments={'Attack+17','Weapon skill damage +4%','DEX+13','Accuracy+9',}},
- body="Assim. Jubbah +3",
- 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+28','"Triple Atk."+3','DEX+1',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Mache Earring",
- right_ear="Brutal Earring",
- left_ring="Apate Ring",
- right_ring="Ramuh Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
- }
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Falcon Eye",
- head={ name="Herculean Helm", augments={'Attack+17','Weapon skill damage +4%','DEX+13','Accuracy+9',}},
- 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="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Mache Earring",
- right_ear="Mache Earring",
- left_ring="Ramuh Ring +1",
- right_ring="Ramuh Ring +1",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
- })
- sets.precast.WS['Chant du Cygne'] = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Jukukik Feather",
- 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+28','"Triple Atk."+3','DEX+1',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Brutal Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring="Begrudging 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['Chant du Cygne'].Acc = set_combine(sets.precast.WS['Chant du Cygne'], {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Falcon Eye",
- head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
- 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="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Iqabi Necklace",
- waist="Grunfeld Rope",
- left_ear="Telos Earring",
- right_ear="Brutal Earring",
- left_ring="Ramuh Ring +1",
- right_ring="Epona's Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
- })
- sets.precast.WS['Vorpal Blade'] = sets.precast.WS['Chant du Cygne']
- sets.precast.WS['Vorpal Blade'].Acc = sets.precast.WS['Chant du Cygne'].Acc
- sets.precast.WS['Savage Blade'] = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Mantoptera Eye",
- head={ name="Herculean Helm", augments={'Weapon skill damage +4%','STR+9','Accuracy+15','Attack+11',}},
- body="Assim. Jubbah +3",
- hands="Jhakri Cuffs +2",
- legs={ name="Luhlaza Shalwar +3", augments={'Enhances "Assimilation" effect',}},
- feet={ name="Herculean Boots", augments={'Accuracy+14 Attack+14','Weapon skill damage +4%','STR+12',}},
- neck="Caro Necklace",
- waist="Prosilio Belt +1",
- left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- right_ear="Ishvara Earring",
- left_ring="Ifrit Ring +1",
- right_ring="Ifrit Ring +1",
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
- }
- sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Falcon Eye",
- head={ name="Herculean Helm", augments={'Weapon skill damage +4%','STR+9','Accuracy+15','Attack+11',}},
- body="Assim. Jubbah +3",
- hands="Jhakri Cuffs +2",
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Caro Necklace",
- waist="Grunfeld Rope",
- left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +25',}},
- right_ear="Ishvara Earring",
- left_ring="Ifrit Ring +1",
- right_ring="Ifrit Ring +1",
- back={ name="Rosmerta's Cape", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
- })
- sets.precast.WS['Requiescat'] = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Hydrocera",
- head="Jhakri Coronal +2",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2",
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +25',}},
- right_ear="Brutal Earring",
- left_ring="Levia. Ring",
- right_ring="Epona's Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
- }
- sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS['Requiescat'], {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Hydrocera",
- head="Jhakri Coronal +2",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet="Jhakri Pigaches +2",
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Mache Earring",
- right_ear="Mache Earring",
- left_ring="Ramuh Ring +1",
- right_ring="Epona's Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
- })
- sets.precast.WS['Expiacion'] = sets.precast.WS['Savage Blade']
- sets.precast.WS['Expiacion'].Acc = set_combine(sets.precast.WS['Expiacion'], {
- body=gear.Adhemar_B_body,
- feet=gear.Herc_STP_feet,
- ear2="Telos Earring",
- })
- sets.precast.WS['Sanguine Blade'] = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Pemphredo Tathlum",
- head="Pixie Hairpin +1",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs={ name="Luhlaza Shalwar +3", augments={'Enhances "Assimilation" effect',}},
- feet="Jhakri Pigaches +2",
- neck="Sanctity Necklace",
- waist="Eschan Stone",
- left_ear="Hecate's Earring",
- right_ear="Friomisi Earring",
- left_ring="Shiva Ring +1",
- right_ring="Shiva Ring +1",
- back={ name="Cornflower Cape", augments={'MP+21','DEX+4','Accuracy+2','Blue Magic skill +10',}},
- }
- sets.precast.WS['True Strike'] = sets.precast.WS['Savage Blade']
- sets.precast.WS['True Strike'].Acc = sets.precast.WS['Savage Blade'].Acc
- sets.precast.WS['Judgment'] = sets.precast.WS['True Strike']
- sets.precast.WS['Judgment'].Acc = sets.precast.WS['True Strike'].Acc
- sets.precast.WS['Black Halo'] = sets.precast.WS['True Strike']
- sets.precast.WS['Black Halo'].Acc = sets.precast.WS['True Strike'].Acc
- sets.precast.WS['Realmrazer'] = sets.precast.WS['Requiescat']
- sets.precast.WS['Realmrazer'].Acc = sets.precast.WS['Requiescat'].Acc
- sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS['Sanguine Blade'], {
- head="Jhakri Coronal +2",
- ring1="Levia. Ring +1",
- ring2="Weather. Ring +1",
- })
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Midcast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.midcast.FastRecast = sets.precast.FC
- sets.midcast.SpellInterrupt = {
- ammo="Impatiens", --10
- ring1="Evanescence Ring", --5
- waist="Rumination Sash", --10
- }
- sets.midcast['Blue Magic'] = {
- ammo="Mavi Tathlum",
- head="Luh. Keffiyeh +3",
- body="Assim. Jubbah +3",
- hands="Rawhide Gloves",
- legs="Hashishin Tayt +1",
- feet="Luhlaza Charuqs +3",
- neck="Incanter's Torque",
- ring1="Stikini Ring",
- ring2="Stikini Ring",
- back="Cornflower Cape",
- }
- sets.midcast['Blue Magic'].Physical = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Mantoptera Eye",
- head="Jhakri Coronal +2",
- body="Assim. Jubbah +3",
- hands="Jhakri Cuffs +2",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2",
- neck="Caro Necklace",
- waist="Prosilo Belt +1",
- left_ear="Flame Pearl",
- right_ear="Flame Pearl",
- left_ring="Ifrit Ring +1",
- right_ring="Ifrit Ring +1",
- back={ name="Cornflower Cape", augments={'MP+21','DEX+4','Accuracy+2','Blue Magic skill +10',}},
- }
- sets.midcast['Blue Magic'].PhysicalAcc = set_combine(sets.midcast['Blue Magic'].Physical, {
- ammo="Falcon Eye",
- legs="Carmine Cuisses +1",
- neck="Sanctity Necklace",
- ear2="Mache Earring",
- })
- sets.midcast['Blue Magic'].PhysicalStr = sets.midcast['Blue Magic'].Physical
- sets.midcast['Blue Magic'].PhysicalDex = set_combine(sets.midcast['Blue Magic'].Physical, {
- ammo="Falcon Eye",
- ring2="Ilabrat Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
- })
- sets.midcast['Blue Magic'].PhysicalVit = sets.midcast['Blue Magic'].Physical
- sets.midcast['Blue Magic'].PhysicalAgi = set_combine(sets.midcast['Blue Magic'].Physical, {
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- ring2="Apate Ring",
- })
- sets.midcast['Blue Magic'].PhysicalInt = set_combine(sets.midcast['Blue Magic'].Physical, {
- ring1="Shiva Ring +1",
- back={ name="Cornflower Cape", augments={'MP+21','DEX+4','Accuracy+2','Blue Magic skill +10',}},
- })
- sets.midcast['Blue Magic'].PhysicalMnd = set_combine(sets.midcast['Blue Magic'].Physical, {
- ring1="Levia. Ring",
- })
- sets.midcast['Blue Magic'].PhysicalChr = set_combine(sets.midcast['Blue Magic'].Physical, {ear1="Handler's Earring", ear2="Handler's Earring +1"})
- sets.midcast['Blue Magic'].Magical = {
- main={ name="Nibiru Cudgel", augments={'MP+50','INT+10','"Mag.Atk.Bns."+15',}},
- sub={ name="Nibiru Cudgel", augments={'MP+50','INT+10','"Mag.Atk.Bns."+15',}},
- ammo="Pemphredo Tathlum",
- head="Jhakri Coronal +2",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs="Jhakri Slops +2",
- feet="Jhakri Pigaches +2",
- neck="Sanctity Necklace",
- waist="Eschan Stone",
- left_ear="Regal Earring",
- right_ear="Friomisi Earring",
- left_ring="Shiva Ring +1",
- right_ring="Shiva Ring +1",
- back={ name="Cornflower Cape", augments={'MP+21','DEX+4','Accuracy+2','Blue Magic skill +10',}},
- }
- sets.midcast['Blue Magic'].Magical.Resistant = set_combine(sets.midcast['Blue Magic'].Magical, {
- right_ear="Digni. Earring",
- left_ring="Jhakri Ring",
- right_ring="Kishar Ring",
- })
- sets.midcast['Blue Magic'].MagicalDark = set_combine(sets.midcast['Blue Magic'].Magical, {
- head="Pixie Hairpin +1",
- ring2="Archon Ring",
- })
- sets.midcast['Blue Magic'].MagicalLight = set_combine(sets.midcast['Blue Magic'].Magical, {
- ring2="Weather. Ring +1"
- })
- sets.midcast['Blue Magic'].MagicalMnd = set_combine(sets.midcast['Blue Magic'].Magical, {
- ring1="Levia. Ring",
- })
- sets.midcast['Blue Magic'].MagicalDex = set_combine(sets.midcast['Blue Magic'].Magical, {
- ring1="Ramuh Ring +1",
- ring2="Ilabrat Ring",
- })
- sets.midcast['Blue Magic'].MagicalVit = set_combine(sets.midcast['Blue Magic'].Magical, {})
- sets.midcast['Blue Magic'].MagicalChr = set_combine(sets.midcast['Blue Magic'].Magical, {ear1="Regal Earring", ear2="Handler's Earring +1"})
- sets.midcast['Blue Magic'].MagicAccuracy = {
- main={ name="Nibiru Cudgel", augments={'MP+50','INT+10','"Mag.Atk.Bns."+15',}},
- sub={ name="Nibiru Cudgel", augments={'MP+50','INT+10','"Mag.Atk.Bns."+15',}},
- ammo="Pemphredo Tathlum",
- head="Jhakri Coronal +2",
- body="Jhakri Robe +2",
- hands="Jhakri Cuffs +2",
- legs="Assim. Shalwar +2",
- feet="Jhakri Pigaches +2",
- neck="Sanctity Necklace",
- waist="Eschan Stone",
- left_ear="Regal Earring",
- right_ear="Digni. Earring",
- left_ring="Jhakri Ring",
- right_ring="Kishar Ring",
- back={ name="Cornflower Cape", augments={'MP+21','DEX+4','Accuracy+2','Blue Magic skill +10',}},
- }
- sets.midcast['Blue Magic'].Breath = sets.midcast['Blue Magic'].Magical
- sets.midcast['Blue Magic'].Stun = sets.midcast['Blue Magic'].MagicAccuracy
- sets.midcast['Blue Magic'].Healing = {
- ammo="Hydrocera",
- head={ name="Telchine Cap", augments={'"Cure" potency +6%','Enh. Mag. eff. dur. +8',}},
- body={ name="Telchine Chas.", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
- hands={ name="Telchine Gloves", augments={'"Fast Cast"+3','Enh. Mag. eff. dur. +10',}},
- legs="Gyve Trousers",
- feet={ name="Telchine Pigaches", augments={'"Cure" potency +6%','Enh. Mag. eff. dur. +10',}},
- neck="Phalaina Locket",
- waist="Austerity Belt",
- left_ear="Regal Earring",
- right_ear="Calamitous Earring",
- left_ring="Levia. Ring",
- right_ring="Kunaji Ring",
- back="Solemnity Cape",
- }
- sets.midcast['Blue Magic'].Buff = sets.midcast['Blue Magic']
- sets.midcast['Blue Magic'].Refresh = set_combine(sets.midcast['Blue Magic'], {head="Amalric Coif", waist="Gishdubar Sash", back="Grapevine Cape"})
- sets.midcast['Blue Magic'].SkillBasedBuff = sets.midcast['Blue Magic']
- sets.midcast['Blue Magic']['Occultation'] = set_combine(sets.midcast['Blue Magic'], {
- ammo="Mavi Tathlum",
- head="Carmine Mask +1",
- hands="Hashi. Bazu. +1",
- ear1="Etiolation Earring",
- ear2="Loquacious Earring",
- ring1="Kishar Ring",
- ring2="Prolix Ring",
- waist="Witful Belt",
- })
- sets.midcast['Blue Magic']['Carcharian Verve'] = set_combine(sets.midcast['Blue Magic'].Buff, {
- head="Amalric Coif",
- })
- sets.midcast['Enhancing Magic'] = {
- ammo="Impatiens",
- head={ name="Carmine Mask", augments={'Accuracy+15','Mag. Acc.+10','"Fast Cast"+3',}},
- body={ name="Telchine Chas.", augments={'"Cure" potency +7%',}},
- hands={ name="Amalric Gages", augments={'INT+10','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- feet={ name="Telchine Pigaches", augments={'"Cure" potency +6%',}},
- neck="Deviant Necklace",
- waist="Austerity Belt",
- left_ear="Gifted Earring",
- right_ear="Calamitous Earring",
- left_ring="Kishar Ring",
- right_ring="Prolix Ring",
- back="Solemnity Cape",
- }
- sets.midcast.EnhancingDuration = {
- head={ name="Telchine Cap", augments={'"Cure" potency +6%','Enh. Mag. eff. dur. +8',}},
- body={ name="Telchine Chas.", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +10',}},
- hands={ name="Telchine Gloves", augments={'"Fast Cast"+3','Enh. Mag. eff. dur. +10',}},
- legs={ name="Telchine Braconi", augments={'"Cure" potency +7%','Enh. Mag. eff. dur. +7',}},
- feet={ name="Telchine Pigaches", augments={'"Cure" potency +6%','Enh. Mag. eff. dur. +10',}},
- }
- sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {head="Amalric Coif", waist="Gishdubar Sash", back="Grapevine Cape"})
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
- sets.midcast.Phalanx = set_combine(sets.midcast['Enhancing Magic'], {
- body={ name="Taeon Tabard", augments={'Accuracy+19 Attack+19','"Fast Cast"+5','Phalanx +3',}},
- hands={ name="Taeon Gloves", augments={'Phalanx +2',}},
- legs={ name="Taeon Tights", augments={'Phalanx +2',}},
- feet={ name="Taeon Boots", augments={'Phalanx +3',}},
- })
- sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {head="Amalric Coif", waist="Emphatikos Rope"})
- sets.midcast.Protect = {ring1="Sheltered Ring"}
- sets.midcast.Protectra = sets.midcast.Protect
- sets.midcast.Shell = sets.midcast.Protect
- sets.midcast.Shellra = sets.midcast.Protect
- sets.midcast.Utsusemi = sets.midcast.SpellInterrupt
- ------------------------------------------------------------------------------------------------
- ----------------------------------------- Idle Sets --------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Resting sets
- sets.resting = {}
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Staunch Tathlum",
- head={ name="Herculean Helm", augments={'AGI+14','VIT+1','"Refresh"+2','Accuracy+20 Attack+20','Mag. Acc.+5 "Mag.Atk.Bns."+5',}},
- body="Jhakri Robe +2",
- hands="Aya. Manopolas +2",
- legs={ name="Rawhide Trousers", augments={'MP+50','"Fast Cast"+5','"Refresh"+1',}},
- feet="Aya. Gambieras +2",
- neck="Sanctity Necklace",
- waist="Fucho-no-Obi",
- left_ear="Ethereal Earring",
- right_ear="Etiolation Earring",
- left_ring={ name="Dark Ring", augments={'Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- right_ring="Defending Ring",
- back="Umbra Cape",
- }
- sets.idle.DT = set_combine(sets.idle, {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Staunch Tathlum",
- head="Aya. Zucchetto +2",
- body="Ayanmo Corazza +2",
- hands="Aya. Manopolas +2",
- legs="Aya. Cosciales +2",
- feet="Aya. Gambieras +2",
- neck="Loricate Torque +1",
- waist="Flume Belt",
- left_ear="Ethereal Earring",
- right_ear="Merman's Earring",
- left_ring={ name="Dark Ring", augments={'Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- right_ring="Defending Ring",
- back="Umbra Cape",
- })
- sets.idle.Weak = sets.idle.DT
- --sets.idle.Learning = set_combine(sets.idle, sets.Learning)
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Defense Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.defense.PDT = sets.idle.DT
- sets.defense.MDT = sets.idle.DT
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Engaged Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- 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
- sets.engaged = {
- main="Almace",
- sub={ name="Colada", augments={'"Dbl.Atk."+2','STR+8','Accuracy+21','DMG:+17',}},
- ammo="Falcon Eye",
- 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="Herculean Trousers", augments={'Accuracy+25','"Triple Atk."+3','DEX+4',}},
- feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
- neck="Lissome Necklace",
- waist="Windbuffet Belt +1",
- left_ear="Brutal Earring",
- right_ear="Cessance Earring",
- left_ring="Apate Ring",
- right_ring="Epona's Ring",
- back={ name="Rosmerta's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10',}},
- }
- sets.engaged.HighAcc = set_combine(sets.engaged, {
- head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
- legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
- neck="Combatant's Torque",
- waist="Kentarch Belt +1",
- left_ear="Telos Earring",
- left_ring="Cacoethic Ring",
- right_ring="Ramuh Ring +1",
- })
- sets.engaged.TH = set_combine(sets.engaged, {
- waist="Chaac Belt",
- })
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Hybrid Sets -------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.engaged.Hybrid = {
- ammo="Staunch Tathlum", --2/2
- body="Ayanmo Corazza +2", --6/6
- neck="Loricate Torque +1", --6/6
- ring2="Defending Ring", --10/10
- }
- sets.engaged.DT = set_combine(sets.engaged, sets.engaged.Hybrid)
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Special Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.magic_burst = set_combine(sets.midcast['Blue Magic'].Magical, {
- body="Samnuha Coat", --(8)
- hands="Amalric Gages", --(5)
- legs="Assim. Shalwar +2", --5
- feet="Jhakri Pigaches +2", --5
- ring1="Mujin Band", --(5)
- back="Seshaw Cape", --5
- })
- sets.Kiting = {legs="Carmine Cuisses +1"}
- sets.Learning = {hands="Assim. Bazu. +1"}
- sets.latent_refresh = {waist="Fucho-no-obi"}
- sets.buff.Doom = {ring1="Eshmun's Ring", ring2="Eshmun's Ring", waist="Gishdubar Sash"}
- sets.CP = {back="Mecisto. Mantle"}
- sets.Reive = {neck="Ygnas's Resolve +1"}
- sets.midcast.Diaga = sets.TreasureHunter
- 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
- if spellMap == 'Utsusemi' then
- if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
- cancel_spell()
- add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
- eventArgs.handled = true
- return
- elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
- send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
- end
- end
- end
- -- 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' then
- equip(sets.midcast['Blue Magic'].HealingSelf)
- end
- end
- if spell.skill == 'Enhancing Magic' and classes.NoSkillSpells:contains(spell.english) then
- equip(sets.midcast.EnhancingDuration)
- if spellMap == 'Refresh' then
- equip(sets.midcast.Refresh)
- end
- end
- end
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if not spell.interrupted then
- if spell.english == "Dream Flower" then
- send_command('@timers c "Dream Flower ['..spell.target.name..']" 90 down spells/00098.png')
- elseif spell.english == "Soporific" then
- send_command('@timers c "Sleep ['..spell.target.name..']" 90 down spells/00259.png')
- elseif spell.english == "Sheep Song" then
- send_command('@timers c "Sheep Song ['..spell.target.name..']" 60 down spells/00098.png')
- elseif spell.english == "Yawn" then
- send_command('@timers c "Yawn ['..spell.target.name..']" 60 down spells/00098.png')
- elseif spell.english == "Entomb" then
- send_command('@timers c "Entomb ['..spell.target.name..']" 60 down spells/00547.png')
- 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)
- -- if buffactive['Reive Mark'] then
- -- if gain then
- -- equip(sets.Reive)
- -- disable('neck')
- -- else
- -- enable('neck')
- -- end
- -- end
- if buff == "doom" then
- if gain then
- equip(sets.buff.Doom)
- send_command('@input /p Doomed.')
- disable('ring1','ring2','waist')
- else
- enable('ring1','ring2','waist')
- handle_equipping_gear(player.status)
- 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
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- if state.CP.current == 'on' then
- equip(sets.CP)
- disable('back')
- else
- enable('back')
- end
- --if state.IdleMode.value == 'Learning' then
- -- equip(sets.Learning)
- -- disable('hands')
- --else
- -- enable('hands')
- --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_offense_mode()
- end
- -- Function to display the current relevant user state when doing an update.
- -- Return true if display was handled, and you don't want the default info shown.
- function display_current_job_state(eventArgs)
- local msg = '[ Melee'
- if state.CombatForm.has_value then
- msg = msg .. ' (' .. state.CombatForm.value .. ')'
- end
- msg = msg .. ': '
- msg = msg .. state.OffenseMode.value
- if state.HybridMode.value ~= 'Normal' then
- msg = msg .. '/' .. state.HybridMode.value
- end
- msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value .. ' ]'
- if state.DefenseMode.value ~= 'None' then
- msg = msg .. '[ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ' ]'
- end
- if state.IdleMode.value ~= 'None' then
- msg = msg .. '[ Idle: ' .. state.IdleMode.value .. ' ]'
- end
- if state.Kiting.value then
- msg = msg .. '[ Kiting Mode: ON ]'
- end
- add_to_chat(060, msg)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- --Read incoming packet to differentiate between Haste I and Haste II
- windower.raw_register_event("incoming chunk", function(id, data)
- if id == 0x028 then
- local packet = p.parse('incoming', data)
- if packet["Category"] == 4 then
- if packet["Param"] == 57 then
- add_to_chat(122, 'Haste')
- haste = 1
- elseif packet["Param"] == 511 then
- add_to_chat(122, 'Haste2')
- haste = 2
- end
- end
- end
- end)
- function update_active_abilities()
- state.Buff['Burst Affinity'] = buffactive['Burst Affinity'] or false
- state.Buff['Efflux'] = buffactive['Efflux'] or false
- state.Buff['Diffusion'] = buffactive['Diffusion'] or false
- end
- -- State buff checks that will equip buff gear and mark the event as handled.
- function apply_ability_bonuses(spell, action, spellMap)
- if state.Buff['Burst Affinity'] and (spellMap == 'Magical' or spellMap == 'MagicalLight' or spellMap == 'MagicalDark' or spellMap == 'Breath') then
- if state.MagicBurst.value then
- equip(sets.magic_burst)
- end
- equip(sets.buff['Burst Affinity'])
- end
- if state.Buff.Efflux and spellMap == 'Physical' then
- equip(sets.buff['Efflux'])
- end
- if state.Buff.Diffusion and (spellMap == 'Buffs' or spellMap == 'BlueSkill') then
- equip(sets.buff['Diffusion'])
- end
- if state.Buff['Burst Affinity'] then equip (sets.buff['Burst Affinity']) end
- if state.Buff['Efflux'] then equip (sets.buff['Efflux']) end
- if state.Buff['Diffusion'] then equip (sets.buff['Diffusion']) end
- end
- function update_offense_mode()
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- state.CombatForm:set('DW')
- else
- state.CombatForm:reset()
- 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 == 'WAR' then
- set_macro_page(1, 2)
- elseif player.sub_job == 'RDM' then
- set_macro_page(2, 2)
- else
- set_macro_page(1, 2)
- end
- end
- function set_lockstyle()
- send_command('wait 2; input /lockstyleset ' .. lockstyleset)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement