Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- 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.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent.
- function job_setup()
- state.CombatForm = get_combat_form()
- state.Buff.Sekkanoki = buffactive.sekkanoki or false
- state.Buff.Sengikori = buffactive.sengikori or false
- state.Buff['Meikyou Shisui'] = buffactive['Meikyou Shisui'] or false
- end
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- -- Options: Override default values
- options.OffenseModes = {'Normal', 'Acc'}
- options.DefenseModes = {'Normal', 'PDT', 'Reraise'}
- options.WeaponskillModes = {'Normal', 'Acc'}
- options.CastingModes = {'Normal'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'PDT', 'Reraise'}
- options.MagicalDefenseModes = {'MDT'}
- state.Defense.PhysicalMode = 'PDT'
- -- 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 file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- 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
- -- Precast sets to enhance JAs
- sets.precast.JA.Meditate = {head="Myochin Kabuto",hands="Sakonji Kote"}
- sets.precast.JA['Warding Circle'] = {head="Myochin Kabuto"}
- sets.precast.JA['Blade Bash'] = {hands="Sakonji Kote"}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Sonia's Plectrum",
- head="Yaoyotl Helm",
- body="Otronif Harness +1",hands="Buremte Gloves",ring1="Spiral Ring",
- back="Iximulew Cape",waist="Caudata Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- ammo="Thew Bomblet",
- head="Yaoyotl Helm",
- neck="Asperity Necklace",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- body="Phorcys Korazin",
- hands="Otronif Gloves",
- ring1="Spiral Ring",
- ring2="Rajas Ring",
- back="Atheling Mantle",
- waist="Caudata Belt",
- legs="Wakido haidate +1",
- feet="Whirlpool Greaves"}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Ginsen",back="Letalis Mantle"})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Tachi: Fudo'] = {
- ammo="Thew Bomblet",
- head="Otomi Helm",
- body="Phorcyz Korazin",
- hands="Mikinaak Gauntlets",
- legs="Wakido haidate +1",
- feet="Ejekamal Boots",
- neck="Light Gorget",
- ear1="Brutal Earring",
- ear2="Trux Earring",
- ring1="Spiral Ring",
- ring2="Rajas Ring",
- back="Buquwik Cape",
- waist="Light Belt"}
- sets.precast.WS['Tachi: Fudo'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'], {
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- waist="Caudata Belt"})
- sets.precast.WS['Tachi: Shoha'] = {
- ammo="Thew Bomblet",
- head="Yaoyotl Helm",
- body="Phorcyz Korazin",
- hands="Mikinaak Gauntlets",
- legs="Wakido haidate +1",
- feet="Ejekamal Boots",
- neck="Shadow Gorget",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- ring1="Spiral Ring",
- ring2="Rajas Ring",
- back="Buquwik Cape",
- waist="Shadow Belt"}
- sets.precast.WS['Tachi: Shoha'].Acc = set_combine(sets.precast.WS['Tachi: Shoha'], {waist="Caudata Belt"})
- sets.precast.WS['Tachi: Rana'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Tachi: Rana'].Acc = set_combine(sets.precast.WS['Tachi: Rana'], {waist="Snow Belt"})
- sets.precast.WS['Tachi: Kasha'] = set_combine(sets.precast.WS, {neck="Light Gorget",waist="Light Belt"})
- sets.precast.WS['Tachi: Gekko'] = set_combine(sets.precast.WS, {neck="Snow Gorget",waist="Snow Belt"})
- sets.precast.WS['Tachi: Yukikaze'] = set_combine(sets.precast.WS, {neck="Snow Gorget",waist="Snow Belt"})
- sets.precast.WS['Tachi: Ageha'] = set_combine(sets.precast.WS, {neck="Soil Gorget",waist="Soil Belt"})
- sets.precast.WS['Tachi: Jinpu'] = set_combine(sets.precast.WS, {neck="Soil Gorget",waist="Soil Belt"})
- sets.precast.WS['Apex Arrow'] = {
- head="Sankoji Kabuto",
- body="Phorcyz Korazin",
- hands="Unkai Kote +2",
- legs="Wakido haidate +1",
- feet="Wakido Sune-Ate +1",
- neck="Light Gorget",
- ear1="Altdorf's Earring",
- ear2="Wilhelm's Earring",
- ring1="Hajduk Ring",
- ring2="Paqichikaji Ring",
- back="Buquwik Cape",
- waist="Light Belt"}
- -- Midcast Sets
- sets.midcast.FastRecast = {
- head="Yaoyotl Helm",
- body="Otronif Harness +1",hands="Otronif Gloves",
- legs="Phorcys Dirs",feet="Otronif Boots +1"}
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {neck="Wiglen Gorget",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle.Town = {main="Tsurumaru", sub="Pole Grip",ammo="Ginsen",
- head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
- body="Xaddi Mail",hands="Wakido Kote +1",ring1="Defending Ring",ring2="Shadow Ring",
- back="Shadow Mantle",waist="Windbuffet Belt",legs="Wakido Haidate +1",feet="Danzo Sune-ate"}
- sets.idle.Field = {
- head="Yaoyotl Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Danzo Sune-ate"}
- sets.idle.Weak = {
- head="Twilight Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Buremte Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Danzo Sune-ate"}
- -- Defense sets
- sets.defense.PDT = {ammo="Iron Gobbet",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Dark Ring",ring2="Dark Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
- sets.defense.Reraise = {
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Buremte Gloves",ring1="Dark Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
- sets.defense.MDT = {ammo="Demonry Stone",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Engulfer Cape",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
- sets.Kiting = {feet="Danzo Sune-ate"}
- sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
- -- 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)
- sets.engaged = {
- ammo="Ginsen",
- head="Otomi Helm",
- neck="Asperity Necklace",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- body="Xaddi Mail",
- hands="Wakido Kote +1",
- ring1="K'ayres Ring",
- ring2="Rajas Ring",
- back="Takaha Mantle",
- waist="Windbuffet Belt",
- legs="Otronif Brais",
- feet="Ejekamal Boots"}
- sets.engaged.Acc = {
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Asperity Necklace",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- body="Xaddi Mail",
- hands="Buremte Gloves",
- ring1="K'ayres Ring",
- ring2="Rajas Ring",
- back="Takaha Mantle",
- waist="Dynamic Belt",
- legs="Unkai Haidate +2",
- feet="Wakido Sune-Ate +1"}
- sets.engaged.PDT = {ammo="Thew Bomblet",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Dark Ring",ring2="K'ayres Ring",
- back="Iximulew Cape",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Dark Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.engaged.Reraise = {ammo="Thew Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Otronif Gloves",ring1="Beeline Ring",ring2="K'ayres Ring",
- back="Ik Cape",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.engaged.Acc.Reraise = {ammo="Thew Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Otronif Gloves",ring1="Beeline Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- -- 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 = {
- ammo="Ginsen",
- head="Otomi Helm",
- neck="Asperity Necklace",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- body="Xaddi Mail",
- hands="Wakido Kote +1",
- ring1="K'ares Ring",
- ring2="Rajas Ring",
- back="Atheling Mantle",
- waist="Windbuffet Belt",
- legs="Otronif Brais",
- feet="Ejekamal Boots"}
- sets.engaged.Adoulin.Acc = {
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Agitator's Collar",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- body="Xaddi Mail",
- hands="Buremte Gloves",
- ring1="K'ares Ring",
- ring2="Rajas Ring",
- back="Takaha Mantle",
- waist="Windbuffet Belt",
- legs="Unkai Haidate +2",
- feet="Wakido Sune-Ate +1"}
- sets.engaged.Adoulin.PDT = {ammo="Thew Bomblet",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Dark Ring",ring2="K'ayres Ring",
- back="Iximulew Cape",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.engaged.Adoulin.Acc.PDT = {ammo="Honed Tathlum",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves",ring1="Dark Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.engaged.Adoulin.Reraise = {ammo="Thew Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Otronif Gloves",ring1="Beeline Ring",ring2="K'ayres Ring",
- back="Ik Cape",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.engaged.Adoulin.Acc.Reraise = {ammo="Thew Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Otronif Gloves",ring1="Beeline Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Goading Belt",legs="Unkai Haidate +2",feet="Otronif Boots +1"}
- sets.buff.Sekkanoki = {hands="Unkai Kote +2"}
- sets.buff.Sengikori = {feet="Unkai Sune-ate +2"}
- sets.buff['Meikyou Shisui'] = {feet="Sakonji Sune-ate"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks that are called to process player actions at specific points in time.
- -------------------------------------------------------------------------------------------------------------------
- -- 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:lower() == 'weaponskill' then
- -- Change any GK weaponskills to polearm weaponskill if we're using a polearm.
- if player.equipment.main=='Eminent Lance' or player.equipment.main=='Quint Spear' then
- if spell.english:startswith("Tachi:") then
- send_command('@input /ws "Stardiver" '..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['Meikyou Shisui'] then
- equip(sets.buff['Meikyou Shisui'])
- end
- 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 == 'Magic' then
- equip(sets.midcast.FastRecast)
- 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.DefenseMode == 'Reraise' or
- (state.Defense.Active and state.Defense.Type == 'Physical' and state.Defense.PhysicalMode == 'Reraise') then
- equip(sets.Reraise)
- end
- end
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_aftercast(spell, action, spellMap, eventArgs)
- if not spell.interrupted then
- if state.Buff[spell.english] ~= nil then
- state.Buff[spell.english] = true
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customization hooks for idle and melee sets, after they've been automatically constructed.
- -------------------------------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other 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 state.Buff[buff] ~= nil then
- state.Buff[buff] = gain
- end
- end
- -- Called when the player's subjob changes.
- function sub_job_change(newSubjob, oldSubjob)
- select_default_macro_book()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- -- 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)
- function check_range_lock()
- if player.equipment.range ~= 'Hangaku-no-Yumi' then
- enable('range', 'ammo')
- else
- disenable('range', 'ammo')
- end
- end
- state.CombatForm = get_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
- function job_handle_equipping_gear(status, eventArgs)
- function check_range_lock()
- if player.equipment.range ~= 'Hangaku-no-Yumi' then
- enable('range', 'ammo')
- else
- disable('range', 'ammo')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function get_combat_form()
- if areas.Adoulin:contains(world.area) and buffactive.ionis then
- return 'Adoulin'
- 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, 12)
- elseif player.sub_job == 'DNC' then
- set_macro_page(3, 12)
- elseif player.sub_job == 'THF' then
- set_macro_page(3, 11)
- elseif player.sub_job == 'NIN' then
- set_macro_page(2, 12)
- else
- set_macro_page(1, 12)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement