Gearswap Support Thread

Language: JP EN DE FR
New Items
2018-08-14
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 133 134 135 ... 144 145 146
 
Offline
Posts:
By 2018-04-10 19:59:47
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Asura.Chiaia
Online
Server: Asura
Game: FFXI
user: Demmis
Posts: 895
By Asura.Chiaia 2018-04-10 20:05:32
Link | Quote | Reply
 
something like this should work

if buffactive.gelus == 3 then
 
Offline
Posts:
By 2018-04-10 20:11:38
 Undelete | Edit  | Link | Quote | Reply
 
Post deleted by User.
 Asura.Summerl
Offline
Server: Asura
Game: FFXI
By Asura.Summerl 2018-04-11 10:05:36
Link | Quote | Reply
 
Hi all:

Trying to get this enmity button rule on my RUN gearswap to work so I can consolidate my enmity spells on BLU SJ to 2 keys. For some reason that I can't understand, the rule doesn't seem to work. The lua loads fine otherwise and functions without issue, but the intended idea of being able to hit my Jettatura macro and trigger Blitzstrahl (or Blank Gaze) when it's on cool down doesn't seem to happen. Any ideas?

What I believe is all the relevant code for BLU SJ in my RUN lua below.
Code

function job_setup()
 -- /BLU Spell Maps
blue_magic_maps = {}
blue_magic_maps.Enmity = S{'Blank Gaze', 'Geist Wall', 'Jettatura', 'Soporific', 'Poison Breath', 'Blitzstrahl', 'Sheep Song', 'Chaotic Eye'}
blue_magic_maps.Cure = S{'Wild Carrot'}
blue_magic_maps.Buffs = S{'Cocoon', 'Refueling'}
rayke_duration = 47
gambit_duration = 96
end

function init_gear_sets()

sets.midcast['Blue Magic'] = {}
sets.midcast['Blue Magic'].Enmity = sets.Enmity
sets.midcast['Blue Magic'].Cure = sets.midcast.Cure
sets.midcast['Blue Magic'].Buff = sets.midcast['Enhancing Magic']

end

function job_pretarget(spell, action, spellMap, eventArgs)
	if spell.english == "Jettatura" and windower.ffxi.get_spell_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		send_command('Blitzstrahl')
	end
	if spell.english == "Blitzstrahl" and windower.ffxi.get_ability_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		send_command('Chaotic Eye')
	end
	if spell.english == "Chaotic Eye" and windower.ffxi.get_ability_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		send_command('Poison Breath')
	end
	if spell.english == "Poison Breath" and windower.ffxi.get_ability_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		send_command('Blank Gaze')
	end
	if spell.english == "Sheep Song" and windower.ffxi.get_spell_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		send_command('Geist Wall')
	end
	if spell.english == "Geist Wall" and windower.ffxi.get_spell_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		send_command('Soporific')
	end
	if spell.type == 'JobAbility' and windower.ffxi.get_ability_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		return
	end
	if spell.action_type == 'Magic' and windower.ffxi.get_spell_recasts()[spell.recast_id] > 0 then
		cancel_spell()
		return
        end
end

function job_get_spell_map(spell, default_spell_map)
    if spell.skill == 'Blue Magic' then
        for category,spell_list in pairs(blue_magic_maps) do
            if spell_list:contains(spell.english) then
                return category
            end
        end
    end
end

 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 1982
By Ragnarok.Martel 2018-04-11 10:33:12
Link | Quote | Reply
 
You're using Chaotic eye, Poison breath, and blitztrahl as enmity spells? .... Why? Those are all terrible enmity spells.

Chaotic eye is 320 VE, 1 CE. Yes, it's cheap and has a low recast. But so does blank gaze. And Blank gaze is 320VE/320CE. With any reasonable amount of haste you should be able to push Blank Gaze recast down below the 3 second global recast cap and just spam blank gaze alone, tossing in the occasional Jettatura. (and of course the usual flash/foil)

Poison breath might have been appealing as an enmity spell at 75. Assuming it didn't get resisted to hell. But damage enmity has been nerfed no less than 3 times since then(was maybe a fourth..?) so to get significant enmity out of dealing damage, you need to be dealing A LOT of dmg. Poison breath is not going to do that.

Blitzstrahl is in the same boat. Except I don't think it has ever been a good enmity spell.
 Asura.Summerl
Offline
Server: Asura
Game: FFXI
By Asura.Summerl 2018-04-11 10:42:34
Link | Quote | Reply
 
That's good to know, I can swap those out for something else (stinking gas I'm guessing)

Still doesn't really solve the issue I'm having with the rule itself though.
 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 1982
By Ragnarok.Martel 2018-04-11 11:17:35
Link | Quote | Reply
 
Well, I wasn't trying to fix your GS issue with that post. If you hadn't been using some really weird spells for enmity I wouldn't have posted at all.

While, I see some possible inefficiencies in that rule, I haven't been able to pinpoint where the actual failure is. And I'm not subbed atm, so I can't test anything right now. So I only posted about the spell oddity.

The only thing I could think of atm would be that if you don't use shortcuts then sending a command that's just a spell name would probably just throw an error, or do nothing.

And yes, stinking gas would be a decent enmity spell. 320/320 CE/VE. Cast time is slightly slower than most, but the cost and recast are reasonable.
 Asura.Summerl
Offline
Server: Asura
Game: FFXI
By Asura.Summerl 2018-04-11 12:08:45
Link | Quote | Reply
 
Quote:
The only thing I could think of atm would be that if you don't use shortcuts then sending a command that's just a spell name would probably just throw an error, or do nothing.

This is likely the issue actually. I don't normally use that add on, and the code above is a copy paste of another lua with some edits made on my part. I'll either load shortcuts or rewrite the function when I have a chance. Thanks for your help.

Also, while attempting to make full use of your allotted blue magic points, what would you recommend be set for tank SJs?

I'm assuming I should sub out Blitstrahl, Chaotic Eye, and Poison breath (7 points opened) and sub in Stinking Gas and Diamondhide (5 points used)

Any recommendations for those last two points.
 Ragnarok.Martel
Offline
Server: Ragnarok
Game: FFXI
Posts: 1982
By Ragnarok.Martel 2018-04-11 13:26:29
Link | Quote | Reply
 
Well, for starters Diamondhide is a lvl 67 spell. So if this is for /blu, that's not gonna be usable.

Did you mean metallic body? If so skip that. It's totally useless. With subbed and merits BLU skill, you'd get a 74 dmg SS. And SS+ gear doesn't work on it. It's part of the max MP boost trait along with Mysterious light. But ML is equally useless, and costs 4 set points. All for 10 MP.

That said, I can't actually recall my exact /BLU spell set. It doesn't change much.

Basically my process is, enmity spells, utility spells, then stats(basically just HP+ stuff)

I think we've covered enmity spells already, so. Examples of utility spells.
Cocoon, of course,
Wild carrot. At least you have a cure now, even if it's a crappy one.
Healing breeze. Pretty much only good for waking the group after an AoE sleep.
Refueling. Almost useless now. 10% haste buff. Can be nice if your mages are lazy gits, or you somehow find yourself solo without trusts.

Trait wise... there's not much to be had.
Killer traits(Beast/Lizard/Undead)
Defense bonus(weee +10 def)
Resist sleep(this is actually decent. 10% resist rate, for 4 total set points. And you'd probably have wild carrot set anyway.) Not that being slept is a huge deal, but it's a thing.
Magic attack bonus(I dunno, lunge harder?)

Any points that are left I just set any HP+ spells that will fit.
 Asura.Dagget
Offline
Server: Asura
Game: FFXI
Posts: 73
By Asura.Dagget 2018-04-14 17:43:30
Link | Quote | Reply
 
Looking for some help with my PUP lua.
Code
function check_maneuver()
	if state.AutoBuffMode.value and pet.isvalid and pet.status == 'Engaged' and windower.ffxi.get_ability_recasts()[210] == 0 then
		if not buffactive[defaultManeuvers[state.PetMode.value][1]] then
			windower.chat.input('/pet '..defaultManeuvers[state.PetMode.value][1]..' <me>')
			tickdelay = 30
			return true
		elseif not buffactive[defaultManeuvers[state.PetMode.value][2]] then
			windower.chat.input('/pet '..defaultManeuvers[state.PetMode.value][2]..' <me>')
			tickdelay = 30
			return true
		elseif not buffactive[defaultManeuvers[state.PetMode.value][3]] then
			windower.chat.input('/pet '..defaultManeuvers[state.PetMode.value][3]..' <me>')
			tickdelay = 30
			return true
		end
	end


Im trying to have my maneuvers sets to Fire/Fire/Light, but as I can understand in the above code it wont do a double Fire because it checks it as active already and moves on. Is they any way anyone can write or knows of how to change this so I can have two of the same maneuvers up at the same time?

This is Selinedrile lua file setup Im working from.
Offline
Posts: 172
By aisukage 2018-04-16 22:50:34
Link | Quote | Reply
 
Anyone able to help with a command that i can make a key bind, to change my offense mode directly to the specific one rather than cycle through them.
 Quetzalcoatl.Langly
Offline
Server: Quetzalcoatl
Game: FFXI
user: Langly
Posts: 545
By Quetzalcoatl.Langly 2018-04-16 23:00:06
Link | Quote | Reply
 
aisukage said: »
Anyone able to help with a command that i can make a key bind, to change my offense mode directly to the specific one rather than cycle through them.

If using Mote's libraries:

Directly within the selfCommands.lua are a few controls.
-- Function to set various states to specific values directly.
-- User command format: gs c set [field] [value]
-- If a boolean [field] is used, but not given a [value], it will be set to true.
Offline
Posts: 172
By aisukage 2018-04-16 23:09:03
Link | Quote | Reply
 
Quetzalcoatl.Langly said: »
aisukage said: »
Anyone able to help with a command that i can make a key bind, to change my offense mode directly to the specific one rather than cycle through them.

If using Mote's libraries:

Directly within the selfCommands.lua are a few controls.
-- Function to set various states to specific values directly.
-- User command format: gs c set [field] [value]
-- If a boolean [field] is used, but not given a [value], it will be set to true.

Yeah I'm using Mote's i'm not too bad with LUA's but i don't know all these commands so i tried something along the lines of
Code
send_command('bind !n gs c state.OffenseMode = "DT"')


So would this look more accurate then?
Code
send_command('bind !n gs c set state.OffenseMode "DT"')


EDIT: Nvm i got it working removed the "state." from that line and it worked
Code
send_command('bind !n gs c set OffenseMode "DT"')


Many Thanks
[+]
 Cerberus.Quintow
Offline
Server: Cerberus
Game: FFXI
user: Quintow
Posts: 147
By Cerberus.Quintow 2018-04-22 10:26:38
Link | Quote | Reply
 
Using motes. I basically copy/pasted the default online THF version and substituted some of my equips in the appropriate places.
A couple questions though. Why are some WS listed as 'WS' and some as "WS"? Second, I'm trying to check my gearsets from town using //gs equip and possibly related to the ' vs. the " I can only successfully do //gs equip sets.precast.WS from town. However, what I want to see is the Rudra's version of equip sets
in specific. What is the syntax to type it in and what am I doing wrong?

I've tried //gs equip sets.precast.["Rudra's Storm"]WS
also used ' and even tried [Rudra's Storm]. I do not get any errors, but nothing happens! My Yetshila does not equip!

In specific I'm trying to make sure my swaps are happening not only for WS-specific but for SA stacked.

Code
        -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {ammo="Seeth. Bomblet +1",
        head="Adhemar Bonnet",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Moonshade Earring",
        body="Meg. Cuirie +1",hands="Meg. Gloves +2",ring1="Apate Ring",ring2="Epona's Ring",
        back="Toutatis's Cape",waist="Fotia Belt",legs="Samnuha Tights",feet="Meg. Jam. +1"}
    sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Honed Tathlum", back="Letalis Mantle"})

    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {head="Uk'uxkaj Cap",ring1="Stormsoul Ring"})
    sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {ammo="Honed Tathlum", back="Letalis Mantle"})
    sets.precast.WS['Exenterator'].Mod = set_combine(sets.precast.WS['Exenterator'], {head="Felistris Mask",waist="Fotia Belt"})
    sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
    sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
    sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})

    sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {ammo="Yetshila"})
    sets.precast.WS["Rudra's Storm"].Acc = set_combine(sets.precast.WS["Rudra's Storm"], {})
    sets.precast.WS["Rudra's Storm"].Mod = set_combine(sets.precast.WS["Rudra's Storm"], {})
    sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Yetshila"})
    sets.precast.WS["Rudra's Storm"].TA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
        body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
    sets.precast.WS["Rudra's Storm"].SATA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
        body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
 Cerberus.Dougg
Offline
Server: Cerberus
Game: FFXI
user: Dougg
Posts: 3
By Cerberus.Dougg 2018-04-22 11:03:03
Link | Quote | Reply
 
" are used on names with a ' already in them. Otherwise it'd have to be something like ['Rudra\'s Storm'].

//gs equip sets.precast.WS.Rudra's Storm should work
 Asura.Chiaia
Online
Server: Asura
Game: FFXI
user: Demmis
Posts: 895
By Asura.Chiaia 2018-04-22 11:04:48
Link | Quote | Reply
 
' vs " Doesn't mean much but if you did 'Rudra's Storm' it would fail because it needs the middle ' escaped so that it knows to read it as just a regular character and not part of the language.

'Rudra\'s Storm' you escape characters in lua with \ before it

try

//gs equip sets.precast.WS.Rudra's Storm.TA

While that won't work when writing the lua it should work when trying to manually equip it

also can do //gs showswaps
 Cerberus.Quintow
Offline
Server: Cerberus
Game: FFXI
user: Quintow
Posts: 147
By Cerberus.Quintow 2018-04-22 11:06:33
Link | Quote | Reply
 
That's working perfect already, thanks Dougg. Syntax is very new to me, not a programmer. About the " vs ' I was unsure because in default THF for example the Shark Bite had a "" also

https://github.com/Kinematics/GearSwap-Jobs/blob/master/THF.lua
 Odin.Archaide
Offline
Server: Odin
Game: FFXI
user: Archaide
Posts: 54
By Odin.Archaide 2018-04-22 14:18:35
Link | Quote | Reply
 
Can anyone figure out why after I WS it won't swap back to my melee set? I have to hit the Gear Update Toggle every time.
Code
function get_sets()
StartLockStyle = '97'
AccIndex = 1
AccArray = {"LowACC","MidACC","HighACC",}
IdleIndex = 3
IdleArray = {'Movement','Regen','Town'}				-- Default Idle Set Is Movement --
PreshotIndex = 1
PreshotArray = {'Any','RDM'}
Armor = 'None'
autoRAmode = 0
target_distance = 5 -- Set Default Distance Here --

send_command('input /macro book 3;wait .1;input /macro set 1') -- Change Default Macro Book Here --
send_command('bind F9 gs c flur') --flurry toggle--
send_command('bind F10 gs c pdt') --PDT toggle--
send_command('bind F11 gs c acc') --accuracy toggle--
send_command('bind F12 gs c auto') --Gearset update toggle--
send_command('bind !F12 gs c C6') --Idle Toggle--
send_command('bind != gs c mdt') --MDT toggle--

ranged_ws = S{

    "Hot Shot","Split Shot","Sniper Shot","Slug Shot","Blast Shot","Heavy Shot","Detonator",

    "Numbing Shot","Last Stand","Coronach","Trueflight","Wildfire","Flaming Arrow",

    "Piercing Arrow","Dulling Arrow","Sidewinder","Blast Arrow","Arching Arrow",

    "Empyreal Arrow","Refulgent Arrow","Apex Arrow","Jishnu's Radiance","Namas Arrow"}

-- Idle/Town Sets --
sets.Idle = {}

sets.Idle.Regen = {
		head="Meghanada Visor +2",
		body="Meg. Cuirie +2",
		hands="Meg. Gloves +2",
		legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
		feet="Meg. Jam. +2",
		neck="Bathy Choker +1",
		waist="Flume Belt +1",
		left_ear="Telos Earring",
		right_ear="Etiolation Earring",
		left_ring="Meghanada Ring",
		right_ring="Chirich Ring",
		back="Moonbeam Cape",}

sets.Idle.Movement = set_combine(sets.Idle.Regen,{})

sets.Idle.Town = {
		head={ name="Arcadian Beret +3", augments={'Enhances "Recycle" effect',}},
		body="Mummu Jacket +2",
		hands={ name="Adhemar Wrist. +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

sets.Fomalhaut = {
		main="Perun +1",
		sub="Nusku Shield",
		range="Fomalhaut",
		ammo="Chrono Bullet"}

sets.Annihilator = {
		main="Perun +1",
		sub="Nusku Shield",
		range="Annihilator",
		ammo="Eradicating Bullet"}

sets.Gastraphetes = {
		main={ name="Malevolence", augments={'INT+7','"Mag.Atk.Bns."+5','"Fast Cast"+3',}},
		sub={ name="Malevolence", augments={'INT+2','Mag. Acc.+1','"Mag.Atk.Bns."+3','"Fast Cast"+1',}},
		range="Gastraphetes",
		ammo="Crossbow Bolt"}
		
-- Preshot --

sets.Preshot = {
		ammo="Eradicating Bullet",
		head={ name="Taeon Chapeau", augments={'"Snapshot"+5','"Snapshot"+5',}}, -- 10/0
		body="Oshosi Vest", -- 12/0
		hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}}, -- 8/11
		legs={ name="Adhemar Kecks", augments={'AGI+10','"Rapid Shot"+10','Enmity-5',}}, -- 9/10
		feet="Meg. Jam. +2", -- 10/0
		waist="Yemaya Belt", -- 0/5
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','"Snapshot"+10',}},} -- 10/0
		-- 69 SS/ 61 RS
			
-- Fomalhaut Preshot --

sets.Preshot.Fomalhaut = {
		ammo="Eradicating Bullet",
		head={ name="Taeon Chapeau", augments={'"Snapshot"+5','"Snapshot"+5',}}, -- 10/0
		body="Oshosi Vest", -- 12/0
		hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}}, -- 8/11
		legs={ name="Adhemar Kecks", augments={'AGI+10','"Rapid Shot"+10','Enmity-5',}}, -- 9/10
		feet="Meg. Jam. +2", -- 10/0
		waist="Yemaya Belt", -- 0/5
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','"Snapshot"+10',}},} -- 10/0
		-- 69 SS/ 61 RS

sets.Preshot.Fomalhaut.Any = set_combine(sets.Preshot.Fomalhaut,{
		body="Amini Caban +1"}) -- 0/0
		-- 57 SS/ 61 RS

sets.Preshot.Fomalhaut.RDM = set_combine(sets.Preshot.Fomalhaut.Any,{
		head="Orion Beret +3", -- 0/18
		waist="Impulse Belt", -- 3/0
		feet="Pursuer's Gaiters"}) -- 0/10
		-- 40 SS/ 89 RS

-- Annihilator Preshot --

sets.Preshot.Annihilator = { 
		ammo="Eradicating Bullet",
		head={ name="Taeon Chapeau", augments={'"Snapshot"+5','"Snapshot"+5',}}, -- 10/0
		body="Oshosi Vest", -- 12/0
		hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}}, -- 8/11
		legs={ name="Adhemar Kecks", augments={'AGI+10','"Rapid Shot"+10','Enmity-5',}}, -- 9/10
		feet="Meg. Jam. +2", -- 10/0
		waist="Yemaya Belt", -- 0/5
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','"Snapshot"+10',}},} -- 10/0
		-- 69 SS/ 61 RS

sets.Preshot.Annihilator.Any = set_combine(sets.Preshot.Annihilator,{
		body="Amini Caban +1"}) -- 0/0
		-- 57 SS/ 61 RS

sets.Preshot.Annihilator.RDM = set_combine(sets.Preshot.Annihilator.Any,{
		head="Orion Beret +3", -- 0/18
		waist="Impulse Belt", -- 3/0
		feet="Pursuer's Gaiters"}) -- 0/10
		-- 40 SS/ 89 RS

-- Gastraphetes Preshot --		
		
sets.Preshot.Gastraphetes = {
		head="Orion Beret +3", -- 0/18
		body="Oshosi Vest", -- 12/0
		hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}}, -- 8/11
		legs={ name="Adhemar Kecks", augments={'AGI+10','"Rapid Shot"+10','Enmity-5',}}, -- 9/10
		feet="Meg. Jam. +2", -- 10/0
		waist="Yemaya Belt", -- 0/5
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','"Snapshot"+10',}},} -- 10/0
		-- 69 SS/ 79 RS

sets.Preshot.Gastraphetes.Any = set_combine(sets.Preshot.Gastraphetes,{
		body="Amini Caban +1"}) -- 0/0
		-- 57 SS/ 79 RS

sets.Preshot.Gastraphetes.RDM = set_combine(sets.Preshot.Gastraphetes.Any,{
		waist="Impulse Belt", -- 3/0
		feet="Pursuer's Gaiters"}) -- 0/10
		-- 40 SS/ 84 RS	

-- Midshot Base Set --

sets.Midshot = {
		head={ name="Arcadian Beret +3", augments={'Enhances "Recycle" effect',}},
		body="Orion Jerkin +3",
		hands={ name="Adhemar Wrist. +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet={ name="Adhe. Gamashes +1", augments={'HP+65','"Store TP"+7','"Snapshot"+10',}},
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

sets.Midshot.MidACC = set_combine(sets.Midshot,{
		right_ear="Enervating Earring",
	    left_ring="Regal Ring",
		right_ring="Hajduk Ring +1"})

sets.Midshot.HighACC = set_combine(sets.Midshot.MidACC,{
		feet="Orion Socks +3"})

-- Fomalhaut Midshot --

sets.Midshot.Fomalhaut = {
		head={ name="Arcadian Beret +3", augments={'Enhances "Recycle" effect',}},
		body="Orion Jerkin +3",
		hands={ name="Adhemar Wrist. +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet={ name="Adhe. Gamashes +1", augments={'HP+65','"Store TP"+7','"Snapshot"+10',}},
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

sets.Midshot.Fomalhaut.MidACC = set_combine(sets.Midshot.Fomalhaut,{
		right_ear="Enervating Earring",
	    left_ring="Regal Ring",
		right_ring="Hajduk Ring +1"})

sets.Midshot.Fomalhaut.HighACC = set_combine(sets.Midshot.Fomalhaut.MidACC,{
		feet="Orion Socks +3"})

-- Annihilator Sets --

sets.Midshot.Annihilator = {
		head={ name="Arcadian Beret +3", augments={'Enhances "Recycle" effect',}},
		body="Mummu Jacket +2",
		hands={ name="Adhemar Wrist. +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet={ name="Adhe. Gamashes +1", augments={'HP+65','"Store TP"+7','"Snapshot"+10',}},
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}
		-- Perun+1 / Nusku Shield --
		-- 1420 RACC / 1562 RATTK / 75 STP / 24% crit -- /WAR --
		
sets.Midshot.Annihilator.MidACC = set_combine(sets.Midshot.Annihilator,{
		right_ear="Enervating Earring",
		right_ring="Hajduk Ring +1"})
		-- Perun+1 / Nusku Shield --
		-- 1447 RACC / 1553 RATTK / 71 STP / 24% crit -- /WAR --
		
sets.Midshot.Annihilator.HighACC = set_combine(sets.Midshot.Annihilator.MidACC,{
		body="Orion Jerkin +3",
		feet="Oshosi Leggings",
		left_ring="Regal Ring",})
		-- Perun+1 / Nusku Shield --
		-- 1512 RACC / 1603 RATTK / 61 STP / 19% crit -- /WAR --

-- Gastraphetes Sets --

sets.Midshot.Gastraphetes = {
		head={ name="Arcadian Beret +3", augments={'Enhances "Recycle" effect',}},
		body="Mummu Jacket +2",
		hands={ name="Adhemar Wrist. +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet={ name="Adhe. Gamashes +1", augments={'HP+65','"Store TP"+7','"Snapshot"+10',}},
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}
		-- Malevolence / Malevolence --
		-- 1349 RACC / 1483 RATTK / 75 STP -- /DNC --

sets.Midshot.Gastraphetes.MidACC = set_combine(sets.Midshot.Gastraphetes,{
		right_ear="Enervating Earring",
		right_ring="Hajduk Ring +1"})
		-- Malevolence / Malevolence --
		-- 1391 RACC / 1506 RATTK / 66 STP -- /DNC --

sets.Midshot.Gastraphetes.HighACC = set_combine(sets.Midshot.Gastraphetes.MidACC,{
		body="Orion Jerkin +3",
		feet="Orion Socks +3",
		left_ring="Regal Ring",})
		-- Malevolence / Malevolence --
		-- 1465 RACC / 1514 RATTK / 59 STP -- /DNC --

-- Barrage Base Set --

Barrage = {
		ammo="Eradicating Bullet",
		head="Orion Beret +3",
		body="Orion Jerkin +3",
		hands="Orion Bracers +3",
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Enervating Earring",
		left_ring="Regal Ring",
		right_ring="Hajduk Ring +1",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

-- Fomalhaut Barrage Sets --

sets.Midshot.Fomalhaut.Barrage = set_combine(sets.Midshot.Fomalhaut, {
		ammo="Eradicating Bullet",
		head="Orion Beret +3",
		body="Orion Jerkin +3",
		hands="Orion Bracers +3",
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Enervating Earring",
		left_ring="Regal Ring",
		right_ring="Hajduk Ring +1",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},})

sets.Midshot.Fomalhaut.MidACC.Barrage = set_combine(sets.Midshot.Fomalhaut.Barrage,{})

sets.Midshot.Fomalhaut.HighACC.Barrage = set_combine(sets.Midshot.Fomalhaut.Barrage,{})

-- Annihilator Barrage Sets --

sets.Midshot.Annihilator.Barrage = set_combine(sets.Midshot.Annihilator,{
		ammo="Eradicating Bullet",
		head="Orion Beret +3",
		body="Orion Jerkin +3",
		hands="Orion Bracers +3",
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Enervating Earring",
		left_ring="Regal Ring",
		right_ring="Hajduk Ring +1",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},})
		-- Perun+1 / Nusku Shield --
		-- 1622 RACC / 1597 RATTK / 11 shots -- /WAR --

sets.Midshot.Annihilator.MidACC.Barrage = set_combine(sets.Midshot.Annihilator.Barrage,{})

sets.Midshot.Annihilator.HighACC.Barrage = set_combine(sets.Midshot.Annihilator.Barrage,{})

--Gastraphetes Barrage Sets --

sets.Midshot.Gastraphetes.Barrage = set_combine(sets.Midshot.Gastraphetes, {
		head="Orion Beret +3",
		body="Orion Jerkin +3",
		hands="Orion Bracers +3",
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Enervating Earring",
		left_ring="Regal Ring",
		right_ring="Hajduk Ring +1",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},})
		-- Malevolence / Malevolence --
		-- 1554 RACC / 1487 RATTK / 12 shots -- /DNC --

sets.Midshot.Gastraphetes.MidACC.Barrage = set_combine(sets.Midshot.Gastraphetes.Barrage,{})

sets.Midshot.Gastraphetes.HighACC.Barrage = set_combine(sets.Midshot.Gastraphetes.Barrage,{})

-- Doubleshot Sets --

sets.Doubleshot = {
		head="Oshosi Mask",
		body="Oshosi Vest",
		hands="Oshosi Gloves",
		legs="Oshosi Trousers",
		feet="Oshosi Leggings",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

-- Fomalhaut Doubleshot Sets --

sets.Midshot.Fomalhaut.Doubleshot = set_combine(sets.Midshot.Fomalhaut,{
		head="Oshosi Mask",
		body="Oshosi Vest",
		hands="Oshosi Gloves",
		legs="Oshosi Trousers",
		feet="Oshosi Leggings",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},})

sets.Midshot.Fomalhaut.MidACC.Doubleshot = set_combine(sets.Midshot.Fomalhaut.Doubleshot,{
		right_ear="Enervating Earring",
		left_ring="Hajduk Ring +1",
		right_ring="Hajduk Ring +1",})

sets.Midshot.Fomalhaut.HighACC.Doubleshot = set_combine(sets.Midshot.Fomalhaut.Doubleshot,{})

--Annihilator Doubleshot Sets--

sets.Midshot.Annihilator.Doubleshot = set_combine(sets.Midshot.Annihilator,{
		head="Oshosi Mask",
		body="Oshosi Vest",
		hands="Oshosi Gloves",
		legs="Oshosi Trousers",
		feet="Oshosi Leggings",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},})
		-- Perun+1 / Nusku Shield --
		-- 1397 RACC / 1423 RATTK / 85 DS / 54 STP -- /WAR --

sets.Midshot.Annihilator.MidACC.Doubleshot = set_combine(sets.Midshot.Annihilator.Doubleshot,{
		right_ear="Enervating Earring",
		left_ring="Hajduk Ring +1",
		right_ring="Hajduk Ring +1",})
		-- Perun+1 / Nusku Shield --
		-- 1433 RACC / 1414 RATTK / 85 DS / 40 STP -- /WAR --

sets.Midshot.Annihilator.HighACC.Doubleshot = set_combine(sets.Midshot.Annihilator.Doubleshot,{})

 --Gastraphetes Doubleshot Sets--

 sets.Midshot.Gastraphetes.Doubleshot = set_combine(sets.Midshot.Gastraphetes,{
		head="Oshosi Mask",
		body="Oshosi Vest",
		hands="Oshosi Gloves",
		legs="Oshosi Trousers",
		feet="Oshosi Leggings",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Dedition Earring",
		left_ring="Ilabrat Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},})

sets.Midshot.Gastraphetes.MidACC.Doubleshot = set_combine(sets.Midshot.Gastraphetes.Doubleshot,{
		right_ear="Enervating Earring",
		left_ring="Hajduk Ring +1",
		right_ring="Hajduk Ring +1",})

sets.Midshot.Gastraphetes.HighACC.Doubleshot = set_combine(sets.Midshot.Gastraphetes.Doubleshot,{})	   

--Camouflage Sets--

sets.Midshot.Camouflage = {}			 
			   
sets.Midshot.Fomalhaut.Camouflage = {
		head="Meghanada Visor +2",
		neck="Iskur Gorget",
		ear1="Enervating Earring",
		body="Meghanada Cuirie +2",
		hands="Mummu Wrists +2",
		ring1="Begrudging Ring",
		ring2="Mummu Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','Crit.hit rate+10',}},
		waist="Kwahu Kachina Belt",
		legs="Darraigner's Brais",
		feet="Thereoid Greaves"}
			   
sets.Midshot.Annihilator.Camouflage = {
		head="Meghanada Visor +2",
		neck="Iskur Gorget",
		ear1="Enervating Earring",
		body="Meghanada Cuirie +2",
		hands="Mummu Wrists +2",
		ring1="Begrudging Ring",
		ring2="Mummu Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','Crit.hit rate+10',}},
		waist="Kwahu Kachina Belt",
		legs="Darraigner's Brais",
		feet="Thereoid Greaves"}

sets.Midshot.Gastraphetes.Camouflage = {
		head="Meghanada Visor +2",
		neck="Iskur Gorget",
		ear1="Enervating Earring",
		body="Meghanada Cuirie +2",
		hands="Mummu Wrists +2",
		ring1="Begrudging Ring",
		ring2="Mummu Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','Crit.hit rate+10',}},
		waist="Kwahu Kachina Belt",
		legs="Darraigner's Brais",
		feet="Thereoid Greaves"}
				
-- PDT/MDT Sets --

sets.PDT = {
		head="Meghanada Visor +2",
		body="Meg. Cuirie +2",
		hands="Meg. Gloves +2",
		legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
		feet="Meg. Jam. +2",
		neck="Loricate Torque +1",
		waist="Flume Belt +1",
		left_ear="Odnowa Earring +1",
		right_ear="Etiolation Earring",
		left_ring="Meghanada Ring",
		right_ring="Defending Ring",
		back="Moonbeam Cape",}

sets.MDT = set_combine(sets.PDT,{})
         
-- Melee Sets --

sets.Melee = {
		head={ name="Dampening Tam", augments={'DEX+10','Accuracy+15','Mag. Acc.+15','Quadruple Attack +3',}},
		body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
		hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
		legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
		feet={ name="Herculean Boots", augments={'Accuracy+16','"Triple Atk."+4','Attack+6',}},
		neck="Lissome Necklace",
		waist="Kentarch Belt +1",
		left_ear="Sherida Earring",
		right_ear="Cessance Earring",
		left_ring="Epona's Ring",
		right_ring="Ilabrat Ring",
		back={ name="Belenus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},}

sets.Melee.MidACC = set_combine(sets.Melee,{
		legs="Meg. Chausses +2",
		left_ring="Chirich Ring"})

sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{
		feet="Meg. Jam. +2",
		left_ear="Telos Earring"})

-- WS Base Set --

sets.WS = {
		ammo="Eradicating Bullet",
		head="Orion Beret +3",
		body={ name="Herculean Vest", augments={'Rng.Atk.+19','Weapon skill damage +5%','CHR+6','Rng.Acc.+14',}},
		hands="Meg. Gloves +2",
		legs={ name="Arc. Braccae +3", augments={'Enhances "Eagle Eye Shot" effect',}},
		feet={ name="Herculean Boots", augments={'Rng.Acc.+29','Weapon skill damage +5%','AGI+4','Rng.Atk.+9',}},
		neck="Fotia Gorget",
		waist="Fotia Belt",
		left_ear="Ishvara Earring",
		right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
		left_ring="Regal Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},}

-- WS Sets --

-- Last Stand --

sets.WS['Last Stand'] = set_combine(sets.WS, {
		ammo="Eradicating Bullet",
		head="Orion Beret +3",
		body={ name="Herculean Vest", augments={'Rng.Atk.+19','Weapon skill damage +5%','CHR+6','Rng.Acc.+14',}},
		hands="Meg. Gloves +2",
		legs={ name="Arc. Braccae +3", augments={'Enhances "Eagle Eye Shot" effect',}},
		feet={ name="Herculean Boots", augments={'Rng.Acc.+29','Weapon skill damage +5%','AGI+4','Rng.Atk.+9',}},
		neck="Fotia Gorget",
		waist="Fotia Belt",
		left_ear="Ishvara Earring",
		right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
		left_ring="Regal Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},})

sets.WS['Last Stand'].MidACC = set_combine(sets.WS["Last Stand"],{})

sets.WS['Last Stand'].HighACC = set_combine(sets.WS["Last Stand"].MidACC,{})

-- Coronach --

sets.WS['Coronach'] = set_combine(sets.WS, {
		ammo="Eradicating Bullet",
		head="Orion Beret +3",
		body={ name="Herculean Vest", augments={'Rng.Atk.+19','Weapon skill damage +5%','CHR+6','Rng.Acc.+14',}},
		hands="Meg. Gloves +2",
		legs={ name="Arc. Braccae +3", augments={'Enhances "Eagle Eye Shot" effect',}},
		feet={ name="Herculean Boots", augments={'Rng.Acc.+29','Weapon skill damage +5%','AGI+4','Rng.Atk.+9',}},
		neck="Fotia Gorget",
		waist="Fotia Belt",
		left_ear="Ishvara Earring",
		right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
		left_ring="Regal Ring",
		right_ring="Ilabrat Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},})

sets.WS['Coronach'].MidACC = set_combine(sets.WS['Coronach'].MidACC,{})

sets.WS['Coronach'].HighACC = set_combine(sets.WS['Coronach'].HighACC,{})
				
-- Trueflight --

sets.WS['Trueflight'] = {
		head="Orion Beret +3",
		body={ name="Herculean Vest", augments={'"Mag.Atk.Bns."+28','Pet: Attack+24 Pet: Rng.Atk.+24','Weapon skill damage +3%','Accuracy+19 Attack+19','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
		hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
		legs={ name="Herculean Trousers", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Enmity-5','MND+2','"Mag.Atk.Bns."+14',}},
		feet={ name="Herculean Boots", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','MND+5','Mag. Acc.+1','"Mag.Atk.Bns."+14',}},
		neck="Sanctity Necklace",
		waist="Eschan Stone",
		left_ear="Friomisi Earring",
		right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
		left_ring="Weather. Ring",
		right_ring="Dingir Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},}

sets.WS['Trueflight'].MidACC = set_combine(sets.WS["Trueflight"],{})

sets.WS['Trueflight'].HighACC = set_combine(sets.WS["Trueflight"].MidACC,{})

-- Wildfire --

sets.WS['Wildfire'] = set_combine(sets.WS["Trueflight"],{
		left_ring="Regal Ring",})

sets.WS['Wildfire'].MidACC = set_combine(sets.WS["Trueflight"].MidACC,{})

sets.WS['Wildfire'].HighACC = set_combine(sets.WS["Trueflight"].HighACC,{})
		
-- Hotshot --

sets.WS['Hot Shot'] = set_combine(sets.WS["Trueflight"],{
		neck="Fotia Gorget",
		waist="Fotia Belt",
		left_ring="Regal Ring",})

sets.WS['Hot Shot'].MidACC = set_combine(sets.WS['Hot Shot'],{})

sets.WS['Hot Shot'].HighACC = set_combine(sets.WS['Hot Shot'].MidACC,{})

-- Dagger Weapon Skills --

sets.WS['Exenterator'] = {
		head="Adhemar Bonnet",
		neck="Fotia Gorget",
		ear1="Infused Earring",
		ear2="Digni. Earring",
		body="Meg. Cuirie +2",
		hands="Mummu Wrists +2",
		ring1="Ilabrat Ring",
		ring2="Regal Ring",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},
		waist="Fotia Belt",
		legs="Jokushu Haidate",
		feet="Thereoid Greaves"}

sets.WS['Evisceration'] = sets.WS['Exenterator']

sets.WS['Aeolian Edge'] = sets.WS['Hot Shot']
				              
-- JA Sets --

sets.JA = {}

sets.JA.Shadowbind = {
		head="Orion Beret +3",
		body="Orion Jerkin +3",
		hands="Orion Bracers +3",
		legs={ name="Adhemar Kecks +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Enervating Earring",
		left_ring="Regal Ring",
		right_ring="Hajduk Ring +1",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

sets.JA.Scavenge = {feet="Orion Socks +3"}

sets.JA.Camouflage = {body="Orion Jerkin +3"}

sets.JA.Sharpshot = {legs="Orion Braccae +2"}

sets.JA["Bounty Shot"] = {
		hands="Amini Glove. +1",
		legs={ name="Herculean Trousers", augments={'"Mag.Atk.Bns."+12','"Treasure Hunter"+1','Mag. Acc.+12 "Mag.Atk.Bns."+12',}},}

sets.JA["Double Shot"] = {head="Amini Gapette +1"}

sets.JA["Eagle Eye Shot"] = {
		head="Orion Beret +3",
		body="Orion Jerkin +3",
		hands="Orion Bracers +3",
		legs={ name="Arc. Braccae +3", augments={'Enhances "Eagle Eye Shot" effect',}},
		feet="Orion Socks +3",
		neck="Iskur Gorget",
		waist="Yemaya Belt",
		left_ear="Telos Earring",
		right_ear="Enervating Earring",
		left_ring="Regal Ring",
		right_ring="Hajduk Ring +1",
		back={ name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},}

sets.JA["Barrage"] = set_combine(sets.Midshot,{})

         
-- Waltz Set --
sets.Waltz = {head="Mummu Bonnet +1",body="Passion Jacket",}

sets.Precast = {}

-- Fastcast Set --

sets.Precast.FastCast = {
		head={ name="Carmine Mask", augments={'Accuracy+15','Mag. Acc.+10','"Fast Cast"+3',}},
		body={ name="Samnuha Coat", augments={'Mag. Acc.+14','"Mag.Atk.Bns."+13','"Fast Cast"+4','"Dual Wield"+3',}},
		hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
		legs="Gyve Trousers",
		feet={ name="Carmine Greaves", augments={'HP+60','MP+60','Phys. dmg. taken -3',}},
		neck="Sanctity Necklace",
		waist="Flume Belt +1",
		left_ear="Loquac. Earring",
		right_ear="Enchntr. Earring +1",
		left_ring="Weather. Ring",
		right_ring="Stikini Ring",
		back="Moonbeam Cape",}

-- Utsusemi Precast Set --

sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{
		body="Passion Jacket",
		neck="Magoraga Beads"})

sets.Midcast = {}

 -- Magic Haste Set --

sets.Midcast.Haste = set_combine(sets.PDT,{})

                if pet.isvalid then
    else
        send_command('wait 3;input /lockstyleset '..StartLockStyle)
    end
        end

         

function pretarget(spell,action)

	if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") 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 > 290 then -- Cancel Meditate If TP Is Above 290 --

                        cancel_spell()

                        add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')

	elseif (spell.english == 'Ranged' and spell.target.distance > 24.9) or (player.status == 'Engaged' and ((ranged_ws:contains(spell.english) and spell.target.distance > 16+target_distance) or (spell.type == "WeaponSkill" and not ranged_ws:contains(spell.english) and spell.target.distance > target_distance))) then -- Cancel Ranged Attack or WS If You Are Out Of Range --

                        cancel_spell()

                        add_to_chat(123, spell.name..' Canceled: [Out of Range]')

                        return

                end

        end

         

function precast(spell,action)

	if spell.english == 'Ranged' then

					equipSet = sets.Preshot

					add_to_chat(57,"Flurry Level "..PreshotArray[PreshotIndex])

	if buffactive['Flurry'] then

					add_to_chat(122,"Flurry found")

	if PreshotArray[PreshotIndex] == 'RDM' then

		if  equipSet[player.equipment.range].RDM then 

		equipSet =  equipSet[player.equipment.range].RDM

				end

else

	if  equipSet[player.equipment.range].Any then 

					equipSet =  equipSet[player.equipment.range].Any

end

end

else

	if  equipSet[player.equipment.range] then 

					equipSet =  equipSet[player.equipment.range]

end

					add_to_chat(122,"No flurry")

end

   

					equip(equipSet)

			

			

elseif spell.type == "WeaponSkill" then

		equipSet = sets.WS

	if equipSet[spell.english] then

		equipSet = equipSet[spell.english]

		end

	if equipSet[AccArray[AccIndex]] then

		equipSet = equipSet[AccArray[AccIndex]]

		end

	if player.tp > 2249	 or buffactive.Sekkanoki then

	if spell.english == "Last Stand" then -- Equip Telos Earring When You Have 3000 TP or Sekkanoki For Last Stand --

		equipSet = set_combine(equipSet,{ear2="Telos Earring"})

elseif spell.english == "Jishnu's Radiance" then -- Equip Telos Earring When You Have 3000 TP or Sekkanoki For Jishnu's Radiance --

        equipSet = set_combine(equipSet,{ear2="Telos Earring"})

elseif spell.english == "Trueflight" then --Equip Ishvara Earring When you have 3000 TP or Sekkanoki for Trueflight --

		equipSet = set_combine(equipSet,{ear2="Ishvara Earring"})

end

end

		equip(equipSet)

                        
elseif spell.type=="JobAbility" then

	if sets.JA[spell.english] then

		equip(sets.JA[spell.english])

end

elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then

	if string.find(spell.english,'Utsusemi') then

    if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then

		cancel_spell()

		add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')

		return

	else
		
		equip(sets.Precast.Utsusemi)

end

	else	

		equip(sets.Precast.FastCast)

end

elseif spell.type == "Waltz" then

		equip(sets.Waltz)

elseif spell.english == 'Spectral Jig' and buffactive.Sneak then

		cast_delay(0.2)

		send_command('cancel Sneak')

end

end
	

        function midcast(spell,action)

                if spell.english == 'Ranged' then

                        equipSet = sets.Midshot

                        if equipSet[player.equipment.range] then

                                equipSet = equipSet[player.equipment.range]

                        end

                        if equipSet[AccArray[AccIndex]] then

                                equipSet = equipSet[AccArray[AccIndex]]

                        end

						

						

                        if buffactive.Barrage and equipSet["Barrage"] then

                                equipSet = equipSet["Barrage"]

                        end

						if buffactive['Double Shot'] and equipSet["Doubleshot"] then

								equipSet = equipSet["Doubleshot"]

						end

						if buffactive['Camouflage'] and equipSet["Camouflage"] then

								equipSet = equipSet["Camouflage"]

						end

                        equip(equipSet)

						

                elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then

                        if string.find(spell.english,'Utsusemi') then

                                if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then

                                        send_command('@wait 1.7;cancel Copy Image*')

                                end

                                equip(sets.Midcast.Haste)

                        elseif spell.english == 'Monomi: Ichi' then

                                if buffactive['Sneak'] then

                                        send_command('@wait 1.7;cancel sneak')

                                end

                                equip(sets.Midcast.Haste)

                        else

                                equip(sets.Midcast.Haste)

                        end

                

						if spell.english == "Trueflight" and (buffactive['Aurorastorm']) then

						add_to_chat(125,'weather mode') 

						equip({waist="Hachirin-no-Obi"})

					

				end

						if spell.english == "Wildfire" and (buffactive['Firestorm']) then

						add_to_chat(125,'weather mode')

						equip({waist="Hachirin-no-Obi"})

			end

		end

    end
       

        function aftercast(spell,action)

                if spell.english == 'Ranged' and autoRAmode==1 then

                        autoRA()

                elseif spell.type == "WeaponSkill" and not spell.interrupted then

                        send_command('wait 0.2;gs c TP')

                else

                        status_change(player.status)

                end

        end

         

        function status_change(new,old)

                if Armor == 'PDT' then

                        equip(sets.PDT)

                elseif Armor == 'MDT' then

                        equip(sets.MDT)

                elseif new == 'Engaged' then

                        equipSet = sets.Melee

                        if equipSet[AccArray[AccIndex]] then

                                equipSet = equipSet[AccArray[AccIndex]]

                        end

                        equip(equipSet)

                else

                        equip(sets.Idle[IdleArray[IdleIndex]])

                end

        end

        -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --

        function self_command(command)

                if command == 'acc' then -- Accuracy Level Toggle --

                        AccIndex = (AccIndex % #AccArray) + 1

                        add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])

                        status_change(player.status)

				elseif command == 'flur' then -- Flurry Level Toggle --

						PreshotIndex = (PreshotIndex % #PreshotArray) + 1

						add_to_chat(158,'Flurry Level: ' ..PreshotArray[PreshotIndex])

						status_change(player.status)

                elseif command == 'auto' then -- Auto Update Gear Toggle --

                        status_change(player.status)

                        add_to_chat(158,'Auto Update Gear')

                elseif command == 'pdt' 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 == 'mdt' 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 == '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 == 'AutoRA' then -- Auto Ranged Attack Toggle. *Don't Rely On This. It Isn't As Fast As Shooting Manually. It Is Mainly For AFK or When You Dualbox* --

                        if autoRAmode == 0 then

                                autoRAmode = 1

                                add_to_chat(158,'AutoRA Mode: [ON]')

                        else

                                autoRAmode = 0

                                add_to_chat(123,'AutoRA Mode: [OFF]')

                        end

                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
 Ragnarok.Lockfort
Online
Server: Ragnarok
Game: FFXI
user: Terazuma
Posts: 135
By Ragnarok.Lockfort 2018-04-22 15:05:42
Link | Quote | Reply
 
Code
function aftercast(spell,action)
                if spell.english == 'Ranged' and autoRAmode==1 then
                        autoRA()
                elseif spell.type == "WeaponSkill" and not spell.interrupted then
                        send_command('wait 0.2;gs c TP')
                else
                        status_change(player.status)
                end
        end


the status_change won't fire if it detects the other 2 preceeding conditions. Try this:
Code
function aftercast(spell,action)
                if spell.english == 'Ranged' and autoRAmode==1 then
                        autoRA()
                elseif spell.type == "WeaponSkill" and not spell.interrupted then
                        send_command('wait 0.2;gs c TP')
                end
                status_change(player.status)
end
 Odin.Archaide
Offline
Server: Odin
Game: FFXI
user: Archaide
Posts: 54
By Odin.Archaide 2018-04-22 15:33:59
Link | Quote | Reply
 
Thanks, works like a charm.
 Bahamut.Mayoyama
Offline
Server: Bahamut
Game: FFXI
user: Mayoyama
Posts: 18
By Bahamut.Mayoyama 2018-04-24 09:27:33
Link | Quote | Reply
 
Hey all

So after successfully adjusting a few rules before on other luas I fool-heatedly raced in blind to try make this pup lua work more how I want it to (original kine one treats whm head as a mage.. even with VE body), but now I am way in over my head and 5 hrs of bashing my head against the wall I need help please -.-

https://github.com/Mayoyama/PUP/blob/master/PUPFaulty.lua
https://github.com/Mayoyama/PUP/blob/master/Mayoyamanakata_PUP_GearFaulty.lua

So I'm trying to make it so that GS will alter my idle and engaged sets depending on the state I cycle to, but the more I did the more it broke and now it just doesn't even register my pet being idle or engaged.

PLEASE HELP!
 Cerberus.Shadowmeld
Offline
Server: Cerberus
Game: FFXI
Posts: 463
By Cerberus.Shadowmeld 2018-04-24 11:07:49
Link | Quote | Reply
 
Asura.Chiaia said: »
' vs " Doesn't mean much but if you did 'Rudra's Storm' it would fail because it needs the middle ' escaped so that it knows to read it as just a regular character and not part of the language.

'Rudra\'s Storm' you escape characters in lua with \ before it

try

//gs equip sets.precast.WS.Rudra's Storm.TA

While that won't work when writing the lua it should work when trying to manually equip it

also can do //gs showswaps

If you are typing it into the console is should be
//gs equip sets.precast.WS."Rudra's Storm".TA

If you don't use the "" to encapsulate Rudra's storm it stops processing at the end of Rudra's.
 Ragnarok.Lopeubaut
Offline
Server: Ragnarok
Game: FFXI
Posts: 6
By Ragnarok.Lopeubaut 2018-04-24 16:45:07
Link | Quote | Reply
 
Help plz "windower4/addons/Gearswap/data/Lopeubaut_PUP.lua:128: Attempt to call field 'Pet_elemental_magic' (a nil value)


Using https://pastebin.com/5ED5cJHw

https://pastebin.com/u/Bokura
Offline
Posts: 11
By Narvosa 2018-04-25 19:05:16
Link | Quote | Reply
 
So I am looking to add a Sneak attack set to other jobs if I am /thf. How would I go about putting those in? Pretty dumb when it comes to gearswap outside of just plugging in new items to an already built lua.
 Ragnarok.Lockfort
Online
Server: Ragnarok
Game: FFXI
user: Terazuma
Posts: 135
By Ragnarok.Lockfort 2018-04-26 12:49:09
Link | Quote | Reply
 
Is this for ws? Post your lua first, and then let us know what you intend for sneak attack set to be for.
Offline
Posts: 11
By Narvosa 2018-04-26 16:34:32
Link | Quote | Reply
 
Yes this would be for a WS. I am looking to equip a specific set for when the Sneak Attack buff is active. If Sneak attack is active equip X, if not use normal Rudra set. Similar to how the Climantic flourish active function is. Just have no idea how to go about plugging a SA in without breaking something x.x

Thank you in advance for your help
Code
function get_sets()
    mote_include_version = 2
    
    -- Load and initialize the include file.
    include('Mote-Include.lua')
end


-- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
function job_setup()
    state.Buff['Climactic Flourish'] = buffactive['climactic flourish'] or false

    state.MainStep = M{['description']='Main Step', 'Box Step', 'Quickstep'}
    state.AltStep = M{['description']='Alt Step', 'Quickstep', 'Feather Step', 'Stutter Step', 'Box Step'}
    state.UseAltStep = M(false, 'Use Alt Step')
    state.SelectStepTarget = M(false, 'Select Step Target')
    state.IgnoreTargetting = M(false, 'Ignore Targetting')

    state.CurrentStep = M{['description']='Current Step', 'Main', 'Alt'}
    state.SkillchainPending = M(false, 'Skillchain Pending')

    determine_haste_group()
end

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

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


    gear.default.weaponskill_neck = "Caro Necklace"
    gear.default.weaponskill_waist = "Caudata Belt"
    gear.AugQuiahuiz = {name="Quiahuiz Trousers", augments={'Haste+2','"Snapshot"+2','STR+8'}}

    -- Additional local binds
    send_command('bind ^= gs c cycle mainstep')
    send_command('bind !f12 gs c cycle altstep')
    send_command('bind ^- gs c toggle selectsteptarget')
    send_command('bind f12 gs c toggle usealtstep')
    send_command('bind ^` input /ja "Chocobo Jig" <me>')
    send_command('bind !` input /ja "Chocobo Jig II" <me>')

    select_default_macro_book()
end


-- Called when this job file is unloaded (eg: job change)
function user_unload()
    send_command('unbind ^`')
    send_command('unbind !`')
    send_command('unbind ^=')
    send_command('unbind !=')
    send_command('unbind ^-')
    send_command('unbind !-')
end


-- Define sets and vars used by this job file.
function init_gear_sets()
    --------------------------------------
    -- Start defining the sets
    --------------------------------------
    
    -- Precast Sets
    
    -- Precast sets to enhance JAs

    sets.precast.JA['No Foot Rise'] = {body="Horos Casaque +1"}

    sets.precast.JA['Trance'] = {head="Horos Tiara"}
    

    -- Waltz set (chr and vit)
    sets.precast.Waltz = {ammo="Vanir Battery",
        head="Mummu Bonnet",ear1="Brutal Earring",
        body="Dancer's Casaque",hands="Shneddick Gloves +1",ring1="Epona's Ring",
        back="Atheling Mantle",waist="Cetl Belt",legs="Shneddick Tights +1",feet="Shneddick Boots +1"}
        
    -- Don't need any special gear for Healing Waltz.
    sets.precast.Waltz['Healing Waltz'] = {}
    
    sets.precast.Samba = {head="Dancer's Tiara", back="Senuna's Mantle"} 

    sets.precast.Jig = {feet="Dancer's Shoes"}

    sets.precast.Step = {waist="Life Belt"}
    sets.precast.Step['Feather Step'] = {feet="Dancer's Shoes"}

    sets.precast.Flourish1 = {}
    sets.precast.Flourish1['Violent Flourish'] = {ammo ="Charis Feather",ear1="Heartseeker 	Earring",ear2="Dudgeon Earring",neck="Atzintli Necklace",
        body="Haruspex Coat",hands="Wayfarer Cuffs",ring1="Ecphoria Ring",ring2="Rajas Ring",
        waist="Life belt",legs="Manibozho Brais",feet="Wayfarer Clogs"} -- magic accuracy
    sets.precast.Flourish1['Desperate Flourish'] = {ammo ="Charis Feather",ear1="Heartseeker Earring",
		ear2="Dudgeon Earring",neck="Atzintli Necklace",body="Horos Casaque",
		hands="Maculele Bangles",ring1="Ecphoria Ring",ring2="Rajas Ring",
        waist="Life Belt",legs="Manibozho Brais",feet="Shneddick Boots +1"} -- acc gear

    sets.precast.Flourish2 = {}
    sets.precast.Flourish2['Reverse Flourish'] = {hands="Maculele Bangles"}

    sets.precast.Flourish3 = {}
    sets.precast.Flourish3['Striking Flourish'] = {body="Charis Casaque +2"}
    sets.precast.Flourish3['Climactic Flourish'] = {head="Maculele Tiara"}

    -- Fast cast sets for spells
    
    sets.precast.FC = {ammo="Impatiens",head="Haruspex Hat",ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring"}

    sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})

       
    -- Weaponskill sets
    -- Default set for any weaponskill that isn't any more specifically defined
    sets.precast.WS = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket ",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}
    sets.precast.WS.Acc = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket ",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}
    
    -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
    sets.precast.WS['Exenterator'] = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket ",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}
	sets.precast.WS['Exenterator'].Acc ={ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}
    sets.precast.WS['Exenterator'].Fodder = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket ",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}

    sets.precast.WS['Pyrrhic Kleos'] = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Shneddick Tabard +1",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Shadow Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
    sets.precast.WS['Pyrrhic Kleos'].Acc = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Shneddick Tabard +1",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Shadow Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
		
    sets.precast.WS['Evisceration'] = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket ",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Mummu Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}
    sets.precast.WS['Evisceration'].Acc = {ammo="Charis Feather",
        head="Herculean Helm",neck="Soil Gorget",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Mummu Jacket ",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Mummu Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Mummu Kecks",feet="Herculean Boots"}
		
    sets.precast.WS["Rudra's Storm"] = {ammo="Charis Feather",
        head="Herculean Helm",neck="Caro Necklace",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Meghanada Cuirie",hands="Meghanada Gloves +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}}
		,waist="Grunfeld Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.precast.WS["Rudra's Storm"].Acc = {ammo="Charis Feather",
        head="Herculean Helm",neck="Caro Necklace",ear1="Brutal Earring",ear2="Ishvara Earring",
        body="Meghanada Cuirie",hands="Meghanada Gloves +1",ring1="Epona's Ring",ring2="Rajas Ring",
         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}}
		,waist="Grunfeld Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    
	sets.precast.WS['Aeolian Edge'] = {ammo="Charis Feather",
        head="Wayfarer Circlet",neck="Atzintli Necklace",ear1="Novio Earring",ear2="Hecate's Earring",
        body="Wayfarer Robe",hands="Wayfarer Cuffs",ring1="Acumen Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Shadow Belt",legs="Shneddick Tights +1",feet="Wayfarer Clogs"}
    
    sets.precast.Skillchain = {hands="Maculele Bangles"}
    
    
    -- Midcast Sets
    
    sets.midcast.FastRecast = {
        head="Felistris Mask",ear2="Loquacious Earring",
        body="Iuitl Vest",hands="Iuitl Wristbands",
        legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
        
    -- Specific spells
    sets.midcast.Utsusemi = {
        head="Felistris Mask",neck="Ej Necklace",ear2="Loquacious Earring",
        body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Beeline Ring",
        back="Toetapper Mantle",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}

    
    -- Sets to return to when not performing an action.
    
    -- Resting sets
    sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",
        ring1="Sheltered Ring",ring2="Paguroidea Ring"}
    sets.ExtraRegen = {head="Ocelomeh Headpiece +1"}
    

    -- Idle sets

    sets.idle = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.idle.Town ={ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
		
    sets.idle.Weak = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
		
    -- Defense sets

    sets.defense.Evasion = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}

    sets.defense.PDT = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.defense.MDT = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}

    sets.Kiting = {feet="Skadi's Jambeaux +1"}

    -- Engaged sets

    -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
    -- sets if more refined versions aren't defined.
    -- If you create a set with both offense and defense modes, the offense mode should be first.
    -- EG: sets.engaged.Dagger.Accuracy.Evasion
    
    -- Normal melee group
    sets.engaged = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Fodder = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Fodder.Evasion = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Acc = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Evasion = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.PDT = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Acc.Evasion ={ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Acc.PDT = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Mummu Kecks",feet="Herculean Boots"}

    -- Custom melee group: High Haste (2x March or Haste)
    sets.engaged.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Fodder.HighHaste ={ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Fodder.Evasion.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
		
    sets.engaged.Acc.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Evasion.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Acc.Evasion.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.PDT.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses",feet="Herculean Boots"}
    sets.engaged.Acc.PDT.HighHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses",feet="Herculean Boots"}


    -- Custom melee group: Max Haste (2x March + Haste)
    sets.engaged.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses",feet="Herculean Boots"}
		
    -- Getting Marches+Haste from Trust NPCs, doesn't cap delay.
    sets.engaged.Fodder.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses",feet="Herculean Boots"}
    sets.engaged.Fodder.Evasion.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
		
    sets.engaged.Acc.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Evasion.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Acc.Evasion.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
        back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
		,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.PDT.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}
    sets.engaged.Acc.PDT.MaxHaste = {ammo="Vanir Battery",
        head="Herculean Helm",neck="Asperity Necklace",ear1="Brutal Earring",ear2="Suppanomimi",
        body="Mummu Jacket",hands="Mummu Wrists +1",ring1="Epona's Ring",ring2="Rajas Ring",
       back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}
	   ,waist="Windbuffet Belt",legs="Meghanada Chausses +1",feet="Herculean Boots"}

    -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
    sets.buff['Saber Dance'] = {legs="Horos Tights"}
    sets.buff['Climactic Flourish'] = {head="Maculele Tiara",back="Senuna's Mantle"}
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)
    --auto_presto(spell)
end


function job_post_precast(spell, action, spellMap, eventArgs)
    if spell.type == "WeaponSkill" then
        if state.Buff['Climactic Flourish'] then
            equip(sets.buff['Climactic Flourish'])
        end
        if state.SkillchainPending.value == true then
            equip(sets.precast.Skillchain)
        end
    end
end


-- Return true if we handled the aftercast work.  Otherwise it will fall back
-- to the general aftercast() code in Mote-Include.
function job_aftercast(spell, action, spellMap, eventArgs)
    if not spell.interrupted then
        if spell.english == "Wild Flourish" then
            state.SkillchainPending:set()
            send_command('wait 5;gs c unset SkillchainPending')
        elseif spell.type:lower() == "weaponskill" then
            state.SkillchainPending:toggle()
            send_command('wait 6;gs c unset SkillchainPending')
        end
    end
end

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

-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff,gain)
    -- If we gain or lose any haste buffs, adjust which gear set we target.
    if S{'haste','march','embrava','haste samba'}:contains(buff:lower()) then
        determine_haste_group()
        handle_equipping_gear(player.status)
    elseif buff == 'Saber Dance' or buff == 'Climactic Flourish' then
        handle_equipping_gear(player.status)
    end
end


function job_status_change(new_status, old_status)
    if new_status == 'Engaged' then
        determine_haste_group()
    end
end


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

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


function customize_idle_set(idleSet)
    if player.hpp < 80 and not areas.Cities:contains(world.area) then
        idleSet = set_combine(idleSet, sets.ExtraRegen)
    end
    
    return idleSet
end

function customize_melee_set(meleeSet)
    if state.DefenseMode.value ~= 'None' then
        if buffactive['saber dance'] then
            meleeSet = set_combine(meleeSet, sets.buff['Saber Dance'])
        end
        if state.Buff['Climactic Flourish'] then
            meleeSet = set_combine(meleeSet, sets.buff['Climactic Flourish'])
        end
    end
    
    return meleeSet
end

-- Handle auto-targetting based on local setup.
function job_auto_change_target(spell, action, spellMap, eventArgs)
    if spell.type == 'Step' then
        if state.IgnoreTargetting.value == true then
            state.IgnoreTargetting:reset()
            eventArgs.handled = true
        end
        
        eventArgs.SelectNPCTargets = state.SelectStepTarget.value
    end
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'
    end

    msg = msg .. ', ['..state.MainStep.current

    if state.UseAltStep.value == true then
        msg = msg .. '/'..state.AltStep.current
    end
    
    msg = msg .. ']'

    if state.SelectStepTarget.value == true then
        steps = steps..' (Targetted)'
    end

    add_to_chat(122, msg)

    eventArgs.handled = true
end


-------------------------------------------------------------------------------------------------------------------
-- User self-commands.
-------------------------------------------------------------------------------------------------------------------

-- Called for custom player commands.
function job_self_command(cmdParams, eventArgs)
    if cmdParams[1] == 'step' then
        if cmdParams[2] == 't' then
            state.IgnoreTargetting:set()
        end

        local doStep = ''
        if state.UseAltStep.value == true then
            doStep = state[state.CurrentStep.current..'Step'].current
            state.CurrentStep:cycle()
        else
            doStep = state.MainStep.current
        end        
        
        send_command('@input /ja "'..doStep..'" <t>')
    end
end

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

function determine_haste_group()
    -- We have three groups of DW in gear: Charis body, Charis neck + DW earrings, and Patentia Sash.

    -- For high haste, we want to be able to drop one of the 10% groups (body, preferably).
    -- High haste buffs:
    -- 2x Marches + Haste
    -- 2x Marches + Haste Samba
    -- 1x March + Haste + Haste Samba
    -- Embrava + any other haste buff
    
    -- For max haste, we probably need to consider dropping all DW gear.
    -- Max haste buffs:
    -- Embrava + Haste/March + Haste Samba
    -- 2x March + Haste + Haste Samba

    classes.CustomMeleeGroups:clear()
    
    if buffactive.embrava and (buffactive.haste or buffactive.march) and buffactive['haste samba'] then
        classes.CustomMeleeGroups:append('MaxHaste')
    elseif buffactive.march == 2 and buffactive.haste and buffactive['haste samba'] then
        classes.CustomMeleeGroups:append('MaxHaste')
    elseif buffactive.embrava and (buffactive.haste or buffactive.march or buffactive['haste samba']) then
        classes.CustomMeleeGroups:append('HighHaste')
    elseif buffactive.march == 1 and buffactive.haste and buffactive['haste samba'] then
        classes.CustomMeleeGroups:append('HighHaste')
    elseif buffactive.march == 2 and (buffactive.haste or buffactive['haste samba']) then
        classes.CustomMeleeGroups:append('HighHaste')
    end
end


-- Automatically use Presto for steps when it's available and we have less than 3 finishing moves
function auto_presto(spell)
    if spell.type == 'Step' then
        local allRecasts = windower.ffxi.get_ability_recasts()
        local prestoCooldown = allRecasts[236]
        local under3FMs = not buffactive['Finishing Move 3'] and not buffactive['Finishing Move 4'] and not buffactive['Finishing Move 5']
        
        if player.main_job_level >= 77 and prestoCooldown < 1 and under3FMs then
            cast_delay(1.1)
            send_command('@input /ja "Presto" <me>')
        end
    end
end


-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
    -- Default macro set/book
    if player.sub_job == 'WAR' then
        set_macro_page(3, 20)
    elseif player.sub_job == 'NIN' then
        set_macro_page(1, 20)
    elseif player.sub_job == 'SAM' then
        set_macro_page(2, 20)
    else
        set_macro_page(5, 20)
    end
end
Offline
Posts: 219
By hobo 2018-04-27 01:36:43
Link | Quote | Reply
 
I have an issue with the obi rule on my corsair, probably something dumb as usual. Did I just make a simple mistake somewhere when I stole this?

Thanks in advance for any help
Code
sets.Obi = {waist="Hachirin-no-Obi"}

function job_post_precast(spell, action, spellMap, eventArgs)
    -- Equip obi if weather/day matches for WS/Quick Draw.
    if spell.type == 'WeaponSkill' or spell.type == 'CorsairShot' then
        if spell.english == 'Leaden Salute' and (world.weather_element == 'Dark' or world.day_element == 'Dark') then
            equip(sets.Obi)
        elseif spell.english == 'Wildfire' and (world.weather_element == 'Fire' or world.day_element == 'Fire') then
            equip(sets.Obi)
        elseif spell.type == 'CorsairShot' and (spell.element == world.weather_element or spell.element == world.day_element) then
            equip(sets.Obi)
        end
    end
end

Offline
Posts: 2
By Squinookle 2018-04-27 06:58:23
Link | Quote | Reply
 
Hi!

Ever since adding a new augment on my Ogma's Capes gearswap stopped equipping them. Can anyone help me find out why?
Code
sets.precast.WS['Resolution'] = {
    ammo="Knobkierrie",
    head="Meghanada Visor +2",
    body="Ayanmo Corazza +2",
    hands="Herculean Gloves",
    legs="Taeon tights",
    feet="Herculean Boots",
    neck="Breeze gorget",
    waist="Breeze belt",
    left_ear="Cessance Earring",
    right_ear="Ishvara Earring",
    left_ring="Niqmaddu Ring",
    right_ring="Epona's Ring",
    back={ name="Ogma's cape", augments={'STR+30','Accuracy+20','Attack+20','"Dbl. Atk."+10','Parrying rate +1%',}},
}


and this one
Code
    sets.precast.JA['Vallation'] = {
	ammo="Aqreqaq Bomblet",
	head="Erilaz galea +1",
	neck="Sanctity necklace",
	body="Runeist's Coat +2",
	hands="Runeist mitons +1",
	legs="Futhark Trousers +1",
	feet="Runeist bottes +1",
	back={ name="Ogma's cape", augments={'HP+60','Mag. Evasion+10','Eva.+20/Mag. Eva.+20','Enmity+10',}},
	}




New augments are added from the new ambuscade item
First Page 2 3 ... 133 134 135 ... 144 145 146
Log in to post.