Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
- "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
- state.Buff.Sentinel = buffactive.sentinel or false
- state.Buff.Cover = buffactive.cover or false
- state.Buff.Doom = buffactive.Doom or false
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- state.OffenseMode:options('Normal', 'Acc', 'Mid', 'Duo', 'AmDuo')
- state.HybridMode:options('Normal', 'PDT', 'Reraise')
- state.IdleMode:options('Normal','DT', 'RefreshDT','Turtle') --Normal
- state.WeaponskillMode:options('Normal', 'Acc')
- state.CastingMode:options('Normal', 'Resistant')
- state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm')
- state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm')
- state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP', 'Knockback', 'MP_Knockback'}
- state.EquipShield = M(true, 'Equip Shield w/Defense')
- update_defense_mode()
- send_command('lua l gearinfo')
- state.Auto_Kite = M(false, 'Auto_Kite')
- moving = false
- send_command('bind ^f11 gs c cycle MagicalDefenseMode')
- send_command('bind !f11 gs c cycle ExtraDefenseMode')
- send_command('bind @f10 gs c toggle EquipShield')
- send_command('bind @f11 gs c toggle EquipShield')
- select_default_macro_book()
- end
- function user_unload()
- send_command('lua u gearinfo')
- send_command('unbind ^f11')
- send_command('unbind !f11')
- send_command('unbind @f10')
- send_command('unbind @f11')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.Enmity = {ammo="Sapience Orb",
- head="Souv. Schaller +1",
- body="Souv. Cuirass +1",
- hands="Eschite Gauntlets",
- legs="Cab. Breeches +3",
- feet="Chev. Sabatons +3",
- neck="Moonlight Necklace",
- waist="Null Belt",
- left_ear="Cryptic Earring",
- right_ear="Friomisi Earring",
- left_ring="Eihwaz Ring",
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
- sets.precast.JA['Invincible'] = set_combine(sets.precast.Enmity, {legs="Caballarius Breeches +2"})
- sets.precast.JA['Holy Circle'] = set_combine(sets.precast.Enmity, {feet="Rev. Leggings +2"})
- sets.precast.JA['Shield Bash'] = set_combine(sets.precast.Enmity, {hands="Cab. Gauntlets +3"})
- sets.precast.JA['Sentinel'] = set_combine(sets.precast.Enmity, {feet="Cab. Leggings +3"})
- sets.precast.JA['Rampart'] = set_combine(sets.precast.Enmity, {head="Cab. Coronet +3"})
- sets.precast.JA['Fealty'] = set_combine(sets.precast.Enmity, {body="Cab. Surcoat +3"})
- sets.precast.JA['Divine Emblem'] = {feet="Chev. Sabatons +3"}
- sets.precast.JA['Cover'] = {head="Reverence Coronet +2"}
- sets.precast.JA['Provoke'] = set_combine(sets.precast.Enmity, {})
- -- add mnd for Chivalry
- sets.precast.JA['Chivalry'] = {
- head="Caballarius Coronet +3",
- body="Caballarius Surcoat +3",
- hands={ name="Cab. Gauntlets +3", augments={'Enhances "Chivalry" effect',}},
- --ring1="Tjukurrpa Annulet",
- ring2="Metamor. Ring +1", augments={'Path: A',},
- --back="Xucau Mantle",
- ring1="Stikini Ring",
- legs="Caballarius Breeches +3",
- feet="Caballarius Leggings +3"
- }
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {
- --ammo="Sonia's Plectrum",
- head="Reverence Coronet +1",
- --body="Gorney Haubert +1",hands="Reverence Gauntlets +1",ring2="Asklepian Ring",
- --back="Iximulew Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Whirlpool Greaves"
- }
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- sets.precast.Step = {waist="Chaac Belt"}
- sets.precast.Flourish1 = {waist="Chaac Belt"}
- -- Fast cast sets for spells
- sets.precast.FC = {
- ammo="Sapience Orb",
- head="Sakpata's Helm",
- body="Rev. Surcoat +3",
- hands="Leyline Gloves",
- legs="Sakpata's Cuisses",
- feet="Chev. Sabatons +3",
- neck="Voltsurge Torque",
- waist="Plat. Mog. Belt",
- left_ear="Odnowa Earring +1",
- right_ear="Loquac. Earring",
- left_ring="Kishar Ring",
- right_ring="Medada's Ring",
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}}}
- sets.precast.FC.Flash = {ammo="Staunch Tathlum +1",
- head="Souv. Schaller +1",
- body="Rev. Surcoat +3",
- hands="Eschite Gauntlets",
- legs="Cab. Breeches +3",
- feet="Eschite Greaves",
- neck="Moonlight Necklace",
- waist="Audumbla Sash",
- left_ear="Odnowa Earring +1",
- right_ear="Cryptic Earring",
- left_ring="Eihwaz Ring",
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
- --sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- ammo="Oshasha's Treatise",
- head="Nyame Helm",
- body="Nyame Mail",
- hands="Nyame Gauntlets",
- legs="Nyame Flanchard",
- feet="Nyame Sollerets",
- neck="Rep. Plat. Medal",
- waist="Sailfi Belt +1",
- left_ear="Moonshade Earring",
- right_ear="Ishvara Earring",
- left_ring="Epaminondas's Ring",
- right_ring="Sroda Ring",
- back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Chance of successful block +5',}}}
- sets.precast.WS.Acc = {}
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- --sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Leviathan Ring",ring2="Aquasoul Ring"})
- --sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {ring1="Leviathan Ring"})
- sets.precast.WS['Knights of Round'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Swift Blade'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Hexa Strike'] = sets.precast.WS['Chant du Cygne']
- sets.precast.WS['Judgment'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Black Halo'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {
- })
- sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Impulse Drive'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Impulse Drive'].mid = set_combine(sets.precast.WS, {})
- sets.precast.WS['Atonement'] = {
- ammo="Iron Gobbet",
- head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
- body={ name="Souveran Cuirass", augments={'HP+80','Enmity+7','Potency of "Cure" effect received +10%',}},
- hands={ name="Cab. Gauntlets +3", augments={'Enhances "Chivalry" effect',}},
- legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
- feet={ name="Souveran Schuhs +1", augments={'HP+65','Attack+25','Magic dmg. taken -4',}},
- neck={ name="Kgt. Beads +1", augments={'Path: A',}},
- waist="Creed Baudrier",
- left_ear="Cryptic Earring",
- right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
- left_ring="Eihwaz Ring",
- right_ring="Supershear Ring",
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Damage taken-5%',}},
- }
- sets.precast.WS['Aeolian Edge'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Sanguine Blade'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Seraph Blade'] = sets.precast.WS['Aeolian Edge']
- sets.precast.WS['Shining Blade'] = sets.precast.WS['Aeolian Edge']
- sets.precast.WS['Red Lotus Blade'] = sets.precast.WS['Aeolian Edge']
- sets.precast.WS['Burning Blade'] = sets.precast.WS['Aeolian Edge']
- sets.precast.WS['Cataclysm'] = sets.precast.WS['Sanguine Blade']
- sets.precast.WS['Flash Nova'] = sets.precast.WS['Aeolian Edge']
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- sets.midcast.Enmity = {ammo="Staunch Tathlum +1",
- head="Souv. Schaller +1",
- body="Rev. Surcoat +3",
- hands="Eschite Gauntlets",
- legs="Cab. Breeches +3",
- feet="Eschite Greaves",
- neck="Moonlight Necklace",
- waist="Plat. Mog. Belt",
- left_ear="Odnowa Earring +1",
- right_ear="Cryptic Earring",
- left_ring="Eihwaz Ring",
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
- sets.midcast.SIRD = set_combine(sets.midcast.Enmity, {body="Rev. Surcoat +3",
- feet="Eschite Greaves",
- waist="Audumbla Sash"})
- sets.midcast.Crusade = set_combine(sets.midcast.SIRD, {body="Shab. Cuirass +1"})
- sets.midcast.Flash = sets.midcast.SIRD
- sets.midcast.Foil = sets.midcast.SIRD
- sets.midcast.Stun = sets.midcast.SIRD
- sets.midcast.Jettatura = sets.midcast.SIRD
- sets.midcast.Soporific = sets.midcast.SIRD
- sets.midcast['Geist Wall'] = sets.midcast.SIRD
- sets.midcast['Blank Gaze'] = sets.midcast.SIRD
- sets.midcast['Stinking Gas'] = sets.midcast.SIRD
- sets.midcast['Chaotic Eye'] = sets.midcast.SIRD
- sets.midcast['Sheep Song'] = sets.midcast.SIRD
- sets.midcast['Banish'] = {ammo="Ghastly Tathlum +1",
- head="Nyame Helm",
- body="Rev. Surcoat +3",
- hands="Eschite Gauntlets",
- legs="Nyame Flanchard",
- feet="Nyame Sollerets",
- neck="Incanter's Torque",
- waist="Orpheus's Sash",
- left_ear="Crep. Earring",
- right_ear="Chev. Earring +1",
- left_ring="Stikini Ring +1",
- right_ring="Stikini Ring +1",
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
- sets.midcast['Banish II'] = sets.midcast['Banish']
- sets.midcast['Banishga'] = sets.midcast['Banish']
- sets.midcast['Holy'] = sets.midcast['Banish']
- sets.midcast['Holy II'] = sets.midcast['Banish']
- sets.midcast['Phalanx'] = {main="Sakpata's Sword",
- ammo="Staunch Tathlum +1",
- head="Yorium Barbuta",
- body="Yorium Cuirass",
- hands="Souv. Handsch. +1",
- legs="Sakpata's Cuisses",
- feet="Souveran Schuhs +1",
- neck="Loricate Torque +1",
- waist="Olympus Sash",
- left_ear="Andoaa Earring",
- right_ear="Mimir Earring",
- left_ring="Stikini Ring +1",
- right_ring="Stikini Ring +1",
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
- sets.midcast['Phalanx'].Resistant = set_combine(sets.midcast['Phalanx'], {})
- sets.midcast['Enlight'] = {ammo="Staunch Tathlum +1",
- head="Souv. Schaller +1",
- body="Rev. Surcoat +3",
- hands="Eschite Gauntlets",
- neck="Incanter's Torque",
- waist="Asklepian Belt",
- left_ring="Stikini Ring +1",
- right_ring="Stikini Ring +1"}
- sets.midcast['Enlight II'] = sets.midcast['Enlight']
- sets.midcast['Reprisal'] = {ammo="Staunch Tathlum +1",
- head="Souv. Schaller +1",
- body="Shab. Cuirass +1",
- hands="Eschite Gauntlets",
- legs="Cab. Breeches +3",
- feet="Eschite Greaves",
- neck="Moonlight Necklace",
- waist="Plat. Mog. Belt",
- left_ear="Odnowa Earring +1",
- right_ear="Cryptic Earring",
- left_ring="Eihwaz Ring",
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
- --This needs updating
- sets.midcast.Poisonga = {ammo="Paeapua",
- head="Souv. Schaller",neck="Unmoving Collar +1",ear1="Cryptic Earring",--ear2="Hades Earring +1",
- body="Souv. Cuirass",hands="Souv. Handsch. +1",ring1="Petrov Ring",ring2="Eihwaz Ring",
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}},
- waist="Creed Baudrier",legs="Souv. Diechlings +1",feet="Souveran Schuhs +1"}
- sets.midcast.Cure = {ammo="Staunch Tathlum +1",
- head="Souv. Schaller +1",
- body="Souv. Cuirass +1",
- hands="Macabre Gaunt. +1",
- legs="Carmine Cuisses +1",
- feet="Eschite Greaves",
- neck="Moonlight Necklace",
- waist="Audumbla Sash",
- left_ear="Odnowa Earring +1",
- right_ear="Nourish. Earring +1",
- left_ring="Eihwaz Ring",
- right_ring="Gelatinous Ring +1",
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Cure" potency +10%','Phys. dmg. taken-10%',}}}
- sets.midcast.Protect = set_combine(sets.midcast.Crusade, {legs="Rev. Breeches +3",
- waist="Olympus Sash",
- left_ear="Andoaa Earring",
- right_ear="Mimir Earring",
- left_ring="Stikini Ring +1",
- right_ring="Stikini Ring +1"})
- --sets.midcast.Shell = {Ear2="Brachyura Earring"}
- --------------------------------------
- -- Idle/resting/defense/etc sets
- --------------------------------------
- sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
- sets.resting = {}
- -- Idle sets
- sets.idle = {ammo="Staunch Tathlum +1",
- head="Chev. Armet +3",
- body="Chev. Cuirass +3",
- hands="Chev. Gauntlets +3",
- legs="Carmine Cuisses +1",
- feet="Chev. Sabatons +3",
- neck="Loricate Torque +1",
- waist="Plat. Mog. Belt",
- left_ear="Odnowa Earring +1",
- right_ear="Chev. Earring +1",
- left_ring={name="Moonlight Ring", bag="wardrobe2"},
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Chance of successful block +5',}}
- }
- sets.idle.DT = set_combine(sets.idle, {})
- sets.idle.RefreshDT = set_combine(sets.idle, {})
- --This needs updating
- sets.idle.Turtle = set_combine(sets.idle, {})
- sets.idle.Weak = set_combine(sets.idle, {})
- sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
- sets.Kiting ={
- legs="Carmine Cuisses +1",
- --waist="Fucho-no-obi",neck="Coatl Gorget +1",hands="Regal Gauntlets"
- }
- --sets.latent_refresh = {waist="Fucho-no-obi",neck="Coatl Gorget +1",hands="Regal Gauntlets"}
- --------------------------------------
- -- Defense sets
- --------------------------------------
- -- Extra defense sets. Apply these on top of melee or defense sets.
- sets.Knockback = {
- legs="Dashing Subligar",
- left_ring="Vocane Ring",
- back="Philidor Mantle",
- }
- sets.MP = {
- neck="Creed Collar",
- waist="Flume Belt +1"
- }
- sets.MP_Knockback = {
- neck="Creed Collar",
- legs="Dashing Subligar",
- left_ring="Vocane Ring",
- back="Philidor Mantle",
- }
- -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
- -- when activating or changing defense mode:
- --sets.PhysicalShield = {main="Burtgang",sub="Srivatsa"} -- Ochain
- --sets.MagicalShield = {main="Burtgang",sub="Aegis"} -- Aegis
- -- Basic defense sets.
- sets.defense.PDT = {ammo="Staunch Tathlum +1",
- head="Chev. Armet +3",
- body="Sakpata's Plate",
- hands="Sakpata's Gauntlets",
- legs="Chev. Cuisses +3",
- feet="Sakpata's Leggings",
- neck="Unmoving Collar +1",
- waist="Audumbla Sash",
- left_ear="Odnowa Earring +1",
- right_ear="Cryptic Earring",
- left_ring={name="Moonlight Ring", bag="wardrobe2"},
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Cure" potency +10%','Phys. dmg. taken-10%',}}}
- sets.defense.HP = set_combine(sets.defense.PDT, {})
- sets.defense.Reraise = {
- head="Twilight Helm",
- body="Twilight Mail",
- }
- sets.defense.Charm = {
- ammo="Staunch Tathlum +1 +1",
- head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
- body="Sacro Breastplate",
- hands="Macabre Gauntlets",
- legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
- feet={ name="Souveran Schuhs +1", augments={'HP+65','Attack+25','Magic dmg. taken -4',}},
- neck="Unmoving Collar +1",
- --waist="Asklepian Belt",
- left_ear="Odnowa Earring +1",
- --right_ear="Arete del Luna +1",
- --left_ring="Wuji Ring",
- right_ring="Defending Ring",
- --back={ name="Rudianos's Mantle", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10','Occ. inc. resist. to stat. ailments+10',}},
- back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},
- }
- -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
- -- Shellra V can provide 75/256, which would need another 53/256 in gear.
- sets.defense.MDT = set_combine(sets.defense.PDT, {})
- --------------------------------------
- -- Engaged sets
- --------------------------------------
- sets.engaged = {ammo="Coiste Bodhar",
- head="Chev. Armet +3",
- body="Sakpata's Plate",
- hands="Sakpata's Gauntlets",
- legs="Sakpata's Cuisses",
- feet="Sakpata's Leggings",
- neck="Sanctity Necklace",
- waist="Sailfi Belt +1",
- left_ear="Crep. Earring",
- right_ear="Telos Earring",
- left_ring={name="Moonlight Ring", bag="wardrobe2"},
- right_ring={name="Moonlight Ring", bag="wardrobe4"},
- back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Chance of successful block +5',}}}
- sets.engaged.Acc = set_combine(sets.engaged, {})
- --This one needs updated
- sets.engaged.Mid = set_combine(sets.engaged, {})
- --This one needs updated
- sets.engaged.Duo = set_combine(sets.engaged, {})
- --This one needs updated
- sets.engaged.AmDuo = set_combine(sets.engaged, {})
- sets.engaged.PDT = set_combine(sets.engaged, {body="Chev. Cuirass +3",feet="Cab. Leggings +3"})
- sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {body="Chev. Cuirass +3"})
- sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
- sets.engaged.Acc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
- --sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +2",neck="Loricate Torque +1",ring1="Defending Ring"})
- --sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +2",neck="Loricate Torque +1",ring1="Defending Ring"})
- --sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
- --sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
- --------------------------------------
- -- Custom buff sets
- --------------------------------------
- sets.buff.Doom = {ring2="Saida Ring"}
- sets.buff.Cover = {head="Reverence Coronet +2", body="Caballarius Surcoat +2"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_midcast(spell, action, spellMap, eventArgs)
- -- If DefenseMode is active, apply that gear over midcast
- -- choices. Precast is allowed through for fast cast on
- -- spells, but we want to return to def gear before there's
- -- time for anything to hit us.
- -- Exclude Job Abilities from this restriction, as we probably want
- -- the enhanced effect of whatever item of gear applies to them,
- -- and only one item should be swapped out.
- if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
- handle_equipping_gear(player.status)
- eventArgs.handled = true
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when the player's status changes.
- function job_state_change(field, new_value, old_value)
- classes.CustomDefenseGroups:clear()
- classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current)
- if state.EquipShield.value == true then
- classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield')
- end
- classes.CustomMeleeGroups:clear()
- classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current)
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- -- 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_defense_mode()
- 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.Buff.Doom then
- idleSet = set_combine(idleSet, sets.buff.Doom)
- end
- return idleSet
- end
- -- Modify the default melee set after it was constructed.
- function customize_melee_set(meleeSet)
- if state.Buff.Doom then
- meleeSet = set_combine(meleeSet, sets.buff.Doom)
- end
- return meleeSet
- end
- function customize_defense_set(defenseSet)
- if state.ExtraDefenseMode.value ~= 'None' then
- defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
- end
- if state.EquipShield.value == true then
- defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
- end
- if state.Buff.Doom then
- defenseSet = set_combine(defenseSet, sets.buff.Doom)
- end
- return defenseSet
- end
- 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.ExtraDefenseMode.value ~= 'None' then
- msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
- end
- if state.EquipShield.value == true then
- msg = msg .. ', Force Equip Shield'
- end
- if state.Kiting.value == true then
- msg = msg .. ', Kiting'
- end
- if state.PCTargetMode.value ~= 'default' then
- msg = msg .. ', Target PC: '..state.PCTargetMode.value
- end
- if state.SelectNPCTargets.value == true then
- msg = msg .. ', Target NPCs'
- end
- add_to_chat(122, msg)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function update_defense_mode()
- if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
- classes.CustomDefenseGroups:append('Kheshig Blade')
- end
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if player.equipment.sub and not player.equipment.sub:contains('Shield') and
- player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
- state.CombatForm:set('DW')
- else
- state.CombatForm:reset()
- end
- 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(1, 9)
- elseif player.sub_job == 'NIN' then
- set_macro_page(1, 9)
- elseif player.sub_job == 'RDM' then
- set_macro_page(1, 9)
- elseif player.sub_job == 'BLU' then
- set_macro_page(1, 9)
- elseif player.sub_job == 'DRK' then
- set_macro_page(1, 9)
- elseif player.sub_job == 'RUN' then
- set_macro_page(1, 9)
- elseif player.sub_job == 'WAR' then
- set_macro_page(1, 9)
- else
- set_macro_page(1, 9)
- end
- end
- function customize_idle_set(idleSet)
- if state.Auto_Kite.value == true then
- idleSet = set_combine(idleSet, sets.Kiting)
- end
- return idleSet
- end
- function job_handle_equipping_gear(playerStatus, eventArgs)
- check_gear()
- check_moving()
- end
- function job_update(cmdParams, eventArgs)
- handle_equipping_gear(player.status)
- end
- -- Select default macro book on initial load or subjob change.
- function update_combat_weapon()
- state.CombatWeapon:set(player.equipment.main)
- 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
- function check_moving()
- if state.DefenseMode.value == 'None' and state.Kiting.value == false then
- if state.Auto_Kite.value == false and moving then
- state.Auto_Kite:set(true)
- elseif state.Auto_Kite.value == true and moving == false then
- state.Auto_Kite:set(false)
- end
- end
- end
- function check_gear()
- if no_swap_gear:contains(player.equipment.left_ring) then
- disable("ring1")
- else
- enable("ring1")
- end
- if no_swap_gear:contains(player.equipment.right_ring) then
- disable("ring2")
- else
- enable("ring2")
- end
- end
- windower.register_event('zone change',
- function()
- if no_swap_gear:contains(player.equipment.left_ring) then
- enable("ring1")
- equip(sets.idle)
- end
- if no_swap_gear:contains(player.equipment.right_ring) then
- enable("ring2")
- equip(sets.idle)
- end
- end
- )
Advertisement
Add Comment
Please, Sign In to add comment