Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- NOTE: I do not play run, so this will not be maintained for 'active' use.
- -- It is added to the repository to allow people to have a baseline to build from,
- -- and make sure it is up-to-date with the library API.
- -------------------------------------------------------------------------------------------------------------------
- -- 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
- include('organizer-lib')
- -- Setup vars that are user-independent.
- function job_setup()
- -- Table of entries
- rune_timers = T{}
- -- entry = rune, index, expires
- if player.main_job_level >= 65 then
- max_runes = 3
- elseif player.main_job_level >= 35 then
- max_runes = 2
- elseif player.main_job_level >= 5 then
- max_runes = 1
- else
- max_runes = 0
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- function user_setup()
- state.OffenseMode:options('Normal', 'DD', 'Acc', 'PDT', 'MDT', 'BDT')
- state.WeaponskillMode:options('Normal', 'Acc')
- state.PhysicalDefenseMode:options('PDT')
- state.CastingMode:options('Normal','Interupt')
- state.IdleMode:options('Regen', 'Refresh')
- select_default_macro_book()
- gear.tp_HercHead = {name="Herculean Helm", augments={'Accuracy+23 Attack+23','"Store TP"+2','Accuracy+14','Attack+10',}}
- gear.tp_HercBody = {name="Herculean Vest", augments={'Accuracy+30','"Triple Atk."+2','DEX+13',}}
- gear.tp_HercHands = {name="Herculean Gloves", augments={'Accuracy+23 Attack+23','Crit.hit rate+2','DEX+8','Attack+5',}}
- gear.tp_HercLegs = {name="Herculean Trousers", augments={'Accuracy+16 Attack+16','Accuracy+14','Attack+9',}}
- gear.tp_HercFeet = {name="Herculean Boots", augments={'Accuracy+25 Attack+25','Crit. hit damage +2%','STR+9','Accuracy+7','Attack+8',}}
- gear.ws_HercHead = {name="Herculean Helm", augments={'Accuracy+21','Weapon skill damage +4%','AGI+6',}}
- gear.ws_HercBody = {name="Herculean Vest", augments={'Accuracy+18 Attack+18','Weapon skill damage +2%','STR+5','Accuracy+11',}}
- gear.ws_HercHands = {name="Herculean Gloves", augments={'Accuracy+27','"Waltz" potency +6%','STR+14','Attack+14',}}
- gear.ws_HercLegs = {}
- gear.ws_HercFeet = {name="Herculean Boots", augments={'Accuracy+14','Weapon skill damage +3%','STR+12',}}
- gear.mab_HercHead = {name="Herculean Helm", augments={'Mag. Acc.+5','Magic burst mdg.+5%','INT+5','"Mag.Atk.Bns."+12',}}
- gear.mab_HercBody = {name="Herculean Vest", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','Magic burst mdg.+6%','Mag. Acc.+1','"Mag.Atk.Bns."+7',}}
- gear.mab_HercHands = {name="Herculean Gloves", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','STR+1','"Mag.Atk.Bns."+10',}}
- gear.mab_HercLegs = {name="Herculean Trousers", augments={'"Mag.Atk.Bns."+16','Magic burst mdg.+6%','MND+1','Mag. Acc.+13',}}
- gear.mab_HercFeet = {}
- gear.Interupt_TaeonHead = {name="Taeon Chapeau", augments={'Spell interruption rate down -9%',}}
- gear.Interupt_TaeonBody = {name="Taeon Tabard", augments ={'Spell interruption rate down -9%',}}
- gear.FC_TaeonBody = {name="Taeon Tabard", augments ={'"Fast Cast"+5',}}
- info.RuneEnchantment = S{"Tellus", "Unda", "Flabra", "Ignis", "Gelus", "Sulpor", "Lux", "Tenebrae"}
- end
- function init_gear_sets()
- sets.enmity = {ammo="Aqreqaq Bomblet",
- head="Halitus Helm", neck="Warder's Charm +1", ear1="Trux Earring", ear2="Cryptic Earring",
- body="Emet Harness +1", hands="Kurys Gloves", ring1="Pernicious ring", ring2="Supershear Ring",
- back="Evasionist's Cape", waist="Goading Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1"}
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Vallation'] =set_combine(sets.enmity, {body="Runeist coat +1", legs="Futhark trousers +1"})
- sets.precast.JA['Valiance'] = sets.precast.JA['Vallation']
- sets.precast.JA['Pflug'] = set_combine(sets.enmity, {feet="Runeist bottes +1"})
- sets.precast.JA['Battuta'] = set_combine(sets.enmity, {head="Futhark Bandeau +1"})
- sets.precast.JA['Liement'] = set_combine(sets.enmity, {body="Futhark Coat +1"})
- sets.precast.JA['Lunge'] = {ammo="Ghastly Tathlum +1",
- head=gear.mab_HercHead, neck="Baetyl Pendant", ear1="Crematio Earring", ear2="Friomisi Earring",
- body=gear.mab_HercBody, hands="Leyline Gloves", ring1="Fenrir Ring +1", ring2="Fenrir Ring +1",
- back="Argocham. Mantle", waist="Eschan Stone", legs=gear.mab_HercLegs, feet="Manabyss Pigaches"}
- sets.precast.JA['Swipe'] = sets.precast.JA['Lunge']
- sets.precast.JA['Gambit'] = set_combine(sets.enmity, {hands="Runeist Mitons +1"})
- sets.precast.JA['Rayke'] = set_combine(sets.enmity, {feet="Futhark Boots +1"})
- sets.precast.JA['Elemental Sforzo'] = set_combine(sets.enmity, {body="Futhark Coat +1"})
- sets.precast.JA['Swordplay'] = set_combine(sets.enmity, {hands="Futhark Mitons +1"})
- sets.precast.JA['Embolden'] = set_combine(sets.enmity, {back="Evasionist's Cape"})
- sets.precast.JA['Vivacious Pulse'] = set_combine(sets.enmity, {head="Erilaz Galea +1", legs="Rune. Trousers +1"})
- sets.precast.JA['One For All'] = set_combine(sets.enmity, {})
- sets.precast.JA['Provoke'] = sets.enmity
- sets.precast.JA['Sekkanoki'] = sets.enmity
- sets.precast.JA['Meditate'] = sets.enmity
- sets.precast.JA['Warding Circle'] = sets.enmity
- sets.precast.JA['Seigan'] = sets.enmity
- sets.precast.JA['Third Eye'] = sets.enmity
- sets.precast.JA['Hasso'] = sets.enmity
- -- Fast cast sets for spells
- sets.precast.FC = {ammo="Impatiens",
- head="Runeist bandeau +1", neck="Orunmila's Torque", ear1="Loquacious Earring", ear2="Enchntr. Earring +1",
- body=gear.FC_TaeonBody, hands="Leyline Gloves", ring1="Weather. Ring", ring2="Prolix Ring",
- legs="Rawhide Trousers", feet="Chelona Boots +1"}
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash", legs="Futhark Trousers +1"})
- sets.precast.FC['Utsusemi: Ichi'] = set_combine(sets.precast.FC, {neck='Magoraga beads', body="Passion Jacket",})
- sets.precast.FC['Utsusemi: Ni'] = set_combine(sets.precast.FC['Utsusemi: Ichi'], {})
- -- Weaponskill sets
- sets.precast.WS = {ammo="Floestone",
- head=gear.ws_HercHead, neck="Fotia Gorget", ear1="Vulcan's Pearl", ear2="Moonshade Earring",
- body=gear.ws_HercBody, hands=gear.ws_HercHands, ring1="Ifrit Ring +1", ring2="Ifrit Ring +1",
- back="Buquwik Cape", waist="Fotia Belt", legs="Taeon Tights", feet=gear.ws_HercFeet}
- sets.precast.WS['Resolution'] = {ammo="Floestone",
- head=gear.ws_HercHead, neck="Fotia Gorget", ear1="Vulcan's Pearl", ear2="Moonshade Earring",
- body="Adhemar Jacket", hands="Erilaz Gauntlets +1", ring1="Ifrit Ring +1", ring2="Ifrit Ring +1",
- back="Buquwik Cape", waist="Fotia Belt", legs="Taeon Tights", feet=gear.ws_HercFeet}
- sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS['Resolution'].Normal,
- {ammo="Amar Cluster",
- ear1="Cessance Earring",
- body=gear.ws_HercBody, ring1="Rufescent Ring",
- back="Grounded Mantle +1", feet=gear.ws_HercFeet})
- sets.precast.WS['Ground Strike'] = {ammo="Floestone",
- head=gear.ws_HercHead, neck="Fotia Gorget", ear1="Ishvara Earring", ear2="Moonshade Earring",
- body=gear.ws_HercBody, hands="Erilaz Gauntlets +1", ring1="Ifrit Ring +1", ring2="Ifrit Ring +1",
- back="Buquwik Cape", waist="Fotia Belt", legs="Taeon Tights", feet=gear.ws_HercFeet}
- sets.precast.WS['Ground Strike'].Acc = set_combine(sets.precast.WS['Ground Strike'].Normal,
- {ammo="Amar Cluster",
- ear1="Cessance Earring",
- body=gear.ws_HercBody, ring1="Rufescent Ring",
- back="Grounded Mantle +1", feet=gear.ws_HercFeet})
- sets.precast.WS['Savage Blade'] = {ammo="Floestone",
- head=gear.ws_HercHead, neck="Fotia Gorget", ear1="Vulcan's Pearl", ear2="Moonshade Earring",
- body="Adhemar Jacket", hands=gear.ws_HercHands, ring1="Ifrit Ring +1", ring2="Ifrit Ring +1",
- back="Buquwik Cape", waist="Fotia Belt", legs="Taeon Tights", feet=gear.ws_HercFeet}
- sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'].Normal,
- {ammo="Amar Cluster",
- ear1="Cessance Earring",
- body=gear.ws_HercBody, ring1="Rufescent Ring",
- back="Grounded Mantle +1", feet=gear.ws_HercFeet})
- sets.precast.WS['Swift Blade'] = {ammo="Floestone",
- head=gear.ws_HercHead, neck="Fotia Gorget", ear1="Vulcan's Pearl", ear2="Moonshade Earring",
- body="Adhemar Jacket", hands="Erilaz Gauntlets +1", ring1="Ifrit Ring +1", ring2="Ifrit Ring +1",
- back="Buquwik Cape", waist="Fotia Belt", legs="Taeon Tights", feet=gear.ws_HercFeet}
- sets.precast.WS['Swift Blade'].Acc = set_combine(sets.precast.WS['Swift Blade'].Normal,
- {ammo="Amar Cluster",
- ear1="Cessance Earring",
- body=gear.ws_HercBody, ring1="Rufescent Ring",
- back="Grounded Mantle +1", feet=gear.ws_HercFeet})
- sets.precast.WS['Dimidiation'] = {ammo="Jukukik Feather",
- head=gear.ws_HercHead, neck="Fotia Gorget", ear1="Ishvara Earring", ear2="Moonshade Earring",
- body="Adhemar Jacket", hands="Rawhide Gloves", ring1="Ramuh Ring +1", ring2="Ramuh Ring +1",
- back="Kayapa Cape", waist="Fotia Belt", legs="Taeon Tights", feet=gear.ws_HercFeet}
- sets.precast.WS['Dimidiation'].Acc = set_combine(sets.precast.WS['Dimidiation'].Normal,
- {ammo="Falcon Eye", head=gear.ws_HercHead, ear1="Cessance Earring",})
- sets.precast.WS['Herculean Slash'] = set_combine(sets.precast['Lunge'], {})
- sets.precast.WS['Herculean Slash'].Acc = set_combine(sets.precast.WS['Herculean Slash'].Normal, {})
- sets.precast.WS['Sanguine Blade'] = set_combine(sets.precast['Lunge'], {ring1="Archon Ring"})
- sets.precast.WS['Sanguine Blade'].Acc = set_combine(sets.precast.WS['Sanguine Blade'].Normal, {})
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- sets.midcast.FastRecast = {}
- sets.midcast['Enhancing Magic'] = {head="Erilaz Galea +1", neck="Colossus's torque", ear1="Andoaa Earring",
- hands="Runeist mitons +1", waist="Olympus Sash",
- back="Merciful Cape", legs="Futhark Trousers +1"}
- sets.midcast['Phalanx'] = set_combine(sets.midcast['Enhancing Magic'], {head="Futhark Bandeau +1"})
- sets.midcast['Regen'] = {head="Runeist Bandeau +1", legs="Futhark Trousers +1"}
- sets.midcast['Refresh'] = set_combine(sets.enmity, {head="Erilaz Galea +1"})
- sets.midcast['Stoneskin'] = {waist="Siegel Sash"}
- sets.midcast.Cure = set_combine(sets.enmity, {neck="Colossus's Torque", feet="Futhark Boots +1"})
- sets.midcast['Flash'] = {ammo="Aqreqaq Bomblet",
- head="Halitus Helm", neck="Warder's Charm +1", ear1="Trux Earring", ear2="Cryptic Earring",
- body="Emet Harness +1", hands="Kurys Gloves", ring1="Pernicious ring", ring2="Supershear Ring",
- back="Evasionist's Cape", waist="Goading Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1"}
- sets.midcast['Foil'] = sets.midcast['Flash']
- sets.midcast['Crusade'] = sets.midcast['Flash']
- sets.midcast['Blue Magic'] = sets.midcast['Flash']
- sets.midcast['Aquaveil'] = set_combine(sets.midcast['Enhancing Magic'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast['Flash'].Interupt = set_combine(sets.midcast['Flash'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast['Enhancing Magic'].Interupt = set_combine(sets.midcast['Enhancing Magic'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast['Phalanx'].Interupt = set_combine(sets.midcast['Enhancing Magic'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast['Crusade'].Interupt = set_combine(sets.midcast['Crusade'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast['Foil'].Interupt = set_combine(sets.midcast['Foil'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast['Blue Magic'].Interupt = set_combine(sets.midcast['Blue Magic'],
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- sets.midcast.Cure.Interupt = set_combine(sets.midcast.Cure,
- {ammo="Impatiens",
- head=gear.Interupt_TaeonHead,
- body=gear.Interupt_TaeonBody, hands="Rawhide Gloves", ring2="Evanescence Ring",
- waist="Rumination Sash", legs="Carmine Cuisses +1", feet="Karasutengu",})
- --------------------------------------
- -- Idle/resting/defense/etc sets
- --------------------------------------
- sets.idle = {ammo="Vanir Battery",
- head="Rawhide Mask", neck="Sanctity Necklace", ear1="Genmei earring", ear2="Etiolation earring",
- body="Runeist Coat +1", hands="Runeist Mitons +1", ring1="Sheltered Ring", ring2="Paguroidea ring",
- back="Reiki Cloak", waist="Fucho-no-Obi", legs="Carmine Cuisses +1", feet="Erilaz Greaves +1"}
- sets.idle.Refresh = set_combine(sets.idle, {body="Runeist Coat +1", waist="Fucho-no-obi"})
- sets.defense.PDT = {ammo="Aqreqaq Bomblet",
- head="Lithelimb Cap", neck="Twilight Torque", ear1="Genmei Earring", ear2={ name="Black Earring", augments={'Phys. dmg. taken -2%','"Resist Poison"+2',}},
- body="Erilaz Surcoat +1", hands="Runeist Mitons +1", ring1="Defending Ring", ring2={ name="Dark Ring", augments={'Enemy crit. hit rate -2','Magic dmg. taken -3%','Phys. dmg. taken -6%',}},
- waist="Flume Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1",
- back="Evasionist's Cape",}
- sets.defense.MDT = {ammo="Vanir Battery",
- head="Erilaz Galea +1", neck="Warder's Charm +1", ear1="Sanare Earring", ear2="Etiolation Earring",
- body="Runeist Coat +1", hands="Runeist Mitons +1", ring1="Defending Ring", ring2="Shadow Ring",
- back="Reiki Cloak", waist="Lieutenant's Sash", legs="Mes'yohi Slacks", feet="Erilaz Greaves +1",}
- sets.defense.BDT = {ammo="Vanir Battery",
- head="Erilaz Galea +1", neck="Twilight Torque", ear1="Genmei Earring", ear2="Sanare Earring",
- body="Futhark Coat +1", hands="Kurys Gloves", ring1="Defending Ring", ring2="Dark Ring",
- back="Mollusca Mantle", waist="Lieutenant's Sash", legs="Mes'yohi Slacks", feet="Erilaz Greaves +1",}
- sets.Kiting = {legs="Carmine Cuisses +1"}
- --------------------------------------
- -- Engaged sets
- --------------------------------------
- sets.engaged = {ammo="Ginsen",
- head="Dampening Tam", neck="Combatant's Torque", ear1="Telos Earring", ear2="Brutal Earring",
- body=gear.tp_HercBody, hands=gear.tp_HercHands, ring1="Epona's Ring", ring2="Petrov Ring",
- back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Taeon Tights", feet=gear.tp_HercFeet}
- sets.engaged.DD = {ammo="Ginsen",
- head="Dampening Tam", neck="Asperity Necklace", ear1="Trux Earring", ear2="Brutal Earring",
- body="Adhemar Jacket", hands=gear.tp_HercHands, ring1="Epona's Ring", ring2="Petrov Ring",
- back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Ta'lab Trousers", feet=gear.tp_HercFeet}
- sets.engaged.Acc = {ammo="Falcon Eye",
- head=gear.tp_HercHead, neck="Combatant's Torque", ear1="Digni. Earring", ear2="Telos Earring",
- body=gear.tp_HercBody, hands=gear.tp_HercHands, ring1="Ramuh Ring +1", ring2="Ramuh Ring +1",
- back="Grounded Mantle +1", waist="Kentarch Belt +1", legs="Carmine Cuisses +1", feet=gear.tp_HercFeet}
- sets.engaged.PDT = {ammo="Amar Cluster",
- head="Lithelimb Cap", neck="Combatant's Torque", ear1="Genmei Earring", ear2="Black Earring",
- body="Erilaz Surcoat +1", hands="Erilaz Gauntlets +1", ring1="Defending Ring", ring2="Dark Ring",
- back="Evasionist's Cape", waist="Flume Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1"}
- sets.engaged.MDT = {ammo="Vanir Battery",
- head="Dampening Tam", neck="Twilight Torque", ear1="Sanare Earring", ear2="Etiolation Earring",
- body="Runeist Coat +1", hands="Futhark Mitons +1", ring1="Defending Ring", ring2="Shadow Ring",
- back="Engulfer Cape +1", waist="Flume Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1"}
- sets.engaged.BDT = {ammo="Vanir Battery",
- head="Erilaz Galea +1", neck="Twilight Torque", ear1="Genmei Earring", ear2="Sanare Earring",
- body="Futhark Coat +1", hands="Kurys Gloves", ring1="Defending Ring", ring2="Dark Ring",
- back="Mollusca Mantle", waist="Lieutenant's Sash", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1",}
- sets.engaged.DW = {ammo="Ginsen",
- head="Dampening Tam", neck="Combatant's Torque", ear1="Telos Earring", ear2="Brutal Earring",
- body="Adhemar Jacket", hands=gear.tp_HercHands, ring1="Epona's Ring", ring2="Petrov Ring",
- back="Bleating Mantle", waist="Reiki Yotai", legs="Taeon Tights", feet=gear.tp_HercFeet}
- sets.engaged.DW.DD = {ammo="Ginsen",
- head="Dampening Tam", neck="Asperity Necklace", ear1="Trux Earring", ear2="Brutal Earring",
- body="Adhemar Jacket", hands=gear.tp_HercHands, ring1="Epona's Ring", ring2="Petrov Ring",
- back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Ta'lab Trousers", feet=gear.tp_HercFeet}
- sets.engaged.DW.Acc = {ammo="Falcon Eye",
- head=gear.tp_HercHead, neck="Combatant's Torque", ear1="Telos Earring", ear2="Digni. Earring",
- body="Adhemar Jacket", hands=gear.tp_HercHands, ring1="Ramuh Ring +1", ring2="Ramuh Ring +1",
- back="Grounded Mantle +1", waist="Reiki Yotai", legs="Carmine Cuisses +1", feet=gear.tp_HercFeet}
- sets.engaged.DW.PDT = {ammo="Amar Cluster",
- head="Lithelimb Cap", neck="Combatant's Torque", ear1="Genmei Earring", ear2="Black Earring",
- body="Erilaz Surcoat +1", hands="Erilaz Gauntlets +1", ring1="Defending Ring", ring2="Dark Ring",
- back="Evasionist's Cape", waist="Flume Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1"}
- sets.engaged.DW.MDT = {ammo="Vanir Battery",
- head="Dampening Tam", neck="Twilight Torque", ear1="Sanare Earring", ear2="Etiolation Earring",
- body="Runeist Coat +1", hands="Futhark Mitons +1", ring1="Defending Ring", ring2="Shadow Ring",
- back="Engulfer Cape +1", waist="Flume Belt", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1"}
- sets.engaged.DW.BDT = {ammo="Vanir Battery",
- head="Erilaz Galea +1", neck="Twilight Torque", ear1="Genmei Earring", ear2="Sanare Earring",
- body="Futhark Coat +1", hands="Kurys Gloves", ring1="Defending Ring", ring2="Dark Ring",
- back="Mollusca Mantle", waist="Lieutenant's Sash", legs="Eri. Leg Guards +1", feet="Erilaz Greaves +1",}
- sets.engaged.repulse = {}
- sets.engaged.Aettir = {main="Aettir", sub="Alber Strap",}
- sets.engaged.Reikiko = {main="Reikiko"}
- sets.engaged.Fettering = {main="Fettering Blade"}
- end
- ------------------------------------------------------------------
- -- Action events
- ------------------------------------------------------------------
- -- 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)
- if spell.english == 'Lunge' or spell.english == 'Swipe' then
- local obi = get_obi(get_rune_obi_element())
- if obi then
- equip({waist=obi})
- end
- end
- end
- function job_aftercast(spell)
- if not spell.interrupted then
- if spell.type == 'Rune' then
- update_timers(spell)
- elseif spell.name == "Lunge" or spell.name == "Gambit" or spell.name == 'Rayke' then
- reset_timers()
- elseif spell.name == "Swipe" then
- send_command(trim(1))
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customization hooks for idle and melee sets, after they've been automatically constructed.
- -------------------------------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other events.
- -------------------------------------------------------------------------------------------------------------------
- function job_precast(spell)
- if info.RuneEnchantment:contains(spell.english) then
- equip(sets.enmity)
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- function job_update(cmdParams, eventArgs)
- update_combat_form()
- end
- function update_combat_form()
- -- Check for H2H or single-wielding
- if player.equipment.sub == "Bloodrain Strap" or player.equipment.sub == "Vivid Strap" or player.equipment.sub == "Alber Strap" or player.equipment.sub == 'empty' then
- state.CombatForm:reset()
- else
- state.CombatForm:set('DW')
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- 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(3, 18)
- elseif player.sub_job == 'NIN' then
- set_macro_page(1, 18)
- elseif player.sub_job == 'SAM' then
- set_macro_page(2, 18)
- elseif player.sub_job == 'BLU' then
- set_macro_page(3, 18)
- else
- set_macro_page(2, 18)
- end
- end
- function get_rune_obi_element()
- weather_rune = buffactive[elements.rune_of[world.weather_element] or '']
- day_rune = buffactive[elements.rune_of[world.day_element] or '']
- local found_rune_element
- if weather_rune and day_rune then
- if weather_rune > day_rune then
- found_rune_element = world.weather_element
- else
- found_rune_element = world.day_element
- end
- elseif weather_rune then
- found_rune_element = world.weather_element
- elseif day_rune then
- found_rune_element = world.day_element
- end
- return found_rune_element
- end
- function get_obi(element)
- if element and elements.obi_of[element] then
- return (player.inventory[elements.obi_of[element]] or player.wardrobe[elements.obi_of[element]]) and elements.obi_of[element]
- end
- end
- ------------------------------------------------------------------
- -- Timer manipulation
- ------------------------------------------------------------------
- -- Add a new run to the custom timers, and update index values for existing timers.
- function update_timers(spell)
- local expires_time = os.time() + 300
- local entry_index = rune_count(spell.name) + 1
- local entry = {rune=spell.name, index=entry_index, expires=expires_time}
- rune_timers:append(entry)
- local cmd_queue = create_timer(entry).. ';wait 0.05;'
- cmd_queue = cmd_queue .. trim()
- -- add_to_chat(123,'cmd_queue='..cmd_queue)
- send_command(cmd_queue)
- end
- -- Get the command string to create a custom timer for the provided entry.
- function create_timer(entry)
- local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) .. '"'
- local duration = entry.expires - os.time()
- return 'timers c ' .. timer_name .. ' ' .. tostring(duration) .. ' down'
- end
- -- Get the command string to delete a custom timer for the provided entry.
- function delete_timer(entry)
- local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) .. '"'
- return 'timers d ' .. timer_name .. ''
- end
- -- Reset all timers
- function reset_timers()
- local cmd_queue = ''
- for index,entry in pairs(rune_timers) do
- cmd_queue = cmd_queue .. delete_timer(entry) .. ';wait 0.05;'
- end
- rune_timers:clear()
- send_command(cmd_queue)
- end
- -- Get a count of the number of runes of a given type
- function rune_count(rune)
- local count = 0
- local current_time = os.time()
- for _,entry in pairs(rune_timers) do
- if entry.rune == rune and entry.expires > current_time then
- count = count + 1
- end
- end
- return count
- end
- -- Remove the oldest rune(s) from the table, until we're below the max_runes limit.
- -- If given a value n, remove n runes from the table.
- function trim(n)
- local cmd_queue = ''
- local to_remove = n or (rune_timers:length() - max_runes)
- while to_remove > 0 and rune_timers:length() > 0 do
- local oldest
- for index,entry in pairs(rune_timers) do
- if oldest == nil or entry.expires < rune_timers[oldest].expires then
- oldest = index
- end
- end
- cmd_queue = cmd_queue .. prune(rune_timers[oldest].rune)
- to_remove = to_remove - 1
- end
- return cmd_queue
- end
- -- Drop the index of all runes of a given type.
- -- If the index drops to 0, it is removed from the table.
- function prune(rune)
- local cmd_queue = ''
- for index,entry in pairs(rune_timers) do
- if entry.rune == rune then
- cmd_queue = cmd_queue .. delete_timer(entry) .. ';wait 0.05;'
- entry.index = entry.index - 1
- end
- end
- for index,entry in pairs(rune_timers) do
- if entry.rune == rune then
- if entry.index == 0 then
- rune_timers[index] = nil
- else
- cmd_queue = cmd_queue .. create_timer(entry) .. ';wait 0.05;'
- end
- end
- end
- return cmd_queue
- end
- ------------------------------------------------------------------
- -- Reset events
- ------------------------------------------------------------------
- windower.raw_register_event('zone change',reset_timers)
- windower.raw_register_event('logout',reset_timers)
- windower.raw_register_event('status change',function(new, old)
- if gearswap.res.statuses[new].english == 'Dead' then
- reset_timers()
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement