Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function that defines sets and variables to be used.
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent.
- function job_setup()
- state.Buff.Migawari = buffactive.migawari or false
- state.Buff.Doomed = buffactive.doomed or false
- determine_haste_group()
- end
- -- Setup vars that are user-independent.
- function job_setup()
- state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
- state.Buff['Trick Attack'] = buffactive['trick attack'] or false
- state.Buff['Feint'] = buffactive['feint'] or false
- include('Mote-TreasureHunter')
- -- For th_action_check():
- -- JA IDs for actions that always have TH: Provoke, Animated Flourish
- info.default_ja_ids = S{35, 204}
- -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
- info.default_u_ja_ids = S{201, 202, 203, 205, 207}
- end
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- -- Options: Override default values
- options.OffenseModes = {'Normal', 'Acc', 'Mod'} -- Mod for trivially weak mobs
- options.DefenseModes = {'Normal', 'Evasion', 'PDT'}
- options.RangedModes = {'Normal', 'Acc'}
- options.WeaponskillModes = {'Normal', 'Acc', 'Mod'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'Evasion', 'PDT'}
- options.MagicalDefenseModes = {'MDT'}
- state.RangedMode = 'Normal'
- state.Defense.PhysicalMode = 'Evasion'
- gear.default.weaponskill_neck = "Asperity Necklace"
- gear.default.weaponskill_waist = "Caudata Belt"
- gear.AugQuiahuiz = {name="Quiahuiz Trousers", augments={'Haste+2','"Snapshot"+2','STR+8'}}
- -- Additional local binds
- send_command('bind ^` input /ja "Flee" <me>')
- send_command('bind ^= gs c cycle treasuremode')
- send_command('bind !- gs c cycle targetmode')
- select_default_macro_book()
- end
- -- Called when this job file is unloaded (eg: job change)
- function job_file_unload()
- send_command('unbind ^`')
- send_command('unbind !-')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Special sets (required by rules)
- --------------------------------------
- sets.TreasureHunter = {hands="Plunderer's Armlets +1", waist="Chaac Belt", feet="Raider's Poulaines +2"}
- sets.ExtraRegen = {head="Ocelomeh Headpiece +1"}
- --feet="Skadi's Jambeaux +1"
- sets.Kiting = {feet="Fajin Boots"}
- sets.buff['Sneak Attack'] = {ammo="Yetshila +1",
- head="Pillager's Bonnet +1",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.buff['Trick Attack'] = {ammo="Yetshila +1",
- head="Pillager's Bonnet +1",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring2="Garuda Ring +1",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- -- Actions we want to use to tag TH.
- sets.precast.Step = sets.TreasureHunter
- sets.precast.Flourish1 = sets.TreasureHunter
- sets.precast.JA.Provoke = sets.TreasureHunter
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Collaborator'] = {head="Raider's Bonnet +2"}
- sets.precast.JA['Accomplice'] = {head="Raider's Bonnet +2"}
- sets.precast.JA['Flee'] = {feet="Pillager's Poulaines +1"}
- sets.precast.JA['Hide'] = {body="Pillager's Vest +1"}
- sets.precast.JA['Conspirator'] = {} -- {body="Raider's Vest +2"}
- sets.precast.JA['Steal'] = {head="Plunderer's Bonnet",hands="Pillager's Armlets +1",legs="Pillager's Culottes +1",feet="Pillager's Poulaines +1"}
- sets.precast.JA['Despoil'] = {legs="Raider's Culottes +2",feet="Raider's Poulaines +2"}
- sets.precast.JA['Perfect Dodge'] = {hands="Plunderer's Armlets +1"}
- sets.precast.JA['Feint'] = {legs="Plunderer's Culottes +1"}
- sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
- sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Sonia's Plectrum",
- head="Whirlpool Mask",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Asklepian Ring",
- back="Iximulew Cape",waist="Caudata Belt",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Fast cast sets for spells
- sets.precast.FC = {head="Haruspex Hat",body="Dread Jupon",ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring",legs="Enif Cosciales"}
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
- -- Ranged snapshot gear
- sets.precast.RA = {head="Uk'uxkaj Cap",hands="Iuitl Wristbands +1",legs="Nahtirah Trousers",feet="Khepri Gamashes"}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- head="Whirlpool Mask",neck=gear.ElementalGorget,ear1="Brutal Earring",ear2="Moonshade Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring2="Rajas Ring",ring1="Epona's Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Plunderer's Poulaines +1"}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {head="Whirlpool Mask",back="Letalis Mantle",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS["Mercy Stroke"] = set_combine(sets.precast.WS, {
- head="Uk'uxkaj Cap",neck="Soil Gorget",back="Buquwik Cape",hands="Boor Bracelets",ear2="Vulcan's Pearl",ring2="Ifrit Ring +1",body="Dread Jupon",legs="Quiahuiz Trousers",waist="Metalsinger Belt",feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}}})
- sets.precast.WS["Mercy Stroke"].Acc = set_combine(sets.precast.WS["Mercy Stroke"], {head="Whirlpool Mask",back="Letalis Mantle",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}})
- sets.precast.WS["Mercy Stroke"].Mod = set_combine(sets.precast.WS["Mercy Stroke"], {head="Uk'uxkaj Cap",body="Dread Jupon",back="Buquwik Cape",hands="Boor Bracelets",waist="Metalsinger Belt"})
- sets.precast.WS["Mercy Stroke"].SA = set_combine(sets.precast.WS["Mercy Stroke"].Mod, {head="Uk'uxkaj Cap",legs="Pillager's Culottes +1",hands="Pillager's Armlets +1",back="Cavaros Mantle",body="Plunderer's Vest +1",ring2="Ifrit Ring +1",feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}}})
- sets.precast.WS["Mercy Stroke"].TA = set_combine(sets.precast.WS["Mercy Stroke"].Mod, {hands="Boor Bracelets"})
- sets.precast.WS["Mercy Stroke"].SATA = set_combine(sets.precast.WS["Mercy Stroke"].Mod, {hands="Pillager's Armlets +1"})
- sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {ring2="Garuda Ring +1",legs="Nahtirah Trousers"})
- sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- sets.precast.WS['Exenterator'].Mod = set_combine(sets.precast.WS['Exenterator'], {head="Felistris Mask",waist=gear.ElementalBelt})
- sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Yetshila +1"})
- sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Yetshila +1"})
- sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Yetshila +1"})
- sets.precast.WS['Dancing Edge'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Dancing Edge'].Acc = set_combine(sets.precast.WS['Dancing Edge'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- sets.precast.WS['Dancing Edge'].Mod = set_combine(sets.precast.WS['Dancing Edge'], {waist=gear.ElementalBelt})
- sets.precast.WS['Dancing Edge'].SA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Yetshila +1"})
- sets.precast.WS['Dancing Edge'].TA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Yetshila +1"})
- sets.precast.WS['Dancing Edge'].SATA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Yetshila +1"})
- --ammo="Yetshila +1",
- sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {
- head="Pillager's Bonnet +1",body="Plunderer's Vest +1",neck="Soil Gorget",back="Rancorous Mantle",legs="Hecatomb Subligar +1",waist="Wanion Belt"})
- sets.precast.WS['Evisceration'].Acc = set_combine(sets.precast.WS['Evisceration'], {head="Uk'uxkaj Cap",body="Plunderer's Vest +1",neck="Soil Gorget",
- --hands="Aetosaur Gloves +1",
- back="Rancorous Mantle",legs="Pillager's Culottes +1",waist="Soil Belt"})
- sets.precast.WS['Evisceration'].Mod = set_combine(sets.precast.WS['Evisceration'], {waist=gear.ElementalBelt})
- sets.precast.WS['Evisceration'].SA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
- sets.precast.WS['Evisceration'].TA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
- sets.precast.WS['Evisceration'].SATA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
- sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {head="Plunderer's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring",waist="Wanion Belt",ring2="Ramuh Ring +1",back="Kayapa Cape"})
- sets.precast.WS["Rudra's Storm"].Acc = set_combine(sets.precast.WS["Rudra's Storm"], {})
- sets.precast.WS["Rudra's Storm"].Mod = set_combine(sets.precast.WS["Rudra's Storm"], {back="Kayapa Cape",waist=gear.ElementalBelt})
- sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {head="Pillager's Bonnet +1",legs="Pillager's Culottes +1",hands="Pillager's Armlets +1",back="Kayapa Cape",body="Pillager's Vest +1",ring2="Ramuh Ring +1",feet="Plunderer's Poulaines +1",waist="Wanion Belt"})
- sets.precast.WS["Rudra's Storm"].TA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {back="Cavaros Mantle"})
- sets.precast.WS["Rudra's Storm"].SATA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {back="Kayapa Cape"})
- sets.precast.WS["Shark Bite"] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
- sets.precast.WS['Shark Bite'].Acc = set_combine(sets.precast.WS['Shark Bite'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- sets.precast.WS['Shark Bite'].Mod = set_combine(sets.precast.WS['Shark Bite'], {back="Kayapa Cape",waist=gear.ElementalBelt})
- sets.precast.WS['Shark Bite'].SA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Yetshila +1",
- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- sets.precast.WS['Shark Bite'].TA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Yetshila +1",
- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- sets.precast.WS['Shark Bite'].SATA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Yetshila +1",
- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- sets.precast.WS['Mandalic Stab'] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
- sets.precast.WS['Mandalic Stab'].Acc = set_combine(sets.precast.WS['Mandalic Stab'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- sets.precast.WS['Mandalic Stab'].Mod = set_combine(sets.precast.WS['Mandalic Stab'], {back="Kayapa Cape",waist=gear.ElementalBelt})
- sets.precast.WS['Mandalic Stab'].SA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Yetshila +1",
- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- sets.precast.WS['Mandalic Stab'].TA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Yetshila +1",
- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- sets.precast.WS['Mandalic Stab'].SATA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Yetshila +1",
- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- sets.precast.WS['Aeolian Edge'] = {ammo="Jukukik Feather",
- head="Wayfarer Circlet",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Moonshade Earring",
- body="Wayfarer Robe",hands="Pillager's Armlets +1",ring1="Acumen Ring",ring2="Demon's Ring",
- back="Toro Cape",waist=gear.ElementalBelt,legs="Shneddick Tights +1",feet="Wayfarer Clogs"}
- sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- sets.midcast.FastRecast = {
- head="Whirlpool Mask",ear2="Loquacious Earring",
- body="Pillager's Vest +1",hands="Thaumas Gloves",
- back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
- -- Specific spells
- sets.midcast.Utsusemi = {
- head="Whirlpool Mask",neck="Ej Necklace +1",ear2="Loquacious Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",
- back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
- -- Ranged gear
- sets.midcast.RA = {
- head="Whirlpool Mask",neck="Ej Necklace +1",ear1="Clearview Earring",ear2="Volley Earring",
- body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Beeline Ring",ring2="Hajduk Ring",
- back="Libeccio Mantle",waist="Aquiline Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"}
- sets.midcast.RA.Acc = {
- head="Pillager's Bonnet +1",neck="Ej Necklace +1",ear1="Clearview Earring",ear2="Volley Earring",
- body="Iuitl Vest",hands="Buremte Gloves",ring1="Beeline Ring",ring2="Hajduk Ring",
- back="Libeccio Mantle",waist="Aquiline Belt",legs="Thurandaut Tights +1",feet="Pillager's Poulaines +1"}
- --------------------------------------
- -- Idle/resting/defense sets
- --------------------------------------
- -- Resting sets
- sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",
- ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle = {
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Khepri Jacket",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Fajin Boots"}
- sets.idle.Town = {
- head="Felistris Mask",neck="Rancor Collar",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Thaumas Coat",hands="Pill. Armlets +1",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Canny cape",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Fajin Boots"}
- sets.idle.Weak = {ammo="Yetshila +1",
- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Fajin Boots"}
- -- Defense sets
- sets.defense.Evasion = {
- head="Pillager's Bonnet +1",neck="Ej Necklace +1",
- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Beeline Ring",
- back="Canny Cape",waist="Flume Belt",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
- sets.defense.PDT = {ammo="Iron Gobbet",
- head="Pillager's Bonnet +1",neck="Twilight Torque",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
- back="Iximulew Cape",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Iuitl Gaiters +1"}
- sets.defense.MDT = {ammo="Demonry Stone",
- head="Pillager's Bonnet +1",neck="Twilight Torque",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Shadow Ring",
- back="Engulfer Cape",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Iuitl Gaiters +1"}
- --------------------------------------
- -- Melee sets
- --------------------------------------
- -- Normal melee group (low magic haste)
- sets.engaged = {
- head="Iuitl Headgear +1",
- --head="Felistris Mask",
- neck="Rancor Collar",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Skadi's Cuirie +1",
- --body="Thaumas Coat",
- hands="Pill. Armlets +1",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Canny cape",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Acc = {head="Whirlpool Mask",
- body="Pillager's Vest +1",
- hands={ name="Qaaxo Mitaines", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- legs={ name="Plun. Culottes +1", augments={'Enhances "Feint" effect',}},
- feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej necklace +1",
- waist="Anguinus Belt",
- left_ear="Dudgeon Earring",
- right_ear="Heartseeker Earring",
- left_ring="Mars's Ring",
- right_ring="Ramuh Ring +1",
- back="Letalis Mantle"}
- -- Mod set for trivial mobs (Skadi+1)
- sets.engaged.Mod = {ammo="Yetshila +1",
- head="Iuitl Headgear +1",
- --head="Felistris Mask",
- neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Skadi's Cuirie +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs=gear.AugQuiahuiz,feet="Plunderer's Poulaines +1"}
- -- Mod set for trivial mobs (Thaumas)
- sets.engaged.Mod2 = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Thaumas Coat",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Evasion = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Shetal Stone",legs="Kaabnax Trousers",feet="Vanir Boots"}
- sets.engaged.Acc.Evasion = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet="Vanir Boots"}
- sets.engaged.PDT = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Iximulew Cape",waist="Shetal Stone",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- -- Custom melee group: Embrava Haste (7% DW)
- sets.engaged.EmbravaHaste = {head="Iuitl Headgear +1",
- --head="Felistris Mask",
- neck="Rancor Collar",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Thaumas Coat",hands="Pill. Armlets +1",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Canny cape",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Acc.EmbravaHaste = {head="Whirlpool Mask",
- body="Pillager's Vest +1",
- hands={ name="Qaaxo Mitaines", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- legs={ name="Plun. Culottes +1", augments={'Enhances "Feint" effect',}},
- feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej necklace +1",
- waist="Anguinus Belt",
- left_ear="Dudgeon Earring",
- right_ear="Heartseeker Earring",
- left_ring="Mars's Ring",
- right_ring="Ramuh Ring +1",
- back="Letalis Mantle"}
- -- Mod set for trivial mobs (Skadi+1)
- sets.engaged.Mod.EmbravaHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Skadi's Cuirie +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs=gear.AugQuiahuiz,feet="Plunderer's Poulaines +1"}
- -- Mod set for trivial mobs (Thaumas)
- sets.engaged.Mod2.EmbravaHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Thaumas Coat",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Evasion.EmbravaHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Shetal Stone",legs="Kaabnax Trousers",feet="Vanir Boots"}
- sets.engaged.Acc.Evasion.EmbravaHaste = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
- sets.engaged.PDT.EmbravaHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Iximulew Cape",waist="Shetal Stone",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- sets.engaged.Acc.PDT.EmbravaHaste = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- -- Custom melee group: High Haste (~20% DW)
- sets.engaged.HighHaste = {head="Iuitl Headgear +1",
- --head="Felistris Mask",
- neck="Rancor Collar",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Thaumas Coat",hands="Pill. Armlets +1",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Canny cape",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Acc.HighHaste = {head="Whirlpool Mask",
- body="Pillager's Vest +1",
- hands={ name="Qaaxo Mitaines", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- legs={ name="Plun. Culottes +1", augments={'Enhances "Feint" effect',}},
- feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej necklace +1",
- waist="Anguinus Belt",
- left_ear="Dudgeon Earring",
- right_ear="Heartseeker Earring",
- left_ring="Mars's Ring",
- right_ring="Ramuh Ring +1",
- back="Letalis Mantle"}
- -- Mod set for trivial mobs (Skadi+1)
- sets.engaged.Mod.HighHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Skadi's Cuirie +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs=gear.AugQuiahuiz,feet="Plunderer's Poulaines +1"}
- -- Mod set for trivial mobs (Thaumas)
- sets.engaged.Mod2.HighHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Thaumas Coat",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Evasion.HighHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Shetal Stone",legs="Kaabnax Trousers",feet="Vanir Boots"}
- sets.engaged.Acc.Evasion.HighHaste = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
- sets.engaged.PDT.HighHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Iximulew Cape",waist="Shetal Stone",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- sets.engaged.Acc.PDT.HighHaste = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- -- Custom melee group: Max Haste (0% DW)
- sets.engaged.MaxHaste = {ammo="Yetshila +1",
- head="Iuitl Headgear +1",
- --head="Felistris Mask",
- neck="Rancor Collar",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Thaumas Coat",hands="Pill. Armlets +1",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Canny cape",waist="Windbuffet Belt",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Acc.MaxHaste = {head="Whirlpool Mask",
- body="Pillager's Vest +1",
- hands={ name="Qaaxo Mitaines", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- legs={ name="Plun. Culottes +1", augments={'Enhances "Feint" effect',}},
- feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej necklace +1",
- waist="Anguinus Belt",
- left_ear="Dudgeon Earring",
- right_ear="Heartseeker Earring",
- left_ring="Mars's Ring",
- right_ring="Ramuh Ring +1",
- back="Letalis Mantle"}
- -- Mod set for trivial mobs (Skadi+1)
- sets.engaged.Mod.MaxHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Skadi's Cuirie +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs=gear.AugQuiahuiz,feet="Plunderer's Poulaines +1"}
- -- Mod set for trivial mobs (Thaumas)
- sets.engaged.Mod2.MaxHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Thaumas Coat",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Shetal Stone",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- sets.engaged.Evasion.MaxHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Ej Necklace +1",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Shetal Stone",legs="Kaabnax Trousers",feet="Vanir Boots"}
- sets.engaged.Acc.Evasion.MaxHaste = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Ej Necklace +1",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- sets.engaged.PDT.MaxHaste = {ammo="Yetshila +1",
- head="Felistris Mask",neck="Twilight Torque",ear1="Brutal Earring",ear2="Suppanomimi",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Iximulew Cape",waist="Shetal Stone",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- sets.engaged.Acc.PDT.MaxHaste = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}}}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks that are called to process player actions at specific points in time.
- -------------------------------------------------------------------------------------------------------------------
- function job_precast(spell, action, spellMap, eventArgs)
- if state.Buff[spell.english] ~= nil then
- state.Buff[spell.english] = true
- end
- end
- -- Run after the general precast() is done.
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.english == 'Aeolian Edge' and state.TreasureMode ~= 'None' then
- equip(sets.TreasureHunter)
- elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
- if state.TreasureMode == 'SATA' or state.TreasureMode == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- end
- end
- -- Run after the general midcast() set is constructed.
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if state.TreasureMode ~= 'None' and spell.action_type == 'Ranged Attack' then
- equip(sets.TreasureHunter)
- end
- end
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_aftercast(spell, action, spellMap, eventArgs)
- if state.Buff[spell.english] ~= nil then
- state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
- end
- -- Weaponskills wipe SATA/Feint. Turn those state vars off before default gearing is attempted.
- if spell.type == 'WeaponSkill' and not spell.interrupted then
- state.Buff['Sneak Attack'] = false
- state.Buff['Trick Attack'] = false
- state.Buff['Feint'] = false
- end
- end
- -- Called after the default aftercast handling is complete.
- function job_post_aftercast(spell, action, spellMap, eventArgs)
- -- If Feint is active, put that gear set on on top of regular gear.
- -- This includes overlaying SATA gear.
- check_buff('Feint', eventArgs)
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customization hooks.
- -------------------------------------------------------------------------------------------------------------------
- function get_custom_wsmode(spell, spellMap, defaut_wsmode)
- local wsmode
- if state.Buff['Sneak Attack'] then
- wsmode = 'SA'
- end
- if state.Buff['Trick Attack'] then
- wsmode = (wsmode or '') .. 'TA'
- end
- return wsmode
- end
- -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
- function job_handle_equipping_gear(playerStatus, eventArgs)
- -- Check that ranged slot is locked, if necessary
- check_range_lock()
- -- Check for SATA when equipping gear. If either is active, equip
- -- that gear specifically, and block equipping default gear.
- check_buff('Sneak Attack', eventArgs)
- check_buff('Trick Attack', eventArgs)
- end
- function customize_idle_set(idleSet)
- if player.hpp < 80 then
- idleSet = set_combine(idleSet, sets.ExtraRegen)
- end
- return idleSet
- end
- function customize_melee_set(meleeSet)
- if state.TreasureMode == 'Fulltime' then
- meleeSet = set_combine(meleeSet, sets.TreasureHunter)
- end
- return meleeSet
- end
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for change 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 state.Buff[buff] ~= nil then
- state.Buff[buff] = gain
- if not midaction() then
- handle_equipping_gear(player.status)
- end
- end
- end
- ------------------------BLu
- --helper_functions.lua 594 elseif spell.type == 'BlueMagic' and not ((player.main_job_id == 16 and --table.contains(windower.ffxi.get_mjob_data().spells,spell.id)) or
- -- 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 we gain or lose any haste buffs, adjust which gear set we target.
- if buffactive.sleep and player.hp > 200 and player.status == "Engaged" and not buffactive.stoneskin then
- equip({head="Frenzy Sallet"})
- elseif buffactive.sleep and player.hp > 200 and player.status == "Engaged" and buffactive.Stoneskin then
- send_command('cancel stoneskin')
- else
- if not midaction() then
- status_change(player.status)
- end
- end
- --if buffactive.sleep and player.hp > 200 and player.status == "Engaged" and buffactive.Stoneskin then
- --equip({head="Frenzy Sallet"})
- --send_command('cancel stonekin')
- --else
- --if not midaction() then
- --status_change(player.status)
- --end
- --end
- if S{'haste','march','embrava','haste samba'}:contains(buff:lower()) then
- determine_haste_group()
- handle_equipping_gear(player.status)
- elseif state.Buff[buff] ~= nil then
- state.Buff[buff] = gain
- handle_equipping_gear(player.status)
- end
- end
- -- Equip Frenzy Sallet When You Are Asleep & Have 200+ HP --
- --function buff_change(buff,gain)
- --buff = string.lower(buff)
- --if buffactive.Sleep and player.hp > 200 and player.status == "Engaged" then
- --equip({head="Frenzy Sallet"})
- --elseif buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" and buffactive.Stoneskin --then
- -- equip({head="Frenzy Sallet"})
- --send_command('cancel stonekin')
- --else
- --if not midaction() then
- --status_change(player.status)
- --end
- -- end
- --end
- -------------------------------------------------------------------------------------------------------------------
- -- Various update events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- th_update(cmdParams, eventArgs)
- 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 defenseString = ''
- if state.Defense.Active then
- local defMode = state.Defense.PhysicalMode
- if state.Defense.Type == 'Magical' then
- defMode = state.Defense.MagicalMode
- end
- defenseString = 'Defense: '..state.Defense.Type..' '..defMode..' '
- end
- add_to_chat(122,'Melee: '..state.OffenseMode..'/'..state.DefenseMode..' WS: '..state.WeaponskillMode..' '..
- defenseString..'Kiting: '..on_off_names[state.Kiting]..' TH: '..state.TreasureMode)
- eventArgs.handled = true
- end
- -- Called by the default 'update' self-command.
- function job_update(cmdParams, eventArgs)
- determine_haste_group()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- State buff checks that will equip buff gear and mark the event as handled.
- function check_buff(buff_name, eventArgs)
- if state.Buff[buff_name] then
- equip(sets.buff[buff_name] or {})
- if state.TreasureMode == 'SATA' or state.TreasureMode == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- eventArgs.handled = true
- end
- end
- -- Check for various actions that we've specified in user code as being used with TH gear.
- -- This will only ever be called if TreasureMode is not 'None'.
- -- Category and Param are as specified in the action event packet.
- function th_action_check(category, param)
- if category == 2 or -- any ranged attack
- --category == 4 or -- any magic action
- (category == 3 and param == 30) or -- Aeolian Edge
- (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
- (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
- then return true
- end
- end
- -- Function to lock the ranged slot if we have a ranged weapon equipped.
- function check_range_lock()
- if player.equipment.range ~= 'empty' then
- disable('range', 'ammo')
- else
- enable('range', 'ammo')
- end
- end
- function determine_haste_group()
- -- We have three groups of DW in gear: Hachiya body/legs, Iga head + Shetal Stone, and DW earrings
- -- Standard gear set reaches near capped delay with just Haste (77%-78%, depending on HQs)
- -- For high haste, we want to be able to drop one of the 10% groups.
- -- Basic gear hits capped delay (roughly) with:
- -- 1 March + Haste
- -- 2 March
- -- Haste + Haste Samba
- -- 1 March + Haste Samba
- -- Embrava
- -- High haste buffs:
- -- 2x Marches + Haste Samba == 19% DW in gear
- -- 1x March + Haste + Haste Samba == 22% DW in gear
- -- Embrava + Haste or 1x March == 7% DW in gear
- -- For max haste (capped magic haste + 25% gear haste), we can drop all DW gear.
- -- Max haste buffs:
- -- Embrava + Haste+March or 2x March
- -- 2x Marches + Haste
- -- So we want four tiers:
- -- Normal DW
- -- 20% DW -- High Haste
- -- 7% DW (earrings) - Embrava Haste (specialized situation with embrava and haste, but no marches)
- -- 0 DW - Max Haste
- classes.CustomMeleeGroups:clear()
- if buffactive.embrava and (buffactive.march == 2 or (buffactive.march and buffactive.haste)) then
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif buffactive.march == 2 and buffactive.haste then
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif buffactive.embrava and (buffactive.haste or buffactive.march) then
- classes.CustomMeleeGroups:append('EmbravaHaste')
- elseif buffactive.march == 1 and buffactive.haste and buffactive['haste samba'] then
- classes.CustomMeleeGroups:append('HighHaste')
- elseif buffactive.march == 2 then
- classes.CustomMeleeGroups:append('HighHaste')
- 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(5, 8)
- elseif player.sub_job == 'WAR' then
- set_macro_page(5, 8)
- elseif player.sub_job == 'NIN' then
- set_macro_page(5, 8)
- else
- set_macro_page(5, 8)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment