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.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
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent.
- function user_setup()
- state.OffenseMode:options('Normal', 'Acc')
- state.HybridMode:options('Normal', 'PDT', 'Reraise')
- state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
- state.PhysicalDefenseMode:options('PDT', 'Reraise')
- update_combat_form()
- -- Additional local binds
- send_command('bind ^` input /ja "Hasso" <me>')
- send_command('bind !` input /ja "Seigan" <me>')
- select_default_macro_book()
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind ^`')
- send_command('unbind !-')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- -- Precast Sets
- sets.precast.FastCast ={
- ammo="Staunch Tathlum +1",
- head={ name="Rao Kabuto", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- body="Hiza. Haramaki +2",
- hands={ name="Rao Kote", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- legs="Arjuna Breeches",
- feet={ name="Rao Sune-Ate", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- neck="Sanctity Necklace",
- waist="Flume Belt",
- left_ear="Dawn Earring",
- right_ear="Infused Earring",
- left_ring="Defending Ring",
- right_ring="Patricius Ring",
- back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
- }
- -- Precast sets to enhance JAs
- sets.precast.JA.Meditate = {
- head="Wakido Kabuto +3",
- hands="Sao. Kote",
- back="Smertrios's Mantle",
- }
- sets.precast.JA['Warding Circle'] = {head="Wakido Kabuto +3"}
- sets.precast.JA['Blade Bash'] = {}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Weaponskill sets Acc 1070
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- ammo="Knobkierrie",
- head={name="Valorous Mask", augments={'Attack+28','Weapon skill damage +3%','Accuracy+13',}},
- neck="Fotia Gorget",
- ear1="Ishvara Earring",
- ear2="Moonshade Earring",
- body="Sakonji Domaru +3",
- hands={name="Valorous Mitts", augments={'Accuracy+16','Weapon skill damage +3%','AGI+2','Attack+13',}},
- ring1="Epaminondas's Ring",
- ring2="Regal Ring",
- back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
- waist="Fotia Belt",
- legs="Wakido Haidate +3",
- feet={name="Valorous Greaves", augments={'Accuracy+17 Attack+17','Weapon skill damage +3%',}},
- }
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Tachi: Fudo'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Tachi: Fudo'].Acc = set_combine(sets.precast.WS.Acc, {})
- sets.precast.WS['Tachi: Fudo'].Mod = set_combine(sets.precast.WS['Tachi: Fudo'], {})
- sets.precast.WS['Tachi: Shoha'] = set_combine(sets.precast.WS, {
- head="Flam. Zucchetto +2",
- feet="Flam. Gambieras +2",
- })
- sets.precast.WS['Tachi: Shoha'].Acc = set_combine(sets.precast.WS['Tachi: Shoha'], {})
- sets.precast.WS['Tachi: Shoha'].Mod = set_combine(sets.precast.WS['Tachi: Shoha'], {})
- sets.precast.WS['Tachi: Rana'] = set_combine(sets.precast.WS['Tachi: Shoha'], {})
- sets.precast.WS['Tachi: Rana'].Acc = set_combine(sets.precast.WS['Tachi: Shoha'].Acc, {})
- sets.precast.WS['Tachi: Rana'].Mod = set_combine(sets.precast.WS['Tachi: Shoha'].Mod, {})
- sets.precast.WS['Tachi: Kasha'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Tachi: Kasha'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'].Acc, {})
- sets.precast.WS['Tachi: Gekko'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Tachi: Gekko'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'].Acc, {})
- sets.precast.WS['Tachi: Yukikaze'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Tachi: Yukikaze'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'].Acc, {})
- sets.precast.WS['Tachi: Ageha'] = set_combine(sets.precast.WS, {
- ammo="Knobkierrie",
- head="Flam. Zucchetto +2",
- body="Sakonji Domaru +3",
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs="Wakido Haidate +3",
- feet="Flam. Gambieras +2",
- neck="Sanctity Necklace",
- waist="Eschan Stone",
- left_ear="Digni. Earring",
- right_ear="Moonshade Earring",
- left_ring="Niqmaddu Ring",
- right_ring="Regal Ring",
- back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
- })
- sets.precast.WS['Tachi: Ageha'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'].Acc, {})
- sets.precast.WS['Tachi: Jinpu'] = {
- ammo="Knobkierrie",
- head="Flam. Zucchetto +2",
- body={ name="Found. Breastplate", augments={'Accuracy+15','Mag. Acc.+15','Attack+15','"Mag.Atk.Bns."+15',}},
- hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
- legs="Wakido Haidate +3",
- feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
- neck="Fotia Gorget",
- waist="Fotia Belt",
- left_ear="Friomisi Earring",
- right_ear="Moonshade Earring",
- left_ring="Niqmaddu Ring",
- right_ring="Regal Ring",
- back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
- }
- sets.precast.WS['Tachi: Koki'] = set_combine(sets.precast.WS['Tachi: Jinpu'], {})
- sets.precast.WS['Tachi: Goten'] = set_combine(sets.precast.WS['Tachi: Jinpu'], {})
- sets.precast.WS['Tachi: Kagero'] = set_combine(sets.precast.WS['Tachi: Jinpu'], {})
- -- Midcast Sets
- sets.midcast.FastCast = sets.precast.FastCast
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {}
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle.Town = {
- ammo="Staunch Tathlum +1",
- head="Wakido Kabuto +3",
- body="Councilor's Garb",
- hands={ name="Rao Kote", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- legs="Arjuna Breeches",
- feet={ name="Rao Sune-Ate", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- neck="Sanctity Necklace",
- waist="Flume Belt",
- left_ear="Dawn Earring",
- right_ear="Infused Earring",
- left_ring="Defending Ring",
- right_ring="Patricius Ring",
- back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
- }
- sets.idle.Field = {
- ammo="Staunch Tathlum +1",
- head="Wakido Kabuto +3",
- body="Hiza. Haramaki +2",
- hands={ name="Rao Kote", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- legs="Arjuna Breeches",
- feet={ name="Rao Sune-Ate", augments={'Pet: HP+100','Pet: Accuracy+15','Pet: Damage taken -3%',}},
- neck="Sanctity Necklace",
- waist="Flume Belt",
- left_ear="Dawn Earring",
- right_ear="Infused Earring",
- left_ring="Defending Ring",
- right_ring="Patricius Ring",
- back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
- }
- sets.idle.Weak = sets.idle.Field
- -- Defense sets
- sets.defense.PDT = {
- ammo="Staunch Tathlum +1",
- head="Ynglinga Sallet",
- body="Tartarus Platemail",
- hands="Wakido Kote +3",
- legs="Arjuna Breeches",
- feet={ name="Amm Greaves", augments={'HP+50','VIT+10','Accuracy+15','Damage taken-2%',}},
- neck="Loricate Torque +1",
- waist="Ioskeha Belt +1",
- left_ear={name="Mache Earring +1", bag="Wardrobe"},
- right_ear={name="Mache Earring +1", bag="Wardrobe2"},
- left_ring="Defending Ring",
- right_ring="Patricius Ring",
- back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
- }
- sets.defense.Reraise = {}
- sets.defense.MDT = {}
- sets.Kiting = {feet="Danzo Sune-ate"}
- sets.Reraise = {}
- -- 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
- -- Delay 450 GK, 25 Save TP => 65 Store TP for a 5-hit (25 Store TP in gear)
- -- Acc 1176
- sets.engaged = {
- ammo="Ginsen",
- head="Flam. Zucchetto +2",
- body="Dagon Breast.",
- hands="Wakido Kote +3",
- legs="Wakido Haidate +3",
- feet="Flam. Gambieras +2",
- neck="Moonlight Nodowa",
- waist="Ioskeha Belt +1",
- left_ear="Brutal Earring",
- right_ear="Digni. Earring",
- right_ring="Petrov Ring",
- left_ring="Flamma Ring",
- back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
- }
- sets.engaged.Acc = set_combine(sets.engaged, {
- left_ear="Mache Earring +1",
- right_ear="Mache Earring +1",
- left_ring="Regal Ring",
- })
- sets.engaged.PDT = set_combine(sets.engaged, {})
- sets.engaged.Acc.PDT = set_combine(sets.engaged, {})
- sets.engaged.Reraise = set_combine(sets.engaged, {})
- sets.engaged.Acc.Reraise = set_combine(sets.engaged, {})
- -- Melee sets for in Adoulin, which has an extra 10 Save TP for weaponskills.
- -- Delay 450 GK, 35 Save TP => 89 Store TP for a 4-hit (49 Store TP in gear), 2 Store TP for a 5-hit
- sets.engaged.Adoulin = sets.engaged
- sets.engaged.Adoulin.Acc = sets.engaged.Acc
- sets.engaged.Adoulin.PDT = sets.engaged.PDT
- sets.engaged.Adoulin.Acc.PDT = sets.engaged.Acc.PDT
- sets.engaged.Adoulin.Reraise = sets.engaged.Reraise
- sets.engaged.Adoulin.Acc.Reraise = sets.engaged.Acc.Reraise
- sets.buff.Sekkanoki = {}
- sets.buff.Sengikori = {}
- sets.buff['Meikyo Shisui'] = {}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- 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
- 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
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_buff_change(status,gain_or_loss)
- handle_equipping_gear(player.status)
- if (gain_or_loss) then
- add_to_chat(4,'------- Gained Buff: '..status..'-------')
- handle_equipping_gear(player.status)
- if status == "KO" then
- add_to_chat('GAME OVER')
- handle_equipping_gear(player.status)
- end
- else
- add_to_chat(3,'------- Lost Buff: '..status..'-------')
- handle_equipping_gear(player.status)
- 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 == 'WAR' then
- set_macro_page(1, 3)
- elseif player.sub_job == 'DNC' then
- set_macro_page(1, 3)
- elseif player.sub_job == 'THF' then
- set_macro_page(1, 3)
- elseif player.sub_job == 'NIN' then
- set_macro_page(1, 3)
- else
- set_macro_page(1, 3)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement