|
The Parthenon: A Warrior's Kyklos
Server: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2017-10-18 09:19:06
Sulevia'a Gauntlets are a great piece until you get Argosy Mufflers +1. Also as a random not make sure you replace your Apate Ring for Flamma Ring so you actually receive the set bonus from using Flamma Zucchetto +2.
Lol, I can't believe I've forgotten the ring.
Edit:
For the record I was referring to this comment about replacements for HQ Argosy from a few pages back.
Quote: If we toss HQ argosy out, then your looking at Flamma +2 head definitely, well augmented valorous Hands / Body, well augmented Odyssean legs, WAR AF+3 feet or possibly Flamma +2 feet. If you don't want to spin the wheel on random augments then Flamma +2 Body / Hands / Legs will serve though it has no attack or Multi-Attack.
There was no mention of Sulevia's Gauntlets for hands, so I thought I would ask.
Phoenix.Budah
Server: Phoenix
Game: FFXI
Posts: 1
By Phoenix.Budah 2017-11-01 23:15:45
Is there an updated dps calculator for WAR. The latest one that I have found was from 2016 and requires massive amounts of updating. Would seem perfect if the DPS calculator could be stored with the guide.
Asura.Saevel
Server: Asura
Game: FFXI
Posts: 9911
By Asura.Saevel 2017-11-02 06:41:41
Cerberus.Shadowmeld said: »Zulfiqar: 28 DMG 20 STR 23 acc 7 atk
That's insane. Is that a DM augment or Taupe stone?
Looks like Taupe, I've seen values like those before when chucking taupe on the Zulf to see what it gets.
Server: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2017-11-02 08:25:49
Yeah, it was a Taupe Stone.
Sylph.Oraen
Server: Sylph
Game: FFXI
Posts: 2087
By Sylph.Oraen 2017-11-06 23:16:49
With the introduction of Flamma +2, how much have the optimal gearsets for WAR been shaken up? I know there was that big conversation a bit back about Flamma head/feet being extremely attractive options for Reso at attack cap, but are there other pieces that fit into sets as either highly competitive choices or just plain BiS options? Already picked up head and feet after that discussion, so curious on other pieces people might recommend.
I have access to the majority of gear, outside of +3 pieces and some of the more rare/expensive HQs. I just wanted to get some advice on what pieces would be good stopgaps until BiS options or what have become the new BiS choices. WAR is my first venture into 2H DD gearing, so apologies for the questions, but I want to make sure I'm not overlooking some gear from inexperience.
Ragnarok.Ejiin
Server: Ragnarok
Game: FFXI
Posts: 528
By Ragnarok.Ejiin 2017-11-07 00:15:14
I don't think any other piece has BiS potential, but I'd say the entire Flamma +2 set is a solid stopgap for WS in attack capped situations once you factor in the set bonus.
Outside of that, if you have easy access to Valorous and don't mind the RNG grind, you can get very competitive augments for both TP/WS.
Sylph.Oraen
Server: Sylph
Game: FFXI
Posts: 2087
By Sylph.Oraen 2017-11-07 01:08:20
I have a smithing friend working on Argosy legs, so I'll grab Flamma body/hands this month, then. Thanks for the advice.
I based my current TP set off of the Great Sword A Tier set in the OP, as ever attaining QA3 Valorous seems to be a pipedream for me. With my current set, I have a DA5 Valorous body and I'd be substituting AF+2 legs in place of +3 and Flamma +2 feet in place of AF+3. Are there any suggestions you have for swaps for that set?
In regards to weapons, my current Zulfiqar has 19 damage, 18 STR, 24 acc/atk, and 3 DA, but I've also been eyeing that Raetic GS, even just the NQ, particularly after Snaps' recent posts. I've read that Ragnarok has lost a lot of its appeal with the power creep on new weapons, but I'm still hazy on what my end goal for GSword should be.
Apologies for all the questions, and I really appreciate the help.
By Darksparksnot 2017-11-07 01:42:53
I found myself using reso on t4 zerg only, and not even all of them, i also use run dd or blu. Very limited use for me, 90% of my time engaged is probably ambuscade.
Ragnarok.Ejiin
Server: Ragnarok
Game: FFXI
Posts: 528
By Ragnarok.Ejiin 2017-11-07 01:59:06
All sounds good.
Zuliqar is def a solid option to replace Rag, but I'd keep a close eye on accuracy for WS, esp in your MS sets.
My personal example: When I started using my MS set for HELM/WoC zergs, I was very unimpressed with the damage increase. Spreadsheets said it should be massive, but I couldn't even beat other WARs that were just using Argosy +1 for MS Reso. Using Ragnarok, max vorseals, getting SV mads/honor march and sushi, it never crossed my mind that accuracy was uncapped. Almost about to give up on the MS set, we decided to do a torpor instead of attunement on Albumen and boom:
Needless to say, even with all that accuracy from Rag and other sources, I still needed a bit more to see the true potential. Instead of breaking even/losing to the Argosy +1 WARs, I was now beating them by a good 7-10% until they made MS sets of their own.
tl;dr Zuliqar is great, but sometimes the lost accuracy can matter.
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2017-11-07 02:05:23
Raetic Algol actually has a fair bit of accuracy. It only has 27 less acc than Ragnarok (HQ 22). My Zulqifar has Acc +20 on it and Raetic NQ is still ahead of that by 22. I think in this case you would be better off swapping out of one your crit damage pieces for more accuracy instead of a weapon swap.
Ragnarok.Ejiin
Server: Ragnarok
Game: FFXI
Posts: 528
By Ragnarok.Ejiin 2017-11-07 02:09:13
Yeah, I don't think I realized Raetic had that much accuracy until checking just now and haven't really used WAR since it was added. I think people can avoid Zuliqar/Ragnarok altogether now and just get a NQ Raetic Algol.
By Darksparksnot 2017-11-07 02:13:35
I don't think minor adjust in gear is a thing on zergs, like ejiin pointed is better to swap 1 buff for acc.
Sylph.Oraen
Server: Sylph
Game: FFXI
Posts: 2087
By Sylph.Oraen 2017-11-07 02:14:58
All really good advice, really appreciate the help.
For an MS set, you'd just be aiming for 5/5 STR/crit dmg Valorous, right? I originally was thinking Boii feet, but your mention of accuracy kind of has me ruling those out.
Ragnarok.Ejiin
Server: Ragnarok
Game: FFXI
Posts: 528
By Ragnarok.Ejiin 2017-11-07 02:21:27
Ideally you want STR+15, Crit. damage +4% or STR+10, Crit. damage +5% with any amount of accuracy/attack being a bonus.
Asura.Saevel
Server: Asura
Game: FFXI
Posts: 9911
By Asura.Saevel 2017-11-07 08:01:29
All sounds good.
Zuliqar is def a solid option to replace Rag, but I'd keep a close eye on accuracy for WS, esp in your MS sets.
My personal example: When I started using my MS set for HELM/WoC zergs, I was very unimpressed with the damage increase. Spreadsheets said it should be massive, but I couldn't even beat other WARs that were just using Argosy +1 for MS Reso. Using Ragnarok, max vorseals, getting SV mads/honor march and sushi, it never crossed my mind that accuracy was uncapped. Almost about to give up on the MS set, we decided to do a torpor instead of attunement on Albumen and boom:
Needless to say, even with all that accuracy from Rag and other sources, I still needed a bit more to see the true potential. Instead of breaking even/losing to the Argosy +1 WARs, I was now beating them by a good 7-10% until they made MS sets of their own.
tl;dr Zuliqar is great, but sometimes the lost accuracy can matter.
Aren't you on record as saying that DD's only need 1050 because BRD's exist? Back then I mentioned that accuracy can't be ignored and you ridiculed and insulted me.
You should check out Monte +1 sets, the extra Store TP lets you pair down and pile on multi-attack to go along with it's 5 TA. Of course it suffers from acc problems even more then Zulf so situations are situations.
Ragnarok.Ejiin
Server: Ragnarok
Game: FFXI
Posts: 528
By Ragnarok.Ejiin 2017-11-07 08:17:23
Aren't you on record as saying that DD's only need 1050 because BRD's exist? Back then I mentioned that accuracy can't be ignored and you ridiculed and insulted me.
You got called out because you refused to admit accuracy swaps exist and you were advocating using only 1 high accuracy set in all situations regardless of buffs. In this specific example, 1050 accuracy is enough... until you swap to a MS set, then you need that extra accuracy from an additional buff or weap/gear swaps.
Asura.Saevel
Server: Asura
Game: FFXI
Posts: 9911
By Asura.Saevel 2017-11-07 08:39:30
You got called out because you refused to admit accuracy swaps exist and you were advocating using only 1 high accuracy set in all situations regardless of buffs
No I didn't.. that was the strawman you created. I advised that 1100 acc should be the target for DD's to shoot for and the adjust from there, and that WS and TP sets should have the same accuracy for the exact problem you ran into. This was advice given to newer WAR's. It was also relating to the "super high end sets" you were creating that don't function on super high end content due to needing to swap to higher accuracy sets. I also mentioned tuning for Store TP to which you said, *** store TP cause SAM's roll exists, without thinking that SAM's roll takes you to the next x-hit level, meaning you still need to factor in where you start at.
Asura.Saevel
Server: Asura
Game: FFXI
Posts: 9911
By Asura.Saevel 2017-11-07 08:54:15
I've read that Ragnarok has lost a lot of its appeal with the power creep on new weapons, but I'm still hazy on what my end goal for GSword should be.
For awhile now Rag has just been for when you ~really~ needed the accuracy. Monte +1 and Zulfiqar have been the go to weapons for pure Resolution spam, assuming you can sustain the acc requirements. Awhile back I did a comparison on their cycle times and it's Monte +1 -> Rag -> Zulf for WS speed with Zulf being right around Rag +/- depending on augments. Monte +1's TA 5 and 11 Store TP really mean a lot for WS spam, but you do take a hit on acc so it's a situational option.
By Blazed1979 2017-11-07 09:17:34
All sounds good.
Zuliqar is def a solid option to replace Rag, but I'd keep a close eye on accuracy for WS, esp in your MS sets.
My personal example: When I started using my MS set for HELM/WoC zergs, I was very unimpressed with the damage increase. Spreadsheets said it should be massive, but I couldn't even beat other WARs that were just using Argosy +1 for MS Reso. Using Ragnarok, max vorseals, getting SV mads/honor march and sushi, it never crossed my mind that accuracy was uncapped. Almost about to give up on the MS set, we decided to do a torpor instead of attunement on Albumen and boom:
Needless to say, even with all that accuracy from Rag and other sources, I still needed a bit more to see the true potential. Instead of breaking even/losing to the Argosy +1 WARs, I was now beating them by a good 7-10% until they made MS sets of their own.
tl;dr Zuliqar is great, but sometimes the lost accuracy can matter. ***I want to come back now.
look at the beautiful *** reso! my ***'s hard
[+]
Server: Fenrir
Game: FFXI
Posts: 1001
By Fenrir.Cherrywine 2017-11-07 09:28:27
That is an amazing Resolution...
Hitting the accuracy requirement is obviously important. How you get there is important, also. Equipment can offer traits that cannot be replicated with songs/bubbles/rolls: WS DMG and CRIT DMG are excellent examples of this. So, for sure, if you can get the accuracy you need from support jobs, gear for the traits that are unique and push your DPS to the limit.
Asura.Saevel
Server: Asura
Game: FFXI
Posts: 9911
By Asura.Saevel 2017-11-07 09:55:32
It's STR / CHD augmented gear then getting a little lucky on the pDiff and MA rolls. In your lua you can add a rule for Resolution to check if buffactive Mighty Strikes and put on the specialized set. Combining MS with Savagery Warcry is a beautiful thing.
By Pankas 2017-11-09 09:22:44
And i'm wondering, where can i see such lua :).
Anyone... Pretty please...
Asura.Saevel
Server: Asura
Game: FFXI
Posts: 9911
By Asura.Saevel 2017-11-09 12:10:56
Depends on what lua your using, different ones used different logic.
Basically looks something like this
Code elseif spell.english == 'Resolution' then
if buffactive["Mighty Strikes"] then
equip(sets.ResolutionMA)
send_command('@input /echo MS Resolution Set')
else
equip(sets.Resolution)
send_command('@input /echo Resolution Set')
end
Asura.Fiasko
By Asura.Fiasko 2017-11-09 12:11:10
This has a Mighty Strikes set for Resolution, Upheaval, King's Justice. To add it to any other WS sets just create a new set with .MS at the end of each set name.
(Example: sets.WS.Stardiver.MS / sets.WS.Stardiver.MidACC.MS / sets.WS.Stardiver.HighACC.MS)
Code -- *** Credit goes to Flippant for helping me with Gearswap *** --
-- ** I Use Some of Motenten's Functions ** --
function get_sets()
AccIndex = 1
AccArray = {"LowACC","MidACC","HighACC","MaxACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below. Most of These Sets Are Empty So You Need To Edit Them On Your Own. Remember To Check What The Combined Set Is For Each Sets. --
WeaponIndex = 1
WeaponArray = {"Conqueror","Ragnarok","Bravura","Chango","Random"} -- Default Main Weapon Is Conqueror. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
IdleIndex = 1
IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement --
Armor = 'None'
Twilight = 'None'
Retaliation = 'OFF' -- Set Default Retaliation ON or OFF Here --
Samurai_Roll = 'OFF' -- Set Default SAM Roll ON or OFF Here --
target_distance = 5 -- Set Default Distance Here --
select_default_macro_book() -- Change Default Macro Book At The End --
-- Gavialis Helm --
elements = {}
elements.equip = {head="Gavialis Helm"}
sc_map = {SC1="UkkosFury", SC2="KingsJustice", SC3="Berserk"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
sets.Idle = {}
-- Idle/Town Sets --
sets.Idle.Regen = {}
sets.Idle.Regen.Conqueror = set_combine(sets.Idle.Regen,{
main="Conqueror",
sub="Utu Grip"})
sets.Idle.Regen.Ragnarok = set_combine(sets.Idle.Regen,{
main="Ragnarok",
sub="Utu Grip"})
sets.Idle.Regen.Bravura = set_combine(sets.Idle.Regen,{
main="Bravura",
sub="Utu Grip",})
sets.Idle.Regen.Chango = set_combine(sets.Idle.Regen,{
main="Chango",
sub="Utu Grip"})
sets.Idle.Regen.Random = set_combine(sets.Idle.Regen,{})
sets.Idle.Movement = set_combine(sets.Idle.Regen,{
feet="Hermes' Sandals +1"})
sets.Idle.Movement.Conqueror = set_combine(sets.Idle.Movement,{
main="Conqueror",
sub="Utu Grip"})
sets.Idle.Movement.Ragnarok = set_combine(sets.Idle.Movement,{
main="Ragnarok",
sub="Utu Grip"})
sets.Idle.Movement.Bravura = set_combine(sets.Idle.Movement,{
main="Bravura",
sub="Utu Grip",})
sets.Idle.Movement.Chango = set_combine(sets.Idle.Movement,{
main="Chango",
sub="Utu Grip"})
sets.Idle.Movement.Random = set_combine(sets.Idle.Movement,{})
sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
-- TP Base Set --
sets.TP = {}
-- Conqueror(AM3 Down) TP Sets --
sets.TP.Conqueror = {}
sets.TP.Conqueror.MidACC = set_combine(sets.TP.Conqueror,{})
sets.TP.Conqueror.HighACC = set_combine(sets.TP.Conqueror.MidACC,{})
sets.TP.Conqueror.MaxACC = set_combine(sets.TP.Conqueror.HighACC,{})
-- Conqueror(AM3 Up) TP Sets --
sets.TP.Conqueror.AM3 = set_combine(sets.TP.Conqueror,{})
sets.TP.Conqueror.MidACC.AM3 = set_combine(sets.TP.Conqueror.AM3,{})
sets.TP.Conqueror.HighACC.AM3 = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
sets.TP.Conqueror.MaxACC.AM3 = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
-- Conqueror(AM3 Down: SAM Roll) TP Sets --
sets.TP.Conqueror.STP = set_combine(sets.TP.Conqueror,{})
sets.TP.Conqueror.MidACC.STP = set_combine(sets.TP.Conqueror.MidACC,{})
sets.TP.Conqueror.HighACC.STP = set_combine(sets.TP.Conqueror.HighACC,{})
sets.TP.Conqueror.MaxACC.STP = set_combine(sets.TP.Conqueror.MaxACC,{})
-- Conqueror(AM3 Up: SAM Roll) TP Sets --
sets.TP.Conqueror.AM3.STP = set_combine(sets.TP.Conqueror.AM3,{})
sets.TP.Conqueror.MidACC.AM3.STP = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
sets.TP.Conqueror.HighACC.AM3.STP = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
sets.TP.Conqueror.MaxACC.AM3.STP = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
-- Ragnarok TP Sets --
sets.TP.Ragnarok = {}
sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{})
sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{})
sets.TP.Ragnarok.MaxACC = set_combine(sets.TP.Ragnarok.HighACC,{})
-- Ragnarok(SAM Roll) TP Sets --
sets.TP.Ragnarok.STP = set_combine(sets.TP.Ragnarok,{})
sets.TP.Ragnarok.MidACC.STP = set_combine(sets.TP.Ragnarok.STP,{})
sets.TP.Ragnarok.HighACC.STP = set_combine(sets.TP.Ragnarok.MidACC.STP,{})
sets.TP.Ragnarok.MaxACC.STP = set_combine(sets.TP.Ragnarok.HighACC.STP,{})
-- Bravura TP Sets --
sets.TP.Bravura = {}
sets.TP.Bravura.MidACC = set_combine(sets.TP.Bravura,{})
sets.TP.Bravura.MaxACC = set_combine(sets.TP.Bravura.HighACC,{})
-- Bravura(SAM Roll) TP Sets --
sets.TP.Bravura.STP = set_combine(sets.TP.Bravura,{})
sets.TP.Bravura.MidACC.STP = set_combine(sets.TP.Bravura.STP,{})
sets.TP.Bravura.HighACC.STP = set_combine(sets.TP.Bravura.MidACC.STP,{})
sets.TP.Bravura.MaxACC.STP = set_combine(sets.TP.Bravura.HighACC.STP,{})
-- Chango TP Sets --
sets.TP.Chango = {}
sets.TP.Chango.MidACC = set_combine(sets.TP.Chango,{})
sets.TP.Chango.HighACC = set_combine(sets.TP.Chango.MidACC,{})
sets.TP.Chango.MaxACC = set_combine(sets.TP.Chango.HighACC,{})
-- Chango(SAM Roll) TP Sets --
sets.TP.Chango.STP = set_combine(sets.TP.Chango,{})
sets.TP.Chango.MidACC.STP = set_combine(sets.TP.Chango.MidACC,{})
sets.TP.Chango.HighACC.STP = set_combine(sets.TP.Chango.HighACC,{})
sets.TP.Chango.MaxACC.STP = set_combine(sets.TP.Chango.MaxACC,{})
-- Random TP Sets --
sets.TP.Random = {}
sets.TP.Random.MidACC = set_combine(sets.TP.Random,{})
sets.TP.Random.HighACC = set_combine(sets.TP.Random.MidACC,{})
sets.TP.Random.MaxACC = set_combine(sets.TP.Random.HighACC,{})
-- Random(SAM Roll) TP Sets --
sets.TP.Random.STP = set_combine(sets.TP.Random,{})
sets.TP.Random.MidACC.STP = set_combine(sets.TP.Random.MidACC,{})
sets.TP.Random.HighACC.STP = set_combine(sets.TP.Random.HighACC,{})
sets.TP.Random.MaxACC.STP = set_combine(sets.TP.Random.MaxACC,{})
-- Mighty Strikes TP Set --
sets.TP.MS = {
ammo="Yetshila",
feet="Boii Calligae +1",}
-- PDT/MDT Sets --
sets.PDT = {}
sets.MDT = {}
-- Hybrid/Kiting Sets --
sets.TP.Hybrid = {}
sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{
head="Pummeler's Mask +3",})
sets.Kiting = set_combine(sets.PDT,{feet="Hermes' Sandals +1"})
-- WS Base Set --
sets.WS = {}
-- Upheaval Sets --
sets.WS.Upheaval = {}
sets.WS.Upheaval.MidACC = set_combine(sets.WS.Upheaval,{})
sets.WS.Upheaval.HighACC = set_combine(sets.WS.Upheaval.MidACC,{})
sets.WS.Upheaval.MaxACC = set_combine(sets.WS.Upheaval.HighACC,{)
-- Upheaval(Might Strikes) Set --
sets.WS.Upheaval.MS = set_combine(sets.WS.Upheaval,{})
sets.WS.Upheaval.MidACC.MS = set_combine(sets.WS.Upheaval.MS,{})
sets.WS.Upheaval.HighACC.MS = set_combine(sets.WS.Upheaval.MidACC.MS,{})
sets.WS.Upheaval.MaxACC.MS = set_combine(sets.WS.Upheaval.HighACC.MS,{})
-- Ukko's Fury Sets --
sets.WS["Ukko's Fury"] = {}
sets.WS["Ukko's Fury"].MidACC = set_combine(sets.WS["Ukko's Fury"],{})
sets.WS["Ukko's Fury"].HighACC = set_combine(sets.WS["Ukko's Fury"].MidACC,{})
sets.WS["Ukko's Fury"].MaxACC = set_combine(sets.WS["Ukko's Fury"].HighACC,{})
-- King's Justice Sets --
sets.WS["King's Justice"] = {})
sets.WS["King's Justice"].HighACC = set_combine(sets.WS["King's Justice"].MidACC,{)
sets.WS["King's Justice"].MaxACC = set_combine(sets.WS["King's Justice"].HighACC,{})
-- King's Justice(Might Strikes) Set --
sets.WS["King's Justice"].MS = set_combine(sets.WS["King's Justice"],{})
sets.WS["King's Justice"].MidACC.MS = set_combine(sets.WS["King's Justice"].MS,{})
sets.WS["King's Justice"].HighACC.MS = set_combine(sets.WS["King's Justice"].MidACC.MS,{})
sets.WS["King's Justice"].MaxACC.MS = set_combine(sets.WS["King's Justice"].HighACC.MS,{})
-- Metatron Torment Set --
sets.WS['Metatron Torment'] = {}
-- Fell Cleave Set --
sets.WS['Fell Cleave'] = {}
-- Resolution Sets --
sets.WS.Resolution = {}
sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{})
sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{})
sets.WS.Resolution.MaxACC = set_combine(sets.WS.Resolution.HighACC,{})
-- Resolution(Might Strikes) Set --
sets.WS.Resolution.MS = set_combine(sets.WS.Resolution,{})
sets.WS.Resolution.MidACC.MS = set_combine(sets.WS.Resolution.MS,{})
sets.WS.Resolution.HighACC.MS = set_combine(sets.WS.Resolution.MidACC.MS,{})
sets.WS.Resolution.MaxACC.MS = set_combine(sets.WS.Resolution.HighACC.MS,{})
-- Scourge Sets --
sets.WS.Scourge = {}
sets.WS.Scourge.MidACC = set_combine(sets.WS.Scourge,{})
sets.WS.Scourge.HighACC = set_combine(sets.WS.Scourge.MidACC,{})
sets.WS.Scourge.MaxACC = set_combine(sets.WS.Scourge.HighACC,{})
-- Savage Blade Sets --
sets.WS['Savage Blade'] = {}
sets.WS['Savage Blade'].MidACC = set_combine(sets.WS['Savage Blade'],{})
sets.WS['Savage Blade'].HighACC = set_combine(sets.WS['Savage Blade'].MidACC,{})
sets.WS['Savage Blade'].MaxACC = set_combine(sets.WS['Savage Blade'].HighACC,{})
-- Vorpal Blade Sets --
sets.WS['Vorpal Blade'] = {}
sets.WS['Vorpal Blade'].MidACC = set_combine(sets.WS['Vorpal Blade'],{})
sets.WS['Vorpal Blade'].HighACC = set_combine(sets.WS['Vorpal Blade'].MidACC,{})
sets.WS['Vorpal Blade'].MaxACC = set_combine(sets.WS['Vorpal Blade'].HighACC,{})
-- Cloudsplitter Sets --
sets.WS['Cloudsplitter'] = {}
sets.WS['Cloudsplitter'].MidACC = set_combine(sets.WS['Cloudsplitter'],{})
sets.WS['Cloudsplitter'].HighACC = set_combine(sets.WS['Cloudsplitter'].MidACC,{})
sets.WS['Cloudsplitter'].MaxACC = set_combine(sets.WS['Cloudsplitter'].HighACC,{})
-- Full Break Sets --
sets.WS['Full Break'] = {}
sets.WS['Full Break'].MidACC = set_combine(sets.WS['Full Break'],{})
sets.WS['Full Break'].HighACC = set_combine(sets.WS['Full Break'].MidACC,{})
sets.WS['Full Break'].MaxACC = set_combine(sets.WS['Full Break'].HighACC,{})
-- Armor Break Sets --
sets.WS['Armor Break'] = {}
sets.WS['Armor Break'].MidACC = set_combine(sets.WS['Armor Break'],{})
sets.WS['Armor Break'].HighACC = set_combine(sets.WS['Armor Break'].MidACC,{})
sets.WS['Armor Break'].MaxACC = set_combine(sets.WS['Armor Break'].HighACC,{})
-- Hexa Strike Sets --
sets.WS['Hexa Strike'] = {}
sets.WS['Hexa Strike'].MidACC = set_combine(sets.WS['Hexa Strike'],{})
sets.WS['Hexa Strike'].HighACC = set_combine(sets.WS['Hexa Strike'].MidACC,{})
sets.WS['Hexa Strike'].MaxACC = set_combine(sets.WS['Hexa Strike'].HighACC,{})
-- Judgement Sets --
sets.WS['Judgement'] = {}
sets.WS['Judgement'].MidACC = set_combine(sets.WS['Judgement'],{})
sets.WS['Judgement'].MaxACC = set_combine(sets.WS['Judgement'].HighACC,{})
-- Stardiver Sets --
sets.WS.Stardiver = {}
sets.WS.Stardiver.MidACC = set_combine(sets.WS.Stardiver,{})
sets.WS.Stardiver.HighACC = set_combine(sets.WS.Stardiver.MidACC,{})
sets.WS.Stardiver.MaxACC = set_combine(sets.WS.Stardiver.HighACC,{})
-- JA Sets --
sets.JA = {}
sets.JA.Berserk = {body="Pummeler's Lorica +3",feet="Agoge Calligae +1"}
sets.JA.Aggressor = {head="Pummeler's Mask +3",body="Agoge Lorica +1"}
sets.JA["Blood Rage"] = {body="Boii Lorica +1"}
sets.JA.Warcry = {head="Agoge Mask +1"}
sets.JA.Tomahawk = {ammo="Thr. Tomahawk",feet="Agoge Calligae +1"}
sets.JA["Mighty Strikes"] = {hands="Agoge Mufflers +1"}
sets.JA["Warrior's Charge"] = {hands="Agoge Cuisses +1"}
sets.JA.Provoke = {}
-- Waltz Set --
sets.Waltz = {}
sets.Precast = {}
-- Fastcast Set --
sets.Precast.FastCast = {}
sets.Midcast = {}
-- Magic Haste Set --
sets.Midcast.Haste = set_combine(sets.PDT,{})
end
function pretarget(spell,action)
if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
send_command('input /item "Echo Drops" <me>')
elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
cancel_spell()
send_command('Aggressor')
elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
cancel_spell()
send_command('ThirdEye')
elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
if spell.english ~= 'Bora Axe' and spell.name ~= 'Mistral Axe' and spell.target.distance > target_distance then -- Cancel WS If You Are Out Of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Out of Range]')
return
end
end
end
function precast(spell,action)
if spell.type == "WeaponSkill" then
if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
cancel_spell()
add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
return
else
equipSet = sets.WS
if equipSet[spell.english] then
equipSet = equipSet[spell.english]
end
if equipSet[AccArray[AccIndex]] then
equipSet = equipSet[AccArray[AccIndex]]
end
if buffactive['Mighty Strikes'] and equipSet["MS"] then -- MS Set --
equipSet = equipSet["MS"]
end
if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
equipSet = set_combine(equipSet,elements.equip)
end
if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
end
if (spell.english == "Ukko's Fury" or spell.english == "King's Justice" or spell.english == "Resolution") and (player.tp > 2990 or buffactive.Sekkanoki) then
equipSet = set_combine(equipSet,{ear1="Kokou's Earring"}) -- 3000 TP or Sekkanoki: Equip Kokou's Earring --
end
if spell.english == "Upheaval" then
if player.tp > 2990 or buffactive.Sekkanoki then
equipSet = set_combine(equipSet,{ear1="Odnowa Earring +1"}) -- 3000 TP or Sekkanoki: Equip Terra's Earring --
end
end
equip(equipSet)
end
elseif spell.type == "JobAbility" then
if sets.JA[spell.english] then
equip(sets.JA[spell.english])
end
elseif spell.action_type == 'Magic' then
if spell.english == 'Utsusemi: Ni' then
if buffactive['Copy Image (3)'] then
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
return
else
equip(sets.Precast.FastCast)
end
else
equip(sets.Precast.FastCast)
end
elseif spell.type == "Waltz" then
refine_waltz(spell,action)
equip(sets.Waltz)
elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
cast_delay(0.2)
send_command('cancel Sneak')
end
if Twilight == 'Twilight' then
equip(sets.Twilight)
end
end
function midcast(spell,action)
if spell.action_type == 'Magic' then
if spell.english:startswith('Utsusemi') then
if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then -- Cancel Copy Image 1, 2 & 3 For Utsusemi: Ichi --
send_command('@wait 1.7;cancel Copy Image*')
end
equip(sets.Midcast.Haste)
elseif spell.english == 'Monomi: Ichi' then -- Cancel Sneak --
if buffactive['Sneak'] then
send_command('@wait 1.7;cancel sneak')
end
equip(sets.Midcast.Haste)
else
equip(sets.Midcast.Haste)
end
end
end
function aftercast(spell,action)
if not spell.interrupted then
if spell.type == "WeaponSkill" then
send_command('wait 0.2;gs c TP')
elseif spell.english == "Blood Rage" then -- Blood Rage Timer/Countdown --
timer_blood_rage()
send_command('wait 50;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
elseif spell.english == "Tomahawk" then -- Tomahawk Timer/Countdown --
timer_tomahawk()
send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Tomahawk";input /echo '..spell.name..': [OFF]')
end
end
status_change(player.status)
end
function status_change(new,old)
check_equip_lock()
if Armor == 'PDT' then
equip(sets.PDT)
elseif Armor == 'MDT' then
equip(sets.MDT)
elseif Armor == 'Kiting' then
equip(sets.Kiting)
elseif new == 'Engaged' then
equipSet = sets.TP
if Armor == 'Hybrid' and equipSet["Hybrid"] then
equipSet = equipSet["Hybrid"]
end
if equipSet[WeaponArray[WeaponIndex]] then
equipSet = equipSet[WeaponArray[WeaponIndex]]
end
if equipSet[AccArray[AccIndex]] then
equipSet = equipSet[AccArray[AccIndex]]
end
if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
equipSet = equipSet["AM3"]
end
if buffactive["Mighty Strikes"] then -- Mighty Strikes TP Set --
equipSet = set_combine(equipSet,sets.TP.MS)
end
if buffactive.Retaliation and Retaliation == 'ON' then -- Use Retaliation Toggle For Retaliation TP Set --
equipSet = set_combine(equipSet,sets.TP.Retaliation)
end
equip(equipSet)
else
equipSet = sets.Idle
if equipSet[IdleArray[IdleIndex]] then
equipSet = equipSet[IdleArray[IdleIndex]]
end
if equipSet[WeaponArray[WeaponIndex]] then
equipSet = equipSet[WeaponArray[WeaponIndex]]
end
if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
end
if world.area:endswith('Adoulin') then
equipSet = set_combine(equipSet,{body="Councilor's Garb"})
end
equip(equipSet)
end
if Twilight == 'Twilight' then
equip(sets.Twilight)
end
end
function buff_change(buff,gain)
buff = string.lower(buff)
if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
if gain then
send_command('timers create "Aftermath: Lv.3" 180 down;wait 150;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 15;input /echo Aftermath: Lv.3 [WEARING OFF IN 15 SEC.];wait 5;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
else
send_command('timers delete "Aftermath: Lv.3"')
add_to_chat(123,'AM3: [OFF]')
end
elseif buff == "blood rage" and not gain then
send_command('timers delete "Blood Rage"')
elseif buff == 'weakness' then -- Weakness Timer --
if gain then
send_command('timers create "Weakness" 300 up')
else
send_command('timers delete "Weakness"')
end
end
if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP --
equip({neck="Berserker's Torque"})
else
if not midaction() then
status_change(player.status)
end
end
end
-- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
function self_command(command)
if command == 'C1' then -- Accuracy Toggle --
AccIndex = (AccIndex % #AccArray) + 1
add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
status_change(player.status)
elseif command == 'C17' then -- Main Weapon Toggle --
WeaponIndex = (WeaponIndex % #WeaponArray) + 1
add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
status_change(player.status)
elseif command == 'C5' then -- Auto Update Gear Toggle --
status_change(player.status)
add_to_chat(158,'Auto Update Gear')
elseif command == 'C2' then -- Hybrid Toggle --
if Armor == 'Hybrid' then
Armor = 'None'
add_to_chat(123,'Hybrid Set: [Unlocked]')
else
Armor = 'Hybrid'
add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
end
status_change(player.status)
elseif command == 'C7' then -- PDT Toggle --
if Armor == 'PDT' then
Armor = 'None'
add_to_chat(123,'PDT Set: [Unlocked]')
else
Armor = 'PDT'
add_to_chat(158,'PDT Set: [Locked]')
end
status_change(player.status)
elseif command == 'C15' then -- MDT Toggle --
if Armor == 'MDT' then
Armor = 'None'
add_to_chat(123,'MDT Set: [Unlocked]')
else
Armor = 'MDT'
add_to_chat(158,'MDT Set: [Locked]')
end
status_change(player.status)
elseif command == 'C12' then -- Kiting Toggle --
if Armor == 'Kiting' then
Armor = 'None'
add_to_chat(123,'Kiting Set: [Unlocked]')
else
Armor = 'Kiting'
add_to_chat(158,'Kiting Set: [Locked]')
end
status_change(player.status)
elseif command == 'C10' then -- Retaliation Toggle --
if Retaliation == 'ON' then
Retaliation = 'OFF'
add_to_chat(123,'Retaliation Set: [Unlocked]')
else
Retaliation = 'ON'
add_to_chat(158,'Retaliation Set: [Locked]')
end
status_change(player.status)
elseif command == 'C18' then -- SAM Roll Toggle --
if Samurai_Roll == 'ON' then
Samurai_Roll = 'OFF'
add_to_chat(123,'SAM Roll: [OFF]')
else
Samurai_Roll = 'ON'
add_to_chat(158,'SAM Roll: [ON]')
end
status_change(player.status)
elseif command == 'C9' then -- Attack Toggle --
if Attack == 'ON' then
Attack = 'OFF'
add_to_chat(123,'Attack: [OFF]')
else
Attack = 'ON'
add_to_chat(158,'Attack: [ON]')
end
status_change(player.status)
elseif command == 'C3' then -- Twilight Toggle --
if Twilight == 'Twilight' then
Twilight = 'None'
add_to_chat(123,'Twilight Set: [Unlocked]')
else
Twilight = 'Twilight'
add_to_chat(158,'Twilight Set: [locked]')
end
status_change(player.status)
elseif command == 'C8' then -- Distance Toggle --
if player.target.distance then
target_distance = math.floor(player.target.distance*10)/10
add_to_chat(158,'Distance: '..target_distance)
else
add_to_chat(123,'No Target Selected')
end
elseif command == 'C6' then -- Idle Toggle --
IdleIndex = (IdleIndex % #IdleArray) + 1
add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
status_change(player.status)
elseif command == 'TP' then
add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
elseif command:match('^SC%d$') then
send_command('//' .. sc_map[command])
end
end
function check_equip_lock() -- Lock Equipment Here --
if player.equipment.left_ring == "Warp Ring" or player.equipment.left_ring == "Capacity Ring" or player.equipment.right_ring == "Warp Ring" or player.equipment.right_ring == "Capacity Ring" then
disable('ring1','ring2')
elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
disable('back')
else
enable('ring1','ring2','back')
end
end
function timer_blood_rage()
local duration = 60
send_command('timers create "Blood Rage" '..tostring(duration)..' down')
end
function timer_tomahawk()
local duration = 90
send_command('timers create "Tomahawk" '..tostring(duration)..' down')
end
function refine_waltz(spell,action)
if spell.type ~= 'Waltz' then
return
end
if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
return
end
local newWaltz = spell.english
local waltzID
local missingHP
if spell.target.type == "SELF" then
missingHP = player.max_hp - player.hp
elseif spell.target.isallymember then
local target = find_player_in_alliance(spell.target.name)
local est_max_hp = target.hp / (target.hpp/100)
missingHP = math.floor(est_max_hp - target.hp)
end
if missingHP ~= nil then
if player.sub_job == 'DNC' then
if missingHP < 40 and spell.target.name == player.name then
add_to_chat(8,'Full HP!')
cancel_spell()
return
elseif missingHP < 150 then
newWaltz = 'Curing Waltz'
waltzID = 190
elseif missingHP < 300 then
newWaltz = 'Curing Waltz II'
waltzID = 191
else
newWaltz = 'Curing Waltz III'
waltzID = 192
end
else
return
end
end
local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
local tpCost = waltzTPCost[newWaltz]
local downgrade
if player.tp < tpCost and not buffactive.trance then
if player.tp < 20 then
add_to_chat(8, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
cancel_spell()
return
elseif player.tp < 35 then
newWaltz = 'Curing Waltz'
elseif player.tp < 50 then
newWaltz = 'Curing Waltz II'
end
downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
end
if newWaltz ~= spell.english then
send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
if downgrade then
add_to_chat(158, downgrade)
end
cancel_spell()
return
end
if missingHP > 0 then
add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
end
end
function find_player_in_alliance(name)
for i,v in ipairs(alliance) do
for k,p in ipairs(v) do
if p.name == name then
return p
end
end
end
end
function sub_job_change(newSubjob, oldSubjob)
select_default_macro_book()
end
function set_macro_page(set,book)
if not tonumber(set) then
add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
return
end
if set < 1 or set > 10 then
add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
return
end
if book then
if not tonumber(book) then
add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
return
end
if book < 1 or book > 20 then
add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
return
end
send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
else
send_command('@input /macro set '..tostring(set))
end
end
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'SAM' then
set_macro_page(1, 2)
elseif player.sub_job == 'DNC' then
set_macro_page(3, 2)
elseif player.sub_job == 'NIN' then
set_macro_page(10, 2)
else
set_macro_page(1, 2)
end
end
Fenrir.Snaps
Server: Fenrir
Game: FFXI
Posts: 1139
By Fenrir.Snaps 2017-11-09 12:26:09
If you use motes you can do something like this.
Code function job_setup()
state.Buff['Mighty Strikes'] = buffactive['Mighty Strikes'] or false
end
function init_gear_sets()
sets.buff['Mighty Strikes'] = {}
end
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' and state.Buff['Mighty Strikes'] then
equip(sets.buffs['Mighty Strikes'])
end
end
You can get even fancier if you want to have different MS gear for different WS but I suspect most people won't.
Asura.Fiasko
By Asura.Fiasko 2017-11-09 14:17:04
If you use motes you can do something like this.
Code function job_setup()
state.Buff['Mighty Strikes'] = buffactive['Mighty Strikes'] or false
end
function init_gear_sets()
sets.buff['Mighty Strikes'] = {}
end
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' and state.Buff['Mighty Strikes'] then
equip(sets.buffs['Mighty Strikes'])
end
end
You can get even fancier if you want to have different MS gear for different WS but I suspect most people won't.
Because I use Great Axe often I really should make a second MS set for Upheaval trying for VIT and CritDMG. Until then does anyone recommend just using the STR/CritDMG Valorous pieces over the normal WS gear or just swap to Yetshila and Boii +1 and call it a day? Basically how much VIT should I give up for CritDMG with MS up?
By DaneBlood 2017-11-12 23:18:37
reutrning layer here.
just finsinhed up getting some base gear from alluvian skirmish and mixing it with some bayld gear as well
1: Which augment should i go for?
2: anything i should pickup from plasma gear ?
3: any other advice to go next for improving gear ?
Server: Asura
Game: FFXI
Posts: 487
By Asura.Beatsbytaru 2017-11-12 23:34:52
1. Just burn a couple stones to put an augment line on each piece, but don't really waste time/gil with this. This isn't suppose to be a long term set.
2. Chaac belt is nice for TH+ and Asperity necklace is still a pretty decent starting option for neck piece. The rest can be skipped.
3. Start spamming Ambuscade once you have a decent 119 set.
[+]
By Pankas 2017-11-16 06:46:13
This has a Mighty Strikes set for Resolution, Upheaval, King's Justice. To add it to any other WS sets just create a new set with .MS at the end of each set name.
(Example: sets.WS.Stardiver.MS / sets.WS.Stardiver.MidACC.MS / sets.WS.Stardiver.HighACC.MS)
Code -- *** Credit goes to Flippant for helping me with Gearswap *** --
-- ** I Use Some of Motenten's Functions ** --
function get_sets()
AccIndex = 1
AccArray = {"LowACC","MidACC","HighACC","MaxACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below. Most of These Sets Are Empty So You Need To Edit Them On Your Own. Remember To Check What The Combined Set Is For Each Sets. --
WeaponIndex = 1
WeaponArray = {"Conqueror","Ragnarok","Bravura","Chango","Random"} -- Default Main Weapon Is Conqueror. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
IdleIndex = 1
IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement --
Armor = 'None'
Twilight = 'None'
Retaliation = 'OFF' -- Set Default Retaliation ON or OFF Here --
Samurai_Roll = 'OFF' -- Set Default SAM Roll ON or OFF Here --
target_distance = 5 -- Set Default Distance Here --
select_default_macro_book() -- Change Default Macro Book At The End --
-- Gavialis Helm --
elements = {}
elements.equip = {head="Gavialis Helm"}
sc_map = {SC1="UkkosFury", SC2="KingsJustice", SC3="Berserk"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
sets.Idle = {}
-- Idle/Town Sets --
sets.Idle.Regen = {}
sets.Idle.Regen.Conqueror = set_combine(sets.Idle.Regen,{
main="Conqueror",
sub="Utu Grip"})
sets.Idle.Regen.Ragnarok = set_combine(sets.Idle.Regen,{
main="Ragnarok",
sub="Utu Grip"})
sets.Idle.Regen.Bravura = set_combine(sets.Idle.Regen,{
main="Bravura",
sub="Utu Grip",})
sets.Idle.Regen.Chango = set_combine(sets.Idle.Regen,{
main="Chango",
sub="Utu Grip"})
sets.Idle.Regen.Random = set_combine(sets.Idle.Regen,{})
sets.Idle.Movement = set_combine(sets.Idle.Regen,{
feet="Hermes' Sandals +1"})
sets.Idle.Movement.Conqueror = set_combine(sets.Idle.Movement,{
main="Conqueror",
sub="Utu Grip"})
sets.Idle.Movement.Ragnarok = set_combine(sets.Idle.Movement,{
main="Ragnarok",
sub="Utu Grip"})
sets.Idle.Movement.Bravura = set_combine(sets.Idle.Movement,{
main="Bravura",
sub="Utu Grip",})
sets.Idle.Movement.Chango = set_combine(sets.Idle.Movement,{
main="Chango",
sub="Utu Grip"})
sets.Idle.Movement.Random = set_combine(sets.Idle.Movement,{})
sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
-- TP Base Set --
sets.TP = {}
-- Conqueror(AM3 Down) TP Sets --
sets.TP.Conqueror = {}
sets.TP.Conqueror.MidACC = set_combine(sets.TP.Conqueror,{})
sets.TP.Conqueror.HighACC = set_combine(sets.TP.Conqueror.MidACC,{})
sets.TP.Conqueror.MaxACC = set_combine(sets.TP.Conqueror.HighACC,{})
-- Conqueror(AM3 Up) TP Sets --
sets.TP.Conqueror.AM3 = set_combine(sets.TP.Conqueror,{})
sets.TP.Conqueror.MidACC.AM3 = set_combine(sets.TP.Conqueror.AM3,{})
sets.TP.Conqueror.HighACC.AM3 = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
sets.TP.Conqueror.MaxACC.AM3 = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
-- Conqueror(AM3 Down: SAM Roll) TP Sets --
sets.TP.Conqueror.STP = set_combine(sets.TP.Conqueror,{})
sets.TP.Conqueror.MidACC.STP = set_combine(sets.TP.Conqueror.MidACC,{})
sets.TP.Conqueror.HighACC.STP = set_combine(sets.TP.Conqueror.HighACC,{})
sets.TP.Conqueror.MaxACC.STP = set_combine(sets.TP.Conqueror.MaxACC,{})
-- Conqueror(AM3 Up: SAM Roll) TP Sets --
sets.TP.Conqueror.AM3.STP = set_combine(sets.TP.Conqueror.AM3,{})
sets.TP.Conqueror.MidACC.AM3.STP = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
sets.TP.Conqueror.HighACC.AM3.STP = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
sets.TP.Conqueror.MaxACC.AM3.STP = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
-- Ragnarok TP Sets --
sets.TP.Ragnarok = {}
sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{})
sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{})
sets.TP.Ragnarok.MaxACC = set_combine(sets.TP.Ragnarok.HighACC,{})
-- Ragnarok(SAM Roll) TP Sets --
sets.TP.Ragnarok.STP = set_combine(sets.TP.Ragnarok,{})
sets.TP.Ragnarok.MidACC.STP = set_combine(sets.TP.Ragnarok.STP,{})
sets.TP.Ragnarok.HighACC.STP = set_combine(sets.TP.Ragnarok.MidACC.STP,{})
sets.TP.Ragnarok.MaxACC.STP = set_combine(sets.TP.Ragnarok.HighACC.STP,{})
-- Bravura TP Sets --
sets.TP.Bravura = {}
sets.TP.Bravura.MidACC = set_combine(sets.TP.Bravura,{})
sets.TP.Bravura.MaxACC = set_combine(sets.TP.Bravura.HighACC,{})
-- Bravura(SAM Roll) TP Sets --
sets.TP.Bravura.STP = set_combine(sets.TP.Bravura,{})
sets.TP.Bravura.MidACC.STP = set_combine(sets.TP.Bravura.STP,{})
sets.TP.Bravura.HighACC.STP = set_combine(sets.TP.Bravura.MidACC.STP,{})
sets.TP.Bravura.MaxACC.STP = set_combine(sets.TP.Bravura.HighACC.STP,{})
-- Chango TP Sets --
sets.TP.Chango = {}
sets.TP.Chango.MidACC = set_combine(sets.TP.Chango,{})
sets.TP.Chango.HighACC = set_combine(sets.TP.Chango.MidACC,{})
sets.TP.Chango.MaxACC = set_combine(sets.TP.Chango.HighACC,{})
-- Chango(SAM Roll) TP Sets --
sets.TP.Chango.STP = set_combine(sets.TP.Chango,{})
sets.TP.Chango.MidACC.STP = set_combine(sets.TP.Chango.MidACC,{})
sets.TP.Chango.HighACC.STP = set_combine(sets.TP.Chango.HighACC,{})
sets.TP.Chango.MaxACC.STP = set_combine(sets.TP.Chango.MaxACC,{})
-- Random TP Sets --
sets.TP.Random = {}
sets.TP.Random.MidACC = set_combine(sets.TP.Random,{})
sets.TP.Random.HighACC = set_combine(sets.TP.Random.MidACC,{})
sets.TP.Random.MaxACC = set_combine(sets.TP.Random.HighACC,{})
-- Random(SAM Roll) TP Sets --
sets.TP.Random.STP = set_combine(sets.TP.Random,{})
sets.TP.Random.MidACC.STP = set_combine(sets.TP.Random.MidACC,{})
sets.TP.Random.HighACC.STP = set_combine(sets.TP.Random.HighACC,{})
sets.TP.Random.MaxACC.STP = set_combine(sets.TP.Random.MaxACC,{})
-- Mighty Strikes TP Set --
sets.TP.MS = {
ammo="Yetshila",
feet="Boii Calligae +1",}
-- PDT/MDT Sets --
sets.PDT = {}
sets.MDT = {}
-- Hybrid/Kiting Sets --
sets.TP.Hybrid = {}
sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{
head="Pummeler's Mask +3",})
sets.Kiting = set_combine(sets.PDT,{feet="Hermes' Sandals +1"})
-- WS Base Set --
sets.WS = {}
-- Upheaval Sets --
sets.WS.Upheaval = {}
sets.WS.Upheaval.MidACC = set_combine(sets.WS.Upheaval,{})
sets.WS.Upheaval.HighACC = set_combine(sets.WS.Upheaval.MidACC,{})
sets.WS.Upheaval.MaxACC = set_combine(sets.WS.Upheaval.HighACC,{)
-- Upheaval(Might Strikes) Set --
sets.WS.Upheaval.MS = set_combine(sets.WS.Upheaval,{})
sets.WS.Upheaval.MidACC.MS = set_combine(sets.WS.Upheaval.MS,{})
sets.WS.Upheaval.HighACC.MS = set_combine(sets.WS.Upheaval.MidACC.MS,{})
sets.WS.Upheaval.MaxACC.MS = set_combine(sets.WS.Upheaval.HighACC.MS,{})
-- Ukko's Fury Sets --
sets.WS["Ukko's Fury"] = {}
sets.WS["Ukko's Fury"].MidACC = set_combine(sets.WS["Ukko's Fury"],{})
sets.WS["Ukko's Fury"].HighACC = set_combine(sets.WS["Ukko's Fury"].MidACC,{})
sets.WS["Ukko's Fury"].MaxACC = set_combine(sets.WS["Ukko's Fury"].HighACC,{})
-- King's Justice Sets --
sets.WS["King's Justice"] = {})
sets.WS["King's Justice"].HighACC = set_combine(sets.WS["King's Justice"].MidACC,{)
sets.WS["King's Justice"].MaxACC = set_combine(sets.WS["King's Justice"].HighACC,{})
-- King's Justice(Might Strikes) Set --
sets.WS["King's Justice"].MS = set_combine(sets.WS["King's Justice"],{})
sets.WS["King's Justice"].MidACC.MS = set_combine(sets.WS["King's Justice"].MS,{})
sets.WS["King's Justice"].HighACC.MS = set_combine(sets.WS["King's Justice"].MidACC.MS,{})
sets.WS["King's Justice"].MaxACC.MS = set_combine(sets.WS["King's Justice"].HighACC.MS,{})
-- Metatron Torment Set --
sets.WS['Metatron Torment'] = {}
-- Fell Cleave Set --
sets.WS['Fell Cleave'] = {}
-- Resolution Sets --
sets.WS.Resolution = {}
sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{})
sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{})
sets.WS.Resolution.MaxACC = set_combine(sets.WS.Resolution.HighACC,{})
-- Resolution(Might Strikes) Set --
sets.WS.Resolution.MS = set_combine(sets.WS.Resolution,{})
sets.WS.Resolution.MidACC.MS = set_combine(sets.WS.Resolution.MS,{})
sets.WS.Resolution.HighACC.MS = set_combine(sets.WS.Resolution.MidACC.MS,{})
sets.WS.Resolution.MaxACC.MS = set_combine(sets.WS.Resolution.HighACC.MS,{})
-- Scourge Sets --
sets.WS.Scourge = {}
sets.WS.Scourge.MidACC = set_combine(sets.WS.Scourge,{})
sets.WS.Scourge.HighACC = set_combine(sets.WS.Scourge.MidACC,{})
sets.WS.Scourge.MaxACC = set_combine(sets.WS.Scourge.HighACC,{})
-- Savage Blade Sets --
sets.WS['Savage Blade'] = {}
sets.WS['Savage Blade'].MidACC = set_combine(sets.WS['Savage Blade'],{})
sets.WS['Savage Blade'].HighACC = set_combine(sets.WS['Savage Blade'].MidACC,{})
sets.WS['Savage Blade'].MaxACC = set_combine(sets.WS['Savage Blade'].HighACC,{})
-- Vorpal Blade Sets --
sets.WS['Vorpal Blade'] = {}
sets.WS['Vorpal Blade'].MidACC = set_combine(sets.WS['Vorpal Blade'],{})
sets.WS['Vorpal Blade'].HighACC = set_combine(sets.WS['Vorpal Blade'].MidACC,{})
sets.WS['Vorpal Blade'].MaxACC = set_combine(sets.WS['Vorpal Blade'].HighACC,{})
-- Cloudsplitter Sets --
sets.WS['Cloudsplitter'] = {}
sets.WS['Cloudsplitter'].MidACC = set_combine(sets.WS['Cloudsplitter'],{})
sets.WS['Cloudsplitter'].HighACC = set_combine(sets.WS['Cloudsplitter'].MidACC,{})
sets.WS['Cloudsplitter'].MaxACC = set_combine(sets.WS['Cloudsplitter'].HighACC,{})
-- Full Break Sets --
sets.WS['Full Break'] = {}
sets.WS['Full Break'].MidACC = set_combine(sets.WS['Full Break'],{})
sets.WS['Full Break'].HighACC = set_combine(sets.WS['Full Break'].MidACC,{})
sets.WS['Full Break'].MaxACC = set_combine(sets.WS['Full Break'].HighACC,{})
-- Armor Break Sets --
sets.WS['Armor Break'] = {}
sets.WS['Armor Break'].MidACC = set_combine(sets.WS['Armor Break'],{})
sets.WS['Armor Break'].HighACC = set_combine(sets.WS['Armor Break'].MidACC,{})
sets.WS['Armor Break'].MaxACC = set_combine(sets.WS['Armor Break'].HighACC,{})
-- Hexa Strike Sets --
sets.WS['Hexa Strike'] = {}
sets.WS['Hexa Strike'].MidACC = set_combine(sets.WS['Hexa Strike'],{})
sets.WS['Hexa Strike'].HighACC = set_combine(sets.WS['Hexa Strike'].MidACC,{})
sets.WS['Hexa Strike'].MaxACC = set_combine(sets.WS['Hexa Strike'].HighACC,{})
-- Judgement Sets --
sets.WS['Judgement'] = {}
sets.WS['Judgement'].MidACC = set_combine(sets.WS['Judgement'],{})
sets.WS['Judgement'].MaxACC = set_combine(sets.WS['Judgement'].HighACC,{})
-- Stardiver Sets --
sets.WS.Stardiver = {}
sets.WS.Stardiver.MidACC = set_combine(sets.WS.Stardiver,{})
sets.WS.Stardiver.HighACC = set_combine(sets.WS.Stardiver.MidACC,{})
sets.WS.Stardiver.MaxACC = set_combine(sets.WS.Stardiver.HighACC,{})
-- JA Sets --
sets.JA = {}
sets.JA.Berserk = {body="Pummeler's Lorica +3",feet="Agoge Calligae +1"}
sets.JA.Aggressor = {head="Pummeler's Mask +3",body="Agoge Lorica +1"}
sets.JA["Blood Rage"] = {body="Boii Lorica +1"}
sets.JA.Warcry = {head="Agoge Mask +1"}
sets.JA.Tomahawk = {ammo="Thr. Tomahawk",feet="Agoge Calligae +1"}
sets.JA["Mighty Strikes"] = {hands="Agoge Mufflers +1"}
sets.JA["Warrior's Charge"] = {hands="Agoge Cuisses +1"}
sets.JA.Provoke = {}
-- Waltz Set --
sets.Waltz = {}
sets.Precast = {}
-- Fastcast Set --
sets.Precast.FastCast = {}
sets.Midcast = {}
-- Magic Haste Set --
sets.Midcast.Haste = set_combine(sets.PDT,{})
end
function pretarget(spell,action)
if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
send_command('input /item "Echo Drops" <me>')
elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
cancel_spell()
send_command('Aggressor')
elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
cancel_spell()
send_command('ThirdEye')
elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
if spell.english ~= 'Bora Axe' and spell.name ~= 'Mistral Axe' and spell.target.distance > target_distance then -- Cancel WS If You Are Out Of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Out of Range]')
return
end
end
end
function precast(spell,action)
if spell.type == "WeaponSkill" then
if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
cancel_spell()
add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
return
else
equipSet = sets.WS
if equipSet[spell.english] then
equipSet = equipSet[spell.english]
end
if equipSet[AccArray[AccIndex]] then
equipSet = equipSet[AccArray[AccIndex]]
end
if buffactive['Mighty Strikes'] and equipSet["MS"] then -- MS Set --
equipSet = equipSet["MS"]
end
if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
equipSet = set_combine(equipSet,elements.equip)
end
if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
end
if (spell.english == "Ukko's Fury" or spell.english == "King's Justice" or spell.english == "Resolution") and (player.tp > 2990 or buffactive.Sekkanoki) then
equipSet = set_combine(equipSet,{ear1="Kokou's Earring"}) -- 3000 TP or Sekkanoki: Equip Kokou's Earring --
end
if spell.english == "Upheaval" then
if player.tp > 2990 or buffactive.Sekkanoki then
equipSet = set_combine(equipSet,{ear1="Odnowa Earring +1"}) -- 3000 TP or Sekkanoki: Equip Terra's Earring --
end
end
equip(equipSet)
end
elseif spell.type == "JobAbility" then
if sets.JA[spell.english] then
equip(sets.JA[spell.english])
end
elseif spell.action_type == 'Magic' then
if spell.english == 'Utsusemi: Ni' then
if buffactive['Copy Image (3)'] then
cancel_spell()
add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
return
else
equip(sets.Precast.FastCast)
end
else
equip(sets.Precast.FastCast)
end
elseif spell.type == "Waltz" then
refine_waltz(spell,action)
equip(sets.Waltz)
elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
cast_delay(0.2)
send_command('cancel Sneak')
end
if Twilight == 'Twilight' then
equip(sets.Twilight)
end
end
function midcast(spell,action)
if spell.action_type == 'Magic' then
if spell.english:startswith('Utsusemi') then
if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then -- Cancel Copy Image 1, 2 & 3 For Utsusemi: Ichi --
send_command('@wait 1.7;cancel Copy Image*')
end
equip(sets.Midcast.Haste)
elseif spell.english == 'Monomi: Ichi' then -- Cancel Sneak --
if buffactive['Sneak'] then
send_command('@wait 1.7;cancel sneak')
end
equip(sets.Midcast.Haste)
else
equip(sets.Midcast.Haste)
end
end
end
function aftercast(spell,action)
if not spell.interrupted then
if spell.type == "WeaponSkill" then
send_command('wait 0.2;gs c TP')
elseif spell.english == "Blood Rage" then -- Blood Rage Timer/Countdown --
timer_blood_rage()
send_command('wait 50;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
elseif spell.english == "Tomahawk" then -- Tomahawk Timer/Countdown --
timer_tomahawk()
send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Tomahawk";input /echo '..spell.name..': [OFF]')
end
end
status_change(player.status)
end
function status_change(new,old)
check_equip_lock()
if Armor == 'PDT' then
equip(sets.PDT)
elseif Armor == 'MDT' then
equip(sets.MDT)
elseif Armor == 'Kiting' then
equip(sets.Kiting)
elseif new == 'Engaged' then
equipSet = sets.TP
if Armor == 'Hybrid' and equipSet["Hybrid"] then
equipSet = equipSet["Hybrid"]
end
if equipSet[WeaponArray[WeaponIndex]] then
equipSet = equipSet[WeaponArray[WeaponIndex]]
end
if equipSet[AccArray[AccIndex]] then
equipSet = equipSet[AccArray[AccIndex]]
end
if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
equipSet = equipSet["AM3"]
end
if buffactive["Mighty Strikes"] then -- Mighty Strikes TP Set --
equipSet = set_combine(equipSet,sets.TP.MS)
end
if buffactive.Retaliation and Retaliation == 'ON' then -- Use Retaliation Toggle For Retaliation TP Set --
equipSet = set_combine(equipSet,sets.TP.Retaliation)
end
equip(equipSet)
else
equipSet = sets.Idle
if equipSet[IdleArray[IdleIndex]] then
equipSet = equipSet[IdleArray[IdleIndex]]
end
if equipSet[WeaponArray[WeaponIndex]] then
equipSet = equipSet[WeaponArray[WeaponIndex]]
end
if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
end
if world.area:endswith('Adoulin') then
equipSet = set_combine(equipSet,{body="Councilor's Garb"})
end
equip(equipSet)
end
if Twilight == 'Twilight' then
equip(sets.Twilight)
end
end
function buff_change(buff,gain)
buff = string.lower(buff)
if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
if gain then
send_command('timers create "Aftermath: Lv.3" 180 down;wait 150;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 15;input /echo Aftermath: Lv.3 [WEARING OFF IN 15 SEC.];wait 5;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
else
send_command('timers delete "Aftermath: Lv.3"')
add_to_chat(123,'AM3: [OFF]')
end
elseif buff == "blood rage" and not gain then
send_command('timers delete "Blood Rage"')
elseif buff == 'weakness' then -- Weakness Timer --
if gain then
send_command('timers create "Weakness" 300 up')
else
send_command('timers delete "Weakness"')
end
end
if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP --
equip({neck="Berserker's Torque"})
else
if not midaction() then
status_change(player.status)
end
end
end
-- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
function self_command(command)
if command == 'C1' then -- Accuracy Toggle --
AccIndex = (AccIndex % #AccArray) + 1
add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
status_change(player.status)
elseif command == 'C17' then -- Main Weapon Toggle --
WeaponIndex = (WeaponIndex % #WeaponArray) + 1
add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
status_change(player.status)
elseif command == 'C5' then -- Auto Update Gear Toggle --
status_change(player.status)
add_to_chat(158,'Auto Update Gear')
elseif command == 'C2' then -- Hybrid Toggle --
if Armor == 'Hybrid' then
Armor = 'None'
add_to_chat(123,'Hybrid Set: [Unlocked]')
else
Armor = 'Hybrid'
add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
end
status_change(player.status)
elseif command == 'C7' then -- PDT Toggle --
if Armor == 'PDT' then
Armor = 'None'
add_to_chat(123,'PDT Set: [Unlocked]')
else
Armor = 'PDT'
add_to_chat(158,'PDT Set: [Locked]')
end
status_change(player.status)
elseif command == 'C15' then -- MDT Toggle --
if Armor == 'MDT' then
Armor = 'None'
add_to_chat(123,'MDT Set: [Unlocked]')
else
Armor = 'MDT'
add_to_chat(158,'MDT Set: [Locked]')
end
status_change(player.status)
elseif command == 'C12' then -- Kiting Toggle --
if Armor == 'Kiting' then
Armor = 'None'
add_to_chat(123,'Kiting Set: [Unlocked]')
else
Armor = 'Kiting'
add_to_chat(158,'Kiting Set: [Locked]')
end
status_change(player.status)
elseif command == 'C10' then -- Retaliation Toggle --
if Retaliation == 'ON' then
Retaliation = 'OFF'
add_to_chat(123,'Retaliation Set: [Unlocked]')
else
Retaliation = 'ON'
add_to_chat(158,'Retaliation Set: [Locked]')
end
status_change(player.status)
elseif command == 'C18' then -- SAM Roll Toggle --
if Samurai_Roll == 'ON' then
Samurai_Roll = 'OFF'
add_to_chat(123,'SAM Roll: [OFF]')
else
Samurai_Roll = 'ON'
add_to_chat(158,'SAM Roll: [ON]')
end
status_change(player.status)
elseif command == 'C9' then -- Attack Toggle --
if Attack == 'ON' then
Attack = 'OFF'
add_to_chat(123,'Attack: [OFF]')
else
Attack = 'ON'
add_to_chat(158,'Attack: [ON]')
end
status_change(player.status)
elseif command == 'C3' then -- Twilight Toggle --
if Twilight == 'Twilight' then
Twilight = 'None'
add_to_chat(123,'Twilight Set: [Unlocked]')
else
Twilight = 'Twilight'
add_to_chat(158,'Twilight Set: [locked]')
end
status_change(player.status)
elseif command == 'C8' then -- Distance Toggle --
if player.target.distance then
target_distance = math.floor(player.target.distance*10)/10
add_to_chat(158,'Distance: '..target_distance)
else
add_to_chat(123,'No Target Selected')
end
elseif command == 'C6' then -- Idle Toggle --
IdleIndex = (IdleIndex % #IdleArray) + 1
add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
status_change(player.status)
elseif command == 'TP' then
add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
elseif command:match('^SC%d$') then
send_command('//' .. sc_map[command])
end
end
function check_equip_lock() -- Lock Equipment Here --
if player.equipment.left_ring == "Warp Ring" or player.equipment.left_ring == "Capacity Ring" or player.equipment.right_ring == "Warp Ring" or player.equipment.right_ring == "Capacity Ring" then
disable('ring1','ring2')
elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
disable('back')
else
enable('ring1','ring2','back')
end
end
function timer_blood_rage()
local duration = 60
send_command('timers create "Blood Rage" '..tostring(duration)..' down')
end
function timer_tomahawk()
local duration = 90
send_command('timers create "Tomahawk" '..tostring(duration)..' down')
end
function refine_waltz(spell,action)
if spell.type ~= 'Waltz' then
return
end
if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
return
end
local newWaltz = spell.english
local waltzID
local missingHP
if spell.target.type == "SELF" then
missingHP = player.max_hp - player.hp
elseif spell.target.isallymember then
local target = find_player_in_alliance(spell.target.name)
local est_max_hp = target.hp / (target.hpp/100)
missingHP = math.floor(est_max_hp - target.hp)
end
if missingHP ~= nil then
if player.sub_job == 'DNC' then
if missingHP < 40 and spell.target.name == player.name then
add_to_chat(8,'Full HP!')
cancel_spell()
return
elseif missingHP < 150 then
newWaltz = 'Curing Waltz'
waltzID = 190
elseif missingHP < 300 then
newWaltz = 'Curing Waltz II'
waltzID = 191
else
newWaltz = 'Curing Waltz III'
waltzID = 192
end
else
return
end
end
local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
local tpCost = waltzTPCost[newWaltz]
local downgrade
if player.tp < tpCost and not buffactive.trance then
if player.tp < 20 then
add_to_chat(8, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
cancel_spell()
return
elseif player.tp < 35 then
newWaltz = 'Curing Waltz'
elseif player.tp < 50 then
newWaltz = 'Curing Waltz II'
end
downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
end
if newWaltz ~= spell.english then
send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
if downgrade then
add_to_chat(158, downgrade)
end
cancel_spell()
return
end
if missingHP > 0 then
add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
end
end
function find_player_in_alliance(name)
for i,v in ipairs(alliance) do
for k,p in ipairs(v) do
if p.name == name then
return p
end
end
end
end
function sub_job_change(newSubjob, oldSubjob)
select_default_macro_book()
end
function set_macro_page(set,book)
if not tonumber(set) then
add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
return
end
if set < 1 or set > 10 then
add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
return
end
if book then
if not tonumber(book) then
add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
return
end
if book < 1 or book > 20 then
add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
return
end
send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
else
send_command('@input /macro set '..tostring(set))
end
end
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'SAM' then
set_macro_page(1, 2)
elseif player.sub_job == 'DNC' then
set_macro_page(3, 2)
elseif player.sub_job == 'NIN' then
set_macro_page(10, 2)
else
set_macro_page(1, 2)
end
end
Thanks Fiasko, will try to go through it after work and try to accommodate this lua to my needs. Much appreciated
The Parthenon: A Warrior's Kyklos
The Parthenon is an ancient temple built by the Greeks, in Athens, to tribute their maiden Goddess, Athena. Athena is the goddess of wisdom, courage, law and justice, just warfare and strength. Kyklos is a term used by some classical Greek authors to describe what they saw as the political cycle.
In this guide, I hope that all Warriors can come together in one place and discuss our never ending cycle. From starting the job for the very first time or discussing the most optimal gear choices, all culminating in an effort to improve ourselves and others.
I stream regularly on Twitch where I can answer any questions or comments you may have. Consider dropping by and hanging out!
Table of Contents
Gear Set Table of Contents
Over the years I’ve developed a unique passion for Warrior. Its raw damage, its utility in almost every situation, and the mastery required to truly excel at it. I get a lot of PMs of people asking about Warrior, so in this guide I hope to spill my brain of what I’ve experienced and learned so far playing Warrior throughout my FFXI career.
If the only thing on you mind is pure DD, as I’m sure this is the case 90% of the time, then Warrior is certainly right up your alley. Warrior commands an impressive arsenal of Job Abilities, Weapons, Weapon Skills, and gear to make the job excel in almost any DD situation you put it in.
It doesn’t stop there, though. Warrior’s utility extends beyond just DD. Having access to an astounding amount of weapon skills primes it for being one of the best procing jobs for both Abyssea and Voidwatch. Most useful of all is Warrior’s access to 10 out of 13 ‘red weakness’ weapon skills with Samurai as sub job, and 13/13 being possible if you have the proper merits, gear and sub job.
Beyond that, warrior excels at killing many enemies at the same time, or “cleaving” which has become the popular term because the name of the weapon skill used is called Fell Cleave.
In today's current meta of 2019, Warrior fits in extremely well due to its DPS power from its SPs, utility in its access to very strong weapon selection in Polearm/Sword/Axe/Great Sword and Great Axe and its ability to increase the DPS
of everyone melee in the party with Warcry, Blood Rage and Tomahawk.
III: Abilities, Merits and Job Points
Warrior has many, many abilities, all of which serve a purpose depending on the situation. The addition of Job Points and Gifts have further strengthened these already strong abilities and traits.
Mighty Strikes: Level 1. 45 Second Duration. 1 Hour Recast. 45 Minute recast with 2100 Job Points.
The Holy Grail to all that’s Warrior. This ability allows all attacks to deal critical damage, even during WS. When used at the right time, with the right buffs, this ability will often allow you to deal unprecedented amounts of damage for the duration.
Can be extended to 60 second duration with Augmented Relic Hands.
Provoke: Level 5. 30 Second Recast.
This ability increases your Volatile enmity by 1800. It is useful for claiming, getting hate at the start of a fight, or pulling hate off job you don’t want to have hate.
Berserk increases your attack by 25% at the penalty of lowering your defense by 25%. In an update, Berserk now scales in potency with your level, giving Warrior a total of 35% attack at level 90. This is a very useful ability, as attack is a key component in how much damage you can do, which has become increasingly important in content like Dynamis Divergence Wave 3, where Frailty's potency is significantly decreased. The ultimate enhancement to this ability is Conqueror’s ‘Augment Berserk’, which increases the attack gained to 33.5% and raises your critical hit rate by 14%. Aggressor increases your accuracy by 25, but lowers your evasion as a penalty.
Berserk's duration can be extended to 3min 48second duration with Agoge Calligae +3 and Pummeler's lorica +3 when equiped for activation. Recast can be lowered as low as 4 minute 10 seconds with merits. Job Points increase Berserk attack by 2 attack per JP for a total of +40 attack.
Merit options: Although Aggressor was once very useful when accuracy was a major issue, I’d recommend 5/5 Berserk merits at this stage of the game.
Warcry and Savagery: Level 35 and 75. 30 Second Duration. 5 Minute Recast.
Raises the attack of the party members around you, but its best use comes from the augment on Agoge mask +3, which raises TP bonus by up to 70 for everyone in the party that are in range depending on Savagery merits. The best thing to remember about this ability is that it overwrites and can be overwritten by Blood Rage, so always make sure to talk to any other Warriors in your party about a planned order.
Duration can be extended up to 60 seconds with [https://www.bg-wiki.com/bg/Agoge_Mask_%2B1]Agoge mask +1[/url] when equipped for activation.
Merit options: 5/5 Savagery is a major boon when zerging things with Mighty Strikes with weapon skills that damage varies by TP. Easily the largest DPS Job ability for WAR outside of SPs.
Retaliation: Level 60. 3 Minute Duration. 3 Minute Recast.
Retaliation allows you to count an enemy’s attack with your own, but instead of negating the damage like Monk’s Counterstance, Retaliation gives you TP for the price of taking damage. This ability is useful when you’re one of a few DDs attacking an enemy, allowing you to build TP even faster than you normally would. The main drawback of this ability is the reduction of your movement speed, which can be annoying if you’re running around a lot.
Doubles or triples your next attack. Triple attack rate increases by 5% per merit after the first for a total of 20% with 5/5. Augment on War. Cuisses +2 also raises crit. hit rate by 1% per merit. While nice for those absurdly high WS numbers, sometimes it’s not even worth using due to the JA delay costing you more DPS than you’d gain, since in some situations your DA will be so high, DA procing from WC don’t really mean much.
Merit options: Not too amazing anymore outside of Epeen WS #s, but 5/5 Tomahawk is very situational also. Ideally you can keep merits in Warrior's Charge then swap it to Tomahawk when a fight calls for it.
Tomahawk: Level 75. 30 Second Duration. 3 Minute Recast.
Mostly useless, but the times you need it, you’ll be very happy you have it.
Duration can be extended up to 1 minute 30 seconds with merits. Decreases a monster’s weapon resistance by 25% and up to 30% with augment on War. Calligae +2 and maximum merits.
Merit options: Like mentioned before, with how easy it is to cap merits nowadays, consider meriting this when you come to a fight that needs it.
Restraint: Level 77. 5 Minute Duration. 10 Minute Recast.
Restraint increases your WS damage with each hit you land. The amount of WS damage increased from Restraint is doubled when wearing Ravager's mufflers +2.
Blood Rage: Level 87. 30 Second Duration. 5 Minute Recast.
Increases critical hit rate by 20% to anyone in your party within 13.9 radius around you. Extremely powerful for weapon skills that can crit, but also provides a substantial boost to melee damage. It can be very beneficial to make an order for this ability if you have more than one Warrior in your party to maximize its effectiveness.
Duration can be extended to 60 seconds when equiping Rvg. Lorica +2 for activation.
IV: Weapons and Weapon Skills
IV-1: Weapons
Warrior has access to many types of weapons, but I’ll just cover to most acceptable 2-handed weapon choices.
Ragnarok comes in first for Mighty Strikes zerging. The +accuracy allows it to make up for Warrior’s lack of skill for Great Sword and even exceed Conq/Ukon’s total accuracy potential. Acceptable to be used in highly buffed zergs.
Pros:
• MS Resolution is amazing.
• Fulltime crit. hit rate +14%.
• High accuracy.
• Can be used by 2 other jobs, mainly DRK, which is also a DD powerhouse.
Cons:
• Low delay makes it hard to x-hit.
• ODD only procs on the first hit.
• Terrible relic WS makes Aftermath not worth using.
The ultimate weapon choice for when you're utilizing skillchains. A multiple step skillchain ending with Radiance can be extremely potent if your party setup allows for it. King's Justice > Steel Cyclone > Upheaval > King's Justice > Upheaval will end with Light>Radiance. Chango itself gives Upheaval the unique ability to make Light with itself, which it otherwise can't do with other weapons.
Pros:
• Skillchaining.
• 10 STP and 500 TP bonus.
• Allows your Upheaval -> Upheaval to make Light.
Cons:
• All great axe weapon skills are kinda meh currently, so, overall, in a zerg situation with other DDS, it'll probably fall behind.
• Hardest ultimate to get if you don't have an Aeonic group.
Compared to Conqueror, Ukonvasara’s much easier to obtain. Aftermath is extremely potent with this weapon, doing triple damage 50% of the time with AM3, which equates to 4-6K crits fairly often. Only falls behind Ragnarok because of Great Axe's poor weaponskill choices.
Pros:
• Easier to Master.
• Easier to obtain than other ultimate weapons in terms of effort/reward ratio.
• Blood Rage is perfect for Ukko’s.
• ODD can proc on all hits of an attack round.
Cons:
• Relies heavily on outside buffers, mainly COR, and other Warriors for buffs.
• SE has recently taken a liking to adding monsters with crit. def. bonus.
• ODD doesn't proc on WS.
• Has been known to make people forget they have any other WS besides Ukko’s Fury.
The ultimate trophy weapon for Warrior. The attack and crit. boost to Berserk is very potent. Currently, Conqueror as at the bottom of the list of RMEA, only really excelling in situations you'll be making multi-step skillchains.
Pros:
• AM3, which is 40% DA and 20% TA, drastically increases TP gain, melee damage, and WS damage(can proc on 1st hit on any physical WS).
• Augments Berserk V increases berserk’s attack to 33.5% and adds 14% crit. hit rate.
• King’s Justice isn’t too terrible of a WS to trigger AM3 with.
Cons:
• Warrior’s high DA rate diminishes Conq’s AM3 effect.
• Berserk can be dispelled.
• Maintaining AM3 isn’t always easy. Any mistake, such as poor WS timing, not building 300% TP at the right time, or having to stand around for long periods of time can drastically reduce your DPS.
Although behind all the other ultimate weapons in terms of pure DPS potential, Bravura’s niche is survivability while maintaining decent DPS.
Pros:
• Very high accuracy.
• -DT Aftermath that allows you to use optimized hybrid builds.
• Additional Effect: Evasion Down lasts for about 40 seconds.
• Assuming they ever fix Metatron's additional effect, -18.75% defense down that lasts for up to 2 minutes.
Cons:
• Lowest DPS potential of the Ultimate Weapons.
• Hybrid builds are still possible for other weapons and usually a straight up –DT build used at the right time is going to be more beneficial.
Obtained as a drop from NMs in Rala Alluvion Skirmish or by trading 3 Mellidopt Wings- obtained from Yorcia Alluvion Skirmish, to the ??? near the Augural Conveyor.
Can be augmented by Divainy-Gamainy in the Inventors' coaliton. Duskslit for additional base damage. Snowslit for Accuracy and Attack. Leafslit for DA and STP. To see the full list of possible augments check out BGwiki.
Pros:
•Relativity easier to obtain than a 119 RME.
•Highest base damage Great Sword in the game.
•Good delay for x-hit.
•Highly customizable with augments.
Cons:
•High cost to obtain perfect augments.
Obtained from Yumcax's Wildskeeper Reive, this Great Axe is second only to Razorfury. Solid choice for those who want a free option to hold them over until better GAs are released.
Pros:
•Free.
•Easier to 5hit.
•Can be augmented with Occ. Attacks Twice.
Cons:
•If you don't get this from the Quest, obtaining this could become a real pain if you're unlucky.
IV-2: Weapon Skills
Resolution: 5 Hit. 100% STR Mod with 5/5 merits. Damage varies with TP.
Very powerful and consistent. When paired with Ragnarok and Mighty Strikes, arguably the best epeen weapon in the game. Becomes extremely useful when mobs have crit. def. bonus and very high evasion. Element gorget and belt are especially powerful, as their bonus carries over to all hits of the WS.
Ukko's Fury: 2 Hit. 60% STR Mod. Crit. Hit Varies With TP(20%/35%/55% for 100/200/300%).
Buffed and geared properly, Ukko’s Fury has the highest potential of damage out of all of Warrior’s WS(outside of Mighty Strikes). Aside from being very powerful on its own, Ukko's also has amazing WS properties, in that it can self light skillchain with itself and can also make light with Upheaval.
Upheaval: 4 Hit. 100% VIT Mod with 5/5 merits. Damage Varies With TP.
Opens up options for weapons that can’t use Ukko’s Fury. Very consistent damage, but the VIT mod kills its true potential. Powerful WS for mobs with crit. defense bonuses. Best WS to use when under the effect of Mighty Strikes if you don't have a Ragnarok.
Mainly used for its aftermath. Sadly the defense down almost never sticks on anything that matters.
Fell Cleave: 60% STR Mod. AoE Damage. Radius Varies With TP.
An amazingly useful WS. Can be used to kill many, many monsters in a very short period of time for faster drops or XP. Can also hit flying enemies such as Arimaspi if you cleave a monster that's close enough to hit both.
Raging Rush: 3 Hit. 35% STR Mod. Chance To Crit. Varies With TP.
Good abyssea WS if you’re working on +2 gear/Ukon. But due to its low STR mod and fTP, it will easily be outclassed by Ukko’s in abyssea and Upheaval outside of abyssea.
|
|