Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- include('organizer-lib')
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- state.Buff.Footwork = buffactive.Footwork or false
- state.Buff.Impetus = buffactive.Impetus or false
- no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
- "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
- include('Mote-TreasureHunter')
- state.TreasureMode:set('Tag')
- state.FootworkWS = M(false, 'Footwork on WS')
- info.impetus_hit_count = 0
- windower.raw_register_event('action', on_action_for_impetus)
- 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 binds_on_load()
- -- F9-F12
- send_command('bind f9 gs c cycle OffenseMode')
- send_command('bind f10 gs c cycle HybridMode')
- send_command('bind f11 gs c cycle WeaponskillMode')
- send_command('bind f12 gs c cycle PhysicalDefenseMode')
- end
- function user_setup()
- state.OffenseMode:options('Normal', 'SomeAcc', 'Acc', 'Mod', 'Crit')
- state.WeaponskillMode:options('Normal')
- state.HybridMode:options('Normal', 'PDT', 'Counter', 'Proc')
- state.PhysicalDefenseMode:options('PDT')
- update_combat_form()
- update_melee_groups()
- select_default_macro_book()
- send_command('lua l gearinfo')
- end
- function user_unload()
- send_command('lua u gearinfo')
- end
- -- Called when this job file is unloaded (eg: job change)
- function file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- -- Precast Sets
- sets.TreasureHunter = {head="Volte Cap",
- body="Volte Jupon",
- feet="Volte Boots"}
- -- Precast sets to enhance JAs on use
- sets.precast.JA['Mantra'] = { name="Hes. Gaiters +3", augments={'Enhances "Mantra" effect',}}
- sets.precast.JA['Hundred Fists'] = { legs="Hes. Hose +3", augments={'Enhances "Hundred Fists" effect',}}
- sets.precast.JA['Boost'] = {hands="Anchorite's Gloves +3"}
- sets.precast.JA['Dodge'] = {feet="Anchorite's Gaiters +3"}
- sets.precast.JA['Focus'] = {head="Anchorite's Crown +3"}
- sets.precast.JA['Counterstance'] = { feet="Hes. Gaiters +3", augments={'Enhances "Mantra" effect',}}
- sets.precast.JA['Footwork'] = {feet="Bhikku Gaiters +3",}
- sets.precast.JA['Formless Strikes'] = {}
- sets.precast.JA['Chi Blast'] = {
- ammo="Tantra Tathlum",
- head="Hes. Crown +3",
- body="Anch. Cyclas +3",
- hands="Hes. Gloves +3",
- legs="Hiza. Hizayoroi +2",
- feet="Hiza. Sune-Ate +2",
- neck="Unmoving Collar",
- waist="Caudata Belt",
- left_ear="Genmei Earring",
- right_ear="Odnowa Earring +1",
- left_ring="Regal Ring",
- right_ring="Niqmaddu Ring",
- back="Moonlight Cape"
- }
- sets.precast.JA['Provoke'] = {
- ammo="Iron Gobbet",
- head="Halitus Helm",
- ear1="Friomisi Earring",
- ear2="Trux Earring",
- neck="Moonlight Necklace",
- body="Emet Harness +1",
- hands="Kurys Gloves",
- back="Enuma Mantle",
- ring1="Provocare Ring",
- ring2="Petrov Ring",
- waist="Kasiri Belt",
- legs="Wukong's Haka. +1",
- feet="Rager Ledel. +1"
- }
- sets.precast.JA['Chakra'] = {
- ammo="Aurgelmir Orb +1",
- head={ name="Hes. Crown +3", augments={'Enhances "Penance" effect',}},
- body="Anch. Cyclas +3",
- hands={ name="Hes. Gloves +3", augments={'Enhances "Invigorate" effect',}},
- legs={ name="Tatena. Haidate +1", augments={'Path: A',}},
- feet="Bhikku Gaiters +3",
- neck={ name="Unmoving Collar +1", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Tuisto Earring",
- right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- left_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}}
- }
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Aurgelmir Orb +1",
- head="Genmei Kabuto",
- body="Malignance Tabard",
- hands={ name="Gazu Bracelet +1", augments={'Path: A',}},
- legs={ name="Tatena. Haidate +1", augments={'Path: A',}},
- feet="Volte Boots",
- neck={ name="Unmoving Collar +1", augments={'Path: A',}},
- waist="Chaac Belt",
- left_ear="Tuisto Earring",
- right_ear="Handler's Earring +1",
- left_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}},}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- sets.precast.Step = {}
- sets.precast.Flourish1 = {}
- -- Fast cast sets for spells
- sets.precast.FC = {
- ammo="Impatiens",
- head={ name="Herculean Helm", augments={'Pet: INT+10','Pet: Attack+19 Pet: Rng.Atk.+19','"Treasure Hunter"+2','Accuracy+13 Attack+13','Mag. Acc.+13 "Mag.Atk.Bns."+13',}},
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- feet="Ahosi Leggings",
- neck="Orunmila's Torque",
- right_ear="Loquac. Earring",
- right_ring="Rahab Ring",
- }
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {})
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {ammo="Knobkierrie",
- head={ name="Hes. Crown +3", augments={'Enhances "Penance" effect',}},
- body="Bhikku Cyclas +3",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Nyame Flanchard",
- feet="Nyame Sollerets",
- neck={ name="Mnk. Nodowa +2", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- left_ring="Gere Ring",
- right_ring="Cornelia's Ring",
- back={ name="Segomo's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}}}
- sets.precast.MaxTP = {}
- sets.precast.WS.SomeAcc = set_combine(sets.precast.WS, sets.precast.WSAcc)
- sets.precast.WS.Acc = set_combine(sets.precast.WS.SomeAcc, {})
- sets.precast.WS.Mod = set_combine(sets.precast.WS, sets.precast.WSMod)
- -- Specific weaponskill sets.
- -- legs={name="Quiahuiz Trousers", augments={'Phys. dmg. taken -2%','Magic dmg. taken -2%','STR+8'}}}
- sets.precast.WS['Raging Fists'] = set_combine(sets.precast.WS, {legs={ name="Tatena. Haidate +1", augments={'Path: A',}}})
- sets.precast.WS['Howling Fist'] = set_combine(sets.precast.WS, {ammo="Knobkierrie",
- head={ name="Hes. Crown +3", augments={'Enhances "Penance" effect',}},
- body={ name="Tatena. Harama. +1", augments={'Path: A',}},
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Mpaca's Hose",
- feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
- neck="Fotia Gorget",
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- left_ring="Gere Ring",
- right_ring="Cornelia's Ring",
- back={ name="Segomo's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
- })
- sets.precast.WS['Asuran Fists'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Victory Smite'] = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body="Bhikku Cyclas +3",
- hands={ name="Ryuo Tekko +1", augments={'DEX+12','Accuracy+25','"Dbl.Atk."+4',}},
- legs={ name="Mpaca's Hose", augments={'Path: A',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Fotia Gorget",
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear={ name="Schere Earring", augments={'Path: A',}},
- left_ring="Gere Ring",
- right_ring="Cornelia's Ring",
- back={ name="Segomo's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Crit.hit rate+10',}}
- }
- sets.precast.WS['Shijin Spiral'] = set_combine(sets.precast.WS, {
- ammo="Knobkierrie",
- head={ name="Hes. Crown +3", augments={'Enhances "Penance" effect',}},
- body="Malignance Tabard",
- hands={ name="Adhemar Wristbands", augments={'STR+10','DEX+10','Attack+15',}},
- legs={ name="Tatena. Haidate +1", augments={'Path: A',}},
- feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
- neck="Fotia Gorget",
- waist="Moonbow Belt +1",
- left_ear="Odr Earring",
- right_ear="Mache Earring +1",
- left_ring="Regal Ring",
- right_ring="Cornelia's Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- })
- sets.precast.WS["Ascetic's Fury"] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Dragon Kick'] = set_combine(sets.precast.WS, {feet="Daihanshi Habaki"})
- sets.precast.WS['Tornado Kick'] = {ammo="Knobkierrie",
- head={ name="Hes. Crown +3", augments={'Enhances "Penance" effect',}},
- body={ name="Tatena. Harama. +1", augments={'Path: A',}},
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Tatena. Haidate +1", augments={'Path: A',}},
- feet="Anch. Gaiters +3",
- neck={ name="Mnk. Nodowa +2", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- left_ring="Gere Ring",
- right_ring="Cornelia's Ring",
- back={ name="Segomo's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}}}
- sets.precast.WS['Spinning Attack'] = set_combine({})
- sets.precast.WS['Raging Fists'].Acc = set_combine(sets.precast.WS['Raging Fists'], sets.precast.WSAcc, {})
- sets.precast.WS['Howling Fist'].Acc = set_combine(sets.precast.WS['Howling Fist'], sets.precast.WSAcc, {})
- sets.precast.WS['Asuran Fists'].Acc = set_combine(sets.precast.WS['Asuran Fists'], sets.precast.WSAcc, {})
- sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS["Ascetic's Fury"], sets.precast.WSAcc, {})
- sets.precast.WS['Victory Smite'].Acc = set_combine(sets.precast.WS['Victory Smite'], sets.precast.WSAcc, {})
- sets.precast.WS['Shijin Spiral'].Acc = set_combine(sets.precast.WS['Shijin Spiral'], sets.precast.WSAcc, {})
- sets.precast.WS['Dragon Kick'].Acc = set_combine(sets.precast.WS['Dragon Kick'], sets.precast.WSAcc, {})
- sets.precast.WS['Tornado Kick'].Acc = set_combine(sets.precast.WS['Tornado Kick'], sets.precast.WSAcc, {})
- sets.precast.WS['Raging Fists'].Mod = set_combine(sets.precast.WS['Raging Fists'], sets.precast.WSMod, {
- })
- sets.precast.WS['Howling Fist'].Mod = set_combine(sets.precast.WS['Howling Fist'], sets.precast.WSMod, {
- })
- sets.precast.WS['Asuran Fists'].Mod = set_combine(sets.precast.WS['Asuran Fists'], sets.precast.WSMod, {
- })
- sets.precast.WS["Ascetic's Fury"].Mod = set_combine(sets.precast.WS["Ascetic's Fury"], sets.precast.WSMod)
- sets.precast.WS['Victory Smite'].Mod = set_combine(sets.precast.WS['Victory Smite'], sets.precast.WSMod, {
- })
- sets.precast.WS['Shijin Spiral'].Mod = set_combine(sets.precast.WS['Shijin Spiral'], sets.precast.WSMod, {
- })
- sets.precast.WS['Dragon Kick'].Mod = set_combine(sets.precast.WS['Dragon Kick'], sets.precast.WSMod, {})
- sets.precast.WS['Tornado Kick'].Mod = set_combine(sets.precast.WS['Tornado Kick'], sets.precast.WSMod, {})
- sets.precast.WS['Cataclysm'] = {ammo="Pemphredo Tathlum",
- head="Pixie Hairpin +1",
- body={ name="Nyame Mail", augments={'Path: A',}},
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs={ name="Nyame Flanchard", augments={'Path: B',}},
- feet={ name="Nyame Sollerets", augments={'Path: B',}},
- neck="Sanctity Necklace",
- waist="Skrymir Cord +1",
- left_ear="Friomisi Earring",
- right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
- left_ring="Archon Ring",
- right_ring="Cornelia's Ring",
- back={ name="Segomo's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%'}}}
- sets.precast.WS['Earth Crusher'] = set_combine(sets.precast.WS['Cataclysm'], {head="Nyame Helm",
- left_ring="Shiva Ring +1"})
- -- Midcast Sets
- sets.midcast.FastRecast = {}
- -- Specific spells
- sets.midcast.Utsusemi = {}
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {}
- -- Idle sets
- sets.idle = {
- ammo="Staunch Tathlum +1",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Malignance Tabard",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Malignance Tights",
- feet="Herald's Gaiters",
- neck="Bathy Choker +1",
- waist="Moonbow Belt +1",
- left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- right_ear="Eabani Earring",
- left_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- right_ring="Paguroidea Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- }
- sets.idle.Town = {
- ammo="Staunch Tathlum +1",
- head="Volte Cap",
- body="Malignance Tabard",
- hands="Volte Mittens",
- legs="Malignance Tights",
- feet="Herald's Gaiters",
- neck={ name="Mnk. Nodowa +2", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Telos Earring",
- right_ear={ name="Schere Earring", augments={'Path: A',}},
- left_ring="Gere Ring",
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- }
- sets.idle.Weak = {
- ammo="Staunch Tathlum +1",
- head={ name="Nyame Helm", augments={'Path: B',}},
- body="Malignance Tabard",
- hands={ name="Nyame Gauntlets", augments={'Path: B',}},
- legs="Malignance Tights",
- feet="Herald's Gaiters",
- neck="Bathy Choker +1",
- waist="Moonbow Belt +1",
- left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
- right_ear="Eabani Earring",
- left_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
- right_ring="Paguroidea Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- }
- -- Defense sets
- sets.defense.PDT = {}
- sets.defense.Counter = {
- }
- sets.defense.MDT = {
- }
- sets.Kiting = {feet="Hermes' Sandals"}
- sets.ExtraRegen = {}
- -- Engaged sets
- -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
- -- sets if more refined versions aren't defined.
- -- If you create a set with both offense and defense modes, the offense mode should be first.
- -- EG: sets.engaged.Dagger.Accuracy.Evasion
- -- Normal melee sets
- sets.engaged = { ammo="Coiste Bodhar",
- head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- body={ name="Mpaca's Doublet", augments={'Path: A',}},
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- legs="Bhikku Hose +3",
- feet="Anch. Gaiters +3",
- neck="Mnk. Nodowa +2",
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear="Schere Earring",
- left_ring="Gere Ring",
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- }
- sets.engaged.SomeAcc = set_combine(sets.engaged, {
- left_ring="Chirich Ring +1",
- left_ear="Telos Earring"})
- sets.engaged.Acc = set_combine(sets.engaged.SomeAcc, {})
- sets.engaged.Mod = { ammo="Aurgelmir Orb +1",
- head="Ken. Jinpachi +1",
- body="Ken. Samue +1",
- hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
- legs={ name="Hes. Hose +3", augments={'Enhances "Hundred Fists" effect',}},
- feet="Volte Spats",
- neck={ name="Mnk. Nodowa +2", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear="Schere Earring",
- left_ring="Chirich Ring +1",
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- }
- sets.engaged.Crit = {ammo="Aurgelmir Orb +1",
- head="Mummu Bonnet +2",
- body={ name="Tatena. Harama. +1", augments={'Path: A',}},
- hands="Mummu Wrists +2",
- legs={ name="Hes. Hose +3", augments={'Enhances "Hundred Fists" effect',}},
- feet="Mummu Gamash. +2",
- neck={ name="Mnk. Nodowa +2", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Odr Earring",
- right_ear="Mache Earring +1",
- left_ring="Gere Ring",
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Crit.hit rate+10',}}}
- -- Defensive melee hybrid sets
- sets.engaged.PDT = {ammo="Staunch Tathlum +1",
- head="Bhikku Crown +3",
- body="Nyame Mail",
- hands="Malignance Gloves",
- legs="Bhikku Hose +3",
- feet="Bhikku Gaiters +3",
- neck={ name="Mnk. Nodowa +2", augments={'Path: A',}},
- waist="Moonbow Belt +1",
- left_ear="Sherida Earring",
- right_ear="Schere Earring",
- left_ring="Gere Ring",
- right_ring="Niqmaddu Ring",
- back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Mag. Evasion+10','"Dbl.Atk."+10','Mag. Evasion+15',}},
- }
- sets.engaged.Proc = {ammo="Staunch Tathlum +1",
- head="Volte Cap",
- body="Malignance Tabard",
- hands="Volte Mittens",
- legs="Malignance Tights",
- feet="Volte Boots",
- neck={ name="Loricate Torque +1", augments={'Path: A',}},
- waist="Windbuffet Belt +1",
- left_ear="Dedition Earring",
- right_ear="Bhikku Earring +1",
- left_ring="Chirich Ring +1",
- right_ring="Chirich Ring +1",
- back="Moonlight Cape",}
- sets.engaged.SomeAcc.PDT = {}
- sets.engaged.Acc.PDT = {}
- sets.engaged.Counter = {}
- sets.engaged.Acc.Counter = {}
- -- Hundred Fists/Impetus melee set mods
- sets.engaged.HF = set_combine(sets.engaged)
- sets.engaged.HF.Impetus = set_combine(sets.engaged, {body="Bhikku Cyclas +3"})
- sets.engaged.Acc.HF = set_combine(sets.engaged.Acc)
- sets.engaged.Acc.HF.Impetus = set_combine(sets.engaged.Acc, {body="Bhikku Cyclas +3"})
- sets.engaged.Counter.HF = set_combine(sets.engaged.Counter)
- sets.engaged.Counter.HF.Impetus = set_combine(sets.engaged.Counter, {body="Bhikku Cyclas +3"})
- sets.engaged.Acc.Counter.HF = set_combine(sets.engaged.Acc.Counter)
- sets.engaged.Acc.Counter.HF.Impetus = set_combine(sets.engaged.Acc.Counter, {body="Bhikku Cyclas +3"})
- -- Footwork combat form
- sets.engaged.Footwork = {
- }
- sets.engaged.Footwork.Acc = {
- }
- -- Quick sets for post-precast adjustments, listed here so that the gear can be Validated.
- sets.impetus_body = {body="Bhikku Cyclas +3"}
- sets.footwork_kick_feet = {}
- sets.Boost = {hands="Anchor. Gloves +3",waist="Ask Sash"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
- function job_precast(spell, action, spellMap, eventArgs)
- -- Don't gearswap for weaponskills when Defense is on.
- if spell.type == 'WeaponSkill' and state.DefenseMode.current ~= 'None' then
- eventArgs.handled = true
- end
- end
- --modify your melee set based on logic
- function customize_melee_set(meleeSet)
- if info.impetus_hit_count > 6 and buffactive.impetus then
- meleeSet = set_combine(meleeSet,sets.impetus_body)
- end
- return meleeSet
- end
- -- Run after the general precast() is done.
- function job_post_precast(spell, action, spellMap, eventArgs)
- -- add_to_chat(122,'spell type '..spell.type)
- -- add_to_chat(122,'impetus on '..tostring(state.Buff.Impetus))
- -- add_to_chat(122,'spell english '..spell.english)
- if spell.type == 'WeaponSkill' then
- if state.Buff.Impetus and (spell.english == "Ascetic's Fury" or spell.english == "Victory Smite") then
- -- Need 6 hits at capped dDex, or 9 hits if dDex is uncapped, for Tantra to tie or win.
- --if (state.OffenseMode.current == 'Fodder' and info.impetus_hit_count > 5) or (info.impetus_hit_count > 8) then
- if info.impetus_hit_count > 6 then
- equip(sets.impetus_body)
- add_to_chat(122,'Impetus Body Equipped, Hits: '..tostring(info.impetus_hit_counter))
- else
- add_to_chat(122,'Impetus Body Not Equipped, Hits: '..tostring(info.impetus_hit_counter))
- end
- elseif state.Buff.Footwork and (spell.english == "Dragon's Kick" or spell.english == "Tornado Kick") then
- equip(sets.footwork_kick_feet)
- end
- -- Replace Moonshade Earring if we're at cap TP
- if player.tp == 3000 then
- equip(sets.precast.MaxTP)
- end
- end
- end
- function job_aftercast(spell, action, spellMap, eventArgs)
- if spell.type == 'WeaponSkill' and not spell.interrupted and state.FootworkWS and state.Buff.Footwork then
- end
- end
- function job_aftercast(spell, action, spellMap, eventArgs)
- if not spell.interrupted then
- if spell.english == 'Boost' then
- enable('waist')
- equip(sets.Boost)
- disable('waist')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when a player gains or loses a buff.
- -- buff == buff gained or lost
- -- gain == true if the buff was gained, false if it was lost.
- function job_buff_change(buff, gain)
- -- Set Footwork as combat form any time it's active and Hundred Fists is not.
- if buff == 'Footwork' and gain and not buffactive['hundred fists'] then
- state.CombatForm:set('Footwork')
- elseif buff == "Hundred Fists" and not gain and buffactive.footwork then
- state.CombatForm:set('Footwork')
- else
- state.CombatForm:reset()
- end
- -- Hundred Fists and Impetus modify the custom melee groups
- if buff == "Hundred Fists" or buff == "Impetus" then
- classes.CustomMeleeGroups:clear()
- if (buff == "Hundred Fists" and gain) or buffactive['hundred fists'] then
- classes.CustomMeleeGroups:append('HF')
- end
- if (buff == "Impetus" and gain) or buffactive.impetus then
- classes.CustomMeleeGroups:append('Impetus')
- end
- end
- if buff == "Boost" and not gain then
- enable('waist')
- handle_equipping_gear(player.status)
- end
- -- Update gear if any of the above changed
- if buff == "Hundred Fists" or buff == "Impetus" or buff == "Footwork" then
- handle_equipping_gear(player.status)
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- function customize_idle_set(idleSet)
- if player.hpp < 75 then
- idleSet = set_combine(idleSet, sets.ExtraRegen)
- end
- return idleSet
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- update_combat_form()
- update_melee_groups()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function update_combat_form()
- if buffactive.footwork and not buffactive['hundred fists'] then
- state.CombatForm:set('Footwork')
- else
- state.CombatForm:reset()
- end
- end
- function update_melee_groups()
- classes.CustomMeleeGroups:clear()
- if buffactive['hundred fists'] then
- classes.CustomMeleeGroups:append('HF')
- end
- if buffactive.impetus then
- classes.CustomMeleeGroups:append('Impetus')
- 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, 16)
- elseif player.sub_job == 'NIN' then
- set_macro_page(1, 16)
- elseif player.sub_job == 'THF' then
- set_macro_page(1, 16)
- elseif player.sub_job == 'RUN' then
- set_macro_page(1, 16)
- else
- set_macro_page(1, 16)
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Custom event hooks.
- -------------------------------------------------------------------------------------------------------------------
- switched_impetus = 0
- unswitched_impetus = 1
- -- Keep track of the current hit count while Impetus is up.
- function on_action_for_impetus(action)
- if state.Buff.Impetus then
- -- count melee hits by player
- if action.actor_id == player.id then
- if action.category == 1 then
- for _,target in pairs(action.targets) do
- for _,action in pairs(target.actions) do
- -- Reactions (bitset):
- -- 1 = evade
- -- 2 = parry
- -- 4 = block/guard
- -- 8 = hit
- -- 16 = JA/weaponskill?
- -- If action.reaction has bits 1 or 2 set, it missed or was parried. Reset count.
- if (action.reaction % 4) > 0 then
- info.impetus_hit_count = 0
- switched_impetus = 0
- else
- info.impetus_hit_count = info.impetus_hit_count + 1
- end
- end
- end
- elseif action.category == 3 then
- -- Missed weaponskill hits will reset the counter. Can we tell?
- -- Reaction always seems to be 24 (what does this value mean? 8=hit, 16=?)
- -- Can't tell if any hits were missed, so have to assume all hit.
- -- Increment by the minimum number of weaponskill hits: 2.
- for _,target in pairs(action.targets) do
- for _,action in pairs(target.actions) do
- -- This will only be if the entire weaponskill missed or was parried.
- if (action.reaction % 4) > 0 then
- info.impetus_hit_count = 0
- switched_impetus = 0
- else
- info.impetus_hit_count = info.impetus_hit_count + 2
- end
- end
- end
- end
- elseif action.actor_id ~= player.id and action.category == 1 then
- -- If mob hits the player, check for counters.
- for _,target in pairs(action.targets) do
- if target.id == player.id then
- for _,action in pairs(target.actions) do
- -- Spike effect animation:
- -- 63 = counter
- -- ?? = missed counter
- if action.has_spike_effect then
- -- spike_effect_message of 592 == missed counter
- if action.spike_effect_message == 592 then
- info.impetus_hit_count = 0
- switched_impetus = 0
- elseif action.spike_effect_animation == 63 then
- info.impetus_hit_count = info.impetus_hit_count + 1
- end
- end
- end
- end
- end
- end
- --add_to_chat(123,'Current Impetus hit count = ' .. tostring(info.impetus_hit_count))
- if info.impetus_hit_count > 6 and switched_impetus == 0 then
- --switched_impetus = 1
- --add_to_chat(225,"Chugging Impetus Koolaid")
- --handle_equipping_gear(player.status)
- --switched_impetus = 1
- send_command('gs c equip_impetus_body')
- elseif info.impetus_hit_count < 7 then
- send_command('gs c unequip_impetus_body')
- end
- else
- info.impetus_hit_count = 0
- switched_impetus = 0
- end
- end
- function job_self_command(cmdParams, eventArgs)
- command = cmdParams[1]:lower()
- if command =='equip_impetus_body' then
- add_to_chat(225,"Equipping Impetus Body")
- switched_impetus = 1
- unswitched_impetus = 0
- equip(sets.impetus_body)
- elseif command =='unequip_impetus_body' then
- if unswitched_impetus == 0 then
- add_to_chat(225,"Removing Impetus Body")
- handle_equipping_gear(player.status)
- unswitched_impetus = 1
- end
- switched_impetus = 0
- end
- end
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book
- if player.sub_job == 'WAR' then
- set_macro_page(1, 16)
- else
- set_macro_page(1, 16)
- end
- 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("left_ring")
- else
- enable("left_ring")
- end
- if no_swap_gear:contains(player.equipment.right_ring) then
- disable("right_ring")
- else
- enable("right_ring")
- end
- end
- windower.register_event('zone change',
- function()
- if no_swap_gear:contains(player.equipment.left_ring) then
- enable("left_ring")
- equip(sets.idle)
- end
- if no_swap_gear:contains(player.equipment.right_ring) then
- enable("right_ring")
- equip(sets.idle)
- end
- end
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement