IiPunch - Monk Guide

Language: JP EN DE FR
2010-09-08
New Items
users online
Forum » FFXI » Jobs » Monk » iiPunch - Monk Guide
iiPunch - Monk Guide
First Page 2 3 ... 110 111 112 ... 365 366 367
Offline
Posts: 8973
By Afania 2016-09-05 18:10:53
Link | Quote | Reply
 
Leviathan.Stamos said: »
I agree that you should play what you want. But, I disagree about the gear thing. The majority of the best gear for MNK will be the best gear for other light armor DDs, such as BLU, minus a few job specific pieces.


This....I just don't see how the statement of "nobody gears mnk seriously" can be true when multiple players here owns MNK REMA and elite DD gears. If MNK is that good everyone would be playing it already.

Guess Verda's vision of having elite MNK = must play that job 24-7 and make 100 forum posts about it. Otherwise it's not legit to claim MNK being behind on parse.
 Phoenix.Capuchin
Offline
Server: Phoenix
Game: FFXI
user: Anza
Posts: 3592
By Phoenix.Capuchin 2016-09-05 19:10:08
Link | Quote | Reply
 
Asura.Azagarth said: »
Also I am under the impression RF > VS with godhands yes?

I have seen a few people claim this, and I would just caution that WS damage alone is not everything. RF has pretty lousy SC attributes (Impaction), whereas VS has Light/Fragmentation - typically a lot more useful. Even if RF provides more raw damage to the MNK itself, in the context of the entire party it seems more likely that VS is the overall better choice due to better SC with other players. Either simple 2-step Light and any resulting MB damage, or even for flexibility in multi-step SC.

YMMV based on your party composition and whether you can put together a good SC using RF (and whether you even believe MNK is worth using in the first place due to the job's current struggles), but something to keep in mind.
 Sylph.Braden
Offline
Server: Sylph
Game: FFXI
Posts: 397
By Sylph.Braden 2016-09-05 19:32:13
Link | Quote | Reply
 
Afania said: »
Leviathan.Stamos said: »
I agree that you should play what you want. But, I disagree about the gear thing. The majority of the best gear for MNK will be the best gear for other light armor DDs, such as BLU, minus a few job specific pieces.

This....I just don't see how the statement of "nobody gears mnk seriously" can be true when multiple players here owns MNK REMA and elite DD gears. If MNK is that good everyone would be playing it already.

don't feel like writing a MNK.lua, job collects dust
 Bahamut.Tychefm
Offline
Server: Bahamut
Game: FFXI
user: Lyramion
Posts: 902
By Bahamut.Tychefm 2016-09-10 17:22:03
Link | Quote | Reply
 
Quote:
don't feel like writing a MNK.lua, job collects dust

I guess noone else has a semi upto date mnk.lua ? Motes still has Footwork as it's own combat mode and it's giving me a headache.
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2016-09-10 17:29:29
Link | Quote | Reply
 
Bahamut.Tychefm said: »
Quote:
don't feel like writing a MNK.lua, job collects dust

I guess noone else has a semi upto date mnk.lua ? Motes still has Footwork as it's own combat mode and it's giving me a headache.
I have mine with really out of date gear.
 Asura.Azagarth
Offline
Server: Asura
Game: FFXI
user: Azagarth
Posts: 1326
By Asura.Azagarth 2016-09-10 18:28:08
Link | Quote | Reply
 
post plz ;D
Offline
By Draylo 2016-09-10 18:35:47
Link | Quote | Reply
 
Well he is kinda right in some respects. Most people are too busy crying about BLU because it became a bandwagon (sadly, even though GEO/SCH/BLM going under the radar as far as complaints considering how OP they are.) Most jobs have been neglected even though they have a lot of potential. DNC is one of the biggest ones I see nobody ever talk about. I'm not saying MNK has the potential to be a top tier DD, it is in the worst position atm, but I do see a lot of other jobs that have really great potential (DRK, WAR, etc.) that aren't even discussed here because of the current bandwagon.

As far as MNK GS goes, the job itself isn't very complicated. You could just get another job of motes GS and edit it into a MNK one.
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2016-09-10 19:03:11
Link | Quote | Reply
 
Code
-------------------------------------------------------------------------------------------------------------------
-- 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()

end


-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------

-- Setup vars that are user-dependent.  Can override this function in a sidecar file.
function user_setup()
	state.OffenseMode:options('Normal')
	state.RangedMode:options('Normal')
	state.HybridMode:options('Normal', 'Evasion')
	state.WeaponskillMode:options('Normal')
	state.CastingMode:options('Normal')
	state.IdleMode:options('Normal')
	state.RestingMode:options('Normal')
	state.PhysicalDefenseMode:options('Evasion', 'PDT')
	state.MagicalDefenseMode:options('MDT')

	include('organizer-lib')
end


-- Called when this job file is unloaded (eg: job change)
function user_unload()

end

function init_gear_sets()
	
	--------------------------------------
	-- Precast sets
	--------------------------------------
	
	sets.precast.JA['Boost'] = {hands="Tpl. Gloves +1"}
	
	sets.precast.JA['Dodge'] = {feet="Tpl. Gaiters +1"}
	
	sets.precast.JA['Focus'] = {head="Tpl. Crown +1"}
	
	sets.precast.JA['Chakra'] = {ammo="Bibiki Seashell",
		head="Genbu's Kabuto",neck="Fortitude Torque",ear1="Cassie Earring",ear2="Waetoto's Earring",
		body="Tpl. Cyclas +1",hands="Mel. Gloves +1",ring1="Corneus Ring",ring2="Soil Ring",
		back="Melee Cape",waist="Warwolf Belt",legs="Kensei Sitabaki",feet="Creek F Clomps"}
		
	sets.precast.JA['Chi Blast'] = {ammo="Jasper Tathlum",
		head="Tpl. Crown +1",neck="Faith Torque",ear1="Celestial Earring",ear2="Celestial Earring",
		body="Kirin's Osode",hands="Denali Wristbands",ring1="Karka Ring",ring2="Aqua Ring",
		back="Melee Cape",waist="Pythia Sash +1",legs="Tpl. Hose +1",feet="Suzaku's Sune-Ate"}
		
	sets.precast.JA['Counterstance'] = {feet="Mel. Gaiters +1"}
	
	sets.precast.FC = {ear1="Loquac. Earring"}

	sets.precast.WS = {ammo="Black Tathlum",
		head="Gnadbhod's Helm",neck=gear.ElementalGorget,ear1="Brutal Earring",ear2="Aesir Ear Pendant",
		body="Usukane Haramaki",hands="Alkyoneus's Brc.",ring1="Strigoi Ring",ring2="Rajas Ring",
		back="Cerb. Mantle +1",waist="Warwolf Belt",legs="Usukane Hizayoroi",feet="Creek F Clomps"}
	
	sets.precast.WS['Asuran Fists'] = set_combine(sets.precast.WS, {
		neck="Faith Torque",ear1="Merman's Earring",
		hands="Bandomusha Kote",})

	
	--------------------------------------
	-- Midcast sets
	--------------------------------------

    sets.midcast.FastRecast = {ammo="Black Tathlum",
		head="Usukane Somen",neck="Evasion Torque",ear1="Loquac. Earring",ear2="Ethereal Earring",
		body="Usukane Haramaki",hands="Usukane Gote",ring1="Alert Ring",ring2="Rajas Ring",
		back="Boxer's Mantle",waist="Black Belt",legs="Usukane Hizayoroi",feet="Usukane Sune-Ate"}

	
	--------------------------------------
	-- Idle/resting/defense/etc sets
	--------------------------------------
	
	sets.resting = {
		neck="Orochi Nodowa +1",
		back="Melee Cape",}	

	sets.idle = {ammo="Black Tathlum",
		head="Usukane Somen",neck="Orochi Nodowa +1",ear1="Novia Earring",ear2="Ethereal Earring",
		body="Usukane Haramaki",hands="Usukane Gote",ring1="Alert Ring",ring2="Rajas Ring",
		back="Boxer's Mantle",waist="Black Belt",legs="Usukane Hizayoroi",feet="Hermes' Sandals +1"}

	sets.idle.Town = {main="Shlng. Baghnakhs",}
	
	sets.idle.Weak = {}
	
	sets.defense.Evasion = {ammo="Black Tathlum",
		head="Usukane Somen",neck="Evasion Torque",ear1="Novia Earring",ear2="Ethereal Earring",
		body="Usukane Haramaki",hands="Usukane Gote",ring1="Alert Ring",ring2="Rajas Ring",
		back="Boxer's Mantle",waist="Black Belt",legs="Usukane Hizayoroi",feet="Hachiryu Sune-Ate"}
	
	sets.defense.PDT = {ammo="Verthandi's Gem",
		head="Arh. Jinpachi +1",neck="Orochi Nodowa +1",ear2="Colossus's Earring",
		body="Arhat's Gi +1",hands="Denali Wristbands",
		back="Shadow Mantle",waist="Black Belt",legs="Dst. Subligar +1",feet="Dst. Leggings +1"}

	sets.defense.MDT = {
		ear1="Merman's Earring",ear2="Merman's Earring",
		body="Avalon Breastplate",hands="Denali Wristbands",ring1="Shadow Ring",ring2="Merman's Ring",
		back="Colossus's Mantle",waist="Lieutenant's Sash"}

    sets.Kiting = {ammo="Verthandi's Gem",
		head="Arh. Jinpachi +1",neck="Orochi Nodowa +1",ear2="Colossus's Earring",
		body="Arhat's Gi +1",hands="Denali Wristbands",
		back="Shadow Mantle",waist="Black Belt",legs="Dst. Subligar +1",feet="Hermes' Sandals +1"}

	--------------------------------------
	-- 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="Black Tathlum",
		head="Usukane Somen",neck="Faith Torque",ear1="Brutal Earring",ear2="Aesir Ear Pendant",
		body="Usukane Haramaki",hands="Usukane Gote",ring1="Strigoi Ring",ring2="Rajas Ring",
		back="Cerb. Mantle +1",waist="Black Belt",legs="Usukane Hizayoroi",feet="Usukane Sune-Ate"}
	
	sets.engaged.Evasion = {ammo="Black Tathlum",
		head="Usukane Somen",neck="Evasion Torque",ear1="Brutal Earring",ear2="Ethereal Earring",
		body="Usukane Haramaki",hands="Usukane Gote",ring1="Strigoi Ring",ring2="Rajas Ring",
		back="Boxer's Mantle",waist="Black Belt",legs="Usukane Hizayoroi",feet="Usukane Sune-Ate"}

	--------------------------------------
	-- Custom buff sets
	--------------------------------------

	organizer_items = {warp="Warp Ring",hades="Hades Sainti +1",}

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)

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)

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)

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

-- 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)

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)

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


-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting 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)

end

-- Called when a generally-handled state value has been changed.
function job_state_change(stateField, newValue, oldValue)

end

-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------

-- 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

-- Custom spell mapping.
-- Return custom spellMap value that can override the default spell mapping.
-- Don't return anything to allow default spell mapping to be used.
function job_get_spell_map(spell, default_spell_map)

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, spellMap, default_wsmode)

end

-- 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

-- Modify the default defense set after it was constructed.
function customize_defense_set(defenseSet)
	return defenseSet
end

-- 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)

end

-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)

end


-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------

-- Called for custom player commands.
function job_self_command(cmdParams, eventArgs)

end

-- Job-specific toggles.
function job_toggle_state(field)

end

-- Request job-specific mode lists.
-- Return the list, and the current value for the requested field.
function job_get_option_modes(field)

end

-- Set job-specific mode values.
-- Return true if we recognize and set the requested field.
function job_set_option_mode(field, val)

end

-- Handle auto-targetting based on local setup.
function job_auto_change_target(spell, action, spellMap, eventArgs)

end

-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------



Non-Taru need Power Sandals for Chakra. And a different ear2.
[+]
 Asura.Sechs
Online
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10085
By Asura.Sechs 2016-09-11 04:35:48
Link | Quote | Reply
 
Draylo said: »
As far as MNK GS goes, the job itself isn't very complicated. You could just get another job of motes GS and edit it into a MNK one.
MNK GS is very straightforward, there is no complex part about the job.
There used to be, like one for Formless Strikes, but that's not relevant anymore.

The only part that maybe remains relevant is having a mechanism to swap into AF3+1 body while Impetus is up and possibly the same for Vsmite, but honestly I don't think that's worth to do anymore with the body options we have nowadays, not sure if anybody mathed it out.
 Asura.Azagarth
Offline
Server: Asura
Game: FFXI
user: Azagarth
Posts: 1326
By Asura.Azagarth 2016-09-12 00:35:51
Link | Quote | Reply
 
Ya I guess it all is pretty easy, I will probably just mess with my nin lua a bit since it has haste tier, which I can then turn into MA/haste tiers so thats fixed.

Lets make a list though of what a mnk lua should have, and maybe once i get time in rl I will make and post one for all 5 mnks that still play the game :D

my thoughts are we need

1.) Impetus body to manually be on for ws and tp when its up
2.) 3 tiers of tp gear (att, acc, high acc)
3.) 3 tiers of haste for MA gear (no haste, 30%, capped)
4.) ws acc tiers (norm, acc, high acc)
5.) hydrib pdt, counter, mdt builds

ya honestly cant think of to much, would a footwork, formless strikes, mantra toggle be needed at all?
 Asura.Sechs
Online
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10085
By Asura.Sechs 2016-09-12 01:56:45
Link | Quote | Reply
 
I don't think you should bother with Martial Arts tiers.
They're pretty different with how Dual Wield works on NIN.
First of all DW is a %, MA is a fixed value.
Second NIN has a plethora of really good DW options, on the other hand there's hardly any relevant MA option for MNK.

HizamaruHead+1 is... okaysh for the accuracy and also has MA+10 (remember, it's 10, not 10%) but it only has Haste+6% which could kill your build according to how much haste you have in the other slots, plus it's a loss compared to Dampening Tam, Herculean and honestly plentyful of other head options which are always gonna be better despite of your current MA value.

Other options are Mache earring NQ and HQ.
Then there's the RAO+1 set bonus (which even if you have it, you're not gonna use it to melee) and the already mentioned Bhikku+1.


So as you can see, not many options.
The bottom line of this all is that it's not necessary to have MA tiers built into your Lua the same way you would build DW tiers for NIN, DNC, THF or any Dualwielding job.
[+]
 Bahamut.Tychefm
Offline
Server: Bahamut
Game: FFXI
user: Lyramion
Posts: 902
By Bahamut.Tychefm 2016-09-12 04:46:59
Link | Quote | Reply
 
Quote:
1.) Impetus body to manually be on for ws and tp when its up


ya honestly cant think of to much, would a footwork, formless strikes, mantra toggle be needed at all?

Mantra Feet only need Precast as far as I can see. The most important and tricky part is indeed Bikku Cyclas +1. With enough Impetus hits it becomes an absolutly beastly body. One miss and you are back to trash tier.

We are currently working with Motes Impetus counter to have Bikku Body switch in after a set number of hits (can change yourself) and then also swap out again. The real issue are missed WS hits that can't be counted atm.
 Asura.Sechs
Online
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10085
By Asura.Sechs 2016-09-12 05:35:14
Link | Quote | Reply
 
Impetus gives +2 attack and +1% crit for each consecutive hit you land, capping at +100 attack and +50% crit rate.

With Bhikku+1 body it also adds +2 accuracy and +1% crit damage (cap not known, but I assume it's again +100/+50).

Bhikku needs to be worn for the acc/cdmg effect to apply, but I'm not sure if it has to be worn while you're charging or if you can equip it later.
Example: I use impetus and land 10 hit, then I equip Bhikku+1 body. Would that grant me acc+20 cdmg+10% already, or would I start at 0/0 for those?
Don't remember if the original Tantra body had been tested for this.


I still have my simple lua who swaps my TP/WS body to Bhikku+1 whenever Impetus is up.
Monk has 95% acc rate max, which means if you can reach that value Bhikku is probably better than any other currently available option, even though it takes a few hits (at least 6-7 I'd say?) for it to reach that level.

Sadly any sort of miss (even WS additional hit, MA hits or Counters) reset the Impetus bonus :'(
The script Tychefm is building looks promising but I'm not sure I'd want to go that deep for this.
 Asura.Sechs
Online
Server: Asura
Game: FFXI
user: Akumasama
Posts: 10085
By Asura.Sechs 2016-09-12 05:47:51
Link | Quote | Reply
 
Asura.Azagarth said: »
formless strikes, mantra toggle be needed at all?
Tychefm already answered about Mantra, and I forgot to answer about Formless Strikes.
The duration bonus is calculated on activation, so you don't need to wear the body after activation.

Still I seem to recall Hesychast Cyclas+1 had TWO effects on Formless Strikes. One was a bonus on duration (just need to wear it during activation) and another bonus was... something else for which you had to keep the body equipped.

I can't find data on this on BG-Wiki but I'm 100% confident I used to have a toggle for Cyclas back in the days.
Did I dream about this additional effect? =/ I guess so...
 Ramuh.Austar
Offline
Server: Ramuh
Game: FFXI
user: Austar
Posts: 10481
By Ramuh.Austar 2016-09-12 07:01:46
Link | Quote | Reply
 
It's retroactive, you can put it on after hits have built up.
 Bahamut.Tychefm
Offline
Server: Bahamut
Game: FFXI
user: Lyramion
Posts: 902
By Bahamut.Tychefm 2016-09-18 09:51:48
Link | Quote | Reply
 
Finished the first version of our Impetus Rules for my hobby MNK based on Motes .lua. Still some spagetti code in there from when Footwork was it's own combat mode I didn't dare to rip out, so I just cloned my sets there.

This will equip Bhikku Body +1 after 7 successful normal hits and give you a small chatlog notification. When you do a MISS the body gets removed. WSes generally are made to count as 2 hits towards this count. Hidden MISSes in WSes sadly cannot be tracked tho.

Code
-------------------------------------------------------------------------------------------------------------------
-- 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.Footwork = buffactive.Footwork or false
    state.Buff.Impetus = buffactive.Impetus or false

    state.FootworkWS = M(false, 'Footwork on WS')

    info.impetus_hit_count = 0
    windower.raw_register_event('action', on_action_for_impetus)
end


-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------

-- Setup vars that are user-dependent.  Can override this function in a sidecar file.
function user_setup()
    state.OffenseMode:options('Normal', 'Acc')
    state.WeaponskillMode:options('Normal')
    state.HybridMode:options('Normal', 'PDT')
    state.PhysicalDefenseMode:options('PDT')

    update_combat_form()
    update_melee_groups()

    --select_default_macro_book()
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 on use
    sets.precast.JA['Hundred Fists'] = {legs="Hesychast's Hose +1"}
    sets.precast.JA['Boost'] = {hands="Anchorite's Gloves +1"}
    sets.precast.JA['Dodge'] = {feet="Anchorite's Gaiters +1"}
    sets.precast.JA['Focus'] = {head="Anchorite's Crown +1"}
    sets.precast.JA['Counterstance'] = {feet="Hesychast's Gaiters +1"}
    sets.precast.JA['Footwork'] = {feet="Shukuyu Sune-Ate",}
    sets.precast.JA['Formless Strikes'] = {}
    sets.precast.JA['Mantra'] = {feet="Hesychast's Gaiters +1"}

    sets.precast.JA['Chi Blast'] = {}

    sets.precast.JA['Chakra'] = {head="Genmei Kabuto",
				body="Anch. Cyclas +1",
				hands={ name="Hes. Gloves +1", augments={'Enhances "Invigorate" effect',}},
				legs="Hiza. Hizayoroi +1",
				feet="Bhikku Gaiters +1",
				right_ear="Genmei Earring",
				left_ring={ name="Dark Ring", augments={'Enemy crit. hit rate -3','Phys. dmg. taken -6%','Breath dmg. taken -3%',}},
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}}}

    -- Waltz set (chr and vit)
    sets.precast.Waltz = {}
        
    -- Don't need any special gear for Healing Waltz.
    sets.precast.Waltz['Healing Waltz'] = {}

    sets.precast.Step = {}
    sets.precast.Flourish1 = {}


    -- Fast cast sets for spells
    
    sets.precast.FC = {}

    sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {})

       
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {ammo="Ginsen",
					head={ name="Rao Kabuto", augments={'STR+10','DEX+10','Attack+15',}},
					body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
					hands={ name="Ryuo Tekko", augments={'STR+10','DEX+10','Accuracy+15',}},
					legs="Hiza. Hizayoroi +1",
					feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
					neck="Clotharius Torque",
					waist="Windbuffet Belt +1",
					left_ear="Brutal Earring",
					right_ear={ name="Moonshade Earring", augments={'MP+25','TP Bonus +25',}},
					left_ring="Hetairoi Ring",
					right_ring="Epona's Ring",
					back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}}
    sets.precast.WSAcc = {}
    sets.precast.WSMod = {}
    sets.precast.MaxTP = {ear1="Bladeborn Earring",ear2="Steelflash Earring"}
    sets.precast.WS.Acc = set_combine(sets.precast.WS, sets.precast.WSAcc)
    sets.precast.WS.Mod = set_combine(sets.precast.WS, sets.precast.WSMod)

    -- Specific weaponskill sets.
    
    -- legs={name="Quiahuiz Trousers", augments={'Phys. dmg. taken -2%','Magic dmg. taken -2%','STR+8'}}}

    sets.precast.WS['Raging Fists']    = set_combine(sets.precast.WS, {})
    sets.precast.WS['Howling Fist']    = set_combine(sets.precast.WS, {})
    sets.precast.WS['Asuran Fists']    = set_combine(sets.precast.WS, {})
    sets.precast.WS["Ascetic's Fury"]  = set_combine(sets.precast.WS, {})
    sets.precast.WS["Victory Smite"]   = set_combine(sets.precast.WS, {ammo="Ginsen",
																		head={ name="Rao Kabuto", augments={'STR+10','DEX+10','Attack+15',}},
																		body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
																		hands={ name="Ryuo Tekko", augments={'STR+10','DEX+10','Accuracy+15',}},
																		legs="Hiza. Hizayoroi +1",
																		feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
																		neck="Thunder Gorget",
																		waist="Thunder Belt",
																		left_ear="Brutal Earring",
																		right_ear={ name="Moonshade Earring", augments={'MP+25','TP Bonus +25',}},
																		left_ring="Begrudging Ring",
																		right_ring="Epona's Ring",
																		back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}})
    sets.precast.WS['Shijin Spiral']   = set_combine(sets.precast.WS, {ammo="Ginsen",
																		head={ name="Rao Kabuto", augments={'STR+10','DEX+10','Attack+15',}},
																		body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
																		hands={ name="Herculean Gloves", augments={'Accuracy+25 Attack+25','Weapon skill damage +4%','INT+6','Accuracy+13',}},
																		legs="Hiza. Hizayoroi +1",
																		feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
																		neck="Flame Gorget",
																		waist="Flame Belt",
																		left_ear="Bladeborn Earring",
																		right_ear="Steelflash Earring",
																		left_ring="Ramuh Ring +1",
																		right_ring="Epona's Ring",
																		back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}})
	sets.precast.WS['Dragon Kick']     = set_combine(sets.precast.WS, {})
    sets.precast.WS['Tornado Kick']    = set_combine(sets.precast.WS, {})
    sets.precast.WS['Spinning Attack'] = set_combine(sets.precast.WS, {})

    sets.precast.WS["Raging Fists"].Acc = set_combine(sets.precast.WS["Raging Fists"], sets.precast.WSAcc)
    sets.precast.WS["Howling Fist"].Acc = set_combine(sets.precast.WS["Howling Fist"], sets.precast.WSAcc)
    sets.precast.WS["Asuran Fists"].Acc = set_combine(sets.precast.WS["Asuran Fists"], sets.precast.WSAcc)
    sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS["Ascetic's Fury"], sets.precast.WSAcc)
    sets.precast.WS["Victory Smite"].Acc = set_combine(sets.precast.WS["Victory Smite"], sets.precast.WSAcc)
    sets.precast.WS["Shijin Spiral"].Acc = set_combine(sets.precast.WS["Shijin Spiral"], sets.precast.WSAcc)
    sets.precast.WS["Dragon Kick"].Acc = set_combine(sets.precast.WS["Dragon Kick"], sets.precast.WSAcc)
    sets.precast.WS["Tornado Kick"].Acc = set_combine(sets.precast.WS["Tornado Kick"], sets.precast.WSAcc)

    sets.precast.WS["Raging Fists"].Mod = set_combine(sets.precast.WS["Raging Fists"], sets.precast.WSMod)
    sets.precast.WS["Howling Fist"].Mod = set_combine(sets.precast.WS["Howling Fist"], sets.precast.WSMod)
    sets.precast.WS["Asuran Fists"].Mod = set_combine(sets.precast.WS["Asuran Fists"], sets.precast.WSMod)
    sets.precast.WS["Ascetic's Fury"].Mod = set_combine(sets.precast.WS["Ascetic's Fury"], sets.precast.WSMod)
    sets.precast.WS["Victory Smite"].Mod = set_combine(sets.precast.WS["Victory Smite"], sets.precast.WSMod)
    sets.precast.WS["Shijin Spiral"].Mod = set_combine(sets.precast.WS["Shijin Spiral"], sets.precast.WSMod)
    sets.precast.WS["Dragon Kick"].Mod = set_combine(sets.precast.WS["Dragon Kick"], sets.precast.WSMod)
    sets.precast.WS["Tornado Kick"].Mod = set_combine(sets.precast.WS["Tornado Kick"], sets.precast.WSMod)


    sets.precast.WS['Cataclysm'] = {}
    
    
    -- Midcast Sets
    sets.midcast.FastRecast = {}
        
    -- Specific spells
    sets.midcast.Utsusemi = {}

    
    -- Sets to return to when not performing an action.
    
    -- Resting sets
    sets.resting = {}
    

    -- Idle sets
    sets.idle = {ammo="Vanir Battery",
				head="Genmei Kabuto",
				body="Emet Harness",
				hands={ name="Otronif Gloves +1", augments={'Phys. dmg. taken -3%','Accuracy+4',}},
				legs={ name="Otronif Brais +1", augments={'Phys. dmg. taken -3%','"Dbl.Atk."+1',}},
				feet="Ahosi Leggings",
				neck="Loricate Torque +1",
				waist="Black Belt",
				left_ear="Sanare Earring",
				right_ear="Genmei Earring",
				left_ring="Defending Ring",
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
				back="Solemnity Cape"}

    sets.idle.Town = {ammo="Vanir Battery",
				head="Genmei Kabuto",
				body="Emet Harness",
				hands={ name="Otronif Gloves +1", augments={'Phys. dmg. taken -3%','Accuracy+4',}},
				legs={ name="Otronif Brais +1", augments={'Phys. dmg. taken -3%','"Dbl.Atk."+1',}},
				feet="Herald's Gaiters",
				neck="Loricate Torque +1",
				waist="Black Belt",
				left_ear="Sanare Earring",
				right_ear="Genmei Earring",
				left_ring="Defending Ring",
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
				back="Solemnity Cape"}
    
    sets.idle.Weak = {ammo="Vanir Battery",
				head="Genmei Kabuto",
				body="Emet Harness",
				hands={ name="Otronif Gloves +1", augments={'Phys. dmg. taken -3%','Accuracy+4',}},
				legs={ name="Otronif Brais +1", augments={'Phys. dmg. taken -3%','"Dbl.Atk."+1',}},
				feet="Ahosi Leggings",
				neck="Loricate Torque +1",
				waist="Black Belt",
				left_ear="Sanare Earring",
				right_ear="Genmei Earring",
				left_ring="Defending Ring",
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
				back="Solemnity Cape"}
    
    -- Defense sets
    sets.defense.PDT = {ammo="Vanir Battery",
				head="Genmei Kabuto",
				body="Emet Harness",
				hands={ name="Otronif Gloves +1", augments={'Phys. dmg. taken -3%','Accuracy+4',}},
				legs={ name="Otronif Brais +1", augments={'Phys. dmg. taken -3%','"Dbl.Atk."+1',}},
				feet="Ahosi Leggings",
				neck="Loricate Torque +1",
				waist="Black Belt",
				left_ear="Sanare Earring",
				right_ear="Genmei Earring",
				left_ring="Defending Ring",
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
				back="Solemnity Cape"}

    sets.defense.HP = {}

    sets.defense.MDT = {ammo="Vanir Battery",
				head="Genmei Kabuto",
				body="Emet Harness",
				hands={ name="Otronif Gloves +1", augments={'Phys. dmg. taken -3%','Accuracy+4',}},
				legs={ name="Otronif Brais +1", augments={'Phys. dmg. taken -3%','"Dbl.Atk."+1',}},
				feet="Ahosi Leggings",
				neck="Loricate Torque +1",
				waist="Black Belt",
				left_ear="Sanare Earring",
				right_ear="Genmei Earring",
				left_ring="Defending Ring",
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
				back="Solemnity Cape"}

    sets.Kiting = {feet="Herald's Gaiters"}

    sets.ExtraRegen = {}

    -- 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 sets
    sets.engaged = {ammo="Ginsen",
					head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
					body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
					hands={ name="Herculean Gloves", augments={'Accuracy+25 Attack+25','Weapon skill damage +4%','INT+6','Accuracy+13',}},
					legs="Bhikku Hose +1",
					feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
					neck="Clotharius Torque",
					waist="Windbuffet Belt +1",
					left_ear="Steelflash Earring",
					right_ear="Bladeborn Earring",
					left_ring="Hetairoi Ring",
					right_ring="Epona's Ring",
					back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}}
    sets.engaged.SomeAcc = {}
    sets.engaged.Acc = {ammo="Honed Tathlum",
					head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
					body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
					hands={ name="Herculean Gloves", augments={'Accuracy+25 Attack+25','Weapon skill damage +4%','INT+6','Accuracy+13',}},
					legs="Hiza. Hizayoroi +1",
					feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
					neck="Subtlety Spec.",
					waist="Olseni Belt",
					left_ear="Digni. Earring",
					right_ear="Zennaroi Earring",
					left_ring="Ramuh Ring +1",
					right_ring="Begrudging Ring",
					back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}}
    sets.engaged.Mod = {}

    -- Defensive melee hybrid sets
    sets.engaged.PDT = {ammo="Vanir Battery",
				head="Genmei Kabuto",
				body="Emet Harness",
				hands={ name="Otronif Gloves +1", augments={'Phys. dmg. taken -3%','Accuracy+4',}},
				legs={ name="Otronif Brais +1", augments={'Phys. dmg. taken -3%','"Dbl.Atk."+1',}},
				feet="Herald's Gaiters",
				neck="Loricate Torque +1",
				waist="Black Belt",
				left_ear="Sanare Earring",
				right_ear="Genmei Earring",
				left_ring="Defending Ring",
				right_ring={ name="Dark Ring", augments={'Breath dmg. taken -4%','Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
				back="Solemnity Cape"}
    sets.engaged.SomeAcc.PDT = {}
    sets.engaged.Acc.PDT = {}
    sets.engaged.Counter = {}
    sets.engaged.Acc.Counter = {}


    -- Hundred Fists/Impetus melee set mods
    sets.engaged.HF = set_combine(sets.engaged)
    sets.engaged.HF.Impetus = set_combine(sets.engaged, {body="Bhikku Cyclas +1"})
    sets.engaged.Acc.HF = set_combine(sets.engaged.Acc)
    sets.engaged.Acc.HF.Impetus = set_combine(sets.engaged.Acc, {body="Bhikku Cyclas +1"})
    sets.engaged.Counter.HF = set_combine(sets.engaged.Counter)
    sets.engaged.Counter.HF.Impetus = set_combine(sets.engaged.Counter, {body="Bhikku Cyclas +1"})
    sets.engaged.Acc.Counter.HF = set_combine(sets.engaged.Acc.Counter)
    sets.engaged.Acc.Counter.HF.Impetus = set_combine(sets.engaged.Acc.Counter, {body="Bhikku Cyclas +1"})


    -- Footwork combat form
    sets.engaged.Footwork = {ammo="Ginsen",
					head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
					body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
					hands={ name="Herculean Gloves", augments={'Accuracy+25 Attack+25','Weapon skill damage +4%','INT+6','Accuracy+13',}},
					legs="Bhikku Hose +1",
					feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
					neck="Clotharius Torque",
					waist="Windbuffet Belt +1",
					left_ear="Steelflash Earring",
					right_ear="Bladeborn Earring",
					left_ring="Hetairoi Ring",
					right_ring="Epona's Ring",
					back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}}
    sets.engaged.Footwork.Acc = {ammo="Honed Tathlum",
					head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
					body={ name="Herculean Vest", augments={'Accuracy+21 Attack+21','"Triple Atk."+2','AGI+4','Accuracy+15','Attack+10',}},
					hands={ name="Herculean Gloves", augments={'Accuracy+25 Attack+25','Weapon skill damage +4%','INT+6','Accuracy+13',}},
					legs="Hiza. Hizayoroi +1",
					feet={ name="Herculean Boots", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','DEX+7','Accuracy+15','Attack+14',}},
					neck="Subtlety Spec.",
					waist="Olseni Belt",
					left_ear="Digni. Earring",
					right_ear="Zennaroi Earring",
					left_ring="Ramuh Ring +1",
					right_ring="Begrudging Ring",
					back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}}
        
    -- Quick sets for post-precast adjustments, listed here so that the gear can be Validated.
    sets.impetus_body = {body="Bhikku Cyclas +1"}
    sets.footwork_kick_feet = {}
end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------

-- 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)
    -- Don't gearswap for weaponskills when Defense is on.
    if spell.type == 'WeaponSkill' and state.DefenseMode.current ~= 'None' then
        eventArgs.handled = true
    end
end

--modify your melee set based on logic
function customize_melee_set(meleeSet) 
	if info.impetus_hit_count > 6 and buffactive.impetus then
		meleeSet = set_combine(meleeSet,sets.impetus_body)
	end
	return meleeSet
end

-- Run after the general precast() is done.
function job_post_precast(spell, action, spellMap, eventArgs)
	-- add_to_chat(122,'spell type '..spell.type)
	-- add_to_chat(122,'impetus on '..tostring(state.Buff.Impetus))
	-- add_to_chat(122,'spell english '..spell.english)
    if spell.type == 'WeaponSkill' then
        if state.Buff.Impetus and (spell.english == "Ascetic's Fury" or spell.english == "Victory Smite") then
            -- Need 6 hits at capped dDex, or 9 hits if dDex is uncapped, for Tantra to tie or win.
            --if (state.OffenseMode.current == 'Fodder' and info.impetus_hit_count > 5) or (info.impetus_hit_count > 8) then
            if info.impetus_hit_count > 6 then
                equip(sets.impetus_body)
				add_to_chat(122,'Impetus Body Equipped, Hits: '..tostring(info.impetus_hit_counter))
			else
				add_to_chat(122,'Impetus Body Not Equipped, Hits: '..tostring(info.impetus_hit_counter))
            end
        elseif state.Buff.Footwork and (spell.english == "Dragon's Kick" or spell.english == "Tornado Kick") then
            equip(sets.footwork_kick_feet)
        end
        
        -- Replace Moonshade Earring if we're at cap TP
        if player.tp == 3000 then
            equip(sets.precast.MaxTP)
        end
    end
end

function job_aftercast(spell, action, spellMap, eventArgs)
    if spell.type == 'WeaponSkill' and not spell.interrupted and state.FootworkWS and state.Buff.Footwork then
        send_command('cancel Footwork')
    end
end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting 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)
    -- Set Footwork as combat form any time it's active and Hundred Fists is not.
    if buff == 'Footwork' and gain and not buffactive['hundred fists'] then
        state.CombatForm:set('Footwork')
    elseif buff == "Hundred Fists" and not gain and buffactive.footwork then
        state.CombatForm:set('Footwork')
    else
        state.CombatForm:reset()
    end
    
    -- Hundred Fists and Impetus modify the custom melee groups
    if buff == "Hundred Fists" or buff == "Impetus" then
        classes.CustomMeleeGroups:clear()
        
        if (buff == "Hundred Fists" and gain) or buffactive['hundred fists'] then
            classes.CustomMeleeGroups:append('HF')
        end
        
        if (buff == "Impetus" and gain) or buffactive.impetus then
            classes.CustomMeleeGroups:append('Impetus')
        end
    end

    -- Update gear if any of the above changed
    if buff == "Hundred Fists" or buff == "Impetus" or buff == "Footwork" then
        handle_equipping_gear(player.status)
    end
end


-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------

function customize_idle_set(idleSet)
    if player.hpp < 75 then
        idleSet = set_combine(idleSet, sets.ExtraRegen)
    end
    
    return idleSet
end

-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
    update_combat_form()
    update_melee_groups()
end


-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------

function update_combat_form()
    if buffactive.footwork and not buffactive['hundred fists'] then
        state.CombatForm:set('Footwork')
    else
        state.CombatForm:reset()
    end
end

function update_melee_groups()
    classes.CustomMeleeGroups:clear()
    
    if buffactive['hundred fists'] then
        classes.CustomMeleeGroups:append('HF')
    end
    
    if buffactive.impetus then
        classes.CustomMeleeGroups:append('Impetus')
    end
end


-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    -- Default macro set/book
    if player.sub_job == 'DNC' then
        set_macro_page(8, 1)
    elseif player.sub_job == 'NIN' then
        set_macro_page(2, 1)
    elseif player.sub_job == 'THF' then
        set_macro_page(4, 1)
    elseif player.sub_job == 'RUN' then
        set_macro_page(1, 1)
    else
        set_macro_page(3, 1)
    end
end


-------------------------------------------------------------------------------------------------------------------
-- Custom event hooks.
-------------------------------------------------------------------------------------------------------------------

switched_impetus = 0
unswitched_impetus = 1
-- Keep track of the current hit count while Impetus is up.
function on_action_for_impetus(action)
    if state.Buff.Impetus then
        -- count melee hits by player
        if action.actor_id == player.id then
            if action.category == 1 then
                for _,target in pairs(action.targets) do
                    for _,action in pairs(target.actions) do
                        -- Reactions (bitset):
                        -- 1 = evade
                        -- 2 = parry
                        -- 4 = block/guard
                        -- 8 = hit
                        -- 16 = JA/weaponskill?
                        -- If action.reaction has bits 1 or 2 set, it missed or was parried. Reset count.
                        if (action.reaction % 4) > 0 then
                            info.impetus_hit_count = 0
							switched_impetus = 0
                        else
                            info.impetus_hit_count = info.impetus_hit_count + 1
                        end
                    end
                end
            elseif action.category == 3 then
                -- Missed weaponskill hits will reset the counter.  Can we tell?
                -- Reaction always seems to be 24 (what does this value mean? 8=hit, 16=?)
                -- Can't tell if any hits were missed, so have to assume all hit.
                -- Increment by the minimum number of weaponskill hits: 2.
                for _,target in pairs(action.targets) do
                    for _,action in pairs(target.actions) do
                        -- This will only be if the entire weaponskill missed or was parried.
                        if (action.reaction % 4) > 0 then
                            info.impetus_hit_count = 0
							switched_impetus = 0
                        else
                            info.impetus_hit_count = info.impetus_hit_count + 2
                        end
                    end
                end
            end
        elseif action.actor_id ~= player.id and action.category == 1 then
            -- If mob hits the player, check for counters.
            for _,target in pairs(action.targets) do
                if target.id == player.id then
                    for _,action in pairs(target.actions) do
                        -- Spike effect animation:
                        -- 63 = counter
                        -- ?? = missed counter
                        if action.has_spike_effect then
                            -- spike_effect_message of 592 == missed counter
                            if action.spike_effect_message == 592 then
                                info.impetus_hit_count = 0
								switched_impetus = 0
                            elseif action.spike_effect_animation == 63 then
                                info.impetus_hit_count = info.impetus_hit_count + 1
                            end
                        end
                    end
                end
            end
        end
        
        --add_to_chat(123,'Current Impetus hit count = ' .. tostring(info.impetus_hit_count))
		if info.impetus_hit_count > 6 and switched_impetus == 0 then
			--switched_impetus = 1
			--add_to_chat(225,"Chugging Impetus Koolaid")
			--handle_equipping_gear(player.status)
			--switched_impetus = 1
			send_command('gs c equip_impetus_body')
		elseif info.impetus_hit_count < 7 then 
			send_command('gs c unequip_impetus_body')
		end
    else
        info.impetus_hit_count = 0
		switched_impetus = 0
    end
end

function job_self_command(cmdParams, eventArgs)
	command = cmdParams[1]:lower()
	if command =='equip_impetus_body' then
			add_to_chat(225,"Equipping Impetus Body")
			switched_impetus = 1
			unswitched_impetus = 0
			equip(sets.impetus_body)
	elseif command =='unequip_impetus_body' then
			if unswitched_impetus == 0 then
				add_to_chat(225,"Removing Impetus Body")
				handle_equipping_gear(player.status)
				unswitched_impetus = 1
			end
			switched_impetus = 0
	end
end



Credits and love goes our to Verda who put in quite some time without even having MNK himself leveled.
[+]
 Asura.Topace
Offline
Server: Asura
Game: FFXI
user: Topace
Posts: 771
By Asura.Topace 2016-10-13 04:40:31
Link | Quote | Reply
 
I was told that Monk is actually over the MA cap? And that Mache Earrings will hurt monk more then it would help? I don't really understand how the delay part of Martial Arts work.
 Asura.Azagarth
Offline
Server: Asura
Game: FFXI
user: Azagarth
Posts: 1326
By Asura.Azagarth 2016-10-13 10:59:10
Link | Quote | Reply
 
Going to try your lua out :D looks promising and ya it sucs that you cannot account for so many variables when it comes to Impetus, but hey, looks like you did as best as anyone could, A+
[+]
 Valefor.Monkeynutz
Offline
Server: Valefor
Game: FFXI
Posts: 173
By Valefor.Monkeynutz 2016-10-13 19:16:49
Link | Quote | Reply
 
Asura.Topace said: »
I was told that Monk is actually over the MA cap? And that Mache Earrings will hurt monk more then it would help? I don't really understand how the delay part of Martial Arts work.

Martial Arts just removes delay, which for H2H is (480 + weapon delay - MA). The reason it can hurt your DPS is that with all the MA from traits and gifts, combined with capped haste you could likely have already hit the lowest possible delay value (I believe it's 96, but I might be mistaken and/ or it could depend on your weapon). if you have already reduced your delay as far as you can then you won't benefit from any additional MA, however, it will still lower the amount of TP you gain per attack. In fact, even if your delay isn't as low as it can be, because of the TP gain reduction in MA (and DW) it might sometimes be better not to have it. It depends on where your TP gain is without it and where it will end up with it. You don't want to add some more MA only to find that after X hits you're sitting at 999 TP instead of 1010 or something (which I have accidentally done to myself before).
[+]
 Asura.Reidden
Offline
Server: Asura
Game: FFXI
user: Reiden
Posts: 82
By Asura.Reidden 2016-10-30 13:11:27
Link | Quote | Reply
 
Anyone have an updated spreadsheet with JP/Gifts. I tried adding them on Mot's old one but it was one of his very first spreadsheets and I haven't messed with vlookup in awhile.
 Asura.Azagarth
Offline
Server: Asura
Game: FFXI
user: Azagarth
Posts: 1326
By Asura.Azagarth 2016-11-01 02:59:19
Link | Quote | Reply
 
I have been wanting to do it, and I have high hopes on mnk update coming and being good. I wanted to know how far behind dps wise Relic is over say, godhands? I plan to get godhands regardless, but I always liked relic for the counter tanking fun days way back when.

Also is it still up in the air on which h2h is best dps? I hear vere, but looking at the stats it has I cant see how its ahead of godhands.
 Lakshmi.Byrth
VIP
Offline
Server: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2016-11-01 05:29:06
Link | Quote | Reply
 
Asura.Azagarth said: »
Also is it still up in the air on which h2h is best dps? I hear vere, but looking at the stats it has I cant see how its ahead of godhands.

121 Vereth has 50 STR and 118 base damage. 50 STR is 12.5 base damage via fSTR, so call it 130 base damage. Also, with VS's 80% STR mod you're looking at an extra 40 base damage during VS, meaning Vereth's VS will have higher base damage than Godhands', but lack the extra crit rate from 500 TP Bonus. Lets call it a wash.

You start with ~79 base damage from skill, so now you're comparing:
Godhands - D229, 330 delay, 10 STP, 500 TP Bonus
Verethagna - D209, 321 delay, ODT AM

Vereth is the pretty clear winner even under the current system.



Edit:
Version Update Teaser said:
These changes include an increase to physical blood pact attribute caps and increase maximum hand-to-hand damage, providing further strengths to damage-dealing capabilities.

There are two possible explanations for this:

1) They are increasing the rate at which H2H Skill converts to base damage. It is currently 0.11 and I could see them going over 0.3 easily. - This satisfies their "maximum hand-to-hand damage" description. Also, I noticed long ago that avatars had approximately the same base damage as an equal level H2H job without a weapon and does blunt damage. (e.g. before 2014 level 99 avatars had 47 base damage (400~410 skill)

2) They are messing with max pDIF specifically for those two forms of damage.



I obviously favor the first explanation. If they tripled the skill conversion to base damage, Monk's DPS would increase by ~50%, which isn't far off what it needs to become competitive.

SE already increased the conversion from .11 to ~.25 for Avatars (D47 -> D106) in 2014. Avatars don't need that much of a BP damage boost, so I could see them going a little weaker with the Avatar adjustment than Monk. Boosting the Avatar and Monk number to 0.33 or so would provide a tangible increase for Avatars and a dramatic increase for Monk. We shall see, but this is what I'm guessing.

If they go this route, Godhands' base damage advantage during the TP phase shrinks away and Vereth (the lowest base damage MNK RME) gets a boost. If AM1 Vereth right now is ~20% ahead of Godhands, AM1 Vereth after an increase to 0.33 conversion would be ~25% ahead of Godhands.
 Bismarck.Lothoro
Offline
Server: Bismarck
Game: FFXI
user: Lothoro
Posts: 202
By Bismarck.Lothoro 2016-11-01 06:41:18
Link | Quote | Reply
 
Lakshmi.Byrth said: »
Asura.Azagarth said: »
Also is it still up in the air on which h2h is best dps? I hear vere, but looking at the stats it has I cant see how its ahead of godhands.

121 Vereth has 50 STR and 118 base damage. 50 STR is 12.5 base damage via fSTR, so call it 130 base damage. Also, with VS's 80% STR mod you're looking at an extra 40 base damage during VS, meaning Vereth's VS will have higher base damage than Godhands', but lack the extra crit rate from 500 TP Bonus. Lets call it a wash.

You start with ~79 base damage from skill, so now you're comparing:
Godhands - D229, 330 delay, 10 STP, 500 TP Bonus
Verethagna - D209, 321 delay, ODT AM

Vereth is the pretty clear winner even under the current system.

While we're on the topic, how far is Glanzfaust behind in terms of comparison to Godhands and Vere?
 Fenrir.Ramzus
Offline
Server: Fenrir
Game: FFXI
user: Venomfury
Posts: 1387
By Fenrir.Ramzus 2016-11-01 09:11:13
Link | Quote | Reply
 
Thanks Byrth. Is it possible that Godhands actually favor using Raging Fists or Howling Fists due to the higher fTP scaling past 2000? I could see holding to 1250 being a more viable option.
 Siren.Kyte
Offline
Server: Siren
Game: FFXI
Posts: 3332
By Siren.Kyte 2016-11-01 11:01:12
Link | Quote | Reply
 
Given that the fTPs haven't changed (although ratio caps have), these graphs should still be somewhat relevant as a starting point for looking at the best WS to use at varying fTP/ratio levels when not worrying about skillchain capabilities- provided that you understand the underlying assumptions (equal gear, equal buffs) and their associated limitations in actual practice (for example, there's a lot more +WSD available than there once was).

The now-higher ratio caps lower Victory Smite's relative potency when attack capped. In addition, increasing H2H base damage will tend to be more of a boon to WS with lower total WSCs- so I think it's probably safe to say that Raging Fists is the way to go with Godhands if you're ratio capped. Obviously if Impetus is up then things would change a bit

Fenrir.Motenten said: »

0.50 cRatio:

1.50 cRatio:

1.75 cRatio:

2.25 cRatio:
 Lakshmi.Byrth
VIP
Offline
Server: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6184
By Lakshmi.Byrth 2016-11-01 11:35:44
Link | Quote | Reply
 
Yeah, and if H2H melee DPs really does increase by 50-70% then it might be only borderline worth the WS delay to use any WS, which would also encourage TP holding.

If TP phase damage is all that matters, though, that would be a boon to Vereth's AM.
 Fenrir.Ramzus
Offline
Server: Fenrir
Game: FFXI
user: Venomfury
Posts: 1387
By Fenrir.Ramzus 2016-11-01 11:40:11
Link | Quote | Reply
 
Awesome, thanks. I forgot Mote made that graph back when MNK was actually still relevant <_>. I'll make some Raging Fists/Howling Fist sets durign my lunch break today for those interested just in case MNK does become relevant again. While we're on the topic though, does anyone have a good suggestion for a TP neck for low acc? I was thinking maybe Asperity Necklace but I don't know if there are better options . . .
 Sylph.Oraen
Offline
Server: Sylph
Game: FFXI
user: Gaztastic
Posts: 2087
By Sylph.Oraen 2016-11-01 11:43:29
Link | Quote | Reply
 
IF it turns out that TP phase damage is all that matters, clotharius torque might be the best. Or perhaps portus collar, maybe even Tonberry's Grudge items would come back for TPing.
 Siren.Kyte
Offline
Server: Siren
Game: FFXI
Posts: 3332
By Siren.Kyte 2016-11-01 11:55:13
Link | Quote | Reply
 
As far as Verethragna goes, I think it's probably being (slightly) overestimated partly due to its low delay and thus being the worst offender of the MNK legendaries at overcapping delay reduction.
First Page 2 3 ... 110 111 112 ... 365 366 367
Log in to post.