Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ Info
- Commands
- //gs debugmode
- //gs showswaps
- //gs validate - looks for gear in your sets that isnt in inventory.
- --]]
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Binds
- 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 CastingMode')
- send_command('bind f12 gs c cycle IdleMode')
- -- ALT F9-12
- send_command('bind !f9 gs c update user')
- send_command('bind !f10 gs c cycle RangedMode')
- send_command('bind !f11 gs c cycle WeaponskillMode')
- send_command('bind !f12 gs c cycle Kiting')
- end
- -- Called when this job file is unloaded (eg: job change)
- function file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- end
- -- Setup vars that are user-independent.
- function job_setup()
- state.Buff.Hasso = buffactive.Hasso or false
- state.Buff.Seigan = buffactive.Seigan or false
- state.Buff.Sekkanoki = buffactive.Sekkanoki or false
- state.Buff.Sengikori = buffactive.Sengikori or false
- state.Buff['Meikyo Shisui'] = buffactive['Meikyo Shisui'] or false
- end
- -- Setup vars that are user-dependent.
- function user_setup()
- state.OffenseMode:options('Normal', 'LowAcc', 'Acc')
- state.HybridMode:options('Normal', 'DamageTaken')
- state.IdleMode:options('Normal', 'DamageTaken')
- state.WeaponskillMode:options('Normal', 'Acc')
- update_combat_form()
- select_default_macro_book()
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- -- Precast Sets
- sets.precast.JA.Meditate = {head="Wakido Kabuto +1", hands="Sakonji Kote", back="Takaha Mantle"}
- sets.precast.JA['Blade Bash'] = {hands="Sakonji Kote"}
- sets.precast.JA['Warding Circle'] = {head="Wakido Kabuto +1"}
- sets.precast.JA['Provoke'] = {
- ammo="Sapience Orb",
- body="Emet Harness +1",
- back="Reiki Cloak", neck="Unmoving Collar +1",
- hands="Kurys Gloves",
- ring1="Pernicious Ring", ring2="Eihwaz Ring",
- ear1="Trux Earring", ear2="Cryptic Earring"}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {}
- -- Fast cast sets for spells
- sets.precast.FC = {
- ammo="Impatiens",
- body="Nuevo Coselete", neck="Orunmila's Torque",
- hands="Leyline Gloves", waist="Tempus Fugit",
- ring1="Lebeche Ring", ring2="Prolix Ring",
- ear1="Enchanter Earring +1", ear2="Loquacious Earring"}
- -- Midcast Sets
- sets.midcast.FastRecast = {
- ammo="Impatiens",
- body="Nuevo Coselete", neck="Orunmila's Torque",
- hands="Leyline Gloves", waist="Tempus Fugit",
- ring1="Lebeche Ring", ring2="Prolix Ring",
- ear1="Enchanter Earring +1", ear2="Loquacious Earring"}
- -- Resting sets
- sets.resting = {
- ammo="Ginsen",
- head=Val_WSdmg_head, body="Hizamaru Haramaki +2",
- back="Moonbeam Cape", neck="Sanctity Necklace",
- hands="Founder's Gauntlets", waist="Flume Belt +1",
- legs="Ryuo Hakama +1", feet="Danzo Sune-ate",
- ring1="Sheltered Ring", ring2="Paguroidea Ring",
- ear1="Odnowa Earring +1", ear2="Infused Earring"}
- -- Idle sets
- sets.idle = {
- ammo="Ginsen",
- head=Val_WSdmg_head, body="Hizamaru Haramaki +2",
- back="Moonbeam Cape", neck="Sanctity Necklace",
- hands="Founder's Gauntlets", waist="Flume Belt +1",
- legs="Ryuo Hakama +1", feet="Danzo Sune-ate",
- ring1="Sheltered Ring", ring2="Paguroidea Ring",
- ear1="Odnowa Earring +1", ear2="Infused Earring"}
- sets.idle.DamageTaken = {
- ammo="Ginsen",
- head="Loess Barbuta +1", body="Wakido Domaru +2",
- back="Moonbeam Cape", neck="Loricate Torque +1",
- hands="Founder's Gauntlets", waist="Flume Belt +1",
- legs="Ryuo Hakama +1", feet="Amm Greaves",
- ring1="Defending Ring", ring2="Patricius Ring",
- ear1="Odnowa Earring +1", ear2="Odnowa Earring"}
- sets.idle.Town = {
- ammo="Ginsen",
- head=Val_WSdmg_head, body="Ryuo Domaru +1",
- back=Sme_WSdmg, neck="Moonlight Nodowa",
- hands="Wakido Kote +2", waist="Fotia Belt",
- legs="Ryuo Hakama +1", feet="Ryuo Sune-ate +1",
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Telos Earring", ear2="Cessance Earring"}
- sets.idle.Weak = {
- ammo="Ginsen",
- head="Twilight Helm", body="Twilight Mail",
- back="Moonbeam Cape", neck="Loricate Torque +1",
- hands="Founder's Gauntlets", waist="Flume Belt +1",
- legs="Ryuo Hakama +1", feet="Amm Greaves",
- ring1="Defending Ring", ring2="Patricius Ring",
- ear1="Odnowa Earring +1", ear2="Odnowa Earring"}
- sets.Kiting = {feet="Danzo Sune-ate"}
- sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
- sets.buff.Sekkanoki = {hands="Kasuga Kote"}
- sets.buff.Sengikori = {feet="Kasuga Sune-ate"}
- sets.buff['Meikyo Shisui'] = {feet="Sakonji Sune-ate +1"}
- sets.buff['Hasso']= {hands="Wakido Kote +2"}
- sets.buff['Seigan'] = {head="Sakonji Kabuto +1", legs="Sakonji Haidate"}
- -- Engaged sets
- -- 42stp with 11roll(neck). -- 66STP with 7roll+ (3 hit)
- -- So 57-66 seems like a good range
- -- 57stp with no roll at 450 delay . (4 hit)
- -- 26stp in WS set = 220 tp - then need 62stp in TP set for 4 hit
- -- Always add 8 STP to calc for JPx8
- --59stp
- sets.engaged = {
- ammo="Ginsen",
- head="Flamma Zucchetto +2", body=Val_QA_body,
- back=Sme_DA_TP, neck="Moonlight Nodowa",
- hands="Wakido Kote +2", waist="Ioskeha Belt",
- legs="Ryuo Hakama +1", feet="Flamma Gambieras +2",
- ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
- ear1="Brutal Earring", ear2="Cessance Earring"}
- sets.engaged.LowAcc = {
- ammo="Ginsen",
- head="Flamma Zucchetto +2", body=Val_DA_body,
- back=Sme_DA_TP, neck="Moonlight Nodowa",
- hands="Ryuo Tekko", waist="Ioskeha Belt",
- legs="Ryuo Hakama +1", feet=Val_STP_feet,
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Telos Earring", ear2="Cessance Earring"}
- sets.engaged.Acc = {
- ammo="Ginsen",
- head="Flamma Zucchetto +2", body=Val_DA_body,
- back=Sme_DA_TP, neck="Moonlight Nodowa",
- hands="Ryuo Tekko", waist="Olseni Belt",
- legs="Ryuo Hakama +1", feet=Val_STP_feet,
- ring1="Ramuh Ring +1", ring2="Regal Ring",
- ear1="Telos Earring", ear2="Dignitary's Earring"}
- --Hybrid Sets
- sets.engaged.DamageTaken = set_combine(sets.engaged, {
- head="Loess Barbuta +1", body="Wakido Domaru +2",
- back="Moonbeam Cape", neck="Loricate Torque +1",
- hands="Founder's Gauntlets", waist="Flume Belt +1",
- legs="Ryuo Hakama +1", feet="Amm Greaves",
- ring1="Defending Ring", ring2="Regal Ring",
- ear1="Telos Earring", ear2="Mache Earring"})
- sets.engaged.LowAcc.DamageTaken = set_combine(sets.engaged.DamageTaken, {
- neck="Moonlight Nodowa",back=Sme_DA_TP})
- sets.engaged.Acc.DamageTaken = set_combine(sets.engaged.DamageTaken, {
- neck="Moonlight Nodowa",back=Sme_DA_TP})
- -- Weapon Skill Sets
- sets.precast.WS = {
- ammo="Knobkierrie",
- head=Val_WSdmg_head, body=Val_QA_body,
- back=Sme_WSdmg, neck="Fotia Gorget",
- hands=Val_WSdmg_hands, waist="Fotia Belt",
- legs="Wakido Haidate +2", feet="Ryuo Sune-ate +1",
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Brutal Earring", ear2="Moonshade Earring"}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {hands=Val_STR_hands})
- -- STR80% deals double damage, damage varies with tp. Use STR/WSD
- sets.precast.WS['Tachi: Fudo'] = {
- ammo="Knobkierrie",
- head=Val_WSdmg_head, body=Val_WSdmg_body,
- back=Sme_WSdmg, neck="Fotia Gorget",
- hands=Val_WSdmg_hands, waist="Fotia Belt",
- legs="Wakido Haidate +2", feet=Val_WSdmg_feet,
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Ishvara Earring", ear2="Moonshade Earring"}
- sets.precast.WS['Tachi: Fudo'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'], {
- hands=Val_STR_hands})
- -- STR 85%
- sets.precast.WS['Tachi: Shoha'] = {
- ammo="Knobkierrie",
- head=Val_WSdmg_head, body=Val_WSdmg_body,
- back=Sme_WSdmg, neck="Fotia Gorget",
- hands=Val_WSdmg_hands, waist="Fotia Belt",
- legs="Wakido Haidate +2", feet=Val_WSdmg_feet,
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Ishvara Earring", ear2="Moonshade Earring"}
- sets.precast.WS['Tachi: Shoha'].Acc = set_combine(sets.precast.WS['Tachi: Shoha'], {
- hands=Val_STR_hands})
- --STR 50% 3 hit - multi hit
- sets.precast.WS['Tachi: Rana'] ={
- head="Flamma Zucchetto +2", body=Val_QA_body,
- back=Sme_WSdmg, neck="Fotia Gorget",
- hands="Founder's Gauntlets", waist="Fotia Belt",
- legs="Ryuo Hakama +1", feet="Flamma Gambieras +2",
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Brutal Earring", ear2="Moonshade Earring"}
- sets.precast.WS['Tachi: Rana'].Acc = set_combine(sets.precast.WS['Tachi: Rana'], {
- hands=Val_STR_hands})
- --STR 75%
- sets.precast.WS['Tachi: Kasha'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Tachi: Kasha'].Acc = set_combine(sets.precast.WS.Acc, {})
- --STR 50%
- sets.precast.WS['Tachi: Jinpu'] = {
- head=Val_WSdmg_head, body="Founder's Breastplate",
- back="Izdubar Mantle", neck="Baetyl Pendant",
- hands="Founder's Gauntlets", waist="Eschan Stone",
- legs="Ryuo Hakama +1", feet="Founder's Greaves",
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Friomisi Earring", ear2="Moonshade Earring"}
- sets.precast.WS['Tachi: Jinpu'].Acc = {}
- -- AGI 73-85%
- sets.precast.WS['Apex Arrow'] = {
- head="Sakonji Kabuto +1", body="Kyujutsugi",
- back="Takaha Mantle", neck="Fotia Gorget",
- hands="Kasuga Kote", waist="Fotia Belt",
- legs="Ryuo Hakama +1", feet="Ryuo Sune-ate +1",
- ring1="Niqmaddu Ring", ring2="Regal Ring",
- ear1="Enervating Earring", ear2="Moonshade Earring"}
- end
- -- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
- function job_pretarget(spell, action, spellMap, eventArgs)
- if spell.type == 'WeaponSkill' then
- -- Change any GK weaponskills to polearm weaponskill if we're using a polearm.
- if player.equipment.main=='Quint Spear' or player.equipment.main=='Quint Spear' then
- if spell.english:startswith("Tachi:") then
- send_command('@input /ws "Penta Thrust" '..spell.target.raw)
- eventArgs.cancel = true
- end
- end
- end
- end
- -- Run after the default precast() is done.
- -- eventArgs is the same one used in job_precast, in case information needs to be persisted.
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.type:lower() == 'weaponskill' then
- if state.Buff.Sekkanoki then
- equip(sets.buff.Sekkanoki)
- end
- if state.Buff.Sengikori then
- equip(sets.buff.Sengikori)
- end
- if state.Buff['Meikyo Shisui'] then
- equip(sets.buff['Meikyo Shisui'])
- end
- if state.Buff['Hasso'] then
- equip(sets.buff['Hasso'])
- end
- if state.Buff['Seigan'] then
- equip(sets.buff['Seigan'])
- end
- end
- end
- -- Run after the default midcast() is done.
- -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
- function job_post_midcast(spell, action, spellMap, eventArgs)
- -- Effectively lock these items in place.
- if state.HybridMode.value == 'Reraise' or
- (state.DefenseMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then
- equip(sets.Reraise)
- end
- end
- -- 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
- handle_equipping_gear(player.status)
- end
- if buff == "Doom" or buff == "Curse" then
- if gain then
- equip(sets.Doom)
- send_command('@input /p Doomed.')
- disable('ring1','ring2','waist')
- else
- enable('ring1','ring2','waist')
- handle_equipping_gear(player.status)
- end
- end
- end
- ---------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- ---------------------------------------------------------------------------------
- -- Called by the 'update' self-command, for common needs.
- -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
- function job_update(cmdParams, eventArgs)
- update_combat_form()
- 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.
- --------------------------------------------------------
- function update_combat_form()
- if areas.Adoulin:contains(world.area) and buffactive.ionis then
- state.CombatForm:set('Adoulin')
- else
- state.CombatForm:reset()
- 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, 6)
- elseif player.sub_job == 'NIN' then
- set_macro_page(1, 6)
- else
- set_macro_page(1, 6)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement