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()
- 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.Barrage = buffactive.Barrage or false
- state.Buff.Camouflage = buffactive.Camouflage or false
- state.Buff['Unlimited Shot'] = buffactive['Unlimited Shot'] or false
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- state.RangedMode:options('Normal', 'Mid', 'Acc')
- state.WeaponskillMode:options('Normal', 'Acc')
- gear.default.weaponskill_neck = "Ocachi Gorget"
- gear.default.weaponskill_waist = "Elanid Belt"
- DefaultAmmo = {['Yoichinoyumi'] = "Achiyalabopa arrow", ['Annihilator'] = "Achiyalabopa bullet"}
- U_Shot_Ammo = {['Yoichinoyumi'] = "Achiyalabopa arrow", ['Annihilator'] = "Achiyalabopa bullet"}
- select_default_macro_book()
- send_command('bind f9 gs c cycle RangedMode')
- send_command('bind ^f9 gs c cycle OffenseMode')
- send_command('bind ` input /ra <t>')
- send_command('bind delete input /ws "Coronach" <t>')
- send_command('bind end input /ws "Last Stand" <t>')
- send_command('bind home input /ws "Namas Arrow" <t>')
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind f9')
- send_command('unbind ^f9')
- send_command('unbind `')
- send_command('unbind ^-')
- send_command('unbind ^=')
- send_command('unbind delete')
- send_command('unbind end')
- send_command('unbind home')
- 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)
- if spell.action_type == 'Ranged Attack' then
- state.CombatWeapon:set(player.equipment.range)
- end
- if spell.action_type == 'Ranged Attack' or
- (spell.type == 'WeaponSkill' and (spell.skill == 'Marksmanship' or spell.skill == 'Archery')) then
- check_ammo(spell, action, spellMap, eventArgs)
- end
- if state.DefenseMode.value ~= 'None' and spell.type == 'WeaponSkill' then
- -- Don't gearswap for weaponskills when Defense is active.
- eventArgs.handled = true
- end
- end
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_midcast(spell, action, spellMap, eventArgs)
- if spell.action_type == 'Ranged Attack' and state.Buff.Barrage then
- equip(sets.buff.Barrage)
- eventArgs.handled = true
- 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)
- if buff == "Camouflage" then
- if gain then
- equip(sets.buff.Camouflage)
- disable('body')
- else
- enable('body')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- function customize_idle_set(idleSet)
- if player.hpp < 80 then
- idleSet = set_combine(idleSet, sets.ExtraRegen)
- end
- return idleSet
- end
- -- Set eventArgs.handled to true if we don't want the automatic display to be run.
- function display_current_job_state(eventArgs)
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- Check for proper ammo when shooting or weaponskilling
- function check_ammo(spell, action, spellMap, eventArgs)
- -- Filter ammo checks depending on Unlimited Shot
- if state.Buff['Unlimited Shot'] then
- if player.equipment.ammo ~= U_Shot_Ammo[player.equipment.range] then
- if player.inventory[U_Shot_Ammo[player.equipment.range]] or player.wardrobe[U_Shot_Ammo[player.equipment.range]] then
- add_to_chat(122,"Unlimited Shot active. Using custom ammo.")
- equip({ammo=U_Shot_Ammo[player.equipment.range]})
- elseif player.inventory[DefaultAmmo[player.equipment.range]] or player.wardrobe[DefaultAmmo[player.equipment.range]] then
- add_to_chat(122,"Unlimited Shot active but no custom ammo available. Using default ammo.")
- equip({ammo=DefaultAmmo[player.equipment.range]})
- else
- add_to_chat(122,"Unlimited Shot active but unable to find any custom or default ammo.")
- end
- end
- else
- if player.equipment.ammo == U_Shot_Ammo[player.equipment.range] and player.equipment.ammo ~= DefaultAmmo[player.equipment.range] then
- if DefaultAmmo[player.equipment.range] then
- if player.inventory[DefaultAmmo[player.equipment.range]] then
- add_to_chat(122,"Unlimited Shot not active. Using Default Ammo")
- equip({ammo=DefaultAmmo[player.equipment.range]})
- else
- add_to_chat(122,"Default ammo unavailable. Removing Unlimited Shot ammo.")
- equip({ammo=empty})
- end
- else
- add_to_chat(122,"Unable to determine default ammo for current weapon. Removing Unlimited Shot ammo.")
- equip({ammo=empty})
- end
- elseif player.equipment.ammo == 'empty' then
- if DefaultAmmo[player.equipment.range] then
- if player.inventory[DefaultAmmo[player.equipment.range]] then
- add_to_chat(122,"Using Default Ammo")
- equip({ammo=DefaultAmmo[player.equipment.range]})
- else
- add_to_chat(122,"Default ammo unavailable. Leaving empty.")
- end
- else
- add_to_chat(122,"Unable to determine default ammo for current weapon. Leaving empty.")
- end
- elseif player.inventory[player.equipment.ammo].count < 15 then
- add_to_chat(122,"Ammo '"..player.inventory[player.equipment.ammo].shortname.."' running low ("..player.inventory[player.equipment.ammo].count..")")
- end
- end
- end
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- set_macro_page(1, 3)
- end
- -- Set up all gear sets.
- function init_gear_sets()
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Bounty Shot'] = {hands="Sylvan Glovelettes +2"}
- sets.precast.JA['Camouflage'] = {body="Orion Jerkin +1"}
- sets.precast.JA['Scavenge'] = {feet="Orion Socks +1"}
- sets.precast.JA['Shadowbind'] = {hands="Orion Bracers +1"}
- sets.precast.JA['Sharpshot'] = {legs="Orion Braccae +1"}
- -- Fast cast sets for spells
- sets.precast.FC = {ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring"}
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
- -- Ranged sets (snapshot)
- sets.precast.RA = {
- head="Orion Beret +1",body="Sylvan Caban +2",hands="Iuitl Wristbands",waist="Impulse Belt",legs="Nahtirah Trousers",feet="Wurrukatte Boots",back="Lutian Cape"}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- head="Arcadian Beret +1",ear1="Vulcan's Pearl",ear2="Vulcan's Pearl",
- body="Kyujutsugi",hands="Arcadian Bracers +1",ring1="Ifrit Ring +1",ring2="Ifrit Ring +1",
- back="Sylvan Chlamys",waist=gear.ElementalBelt,legs="Nahtirah Trousers",feet="Orion Socks +1"}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {body="Kyujutsugi",ring1="Hajduk Ring +1",
- back="Lutian Cape",legs="Arcadian Braccae +1"})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS.Coronach = set_combine(sets.precast.WS, {neck="Breeze Gorget",waist="Breeze Belt",})
- sets.precast.WS['Last Stand'] = set_combine(sets.precast.WS, {
- neck="Light Gorget",ear1="Moonshade Earring",ear2="Auster's Pearl",
- ring1="Garuda Ring",ring2="Garuda Ring",back="Lutian Cape",waist="Light Belt"})
- sets.precast.WS.Wildfire = set_combine(sets.precast.WS, {
- head="Fugacity Beret",ear1="Friomisi Earring",ear2="Novio Earring",
- body="Orion Jerkin +1",hands="Orion Bracers +1",ring1="Garuda Ring",ring2="Garuda Ring",
- back="Argochampsa Mantle",waist="Yamabuki-no-obi",legs="Shneddick Tights +1",feet={name="Qaaxo Leggings", augments={'Attack+15','Mag.Atk.Bns+15','STR+12'}}})
- sets.precast.WS['Namas Arrow'] = set_combine(sets.precast.WS.Coronach, {neck="Light Gorget",waist="Light Belt"})
- sets.precast.WS["Jishnu's Radiance"] = set_combine(sets.precast.WS['Namas Arrow'], {})
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- -- Fast recast for spells
- sets.midcast.FastRecast = {
- head="Orion Beret +1",ear1="Loquacious Earring",ring1="Prolix Ring",waist="Goading Belt",legs="Orion Braccae +1",feet="Orion Socks +1"}
- sets.midcast.Utsusemi = {}
- -- Ranged sets
- sets.midcast.RA = {
- head="Arcadian Beret +1",neck="Ocachi Gorget",ear1="Volley Earring",ear2="Tripudio Earring",
- body="Kyujutsugi",hands="Seiryu's Kote",ring1="Rajas Ring",ring2="Hajduk Ring +1",
- back="Lutian Cape",waist="Patentia Sash",legs="Nahtirah Trousers",feet="Orion Socks +1"}
- sets.midcast.RA.Mid = set_combine(sets.midcast.RA,{neck="Gaudryi Necklace",ring1="Hajduk Ring",legs="Arcadian Braccae +1"})
- sets.midcast.RA.Acc = set_combine(sets.midcast.RA.Mid,
- {head="Umbani Cap",ear2="Clearview Earring",ring1="Hajduk Ring",waist="Elanid Belt"})
- sets.midcast.RA.Annihilator = set_combine(sets.midcast.RA)
- sets.midcast.RA.Annihilator = set_combine(sets.midcast.RA.Mid)
- sets.midcast.RA.Annihilator.Acc = set_combine(sets.midcast.RA.Acc)
- sets.midcast.RA.Yoichinoyumi = sets.midcast.RA
- sets.midcast.RA.Yoichinoyumi.Acc = sets.midcast.RA.Acc
- --------------------------------------
- -- Idle/resting/defense/etc sets
- --------------------------------------
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- -- Kheper Jacket
- -- Idle sets
- sets.idle = {
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Black Earring",ear2="Ethereal Earring",
- body="Mekosu. Harness",hands="Buremte Gloves",ring1="Paguroidea Ring",ring2="Sheltered Ring",
- back="Engulfer Cape +1",waist="Flume Belt",legs="Qaaxo Tights",feet="Skadi's Jambeaux +1"}
- -- Kheper Jacket
- sets.idle.Town = {
- head="Orion Beret +1",neck="Wiglen Gorget",ear1="Volley Earring",ear2="Tripudio Earring",
- body="Mekosu. Harness",hands="Seiryu's Kote",ring1="Hajduk Ring +1",ring2="Rajas Ring",
- back="Engulfer Cape +1",waist="Flume Belt",legs="Nahtirah Trousers",feet="Skadi's Jambeaux +1"}
- -- Defense sets
- sets.defense.PDT = {
- head="Iuitl Headgear +1",neck="Twilight Torque",ear1="Black Earring",ear2="Ethereal Earring",
- body="Iuitl Vest +1",hands="Umuthi Gloves",ring1="Defending Ring",ring2="Dark Ring",
- back="Repulse Mantle",waist="Flume Belt",legs="Qaaxo Tights",feet="Iuitl Gaiters +1"}
- sets.defense.MDT = set_combine(sets.defense.PDT,{back="Engulfer Cape +1"})
- sets.Kiting = {legs="Blood Cuisses",feet="Skadi's Jambeaux +1"}
- sets.ExtraRegen = {head="Ocelomeh Headpiece +1"}
- --------------------------------------
- -- Engaged sets
- --------------------------------------
- sets.engaged = {
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Steelflash Earring",ear2="Bladeborn Earring",
- body="Orion Jerkin +1", hands="Arcadian Bracers +1", ring1="Defending Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Nahtirah Trousers",feet="Orion Socks +1"}
- sets.engaged.Acc = {
- head="Whirlpool Mask",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
- body="Manibozho Jerkin",hands="Iuitl Wristbands",ring1="K'ayres Ring",ring2="Rajas Ring",
- back="Letalis Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Iuitl Gaiters"}
- --------------------------------------
- -- Custom buff sets
- --------------------------------------
- sets.buff.Barrage = set_combine(sets.midcast.RA.Acc, {hands="Orion Bracers +1",legs="Desultor Tassets"})
- sets.buff.Camouflage = {body="Orion Jerkin +1"}
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement