Sigurd's Descendants: The Art Of Dragon Slaying. |
||
Sigurd's Descendants: The Art of Dragon Slaying.
Ragnarok.Martel
Offline
Did you try looking at the OP? It's stuffed full of sets, which are largely up to date. A few new items have come out since, but mostly minor upgrades if at all.
Hope next round of unity gives us something nice. Most others jobs are getting r/ex stuff. Maybe a unity jormy will drop an ilvl barone corazza with stp+10 and other lovely stats :/
Fenrir.Backpain
Offline
Hey, everyone. I'm having a bit of trouble with this lua code. It doesn't seem to want to switch gear sets when Healing Breath is triggered. Is this due to the ready time being reduced to 1 second, or is it my code? Any help at all is appreciated!
Code ------------------------------------------------------------------------------------------------------------------- -- 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() mote_include_version = 2 -- Load and initialize the include file. include('Mote-Include.lua') end -- Setup vars that are user-independent. function job_setup() get_combat_form() include('Mote-TreasureHunter') state.TreasureMode:set('Tag') state.CapacityMode = M(false, 'Capacity Point Mantle') -- list of weaponskills that make better use of otomi helm in low acc situations wsList = S{'Drakesbane'} state.Buff = {} -- JA IDs for actions that always have TH: Provoke, Animated Flourish info.default_ja_ids = S{35, 204} -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish info.default_u_ja_ids = S{201, 202, 203, 205, 207} end -- Setup vars that are user-dependent. Can override this function in a sidecar file. function user_setup() -- Options: Override default values state.OffenseMode:options('Normal', 'Mid', 'Acc') state.HybridMode:options('Normal', 'PDT', 'Reraise') state.WeaponskillMode:options('Normal', 'Mid', 'Acc') state.PhysicalDefenseMode:options('PDT', 'Reraise') state.MagicalDefenseMode:options('MDT') war_sj = player.sub_job == 'WAR' or false select_default_macro_book(1, 16) send_command('bind != gs c toggle CapacityMode') send_command('bind ^= gs c cycle treasuremode') send_command('bind ^[ input /lockstyle on') send_command('bind ![ input /lockstyle off') end -- Called when this job file is unloaded (eg: job change) function file_unload() send_command('unbind ^[') send_command('unbind ![') 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.Angon = {ammo="Angon",hands="Pteroslaver Finger Gauntlets"} sets.CapacityMantle = {back="Mecistopins Mantle"} sets.Berserker = {neck="Berserker's Torque"} sets.WSDayBonus = { head="Gavialis Helm" } sets.precast.JA.Jump = { ammo="Hagneia Stone", head="Otomi Helm",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring", body="Vishap Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Atheling Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Cizin Greaves"} sets.precast.JA['Ancient Circle'] = { legs="Vishap Brais" } sets.TreasureHunter = {waist="Chaac Belt"} sets.precast.JA['High Jump'] = set_combine(sets.precast.JA.Jump, { }) sets.precast.JA['Soul Jump'] = set_combine(sets.precast.JA.Jump, { legs="Lancer's Cuissots +2", body="Lancer's Plackart +2" }) sets.precast.JA['Spirit Jump'] = set_combine(sets.precast.JA.Jump, { legs="Lancer's Cuissots +2", body="Lancer's Plackart +2", feet="Lancer's Schynbalds +2"}) sets.precast.JA['Super Jump'] = sets.precast.JA.Jump sets.precast.JA['Spirit Link'] = {hands="Lancer's Vambraces +2", head="Vishap Armet +1"} sets.precast.JA['Call Wyvern'] = {body="Wyrm Mail"} sets.precast.JA['Deep Breathing'] = {head="Petroslaver Armet"} sets.precast.JA['Spirit Surge'] = { --body="Wyrm Mail +2" } -- Healing Breath sets sets.HB = {ammo="Hagneia Stone", head="Pteroslaver Armet",neck="Lancer's Torque",ear1="Lancer's Earring",ear2="Bladeborn Earring", body="Cizin Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Updraft Mantle",waist="Glassblower's Belt",legs="Vishap Brais",feet="Wyrm Greaves +2"} -- Waltz set (chr and vit) sets.precast.Waltz = { head="Yaoyotl Helm", body="Mikinaak Breastplate",hands="Cizin Mufflers +1",ring1="Rajas Ring", back="Bleating Mantle",legs="Xaddi Cuisses",feet="Whirlpool Greaves"} -- Don't need any special gear for Healing Waltz. sets.precast.Waltz['Healing Waltz'] = {} -- Fast cast sets for spells sets.precast.FC = { ammo="Impatiens", head="Cizin Helm +1", ear1="Loquacious Earring", hands="Buremte Gloves", ring1="Prolix Ring" } -- Midcast Sets sets.midcast.FastRecast = { head="Vishap Armet +1", neck="Lancer's Torque", hands="Cizin Mufflers +1", body="Xaddi Mail", ring1="Beeline Ring", ring2="K'ayres Ring", back="Updraft Mantle", waist="Glassblower's Belt", legs="Cizin Breeches +1", feet="Ejekamal Boots", } sets.midcast.Breath = set_combine(sets.midcast.FastRecast, { head="PteroslaverPteroslaver Armet" }) -- Weaponskill sets -- Default set for any weaponskill that isn't any more specifically defined sets.precast.WS = {} sets.precast.WS = { ammo="Potestas Bomblet", head="Otomi Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Flame Pearl", body="Vishap Mail",hands="Mikinaak Gauntlets",ring1="Rajas Ring",ring2="Pyrosoul Ring", back="Buquwik Cape",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Mikinaak Greaves"} sets.precast.WS.Acc = set_combine(sets.precast.WS, { back="Updraft Mantle", head="Yaoyotl Helm", legs="Xaddi Cuisses" }) -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found. sets.precast.WS['Stardiver'] = set_combine(sets.precast.WS, { neck="Light Gorget", back="Buquwik Cape", waist="Light Belt" }) sets.precast.WS['Stardiver'].Mid = set_combine(sets.precast.WS['Stardiver'], { head="Yaoyotl Helm", hands="Mikinaak Gauntlets", back="Updraft Mantle", }) sets.precast.WS['Stardiver'].Acc = set_combine(sets.precast.WS.Acc, {neck="Light Gorget",waist="Light Belt"}) sets.precast.WS["Camlann's Torment"] = set_combine(sets.precast.WS, { neck="Breeze Gorget", body="Phorcys Korazin", back="Buquwik Cape", waist="Metalsinger Belt", feet="Whirlpool Greaves" }) sets.precast.WS["Camlann's Torment"].Mid = set_combine(sets.precast.WS["Camlann's Torment"], { head="Yaoyotl Helm", ear1="Bladeborn Earring", ear2="Steelflash Earring", back="Updraft Mantle" }) sets.precast.WS["Camlann's Torment"].Acc = set_combine(sets.precast.WS["Camlann's Torment"].Mid, {}) sets.precast.WS['Drakesbane'] = set_combine(sets.precast.WS, { neck="Flame Gorget", hands="Mikinaak Gauntlets", back="Rancorous Mantle", waist="Windbuffet Belt +1" }) sets.precast.WS['Drakesbane'].Mid = set_combine(sets.precast.WS['Drakesbane'], { back="Updraft Mantle", head="Yaoyotl Helm" }) sets.precast.WS['Drakesbane'].Acc = set_combine(sets.precast.WS['Drakesbane'].Mid, {hands="Mikinaak Gauntlets"}) -- Sets to return to when not performing an action. -- Resting sets sets.resting = { head="Twilight Helm", neck="Twilight Torque", ear1="Bladeborn Earring", ear2="Steelflash Earring", body="Twilight Mail", hands="Cizin Mufflers +1", ring1="Dark Ring", ring2="Paguroidea Ring", back="Repulse Mantle", legs="Crimson Cuisses", feet="Whirlpool Greaves" } -- Idle sets sets.idle = {} -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes) sets.idle.Town = { ammo="Thew Bomblet", head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Atheling Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"} sets.idle.Field = set_combine(sets.idle.Town, { head="Twilight Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Atheling Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}) sets.idle.Regen = set_combine(sets.idle.Field, { head="Twilight Helm", body="Ares' Cuirass +1"}) sets.idle.Weak = set_combine(sets.idle.Field, { head="Twilight Helm", body="Twilight Mail", }) -- Defense sets sets.defense.PDT = { ammo="Ginsen", head="Ighwa Cap", neck="Twilight Torque", ear1="Bladeborn Earring", ear2="Steelflash Earring", body="Cizin Mail +1", hands="Cizin Mufflers +1", ring1="Patricius Ring", ring2="Dark Ring", back="Repulse Mantle", waist="Cetl Belt", legs="Cizin Breeches +1", feet="Cizin Greaves +1" } sets.defense.Reraise = set_combine(sets.defense.PDT, { head="Twilight Helm", body="Twilight Mail" }) sets.defense.MDT = sets.defense.PDT sets.Kiting = {legs="Crimson Cuisses"} 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 sets.engaged = { ammo="Hagneia Stone", head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Xaddi Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Atheling Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Mikinaak Greaves"} sets.engaged.Mid = set_combine(sets.engaged, { head="Yaoyotl Helm", ear1="Zennaroi Earring", ring2="Ramuh Ring +1" }) sets.engaged.Acc = set_combine(sets.engaged.Mid, { neck="Iqabi Necklace", hands="Buremte Gloves", waist="Olseni Belt", ring1="Mars's Ring", back="Updraft Mantle" }) sets.engaged.PDT = set_combine(sets.engaged, { head="Ighwa Cap", neck="Twilight Torque", body="Cizin Mail +1", ring2="Patricius Ring", hands="Cizin Mufflers +1", back="Repulse Mantle", legs="Cizin Breeches +1", feet="Cizin Greaves +1" }) sets.engaged.Mid.PDT = set_combine(sets.engaged.Mid, { head="Ighwa Cap", ring2="Patricius Ring", body="Cizin Mail +1", hands="Cizin Mufflers +1", back="Repulse Mantle", legs="Cizin Breeches +1", }) sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, { head="Ighwa Cap", ring2="Patricius Ring", body="Cizin Mail +1", hands="Cizin Mufflers +1", back="Repulse Mantle", legs="Cizin Breeches +1", }) sets.engaged.War = set_combine(sets.engaged, { --head="Yaoyotl Helm", feet="Mikinaak Greaves", ring2="K'ayres Ring" }) sets.engaged.War.Mid = sets.engaged.Mid sets.engaged.Reraise = set_combine(sets.engaged, { head="Twilight Helm", body="Twilight Mail" }) sets.engaged.Acc.Reraise = sets.engaged.Reraise 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.english == "Spirit Jump" then if not pet.isvalid then cancel_spell() send_command('Jump') end elseif spell.english == "Soul Jump" then if not pet.isvalid then cancel_spell() send_command("High Jump") end end end -- 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) 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 player.hpp < 51 then classes.CustomClass = "Breath" 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) if player.hpp < 51 then classes.CustomClass = "Breath" 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) end function job_pet_precast(spell, action, spellMap, eventArgs) end -- Runs when a pet initiates an action. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. function job_pet_midcast(spell, action, spellMap, eventArgs) if spell.english:startswith('Healing Breath') or spell.english == 'Restoring Breath' or spell.english == 'Steady Wing' or spell.english == 'Smiting Breath' then equip(sets.HB) end end -- Run after the default pet midcast() is done. -- eventArgs is the same one used in job_pet_midcast, in case information needs to be persisted. function job_pet_post_midcast(spell, action, spellMap, eventArgs) 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 state.HybridMode.value == 'Reraise' or (state.HybridMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then equip(sets.Reraise) end end -- Run after the default aftercast() is done. -- eventArgs is the same one used in job_aftercast, in case information needs to be persisted. function job_post_aftercast(spell, action, spellMap, eventArgs) end -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. function job_pet_aftercast(spell, action, spellMap, eventArgs) end -- Run after the default pet aftercast() is done. -- eventArgs is the same one used in job_pet_aftercast, in case information needs to be persisted. function job_pet_post_aftercast(spell, action, spellMap, eventArgs) end ------------------------------------------------------------------------------------------------------------------- -- Customization hooks for idle and melee sets, after they've been automatically constructed. ------------------------------------------------------------------------------------------------------------------- -- Called before the Include starts constructing melee/idle/resting sets. -- Can customize state or custom melee class values at this point. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. function job_handle_equipping_gear(status, eventArgs) end -- Return a customized weaponskill mode to use for weaponskill sets. -- Don't return anything if you're not overriding the default value. function get_custom_wsmode(spell, action, spellMap) end -- Modify the default idle set after it was constructed. function customize_idle_set(idleSet) if player.hpp < 90 then idleSet = set_combine(idleSet, sets.idle.Regen) end return idleSet end -- Modify the default melee set after it was constructed. function customize_melee_set(meleeSet) if state.TreasureMode.value == 'Fulltime' then meleeSet = set_combine(meleeSet, sets.TreasureHunter) end if state.CapacityMode.value then meleeSet = set_combine(meleeSet, sets.CapacityMantle) end 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 the player's pet's status changes. function job_pet_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 string.lower(buff) == "sleep" and gain and player.hp > 200 then equip(sets.Berserker) else if not midaction() then handle_equipping_gear(player.status) end end end function job_update(cmdParams, eventArgs) war_sj = player.sub_job == 'WAR' or false classes.CustomMeleeGroups:clear() th_update(cmdParams, eventArgs) get_combat_form() end ------------------------------------------------------------------------------------------------------------------- -- User code that supplements self-commands. ------------------------------------------------------------------------------------------------------------------- -- Called for custom player commands. function job_self_command(cmdParams, eventArgs) end function get_combat_form() --if areas.Adoulin:contains(world.area) and buffactive.ionis then -- state.CombatForm:set('Adoulin') --end if war_sj then state.CombatForm:set("War") else state.CombatForm:reset() end end -- Job-specific toggles. function job_toggle(field) end -- Handle auto-targetting based on local setup. function job_auto_change_target(spell, action, spellMap, eventArgs) 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. ------------------------------------------------------------------------------------------------------------------- -- State buff checks that will equip buff gear and mark the event as handled. function check_buff(buff_name, eventArgs) if state.Buff[buff_name] then equip(sets.buff[buff_name] or {}) if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then equip(sets.TreasureHunter) end eventArgs.handled = true end end -- Check for various actions that we've specified in user code as being used with TH gear. -- This will only ever be called if TreasureMode is not 'None'. -- Category and Param are as specified in the action event packet. function th_action_check(category, param) if category == 2 or -- any ranged attack --category == 4 or -- any magic action (category == 3 and param == 30) or -- Aeolian Edge (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish then return true 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, 10) elseif player.sub_job == 'WHM' then set_macro_page(1, 10) else set_macro_page(1, 10) end end Asura.Highwynn said: » Hope next round of unity gives us something nice. Most others jobs are getting r/ex stuff. Maybe a unity jormy will drop an ilvl barone corazza with stp+10 and other lovely stats :/ DRGs next big upgrade to gear will come with ilvl 119 empy armour which should give us 3 possibly 4 tp pieces and 2 WS pieces depending on what stats stay and what they add. All they really need to add to empy armour is the stat vomit, def, haste and eva/meva. Fenrir.Backpain
Offline
Quote: Hey, everyone. I'm having a bit of trouble with this lua code. It doesn't seem to want to switch gear sets when Healing Breath is triggered. Is this due to the ready time being reduced to 1 second, or is it my code? Any help at all is appreciated! Code ------------------------------------------------------------------------------------------------------------------- -- 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() mote_include_version = 2 -- Load and initialize the include file. include('Mote-Include.lua') end -- Setup vars that are user-independent. function job_setup() get_combat_form() include('Mote-TreasureHunter') state.TreasureMode:set('Tag') state.CapacityMode = M(false, 'Capacity Point Mantle') -- list of weaponskills that make better use of otomi helm in low acc situations wsList = S{'Drakesbane'} state.Buff = {} -- JA IDs for actions that always have TH: Provoke, Animated Flourish info.default_ja_ids = S{35, 204} -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish info.default_u_ja_ids = S{201, 202, 203, 205, 207} end -- Setup vars that are user-dependent. Can override this function in a sidecar file. function user_setup() -- Options: Override default values state.OffenseMode:options('Normal', 'Mid', 'Acc') state.HybridMode:options('Normal', 'PDT', 'Reraise') state.WeaponskillMode:options('Normal', 'Mid', 'Acc') state.PhysicalDefenseMode:options('PDT', 'Reraise') state.MagicalDefenseMode:options('MDT') war_sj = player.sub_job == 'WAR' or false select_default_macro_book(1, 16) send_command('bind != gs c toggle CapacityMode') send_command('bind ^= gs c cycle treasuremode') send_command('bind ^[ input /lockstyle on') send_command('bind ![ input /lockstyle off') end -- Called when this job file is unloaded (eg: job change) function file_unload() send_command('unbind ^[') send_command('unbind ![') 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.Angon = {ammo="Angon",hands="Pteroslaver Finger Gauntlets"} sets.CapacityMantle = {back="Mecistopins Mantle"} sets.Berserker = {neck="Berserker's Torque"} sets.WSDayBonus = { head="Gavialis Helm" } sets.precast.JA.Jump = { ammo="Hagneia Stone", head="Otomi Helm",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring", body="Vishap Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Atheling Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Cizin Greaves"} sets.precast.JA['Ancient Circle'] = { legs="Vishap Brais" } sets.TreasureHunter = {waist="Chaac Belt"} sets.precast.JA['High Jump'] = set_combine(sets.precast.JA.Jump, { }) sets.precast.JA['Soul Jump'] = set_combine(sets.precast.JA.Jump, { legs="Lancer's Cuissots +2", body="Lancer's Plackart +2" }) sets.precast.JA['Spirit Jump'] = set_combine(sets.precast.JA.Jump, { legs="Lancer's Cuissots +2", body="Lancer's Plackart +2", feet="Lancer's Schynbalds +2"}) sets.precast.JA['Super Jump'] = sets.precast.JA.Jump sets.precast.JA['Spirit Link'] = {hands="Lancer's Vambraces +2", head="Vishap Armet +1"} sets.precast.JA['Call Wyvern'] = {body="Wyrm Mail"} sets.precast.JA['Deep Breathing'] = {head="Petroslaver Armet"} sets.precast.JA['Spirit Surge'] = { --body="Wyrm Mail +2" } -- Healing Breath sets sets.HB = {ammo="Hagneia Stone", head="Pteroslaver Armet",neck="Lancer's Torque",ear1="Lancer's Earring",ear2="Bladeborn Earring", body="Cizin Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Updraft Mantle",waist="Glassblower's Belt",legs="Vishap Brais",feet="Wyrm Greaves +2"} -- Waltz set (chr and vit) sets.precast.Waltz = { head="Yaoyotl Helm", body="Mikinaak Breastplate",hands="Cizin Mufflers +1",ring1="Rajas Ring", back="Bleating Mantle",legs="Xaddi Cuisses",feet="Whirlpool Greaves"} -- Don't need any special gear for Healing Waltz. sets.precast.Waltz['Healing Waltz'] = {} -- Fast cast sets for spells sets.precast.FC = { ammo="Impatiens", head="Cizin Helm +1", ear1="Loquacious Earring", hands="Buremte Gloves", ring1="Prolix Ring" } -- Midcast Sets sets.midcast.FastRecast = { head="Vishap Armet +1", neck="Lancer's Torque", hands="Cizin Mufflers +1", body="Xaddi Mail", ring1="Beeline Ring", ring2="K'ayres Ring", back="Updraft Mantle", waist="Glassblower's Belt", legs="Cizin Breeches +1", feet="Ejekamal Boots", } sets.midcast.Breath = set_combine(sets.midcast.FastRecast, { head="PteroslaverPteroslaver Armet" }) -- Weaponskill sets -- Default set for any weaponskill that isn't any more specifically defined sets.precast.WS = {} sets.precast.WS = { ammo="Potestas Bomblet", head="Otomi Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Flame Pearl", body="Vishap Mail",hands="Mikinaak Gauntlets",ring1="Rajas Ring",ring2="Pyrosoul Ring", back="Buquwik Cape",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Mikinaak Greaves"} sets.precast.WS.Acc = set_combine(sets.precast.WS, { back="Updraft Mantle", head="Yaoyotl Helm", legs="Xaddi Cuisses" }) -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found. sets.precast.WS['Stardiver'] = set_combine(sets.precast.WS, { neck="Light Gorget", back="Buquwik Cape", waist="Light Belt" }) sets.precast.WS['Stardiver'].Mid = set_combine(sets.precast.WS['Stardiver'], { head="Yaoyotl Helm", hands="Mikinaak Gauntlets", back="Updraft Mantle", }) sets.precast.WS['Stardiver'].Acc = set_combine(sets.precast.WS.Acc, {neck="Light Gorget",waist="Light Belt"}) sets.precast.WS["Camlann's Torment"] = set_combine(sets.precast.WS, { neck="Breeze Gorget", body="Phorcys Korazin", back="Buquwik Cape", waist="Metalsinger Belt", feet="Whirlpool Greaves" }) sets.precast.WS["Camlann's Torment"].Mid = set_combine(sets.precast.WS["Camlann's Torment"], { head="Yaoyotl Helm", ear1="Bladeborn Earring", ear2="Steelflash Earring", back="Updraft Mantle" }) sets.precast.WS["Camlann's Torment"].Acc = set_combine(sets.precast.WS["Camlann's Torment"].Mid, {}) sets.precast.WS['Drakesbane'] = set_combine(sets.precast.WS, { neck="Flame Gorget", hands="Mikinaak Gauntlets", back="Rancorous Mantle", waist="Windbuffet Belt +1" }) sets.precast.WS['Drakesbane'].Mid = set_combine(sets.precast.WS['Drakesbane'], { back="Updraft Mantle", head="Yaoyotl Helm" }) sets.precast.WS['Drakesbane'].Acc = set_combine(sets.precast.WS['Drakesbane'].Mid, {hands="Mikinaak Gauntlets"}) -- Sets to return to when not performing an action. -- Resting sets sets.resting = { head="Twilight Helm", neck="Twilight Torque", ear1="Bladeborn Earring", ear2="Steelflash Earring", body="Twilight Mail", hands="Cizin Mufflers +1", ring1="Dark Ring", ring2="Paguroidea Ring", back="Repulse Mantle", legs="Crimson Cuisses", feet="Whirlpool Greaves" } -- Idle sets sets.idle = {} -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes) sets.idle.Town = { ammo="Thew Bomblet", head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Atheling Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"} sets.idle.Field = set_combine(sets.idle.Town, { head="Twilight Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring", back="Atheling Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}) sets.idle.Regen = set_combine(sets.idle.Field, { head="Twilight Helm", body="Ares' Cuirass +1"}) sets.idle.Weak = set_combine(sets.idle.Field, { head="Twilight Helm", body="Twilight Mail", }) -- Defense sets sets.defense.PDT = { ammo="Ginsen", head="Ighwa Cap", neck="Twilight Torque", ear1="Bladeborn Earring", ear2="Steelflash Earring", body="Cizin Mail +1", hands="Cizin Mufflers +1", ring1="Patricius Ring", ring2="Dark Ring", back="Repulse Mantle", waist="Cetl Belt", legs="Cizin Breeches +1", feet="Cizin Greaves +1" } sets.defense.Reraise = set_combine(sets.defense.PDT, { head="Twilight Helm", body="Twilight Mail" }) sets.defense.MDT = sets.defense.PDT sets.Kiting = {legs="Crimson Cuisses"} 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 sets.engaged = { ammo="Hagneia Stone", head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring", body="Xaddi Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring", back="Atheling Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Mikinaak Greaves"} sets.engaged.Mid = set_combine(sets.engaged, { head="Yaoyotl Helm", ear1="Zennaroi Earring", ring2="Ramuh Ring +1" }) sets.engaged.Acc = set_combine(sets.engaged.Mid, { neck="Iqabi Necklace", hands="Buremte Gloves", waist="Olseni Belt", ring1="Mars's Ring", back="Updraft Mantle" }) sets.engaged.PDT = set_combine(sets.engaged, { head="Ighwa Cap", neck="Twilight Torque", body="Cizin Mail +1", ring2="Patricius Ring", hands="Cizin Mufflers +1", back="Repulse Mantle", legs="Cizin Breeches +1", feet="Cizin Greaves +1" }) sets.engaged.Mid.PDT = set_combine(sets.engaged.Mid, { head="Ighwa Cap", ring2="Patricius Ring", body="Cizin Mail +1", hands="Cizin Mufflers +1", back="Repulse Mantle", legs="Cizin Breeches +1", }) sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, { head="Ighwa Cap", ring2="Patricius Ring", body="Cizin Mail +1", hands="Cizin Mufflers +1", back="Repulse Mantle", legs="Cizin Breeches +1", }) sets.engaged.War = set_combine(sets.engaged, { --head="Yaoyotl Helm", feet="Mikinaak Greaves", ring2="K'ayres Ring" }) sets.engaged.War.Mid = sets.engaged.Mid sets.engaged.Reraise = set_combine(sets.engaged, { head="Twilight Helm", body="Twilight Mail" }) sets.engaged.Acc.Reraise = sets.engaged.Reraise 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.english == "Spirit Jump" then if not pet.isvalid then cancel_spell() send_command('Jump') end elseif spell.english == "Soul Jump" then if not pet.isvalid then cancel_spell() send_command("High Jump") end end end -- 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) 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 player.hpp < 51 then classes.CustomClass = "Breath" 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) if player.hpp < 51 then classes.CustomClass = "Breath" 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) end function job_pet_precast(spell, action, spellMap, eventArgs) end -- Runs when a pet initiates an action. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. function job_pet_midcast(spell, action, spellMap, eventArgs) if spell.english:startswith('Healing Breath') or spell.english == 'Restoring Breath' or spell.english == 'Steady Wing' or spell.english == 'Smiting Breath' then equip(sets.HB) end end -- Run after the default pet midcast() is done. -- eventArgs is the same one used in job_pet_midcast, in case information needs to be persisted. function job_pet_post_midcast(spell, action, spellMap, eventArgs) 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 state.HybridMode.value == 'Reraise' or (state.HybridMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then equip(sets.Reraise) end end -- Run after the default aftercast() is done. -- eventArgs is the same one used in job_aftercast, in case information needs to be persisted. function job_post_aftercast(spell, action, spellMap, eventArgs) end -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. function job_pet_aftercast(spell, action, spellMap, eventArgs) end -- Run after the default pet aftercast() is done. -- eventArgs is the same one used in job_pet_aftercast, in case information needs to be persisted. function job_pet_post_aftercast(spell, action, spellMap, eventArgs) end ------------------------------------------------------------------------------------------------------------------- -- Customization hooks for idle and melee sets, after they've been automatically constructed. ------------------------------------------------------------------------------------------------------------------- -- Called before the Include starts constructing melee/idle/resting sets. -- Can customize state or custom melee class values at this point. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done. function job_handle_equipping_gear(status, eventArgs) end -- Return a customized weaponskill mode to use for weaponskill sets. -- Don't return anything if you're not overriding the default value. function get_custom_wsmode(spell, action, spellMap) end -- Modify the default idle set after it was constructed. function customize_idle_set(idleSet) if player.hpp < 90 then idleSet = set_combine(idleSet, sets.idle.Regen) end return idleSet end -- Modify the default melee set after it was constructed. function customize_melee_set(meleeSet) if state.TreasureMode.value == 'Fulltime' then meleeSet = set_combine(meleeSet, sets.TreasureHunter) end if state.CapacityMode.value then meleeSet = set_combine(meleeSet, sets.CapacityMantle) end 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 the player's pet's status changes. function job_pet_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 string.lower(buff) == "sleep" and gain and player.hp > 200 then equip(sets.Berserker) else if not midaction() then handle_equipping_gear(player.status) end end end function job_update(cmdParams, eventArgs) war_sj = player.sub_job == 'WAR' or false classes.CustomMeleeGroups:clear() th_update(cmdParams, eventArgs) get_combat_form() end ------------------------------------------------------------------------------------------------------------------- -- User code that supplements self-commands. ------------------------------------------------------------------------------------------------------------------- -- Called for custom player commands. function job_self_command(cmdParams, eventArgs) end function get_combat_form() --if areas.Adoulin:contains(world.area) and buffactive.ionis then -- state.CombatForm:set('Adoulin') --end if war_sj then state.CombatForm:set("War") else state.CombatForm:reset() end end -- Job-specific toggles. function job_toggle(field) end -- Handle auto-targetting based on local setup. function job_auto_change_target(spell, action, spellMap, eventArgs) 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. ------------------------------------------------------------------------------------------------------------------- -- State buff checks that will equip buff gear and mark the event as handled. function check_buff(buff_name, eventArgs) if state.Buff[buff_name] then equip(sets.buff[buff_name] or {}) if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then equip(sets.TreasureHunter) end eventArgs.handled = true end end -- Check for various actions that we've specified in user code as being used with TH gear. -- This will only ever be called if TreasureMode is not 'None'. -- Category and Param are as specified in the action event packet. function th_action_check(category, param) if category == 2 or -- any ranged attack --category == 4 or -- any magic action (category == 3 and param == 30) or -- Aeolian Edge (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish then return true 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, 10) elseif player.sub_job == 'WHM' then set_macro_page(1, 10) else set_macro_page(1, 10) end end Body will be best for tp and likely ws. Given that plackart had more str dex acc att at 89 than wyrm+2 did at 99, its likely to be better. Mikinaak boots and cizin gauntlets will be hard to beat in terms of stp and otomi's 10haste and 3DA are also hard to beat. Legs, unless they get DA likely wont beat cosciales/cizin+1 for anything but drakesbane. Hands could be a decent tp piece however if you can make up the stp elsewhere. Likely that the hands will have high acc given that at 89 it had 10.
the head slot competition with both Yaoyotl and Otomi would depend on where the stats ended up falling, as Yaoyotl is currently still the king headpiece for Accuracy on Dragoon last I checked. if the addition of enough Accuracy/Polearm skill unseated Yaoyotl, it would at least be an attractive TP piece.
if we assume that Plackart maintains its Store TP (which SE HATES to put on any gear that isn't equippable by SAM right now, so that is actually a gamble) you won't need the sTP from Mikinaak or Cizin. you'll instead focus on stacking as much accuracy/attack in those slots depending on your weapon of choice and current target. if the sTP is dropped, depending on stats, we'll likely still be running around in Xaddi Mail for most TP sets, and it might replace other options for WS. maybe. a Ryunohige DRG will have less use for Lancer's Vambraces upgrade thanks to Aftermath. (though they would likely be amazing in an AM down set.) for those still using an Upukirex, they would likely be a BiS piece, potentially in both TP and WS sets. meanwhile equivalent (or dare I dream more) crit damage augmentation from Cuissots would be welcome for anyone using Drakesbane/force crit jumps. addition of stat vomit alone and keeping additional effects constant would make them a phenomenal WS/macro piece. depending on how Plackart ended up looking, this would almost assuredly be either the first or second piece worth upgrading. if the sTP from the feet slot is indeed unnecessary thanks to Plackart keeping any sTP, options like Ejekemal for an extra point or two of Triple Attack may still be feasible depending on your other slots. otherwise Lancers would likely fit in here quite nicely thanks to its original concentration of stats with just the addition of stat vomit. replacing Xaddi Boots as an Accuracy piece would be sufficient to me. Stp for yoaytl is still relevant for ryuno for am up, otomi for am down due to the 10% haste and 3DA(the extra bit of haste lets you use windbuffet+1 with AM down and keep 25-26% haste, cuz gonna assume af3 head will have 7-8%)
I can see lancer mezail getting like attack+30 polearm skill+12 haste +8% but if it doesnt have any stp or da, it'll likely not surpass either. High attack in tp sets is meh and i doubt they'll add more than 12 skill and yoaytl has like 25 acc. I can see it being a decent piece for newer drgs as a mishmosh of att/acc but it'll likely just be similer to yaoytl without the stp. Pieces that naturally had +stats before ilvl get a bigger ilvl boost for those stats, so head likely wont be a good ws piece in terms of str/dex. Hands may be good since they have str/dex already, potentially in the 10-16ish range, the 10acc and 3+ da might make it better than mikinaak. Vambraces are currently +4 Double Attack at +2. if they add no STR but put the DEX in line with other current options (8-9 STR and 25+ DEX tends to be the current norm for hands) as well as a potential boost to the 10 accuracy currently baked in, that saves you potential millions on Skirmish augments to get +2 DA Cizin augments.
Ragnarok.Martel
Offline
Thing is, Cizin hands have 5 STP. For AM3 down, even if you add 2% more DA, if you drop 5 STP, DPS drops. I mean, not much. I'm talking like, 2 dps here. But it still wouldn't be an improvement. Would be even worse AM3 up.
Really, I just want massive STP on every piece. Do it SE! <,<; if you're getting 10 sTP from a new Plackart (because using plackart in current sets is a massive hit to DPS as well in AM down), you can take that hit from not using Cizin.
Ragnarok.Martel
Offline
I added some potential 119 lancer to the spreadsheet, for a more detailed look. Made the hands a cizin+1 clone, but with 4% DA, no stp and no atk. Body is basically vishap+1 with +10 stp.
Adding these to a non-am3 TP set... the 119lancer hands are still a dps loss compared to DA+2 aug'd Cizin+1. Again, small gap. 4 dps or so. But min/maxing is all about these little differences. the benefit would of course be that you do not need to play Augment roulette. seriously, screw the Skirmish augments system, I hate it so fricking much.
Would love stp on every piece like how thf got crit dmg on most pieces. Also lancer plackart is not a dps hit, the thing is basically a 115 body in terms of att acc str dex and stp without the hp def agi mnd int chr eva.
Offline
Acro set. How does it fit in with our current builds? Looking forward to seeing augments as people work on their sets. Please share.
Too early to say yet, need to see what augments are out. Might be good WS pieces due to STR/DA, but as for TP so far I haven't seen any reports of sTP yet, though most augmented pieces people report on forums is the light armor set.
Valefor.Ophannus said: » Too early to say yet, need to see what augments are out. Might be good WS pieces due to STR/DA, but as for TP so far I haven't seen any reports of sTP yet, though most augmented pieces people report on forums is the light armor set. Head/Hands/Legs have 3/4/4 Store TP prior to augmentation. depending on what augments you get, they may be feasible swaps, though like you said most folks are posting light armor. (I would imagine, in part, because the easiest way to win involves taking a party of mages and nuking the elementals for points, then sending the NPCs around to do the dirty work) Something like this absolutely is BiS for TP.
Acro Breeches are def better than Xaddi legs. someone just posted Acro Breeches with sTP +5, Accuracy +23, and WSD +2%. 9 sTP on an item that isn't SAM exclusive. it's about damned time, SE.
Offline
Posts: 936
fillerbunny9 said: » someone just posted Acro Breeches with sTP +5, Accuracy +23, and WSD +2%. 9 sTP on an item that isn't SAM exclusive. it's about damned time, SE. and still get laughed at by the sam 4hit build. I noticed that the Taeon set has both DRG and potential crit damage augments (I've seen up to +3 so far, and I got +2 off an NQ duskslit), along with some pretty nice attack values. I was wondering if these might fit well into Drakesbane sets, and/or how high the crit damage augs would have to be for them to be useful for that purpose. Head also has native 2% crit chance so that helps too, I'd imagine... Otomi's really good though, so perhaps not.
Drakesbane is pathetic. I lament every time I use it to trigger AM3. I'm lucky if it ever breaks 3000 on actual content. I don't even want to bother augmenting crit damage for it.
Ragnarok.Martel
Offline
Valefor.Ophannus said: » Drakesbane is pathetic. I lament every time I use it to trigger AM3. I'm lucky if it ever breaks 3000 on actual content. I don't even want to bother augmenting crit damage for it. Something along the lines of:
Ryuno Bloodrain Floestone Yaoyotl/Gavialis Fotia Moonshade/Brutal Pteroslaver Mail+1 Mikinaak r15 Ifrit+1/Karieyh Rancorous Mantle Prosilio+1 Scuffler's Cosciales Whirlpool Greaves Sorry, my work computer is logged into Oph and my cell is logged into Highwynd Maybe make slight changes here or there like my 5str wsd5 updraft i got yesterday. Hell even on fodder when doing job points, stardiver will do 6-10k but drakesbane ranges from 2800-6.5k. But most often in the mid 3k's. I also tried huginn gambs but their lack of ilvl stats made it seem not worthwhile. Pretty awful for me even at 3000TP. Kinda why i feel like mythic's 30% only affects the firet hit, because my drakesbanes are often pretty pathetic, i've seen some 1800's in Incursion. Ragnarok.Martel
Offline
A really quick tossed together spreadsheet comparison had avg stardiver at 4k, avg 3k Drakes, 3.6k, with 0 Ryu wsdmg(turned it off manually) It's really not that bad. Unless you think they ninja nerfed drakes so the spreadsheet is off?
anyway, you have to use drake, so may as well make it hit as hard as possible. I'm not saying get specialized augs for it, but you can make some simple changes for the better. The below is all regarding 3000 TP drakes. A caveat, most of the following suggestions go right out the window if you need acc. Keep that in mind. Helm, str aug'd Otomi. Don't use gavialis for drakes. not worth it. Since we're talking 3k TP, I assume you have a alternative earring to use instead of moonshade? Kariyeh Ring? Why on a multihit ws? The thing is terrible for them even rajas would beat it. Use a second Ifrit+1. Updraft, don't. Not even if it has 5 str and 5 WS dmg. nope. Also, rancorous should be the very LAST thing you change out when you need acc. Belt, change to Windbuffet +1 or Metalsinger. Legs, back to ye olde lancer+2. Yep. At 3k TP you crit enough that they'll win over everything else. Feet. Since you mentioned you had it already... Still Huginn. Seriously, it's like 200~ avg dmg gain over Whirlpool. I'm pretty sure I've said this before, But... If you think we are misunderstanding mythic wsdmg mechanics, then go test it in controlled conditions. Until then, the current knowledge stands. I'll apply those changes, i derped on moonshade. I'll followup with some screenshots.
Was told that Karieyh was on par with ifrits+1 even for multi hit, but O_o
Ragnarok.Martel
Offline
Asura.Highwynn said: » I'll apply those changes, i derped on moonshade. I'll followup with some screenshots. Asura.Highwynn said: » Was told that Karieyh was on par with ifrits+1 even for multi hit, but O_o Anyway, I dunno what ws they were looking at, but I'd only use Kariyeh for Camlann's/single hit ws on DRG. I had gavialis coming ahead on the right days
|
||
All FFXI content and images © 2002-2024 SQUARE ENIX CO., LTD. FINAL
FANTASY is a registered trademark of Square Enix Co., Ltd.
|