|
iiPunch - Monk Guide
By Felgarr 2020-10-01 01:56:50
Do you have a link to said spreadsheet?
MNK sheet
Thank you so much. What can I use in place of the Tatenashi pieces until I get them for these two WSes?
Code
Tornado Kick (Footwork):
Knobkierrie
Kendatsuba +1
Monk's +2 (Aug)
Sherida
Moonshade AttTP
Tatenashi Haramaki +1
Herculean (4%TA,10STR,20acc/att)
Niqmaddu
Gere Ring
Segomo (STR+ DA)
Moonbow +1
Tatenashi Haidate +1
Anchorite +3
Code
Howling Fist:
Knobkierrie
Kendatsuba +1
Monk's +2 (Aug)
Sherida
Moonshade AttTP
Tatenashi Haramaki +1
Herculean (4%TA,10STR,20acc/att)
Niqmaddu
Gere Ring
Segomo (STR+ DA)
Moonbow +1
Tatenashi Haidate +1
Herculean (4%TA,10STR,20acc/att)
Asura.Sechs
サーバ: Asura
Game: FFXI
Posts: 10104
By Asura.Sechs 2020-10-01 02:12:50
Can try with Hizayoroi Haidate +2 but probably, given the new FTP transfer properties the H2H WSs received, you're gonna get better results from pieces with MA.
Like Kendatsuba+1 or perf Samnuha Tights.
In the body slot in particular Adhemar+1 will probably be a nice alternative as well, especially when att uncapped.
You should put this gear in the spreadsheet and test various options for the Body and Legs slot though, honestly.
That way you can see for yourself and pick the best between the options you have available.
Asura.Kusare
サーバ: Asura
Game: FFXI
Posts: 190
By Asura.Kusare 2020-10-01 02:19:52
i've updated the https://www.bg-wiki.com/bg/Community_Monk_Guide with Simon's sets and some other outdated pieces.
サーバ: Asura
Game: FFXI
Posts: 171
By Asura.Zidaner 2020-10-01 06:12:24
I am baffled at this new shijin set. Plz explain how malignance wins here.
Asura.Kusare
サーバ: Asura
Game: FFXI
Posts: 190
By Asura.Kusare 2020-10-01 06:19:54
more to land the plague than for damage, i should create two sets
ok added a damage set as well, but not sure 100% of all the slots so feel free to correct.
[+]
サーバ: Asura
Game: FFXI
Posts: 171
By Asura.Zidaner 2020-10-01 06:37:48
Ok that makes sense.
By SimonSes 2020-10-01 06:37:54
I am baffled at this new shijin set. Plz explain how malignance wins here.
Well, like I said its for capped attack. Tho this one is not optimized fully for damage, but also to have magic accuracy to land Plague. If you want very slightly more damage for capped att (~1% more), you should use Tatenashi legs and Kendatsuba head, but I dont see the point to drop that much magic accuracy for 1% damage.
[+]
By SimonSes 2020-10-01 06:45:51
more to land the plague than for damage, i should create two sets
ok added a damage set as well, but not sure 100% of all the slots so feel free to correct.
Malignance body and hands are still bis for damage when you are attack capped. Also Aurgelmir Orb +1 for both Shijin sets, I forgot to change that one.
[+]
Fenrir.Jinxs
サーバ: Fenrir
Game: FFXI
Posts: 541
By Fenrir.Jinxs 2020-10-01 13:38:33
Does anyone have the howling fist set from the community guide pre Tatenashi?
[+]
サーバ: Asura
Game: FFXI
Posts: 45
By Asura.Kendlar 2020-10-01 13:43:52
[+]
サーバ: Asura
Game: FFXI
Posts: 415
By Asura.Cambion 2020-10-04 20:21:50
Anyone have a decent lua for Mnk? I don't play the job, but friend asked for help setting up his lua, and just need some of the job specifics.
First post has a Spellcast link and a search for gearswap or lua both came up empty. The thread labeled mnk lua didn't get any responses.
Google returned Selindrile's but... It seems to be too far gone from Mote's base, which is what I'm familiar with. Arislan's Mnk file... isn't actually there.
Help?
Asura.Kusare
サーバ: Asura
Game: FFXI
Posts: 190
By Asura.Kusare 2020-10-04 20:57:32
google bokura pastebin, his are pretty simple compared to most butt still have the essentials
サーバ: Asura
Game: FFXI
Posts: 415
By Asura.Cambion 2020-10-04 22:18:36
Well, this is what I ended up with for anyone who wants something that isn't from 6 years ago. Please be advised, I do not play Mnk. I have no way to verify everything is working correctly. I'll have a friend putting it through it's paces pretty soon. My main concern is how it handles Footwork and Impetus... and possible their interaction when combined with Hundred Fist?
If anyone wants to give it a go and let me know, I'll happily update or correct what I can.
I left a hand full of things that are Dancer-Specific, so that just in case Mnk has a use for them, you can update the names, but all the frame work is in there. (Haste Tiers, Dual Wield Handling, Weapon Swaps, extra key binds, etc...)
This lua has 3 tiers of Offensive modes all built in, 4 defense take sets, a WS Acc set, 2750tp+ handling for WS, shadow canceling, Toggles for CP capes, Warp/Tele Rings, Dynamis Neck locks, TH sets, Auto Macro swaps/lockstyle, and there's also a hit counter for impetus? But I have no clue what that is or how *IF* it'll work, of if it's even needed, but I'm sure someone will let me know I f*d up.
Anyways, here's a modern day Lua for Mnk. Made it for a friend, so may as well share it in case anyone benefits from it.
Code -- Initialization function for this job file.
function get_sets()
mote_include_version = 2
include('Mote-Include.lua')
end
-- Setup variables that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.CombatWeapon = M{['description']='Weapon', 'Normal', 'AnusTwat', 'TauretTwat', 'TwatCento'}
-- state.SkillchainPending = M(false, 'Skillchain Pending')
state.CP = M(false, "Capacity Points Mode")
state.Warp = M(false, "Warp Mode")
state.MP = M(false, "Mana Mode")
state.Dynamis = M(false, "Dynamis Mode")
state.TH = M(false, "Treasure Hunter")
state.Buff.Footwork = buffactive.Footwork or false
state.Buff.Impetus = buffactive.Impetus or false
state.FootworkWS = M(false, 'Footwork on WS')
lockstyleset = 15
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job.
-------------------------------------------------------------------------------------------------------------------
-- Gear Modes
function user_setup()
state.OffenseMode:options('Normal', 'LowAcc', 'MidAcc', 'HighAcc') --Cycled with F9
state.HybridMode:options('Normal', 'MagEva', 'HIGH', 'MID', 'LOW') --Cycled with F10
state.WeaponskillMode:options('Normal', 'Acc') --Cycled with CTRL+F9
state.CastingMode:options('Normal', 'Enmity') --Cycled with WindowKey+E
state.IdleMode:options('Normal', 'Regen') --Cycled with CTRL+F12
-- Additional Key Binds.
send_command('bind f9 gs c cycle OffenseMode') --F9
send_command('bind ^f9 gs c cycle WeaponSkillMode') --Ctrl'F9'
send_command('bind f10 gs c cycle HybridMode') --F10
send_command('bind ^f12 gs c cycle IdleMode') --Ctrl'F12'
send_command('bind @c gs c toggle CP') --WindowKey'C'
send_command('bind @r gs c toggle Warp') --WindowKey'R'
send_command('bind @m gs c toggle MP') --Windowkey'M'
send_command('bind @d gs c toggle Dynamis') --Windowkey'D'
send_command('bind @t gs c toggle TH') --Windowkey'T'
send_command('bind @w gs c cycle CombatWeapon') --Windowkey'W'
send_command('bind @e gs c cycle CastingMode') --WindowKey'E'
send_command('lua l gearinfo') --If you don't have GearInfo, Haste tiers won't work properly. N/A to Mnk
--Leaving these in as an example for people to custom bind anything they like, anywhere they like
send_command('bind ^` input /ja "Chocobo Jig II" <me>') --Ctrl'~'
send_command('bind !` input /ja "Spectral Jig" <me>') --Alt'~'
send_command('bind ^c input /ja "Contradance" <me>') --Ctrl'C'
send_command('bind ^t input /ja "Trance" <me>') --Ctrl'T'
send_command('bind ^g input /ja "Grand Pas" <me>') --Ctrl'G'
select_default_macro_book()
set_lockstyle()
Haste = 0
DW_needed = 0
DW = false
moving = false
update_combat_form()
determine_haste_group()
end
-- Erases the Key Binds above when you switch to another job.
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind !-')
send_command('unbind ^=')
send_command('unbind @r')
send_command('unbind @m')
send_command('unbind @e')
send_command('unbind @d')
send_command('unbind ^c')
send_command('unbind ^t')
send_command('unbind ^g')
send_command('gs enable all')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
------------------------------------------------------------------------------------------------
---------------------------------------- Precast Sets ------------------------------------------
------------------------------------------------------------------------------------------------
sets.Enmity = {} -- Enm
sets.precast.FC = {} -- %
sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {body="Passion Jacket",neck="Magoraga Beads"})
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="Tantra Gaiters +2"}
sets.precast.JA['Formless Strikes'] = {body="Hesychast's Cyclas"}
sets.precast.JA['Mantra'] = {feet="Hesychast's Gaiters +1"}
sets.precast.JA['Chi Blast'] = {}
sets.precast.JA['Chakra'] = {}
------------------------------------------------------------------------------------------------
-------------------------------------- Sub Job Specific ----------------------------------------
------------------------------------------------------------------------------------------------
----------------- /Sam ---------------
sets.precast.JA['Meditate'] = {}
sets.precast.JA['Third Eye'] = {}
sets.precast.JA['Sekkanoki'] = {}
sets.precast.JA['Warding Circle'] = {}
----------------- /War ---------------
sets.precast.JA['Provoke'] = {}
----------------- /Run ---------------
sets.precast.JA['Vallation'] = {}
sets.midcast.Flash = sets.Enmity
----------------- /Pld ---------------
sets.precast.JA['Holy Circle'] = {}
sets.precast.JA['Sentinel'] = {}
sets.midcast.Flash = sets.Enmity
----------------- /Blu ---------------
sets.midcast['Blue Magic'] = {}
----------------- /Drg ---------------
sets.precast.JA['Jump'] = {}
sets.precast.JA['High Jump'] = {}
----------------- /Dnc ---------------
sets.precast.Waltz = {}
sets.precast.WaltzSelf = {}
------------------------------------------------------------------------------------------------
------------------------------------- Weapon Skill Sets ----------------------------------------
------------------------------------------------------------------------------------------------
sets.precast.WS = {}
sets.precast.WS.Critical = {body="Meg. Cuirie +2"}
sets.precast.WS['Raging Fists'] = {}
sets.precast.WS['Howling Fist'] = {}
sets.precast.WS['Asuran Fists'] = {}
sets.precast.WS["Ascetic's Fury"] = {}
sets.precast.WS["Victory Smite"] = {}
sets.precast.WS['Shijin Spiral'] = {}
sets.precast.WS['Dragon Kick'] = {}
sets.precast.WS['Tornado Kick'] = {}
sets.precast.WS['Spinning Attack'] = {}
--------------------------------------- Accuracy Mode ------------------------------------------
sets.precast.WS.Acc = set_combine(sets.precast.WS, {})
sets.precast.WS['Raging Fists'].Acc = set_combine(sets.precast.WS['Raging Fists'], {})
sets.precast.WS['Howling Fist'].Acc = set_combine(sets.precast.WS['Howling Fist'], {})
sets.precast.WS['Asuran Fists'].Acc = set_combine(sets.precast.WS['Asuran Fists'], {})
sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS["Ascetic's Fury"], {})
sets.precast.WS["Victory Smite"].Acc = set_combine(sets.precast.WS["Victory Smite"], {})
sets.precast.WS['Shijin Spiral'].Acc = set_combine(sets.precast.WS['Shijin Spiral'], {})
sets.precast.WS['Dragon Kick'].Acc = set_combine(sets.precast.WS['Dragon Kick'], {})
sets.precast.WS['Tornado Kick'].Acc = set_combine(sets.precast.WS['Tornado Kick'], {})
sets.precast.WS['Spinning Attack'].Acc = set_combine(sets.precast.WS['Spinning Attack'], {})
------------------------------------------------------------------------------------------------
---------------------------------------- Midcast Sets ------------------------------------------
------------------------------------------------------------------------------------------------
sets.midcast.FastRecast = sets.precast.FC
sets.midcast.SpellInterrupt = {}
sets.midcast.Utsusemi = {}
------------------------------------------------------------------------------------------------
----------------------------------------- Monk Stuff? ------------------------------------------
------------------------------------------------------------------------------------------------
-- Hundred Fists/Impetus melee set mods
sets.engaged.Counter = {}
sets.engaged.HF = set_combine(sets.engaged, {})
sets.engaged.HF.Impetus = set_combine(sets.engaged, {body="Tantra Cyclas +2"})
sets.engaged.Counter.HF = set_combine(sets.engaged.Counter, {})
sets.engaged.Counter.HF.Impetus = set_combine(sets.engaged.Counter, {body="Tantra Cyclas +2"})
-- Footwork combat form
sets.engaged.Footwork = {}
sets.engaged.Footwork.Acc = {}
-- Quick sets for post-precast adjustments, listed here so that the gear can be Validated.
sets.impetus_body = {body="Tantra Cyclas +2"}
sets.footwork_kick_feet = {feet="Anchorite's Gaiters +1"}
------------------------------------------------------------------------------------------------
----------------------------------------- Idle Sets --------------------------------------------
------------------------------------------------------------------------------------------------
sets.idle = {}
sets.idle.Town = {}
sets.idle.Regen = {}
------------------------------------------------------------------------------------------------
---------------------------------------- Engaged Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- This is a Set that would only be used when you are NOT Dual Wielding.
-- There are no haste parameters set for this build, because you wouldn't be juggling DW gear, you would always use the same gear, other than Damage Taken and Accuracy sets which ARE included below.
sets.engaged = {}
------------------------------------------------------------------------------------------------
-------------------------------------- Dual Wield Sets -----------------------------------------
------------------------------------------------------------------------------------------------
-- * NIN Sub Native DW Trait: 25% DW
-- * DNC Sub Native DW Trait: 15% DW
-- No Magic Haste (38% DW to cap)
sets.engaged.DW = {} -- %
-- 15% Magic Haste (32% DW to cap)
sets.engaged.DW.LowHaste = {} -- %
-- 30% Magic Haste (20% DW to cap)
sets.engaged.DW.MidHaste = {} -- %
-- 40% Magic Haste (8% DW to cap)
sets.engaged.DW.HighHaste = {} -- %
-- 45% Magic Haste (0% DW to cap)
sets.engaged.DW.MaxHaste = {} -- %
------------------------------------------------------------------------------------------------
--------------------------------------- Accuracy Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- Define three tiers of Accuracy. These sets are cycled with the F9 Button to increase accuracy in stages as desired.
sets.engaged.Acc1 = {} --Low Acc
sets.engaged.Acc2 = {} --Mid Acc
sets.engaged.Acc3 = {} --High Acc
-- Base Shield
sets.engaged.LowAcc = set_combine(sets.engaged, sets.engaged.Acc1)
sets.engaged.MidAcc = set_combine(sets.engaged, sets.engaged.Acc2)
sets.engaged.HighAcc = set_combine(sets.engaged, sets.engaged.Acc3)
-- Base DW 1138Acc
sets.engaged.DW.LowAcc = set_combine(sets.engaged.DW, sets.engaged.Acc1) --1185Acc
sets.engaged.DW.MidAcc = set_combine(sets.engaged.DW, sets.engaged.Acc2) --1222Acc
sets.engaged.DW.HighAcc = set_combine(sets.engaged.DW, sets.engaged.Acc3) --1292Acc
-- LowHaste DW 1138Acc
sets.engaged.DW.LowAcc.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.Acc1) --1185Acc
sets.engaged.DW.MidAcc.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.Acc2) --1222Acc
sets.engaged.DW.HighAcc.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.Acc3) --1292Acc
-- MidHaste DW 1133Acc
sets.engaged.DW.LowAcc.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.Acc1) --1180Acc
sets.engaged.DW.MidAcc.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.Acc2) --1217Acc
sets.engaged.DW.HighAcc.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.Acc3) --1288Acc
-- HighHaste DW 1133Acc
sets.engaged.DW.LowAcc.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.Acc1) --1180Acc
sets.engaged.DW.MidAcc.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.Acc2) --1217Acc
sets.engaged.DW.HighAcc.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.Acc3) --1288Acc
-- HighHaste DW 1178Acc
sets.engaged.DW.LowAcc.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.LowAcc) --1225Acc
sets.engaged.DW.MidAcc.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.MidAcc) --1269Acc
sets.engaged.DW.HighAcc.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.HighAcc) --1288Acc
------------------------------------------------------------------------------------------------
---------------------------------------- Hybrid Sets -------------------------------------------
------------------------------------------------------------------------------------------------
-- Define three tiers of Defense Taken. These sets are cycled with the F10 Button.
sets.engaged.DT1 = {ring1="Defending Ring",ring2="Vocane Ring",Neck="Loricate Torque +1"} --23%
sets.engaged.DT2 = {ring1="Defending Ring",ring2="Vocane Ring",Neck="Loricate Torque +1"} --39%
sets.engaged.DT3 = {ring1="Defending Ring",ring2="Vocane Ring",Neck="Loricate Torque +1"} --50%
sets.engaged.DT4 = {head="Malignance Chapeau",body="Malignace Harness",hands="Malignance Gloves",legs="Malignance Subligar",feet="Malignance Boots"} --MagEva
-- Shield Base
sets.engaged.LOW = set_combine(sets.engaged, sets.engaged.DT1)
sets.engaged.LowAcc.LOW = set_combine(sets.engaged.LowAcc, sets.engaged.DT1)
sets.engaged.MidAcc.LOW = set_combine(sets.engaged.MidAcc, sets.engaged.DT1)
sets.engaged.HighAcc.LOW = set_combine(sets.engaged.HighAcc, sets.engaged.DT1)
sets.engaged.MID = set_combine(sets.engaged, sets.engaged.DT2)
sets.engaged.LowAcc.MID = set_combine(sets.engaged.LowAcc, sets.engaged.DT2)
sets.engaged.MidAcc.MID = set_combine(sets.engaged.MidAcc, sets.engaged.DT2)
sets.engaged.HighAcc.MID = set_combine(sets.engaged.HighAcc, sets.engaged.DT2)
sets.engaged.HIGH = set_combine(sets.engaged, sets.engaged.DT3)
sets.engaged.LowAcc.HIGH = set_combine(sets.engaged.LowAcc, sets.engaged.DT3)
sets.engaged.MidAcc.HIGH = set_combine(sets.engaged.MidAcc, sets.engaged.DT3)
sets.engaged.HighAcc.HIGH = set_combine(sets.engaged.HighAcc, sets.engaged.DT3)
sets.engaged.MagEva = set_combine(sets.engaged, sets.engaged.DT4)
sets.engaged.LowAcc.MagEva = set_combine(sets.engaged.LowAcc, sets.engaged.DT4)
sets.engaged.MidAcc.MagEva = set_combine(sets.engaged.MidAcc, sets.engaged.DT4)
sets.engaged.HighAcc.MagEva = set_combine(sets.engaged.HighAcc, sets.engaged.DT4)
-- No Haste DW
sets.engaged.DW.LOW = set_combine(sets.engaged.DW, sets.engaged.DT1)
sets.engaged.DW.LowAcc.LOW = set_combine(sets.engaged.DW.LowAcc, sets.engaged.DT1)
sets.engaged.DW.MidAcc.LOW = set_combine(sets.engaged.DW.MidAcc, sets.engaged.DT1)
sets.engaged.DW.HighAcc.LOW = set_combine(sets.engaged.DW.HighAcc, sets.engaged.DT1)
sets.engaged.DW.MID = set_combine(sets.engaged.DW, sets.engaged.DT2)
sets.engaged.DW.LowAcc.MID = set_combine(sets.engaged.DW.LowAcc, sets.engaged.DT2)
sets.engaged.DW.MidAcc.MID = set_combine(sets.engaged.DW.MidAcc, sets.engaged.DT2)
sets.engaged.DW.HighAcc.MID = set_combine(sets.engaged.DW.HighAcc, sets.engaged.DT2)
sets.engaged.DW.HIGH = set_combine(sets.engaged.DW, sets.engaged.DT3)
sets.engaged.DW.LowAcc.HIGH = set_combine(sets.engaged.DW.LowAcc, sets.engaged.DT3)
sets.engaged.DW.MidAcc.HIGH = set_combine(sets.engaged.DW.MidAcc, sets.engaged.DT3)
sets.engaged.DW.HighAcc.HIGH = set_combine(sets.engaged.DW.HighAcc, sets.engaged.DT3)
sets.engaged.DW.MagEva = set_combine(sets.engaged.DW, sets.engaged.DT4)
sets.engaged.DW.LowAcc.MagEva = set_combine(sets.engaged.DW.LowAcc, sets.engaged.DT4)
sets.engaged.DW.MidAcc.MagEva = set_combine(sets.engaged.DW.MidAcc, sets.engaged.DT4)
sets.engaged.DW.HighAcc.MagEva = set_combine(sets.engaged.DW.HighAcc, sets.engaged.DT4)
-- Low Haste DW
sets.engaged.DW.LOW.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.DT1)
sets.engaged.DW.LowAcc.LOW.LowHaste = set_combine(sets.engaged.DW.LowAcc.LowHaste, sets.engaged.DT1)
sets.engaged.DW.MidAcc.LOW.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.DT1)
sets.engaged.DW.HighAcc.LOW.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.DT1)
sets.engaged.DW.MID.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.DT2)
sets.engaged.DW.LowAcc.MID.LowHaste = set_combine(sets.engaged.DW.LowAcc.LowHaste, sets.engaged.DT2)
sets.engaged.DW.MidAcc.MID.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.DT2)
sets.engaged.DW.HighAcc.MID.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.DT2)
sets.engaged.DW.HIGH.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.DT3)
sets.engaged.DW.LowAcc.HIGH.LowHaste = set_combine(sets.engaged.DW.LowAcc.LowHaste, sets.engaged.DT3)
sets.engaged.DW.MidAcc.HIGH.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.DT3)
sets.engaged.DW.HighAcc.HIGH.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.DT3)
sets.engaged.DW.MagEva.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.DT4)
sets.engaged.DW.LowAcc.MagEva.LowHaste = set_combine(sets.engaged.DW.LowAcc.LowHaste, sets.engaged.DT4)
sets.engaged.DW.MidAcc.MagEva.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.DT4)
sets.engaged.DW.HighAcc.MagEva.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.DT4)
-- Mid Haste
sets.engaged.DW.LOW.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.DT1)
sets.engaged.DW.LowAcc.LOW.MidHaste = set_combine(sets.engaged.DW.LowAcc.MidHaste, sets.engaged.DT1)
sets.engaged.DW.MidAcc.LOW.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.DT1)
sets.engaged.DW.HighAcc.LOW.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.DT1)
sets.engaged.DW.MID.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.DT2)
sets.engaged.DW.LowAcc.MID.MidHaste = set_combine(sets.engaged.DW.LowAcc.MidHaste, sets.engaged.DT2)
sets.engaged.DW.MidAcc.MID.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.DT2)
sets.engaged.DW.HighAcc.MID.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.DT2)
sets.engaged.DW.HIGH.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.DT3)
sets.engaged.DW.LowAcc.HIGH.MidHaste = set_combine(sets.engaged.DW.LowAcc.MidHaste, sets.engaged.DT3)
sets.engaged.DW.MidAcc.HIGH.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.DT3)
sets.engaged.DW.HighAcc.HIGH.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.DT3)
sets.engaged.DW.MagEva.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.DT4)
sets.engaged.DW.LowAcc.MagEva.MidHaste = set_combine(sets.engaged.DW.LowAcc.MidHaste, sets.engaged.DT4)
sets.engaged.DW.MidAcc.MagEva.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.DT4)
sets.engaged.DW.HighAcc.MagEva.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.DT4)
-- High Haste
sets.engaged.DW.LOW.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.DT1)
sets.engaged.DW.LowAcc.LOW.HighHaste = set_combine(sets.engaged.DW.LowAcc.HighHaste, sets.engaged.DT1)
sets.engaged.DW.MidAcc.LOW.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.DT1)
sets.engaged.DW.HighAcc.LOW.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.DT1)
sets.engaged.DW.MID.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.DT2)
sets.engaged.DW.LowAcc.MID.HighHaste = set_combine(sets.engaged.DW.LowAcc.HighHaste, sets.engaged.DT2)
sets.engaged.DW.MidAcc.MID.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.DT2)
sets.engaged.DW.HighAcc.MID.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.DT2)
sets.engaged.DW.HIGH.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.DT3)
sets.engaged.DW.LowAcc.HIGH.HighHaste = set_combine(sets.engaged.DW.LowAcc.HighHaste, sets.engaged.DT3)
sets.engaged.DW.MidAcc.HIGH.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.DT3)
sets.engaged.DW.HighAcc.HIGH.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.DT3)
sets.engaged.DW.MagEva.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.DT4)
sets.engaged.DW.LowAcc.MagEva.HighHaste = set_combine(sets.engaged.DW.LowAcc.HighHaste, sets.engaged.DT4)
sets.engaged.DW.MidAcc.MagEva.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.DT4)
sets.engaged.DW.HighAcc.MagEva.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.DT4)
-- Max Haste
sets.engaged.DW.LOW.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.DT1)
sets.engaged.DW.LowAcc.LOW.MaxHaste = set_combine(sets.engaged.DW.LowAcc.MaxHaste, sets.engaged.DT1)
sets.engaged.DW.MidAcc.LOW.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.DT1)
sets.engaged.DW.HighAcc.LOW.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.DT1)
sets.engaged.DW.MID.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.DT2)
sets.engaged.DW.LowAcc.MID.MaxHaste = set_combine(sets.engaged.DW.LowAcc.MaxHaste, sets.engaged.DT2)
sets.engaged.DW.MidAcc.MID.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.DT2)
sets.engaged.DW.HighAcc.MID.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.DT2)
sets.engaged.DW.HIGH.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.DT3)
sets.engaged.DW.LowAcc.HIGH.MaxHaste = set_combine(sets.engaged.DW.LowAcc.MaxHaste, sets.engaged.DT3)
sets.engaged.DW.MidAcc.HIGH.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.DT3)
sets.engaged.DW.HighAcc.HIGH.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.DT3)
sets.engaged.DW.MagEva.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.DT4)
sets.engaged.DW.LowAcc.MagEva.MaxHaste = set_combine(sets.engaged.DW.LowAcc.MaxHaste, sets.engaged.DT4)
sets.engaged.DW.MidAcc.MagEva.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.DT4)
sets.engaged.DW.HighAcc.MagEva.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.DT4)
------------------------------------------------------------------------------------------------
---------------------------------------- Weapon Sets -------------------------------------------
------------------------------------------------------------------------------------------------
sets.AnusTwat = {main="Aeneas",sub="Twashtar"}
sets.TauretTwat = {main="Tauret",sub="Twashtar"}
sets.TwatCento = {main="Twashtar",sub="Centovente"}
------------------------------------------------------------------------------------------------
---------------------------------------- Special Sets ------------------------------------------
------------------------------------------------------------------------------------------------
-- sets.buff.Doom = {}
sets.Warp = {ring1="Dim. Ring (Holla)",ring2="Warp Ring",ear1="Reraise Earring",}
sets.CP = {back="Mecisto. Mantle"}
sets.MP = {Ear2="Ethereal Earring",Waist="Flume Belt +1",}
sets.Dynamis = {Neck=""} --JSE Neck for RP Farming
sets.TH = {head="White Rarab Cap +1",waist="Chaac Belt"}
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)
if spellMap == 'Utsusemi' then
if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
cancel_spell()
add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
eventArgs.handled = true
return
elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
end
end
-- Used to overwrite Moonshade Earring if TP is more than 2750.
if spell.type == 'WeaponSkill' then
if player.tp > 2750 then
equip({left_ear = "Telos Earring"})
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.
-------------------------------------------------------------------------------------------------------------------
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 job_handle_equipping_gear(playerStatus, eventArgs)
update_combat_form()
determine_haste_group()
end
function job_update(cmdParams, eventArgs)
update_combat_form()
update_melee_groups()
end
function update_combat_form()
if buffactive.footwork and not buffactive['hundred fists'] then
state.CombatForm:set('Footwork')
else
state.CombatForm:reset()
end
if DW == true then
state.CombatForm:set('DW')
elseif DW == false then
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
function customize_idle_set(idleSet)
if state.CombatWeapon.value == 'AnusTwat' then
idleSet = set_combine(idleSet, sets.AnusTwat)
end
if state.CombatWeapon.value == 'TauretTwat' then
idleSet = set_combine(idleSet, sets.TauretTwat)
end
if state.CombatWeapon.value == 'TwatCento' then
idleSet = set_combine(idleSet, sets.TwatCento)
end
if state.CP.current == 'on' then
equip(sets.CP)
disable('back')
else
enable('back')
end
if state.Warp.current == 'on' then
equip(sets.Warp)
disable('ring1')
disable('ring2')
disable('ear1')
else
enable('ring1')
enable('ring2')
enable('ear1')
end
if state.MP.current == 'on' then
equip(sets.MP)
disable('Waist')
disable('Ear2')
else
enable('Waist')
enable('Ear2')
end
if state.TH.current == 'on' then
equip(sets.TH)
disable('Feet')
disable('Head')
else
enable('Feet')
enable('Head')
end
if state.Dynamis.current == 'on' then
equip(sets.Dynamis)
disable('Neck')
disable('Feet')
else
enable('Neck')
disable('Feet')
end
return idleSet
end
function customize_melee_set(meleeSet)
if state.CombatWeapon.value == 'AnusTwat' then
meleeSet = set_combine(meleeSet, sets.AnusTwat)
end
if state.CombatWeapon.value == 'TauretTwat' then
meleeSet = set_combine(meleeSet, sets.TauretTwat)
end
if state.CombatWeapon.value == 'TwatCento' then
meleeSet = set_combine(meleeSet, sets.TwatCento)
end
if state.CP.current == 'on' then
equip(sets.CP)
disable('back')
else
enable('back')
end
if state.Warp.current == 'on' then
equip(sets.Warp)
disable('ring1')
disable('ring2')
disable ('ear1')
else
enable('ring1')
enable('ring2')
enable ('ear1')
end
if state.MP.current == 'on' then
equip(sets.MP)
disable('Waist')
disable('Ear2')
else
enable('Waist')
enable('Ear2')
end
if state.TH.current == 'on' then
equip(sets.TH)
disable('Feet')
disable('Head')
else
enable('Feet')
enable('Head')
end
if state.Dynamis.current == 'on' then
equip(sets.Dynamis)
disable('Neck')
else
enable('Neck')
end
return meleeSet
end
-- Function to display the current relevant user state when doing an update.
-- Set eventArgs.handled to true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
local msg = '[ Melee'
if state.CombatForm.has_value then
msg = msg .. ' (' .. state.CombatForm.value .. ')'
end
msg = msg .. ': '
msg = msg .. state.OffenseMode.value
if state.HybridMode.value ~= 'Normal' then
msg = msg .. '/' .. state.HybridMode.value
end
msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value .. ' ]'
if state.DefenseMode.value ~= 'None' then
msg = msg .. '[ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ' ]'
end
if state.Kiting.value then
msg = msg .. '[ Kiting Mode: ON ]'
end
msg = msg .. ' ]'
add_to_chat(123, msg)
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Custom event hooks? I don't know what the *** any of this means, but seems important to Mnk...
-------------------------------------------------------------------------------------------------------------------
-- 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
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
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
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))
else
info.impetus_hit_count = 0
end
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function determine_haste_group()
classes.CustomMeleeGroups:clear()
if DW == true then
if DW_needed <= 1 then
classes.CustomMeleeGroups:append('MaxHaste')
elseif DW_needed > 1 and DW_needed <= 9 then
classes.CustomMeleeGroups:append('HighHaste')
elseif DW_needed > 9 and DW_needed <= 21 then
classes.CustomMeleeGroups:append('MidHaste')
elseif DW_needed > 21 and DW_needed <= 38 then
classes.CustomMeleeGroups:append('LowHaste')
elseif DW_needed > 38 then
classes.CustomMeleeGroups:append('')
end
end
end
function job_self_command(cmdParams, eventArgs)
gearinfo(cmdParams, eventArgs)
end
function gearinfo(cmdParams, eventArgs)
if cmdParams[1] == 'gearinfo' then
if type(tonumber(cmdParams[2])) == 'number' then
if tonumber(cmdParams[2]) ~= DW_needed then
DW_needed = tonumber(cmdParams[2])
DW = true
end
elseif type(cmdParams[2]) == 'string' then
if cmdParams[2] == 'false' then
DW_needed = 0
DW = false
end
end
if type(tonumber(cmdParams[3])) == 'number' then
if tonumber(cmdParams[3]) ~= Haste then
Haste = tonumber(cmdParams[3])
end
end
if type(cmdParams[4]) == 'string' then
if cmdParams[4] == 'true' then
moving = true
elseif cmdParams[4] == 'false' then
moving = false
end
end
if not midaction() then
job_update()
end
end
end
-- Automatically loads a Macro Set by: (Pallet,Book)
function select_default_macro_book()
if player.sub_job == 'SAM' then
set_macro_page(1, 5)
elseif player.sub_job == 'WAR' then
set_macro_page(2, 5)
elseif player.sub_job == 'RUN' then
set_macro_page(3, 5)
elseif player.sub_job == 'DRG' then
set_macro_page(5, 5)
elseif player.sub_job == 'BLU' then
set_macro_page(6, 5)
elseif player.sub_job == 'THF' then
set_macro_page(9, 5)
elseif player.sub_job == 'NIN' then
set_macro_page(10, 5)
else
set_macro_page(1, 5)
end
end
function set_lockstyle()
send_command('wait 2; input /lockstyleset ' .. lockstyleset)
end
Asura.Sirris
サーバ: Asura
Game: FFXI
Posts: 730
By Asura.Sirris 2020-10-05 01:04:56
google bokura pastebin, his are pretty simple compared to most butt still have the essentials
I use Bokura's luas for everything but BST, MNK included. His stuff is really good even if a bit dated.
[+]
Asura.Seizan
サーバ: Asura
Game: FFXI
Posts: 124
By Asura.Seizan 2020-10-10 07:44:58
Do you have a link to said spreadsheet?
MNK sheet
Thank you so much. What can I use in place of the Tatenashi pieces until I get them for these two WSes?
Code
Tornado Kick (Footwork):
Knobkierrie
Kendatsuba +1
Monk's +2 (Aug)
Sherida
Moonshade AttTP
Tatenashi Haramaki +1
Herculean (4%TA,10STR,20acc/att)
Niqmaddu
Gere Ring
Segomo (STR+ DA)
Moonbow +1
Tatenashi Haidate +1
Anchorite +3
Code
Howling Fist:
Knobkierrie
Kendatsuba +1
Monk's +2 (Aug)
Sherida
Moonshade AttTP
Tatenashi Haramaki +1
Herculean (4%TA,10STR,20acc/att)
Niqmaddu
Gere Ring
Segomo (STR+ DA)
Moonbow +1
Tatenashi Haidate +1
Herculean (4%TA,10STR,20acc/att)
In that Sheet, isnt the base delay 10 points off? Should be 270, not 280?
By SimonSes 2020-10-10 08:01:36
In that Sheet, isnt the base delay 10 points off? Should be 270, not 280?
There is gift MA 10 few cells below.
Asura.Seizan
サーバ: Asura
Game: FFXI
Posts: 124
By Asura.Seizan 2020-10-10 08:54:08
Right i see it now, ty:)
Cerberus.Tikal
サーバ: Cerberus
Game: FFXI
Posts: 4945
By Cerberus.Tikal 2020-10-16 17:23:24
Have MNK Group 2 merits choices changed since the start of this guide? Is there a current meta for them?
Asura.Sechs
サーバ: Asura
Game: FFXI
Posts: 10104
By Asura.Sechs 2020-10-16 17:30:52
Penance and Formless Strikes are situational and both nice.
Ignore Invigorate.
Mantra is situationally nice and hated by all the DRKs in your pt.
[+]
Siren.Mosin
By Siren.Mosin 2020-10-16 17:33:13
agree with sechs, group 1 is ka rate and counter rate 5/5
edit*
saw you only asked about group 2
I’m HELP I AM TRAPPED IN 2006 PLEASE SEND A TIME MACHINE, carry on
[+]
Fenrir.Ramzus
サーバ: Fenrir
Game: FFXI
Posts: 1387
By Fenrir.Ramzus 2020-10-16 20:57:37
5/5 penance 5/5 mantra and blast linkin park when the DRKs cry
[+]
Asura.Sechs
サーバ: Asura
Game: FFXI
Posts: 10104
By Asura.Sechs 2020-10-17 04:17:58
A more personal insight:
1) Mantra
I love it, if it were for me I'd use it constantly. If you have multiple MNKs in the pt you can alternate to keep it up almost all of the time.
2) Penance
If you're lowmanning, it's really good. Penance + Shijin Spiral + Subtle Blow II with just you and not much else TPing on the monster, and wooow, what a difference. Penance can't be kept up 100% of the time but if you have 2+ monks you can get close to that.
The problem I have with Penance is that when you go with large groups it doesn't really matter much, because of the huge amount of tp feed.
3) Formless Strikes
In content where you alternate magic/physical resistances and there's monsters who use Invincible, it's nice.
I think this works well for Divergence, in some zones when there's a mispull, it can give you a small edge.
It's... it's not really a big deal though, let's face it.
Personally I keep 5/5 Mantra and 5/5 Formless most of the time because I'm lazy, going for Penance if I'm helping some friends with lowmen stuff etc.
[+]
By Taint 2020-10-17 07:41:27
5/5 penance 4/5 mantra 1/5 Formless
Penance is one of the key reasons to bring a MNK and one of the better abilities in the game.
Mantra is a true party buff, situational but useful.
Formless I seldom use but having access to it helps for the few times it is useful.
Cerberus.Tikal
サーバ: Cerberus
Game: FFXI
Posts: 4945
By Cerberus.Tikal 2020-10-19 14:20:31
Why is MNK used for HTBF Odin? Because of the significant subtle blow?
Asura.Eiryl
By Asura.Eiryl 2020-10-19 14:22:06
Why is MNK used for HTBF Odin anything?
Because of the significant subtle blow?
High HP, "easy" Meva build (while maintaining "high" dps) too
[+]
By Taint 2020-10-19 14:35:25
Kenda+1 is an incredible DD/Meva set.
Maligance is an incredible DT/Meva set.
Two of the best JAs in the game with Penance and Impetus.
High HP, High White Damage, High WS damage. Low mob TP Feed. Counter builds for those NMs that like to MS or 100fist.
Its pretty much the perfect FFXI DPS job, only missing a magic WS for those fights/party builds.
Ragnarok.Lowen
サーバ: Ragnarok
Game: FFXI
Posts: 316
By Ragnarok.Lowen 2020-10-19 15:04:26
I think one of the only real shortcomings of MNK at this point is the total lack of ability to contribute to a Darkness skillchain. If your target is weak to Light though, hoo boy.
[+]
By Autocast 2020-10-31 06:37:33
On the community guide, I assume JSE+2 neck in Vsmite set is for cap attack, but what about non cap attack?
By SimonSes 2020-10-31 06:59:48
On the community guide, I assume JSE+2 neck in Vsmite set is for cap attack, but what about non cap attack?
Fotia
|
|