Code
-- *** Credit goes to Flippant for helping me with Gearswap *** -- -- ** I Use Some of Motenten's Functions ** -- -- Last Updated: 05/05/14 12:00 AM ** -- function get_sets() AccIndex = 1 AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid/Stun. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below. Most of These Sets Are Empty So You Need To Edit Them On Your Own. Remember To Check What The Combined Set Is For Each Sets. -- WeaponIndex = 1 WeaponArray = {"Liberator","Ragnarok","Apocalypse"} -- Default Main Weapon Is Liberator. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. -- IdleIndex = 1 IdleArray = {"Movement","Regen","Refresh"} -- Default Idle Set Is Movement -- Armor = 'None' Warp = 'None' Twilight = 'None' Attack = 'OFF' -- Set Default Attack Set ON or OFF Here -- Rancor = 'ON' -- Set Default Rancor ON or OFF Here -- Mekira = 'OFF' -- Set Default Mekira ON or OFF Here -- Samurai_Roll = 'OFF' -- Set Default SAM Roll ON or OFF Here -- target_distance = 5 -- Set Default Distance Here -- select_default_macro_book() -- Change Default Macro Book At The End -- sc_map = {SC1="Resolution", SC2="LastResort", SC3="Souleater"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. -- sets.Idle = {} -- Idle/Town Sets -- sets.Idle.Regen = { ammo="Ginsen", head="Twilight Helm", neck="Coatl Gorget +1", ear1="Ethereal Earring", ear2="Brutal Earring", body="Ares' Cuirass +1", hands="Emicho Gauntlets", ring1="Paguroidea Ring", ring2="Defending Ring", back="Shadow Mantle", waist="Nierenschutz", legs="Blood Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.Idle.Regen.Liberator = set_combine(sets.Idle.Regen,{ main="Liberator"}) sets.Idle.Regen.Ragnarok = set_combine(sets.Idle.Regen,{ main="Ragnarok"}) sets.Idle.Regen.Apocalypse = set_combine(sets.Idle.Regen,{ main="Apocalypse"}) sets.Idle.Movement = set_combine(sets.Idle.Regen,{ ammo="Ginsen", head="Twilight Helm", neck="Coatl Gorget +1", ear1="Ethereal Earring", ear2="Brutal Earring", body="Ares' Cuirass +1", hands="Emicho Gauntlets", ring1="Paguroidea Ring", ring2="Defending Ring", back="Shadow Mantle", waist="Nierenschutz", legs="Blood Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}}) sets.Idle.Movement.Liberator = set_combine(sets.Idle.Movement,{ main="Liberator"}) sets.Idle.Movement.Ragnarok = set_combine(sets.Idle.Movement,{ main="Ragnarok"}) sets.Idle.Movement.Apocalypse = set_combine(sets.Idle.Movement,{ main="Apocalypse"}) sets.Idle.Refresh = set_combine(sets.Idle.Regen,{ ammo="Ginsen", head="Twilight Helm", neck="Coatl Gorget +1", ear1="Ethereal Earring", ear2="Brutal Earring", body="Ares' Cuirass +1", hands="Emicho Gauntlets", ring1="Paguroidea Ring", ring2="Defending Ring", back="Shadow Mantle", waist="Nierenschutz", legs="Blood Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}}) sets.Idle.Refresh.Liberator = set_combine(sets.Idle.Refresh,{ main="Liberator"}) sets.Idle.Refresh.Ragnarok = set_combine(sets.Idle.Refresh,{ main="Ragnarok"}) sets.Idle.Refresh.Apocalypse = set_combine(sets.Idle.Refresh,{ main="Apocalypse"}) sets.Twilight = {head="Twilight Helm",body="Twilight Mail"} sets.WarpSet = {ring1="Warp Ring"} -- TP Base Set -- sets.TP = {} -- Liberator(AM3 Down) TP Sets -- sets.TP.Liberator = { main="Liberator", sub="Duplus Grip", ammo="Ginsen", head="Otomi Helm", neck="Ganesha's Mala", ear1="Trux Earring", ear2="Brutal Earring", body="Pak Corselet +1", hands="Cizin Mufflers +1", ring1="K'ayres Ring", ring2="Rajas Ring", back="Atheling Mantle", waist="Windbuffet Belt", legs="Ares' Flanchard +1", feet="Huginn Gambieras"} sets.TP.Liberator.MidACC = set_combine(sets.TP.Liberator,{ head="Yaoyotl Helm", neck="Ziel Charm", ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Xaddi Mail", hands="Xaddi Gauntlets", back="Letalis Mantle", waist="Dynamic Belt +1", legs="Xaddi Cuisses", feet="Xaddi Boots"}) sets.TP.Liberator.HighACC = set_combine(sets.TP.Liberator.MidACC,{ body="Mes. Haubergeon", ring1="Mars's Ring"}) -- Liberator(AM3 Up) TP Sets -- sets.TP.Liberator.AM3 = set_combine(sets.TP.Liberator,{ head="Yaoyotl Helm", ear1="Tripudio Earring", ear2="Brutal Earring", body="Enif Corazza"}) sets.TP.Liberator.MidACC.AM3 = set_combine(sets.TP.Liberator.AM3,{ neck="Ziel Charm", ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Xaddi Mail", hands="Xaddi Gauntlets", back="Letalis Mantle", waist="Dynamic Belt +1", legs="Xaddi Cuisses", feet="Xaddi Boots"}) sets.TP.Liberator.HighACC.AM3 = set_combine(sets.TP.Liberator.MidACC.AM3,{ body="Mes. Haubergeon", ring1="Mars's Ring"}) -- Liberator(AM3 Down: High Haste) TP Sets -- sets.TP.Liberator.HighHaste = set_combine(sets.TP.Liberator,{}) sets.TP.Liberator.MidACC.HighHaste = set_combine(sets.TP.Liberator.HighHaste,{}) sets.TP.Liberator.HighACC.HighHaste = set_combine(sets.TP.Liberator.MidACC.HighHaste,{}) -- Liberator(AM3 Up: High Haste) TP Sets -- sets.TP.Liberator.AM3.HighHaste = set_combine(sets.TP.Liberator.AM3,{}) sets.TP.Liberator.MidACC.AM3.HighHaste = set_combine(sets.TP.Liberator.AM3.HighHaste,{}) sets.TP.Liberator.HighACC.AM3.HighHaste = set_combine(sets.TP.Liberator.MidACC.AM3.HighHaste,{}) -- Liberator(AM3 Down: Ionis) TP Sets -- sets.TP.Liberator.Ionis = set_combine(sets.TP.Liberator,{}) sets.TP.Liberator.MidACC.Ionis = set_combine(sets.TP.Liberator.Ionis,{}) sets.TP.Liberator.HighACC.Ionis = set_combine(sets.TP.Liberator.MidACC.Ionis,{}) -- Liberator(AM3 Up: Ionis) TP Sets -- sets.TP.Liberator.AM3.Ionis = set_combine(sets.TP.Liberator.AM3,{}) sets.TP.Liberator.MidACC.AM3.Ionis = set_combine(sets.TP.Liberator.AM3.Ionis,{}) sets.TP.Liberator.HighACC.AM3.Ionis = set_combine(sets.TP.Liberator.MidACC.AM3.Ionis,{}) -- Liberator(AM3 Down: High Haste + Ionis) TP Sets -- sets.TP.Liberator.HighHaste.Ionis = set_combine(sets.TP.Liberator.HighHaste,{}) sets.TP.Liberator.MidACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.HighHaste.Ionis,{}) sets.TP.Liberator.HighACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.MidACC.HighHaste.Ionis,{}) -- Liberator(AM3 Up: High Haste + Ionis) TP Sets -- sets.TP.Liberator.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.AM3.HighHaste,{}) sets.TP.Liberator.MidACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.AM3.HighHaste.Ionis,{}) sets.TP.Liberator.HighACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.MidACC.AM3.HighHaste.Ionis,{}) -- Liberator(AM3 Down: SAM Roll) TP Sets -- sets.TP.Liberator.STP = set_combine(sets.TP.Liberator,{}) sets.TP.Liberator.MidACC.STP = set_combine(sets.TP.Liberator.MidACC,{}) sets.TP.Liberator.HighACC.STP = set_combine(sets.TP.Liberator.HighACC,{}) -- Liberator(AM3 Up: SAM Roll) TP Sets -- sets.TP.Liberator.AM3.STP = set_combine(sets.TP.Liberator.AM3,{}) sets.TP.Liberator.MidACC.AM3.STP = set_combine(sets.TP.Liberator.MidACC.AM3,{}) sets.TP.Liberator.HighACC.AM3.STP = set_combine(sets.TP.Liberator.HighACC.AM3,{}) -- Liberator(AM3 Down: High Haste + SAM Roll) TP Sets -- sets.TP.Liberator.HighHaste.STP = set_combine(sets.TP.Liberator.HighHaste,{}) sets.TP.Liberator.MidACC.HighHaste.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{}) sets.TP.Liberator.HighACC.HighHaste.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{}) -- Liberator(AM3 Up: High Haste + SAM Roll) TP Sets -- sets.TP.Liberator.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.HighHaste,{}) sets.TP.Liberator.MidACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{}) sets.TP.Liberator.HighACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{}) -- Liberator(AM3 Down: Ionis + SAM Roll) TP Sets -- sets.TP.Liberator.Ionis.STP = set_combine(sets.TP.Liberator.Ionis,{}) sets.TP.Liberator.MidACC.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.Ionis,{}) sets.TP.Liberator.HighACC.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.Ionis,{}) -- Liberator(AM3 Up: Ionis + SAM Roll) TP Sets -- sets.TP.Liberator.AM3.Ionis.STP = set_combine(sets.TP.Liberator.AM3,{}) sets.TP.Liberator.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.AM3,{}) sets.TP.Liberator.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.AM3,{}) -- Liberator(AM3 Down: High Haste + Ionis + SAM Roll) TP Sets -- sets.TP.Liberator.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighHaste,{}) sets.TP.Liberator.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{}) sets.TP.Liberator.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{}) -- Liberator(AM3 Up: High Haste + Ionis + SAM Roll) TP Sets -- sets.TP.Liberator.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighHaste,{}) sets.TP.Liberator.MidACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{}) sets.TP.Liberator.HighACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{}) -- Ragnarok TP Sets -- sets.TP.Ragnarok = { ammo="Ginsen", head="Valorous Mask", neck="Ganesha's Mala", ear1="Bale Earring", ear2="Brutal Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1="Petrov Ring", ring2="Rajas Ring", back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{ ear1="Steelflash Earring", ring1="Mars's Ring",}) sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{ neck="Lissome necklace", ear2="Heartseeker earring", ring2="Ramuh ring",}) -- Ragnarok(High Haste) TP Sets -- sets.TP.Ragnarok.HighHaste = set_combine(sets.TP.Ragnarok,{}) sets.TP.Ragnarok.MidACC.HighHaste = set_combine(sets.TP.Ragnarok.HighHaste,{}) sets.TP.Ragnarok.HighACC.HighHaste = set_combine(sets.TP.Ragnarok.MidACC.HighHaste,{}) -- Ragnarok(Ionis) TP Sets -- sets.TP.Ragnarok.Ionis = set_combine(sets.TP.Ragnarok,{}) sets.TP.Ragnarok.MidACC.Ionis = set_combine(sets.TP.Ragnarok.Ionis,{}) sets.TP.Ragnarok.HighACC.Ionis = set_combine(sets.TP.Ragnarok.MidACC.Ionis,{}) -- Ragnarok(High Haste + Ionis) TP Sets -- sets.TP.Ragnarok.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.HighHaste,{}) sets.TP.Ragnarok.MidACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.HighHaste.Ionis,{}) sets.TP.Ragnarok.HighACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.MidACC.HighHaste.Ionis,{}) -- Ragnarok(SAM Roll) TP Sets -- sets.TP.Ragnarok.STP = set_combine(sets.TP.Ragnarok,{}) sets.TP.Ragnarok.MidACC.STP = set_combine(sets.TP.Ragnarok.MidACC,{}) sets.TP.Ragnarok.HighACC.STP = set_combine(sets.TP.Ragnarok.HighACC,{}) -- Ragnarok(High Haste + SAM Roll) TP Sets -- sets.TP.Ragnarok.HighHaste.STP = set_combine(sets.TP.Ragnarok.HighHaste,{}) sets.TP.Ragnarok.MidACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.MidACC.HighHaste,{}) sets.TP.Ragnarok.HighACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.HighACC.HighHaste,{}) -- Ragnarok(Ionis + SAM Roll) TP Sets -- sets.TP.Ragnarok.Ionis.STP = set_combine(sets.TP.Ragnarok.Ionis,{}) sets.TP.Ragnarok.MidACC.Ionis.STP = set_combine(sets.TP.Ragnarok.MidACC.Ionis,{}) sets.TP.Ragnarok.HighACC.Ionis.STP = set_combine(sets.TP.Ragnarok.HighACC.Ionis,{}) -- Ragnarok(High Haste + Ionis + SAM Roll) TP Sets -- sets.TP.Ragnarok.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.HighHaste,{}) sets.TP.Ragnarok.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.MidACC.HighHaste,{}) sets.TP.Ragnarok.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.HighACC.HighHaste,{}) -- Apocalypse(AM Down) TP Sets -- sets.TP.Apocalypse = { ammo="Ginsen", head="Valorous Mask", neck="Ganesha's Mala", ear1="Bale Earring", ear2="Brutal Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1="Petrov Ring", ring2="Rajas Ring", back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.TP.Apocalypse.MidACC = set_combine(sets.TP.Apocalypse,{ ear1="Steelflash Earring", ring1="Mars's Ring",}) sets.TP.Apocalypse.HighACC = set_combine(sets.TP.Apocalypse.MidACC,{ neck="Lissome necklace", ear2="Heartseeker earring", ring2="Ramuh ring",}) -- Apocalypse(AM Down: High Haste) TP Sets -- sets.TP.Apocalypse.HighHaste = set_combine(sets.TP.Apocalypse,{}) sets.TP.Apocalypse.MidACC.HighHaste = set_combine(sets.TP.Apocalypse.HighHaste,{}) sets.TP.Apocalypse.HighACC.HighHaste = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{}) -- Apocalypse(AM Down: Ionis) TP Sets -- sets.TP.Apocalypse.Ionis = set_combine(sets.TP.Apocalypse,{}) sets.TP.Apocalypse.MidACC.Ionis = set_combine(sets.TP.Apocalypse.Ionis,{}) sets.TP.Apocalypse.HighACC.Ionis = set_combine(sets.TP.Apocalypse.MidACC.Ionis,{}) -- Apocalypse(AM Down: High Haste + Ionis) TP Sets -- sets.TP.Apocalypse.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.HighHaste,{}) sets.TP.Apocalypse.MidACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.HighHaste.Ionis,{}) sets.TP.Apocalypse.HighACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.MidACC.HighHaste.Ionis,{}) -- Apocalypse(AM Down: SAM Roll) TP Sets -- sets.TP.Apocalypse.STP = set_combine(sets.TP.Apocalypse,{}) sets.TP.Apocalypse.MidACC.STP = set_combine(sets.TP.Apocalypse.MidACC,{}) sets.TP.Apocalypse.HighACC.STP = set_combine(sets.TP.Apocalypse.HighACC,{}) -- Apocalypse(AM Down: High Haste + SAM Roll) TP Sets -- sets.TP.Apocalypse.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighHaste,{}) sets.TP.Apocalypse.MidACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{}) sets.TP.Apocalypse.HighACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{}) -- Apocalypse(AM Down: Ionis + SAM Roll) TP Sets -- sets.TP.Apocalypse.Ionis.STP = set_combine(sets.TP.Apocalypse.Ionis,{}) sets.TP.Apocalypse.MidACC.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.Ionis,{}) sets.TP.Apocalypse.HighACC.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.Ionis,{}) -- Apocalypse(AM Down: High Haste + Ionis + SAM Roll) TP Sets -- sets.TP.Apocalypse.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighHaste,{}) sets.TP.Apocalypse.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{}) sets.TP.Apocalypse.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{}) -- Liberator(AM3 Down) /SAM TP Sets -- sets.TP.Liberator.SAM = { main="Liberator", sub="Duplus Grip", ammo="Ginsen", head="Otomi Helm", neck="Ganesha's Mala", ear1="Trux Earring", ear2="Brutal Earring", body="Pak Corselet +1", hands="Cizin Mufflers +1", ring1="K'ayres Ring", ring2="Rajas Ring", back="Atheling Mantle", waist="Windbuffet Belt", legs="Ares' Flanchard +1", feet="Huginn Gambieras"} sets.TP.Liberator.SAM.MidACC = set_combine(sets.TP.Liberator.SAM,{ head="Yaoyotl Helm", neck="Ziel Charm", ear1="Steelflash Earring", ear2="Bladeborn Earring", body="Xaddi Mail", hands="Xaddi Gauntlets", back="Letalis Mantle", waist="Dynamic Belt +1", legs="Xaddi Cuisses", feet="Xaddi Boots"}) sets.TP.Liberator.SAM.HighACC = set_combine(sets.TP.Liberator.SAM.MidACC,{ ammo="Fire Bomblet", neck="Ziel Charm", body="Mes. Haubergeon", hands="Buremte Gloves", ring1="Patricius Ring", ring2="Mars's Ring", feet="Whirlpool Greaves"}) -- Liberator(AM3 Up) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3 = set_combine(sets.TP.Liberator.SAM,{ head="Yaoyotl Helm", ear1="Tripudio Earring", ear2="Brutal Earring", body="Enif Corazza"}) sets.TP.Liberator.SAM.MidACC.AM3 = set_combine(sets.TP.Liberator.SAM.AM3,{ ear1="Steelflash Earring", ear2="Bladeborn Earring", hands="Miki. Gauntlets", back="Letalis Mantle", waist="Dynamic Belt +1", feet="Mikinaak Greaves"}) sets.TP.Liberator.SAM.HighACC.AM3 = set_combine(sets.TP.Liberator.SAM.MidACC.AM3,{ body="Mes. Haubergeon", ring1="Mars's Ring"}) -- Liberator(AM3 Down: High Haste) /SAM TP Sets -- sets.TP.Liberator.SAM.HighHaste = set_combine(sets.TP.Liberator.SAM,{}) sets.TP.Liberator.SAM.MidACC.HighHaste = set_combine(sets.TP.Liberator.SAM.HighHaste,{}) sets.TP.Liberator.SAM.HighACC.HighHaste = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{}) -- Liberator(AM3 Up: High Haste) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.HighHaste = set_combine(sets.TP.Liberator.SAM.AM3,{}) sets.TP.Liberator.SAM.MidACC.AM3.HighHaste = set_combine(sets.TP.Liberator.SAM.AM3.HighHaste,{}) sets.TP.Liberator.SAM.HighACC.AM3.HighHaste = set_combine(sets.TP.Liberator.SAM.MidACC.AM3.HighHaste,{}) -- Liberator(AM3 Down: Ionis) /SAM TP Sets -- sets.TP.Liberator.SAM.Ionis = set_combine(sets.TP.Liberator.SAM,{}) sets.TP.Liberator.SAM.MidACC.Ionis = set_combine(sets.TP.Liberator.SAM.Ionis,{}) sets.TP.Liberator.SAM.HighACC.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.Ionis,{}) -- Liberator(AM3 Up: Ionis) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.Ionis = set_combine(sets.TP.Liberator.SAM.AM3,{}) sets.TP.Liberator.SAM.MidACC.AM3.Ionis = set_combine(sets.TP.Liberator.SAM.AM3.Ionis,{}) sets.TP.Liberator.SAM.HighACC.AM3.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.AM3.Ionis,{}) -- Liberator(AM3 Down: High Haste + Ionis) /SAM TP Sets -- sets.TP.Liberator.SAM.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.HighHaste,{}) sets.TP.Liberator.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.HighHaste.Ionis,{}) sets.TP.Liberator.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste.Ionis,{}) -- Liberator(AM3 Up: High Haste + Ionis) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.AM3.HighHaste,{}) sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.AM3.HighHaste.Ionis,{}) sets.TP.Liberator.SAM.HighACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.Ionis,{}) -- Liberator(AM3 Down: SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.STP = set_combine(sets.TP.Liberator.SAM,{}) sets.TP.Liberator.SAM.MidACC.STP = set_combine(sets.TP.Liberator.SAM.MidACC,{}) sets.TP.Liberator.SAM.HighACC.STP = set_combine(sets.TP.Liberator.SAM.HighACC,{}) -- Liberator(AM3 Up: SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.STP = set_combine(sets.TP.Liberator.SAM.AM3,{}) sets.TP.Liberator.SAM.MidACC.AM3.STP = set_combine(sets.TP.Liberator.SAM.MidACC.AM3,{}) sets.TP.Liberator.SAM.HighACC.AM3.STP = set_combine(sets.TP.Liberator.SAM.HighACC.AM3,{}) -- Liberator(AM3 Down: High Haste + SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{}) sets.TP.Liberator.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{}) sets.TP.Liberator.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{}) -- Liberator(AM3 Up: High Haste + SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{}) sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{}) sets.TP.Liberator.SAM.HighACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{}) -- Liberator(AM3 Down: Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.Ionis.STP = set_combine(sets.TP.Liberator.SAM.Ionis,{}) sets.TP.Liberator.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.Ionis,{}) sets.TP.Liberator.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.Ionis,{}) -- Liberator(AM3 Up: Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.Ionis.STP = set_combine(sets.TP.Liberator.SAM.AM3,{}) sets.TP.Liberator.SAM.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.AM3,{}) sets.TP.Liberator.SAM.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.AM3,{}) -- Liberator(AM3 Down: High Haste + Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{}) sets.TP.Liberator.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{}) sets.TP.Liberator.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{}) -- Liberator(AM3 Up: High Haste + Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Liberator.SAM.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{}) sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{}) sets.TP.Liberator.SAM.HighACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{}) -- Ragnarok /SAM TP Sets -- sets.TP.Ragnarok.SAM = { ammo="Ginsen", head="Valorous Mask", neck="Ganesha's Mala", ear1="Bale Earring", ear2="Brutal Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1="Petrov Ring", ring2="Rajas Ring", back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.TP.Ragnarok.SAM.MidACC = set_combine(sets.TP.Ragnarok.SAM,{ ear1="Steelflash Earring", ring1="Mars's Ring",}) sets.TP.Ragnarok.SAM.HighACC = set_combine(sets.TP.Ragnarok.SAM.MidACC,{ neck="Lissome necklace", ear2="Heartseeker earring", ring2="Ramuh ring",}) -- Ragnarok(High Haste) /SAM TP Sets -- sets.TP.Ragnarok.SAM.HighHaste = set_combine(sets.TP.Ragnarok.SAM,{}) sets.TP.Ragnarok.SAM.MidACC.HighHaste = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{}) sets.TP.Ragnarok.SAM.HighACC.HighHaste = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste,{}) -- Ragnarok(Ionis) /SAM TP Sets -- sets.TP.Ragnarok.SAM.Ionis = set_combine(sets.TP.Ragnarok.SAM,{}) sets.TP.Ragnarok.SAM.MidACC.Ionis = set_combine(sets.TP.Ragnarok.SAM.Ionis,{}) sets.TP.Ragnarok.SAM.HighACC.Ionis = set_combine(sets.TP.Ragnarok.SAM.MidACC.Ionis,{}) -- Ragnarok(High Haste + Ionis) /SAM TP Sets -- sets.TP.Ragnarok.SAM.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{}) sets.TP.Ragnarok.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.SAM.HighHaste.Ionis,{}) sets.TP.Ragnarok.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste.Ionis,{}) -- Ragnarok(SAM Roll) /SAM TP Sets -- sets.TP.Ragnarok.SAM.STP = set_combine(sets.TP.Ragnarok.SAM,{}) sets.TP.Ragnarok.SAM.MidACC.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC,{}) sets.TP.Ragnarok.SAM.HighACC.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC,{}) -- Ragnarok(High Haste + SAM Roll) /SAM TP Sets -- sets.TP.Ragnarok.SAM.HighHaste.STP = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{}) sets.TP.Ragnarok.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste,{}) sets.TP.Ragnarok.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC.HighHaste,{}) -- Ragnarok(Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Ragnarok.SAM.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.Ionis,{}) sets.TP.Ragnarok.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC.Ionis,{}) sets.TP.Ragnarok.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC.Ionis,{}) -- Ragnarok(High Haste + Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Ragnarok.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{}) sets.TP.Ragnarok.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste,{}) sets.TP.Ragnarok.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC.HighHaste,{}) -- Apocalypse(AM Down) /SAM TP Sets -- sets.TP.Apocalypse.SAM = { ammo="Ginsen", head="Valorous Mask", neck="Ganesha's Mala", ear1="Bale Earring", ear2="Brutal Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1="Petrov Ring", ring2="Rajas Ring", back="Bleating Mantle", waist="Windbuffet Belt +1", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.TP.Apocalypse.SAM.MidACC = set_combine(sets.TP.Apocalypse.SAM,{ ear1="Steelflash Earring", ring1="Mars's Ring",}) sets.TP.Apocalypse.SAM.HighACC = set_combine(sets.TP.Apocalypse.SAM.MidACC,{ neck="Lissome necklace", ear2="Heartseeker earring", ring2="Ramuh ring",}) -- Apocalypse(AM Down: High Haste) /SAM TP Sets -- sets.TP.Apocalypse.SAM.HighHaste = set_combine(sets.TP.Apocalypse.SAM,{}) sets.TP.Apocalypse.SAM.MidACC.HighHaste = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{}) sets.TP.Apocalypse.SAM.HighACC.HighHaste = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{}) -- Apocalypse(AM Down: Ionis) /SAM TP Sets -- sets.TP.Apocalypse.SAM.Ionis = set_combine(sets.TP.Apocalypse.SAM,{}) sets.TP.Apocalypse.SAM.MidACC.Ionis = set_combine(sets.TP.Apocalypse.SAM.Ionis,{}) sets.TP.Apocalypse.SAM.HighACC.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.Ionis,{}) -- Apocalypse(AM Down: High Haste + Ionis) /SAM TP Sets -- sets.TP.Apocalypse.SAM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{}) sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.HighHaste.Ionis,{}) sets.TP.Apocalypse.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis,{}) -- Apocalypse(AM Down: SAM Roll) /SAM TP Sets -- sets.TP.Apocalypse.SAM.STP = set_combine(sets.TP.Apocalypse.SAM,{}) sets.TP.Apocalypse.SAM.MidACC.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC,{}) sets.TP.Apocalypse.SAM.HighACC.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC,{}) -- Apocalypse(AM Down: High Haste + SAM Roll) /SAM TP Sets -- sets.TP.Apocalypse.SAM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{}) sets.TP.Apocalypse.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{}) sets.TP.Apocalypse.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{}) -- Apocalypse(AM Down: Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Apocalypse.SAM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.Ionis,{}) sets.TP.Apocalypse.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.Ionis,{}) sets.TP.Apocalypse.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.Ionis,{}) -- Apocalypse(AM Down: High Haste + Ionis + SAM Roll) /SAM TP Sets -- sets.TP.Apocalypse.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{}) sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{}) sets.TP.Apocalypse.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{}) -- AM3 Rancor ON Mantle -- sets.TP.Rancor = {back="Rancorous Mantle"} -- PDT/MDT Sets -- sets.PDT = { ammo="Ginsen", head="Valorous Mask", neck="Loricate Torque", ear1="Ethereal Earring", ear2="Etiolation Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1={name="Dark Ring",augments={"Phys. dmg. taken -6%","Magic dmg. taken -5%"}}, ring2="Defending Ring", back="Solemnity Cape", waist="Flume Belt", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.MDT = set_combine(sets.PDT,{ ammo="Ginsen", head="Valorous Mask", neck="Loricate Torque", ear1="Ethereal Earring", ear2="Etiolation Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1={name="Dark Ring",augments={"Phys. dmg. taken -6%","Magic dmg. taken -5%"}}, ring2="Defending Ring", back="Solemnity Cape", waist="Nierenschutz", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}}) -- Hybrid Set -- sets.TP.Hybrid = set_combine(sets.PDT,{ ammo="Ginsen", hhead="Valorous Mask", neck="Loricate Torque", ear1="Ethereal Earring", ear2="Etiolation Earring", body="Acro Surcoat", hands="Emicho Gauntlets", ring1={name="Dark Ring",augments={"Phys. dmg. taken -6%","Magic dmg. taken -5%"}}, ring2="Defending Ring", back="Solemnity Cape", waist="Flume Belt", legs="Odyssean Cuisses", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}}) sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{}) sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{}) -- WS Base Set -- sets.WS = { ammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Ifrit Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} -- Torcleaver Sets -- sets.WS.Torcleaver = { ammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Titan Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} -- Resolution Sets -- sets.WS.Resolution = { ammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Ifrit Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{ ear1="Steelflash Earring", ring1="Mars's Ring"}) sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{}) -- Resolution(Attack) Set -- sets.WS.Resolution.ATT = set_combine(sets.WS.Resolution,{}) -- Catastrophe Sets -- sets.WS.Catastrophe = { ammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Ifrit Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.WS.Catastrophe.MidACC = set_combine(sets.WS.Catastrophe,{ ear1="Steelflash Earring", ring1="Mars's Ring"}) sets.WS.Catastrophe.HighACC = set_combine(sets.WS.Catastrophe.MidACC,{}) -- Catastrophe(Attack) Set -- sets.WS.Catastrophe.ATT = set_combine(sets.WS.Catastrophe,{}) -- Entropy Sets -- sets.WS.Entropy = { aammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Ifrit Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.WS.Entropy.MidACC = set_combine(sets.WS.Entropy,{ ear1="Steelflash Earring", ring1="Mars's Ring"}) sets.WS.Entropy.HighACC = set_combine(sets.WS.Entropy.MidACC,{}) -- Entropy(Attack) Set -- sets.WS.Entropy.ATT = set_combine(sets.WS.Entropy,{}) -- Quietus Sets -- sets.WS.Quietus = { ammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Ifrit Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.WS.Quietus.MidACC = set_combine(sets.WS.Quietus,{ ear1="Steelflash Earring", ring1="Mars's Ring"}) sets.WS.Quietus.HighACC = set_combine(sets.WS.Quietus.MidACC,{}) -- Insurgency Sets -- sets.WS.Insurgency = { ammo="Aqreqaq Bomblet", head="Valorous Mask", body="Acro Surcoat", hands="Odyssean Gauntlets", legs="Odyssean Cuisses", neck="Fotia Gorget", waist="Fotia Belt", ear1="Bale Earring", ear2="Brutal Earring", ring1="Ifrit Ring", ring2="Rajas Ring", back="Niht Mantle", feet={name="Valorous Greaves",augments={'AGI+8','Accuracy+29','"Dbl. Atk."+4'}}} sets.WS.Insurgency.MidACC = set_combine(sets.WS.Insurgency,{ ear1="Steelflash Earring", ring1="Mars's Ring"}) sets.WS.Insurgency.HighACC = set_combine(sets.WS.Insurgency.MidACC,{}) -- JA Sets -- sets.JA = {} sets.JA["Blood Weapon"] = {body="Fallen's Cuirass"} sets.JA["Diabolic Eye"] = {hands="Fall. Fin. Gaunt. +1"} sets.JA["Nether Void"] = {legs="Bale Flanchard +2"} sets.JA["Arcane Circle"] = {feet="Igno. Sollerets +1"} sets.JA["Last Resort"] = {feet="Fall. Sollerets +1"} -- Waltz Set -- sets.Waltz = {} sets.Precast = {} -- Fastcast Set -- sets.Precast.FastCast = { ammo="Sapience Orb", head="Carmine Mask", neck="Incanter's Torque", ear1="Loquac. Earring", ear2="Etiolation Earring", body="Nuevo Coselete", hands="Leyline Gloves", ring1="Weatherspoon Ring", ring2="Rahab Ring", back="Boxer's Mantle", waist="Goading Belt", legs="Enif Cosciales", feet={name="Odyssean Greaves",augments={'Attack +7','"Fast Cast"+3'}}} -- Precast Dark Magic -- sets.Precast['Dark Magic'] = set_combine(sets.Precast.FastCast,{head="Fall. Burgeonet +1"}) -- Midcast Base Set -- sets.Midcast = { ammo="Pemphredo Tathlum", head="Founder's Corona", neck="Incanter's Torque", ear1="Psystorm earring", ear2="Lifestorm Earring", body="Carmine Scale Mail", hands="Leyline Gloves", ring1="Vertigo Ring", ring2="Evanescence Ring", back="Chuparrosa Mantle", waist="Eschan Stone", legs="Bale Flanchard +2", feet="Bale Sollerets +2"} -- Magic Haste Set -- sets.Midcast.Haste = set_combine(sets.PDT,{}) -- Dark Magic Set -- sets.Midcast['Dark Magic'] = { ammo="Pemphredo Tathlum", head="Founder's Corona", neck="Incanter's Torque", ear1="Psystorm earring", ear2="Lifestorm Earring", body="Carmine Scale Mail", hands="Leyline Gloves", ring1="Vertigo Ring", ring2="Evanescence Ring", back="Merciful Cape", waist="Eschan Stone", legs="Eschite Cuisses", feet="Bale Sollerets +2"} -- Stun Sets -- sets.Midcast.Stun = set_combine(sets.Midcast['Dark Magic'],{}) sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{}) sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{}) -- Endark Set -- sets.Midcast.Endark = set_combine(sets.Midcast['Dark Magic'],{}) -- Enfeebling Magic Set -- sets.Midcast['Enfeebling Magic'] = {body="Igno. Cuirass +1"} -- Elemental Magic Set -- sets.Midcast['Elemental Magic'] = {} -- Drain Set -- sets.Midcast.Drain = set_combine(sets.Midcast['Dark Magic'],{ ammo="Pemphredo Tathlum", head="Pixie Hairpin +1", neck="Incanter's Torque", ear1="Psystorm earring", ear2="Lifestorm Earring", body="Carmine Scale Mail", hands="Fallen Finger Gauntlets +1", ring1="Archon Ring", ring2="Evanescence Ring", back="Niht Mantle", waist="Eschan Stone", legs="Heath. Flanchard +1", feet={name="Odyssean Greaves",augments={'Accuracy+2','Attack +1','"Drain" and "Aspir" potency +9'}}}) -- Aspir Set -- sets.Midcast.Aspir = set_combine(sets.Midcast['Dark Magic'],{ ammo="Pemphredo Tathlum", head="Pixie Hairpin +1", neck="Incanter's Torque", ear1="Psystorm earring", ear2="Lifestorm Earring", body="Carmine Scale Mail", hands="Fallen Finger Gauntlets +1", ring1="Archon Ring", ring2="Evanescence Ring", back="Niht Mantle", waist="Eschan Stone", legs="Heath. Flanchard +1", feet={name="Odyssean Greaves",augments={'Accuracy+2','Attack +1','"Drain" and "Aspir" potency +9'}}}) -- Absorb Set -- sets.Midcast.Absorb = set_combine(sets.Midcast['Dark Magic'],{ ammo="Pemphredo Tathlum", head="Founder's Corona", neck="Incanter's Torque", ear1="Psystorm earring", ear2="Lifestorm Earring", body="Carmine Scale Mail", hands="Leyline Gloves", ring1="Vertigo Ring", ring2="Evanescence Ring", back="Chuparrosa Mantle", waist="Eschan Stone", legs="Eschite Cuisses", feet="Heath. Sollerets+1"}) -- Dread Spikes Set -- sets.Midcast['Dread Spikes'] = { ammo="Egoist's Tathlum", head="Ganesha's Mask", neck="Bloodbead Gorget", ear1="Bloodgem Earring", ear2="Cassie Earring", body="Bale Cuirass +2", hands="Ares' Gauntlets +1", ring1="Bomb Queen Ring", ring2="Meridian Ring", back="Strendu Mantle", waist="Oneiros Belt", legs="Osmium Cuisses", feet="Llwyd's Clogs"} end function pretarget(spell,action) if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced -- cancel_spell() send_command('input /item "Echo Drops" <me>') elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On -- cancel_spell() send_command('Aggressor') elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On -- cancel_spell() send_command('ThirdEye') elseif spell.english == "Meditate" and player.tp > 2990 then -- Cancel Meditate If TP Is Above 290 -- cancel_spell() add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]') elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range -- cancel_spell() add_to_chat(123, spell.name..' Canceled: [Out of Range]') return elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then if spell.english == "Light Arts" and not buffactive['Addendum: White'] then cancel_spell() send_command('input /ja Addendum: White <me>') elseif spell.english == "Manifestation" then cancel_spell() send_command('input /ja Accession <me>') elseif spell.english == "Alacrity" then cancel_spell() send_command('input /ja Celerity <me>') elseif spell.english == "Parsimony" then cancel_spell() send_command('input /ja Penury <me>') end elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then cancel_spell() send_command('input /ja Addendum: Black <me>') elseif spell.english == "Accession" then cancel_spell() send_command('input /ja Manifestation <me>') elseif spell.english == "Celerity" then cancel_spell() send_command('input /ja Alacrity <me>') elseif spell.english == "Penury" then cancel_spell() send_command('input /ja Parsimony <me>') end end end function precast(spell,action) if spell.type == "WeaponSkill" then if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It -- cancel_spell() add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]') return else equipSet = sets.WS if equipSet[spell.english] then equipSet = equipSet[spell.english] end if Attack == 'ON' then equipSet = equipSet["ATT"] end if equipSet[AccArray[AccIndex]] then equipSet = equipSet[AccArray[AccIndex]] end if spell.english == "Catastrophe" and (world.day_element == 'Dark' or world.day_element == 'Earth') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Darksday or Earthsday -- equipSet = set_combine(equipSet,{head="Mekira-oto +1"}) end if spell.english == "Resolution" or spell.english == "Entropy" then if spell.english == "Resolution" and (world.day_element == 'Thunder' or world.day_element == 'Wind' or world.day_element == 'Earth') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Lightningday or Windsday or Earthsday -- equipSet = set_combine(equipSet,{}) elseif spell.english == "Entropy" and (world.day_element == 'Dark' or world.day_element == 'Earth' or world.day_element == 'Water') and Mekira == 'ON' then -- Equip Mekira-oto +1 On Darksday or Earthsday or Watersday -- equipSet = set_combine(equipSet,{}) end if player.tp > 299 or buffactive.Sekkanoki then -- Equip Bale Earring When You Have 300 TP or Sekkanoki -- equipSet = set_combine(equipSet,{ear1="Bale Earring"}) end end equip(equipSet) end elseif spell.type == "JobAbility" then if sets.JA[spell.english] then equip(sets.JA[spell.english]) end elseif spell.action_type == 'Magic' then if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range -- cancel_spell() add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]') return else if spell.english == "Stun" then if buffactive.Hasso or buffactive.Seigan then -- Cancel Hasso or Seigan When You Use Stun -- cast_delay(0.2) send_command('cancel Hasso,Seigan') end equip(sets.Precast.FastCast) elseif 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.FastCast) end elseif sets.Precast[spell.skill] then equip(sets.Precast[spell.skill]) else equip(sets.Precast.FastCast) end end elseif spell.type == "Waltz" then refine_waltz(spell,action) equip(sets.Waltz) elseif spell.english == 'Spectral Jig' and buffactive.Sneak then cast_delay(0.2) send_command('cancel Sneak') end if Twilight == 'Twilight' then equip(sets.Twilight) end end function midcast(spell,action) equipSet = {} if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then equipSet = sets.Midcast if string.find(spell.english,'Absorb') then if buffactive["Dark Seal"] then -- Equip Aug'd Abs. Burgeonet +2 When You Have Dark Seal Up -- equipSet = set_combine(equipSet,{head="Abs. Burgeonet +2"}) end elseif string.find(spell.english,'Drain') or string.find(spell.english,'Aspir') or string.find(spell.english,'Bio') then if world.day == "Darksday" or world.weather_element == "Dark" then -- Equip Anrin Obi On Darksday or Dark Weather -- equipSet = set_combine(equipSet,{waist="Hachirin-no-Obi"}) end elseif spell.english == "Stoneskin" then if buffactive.Stoneskin then send_command('@wait 1.7;cancel stoneskin') end equipSet = equipSet.Stoneskin elseif spell.english == "Sneak" then if spell.target.name == player.name and buffactive['Sneak'] then send_command('cancel sneak') end equipSet = equipSet.Haste elseif 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 equipSet = equipSet.Haste elseif spell.english == 'Monomi: Ichi' then if buffactive['Sneak'] then send_command('@wait 1.7;cancel sneak') end equipSet = equipSet.Haste else if equipSet[spell.english] then equipSet = equipSet[spell.english] end if equipSet[AccArray[AccIndex]] then equipSet = equipSet[AccArray[AccIndex]] end if equipSet[spell.skill] then equipSet = equipSet[spell.skill] end if equipSet[spell.type] then equipSet = equipSet[spell.type] end end elseif equipSet[spell.english] then equipSet = equipSet[spell.english] end equip(equipSet) end function aftercast(spell,action) if not spell.interrupted then if spell.type == "WeaponSkill" then send_command('wait 0.2;gs c TP') elseif spell.english == "Arcane Circle" then -- Arcane Circle Countdown -- send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]') elseif spell.english == "Sleep II" then -- Sleep II Countdown -- send_command('wait 60;input /echo Sleep Effect: [WEARING OFF IN 30 SEC.];wait 15;input /echo Sleep Effect: [WEARING OFF IN 15 SEC.];wait 10;input /echo Sleep Effect: [WEARING OFF IN 5 SEC.]') elseif spell.english == "Sleep" then -- Sleep Countdown -- send_command('wait 30;input /echo Sleep Effect: [WEARING OFF IN 30 SEC.];wait 15;input /echo Sleep Effect: [WEARING OFF IN 15 SEC.];wait 10;input /echo Sleep Effect: [WEARING OFF IN 5 SEC.]') end end status_change(player.status) end function status_change(new,old) if Warp == 'Warp' then equip(sets.WarpSet) end if Armor == 'PDT' then equip(sets.PDT) elseif Armor == 'MDT' then equip(sets.MDT) elseif new == 'Engaged' then equipSet = sets.TP if Armor == 'Hybrid' and equipSet["Hybrid"] then equipSet = equipSet["Hybrid"] end if equipSet[WeaponArray[WeaponIndex]] then equipSet = equipSet[WeaponArray[WeaponIndex]] end if equipSet[player.sub_job] then equipSet = equipSet[player.sub_job] end if equipSet[AccArray[AccIndex]] then equipSet = equipSet[AccArray[AccIndex]] end if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle -- equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor) else -- Use Rancor Toggle For Atheling Mantle -- equipSet = equipSet["AM3"] end end if buffactive.Aftermath and equipSet["AM"] then equipSet = equipSet["AM"] end if buffactive["Last Resort"] and buffactive.March == 2 and (buffactive.Haste or buffactive.Embrava) and equipSet["HighHaste"] then equipSet = equipSet["HighHaste"] end if buffactive.Ionis and equipSet["Ionis"] then equipSet = equipSet["Ionis"] end if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then equipSet = equipSet["STP"] end equip(equipSet) else equipSet = sets.Idle if equipSet[IdleArray[IdleIndex]] then equipSet = equipSet[IdleArray[IdleIndex]] end if equipSet[WeaponArray[WeaponIndex]] then equipSet = equipSet[WeaponArray[WeaponIndex]] end equip(equipSet) end if Twilight == 'Twilight' then equip(sets.Twilight) end end function buff_change(buff,gain) buff = string.lower(buff) if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown -- if gain then send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]') else send_command('timers delete "Aftermath: Lv.3"') add_to_chat(123,'AM3: [OFF]') end elseif buff == 'weakness' then -- Weakness Timer -- if gain then send_command('timers create "Weakness" 300 up') else send_command('timers delete "Weakness"') end end if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP -- equip({neck="Berserker's Torque"}) else if not midaction() then status_change(player.status) end end end -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) -- function self_command(command) if command == 'C1' then -- Accuracy Level Toggle -- AccIndex = (AccIndex % #AccArray) + 1 status_change(player.status) add_to_chat(158,'Accuracy Level: '..AccArray[AccIndex]) elseif command == 'C17' then -- Main Weapon Toggle -- WeaponIndex = (WeaponIndex % #WeaponArray) + 1 add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex]) status_change(player.status) elseif command == 'C5' then -- Auto Update Gear Toggle -- status_change(player.status) add_to_chat(158,'Auto Update Gear') elseif command == 'C2' then -- Hybrid Toggle -- if Armor == 'Hybrid' then Armor = 'None' add_to_chat(123,'Hybrid Set: [Unlocked]') else Armor = 'Hybrid' add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex]) end status_change(player.status) elseif command == 'C4' then --Warp Ring-- if Warp == 'Warp' then Warp = 'None' add_to_chat(123,'Warp Ring: [OFF]') else Warp = 'Warp' add_to_chat(158,'Warp Ring: [ON]') end status_change(player.status) elseif command == 'C7' then -- PDT Toggle -- if Armor == 'PDT' then Armor = 'None' add_to_chat(123,'PDT Set: [Unlocked]') else Armor = 'PDT' add_to_chat(158,'PDT Set: [Locked]') end status_change(player.status) elseif command == 'C15' then -- MDT Toggle -- if Armor == 'MDT' then Armor = 'None' add_to_chat(123,'MDT Set: [Unlocked]') else Armor = 'MDT' add_to_chat(158,'MDT Set: [Locked]') end status_change(player.status) elseif command == 'C16' then -- Rancor Toggle -- if Rancor == 'ON' then Rancor = 'OFF' add_to_chat(123,'Rancor: [OFF]') else Rancor = 'ON' add_to_chat(158,'Rancor: [ON]') end status_change(player.status) elseif command == 'C9' then -- Attack Toggle -- if Attack == 'ON' then Attack = 'OFF' add_to_chat(123,'Attack: [OFF]') else Attack = 'ON' add_to_chat(158,'Attack: [ON]') end status_change(player.status) elseif command == 'C10' then -- Mekira Toggle -- if Mekira == 'ON' then Mekira = 'OFF' add_to_chat(123,'Mekira: [OFF]') else Mekira = 'ON' add_to_chat(158,'Mekira: [ON]') end status_change(player.status) elseif command == 'C3' then -- Twilight Toggle -- if Twilight == 'Twilight' then Twilight = 'None' add_to_chat(123,'Twilight Set: [Unlocked]') else Twilight = 'Twilight' add_to_chat(158,'Twilight Set: [locked]') end status_change(player.status) elseif command == 'C8' then -- Distance Toggle -- if player.target.distance then target_distance = math.floor(player.target.distance*10)/10 add_to_chat(158,'Distance: '..target_distance) else add_to_chat(123,'No Target Selected') end elseif command == 'C6' then -- Idle Toggle -- IdleIndex = (IdleIndex % #IdleArray) + 1 status_change(player.status) add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex]) elseif command == 'TP' then add_to_chat(158,'TP Return: ['..tostring(player.tp)..']') elseif command:match('^SC%d$') then send_command('//' .. sc_map[command]) end end function refine_waltz(spell,action) if spell.type ~= 'Waltz' then return end if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" then return end local newWaltz = spell.english local waltzID local missingHP if spell.target.type == "SELF" then missingHP = player.max_hp - player.hp elseif spell.target.isallymember then local target = find_player_in_alliance(spell.target.name) local est_max_hp = target.hp / (target.hpp/100) missingHP = math.floor(est_max_hp - target.hp) end if missingHP ~= nil then if player.sub_job == 'DNC' then if missingHP < 40 and spell.target.name == player.name then add_to_chat(123,'Full HP!') cancel_spell() return elseif missingHP < 150 then newWaltz = 'Curing Waltz' waltzID = 190 elseif missingHP < 300 then newWaltz = 'Curing Waltz II' waltzID = 191 else newWaltz = 'Curing Waltz III' waltzID = 192 end else return end end local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50} local tpCost = waltzTPCost[newWaltz] local downgrade if player.tp < tpCost then if player.tp < 20 then add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.') cancel_spell() return elseif player.tp < 35 then newWaltz = 'Curing Waltz' elseif player.tp < 50 then newWaltz = 'Curing Waltz II' end downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.' end if newWaltz ~= spell.english then send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw)) if downgrade then add_to_chat(8, downgrade) end cancel_spell() return end if missingHP > 0 then add_to_chat(8,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.') end end function find_player_in_alliance(name) for i,v in ipairs(alliance) do for k,p in ipairs(v) do if p.name == name then return p end end end end function sub_job_change(newSubjob, oldSubjob) select_default_macro_book() end function set_macro_page(set,book) if not tonumber(set) then add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').') return end if set < 1 or set > 10 then add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.') return end if book then if not tonumber(book) then add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').') return end if book < 1 or book > 20 then add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.') return end send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set)) else send_command('@input /macro set '..tostring(set)) end end function select_default_macro_book() -- Default macro set/book if player.sub_job == 'WAR' then set_macro_page(1, 1) elseif player.sub_job == 'SAM' then set_macro_page(1, 1) elseif player.sub_job == 'NIN' then set_macro_page(1, 1) elseif player.sub_job == 'DNC' then set_macro_page(1, 1) elseif player.sub_job == 'SCH' then set_macro_page(1, 1) else set_macro_page(1, 1) end end