Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function get_sets()
- TPback = { name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','"Store TP"+10',}}
- --DEXback = { name="Belenus's Cape", augments={'DEX+20','Rng.Acc.+20 Rng.Atk.+20','DEX+10','Crit.hit rate+10',}}
- SNAPback = { name="Camulus's Cape", augments={'"Snapshot"+10',}}
- AGIback = { name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}}
- MABback = { name="Camulus's Mantle", augments={'AGI+20','Mag. Acc+20 /Mag. Dmg.+20','Magic Damage +10','Weapon skill damage +10%',}}
- MABhead = { name="Herculean Helm", augments={'"Mag.Atk.Bns."+22','Weapon skill damage +3%','Mag. Acc.+12',}}
- MABlegs = { name="Herculean Trousers", augments={'"Repair" potency +1%','"Waltz" potency +6%','Weapon skill damage +9%','Mag. Acc.+20 "Mag.Atk.Bns."+20',}}
- MABfeet = { name="Herculean Boots", augments={'"Mag.Atk.Bns."+25','Weapon skill damage +4%','DEX+4','Mag. Acc.+3',}}
- WSbody = { name="Herculean Vest", augments={'Rng.Acc.+7 Rng.Atk.+7','Weapon skill damage +3%','AGI+12','Rng.Acc.+12',}}
- Adhemar_M = { name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}}
- Adhemar_R = { name="Adhemar Wrist. +1", augments={'AGI+12','Rng.Acc.+20','Rng.Atk.+20',}}
- TP_Index = 1
- RA_Index = 1
- TP_Array = {'PDT', 'TPacc', 'TPnormal'}
- RA_Array = {'RAnormal', 'RAacc'}
- -------------------------------------------
- -- aftercast for returning to TP and Idle sets
- -- the 'self command' area will change the set defined as aftercast.TP
- -------------------------------------------
- sets.aftercast = {}
- sets.engaged = {}
- sets.precast = {}
- sets.precast.Normal = {}
- sets.precast.Acc = {}
- sets.midcast = {}
- sets.midcast.Ranged = {}
- sets.midcast.Ranged.RAnormal = {}
- sets.midcast.Ranged.RAacc = {}
- sets.buffs = {}
- Agi_WS = S{"Hot Shot","Split Shot","Sniper Shot","Detonator","Numbing Shot"}
- Agi2_WS = S{"Last Stand","Slug Shot"}
- MAB_WS = S{"Leaden Salute"}
- MAB2_WS = S{"Wildfire"}
- sets.aftercast.Idle = {
- head="Meghanada Visor +2",
- neck="Loricate Torque +1",
- lear="Infused Earring",
- rear="Arete del Luna +1",
- body="Meg. Cuirie +2",
- hands="Meg. Gloves +2",
- lring="Sheltered Ring",
- rring="Defending Ring",
- back="Shadow Mantle",
- waist="K. Kachina Belt +1",
- legs="Meg. Chausses +2",
- feet="Lanun Bottes +1"}
- -------------------------------------------
- -- The outermost table has to be named "sets", but
- -- otherwise there are no restrictions.
- -------------------------------------------
- sets.engaged.TPnormal = {
- head="Meghanada Visor +2",
- neck="Lissome Necklace",
- lear="Sherida Earring",
- rear="Telos Earring",
- body="Mummu Jacket +2",
- hands=Adhemar_M,
- lring="Petrov Ring",
- rring="Epona's Ring",
- back="Letalis Mantle",
- waist="Windbuffet Belt +1",
- legs="Meg. Chausses +2",
- feet="Taeon Boots"}
- -- Haste: 4+4+5+4+4=21 haste
- --change earrings to Cessance + Telos for greater acc setup, lost a bit double atk but + acc & + stp
- --maybe get herc feet with more TA
- --look into adhemar +1 body
- sets.engaged.TPacc = set_combine(sets.engaged.TPnormal, {
- neck="Lissome Necklace",
- lear="Digni. Earring",
- body="Meg. Cuirie +2",
- lring="Chirich Ring",
- rring="Patricius Ring",
- back="Grounded Mantle",
- waist="Sailfi Belt +1",
- feet="Meg. Jam. +2"})
- -- Haste: 4+2+4+1+9+4+2 = 26
- sets.engaged.PDT = set_combine(sets.engaged.TPnormal, {
- neck="Loricate Torque +1",
- lear="Digni. Earring",
- body="Meg. Cuirie +2",
- hands="Meg. Gloves +2",
- lring="Defending Ring",
- rring="Patricius Ring",
- waist="Sailfi Belt +1",
- feet="Meg. Jam. +2"})
- -- Haste: 4+2+4+9+4+2 = 25
- sets.aftercast.TP = sets.engaged[TP_Array[TP_Index]]
- -------------------------------------------
- -- Ranged sets:
- -- Precast is Snapshot (SS) / Rapid Shot (RS)
- -- Snapshot reduces aiming delay by %, Rapid Shot reduces aiming delay by chance procs
- -- Snapshot goal 70 without Flurry (merits 5/5 = 10)
- -- Flurry build allows for more RS to be input because 70 SS achieved easier
- -- Flurry I = 15 SS and Flurry II = 30, sets below assume II is active
- -- Some -DT (Damage Taken) mixed, just in case
- -- Midcast is the TP builds, showing a normal and acc build
- -- default is the set used for Fomalhaut, it has the least STP because the TP return is highest naturally
- -- lua is built to accommodate for specific weapons, which is relevant as diff weapons have diff delays so STP builds may differ
- -- would be for the midcast shot, and set names would be something like sets.midcast.Ranged.RAnormal.Fomalhaut
- -------------------------------------------
- sets.precast.Ranged = {
- head="Taeon Chapeau", --9/0 4 leaftip & 5 dusktip, need to max leaftip
- neck="Loricate Torque +1",
- lear="Enervating Earring", --just in case instant-shot
- rear="Telos Earring", --just in case instant-shot
- body="Oshosi Vest +1", --14/0
- hands="Carmine Fin. Ga. +1", --8/11
- lring="Gelatinous Ring +1", --0
- rring="Dingir Ring", --0 replace w/Regal Ring
- back=SNAPback, --10/0
- waist="Yemaya Belt", --0/5
- legs="Adhemar Kecks +1", --10/13
- feet="Meg. Jam. +2"} --10/0
- --snapshot: 10 gifts +9+14+8+10+10+10 = 71 out of 70
- sets.precast.Ranged.Flurry = {
- head="Chass. Tricorne +1", --0/14
- neck="Loricate Torque +1",
- lear="Enervating Earring", --just in case instant-shot
- rear="Telos Earring", --just in case instant-shot
- body="Laksa. Frac +3", --0/20
- hands="Carmine Fin. Ga. +1", --8/11
- lring="Gelatinous Ring +1", --0
- rring="Dingir Ring", --0 replace w/Regal Ring
- back=SNAPback, --10/0
- waist="Yemaya Belt", --0/5
- legs="Adhemar Kecks +1", --10/13
- feet="Meg. Jam. +2"} --10/0
- --snapshot: 30 flurry II + 10 gifts + 8+10+10+10 = 78
- --acceptable overage in event it's Flurry I (15 less snapshot)
- sets.midcast.Ranged.RAnormal.default = {
- head="Meghanada Visor +2", --0
- neck="Iskur Gorget", --8
- lear="Enervating Earring", --4
- rear="Telos Earring", --5
- body="Oshosi Vest +1", --10
- hands=Adhemar_R, --7
- lring="Ilabrat Ring", --5
- rring="Dingir Ring", --0
- back=TPback, --10
- waist="K. Kachina Belt +1", --0
- legs="Adhemar Kecks +1", --8
- feet="Meg. Jam. +2"} --0
- -- STP totals: Fomal 10 + 8+4+5+10+7+5+10+8 = 67 STP +3 w/shield
- -- get Regal Ring, replace Dingir with it
- sets.midcast.Ranged.RAacc.default = set_combine(sets.midcast.Ranged.RAnormal.default, {
- body="Laksa. Frac +3", --0 (was 10)
- lring="Cacoethic Ring", --0 (was 5)
- legs="Meg. Chausses +2"}) --0 (was 8)
- -- STP totals: 67 -10-5-8 = 44 STP +3 w/shield
- sets.aftercast.Ranged = sets.midcast.Ranged[RA_Array[RA_Index]].default
- -------------------------------------------
- -- STR WS : melee ws'ing
- -- So it's easy to determine if new obtained gear can replace anything, listed str stats per piece
- -------------------------------------------
- sets.precast.Normal.WSStr = {
- head="Lilitu Headpiece", --22+10aug, 3 wsd
- neck="Fotia Gorget",
- lear="Moonshade Earring",
- rear="Ishvara Earring",
- body="Laksa. Frac +3", --39, 10 wsd
- hands="Meg. Gloves +2", --23, 7 wsd
- lring="Apate Ring", --6
- rring="Rajas Ring", --erud
- back=AGIback, --because of the wsd, not making a back just for melee ws'ing!
- waist="Fotia Belt",
- legs=MABlegs, --33, 9 wsd
- feet="Meg. Jam. +2"} --23 (no wsd, but kept for the acc, look to replace with herc when augmented)
- sets.precast.Acc.WSStr = set_combine(sets.precast.Normal.WSStr, {
- head="Meghanada Visor +2",
- lear="Digni. Earring",
- rear="Telos Earring",
- lring="Chirich Ring",
- rring="Cacoethic Ring"})
- -------------------------------------------
- -- AGI WS Mix : All Marksmanship WS's (except Trueflight/Wildfire -magic ws- & Coronach -Relic WS-)
- -- So it's easy to determine if new obtained gear can replace anything, listed agi stats per piece
- -------------------------------------------
- sets.precast.Normal.WSAgi = {
- head="Meghanada Visor", --31
- neck="Fotia Gorget",
- lear="Moonshade Earring",
- rear="Ishvara Earring",
- body="Laksa. Frac +3", --45, 10 wsd
- hands="Meg. Gloves +2", --19, 7 wsd
- lring="Ilabrat Ring", --10
- rring="Dingir Ring", --10
- back=AGIback, --30
- waist="Fotia Belt",
- legs=MABlegs, --32, 9 wsd
- feet="Meg. Jam. +2"} --54 ... replace w/lanun +3 feet for 10wsd
- --need "AGI+WSD" herc gear for head, legs
- sets.precast.Acc.WSAgi = set_combine(sets.precast.Normal.WSAgi, {
- head="Meghanada Visor", --31
- lear="Telos Earring",
- legs="Meg. Chausses +2"}) --42
- -------------------------------------------
- -- Magic WS Mix : Leaden Salute & Wildfire
- -- They have an AGI Modifier so using that as a base and applying gear with MAB
- -- Applying notes for gear chosen
- -------------------------------------------
- sets.precast.Normal.Leaden = {
- head="Pixie Hairpin +1", --28 dark mab
- neck="Sanctity Necklace", --10 mab/mac/racc
- lear="Friomisi Earring", --10 mab
- rear="Moonshade Earring",
- body="Samnuha Coat", --35 mab, 38 mac, 8 mbd II
- hands="Carmine Fin. Ga. +1", --42 mab
- lring="Dingir Ring", --10 mab
- rring="Archon Ring", --5 dark mab/mac
- back=MABback, --30 agi
- waist="Eschan Stone", --7 mab/mac, 15 racc/ratk
- legs=MABlegs, --20 mab/mac, 9 wsd augments
- feet=MABfeet} --10 mab + 25 mab/4 wsd augments ... replace w/lanun +3 feet for 10wsd & 55 mab
- sets.precast.Acc.Leaden = set_combine(sets.precast.Normal.WSMAB, {
- lear="Telos Earring"})
- sets.precast.Normal.Wildfire = {
- head=MABhead, --10 mab + 22 mab/3 wsd augments
- neck="Sanctity Necklace", --10 mab/mac/racc
- lear="Friomisi Earring", --10 mab
- rear="Crematio Earring", --6 mab
- body="Samnuha Coat", --35 mab, 38 mac, 8 mbd II
- hands="Carmine Fin. Ga. +1", --42 mab
- lring="Dingir Ring", --10 mab
- rring="Acumen Ring", --4 mab
- back=MABback, --30 agi
- waist="Eschan Stone", --7 mab/mac, 15 racc/ratk
- legs=MABlegs, --20 mab/mac, 9 wsd augments
- feet=MABfeet} --10 mab + 25 mab/4 wsd augments ... replace w/lanun +3 feet for 10wsd & 55 mab
- sets.precast.Acc.Wildfire = set_combine(sets.precast.Normal.WSMAB, {
- lear="Telos Earring"})
- -------------------------------------------
- -- Precast sets for fastcast spells
- -------------------------------------------
- sets.precast.Fastcast = set_combine(sets.engaged.TPnormal, {
- head=MABhead,
- neck="Voltsurge Torque",
- lear="Loquac. Earring",
- rear="Enchntr. Earring +1",
- body="Samnuha Coat",
- hands="Leyline Gloves",
- lring="Lebeche Ring",
- rring="Prolix Ring",
- waist="Sailfi Belt +1"})
- sets.precast.Utsusemi = set_combine(sets.precast.Fastcast, {
- neck="Magoraga Beads",
- body="Passion Jacket"})
- sets.precast.CorsairRoll = set_combine(sets.aftercast.Idle, {
- head="Lanun Tricorne +1",
- neck="Regal Necklace",
- hands="Chasseur's Gants +1",
- rring="Luzaf's Ring",
- back=AGIback})
- sets.precast.CorsairRoll["Caster's Roll"] = set_combine(sets.precast.CorsairRoll, {
- legs="Chas. Culottes +1"})
- sets.precast.CorsairRoll["Courser's Roll"] = set_combine(sets.precast.CorsairRoll, {
- feet="Chass. Bottes +1"})
- sets.precast.CorsairRoll["Blitzer's Roll"] = set_combine(sets.precast.CorsairRoll, {
- head="Chass. Tricorne +1"})
- sets.precast.CorsairRoll["Tactician's Roll"] = set_combine(sets.precast.CorsairRoll, {
- body="Chasseur's Frac +1"})
- sets.precast.CorsairRoll["Allies' Roll"] = set_combine(sets.precast.CorsairRoll, {
- hands="Chasseur's Gants +1"})
- -------------------------------------------
- -- Job Ability sets
- -- The sets.buff is present because this particular JA requires gear to be worn during the duration of the buff
- -- and not just at the point of activation like the rest. Rules for both are in the function for precast
- -------------------------------------------
- sets.precast["Wild Card"] = {feet="Lanun Bottes +1"}
- -- sets.precast["Phantom Roll"] = {""} the JA doesn't actually call upon Phantom Roll
- -- but rather the specific roll like Chaos and such. So rules needed instead for CorsairRoll above
- sets.precast["Double-Up"] = set_combine(sets.aftercast.Idle, {head="Lanun Tricorne +1",neck="Regal Necklace",hands="Chasseur's Gants +1",rring="Luzaf's Ring",back=AGIback})
- sets.precast["Quick Draw"] = {head="Laksa. Tricorne +2",feet="Chass. Bottes +1"}
- sets.precast["Random Deal"] = {body="Lanun Frac +1"}
- sets.precast["Snake Eye"] = {legs="Lanun Culottes +1"}
- sets.precast.Fold = {hands="Lanun Gants +1"}
- sets.precast["Triple Shot"] = {body="Chasseur's Frac +1"}
- -- sets.precast["Crooked Cards"] = {""}
- -- sets.precast["Cutting Cards"] = {""}
- sets.precast.Waltz = {hands="Slither Gloves +1",legs=MABlegs}
- sets.buffs["Quick Draw"] = {
- head="Laksa. Tricorne +2",
- neck="Sanctity Necklace", --10 mab/mac/racc
- lear="Friomisi Earring", --10 mab
- rear="Crematio Earring", --6 mab
- body="Samnuha Coat", --35 mab, 38 mac, 8 mbd II
- hands="Carmine Fin. Ga. +1", --42 mab
- lring="Dingir Ring", --10 mab
- rring="Acumen Ring", --4 mab, replace with Regal Ring later
- back="Gunslinger's Cape", --10 mab + 3 mab aug
- waist="Eschan Stone", --7 mab/mac, 15 racc/ratk
- legs=MABlegs, --20 mab/mac, 9 wsd augments
- feet="Chass. Bottes +1"}
- sets.buffs["Triple Shot"] = set_combine(sets.midcast.Ranged.RAacc.default, {
- body="Chasseur's Frac +1"})
- send_command('input /macro book 11')
- end
- function precast(spell,action)
- equip_sets = {}
- if spell.action_type == 'Ranged Attack' and buffactive['Flurry'] then
- equip(sets.precast.Ranged.Flurry)
- elseif sets.precast[spell.english] then
- equip(sets.precast[spell.english])
- elseif spell.type == 'CorsairRoll' then
- equip(sets.precast.CorsairRoll[spell.english] or sets.precast.CorsairRoll)
- elseif spell.type == 'WeaponSkill' then
- if sets.aftercast.TP == sets.engaged.TPnormal then
- mode = "Normal"
- else
- mode = "Acc"
- end
- if Agi_WS:contains(spell.english) then
- equip_sets[#equip_sets+1] = sets.precast[mode].WSAgi
- elseif Agi2_WS:contains(spell.english) then
- equip_sets[#equip_sets+1] = sets.precast.Acc.WSAgi
- elseif MAB_WS:contains(spell.english) then
- equip_sets[#equip_sets+1] = sets.precast[mode].Leaden
- elseif MAB2_WS:contains(spell.english) then
- equip_sets[#equip_sets+1] = sets.precast[mode].Wildfire
- else equip_sets[#equip_sets+1] = sets.precast[mode].WSStr
- end
- end
- for buff in pairs(buffactive) do
- equip_sets[#equip_sets+1] = sets.buffs[buff]
- end
- equip(set_combine(table.unpack(equip_sets)))
- end
- function midcast(spell,action)
- -------------------------------------------
- -- this has to be at the top of the midcast function, thats to make sure the correct aftercast
- -- ranged is set if you have changed weapon
- -------------------------------------------
- if sets.midcast.Ranged[RA_Array[RA_Index]][player.equipment.range] then
- sets.aftercast.Ranged = sets.midcast.Ranged[RA_Array[RA_Index]][player.equipment.range]
- else
- sets.aftercast.Ranged = sets.midcast.Ranged[RA_Array[RA_Index]].default
- end
- -------------------------------------------
- if spell.action_type == "Ranged Attack" then
- equip(sets.aftercast.Ranged)
- end
- if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
- if windower.wc_match(spell.english,'Utsusemi') then
- if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then -- Cancel Copy Image 1 & 2 For Utsusemi: Ichi --
- send_command('@wait 1.7;cancel Copy Image*')
- end
- elseif spell.english == 'Monomi: Ichi' then -- Cancel Sneak --
- if buffactive['Sneak'] then
- send_command('@wait 1.7;cancel sneak')
- end
- else equip(sets.precast.Fastcast)
- end
- end
- end
- function aftercast(spell)
- if player.status == 'Engaged' then
- equip(sets.aftercast.TP)
- else
- equip(sets.aftercast.Idle)
- end
- end
- function status_change(new,old)
- if new == 'Idle' then
- equip(sets.aftercast.Idle)
- elseif new == 'Resting' then
- equip(sets.aftercast.Resting)
- elseif new == 'Engaged' then
- equip(sets.aftercast.TP)
- end
- end
- -------------------------------------------
- -- The 'self command' allows you to toggle inbetween sets, based on the TP and RA Arrays identified in the beginning
- -- The TP_Array toggles between a normal, acc, and pdt set
- -- The RA_Array toggles between a ranged normal & ranged accuracy sets
- -- I binded my ctrl+q & ctrl+w keys in the 'init.txt' file (in the Scripts folder) for the TP and RA toggling
- --without being bound, the manual command to toggle would be //gs c toggle TP set & //gs c toggle RA set
- -------------------------------------------
- function self_command(command)
- if command == 'toggle TP set' then
- TP_Index = (TP_Index % #TP_Array) + 1
- sets.aftercast.TP = sets.engaged[TP_Array[TP_Index]]
- status_change(player.status, player.status)
- send_command('@input /echo '..TP_Array[TP_Index]..' SET')
- end
- if command == 'toggle RA set' then
- RA_Index = (RA_Index % #RA_Array) + 1
- sets.aftercast.RA = sets.engaged[RA_Array[RA_Index]]
- if sets.midcast.Ranged[RA_Array[RA_Index]] and sets.midcast.Ranged[RA_Array[RA_Index]][player.equipment.range] then
- sets.aftercast.Ranged = sets.midcast.Ranged[RA_Array[RA_Index]][player.equipment.range]
- else
- if sets.midcast.Ranged[RA_Array[RA_Index]] then
- sets.aftercast.Ranged = sets.midcast.Ranged[RA_Array[RA_Index]].default
- end
- status_change(player.status, player.status)
- end
- send_command('@input /echo '..RA_Array[RA_Index]..' SET')
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment