Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Dagger Light:
- Rudra's Storm > Mandalic Stab > Exenterator > Exenterator = Radiance
- Dagger Darkness:
- Exenterator > Rudra's Storm > Evisceration > Rudra's Storm = Umbra
- --]]
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function that defines sets and variables to be used.
- -------------------------------------------------------------------------------------------------------------------
- -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
- -- Initialization function for this job file.
- function get_sets()
- -- Load and initialize the include file.
- mote_include_version = 2
- include('Mote-Include.lua')
- 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
- state.HasteMode = M{['description']='Haste Mode', 'Normal', 'Hi'}
- 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}
- lockstyleset = 10
- end
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- -- Options: Override default values
- state.OffenseMode:options('Normal', 'Mid')
- state.HybridMode:options('Normal', 'PDT')
- state.WeaponskillMode:options('Normal')
- state.IdleMode:options('Normal', 'Regen')
- state.PhysicalDefenseMode:options('PDT')
- state.MagicalDefenseMode:options('MDT')
- -- Additional local binds
- send_command('bind Delete input /ws "Rudra\s Storm" <t>')
- send_command('bind End input /ws "Evisceration" <t>')
- send_command('bind Home input /ws "Exenterator" <t>')
- send_command('bind ^= gs c cycle treasuremode')
- send_command('bind @h gs c cycle HasteMode')
- send_command('bind @home gs c warpring')
- select_default_macro_book()
- set_lockstyle()
- end
- -- Called when this job file is unloaded (eg: job change)
- function file_unload()
- send_command('unbind Delete')
- send_command('unbind End')
- send_command('unbind Home')
- send_command('unbind ^=')
- send_command('unbind @h')
- send_command('unbind @home')
- end
- function init_gear_sets()
- include('augmented-items.lua')
- sets.buff['Sneak Attack'] = {
- ammo="Yetshila",
- head="Adhemar Bonnet +1",
- neck="Caro Necklace",
- ear1="Mache Earring +1",
- ear2="Dawn Earring",
- body="Meg. Cuirie +2",
- hands="Plun. Armlets +1",
- ring1="Regal Ring",
- ring2="Ilabrat Ring",
- back=ToutatisSTP,
- waist="Artful Belt +1",
- legs="Lustr. Subligar +1",
- feet="Skulk. Poulaines +1"}
- sets.buff['Trick Attack'] = set_combine(sets.buff['Sneak Attack'],{
- neck="Anu Torque",
- ear1="Infused Earring",
- waist="Svelt. Gouriz +1",
- legs="Meg. Chausses +2"})
- -- Precast sets to enhance JAs
- sets.precast.JA['Collaborator'] = {head="Skulker's Bonnet +1"}
- sets.precast.JA['Accomplice'] = {head="Skulker's Bonnet +1"}
- sets.precast.JA['Flee'] = {feet="Pill. Poulaines +1"}
- sets.precast.JA['Hide'] = {body="Pillager's Vest +1"}
- sets.precast.JA['Conspirator'] = {body="Skulker's Vest +1"}
- sets.precast.JA['Steal'] = {hands="Pill. Armlets +1",legs="Pill. Culottes +1",feet="Pill. Poulaines +1",}
- sets.precast.JA['Despoil'] = {legs="Skulk. Culottes +1",feet="Skulk. Poulaines +1"}
- sets.precast.JA['Perfect Dodge'] = {hands="Plun. Armlets +1"}
- sets.precast.JA['Feint'] = {legs="Plun. Culottes +1"}
- sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
- sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
- -- TH actions
- sets.precast.Step = sets.TreasureHunter
- sets.precast.Flourish1 = sets.TreasureHunter
- sets.precast.JA.Provoke = sets.TreasureHunter
- -- Fast cast sets for spells
- sets.precast.FC = {
- ammo="Sapience Orb",
- head="Herculean Helm",
- neck="Orunmila's Torque",
- ear1="Loquac. Earring",
- ear2="Enchntr. Earring +1",
- body=TaeonTabardFC,
- hands="Leyline Gloves",
- ring1="Lebeche Ring",
- ring2="Prolix Ring",
- back="Moonlight Cape",
- waist="Flume Belt +1",
- feet="Meg. Jam. +2"}
- sets.precast.FC.Utsusemi = sets.precast.FC
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- ammo="Falcon Eye",
- head="Adhemar Bonnet +1",
- neck="Fotia Gorget",
- ear1="Moonshade Earring",
- ear2="Sherida Earring",
- body="Adhemar Jacket +1",
- hands="Meg. Gloves +2",
- ring1="Regal Ring",
- ring2="Ilabrat Ring",
- back=ToutatisWSD,
- waist="Fotia Belt",
- legs="Lustr. Subligar +1",
- feet="Lustra. Leggings +1"}
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMid version isn't found.
- sets.precast.WS['Exenterator'] = {
- ammo="Seeth. Bomblet +1",
- head="Adhemar Bonnet +1",
- neck="Fotia Gorget",
- ear1="Moonshade Earring",
- ear2="Sherida Earring",
- body="Meg. Cuirie +2",
- hands="Meg. Gloves +2",
- ring1="Regal Ring",
- ring2="Ilabrat Ring",
- back=ToutatisSTP,
- waist="Fotia Belt",
- legs="Meg. Chausses +2",
- feet="Meg. Jam. +2"}
- sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'], {})
- sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'], {})
- sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].SA, {})
- sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {
- ammo="Yetshila",
- head="Adhemar Bonnet +1",
- neck="Fotia Gorget",
- ear1="Moonshade Earring",
- ear2="Sherida Earring",
- body="Abnoba Kaftan",
- hands=AdhemarWristbandsB,
- ring1="Begrudging Ring",
- ring2="Regal Ring",
- back=ToutatisCrit,
- waist="Fotia Belt",
- legs="Lustr. Subligar +1",
- feet="Lustra. Leggings +1"})
- sets.precast.WS['Evisceration'].SA = set_combine(sets.precast.WS['Evisceration'], {})
- sets.precast.WS['Evisceration'].TA = set_combine(sets.precast.WS['Evisceration'], {})
- sets.precast.WS['Evisceration'].SATA = set_combine(sets.precast.WS['Evisceration'].SA, {})
- sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {
- ammo="Falcon Eye",
- head="Adhemar Bonnet +1",
- neck="Caro Necklace",
- ear1="Moonshade Earring",
- ear2="Sherida Earring",
- body="Adhemar Jacket +1",
- hands="Meg. Gloves +2",
- ring1="Regal Ring",
- ring2="Ilabrat Ring",
- back=ToutatisWSD,
- waist="Grunfeld Rope",
- legs="Lustr. Subligar +1",
- feet="Lustra. Leggings +1"})
- sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"], {
- ammo="Yetshila",
- body="Meg. Cuirie +2",
- waist="Artful Belt +1"})
- sets.precast.WS["Rudra's Storm"].TA = sets.precast.WS["Rudra's Storm"].SA
- sets.precast.WS["Rudra's Storm"].SATA = sets.precast.WS["Rudra's Storm"].SA
- sets.precast.WS['Mandalic Stab'] = {
- ammo="Falcon Eye",
- head="Adhemar Bonnet +1",
- neck="Caro Necklace",
- ear1="Moonshade Earring",
- ear2="Sherida Earring",
- body="Adhemar Jacket +1",
- hands="Meg. Gloves +2",
- ring1="Regal Ring",
- ring2="Ilabrat Ring",
- back=ToutatisWSD,
- waist="Grunfeld Rope",
- legs="Lustr. Subligar +1",
- feet="Lustra. Leggings +1"}
- sets.precast.WS["Mandalic Stab"].SA = set_combine(sets.precast.WS["Mandalic Stab"], {})
- sets.precast.WS["Mandalic Stab"].TA = set_combine(sets.precast.WS["Mandalic Stab"], {})
- sets.precast.WS["Mandalic Stab"].SATA = set_combine(sets.precast.WS["Mandalic Stab"].SA, {})
- sets.precast.WS['Aeolian Edge'] = {
- ammo="Pemphredo Tathlum",
- head=HerculeanHelmMAB,
- neck="Sanctity Necklace",
- ear1="Moonshade Earring",
- ear2="Friomisi Earring",
- body=HerculeanVestMAB,
- hands="Leyline Gloves",
- ring1="Shiva Ring +1",
- ring2="Shiva Ring +1",
- back="Izdubar Mantle",
- waist="Eschan Stone",
- legs=HerculeanTrousersMAB,
- feet=HerculeanBootsMAB}
- -- Midcast Sets
- sets.midcast.FastRecast = sets.precast.FC
- -- Specific spells
- sets.midcast.Utsusemi = sets.midcast.FastRecast
- -- Ranged gear -- acc + TH
- sets.midcast.RA.TH = set_combine(sets.midcast.RA, set.TreasureHunter)
- sets.midcast.RA.Acc = sets.midcast.RA
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle = {
- ammo="Staunch Tathlum",
- head="Meghanada Visor +2",
- neck="Loricate Torque +1",
- ear1="Sanare Earring",
- ear2="Hearty Earring",
- body=HerculeanVestDT,
- hands=HerculeanGlovesPDT,
- ring1="Moonbeam Ring",
- ring2="Defending Ring",
- back="Moonlight Cape",
- waist="Flume Belt +1",
- legs=HerculeanTrousersDT,
- feet="Jute Boots +1"}
- sets.idle.Regen = set_combine(sets.idle, {
- head="Meghanada Visor +2",
- neck="Sanctity Necklace",
- ear1="Infused Earring",
- ear2="Dawn Earring",
- body="Meg. Cuirie +2",
- hands="Meg. Gloves +2",
- ring1="Sheltered Ring",
- ring2="Paguroidea Ring",
- legs="Meg. Chausses +2"})
- -- Defense sets
- sets.defense.PDT = {
- ammo="Staunch Tathlum",
- head="Skulker's Bonnet +1",
- neck="Loricate Torque +1",
- ear1="Telos Earring",
- ear2="Sherida Earring",
- body=HerculeanVestDT,
- hands=HerculeanGlovesPDT,
- ring1="Moonbeam Ring",
- ring2="Defending Ring",
- back="Moonlight Cape",
- waist="Flume belt +1",
- legs="Mummu Kecks +2",
- feet=HerculeanBootsDT}
- sets.defense.MDT = set_combine(sets.PDT,{
- ammo="Vanir Battery",
- ear1="Sanare Earring",
- ear2="Hearty Earring",
- body="Adhemar Jacket +1",
- hands="Leyline Gloves",
- ring1="Shadow Ring",
- back="Engulfer Cape +1",
- waist="Resolute Belt",
- feet="Jute Boots +1"})
- -- 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 Group --
- -- 0% Haste --
- sets.engaged = {
- ammo="Yamarang",
- head=HerculeanHelmDW,
- neck="Anu Torque",
- ear1="Eabani Earring",
- ear2="Suppanomimi",
- body="Adhemar Jacket +1",
- hands="Floral Gauntlets",
- ring1="Petrov Ring",
- ring2="Epona's Ring",
- back=ToutatisSTP,
- waist="Reiki Yotai",
- legs=HerculeanTrousersDW,
- feet=HerculeanBootsDW}
- sets.engaged.Mid = set_combine(sets.engaged, {
- neck="Erudit. Necklace",
- ring1="Ilabrat Ring"})
- -- Defensive Sets --
- sets.engaged.PDT = set_combine(sets.engaged, {
- neck="Loricate Torque +1",
- ring1="Moonbeam Ring",
- ring2="Defending Ring",
- back="Moonlight Cape"})
- sets.engaged.Mid.PDT = sets.engaged.PDT
- -- 43% Haste --
- sets.engaged.MaxHaste = set_combine(sets.engaged, {
- ammo="Yamarang",
- head="Adhemar Bonnet +1",
- neck="Anu Torque",
- ear1="Telos Earring",
- ear2="Sherida Earring",
- body="Adhemar Jacket +1",
- hands=AdhemarWristbandsB,
- ring1="Petrov Ring",
- ring2="Epona's Ring",
- back=ToutatisSTP,
- waist="Windbuffet Belt +1",
- legs="Samnuha Tights",
- feet=HerculeanBootsTA})
- sets.engaged.Mid.MaxHaste = set_combine(sets.engaged.MaxHaste, {
- head="Skulker's Bonnet +1",
- neck="Erudit. Necklace",
- ring1="Ilabrat Ring"})
- sets.engaged.PDT.MaxHaste = set_combine(sets.engaged.MaxHaste, {
- head="Meghanada Visor +2",
- neck="Loricate Torque +1",
- hands="Meg. Gloves +2",
- ring1="Moonbeam Ring",
- ring2="Defending Ring",
- legs="Meg. Chausses +2",
- feet="Meg. Jam. +2"})
- sets.engaged.Mid.PDT.MaxHaste = sets.engaged.PDT.MaxHaste
- -- 30% Haste --
- sets.engaged.Haste_30 = set_combine(sets.engaged.MaxHaste, {
- ear1="Eabani Earring",
- ear2="Suppanomimi",
- hands="Floral Gauntlets",
- waist="Reiki Yotai"})
- sets.engaged.Mid.Haste_30 = set_combine(sets.engaged.Haste_30, {
- head="Skulker's Bonnet +1",
- neck="Erudit. Necklace",
- ring1="Ilabrat Ring"})
- sets.engaged.PDT.Haste_30 = set_combine(sets.engaged.Haste_30, {
- head="Meghanada Visor +2",
- neck="Loricate Torque +1",
- ring1="Moonbeam Ring",
- ring2="Defending Ring",
- legs="Meg. Chausses +2",
- feet="Meg. Jam. +2"})
- sets.engaged.Mid.PDT.Haste_30 = sets.engaged.PDT.Haste_30
- -- 15% Haste --
- sets.engaged.Haste_15 = set_combine(sets.engaged.Haste_30, {
- head=HerculeanHelmDW,
- legs=HerculeanTrousersDW})
- sets.engaged.Mid.Haste_15 = set_combine(sets.engaged.Haste_15, {
- neck="Erudit. Necklace",
- ring1="Ilabrat Ring"})
- sets.engaged.PDT.Haste_15 = set_combine(sets.engaged.Haste_15, {
- neck="Loricate Torque +1",
- ring1="Moonbeam Ring",
- ring2="Defending Ring",
- back="Moonlight Cape"})
- sets.engaged.Mid.PDT.Haste_15 = sets.engaged.PDT.Haste_15
- sets.TreasureHunter = {hands="Plun. Armlets +1",feet="Skulk. Poulaines +1"}
- sets.buff.Doom = {ring1="Eshmun's Ring", ring2="Eshmun's Ring", waist="Gishdubar Sash"}
- sets.Reive = {neck="Ygnas's Resolve +1"}
- end
- function job_pretarget(spell, action, spellMap, eventArgs)
- if spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
- cancel_spell()
- send_command('Aggressor')
- end
- end
- function job_precast(spell, action, spellMap, eventArgs)
- if state.Buff[spell.english] ~= nil then
- state.Buff[spell.english] = true
- end
- end
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
- equip(sets.TreasureHunter)
- elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
- if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- end
- if spell.action_type=="Magic" and buffactive.Silence then
- eventArgs.cancel = true
- send_command('input /item "Echo Drops" <me>')
- end
- if spell.type == "WeaponSkill" and player.tp > 2500 then
- equip({ear1="Brutal Earring"})
- end
- if spell.english == 'Evisceration' and player.tp > 2500 then
- equip({ear1="Mache Earring +1"})
- end
- --[[ Lock weaponskill if you are to far from the mob as to not lose TP ]]
- if spell.type == 'WeaponSkill' then
- if spell.target.distance > 6 then
- cancel_spell()
- add_to_chat(123, 'Target to far away. Move closer nub')
- return
- end
- end
- end
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
- equip(sets.TreasureHunter)
- end
- end
- 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
- 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
- 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
- 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 state.Buff.Doom then
- idleSet = set_combine(idleSet, sets.buff.Doom)
- end
- return idleSet
- end
- function customize_melee_set(meleeSet)
- if state.TreasureMode.value == 'Fulltime' then
- meleeSet = set_combine(meleeSet, sets.TreasureHunter)
- end
- if state.Buff.Doom then
- meleeSet = set_combine(meleeSet, sets.buff.Doom)
- end
- return meleeSet
- end
- function job_buff_change(buff, gain)
- if buff:lower()=='terror' or buff:lower()=='petrification' or buff:lower()=='sleep' or buff:lower()=='stun' then
- if gain then
- equip(sets.defense.PDT)
- elseif not gain then
- handle_equipping_gear(player.status)
- end
- end
- -- If we gain or lose any haste buffs, adjust which gear set we target.
- if S{'haste', 'march', 'mighty guard', 'embrava', 'haste samba', 'geo-haste', 'indi-haste'}:contains(buff:lower()) then
- determine_haste_group()
- handle_equipping_gear(player.status)
- end
- if state.Buff[buff] ~= nil then
- state.Buff[buff] = gain
- if not midaction() then
- handle_equipping_gear(player.status)
- end
- end
- if buff == "doom" then
- if gain then
- equip(sets.buff.Doom)
- send_command('@input /item "Holy Water" <me>')
- disable('ring1','ring2','waist')
- else
- enable('ring1','ring2','waist')
- handle_equipping_gear(player.status)
- end
- end
- if buffactive['Reive Mark'] then
- equip(sets.Reive)
- disable('neck')
- else
- enable('neck')
- end
- end
- function job_update(cmdParams, eventArgs)
- th_update(cmdParams, eventArgs)
- determine_haste_group()
- end
- function display_current_job_state(eventArgs)
- local msg = ''
- if state.OffenseMode.value ~= 'None' then
- msg = msg .. 'Melee: ['..state.OffenseMode.value..']'
- msg = msg .. ', '
- end
- if state.DefenseMode.value ~= 'None' then
- local defMode = state[state.DefenseMode.value ..'DefenseMode'].current
- msg = msg .. 'Defense: ['..state.DefenseMode.value..']'
- msg = msg .. ', '
- end
- msg = msg .. 'Idle: ['..state.IdleMode.value..']'
- msg = msg .. ', TH: ' .. state.TreasureMode.value
- add_to_chat(122, msg)
- eventArgs.handled = true
- end
- function job_self_command(cmdParams, eventArgs)
- command = cmdParams[1]:lower()
- if command == 'warpring' then
- equip({left_ring="Warp Ring"})
- send_command('gs disable left_ring;wait 10;input /item "Warp Ring" <me>;wait 1;input /item "Warp Ring" <me>;wait 1;input /item "Warp Ring" <me>;wait 10;gs enable left_ring')
- end
- end
- function check_buff(buff_name, eventArgs)
- if state.Buff[buff_name] then
- equip(sets.buff[buff_name] or {})
- if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- eventArgs.handled = true
- end
- end
- function determine_haste_group()
- classes.CustomMeleeGroups:clear()
- -- assuming +4 for marches (ghorn has +5)
- -- Haste (white magic) 15%
- -- Haste Samba (Sub) 5%
- -- Haste (Merited DNC) 10% (never account for this)
- -- Victory March +0/+3/+4/+5 9.4/14%/15.6%/17.1% +0
- -- Advancing March +0/+3/+4/+5 6.3/10.9%/12.5%/14% +0
- -- Embrava 30% with 500 enhancing skill
- -- Mighty Guard - 15%
- -- buffactive[580] = geo haste
- -- buffactive[33] = regular haste
- -- buffactive[604] = mighty guard
- -- state.HasteMode = toggle for when you know Haste II is being cast on you
- -- Hi = Haste II is being cast. This is clunky to use when both haste II and haste I are being cast
- if state.HasteMode.value == 'Hi' then
- if ( ( (buffactive[33] or buffactive[580] or buffactive.embrava) and (buffactive.march or buffactive[604]) ) or
- ( buffactive[33] and (buffactive[580] or buffactive.embrava) ) or
- ( buffactive.march == 2 and buffactive[604] ) ) then
- --add_to_chat(8, '-------------Max-Haste Mode Enabled--------------')
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif ( ( buffactive[580] or buffactive[33] or buffactive.march == 2 ) or
- ( buffactive.march == 1 and buffactive[604] ) ) then
- --add_to_chat(8, '-------------Haste 30%-------------')
- classes.CustomMeleeGroups:append('Haste_30')
- elseif ( buffactive.march == 1 or buffactive[604] ) then
- --add_to_chat(8, '-------------Haste 15%-------------')
- classes.CustomMeleeGroups:append('Haste_15')
- end
- else
- if ( buffactive[580] and ( buffactive.march or buffactive[33] or buffactive.embrava or buffactive[604]) ) or -- geo haste + anything
- ( buffactive.embrava and (buffactive.march or buffactive[33] or buffactive[604]) ) or -- embrava + anything
- ( buffactive.march == 2 and (buffactive[33] or buffactive[604]) ) or -- two marches + anything
- ( buffactive[33] and buffactive[604] and buffactive.march ) then -- haste + mighty guard + any marches
- --add_to_chat(8, '-------------Max Haste Mode Enabled--------------')
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif ( buffactive.march == 2 ) or -- two marches from ghorn
- ( (buffactive[33] or buffactive[604]) and buffactive.march == 1 ) or -- MG or haste + 1 march
- ( buffactive[580] ) or -- geo haste
- ( buffactive[33] and buffactive[604] ) then -- haste with MG
- --add_to_chat(8, '-------------Haste 30%-------------')
- classes.CustomMeleeGroups:append('Haste_30')
- elseif buffactive[33] or buffactive[604] or buffactive.march == 1 then
- --add_to_chat(8, '-------------Haste 15%-------------')
- classes.CustomMeleeGroups:append('Haste_15')
- end
- end
- end
- 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 check_range_lock()
- if player.equipment.range ~= 'empty' then
- disable('range', 'ammo')
- else
- enable('range', 'ammo')
- 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, 7)
- elseif player.sub_job == 'NIN' then
- set_macro_page(2, 7)
- elseif player.sub_job == 'DNC' then
- set_macro_page(3, 7)
- else
- set_macro_page(1, 7)
- end
- end
- function set_lockstyle()
- send_command('wait 2; input /lockstyleset ' .. lockstyleset)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement