Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- *** 0 fucks are given about dragoon *** --
- -- ** I Use Some of Motenten's Functions ** --
- -- Last Updated: 9/23/14 Fuck Geno *Changed HB Rule* --
- -------------------------------------------------------------------------------------------------------------------
- -- 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.Buff['Aftermath'] = buffactive['Aftermath: Lv.1'] or
- buffactive['Aftermath: Lv.2'] or
- buffactive['Aftermath: Lv.3']
- 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', 'Multi'}
- options.DefenseModes = {'Normal', 'PDT', 'Reraise'}
- options.WeaponskillModes = {'Normal', 'Acc', 'Att', 'Mod'}
- options.CastingModes = {'Normal'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'PDT', 'Reraise'}
- options.MagicalDefenseModes = {'MDT'}
- adjust_engaged_sets()
- -- Additional local binds
- send_command('bind ^` input /ja "Hasso" <me>')
- send_command('bind !` input /ja "Seigan" <me>')
- 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
- sets['Restoring Breath'] =
- {
- head="Ptero. Armet +1",
- neck="Lancer's Torque",
- body="Vishap mail +1",
- ring1="",
- ring2="",
- back="Updraft Mantle",
- waist="Glassblower's Belt",
- legs="Vishap Brais",
- feet="Ptero. Greaves"}
- -- Precast sets to enhance JAs
- sets.precast.JA['Jump'] = {
- main="Ryunohige",
- sub="Bloodrain strap",
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Asperity necklace",
- ear1="Tripudio Earring",
- ear2="Brutal Earring",
- body="Vishap mail +1",
- hands="Vishap F. G. +1",
- ring1="Oneiros Ring",
- ring2="Rajas Ring",
- back="Updraft mantle",
- waist="Windbuffet belt",
- legs="Xaddi cuisses",
- feet="Vishap Greaves +1"}
- sets.precast.JA['High Jump'] = set_combine(sets.precast.JA["Jump"],{legs="Vishap brais +1"
- })
- sets.precast.JA["Spirit Jump"] = set_combine(sets.precast.JA["Jump"],{
- feet="Lncr. Schynbld. +2"})
- sets.precast.JA["Soul Jump"] = set_combine(sets.precast.JA["Jump"],{
- })
- sets.precast.JA.Angon = {ammo="Angon",ear1="Dragoon's Earring",hands="Ptero. Fin. Gaunt."}
- sets.precast.JA['Ancient Circle'] = {legs="Vishap brais"}
- sets.precast.JA['Call Wyvern'] = {body="Pteroslaver mail"}
- sets.precast.Pet = {}
- sets.precast.Pet.WyvernHP = {
- head="Ptero. Armet +1",
- neck="Lancer's Torque",
- body="Vishap mail +1",
- ring1="",
- ring2="",
- back="Updraft Mantle",
- waist="Glassblower's Belt",
- legs="Vishap Brais",
- feet="Ptero. Greaves"}
- sets.precast.JA["Spirit Link"] = set_combine(sets.precast.Pet.WyvernHP,{head="Vishap Armet",hands="Lncr. Vmbrc. +2",feet="Ptero. Greaves"})
- sets.precast.Pet["Smiting Breath"] = set_combine(sets.precast.Pet.WyvernHP)
- sets.precast.Pet["Steady Wing"] = set_combine(sets.precast.Pet.WyvernHP)
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Sonia's Plectrum",
- head="Yaoyotl Helm",
- body="Mikinaak Breastplate",hands="Buremte Gloves",
- legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- main="Ryunohige",
- sub="Bloodrain strap",
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Rancor collar",
- ear1="Tripudio Earring",
- ear2="Moonshade Earring",
- body="Xaddi mail",
- hands="Xaddi gauntlets",
- ring1="Oneiros Ring",
- ring2="Rajas Ring",
- back="Updraft mantle",
- waist="Windbuffet belt",
- legs="Xaddi cuisses",
- feet="Ejekamal boots"}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {head="Yaoyotl Helm",
- body="Xaddi Mail",
- legs="Xaddi Cuisses"})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Drakesbane'] = set_combine(sets.precast.WS, {})
- sets.precast.WS['Drakesbane'].Acc = set_combine(sets.precast.WS.Acc, {})
- sets.precast.WS['Drakesbane'].Mod = set_combine(sets.precast.WS['Drakesbane'], {waist="Windbuffet belt"})
- sets.precast.WS['Stardiver'] = set_combine(sets.precast.WS, {neck="Soil Gorget",waist="Soil Belt", legs="Xaddi cuisses"})
- sets.precast.WS['Stardiver'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",waist="Soil Belt",legs="Xaddi cuisses"})
- sets.precast.WS['Stardiver'].Mod = set_combine(sets.precast.WS['Stardiver'], {waist="Soil Belt",legs="Xaddi cuisses"})
- sets.precast.WS["Camlann's Torment"] = set_combine(sets.precast.WS, {neck="Thunder Gorget",ring2="Oneiros ring",waist="Thunder belt"})
- sets.precast.WS["Camlann's Torment"].Acc = set_combine(sets.precast.WS.Acc, {neck="Thunder Gorget",ring1="Oneiros Ring", waist="Thunder belt"})
- sets.precast.WS["Camlann's Torment"].Mod = set_combine(sets.precast.WS['Resolution'], {waist="Thunder Belt",ring2="Candent Ring"})
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {head="Yaoyotl Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Letalis Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle.Town = {
- main="Ryunohige",
- sub="Bloodrain strap",
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Rancor collar",
- ear1="Tripudio Earring",
- ear2="Brutal Earring",
- body="Xaddi mail",
- hands="Xaddi gauntlets",
- ring1="Oneiros Ring",
- ring2="Rajas Ring",
- back="Updraft mantle",
- waist="Windbuffet belt",
- legs="Xaddi cuisses",
- feet="Ejekamal boots"}
- sets.idle.Field = {
- main="Ryunohige",
- sub="Bloodrain strap",
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Rancor collar",
- ear1="Tripudio Earring",
- ear2="Brutal Earring",
- body="Xaddi mail",
- hands="Xaddi gauntlets",
- ring1="Oneiros Ring",
- ring2="Rajas Ring",
- back="Updraft mantle",
- waist="Windbuffet belt",
- legs="Xaddi cuisses",
- feet="Ejekamal boots"}
- sets.idle.Weak = {
- head="Twilight Helm",neck="Bale Choker",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Buremte Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
- -- Defense sets
- sets.defense.PDT = {ammo="Ginsen",
- head="Cizin Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Cizin Mail",hands="Umuthi gloves",ring1="Dark Ring",ring2="Dark Ring",
- back="Mollusca Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- sets.defense.Reraise = {
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Paguroidea Ring",
- back="Mollusca Mantle",waist="Dynamic belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- sets.defense.MDT = {
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
- back="Engulfer Cape",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
- -- Engaged sets
- sets.engaged = {
- main="Ryunohige",
- sub="Bloodrain strap",
- ammo="Ginsen",
- head="Yaoyotl Helm",
- neck="Rancor collar",
- ear1="Tripudio Earring",
- ear2="Brutal Earring",
- body="Xaddi mail",
- hands="Xaddi gauntlets",
- ring1="Oneiros Ring",
- ring2="Rajas Ring",
- back="Updraft mantle",
- waist="Windbuffet belt",
- legs="Xaddi cuisses",
- feet="Ejekamal boots"}
- sets.engaged.Acc = set_combine(sets.engaged,{
- head="Yaoyotl Helm",
- neck="Asperity necklace",
- body="Xaddi Mail",
- ring1="K'ayres Ring",
- hands="Xaddi Gauntlets",
- back="Updraft Mantle",
- waist="Patentia sash",
- legs="Xaddi Cuisses"})
- sets.engaged.mod = {ammo="Ginsen",
- head="Yaoyotl Helm",neck="",ear1="Brutal Earring",ear2="Moonshade Earring",
- body="Xaddi mail",hands="Xaddi gauntlets",ring1="Rajas Ring",ring2="Spiral Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Xaddi cuisses",feet="Ejekamal boots"}
- sets.engaged.Multi = {ammo="Hagneia Stone",
- head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Cetl Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
- sets.engaged.Reraise = {ammo="Fire Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="Dark Ring",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- -- 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
- sets.engaged.Apocalypse = {ammo="Ginsen",
- head="Yaoyotl Helm",neck="Asperity necklace",ear1="Bladeborn earring",ear2="Steelflash Earring",
- body="Xaddi mail",hands="Xaddi gauntlets",ring1="Rajas Ring",ring2="K'ayres Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Xaddi cuisses",feet="Ejekamal boots"}
- sets.engaged.Apocalypse.Acc = {ammo="Hagneia Stone",
- head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
- sets.engaged.Apocalypse.AM = {ammo="Ginsen",
- head="Yaoyotl Helm",neck="",ear1="Brutal Earring",ear2="Moonshade Earring",
- body="Xaddi mail",hands="Xaddi gauntlets",ring1="Rajas Ring",ring2="Spiral Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Xaddi cuisses",feet="Ejekamal boots"}
- sets.engaged.Apocalypse.Multi = {ammo="Hagneia Stone",
- head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
- back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
- sets.engaged.Apocalypse.Multi.PDT = {ammo="Hagneia Stone",
- head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Graves"}
- sets.engaged.Apocalypse.Multi.Reraise = {ammo="Hagneia Stone",
- head="Twilight Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
- sets.engaged.Apocalypse.PDT = {ammo="Fire Bomblet",
- head="Cizin Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
- back="Mollusca Mantle",waist="Nierenschutz",legs="Cizin Breeches",feet="Cizin Greaves"}
- sets.engaged.Apocalypse.Acc.PDT = {ammo="Fire Bomblet",
- head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- sets.engaged.Apocalypse.Reraise = {ammo="Fire Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="Dark Ring",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- sets.engaged.Apocalypse.Acc.Reraise = {ammo="Fire Bomblet",
- head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="DarkRing",
- back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks that are called to process player actions at specific points in time.
- -------------------------------------------------------------------------------------------------------------------
- function pretarget(spell,action)
- if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
- cancel_spell()
- send_command('input /item "Echo Drops" <me>')
- elseif spell.english == "Spirit Jump" and not pet.isvalid then -- Change Spirit Jump To Jump If Wyvern Is Not Present --
- cancel_spell()
- send_command('Jump')
- elseif spell.english == "Soul Jump" and not pet.isvalid then -- Change Soul Jump To High Jump If Wyvern Is Not Present --
- cancel_spell()
- send_command('HighJump')
- elseif spell.english == "Dismiss" and pet.hpp < 100 then -- Cancel Dismiss If Wyvern's HP Is Under 100% --
- cancel_spell()
- add_to_chat(123, spell.english .. ' Canceled: [' .. pet.hpp .. ']')
- return
- elseif spell.english == "Call Wyvern" and pet.isvalid then -- Change Call Wyvern To Dismiss If Wyvern Is Present --
- cancel_spell()
- send_command('Dismiss')
- elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
- cancel_spell()
- send_command('Aggressor')
- elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
- cancel_spell()
- send_command('ThirdEye')
- elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 290 --
- cancel_spell()
- add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
- elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- return
- end
- end
- function job_precast(spell, action, spellMap, eventArgs)
- if not (spell.english == 'Restoring Breath') then
- equip(sets[spell.english])
- add_to_chat(158,tostring(spell.english))
- end
- end
- function job_pet_midcast(spell, action)
- if string.find(spell.name,'Healing') then
- equip(sets['Restoring Breath'])
- add_to_chat(158, "pet mid restore equipped")
- end
- end
- function job_pet_aftercast(spell, action)
- if string.find(spell.english, 'Healing') then
- status_change(player.status)
- add_to_chat(158, "pet after status change equipped")
- end
- end
- function job_aftercast(spell,action)
- if not (spell.english == 'Restoring Breath') then
- status_change(player.status)
- 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)
- if state.DefenseMode == 'Reraise' or
- (state.Defense.Active and state.Defense.Type == 'Physical' and state.Defense.PhysicalMode == 'Reraise') then
- equip(sets.Reraise)
- end
- end
- function buff_change(buff,gain)
- buff = string.lower(buff)
- if buff == "aftermath: lv.3" then -- AM3 Timer --
- if gain then
- send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
- else
- send_command('timers delete "Aftermath: Lv.3"')
- add_to_chat(123,'AM3: [OFF]')
- end
- elseif buff == 'weakness' then -- Weakness Timer --
- if gain then
- send_command('timers create "Weakness" 300 up')
- else
- send_command('timers delete "Weakness"')
- end
- end
- if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP --
- equip({neck="Berserker's Torque"})
- else
- if not midaction() and not pet_midaction() then
- status_change(player.status)
- end
- 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.
- -------------------------------------------------------------------------------------------------------------------
- -- Modify the default idle set after it was constructed.
- function customize_idle_set(idleSet)
- return idleSet
- end
- -- Modify the default melee set after it was constructed.
- function customize_melee_set(meleeSet)
- return meleeSet
- end
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when the player's status changes.
- function job_status_change(newStatus, oldStatus, eventArgs)
- 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 buff:startswith('Aftermath') then
- state.Buff.Aftermath = gain
- adjust_melee_groups()
- handle_equipping_gear(player.status)
- end
- 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)
- adjust_engaged_sets()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function adjust_engaged_sets()
- state.CombatWeapon = player.equipment.main
- adjust_melee_groups()
- end
- function adjust_melee_groups()
- classes.CustomMeleeGroups:clear()
- if state.Buff.Aftermath then
- classes.CustomMeleeGroups:append('AM')
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement