Advertisement
Bokura

Bokura_DRK

Jan 28th, 2014
3,045
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 48.23 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Some of Motenten's Functions ** --
  3.  
  4. function get_sets()
  5.     AccIndex = 1
  6.     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. --
  7.     WeaponIndex = 1
  8.     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. --
  9.     IdleIndex = 1
  10.     IdleArray = {"Movement","Regen","Refresh"} -- Default Idle Set Is Movement --
  11.     Armor = 'None'
  12.     Twilight = 'None'
  13.     Attack = 'OFF' -- Set Default WS Attack Set ON or OFF Here --
  14.     Rancor = 'ON' -- Set Default Rancor ON or OFF Here --
  15.     Samurai_Roll = 'ON' -- Set Default SAM Roll ON or OFF Here --
  16.     target_distance = 5 -- Set Default Distance Here --
  17.     select_default_macro_book() -- Change Default Macro Book At The End --
  18.  
  19.     -- Gavialis Helm --
  20.     elements = {}
  21.     elements.equip = {head="Gavialis Helm"}
  22.     elements.Resolution = S{"Lightning","Wind","Earth"}
  23.     elements.Entropy = S{"Dark","Water","Earth"}
  24.     elements.Catastrophe = S{"Dark","Earth"}
  25.     elements.Insurgency = S{"Light","Dark","Fire"}
  26.  
  27.     sc_map = {SC1="Entropy", SC2="Insurgency", SC3="LastResort"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  28.  
  29.     sets.Idle = {}
  30.     -- Regen Set --
  31.     sets.Idle.Regen = {}
  32.     sets.Idle.Regen.Liberator = set_combine(sets.Idle.Regen,{
  33.             main="Liberator",
  34.             sub="Bloodrain Strap"})
  35.     sets.Idle.Regen.Liberator.SAM = set_combine(sets.Idle.Regen,{
  36.             main="Liberator",
  37.             sub="Bloodrain Strap"})
  38.     sets.Idle.Regen.Ragnarok = set_combine(sets.Idle.Regen,{
  39.             main="Ragnarok",
  40.             sub="Duplus Grip"})
  41.     sets.Idle.Regen.Ragnarok.SAM = set_combine(sets.Idle.Regen,{
  42.             main="Ragnarok",
  43.             sub="Bloodrain Strap"})
  44.     sets.Idle.Regen.Apocalypse = set_combine(sets.Idle.Regen,{
  45.             main="Apocalypse",
  46.             sub="Duplus Grip"})
  47.     sets.Idle.Regen.Apocalypse.SAM = set_combine(sets.Idle.Regen,{
  48.             main="Apocalypse",
  49.             sub="Bloodrain Strap"})
  50.  
  51.     -- Movement Sets --
  52.     sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  53.             legs="Blood Cuisses"})
  54.     sets.Idle.Movement.Liberator = set_combine(sets.Idle.Movement,{
  55.             main="Liberator",
  56.             sub="Bloodrain Strap"})
  57.     sets.Idle.Movement.Liberator.SAM = set_combine(sets.Idle.Movement,{
  58.             main="Liberator",
  59.             sub="Bloodrain Strap"})
  60.     sets.Idle.Movement.Ragnarok = set_combine(sets.Idle.Movement,{
  61.             main="Ragnarok",
  62.             sub="Duplus Grip"})
  63.     sets.Idle.Movement.Ragnarok.SAM = set_combine(sets.Idle.Movement,{
  64.             main="Ragnarok",
  65.             sub="Bloodrain Strap"})
  66.     sets.Idle.Movement.Apocalypse = set_combine(sets.Idle.Movement,{
  67.             main="Apocalypse",
  68.             sub="Duplus Grip"})
  69.     sets.Idle.Movement.Apocalypse.SAM = set_combine(sets.Idle.Movement,{
  70.             main="Apocalypse",
  71.             sub="Bloodrain Strap"})
  72.  
  73.     -- Refresh Sets --
  74.     sets.Idle.Refresh = set_combine(sets.Idle.Regen,{
  75.             head="Wivre Hairpin",
  76.             body="Twilight Mail",
  77.             hands="Ogier's Gauntlets",
  78.             feet="Ogier's Leggings"})
  79.     sets.Idle.Refresh.Liberator = set_combine(sets.Idle.Refresh,{
  80.             main="Liberator",
  81.             sub="Bloodrain Strap"})
  82.     sets.Idle.Refresh.Liberator.SAM = set_combine(sets.Idle.Refresh,{
  83.             main="Liberator",
  84.             sub="Bloodrain Strap"})
  85.     sets.Idle.Refresh.Ragnarok = set_combine(sets.Idle.Refresh,{
  86.             main="Ragnarok",
  87.             sub="Duplus Grip"})
  88.     sets.Idle.Refresh.Ragnarok.SAM = set_combine(sets.Idle.Refresh,{
  89.             main="Ragnarok",
  90.             sub="Bloodrain Strap"})
  91.     sets.Idle.Refresh.Apocalypse = set_combine(sets.Idle.Refresh,{
  92.             main="Apocalypse",
  93.             sub="Duplus Grip"})
  94.     sets.Idle.Refresh.Apocalypse.SAM = set_combine(sets.Idle.Refresh,{
  95.             main="Apocalypse",
  96.             sub="Bloodrain Strap"})
  97.  
  98.     sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  99.  
  100.     -- TP Base Set --
  101.     sets.TP = {}
  102.  
  103.     -- Liberator(AM3 Down) TP Sets --
  104.     sets.TP.Liberator = {
  105.             main="Liberator",
  106.             sub="Bloodrain Strap"}
  107.     sets.TP.Liberator.MidACC = set_combine(sets.TP.Liberator,{})
  108.     sets.TP.Liberator.HighACC = set_combine(sets.TP.Liberator.MidACC,{})
  109.  
  110.     -- Liberator(AM3 Up) TP Sets --
  111.     sets.TP.Liberator.AM3 = set_combine(sets.TP.Liberator,{})
  112.     sets.TP.Liberator.MidACC.AM3 = set_combine(sets.TP.Liberator.AM3,{})
  113.     sets.TP.Liberator.HighACC.AM3 = set_combine(sets.TP.Liberator.MidACC.AM3,{})
  114.  
  115.     -- Liberator(AM3 Down: High Haste) TP Sets --
  116.     sets.TP.Liberator.HighHaste = set_combine(sets.TP.Liberator,{})
  117.     sets.TP.Liberator.MidACC.HighHaste = set_combine(sets.TP.Liberator.HighHaste,{})
  118.     sets.TP.Liberator.HighACC.HighHaste = set_combine(sets.TP.Liberator.MidACC.HighHaste,{})
  119.  
  120.     -- Liberator(AM3 Up: High Haste) TP Sets --
  121.     sets.TP.Liberator.AM3.HighHaste = set_combine(sets.TP.Liberator.AM3,{})
  122.     sets.TP.Liberator.MidACC.AM3.HighHaste = set_combine(sets.TP.Liberator.AM3.HighHaste,{})
  123.     sets.TP.Liberator.HighACC.AM3.HighHaste = set_combine(sets.TP.Liberator.MidACC.AM3.HighHaste,{})
  124.  
  125.     -- Liberator(AM3 Down: Ionis) TP Sets --
  126.     sets.TP.Liberator.Ionis = set_combine(sets.TP.Liberator,{})
  127.     sets.TP.Liberator.MidACC.Ionis = set_combine(sets.TP.Liberator.Ionis,{})
  128.     sets.TP.Liberator.HighACC.Ionis = set_combine(sets.TP.Liberator.MidACC.Ionis,{})
  129.  
  130.     -- Liberator(AM3 Up: Ionis) TP Sets --
  131.     sets.TP.Liberator.AM3.Ionis = set_combine(sets.TP.Liberator.AM3,{})
  132.     sets.TP.Liberator.MidACC.AM3.Ionis = set_combine(sets.TP.Liberator.AM3.Ionis,{})
  133.     sets.TP.Liberator.HighACC.AM3.Ionis = set_combine(sets.TP.Liberator.MidACC.AM3.Ionis,{})
  134.  
  135.     -- Liberator(AM3 Down: High Haste + Ionis) TP Sets --
  136.     sets.TP.Liberator.HighHaste.Ionis = set_combine(sets.TP.Liberator.HighHaste,{})
  137.     sets.TP.Liberator.MidACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.HighHaste.Ionis,{})
  138.     sets.TP.Liberator.HighACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.MidACC.HighHaste.Ionis,{})
  139.  
  140.     -- Liberator(AM3 Up: High Haste + Ionis) TP Sets --
  141.     sets.TP.Liberator.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.AM3.HighHaste,{})
  142.     sets.TP.Liberator.MidACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.AM3.HighHaste.Ionis,{})
  143.     sets.TP.Liberator.HighACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.MidACC.AM3.HighHaste.Ionis,{})
  144.  
  145.     -- Liberator(AM3 Down: SAM Roll) TP Sets --
  146.     sets.TP.Liberator.STP = set_combine(sets.TP.Liberator,{})
  147.     sets.TP.Liberator.MidACC.STP = set_combine(sets.TP.Liberator.MidACC,{})
  148.     sets.TP.Liberator.HighACC.STP = set_combine(sets.TP.Liberator.HighACC,{})
  149.  
  150.     -- Liberator(AM3 Up: SAM Roll) TP Sets --
  151.     sets.TP.Liberator.AM3.STP = set_combine(sets.TP.Liberator.AM3,{})
  152.     sets.TP.Liberator.MidACC.AM3.STP = set_combine(sets.TP.Liberator.MidACC.AM3,{})
  153.     sets.TP.Liberator.HighACC.AM3.STP = set_combine(sets.TP.Liberator.HighACC.AM3,{})
  154.  
  155.     -- Liberator(AM3 Down: High Haste + SAM Roll) TP Sets --
  156.     sets.TP.Liberator.HighHaste.STP = set_combine(sets.TP.Liberator.HighHaste,{})
  157.     sets.TP.Liberator.MidACC.HighHaste.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{})
  158.     sets.TP.Liberator.HighACC.HighHaste.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{})
  159.  
  160.     -- Liberator(AM3 Up: High Haste + SAM Roll) TP Sets --
  161.     sets.TP.Liberator.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.HighHaste,{})
  162.     sets.TP.Liberator.MidACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{})
  163.     sets.TP.Liberator.HighACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{})
  164.  
  165.     -- Liberator(AM3 Down: Ionis + SAM Roll) TP Sets --
  166.     sets.TP.Liberator.Ionis.STP = set_combine(sets.TP.Liberator.Ionis,{})
  167.     sets.TP.Liberator.MidACC.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.Ionis,{})
  168.     sets.TP.Liberator.HighACC.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.Ionis,{})
  169.  
  170.     -- Liberator(AM3 Up: Ionis + SAM Roll) TP Sets --
  171.     sets.TP.Liberator.AM3.Ionis.STP = set_combine(sets.TP.Liberator.AM3,{})
  172.     sets.TP.Liberator.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.AM3,{})
  173.     sets.TP.Liberator.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.AM3,{})
  174.  
  175.     -- Liberator(AM3 Down: High Haste + Ionis + SAM Roll) TP Sets --
  176.     sets.TP.Liberator.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighHaste,{})
  177.     sets.TP.Liberator.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{})
  178.     sets.TP.Liberator.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{})
  179.  
  180.     -- Liberator(AM3 Up: High Haste + Ionis + SAM Roll) TP Sets --
  181.     sets.TP.Liberator.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighHaste,{})
  182.     sets.TP.Liberator.MidACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.MidACC.HighHaste,{})
  183.     sets.TP.Liberator.HighACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.HighACC.HighHaste,{})
  184.  
  185.     -- Ragnarok TP Sets --
  186.     sets.TP.Ragnarok = {
  187.             main="Ragnarok",
  188.             sub="Duplus Grip"}
  189.     sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{})
  190.     sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{})
  191.  
  192.     -- Ragnarok(High Haste) TP Sets --
  193.     sets.TP.Ragnarok.HighHaste = set_combine(sets.TP.Ragnarok,{})
  194.     sets.TP.Ragnarok.MidACC.HighHaste = set_combine(sets.TP.Ragnarok.HighHaste,{})
  195.     sets.TP.Ragnarok.HighACC.HighHaste = set_combine(sets.TP.Ragnarok.MidACC.HighHaste,{})
  196.  
  197.     -- Ragnarok(Ionis) TP Sets --
  198.     sets.TP.Ragnarok.Ionis = set_combine(sets.TP.Ragnarok,{})
  199.     sets.TP.Ragnarok.MidACC.Ionis = set_combine(sets.TP.Ragnarok.Ionis,{})
  200.     sets.TP.Ragnarok.HighACC.Ionis = set_combine(sets.TP.Ragnarok.MidACC.Ionis,{})
  201.  
  202.     -- Ragnarok(High Haste + Ionis) TP Sets --
  203.     sets.TP.Ragnarok.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.HighHaste,{})
  204.     sets.TP.Ragnarok.MidACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.HighHaste.Ionis,{})
  205.     sets.TP.Ragnarok.HighACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.MidACC.HighHaste.Ionis,{})
  206.  
  207.     -- Ragnarok(SAM Roll) TP Sets --
  208.     sets.TP.Ragnarok.STP = set_combine(sets.TP.Ragnarok,{})
  209.     sets.TP.Ragnarok.MidACC.STP = set_combine(sets.TP.Ragnarok.MidACC,{})
  210.     sets.TP.Ragnarok.HighACC.STP = set_combine(sets.TP.Ragnarok.HighACC,{})
  211.  
  212.     -- Ragnarok(High Haste + SAM Roll) TP Sets --
  213.     sets.TP.Ragnarok.HighHaste.STP = set_combine(sets.TP.Ragnarok.HighHaste,{})
  214.     sets.TP.Ragnarok.MidACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.MidACC.HighHaste,{})
  215.     sets.TP.Ragnarok.HighACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.HighACC.HighHaste,{})
  216.  
  217.     -- Ragnarok(Ionis + SAM Roll) TP Sets --
  218.     sets.TP.Ragnarok.Ionis.STP = set_combine(sets.TP.Ragnarok.Ionis,{})
  219.     sets.TP.Ragnarok.MidACC.Ionis.STP = set_combine(sets.TP.Ragnarok.MidACC.Ionis,{})
  220.     sets.TP.Ragnarok.HighACC.Ionis.STP = set_combine(sets.TP.Ragnarok.HighACC.Ionis,{})
  221.  
  222.     -- Ragnarok(High Haste + Ionis + SAM Roll) TP Sets --
  223.     sets.TP.Ragnarok.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.HighHaste,{})
  224.     sets.TP.Ragnarok.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.MidACC.HighHaste,{})
  225.     sets.TP.Ragnarok.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.HighACC.HighHaste,{})
  226.  
  227.     -- Apocalypse(AM Down) TP Sets --
  228.     sets.TP.Apocalypse = {
  229.             main="Apocalypse",
  230.             sub="Duplus Grip"}
  231.     sets.TP.Apocalypse.MidACC = set_combine(sets.TP.Apocalypse,{})
  232.     sets.TP.Apocalypse.HighACC = set_combine(sets.TP.Apocalypse.MidACC,{})
  233.  
  234.     -- Apocalypse(AM Up) TP Sets --
  235.     sets.TP.Apocalypse.AM = set_combine(sets.TP.Apocalypse,{})
  236.     sets.TP.Apocalypse.MidACC.AM = set_combine(sets.TP.Apocalypse.AM,{})
  237.     sets.TP.Apocalypse.HighACC.AM = set_combine(sets.TP.Apocalypse.MidACC.AM,{})
  238.  
  239.     -- Apocalypse(AM Down: High Haste) TP Sets --
  240.     sets.TP.Apocalypse.HighHaste = set_combine(sets.TP.Apocalypse,{})
  241.     sets.TP.Apocalypse.MidACC.HighHaste = set_combine(sets.TP.Apocalypse.HighHaste,{})
  242.     sets.TP.Apocalypse.HighACC.HighHaste = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
  243.  
  244.     -- Apocalypse(AM Up: High Haste) TP Sets --
  245.     sets.TP.Apocalypse.AM.HighHaste = set_combine(sets.TP.Apocalypse.AM,{})
  246.     sets.TP.Apocalypse.MidACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.AM.HighHaste,{})
  247.     sets.TP.Apocalypse.HighACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.MidACC.AM.HighHaste,{})
  248.  
  249.     -- Apocalypse(AM Down: Ionis) TP Sets --
  250.     sets.TP.Apocalypse.Ionis = set_combine(sets.TP.Apocalypse,{})
  251.     sets.TP.Apocalypse.MidACC.Ionis = set_combine(sets.TP.Apocalypse.Ionis,{})
  252.     sets.TP.Apocalypse.HighACC.Ionis = set_combine(sets.TP.Apocalypse.MidACC.Ionis,{})
  253.  
  254.     -- Apocalypse(AM Up: Ionis) TP Sets --
  255.     sets.TP.Apocalypse.AM.Ionis = set_combine(sets.TP.Apocalypse.AM,{})
  256.     sets.TP.Apocalypse.MidACC.AM.Ionis = set_combine(sets.TP.Apocalypse.AM.Ionis,{})
  257.     sets.TP.Apocalypse.HighACC.AM.Ionis= set_combine(sets.TP.Apocalypse.MidACC.AM.Ionis,{})
  258.  
  259.     -- Apocalypse(AM Down: High Haste + Ionis) TP Sets --
  260.     sets.TP.Apocalypse.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.HighHaste,{})
  261.     sets.TP.Apocalypse.MidACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.HighHaste.Ionis,{})
  262.     sets.TP.Apocalypse.HighACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.MidACC.HighHaste.Ionis,{})
  263.  
  264.     -- Apocalypse(AM Up: High Haste + Ionis) TP Sets --
  265.     sets.TP.Apocalypse.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.AM.HighHaste,{})
  266.     sets.TP.Apocalypse.MidACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.AM.HighHaste.Ionis,{})
  267.     sets.TP.Apocalypse.HighACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.MidACC.AM.HighHaste.Ionis,{})
  268.  
  269.     -- Apocalypse(AM Down: SAM Roll) TP Sets --
  270.     sets.TP.Apocalypse.STP = set_combine(sets.TP.Apocalypse,{})
  271.     sets.TP.Apocalypse.MidACC.STP = set_combine(sets.TP.Apocalypse.MidACC,{})
  272.     sets.TP.Apocalypse.HighACC.STP = set_combine(sets.TP.Apocalypse.HighACC,{})
  273.  
  274.     -- Apocalypse(AM Up: SAM Roll) TP Sets --
  275.     sets.TP.Apocalypse.AM.STP = set_combine(sets.TP.Apocalypse.AM,{})
  276.     sets.TP.Apocalypse.MidACC.AM.STP = set_combine(sets.TP.Apocalypse.MidACC.AM,{})
  277.     sets.TP.Apocalypse.HighACC.AM.STP = set_combine(sets.TP.Apocalypse.HighACC.AM,{})
  278.  
  279.     -- Apocalypse(AM Down: High Haste + SAM Roll) TP Sets --
  280.     sets.TP.Apocalypse.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
  281.     sets.TP.Apocalypse.MidACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
  282.     sets.TP.Apocalypse.HighACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})
  283.  
  284.     -- Apocalypse(AM Up: High Haste + SAM Roll) TP Sets --
  285.     sets.TP.Apocalypse.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
  286.     sets.TP.Apocalypse.MidACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
  287.     sets.TP.Apocalypse.HighACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})
  288.  
  289.     -- Apocalypse(AM Down: Ionis + SAM Roll) TP Sets --
  290.     sets.TP.Apocalypse.Ionis.STP = set_combine(sets.TP.Apocalypse.Ionis,{})
  291.     sets.TP.Apocalypse.MidACC.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.Ionis,{})
  292.     sets.TP.Apocalypse.HighACC.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.Ionis,{})
  293.  
  294.     -- Apocalypse(AM Up: Ionis + SAM Roll) TP Sets --
  295.     sets.TP.Apocalypse.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.AM,{})
  296.     sets.TP.Apocalypse.MidACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.AM,{})
  297.     sets.TP.Apocalypse.HighACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.AM,{})
  298.  
  299.     -- Apocalypse(AM Down: High Haste + Ionis + SAM Roll) TP Sets --
  300.     sets.TP.Apocalypse.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
  301.     sets.TP.Apocalypse.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
  302.     sets.TP.Apocalypse.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})
  303.  
  304.     -- Apocalypse(AM Up: High Haste + Ionis + SAM Roll) TP Sets --
  305.     sets.TP.Apocalypse.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighHaste,{})
  306.     sets.TP.Apocalypse.MidACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.MidACC.HighHaste,{})
  307.     sets.TP.Apocalypse.HighACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.HighACC.HighHaste,{})
  308.  
  309.     -- Liberator(AM3 Down) /SAM TP Sets --
  310.     sets.TP.Liberator.SAM = {
  311.             main="Liberator",
  312.             sub="Bloodrain Strap"}
  313.     sets.TP.Liberator.SAM.MidACC = set_combine(sets.TP.Liberator.SAM,{})
  314.     sets.TP.Liberator.SAM.HighACC = set_combine(sets.TP.Liberator.SAM.MidACC,{})
  315.  
  316.     -- Liberator(AM3 Up) /SAM TP Sets --
  317.     sets.TP.Liberator.SAM.AM3 = set_combine(sets.TP.Liberator.SAM,{})
  318.     sets.TP.Liberator.SAM.MidACC.AM3 = set_combine(sets.TP.Liberator.SAM.AM3,{})
  319.     sets.TP.Liberator.SAM.HighACC.AM3 = set_combine(sets.TP.Liberator.SAM.MidACC.AM3,{})
  320.  
  321.     -- Liberator(AM3 Down: High Haste) /SAM TP Sets --
  322.     sets.TP.Liberator.SAM.HighHaste = set_combine(sets.TP.Liberator.SAM,{})
  323.     sets.TP.Liberator.SAM.MidACC.HighHaste = set_combine(sets.TP.Liberator.SAM.HighHaste,{})
  324.     sets.TP.Liberator.SAM.HighACC.HighHaste = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{})
  325.  
  326.     -- Liberator(AM3 Up: High Haste) /SAM TP Sets --
  327.     sets.TP.Liberator.SAM.AM3.HighHaste = set_combine(sets.TP.Liberator.SAM.AM3,{})
  328.     sets.TP.Liberator.SAM.MidACC.AM3.HighHaste = set_combine(sets.TP.Liberator.SAM.AM3.HighHaste,{})
  329.     sets.TP.Liberator.SAM.HighACC.AM3.HighHaste = set_combine(sets.TP.Liberator.SAM.MidACC.AM3.HighHaste,{})
  330.  
  331.     -- Liberator(AM3 Down: Ionis) /SAM TP Sets --
  332.     sets.TP.Liberator.SAM.Ionis = set_combine(sets.TP.Liberator.SAM,{})
  333.     sets.TP.Liberator.SAM.MidACC.Ionis = set_combine(sets.TP.Liberator.SAM.Ionis,{})
  334.     sets.TP.Liberator.SAM.HighACC.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.Ionis,{})
  335.  
  336.     -- Liberator(AM3 Up: Ionis) /SAM TP Sets --
  337.     sets.TP.Liberator.SAM.AM3.Ionis = set_combine(sets.TP.Liberator.SAM.AM3,{})
  338.     sets.TP.Liberator.SAM.MidACC.AM3.Ionis = set_combine(sets.TP.Liberator.SAM.AM3.Ionis,{})
  339.     sets.TP.Liberator.SAM.HighACC.AM3.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.AM3.Ionis,{})
  340.  
  341.     -- Liberator(AM3 Down: High Haste + Ionis) /SAM TP Sets --
  342.     sets.TP.Liberator.SAM.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.HighHaste,{})
  343.     sets.TP.Liberator.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.HighHaste.Ionis,{})
  344.     sets.TP.Liberator.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste.Ionis,{})
  345.  
  346.     -- Liberator(AM3 Up: High Haste + Ionis) /SAM TP Sets --
  347.     sets.TP.Liberator.SAM.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.AM3.HighHaste,{})
  348.     sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.AM3.HighHaste.Ionis,{})
  349.     sets.TP.Liberator.SAM.HighACC.AM3.HighHaste.Ionis = set_combine(sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.Ionis,{})
  350.  
  351.     -- Liberator(AM3 Down: SAM Roll) /SAM TP Sets --
  352.     sets.TP.Liberator.SAM.STP = set_combine(sets.TP.Liberator.SAM,{})
  353.     sets.TP.Liberator.SAM.MidACC.STP = set_combine(sets.TP.Liberator.SAM.MidACC,{})
  354.     sets.TP.Liberator.SAM.HighACC.STP = set_combine(sets.TP.Liberator.SAM.HighACC,{})
  355.  
  356.     -- Liberator(AM3 Up: SAM Roll) /SAM TP Sets --
  357.     sets.TP.Liberator.SAM.AM3.STP = set_combine(sets.TP.Liberator.SAM.AM3,{})
  358.     sets.TP.Liberator.SAM.MidACC.AM3.STP = set_combine(sets.TP.Liberator.SAM.MidACC.AM3,{})
  359.     sets.TP.Liberator.SAM.HighACC.AM3.STP = set_combine(sets.TP.Liberator.SAM.HighACC.AM3,{})
  360.  
  361.     -- Liberator(AM3 Down: High Haste + SAM Roll) /SAM TP Sets --
  362.     sets.TP.Liberator.SAM.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{})
  363.     sets.TP.Liberator.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{})
  364.     sets.TP.Liberator.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{})
  365.  
  366.     -- Liberator(AM3 Up: High Haste + SAM Roll) /SAM TP Sets --
  367.     sets.TP.Liberator.SAM.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{})
  368.     sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{})
  369.     sets.TP.Liberator.SAM.HighACC.AM3.HighHaste.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{})
  370.  
  371.     -- Liberator(AM3 Down: Ionis + SAM Roll) /SAM TP Sets --
  372.     sets.TP.Liberator.SAM.Ionis.STP = set_combine(sets.TP.Liberator.SAM.Ionis,{})
  373.     sets.TP.Liberator.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.Ionis,{})
  374.     sets.TP.Liberator.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.Ionis,{})
  375.  
  376.     -- Liberator(AM3 Up: Ionis + SAM Roll) /SAM TP Sets --
  377.     sets.TP.Liberator.SAM.AM3.Ionis.STP = set_combine(sets.TP.Liberator.SAM.AM3,{})
  378.     sets.TP.Liberator.SAM.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.AM3,{})
  379.     sets.TP.Liberator.SAM.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.AM3,{})
  380.  
  381.     -- Liberator(AM3 Down: High Haste + Ionis + SAM Roll) /SAM TP Sets --
  382.     sets.TP.Liberator.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{})
  383.     sets.TP.Liberator.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{})
  384.     sets.TP.Liberator.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{})
  385.  
  386.     -- Liberator(AM3 Up: High Haste + Ionis + SAM Roll) /SAM TP Sets --
  387.     sets.TP.Liberator.SAM.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighHaste,{})
  388.     sets.TP.Liberator.SAM.MidACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.MidACC.HighHaste,{})
  389.     sets.TP.Liberator.SAM.HighACC.AM3.HighHaste.Ionis.STP = set_combine(sets.TP.Liberator.SAM.HighACC.HighHaste,{})
  390.  
  391.     -- Ragnarok /SAM TP Sets --
  392.     sets.TP.Ragnarok.SAM = {
  393.             main="Ragnarok",
  394.             sub="Duplus Grip"}
  395.     sets.TP.Ragnarok.SAM.MidACC = set_combine(sets.TP.Ragnarok.SAM,{})
  396.     sets.TP.Ragnarok.SAM.HighACC = set_combine(sets.TP.Ragnarok.SAM.MidACC,{})
  397.  
  398.     -- Ragnarok(High Haste) /SAM TP Sets --
  399.     sets.TP.Ragnarok.SAM.HighHaste = set_combine(sets.TP.Ragnarok.SAM,{})
  400.     sets.TP.Ragnarok.SAM.MidACC.HighHaste = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{})
  401.     sets.TP.Ragnarok.SAM.HighACC.HighHaste = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste,{})
  402.  
  403.     -- Ragnarok(Ionis) /SAM TP Sets --
  404.     sets.TP.Ragnarok.SAM.Ionis = set_combine(sets.TP.Ragnarok.SAM,{})
  405.     sets.TP.Ragnarok.SAM.MidACC.Ionis = set_combine(sets.TP.Ragnarok.SAM.Ionis,{})
  406.     sets.TP.Ragnarok.SAM.HighACC.Ionis = set_combine(sets.TP.Ragnarok.SAM.MidACC.Ionis,{})
  407.  
  408.     -- Ragnarok(High Haste + Ionis) /SAM TP Sets --
  409.     sets.TP.Ragnarok.SAM.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{})
  410.     sets.TP.Ragnarok.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.SAM.HighHaste.Ionis,{})
  411.     sets.TP.Ragnarok.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste.Ionis,{})
  412.  
  413.     -- Ragnarok(SAM Roll) /SAM TP Sets --
  414.     sets.TP.Ragnarok.SAM.STP = set_combine(sets.TP.Ragnarok.SAM,{})
  415.     sets.TP.Ragnarok.SAM.MidACC.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC,{})
  416.     sets.TP.Ragnarok.SAM.HighACC.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC,{})
  417.  
  418.     -- Ragnarok(High Haste + SAM Roll) /SAM TP Sets --
  419.     sets.TP.Ragnarok.SAM.HighHaste.STP = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{})
  420.     sets.TP.Ragnarok.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste,{})
  421.     sets.TP.Ragnarok.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC.HighHaste,{})
  422.  
  423.     -- Ragnarok(Ionis + SAM Roll) /SAM TP Sets --
  424.     sets.TP.Ragnarok.SAM.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.Ionis,{})
  425.     sets.TP.Ragnarok.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC.Ionis,{})
  426.     sets.TP.Ragnarok.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC.Ionis,{})
  427.  
  428.     -- Ragnarok(High Haste + Ionis + SAM Roll) /SAM TP Sets --
  429.     sets.TP.Ragnarok.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.HighHaste,{})
  430.     sets.TP.Ragnarok.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.MidACC.HighHaste,{})
  431.     sets.TP.Ragnarok.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Ragnarok.SAM.HighACC.HighHaste,{})
  432.  
  433.     -- Apocalypse(AM Down) /SAM TP Sets --
  434.     sets.TP.Apocalypse.SAM = {
  435.             main="Apocalypse",
  436.             sub="Duplus Grip"}
  437.     sets.TP.Apocalypse.SAM.MidACC = set_combine(sets.TP.Apocalypse.SAM,{})
  438.     sets.TP.Apocalypse.SAM.HighACC = set_combine(sets.TP.Apocalypse.SAM.MidACC,{})
  439.  
  440.     -- Apocalypse(AM Up) /SAM TP Sets --
  441.     sets.TP.Apocalypse.SAM.AM = set_combine(sets.TP.Apocalypse.SAM,{})
  442.     sets.TP.Apocalypse.SAM.MidACC.AM = set_combine(sets.TP.Apocalypse.SAM.AM,{})
  443.     sets.TP.Apocalypse.SAM.HighACC.AM = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM,{})
  444.  
  445.     -- Apocalypse(AM Down: High Haste) /SAM TP Sets --
  446.     sets.TP.Apocalypse.SAM.HighHaste = set_combine(sets.TP.Apocalypse.SAM,{})
  447.     sets.TP.Apocalypse.SAM.MidACC.HighHaste = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
  448.     sets.TP.Apocalypse.SAM.HighACC.HighHaste = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
  449.  
  450.     -- Apocalypse(AM Up: High Haste) /SAM TP Sets --
  451.     sets.TP.Apocalypse.SAM.AM.HighHaste = set_combine(sets.TP.Apocalypse.SAM.AM,{})
  452.     sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.SAM.AM.HighHaste,{})
  453.     sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste,{})
  454.  
  455.     -- Apocalypse(AM Down: Ionis) /SAM TP Sets --
  456.     sets.TP.Apocalypse.SAM.Ionis = set_combine(sets.TP.Apocalypse.SAM,{})
  457.     sets.TP.Apocalypse.SAM.MidACC.Ionis = set_combine(sets.TP.Apocalypse.SAM.Ionis,{})
  458.     sets.TP.Apocalypse.SAM.HighACC.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.Ionis,{})
  459.  
  460.     -- Apocalypse(AM Up: Ionis) /SAM TP Sets --
  461.     sets.TP.Apocalypse.SAM.AM.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM,{})
  462.     sets.TP.Apocalypse.SAM.MidACC.AM.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM.Ionis,{})
  463.     sets.TP.Apocalypse.SAM.HighACC.AM.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM.Ionis,{})
  464.  
  465.     -- Apocalypse(AM Down: High Haste + Ionis) /SAM TP Sets --
  466.     sets.TP.Apocalypse.SAM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
  467.     sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.HighHaste.Ionis,{})
  468.     sets.TP.Apocalypse.SAM.HighACC.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis,{})
  469.  
  470.     -- Apocalypse(AM Up: High Haste + Ionis) /SAM TP Sets --
  471.     sets.TP.Apocalypse.SAM.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM.HighHaste,{})
  472.     sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.AM.HighHaste.Ionis,{})
  473.     sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste.Ionis = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.Ionis,{})
  474.  
  475.     -- Apocalypse(AM Down: SAM Roll) /SAM TP Sets --
  476.     sets.TP.Apocalypse.SAM.STP = set_combine(sets.TP.Apocalypse.SAM,{})
  477.     sets.TP.Apocalypse.SAM.MidACC.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC,{})
  478.     sets.TP.Apocalypse.SAM.HighACC.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC,{})
  479.  
  480.     -- Apocalypse(AM Up: SAM Roll) /SAM TP Sets --
  481.     sets.TP.Apocalypse.SAM.AM.STP = set_combine(sets.TP.Apocalypse.SAM.AM,{})
  482.     sets.TP.Apocalypse.SAM.MidACC.AM.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM,{})
  483.     sets.TP.Apocalypse.SAM.HighACC.AM.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.AM,{})
  484.  
  485.     -- Apocalypse(AM Down: High Haste + SAM Roll) /SAM TP Sets --
  486.     sets.TP.Apocalypse.SAM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
  487.     sets.TP.Apocalypse.SAM.MidACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
  488.     sets.TP.Apocalypse.SAM.HighACC.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})
  489.  
  490.     -- Apocalypse(AM Up: High Haste + SAM Roll) /SAM TP Sets --
  491.     sets.TP.Apocalypse.SAM.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
  492.     sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
  493.     sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})
  494.  
  495.     -- Apocalypse(AM Down: Ionis + SAM Roll) /SAM TP Sets --
  496.     sets.TP.Apocalypse.SAM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.Ionis,{})
  497.     sets.TP.Apocalypse.SAM.MidACC.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.Ionis,{})
  498.     sets.TP.Apocalypse.SAM.HighACC.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.Ionis,{})
  499.  
  500.     -- Apocalypse(AM Up: Ionis + SAM Roll) /SAM TP Sets --
  501.     sets.TP.Apocalypse.SAM.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.AM,{})
  502.     sets.TP.Apocalypse.SAM.MidACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.AM,{})
  503.     sets.TP.Apocalypse.SAM.HighACC.AM.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.AM,{})
  504.  
  505.     -- Apocalypse(AM Down: High Haste + Ionis + SAM Roll) /SAM TP Sets --
  506.     sets.TP.Apocalypse.SAM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
  507.     sets.TP.Apocalypse.SAM.MidACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
  508.     sets.TP.Apocalypse.SAM.HighACC.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})
  509.  
  510.     -- Apocalypse(AM Up: High Haste + Ionis + SAM Roll) /SAM TP Sets --
  511.     sets.TP.Apocalypse.SAM.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighHaste,{})
  512.     sets.TP.Apocalypse.SAM.MidACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.MidACC.HighHaste,{})
  513.     sets.TP.Apocalypse.SAM.HighACC.AM.HighHaste.Ionis.STP = set_combine(sets.TP.Apocalypse.SAM.HighACC.HighHaste,{})
  514.  
  515.     -- AM3 Rancor ON Mantle --
  516.     sets.TP.Rancor = {back="Rancorous Mantle"}
  517.  
  518.     -- PDT/MDT Sets --
  519.     sets.PDT = {}
  520.  
  521.     sets.MDT = set_combine(sets.PDT,{})
  522.  
  523.     -- Hybrid Set --
  524.     sets.TP.Hybrid = set_combine(sets.PDT,{})
  525.     sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  526.     sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  527.  
  528.     -- WS Base Set --
  529.     sets.WS = {}
  530.  
  531.     -- Resolution Sets --
  532.     sets.WS.Resolution = {}
  533.     sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{})
  534.     sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{})
  535.  
  536.     -- Resolution(Attack) Set --
  537.     sets.WS.Resolution.ATT = set_combine(sets.WS.Resolution,{})
  538.  
  539.     -- Catastrophe Sets --
  540.     sets.WS.Catastrophe = {}
  541.     sets.WS.Catastrophe.MidACC = set_combine(sets.WS.Catastrophe,{})
  542.     sets.WS.Catastrophe.HighACC = set_combine(sets.WS.Catastrophe.MidACC,{})
  543.  
  544.     -- Catastrophe(Attack) Set --
  545.     sets.WS.Catastrophe.ATT = set_combine(sets.WS.Catastrophe,{})
  546.  
  547.     -- Entropy Sets --
  548.     sets.WS.Entropy = {}
  549.     sets.WS.Entropy.MidACC = set_combine(sets.WS.Entropy,{})
  550.     sets.WS.Entropy.HighACC = set_combine(sets.WS.Entropy.MidACC,{})
  551.  
  552.     -- Entropy(Attack) Set --
  553.     sets.WS.Entropy.ATT = set_combine(sets.WS.Entropy,{})
  554.  
  555.     -- Insurgency Sets --
  556.     sets.WS.Insurgency = {}
  557.     sets.WS.Insurgency.MidACC = set_combine(sets.WS.Insurgency,{})
  558.     sets.WS.Insurgency.HighACC = set_combine(sets.WS.Insurgency.MidACC,{})
  559.  
  560.     -- JA Sets --
  561.     sets.JA = {}
  562.     sets.JA["Blood Weapon"] = {body="Fallen's Cuirass"}
  563.     sets.JA["Diabolic Eye"] = {hands="Fall. Fin. Gaunt. +1"}
  564.     sets.JA["Nether Void"] = {legs="Heath. Flanchard +1"}
  565.     sets.JA["Arcane Circle"] = {feet="Igno. Sollerets +1"}
  566.     sets.JA["Last Resort"] = {feet="Fall. Sollerets +1"}
  567.  
  568.     -- Waltz Set --
  569.     sets.Waltz = {}
  570.  
  571.     sets.Precast = {}
  572.     -- Fastcast Set --
  573.     sets.Precast.FastCast = {}
  574.  
  575.     -- Precast Dark Magic --
  576.     sets.Precast['Dark Magic'] = set_combine(sets.Precast.FastCast,{head="Fall. Burgeonet +1"})
  577.  
  578.     -- Midcast Base Set --
  579.     sets.Midcast = {}
  580.  
  581.     -- Magic Haste Set --
  582.     sets.Midcast.Haste = set_combine(sets.PDT,{})
  583.  
  584.     -- Dark Magic Set --
  585.     sets.Midcast['Dark Magic'] = {}
  586.  
  587.     -- Stun Sets --
  588.     sets.Midcast.Stun = set_combine(sets.Midcast['Dark Magic'],{})
  589.     sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{})
  590.     sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{})
  591.  
  592.     -- Endark Set --
  593.     sets.Midcast.Endark = set_combine(sets.Midcast['Dark Magic'],{})
  594.  
  595.     -- Enfeebling Magic Set --
  596.     sets.Midcast['Enfeebling Magic'] = {body="Igno. Cuirass +1"}
  597.  
  598.     -- Elemental Magic Set --
  599.     sets.Midcast['Elemental Magic'] = {}
  600.  
  601.     -- Dread Spikes Set --
  602.     sets.Midcast['Dread Spikes'] = {}
  603. end
  604.  
  605. function pretarget(spell,action)
  606.     if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  607.         cancel_spell()
  608.         send_command('input /item "Echo Drops" <me>')
  609.     elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  610.         cancel_spell()
  611.         send_command('Aggressor')
  612.     elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  613.         cancel_spell()
  614.         send_command('ThirdEye')
  615.     elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  616.         cancel_spell()
  617.         add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  618.     elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  619.         cancel_spell()
  620.         add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  621.         return
  622.     elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  623.         if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  624.             cancel_spell()
  625.             send_command('input /ja Addendum: White <me>')
  626.         elseif spell.english == "Manifestation" then
  627.             cancel_spell()
  628.             send_command('input /ja Accession <me>')
  629.         elseif spell.english == "Alacrity" then
  630.             cancel_spell()
  631.             send_command('input /ja Celerity <me>')
  632.         elseif spell.english == "Parsimony" then
  633.             cancel_spell()
  634.             send_command('input /ja Penury <me>')
  635.         end
  636.     elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  637.         if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  638.             cancel_spell()
  639.             send_command('input /ja Addendum: Black <me>')
  640.         elseif spell.english == "Accession" then
  641.             cancel_spell()
  642.             send_command('input /ja Manifestation <me>')
  643.         elseif spell.english == "Celerity" then
  644.             cancel_spell()
  645.             send_command('input /ja Alacrity <me>')
  646.         elseif spell.english == "Penury" then
  647.             cancel_spell()
  648.             send_command('input /ja Parsimony <me>')
  649.         end
  650.     end
  651. end
  652.  
  653. function precast(spell,action)
  654.     if spell.type == "WeaponSkill" then
  655.         if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  656.             cancel_spell()
  657.             add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  658.             return
  659.         else
  660.             equipSet = sets.WS
  661.             if equipSet[spell.english] then
  662.                 equipSet = equipSet[spell.english]
  663.             end
  664.             if Attack == 'ON' then
  665.                 equipSet = equipSet["ATT"]
  666.             end
  667.             if equipSet[AccArray[AccIndex]] then
  668.                 equipSet = equipSet[AccArray[AccIndex]]
  669.             end
  670.             if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
  671.                 equipSet = set_combine(equipSet,elements.equip)
  672.             end
  673.             if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  674.                 equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  675.             end
  676.             if (spell.english == "Entropy" or spell.english == "Resolution" or spell.english == "Insurgency") and (player.tp > 2990 or buffactive.Sekkanoki) then
  677.                 if world.time <= (7*60) or world.time >= (17*60) then -- 3000 TP or Sekkanoki: Equip Lugra Earring +1 From Dusk To Dawn --
  678.                     equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
  679.                 else
  680.                     equipSet = set_combine(equipSet,{ear1="Bale Earring"}) -- 3000 TP or Sekkanoki: Equip Kokou's Earring --
  681.                 end
  682.             end
  683.             equip(equipSet)
  684.         end
  685.     elseif spell.type == "JobAbility" then
  686.         if sets.JA[spell.english] then
  687.             equip(sets.JA[spell.english])
  688.         end
  689.     elseif spell.action_type == 'Magic' then
  690.         if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  691.             cancel_spell()
  692.             add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  693.             return
  694.         else
  695.             if spell.english == "Stun" then
  696.                 if buffactive.Hasso or buffactive.Seigan then -- Cancel Hasso or Seigan When You Use Stun --
  697.                     cast_delay(0.2)
  698.                     send_command('cancel Hasso,Seigan')
  699.                 end
  700.                 equip(sets.Precast.FastCast)
  701.             elseif spell.english == 'Utsusemi: Ni' then
  702.                 if buffactive['Copy Image (3)'] then
  703.                     cancel_spell()
  704.                     add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  705.                     return
  706.                 else
  707.                     equip(sets.Precast.FastCast)
  708.                 end
  709.             elseif sets.Precast[spell.skill] then
  710.                 equip(sets.Precast[spell.skill])
  711.             else
  712.                 equip(sets.Precast.FastCast)
  713.             end
  714.         end
  715.     elseif spell.type == "Waltz" then
  716.         refine_waltz(spell,action)
  717.         equip(sets.Waltz)
  718.     elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  719.         cast_delay(0.2)
  720.         send_command('cancel Sneak')
  721.     end
  722.     if Twilight == 'Twilight' then
  723.         equip(sets.Twilight)
  724.     end
  725. end
  726.  
  727. function midcast(spell,action)
  728.     equipSet = {}
  729.     if spell.action_type == 'Magic' then
  730.         equipSet = sets.Midcast
  731.         if spell.english:startswith('Absorb') then
  732.             if buffactive["Dark Seal"] then -- Equip Aug'd Fall. Burgeonet +1 When You Have Dark Seal Up --
  733.                 equipSet = set_combine(equipSet,{head="Fall. Burgeonet +1"})
  734.             end
  735.         elseif spell.english:startswith('Drain') or spell.english:startswith('Aspir') or spell.english:startswith('Bio') then
  736.             if world.day == "Darksday" or world.weather_element == "Dark" then -- Equip Hachirin-no-Obi On Darksday or Dark Weather --
  737.                 equipSet = set_combine(equipSet,{waist="Hachirin-no-Obi"})
  738.             end
  739.         elseif spell.english == "Stoneskin" then
  740.             if buffactive.Stoneskin then
  741.                 send_command('@wait 1.7;cancel stoneskin')
  742.             end
  743.             equipSet = equipSet.Stoneskin
  744.         elseif spell.english == "Sneak" then
  745.             if spell.target.name == player.name and buffactive['Sneak'] then
  746.                 send_command('cancel sneak')
  747.             end
  748.             equipSet = equipSet.Haste
  749.         elseif spell.english:startswith('Utsusemi') then
  750.             if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then
  751.                 send_command('@wait 1.7;cancel Copy Image*')
  752.             end
  753.             equipSet = equipSet.Haste
  754.         elseif spell.english == 'Monomi: Ichi' then
  755.             if buffactive['Sneak'] then
  756.                 send_command('@wait 1.7;cancel sneak')
  757.             end
  758.             equipSet = equipSet.Haste
  759.         else
  760.             if equipSet[spell.english] then
  761.                 equipSet = equipSet[spell.english]
  762.             end
  763.             if equipSet[AccArray[AccIndex]] then
  764.                 equipSet = equipSet[AccArray[AccIndex]]
  765.             end
  766.             if equipSet[spell.skill] then
  767.                 equipSet = equipSet[spell.skill]
  768.             end
  769.             if equipSet[spell.type] then
  770.                 equipSet = equipSet[spell.type]
  771.             end
  772.         end
  773.     elseif equipSet[spell.english] then
  774.         equipSet = equipSet[spell.english]
  775.     end
  776.     equip(equipSet)
  777. end
  778.  
  779. function aftercast(spell,action)
  780.     if not spell.interrupted then
  781.         if spell.type == "WeaponSkill" then
  782.             send_command('wait 0.2;gs c TP')
  783.         elseif spell.english == "Arcane Circle" then -- Arcane Circle Countdown --
  784.             send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  785.         elseif spell.english == "Sleep II" then -- Sleep II Countdown --
  786.             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.]')
  787.         elseif spell.english == "Sleep" then -- Sleep Countdown --
  788.             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.]')
  789.         end
  790.     end
  791.     status_change(player.status)
  792. end
  793.  
  794. function status_change(new,old)
  795.     check_equip_lock()
  796.     if Armor == 'PDT' then
  797.         equip(sets.PDT)
  798.     elseif Armor == 'MDT' then
  799.         equip(sets.MDT)
  800.     elseif new == 'Engaged' then
  801.         equipSet = sets.TP
  802.         if Armor == 'Hybrid' and equipSet["Hybrid"] then
  803.             equipSet = equipSet["Hybrid"]
  804.         end
  805.         if equipSet[WeaponArray[WeaponIndex]] then
  806.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  807.         end
  808.         if equipSet[player.sub_job] then
  809.             equipSet = equipSet[player.sub_job]
  810.         end
  811.         if equipSet[AccArray[AccIndex]] then
  812.             equipSet = equipSet[AccArray[AccIndex]]
  813.         end
  814.         if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  815.             if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
  816.                 equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
  817.             else -- Use Rancor Toggle For Atheling Mantle --
  818.                 equipSet = equipSet["AM3"]
  819.             end
  820.         end
  821.         if buffactive.Aftermath and equipSet["AM"] then
  822.             equipSet = equipSet["AM"]
  823.         end
  824.         if buffactive["Last Resort"] and ((buffactive.Haste and buffactive.March == 2) or (buffactive.Embrava and (buffactive.March == 2 or (buffactive.March and buffactive.Haste))) or (buffactive[580] and (buffactive.March or buffactive.Haste or buffactive.Embrava))) and equipSet["HighHaste"] then
  825.             equipSet = equipSet["HighHaste"]
  826.         end
  827.         if buffactive.Ionis and equipSet["Ionis"] then
  828.             equipSet = equipSet["Ionis"]
  829.         end
  830.         if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  831.             equipSet = equipSet["STP"]
  832.         end
  833.         equip(equipSet)
  834.     else
  835.         equipSet = sets.Idle
  836.         if equipSet[IdleArray[IdleIndex]] then
  837.             equipSet = equipSet[IdleArray[IdleIndex]]
  838.         end
  839.         if equipSet[WeaponArray[WeaponIndex]] then
  840.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  841.         end
  842.         if equipSet[player.sub_job] then
  843.             equipSet = equipSet[player.sub_job]
  844.         end
  845.         if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  846.             equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  847.         end
  848.         if world.area:endswith('Adoulin') then
  849.             equipSet = set_combine(equipSet,{body="Councilor's Garb"})
  850.         end
  851.         equip(equipSet)
  852.     end
  853.     if Twilight == 'Twilight' then
  854.         equip(sets.Twilight)
  855.     end
  856. end
  857.  
  858. function buff_change(buff,gain)
  859.     buff = string.lower(buff)
  860.     if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  861.         if gain then
  862.             send_command('timers create "Aftermath: Lv.3" 180 down;wait 150;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 15;input /echo Aftermath: Lv.3 [WEARING OFF IN 15 SEC.];wait 5;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  863.         else
  864.             send_command('timers delete "Aftermath: Lv.3"')
  865.             add_to_chat(123,'AM3: [OFF]')
  866.         end
  867.     elseif buff == 'weakness' then -- Weakness Timer --
  868.         if gain then
  869.             send_command('timers create "Weakness" 300 up')
  870.         else
  871.             send_command('timers delete "Weakness"')
  872.         end
  873.     end
  874.     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 --
  875.         equip({neck="Berserker's Torque"})
  876.     else
  877.         if not midaction() then
  878.             status_change(player.status)
  879.         end
  880.     end
  881. end
  882.  
  883. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  884. function self_command(command)
  885.     if command == 'C1' then -- Accuracy Level Toggle --
  886.         AccIndex = (AccIndex % #AccArray) + 1
  887.         status_change(player.status)
  888.         add_to_chat(158,'Accuracy Level: '..AccArray[AccIndex])
  889.     elseif command == 'C17' then -- Main Weapon Toggle --
  890.         WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  891.         add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
  892.         status_change(player.status)
  893.     elseif command == 'C5' then -- Auto Update Gear Toggle --
  894.         status_change(player.status)
  895.         add_to_chat(158,'Auto Update Gear')
  896.     elseif command == 'C2' then -- Hybrid Toggle --
  897.         if Armor == 'Hybrid' then
  898.             Armor = 'None'
  899.             add_to_chat(123,'Hybrid Set: [Unlocked]')
  900.         else
  901.             Armor = 'Hybrid'
  902.             add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  903.         end
  904.         status_change(player.status)
  905.     elseif command == 'C7' then -- PDT Toggle --
  906.         if Armor == 'PDT' then
  907.             Armor = 'None'
  908.             add_to_chat(123,'PDT Set: [Unlocked]')
  909.         else
  910.             Armor = 'PDT'
  911.             add_to_chat(158,'PDT Set: [Locked]')
  912.         end
  913.         status_change(player.status)
  914.     elseif command == 'C15' then -- MDT Toggle --
  915.         if Armor == 'MDT' then
  916.             Armor = 'None'
  917.             add_to_chat(123,'MDT Set: [Unlocked]')
  918.         else
  919.             Armor = 'MDT'
  920.             add_to_chat(158,'MDT Set: [Locked]')
  921.         end
  922.         status_change(player.status)
  923.     elseif command == 'C16' then -- Rancor Toggle --
  924.         if Rancor == 'ON' then
  925.             Rancor = 'OFF'
  926.             add_to_chat(123,'Rancor: [OFF]')
  927.         else
  928.             Rancor = 'ON'
  929.             add_to_chat(158,'Rancor: [ON]')
  930.         end
  931.         status_change(player.status)
  932.     elseif command == 'C9' then -- Attack Toggle --
  933.         if Attack == 'ON' then
  934.             Attack = 'OFF'
  935.             add_to_chat(123,'Attack: [OFF]')
  936.         else
  937.             Attack = 'ON'
  938.             add_to_chat(158,'Attack: [ON]')
  939.         end
  940.         status_change(player.status)
  941.     elseif command == 'C3' then -- Twilight Toggle --
  942.         if Twilight == 'Twilight' then
  943.             Twilight = 'None'
  944.             add_to_chat(123,'Twilight Set: [Unlocked]')
  945.         else
  946.             Twilight = 'Twilight'
  947.             add_to_chat(158,'Twilight Set: [locked]')
  948.         end
  949.         status_change(player.status)
  950.     elseif command == 'C8' then -- Distance Toggle --
  951.         if player.target.distance then
  952.             target_distance = math.floor(player.target.distance*10)/10
  953.             add_to_chat(158,'Distance: '..target_distance)
  954.         else
  955.             add_to_chat(123,'No Target Selected')
  956.         end
  957.     elseif command == 'C6' then -- Idle Toggle --
  958.         IdleIndex = (IdleIndex % #IdleArray) + 1
  959.         status_change(player.status)
  960.         add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
  961.     elseif command == 'TP' then
  962.         add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  963.     elseif command:match('^SC%d$') then
  964.         send_command('//' .. sc_map[command])
  965.     end
  966. end
  967.  
  968. function check_equip_lock() -- Lock Equipment Here --
  969.     if player.equipment.left_ring == "Warp Ring" or player.equipment.left_ring == "Capacity Ring" or player.equipment.right_ring == "Warp Ring" or player.equipment.right_ring == "Capacity Ring" then
  970.         disable('ring1','ring2')
  971.     elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
  972.         disable('back')
  973.     else
  974.         enable('ring1','ring2','back')
  975.     end
  976. end
  977.  
  978. function refine_waltz(spell,action)
  979.     if spell.type ~= 'Waltz' then
  980.         return
  981.     end
  982.  
  983.     if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" then
  984.         return
  985.     end
  986.  
  987.     local newWaltz = spell.english
  988.     local waltzID
  989.  
  990.     local missingHP
  991.  
  992.     if spell.target.type == "SELF" then
  993.         missingHP = player.max_hp - player.hp
  994.     elseif spell.target.isallymember then
  995.         local target = find_player_in_alliance(spell.target.name)
  996.         local est_max_hp = target.hp / (target.hpp/100)
  997.         missingHP = math.floor(est_max_hp - target.hp)
  998.     end
  999.  
  1000.     if missingHP ~= nil then
  1001.         if player.sub_job == 'DNC' then
  1002.             if missingHP < 40 and spell.target.name == player.name then
  1003.                 add_to_chat(123,'Full HP!')
  1004.                 cancel_spell()
  1005.                 return
  1006.             elseif missingHP < 150 then
  1007.                 newWaltz = 'Curing Waltz'
  1008.                 waltzID = 190
  1009.             elseif missingHP < 300 then
  1010.                 newWaltz = 'Curing Waltz II'
  1011.                 waltzID = 191
  1012.             else
  1013.                 newWaltz = 'Curing Waltz III'
  1014.                 waltzID = 192
  1015.             end
  1016.         else
  1017.             return
  1018.         end
  1019.     end
  1020.  
  1021.     local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
  1022.     local tpCost = waltzTPCost[newWaltz]
  1023.  
  1024.     local downgrade
  1025.  
  1026.     if player.tp < tpCost then
  1027.  
  1028.         if player.tp < 20 then
  1029.             add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  1030.             cancel_spell()
  1031.             return
  1032.         elseif player.tp < 35 then
  1033.             newWaltz = 'Curing Waltz'
  1034.         elseif player.tp < 50 then
  1035.             newWaltz = 'Curing Waltz II'
  1036.         end
  1037.  
  1038.         downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  1039.     end
  1040.  
  1041.     if newWaltz ~= spell.english then
  1042.         send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  1043.         if downgrade then
  1044.             add_to_chat(8, downgrade)
  1045.         end
  1046.         cancel_spell()
  1047.         return
  1048.     end
  1049.  
  1050.     if missingHP > 0 then
  1051.         add_to_chat(8,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  1052.     end
  1053. end
  1054.  
  1055. function find_player_in_alliance(name)
  1056.     for i,v in ipairs(alliance) do
  1057.         for k,p in ipairs(v) do
  1058.             if p.name == name then
  1059.                 return p
  1060.             end
  1061.         end
  1062.     end
  1063. end
  1064.  
  1065. function sub_job_change(newSubjob, oldSubjob)
  1066.     select_default_macro_book()
  1067. end
  1068.  
  1069. function set_macro_page(set,book)
  1070.     if not tonumber(set) then
  1071.         add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  1072.         return
  1073.     end
  1074.     if set < 1 or set > 10 then
  1075.         add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  1076.         return
  1077.     end
  1078.  
  1079.     if book then
  1080.         if not tonumber(book) then
  1081.             add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  1082.             return
  1083.         end
  1084.         if book < 1 or book > 20 then
  1085.             add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  1086.             return
  1087.         end
  1088.         send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  1089.     else
  1090.         send_command('@input /macro set '..tostring(set))
  1091.     end
  1092. end
  1093.  
  1094. function select_default_macro_book()
  1095.     -- Default macro set/book
  1096.     if player.sub_job == 'WAR' then
  1097.         set_macro_page(2, 6)
  1098.     elseif player.sub_job == 'SAM' then
  1099.         set_macro_page(1, 6)
  1100.     elseif player.sub_job == 'NIN' then
  1101.         set_macro_page(10, 6)
  1102.     elseif player.sub_job == 'DNC' then
  1103.         set_macro_page(9, 6)
  1104.     elseif player.sub_job == 'SCH' then
  1105.         set_macro_page(8, 6)
  1106.     else
  1107.         set_macro_page(2, 6)
  1108.     end
  1109. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement