Bokura

Bokura_RNG

Jan 19th, 2014
4,916
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 46.41 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 Shooting/TP/WS. 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 = {"Annihilator","Yoichinoyumi"} -- Default Ranged Weapon Is Annihilator. 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"} -- Default Idle Set Is Movement --
  11.     Armor = 'None'
  12.     warning = false
  13.     AutoGunWS = "Coronach" -- Set Auto Gun WS Here --
  14.     AutoBowWS = "Namas Arrow" -- Set Auto Bow WS Here --
  15.     AutoMode = 'OFF' -- Set Default Auto RA/WS ON or OFF Here --
  16.     Attack = 'OFF' -- Set Default WS Attack Set ON or OFF Here --
  17.     Enmity = 'OFF' -- Set Default Enmity Set ON or OFF Here --
  18.     ammo_warning_limit = 10 -- Set Ammo Limit Check Here --
  19.     Samurai_Roll = 'ON' -- Set Default SAM Roll ON or OFF Here --
  20.     target_distance = 5 -- Set Default Distance Here --
  21.     select_default_macro_book() -- Change Default Macro Book At The End --
  22.  
  23.     sc_map = {SC1="LastStand", SC2="Coronach", SC3="Ranged"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  24.  
  25.     sets.Idle = {}
  26.     -- Idle/Town Sets --
  27.     sets.Idle.Regen = {}
  28.     sets.Idle.Regen.Annihilator = set_combine(sets.Idle.Regen,{
  29.             main="Oneiros Knife",
  30.             sub="Moogle Guard +1",
  31.             range="Annihilator",
  32.             ammo="Achiyal. Bullet"})
  33.     sets.Idle.Regen.Yoichinoyumi = set_combine(sets.Idle.Regen,{
  34.             main="Oneiros Knife",
  35.             sub="Moogle Guard +1",
  36.             range="Yoichinoyumi",
  37.             ammo="Achiyal. Arrow"})
  38.     sets.Idle.Regen.Annihilator.NIN = set_combine(sets.Idle.Regen,{
  39.             main="Hurlbat",
  40.             sub="Courser's Pugio",
  41.             range="Annihilator",
  42.             ammo="Achiyal. Bullet"})
  43.     sets.Idle.Regen.Yoichinoyumi.NIN = set_combine(sets.Idle.Regen,{
  44.             main="Hurlbat",
  45.             sub="Courser's Pugio",
  46.             range="Yoichinoyumi",
  47.             ammo="Achiyal. Arrow"})
  48.  
  49.     sets.Idle.Movement = set_combine(sets.Idle.Regen,{})
  50.     sets.Idle.Movement.Annihilator = set_combine(sets.Idle.Movement,{
  51.             range="Annihilator",
  52.             ammo="Achiyal. Bullet"})
  53.     sets.Idle.Movement.Yoichinoyumi = set_combine(sets.Idle.Movement,{
  54.             range="Yoichinoyumi",
  55.             ammo="Achiyal. Arrow"})
  56.     sets.Idle.Movement.Annihilator.NIN = set_combine(sets.Idle.Movement,{
  57.             main="Hurlbat",
  58.             sub="Courser's Pugio",
  59.             range="Annihilator",
  60.             ammo="Achiyal. Bullet"})
  61.     sets.Idle.Movement.Yoichinoyumi.NIN = set_combine(sets.Idle.Movement,{
  62.             main="Hurlbat",
  63.             sub="Courser's Pugio",
  64.             range="Yoichinoyumi",
  65.             ammo="Achiyal. Arrow"})
  66.  
  67.     -- Preshot --
  68.     sets.Preshot = {
  69.             head="Amini Gapette +1",
  70.             body="Amini Caban +1",
  71.             hands="Iuitl Wristbands +1",
  72.             back="Lutian Cape",
  73.             waist="Impulse Belt",
  74.             legs="Nahtirah Trousers",
  75.             feet="Taeon Boots"}
  76.  
  77.     -- Barrage Base Set. This Set Takes Priority Over Other Pieces. --
  78.     Barrage = {
  79.             hands="Orion Bracers +1",
  80.             legs="Desultor Tassets"}
  81.  
  82.     -- Shooting Base Set --
  83.     sets.Midshot = {}
  84.  
  85.     -- Annihilator(Decoy Down) Sets --
  86.     sets.Midshot.Annihilator = {
  87.             range="Annihilator",
  88.             ammo="Achiyal. Bullet"}
  89.     sets.Midshot.Annihilator.MidACC = set_combine(sets.Midshot.Annihilator,{})
  90.     sets.Midshot.Annihilator.HighACC = set_combine(sets.Midshot.Annihilator.MidACC,{})
  91.  
  92.     -- Annihilator(Decoy Up) Sets --
  93.     sets.Midshot.Annihilator.Decoy = set_combine(sets.Midshot.Annihilator,{})
  94.     sets.Midshot.Annihilator.MidACC.Decoy = set_combine(sets.Midshot.Annihilator.MidACC,{})
  95.     sets.Midshot.Annihilator.HighACC.Decoy = set_combine(sets.Midshot.Annihilator.HighACC,{})
  96.  
  97.     -- Annihilator(Enmity) Sets --
  98.     sets.Midshot.Annihilator.Enmity = set_combine(sets.Midshot.Annihilator,{})
  99.     sets.Midshot.Annihilator.MidACC.Enmity = set_combine(sets.Midshot.Annihilator.MidACC,{})
  100.     sets.Midshot.Annihilator.HighACC.Enmity = set_combine(sets.Midshot.Annihilator.HighACC,{})
  101.  
  102.     -- Annihilator(AM) Sets --
  103.     sets.Midshot.Annihilator.AM = set_combine(sets.Midshot.Annihilator,{})
  104.     sets.Midshot.Annihilator.MidACC.AM = set_combine(sets.Midshot.Annihilator.MidACC,{})
  105.     sets.Midshot.Annihilator.HighACC.AM = set_combine(sets.Midshot.Annihilator.HighACC,{})
  106.  
  107.     -- Annihilator(AM: Ionis) Sets --
  108.     sets.Midshot.Annihilator.AM.Ionis = set_combine(sets.Midshot.Annihilator,{})
  109.     sets.Midshot.Annihilator.MidACC.AM.Ionis = set_combine(sets.Midshot.Annihilator.MidACC,{})
  110.     sets.Midshot.Annihilator.HighACC.AM.Ionis = set_combine(sets.Midshot.Annihilator.HighACC,{})
  111.  
  112.     -- Annihilator(Decoy Down: Ionis) Sets --
  113.     sets.Midshot.Annihilator.Ionis = set_combine(sets.Midshot.Annihilator,{})
  114.     sets.Midshot.Annihilator.MidACC.Ionis = set_combine(sets.Midshot.Annihilator.MidACC,{})
  115.     sets.Midshot.Annihilator.HighACC.Ionis = set_combine(sets.Midshot.Annihilator.HighACC,{})
  116.  
  117.     -- Annihilator(Decoy Up: Ionis) Sets --
  118.     sets.Midshot.Annihilator.Decoy.Ionis = set_combine(sets.Midshot.Annihilator,{})
  119.     sets.Midshot.Annihilator.MidACC.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.MidACC,{})
  120.     sets.Midshot.Annihilator.HighACC.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.HighACC,{})
  121.  
  122.     -- Annihilator(Decoy Down: SAM Roll) Sets --
  123.     sets.Midshot.Annihilator.STP = set_combine(sets.Midshot.Annihilator,{})
  124.     sets.Midshot.Annihilator.MidACC.STP = set_combine(sets.Midshot.Annihilator.MidACC,{})
  125.     sets.Midshot.Annihilator.HighACC.STP = set_combine(sets.Midshot.Annihilator.HighACC,{})
  126.  
  127.     -- Annihilator(Decoy Up: SAM Roll) Sets --
  128.     sets.Midshot.Annihilator.Decoy.STP = set_combine(sets.Midshot.Annihilator,{})
  129.     sets.Midshot.Annihilator.MidACC.Decoy.STP = set_combine(sets.Midshot.Annihilator.MidACC,{})
  130.     sets.Midshot.Annihilator.HighACC.Decoy.STP = set_combine(sets.Midshot.Annihilator.HighACC,{})
  131.  
  132.     -- Annihilator(Decoy Down: Ionis + SAM Roll) Sets --
  133.     sets.Midshot.Annihilator.Ionis.STP = set_combine(sets.Midshot.Annihilator,{})
  134.     sets.Midshot.Annihilator.MidACC.Ionis.STP = set_combine(sets.Midshot.Annihilator.MidACC,{})
  135.     sets.Midshot.Annihilator.HighACC.Ionis.STP = set_combine(sets.Midshot.Annihilator.HighACC,{})
  136.  
  137.     -- Annihilator(Decoy Up: Ionis + SAM Roll) Sets --
  138.     sets.Midshot.Annihilator.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator,{})
  139.     sets.Midshot.Annihilator.MidACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.MidACC,{})
  140.     sets.Midshot.Annihilator.HighACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.HighACC,{})
  141.  
  142.     -- Annihilator Barrage Sets --
  143.     sets.Midshot.Annihilator.Barrage = set_combine(sets.Midshot.Annihilator,{},Barrage)
  144.     sets.Midshot.Annihilator.MidACC.Barrage = set_combine(sets.Midshot.Annihilator.MidACC,{},Barrage)
  145.     sets.Midshot.Annihilator.HighACC.Barrage = set_combine(sets.Midshot.Annihilator.HighACC,{},Barrage)
  146.  
  147.     -- Yoichinoyumi(Decoy Down) Sets --
  148.     sets.Midshot.Yoichinoyumi = {
  149.             range="Yoichinoyumi",
  150.             ammo="Achiyal. Arrow"}
  151.     sets.Midshot.Yoichinoyumi.MidACC = set_combine(sets.Midshot.Yoichinoyumi,{})
  152.     sets.Midshot.Yoichinoyumi.HighACC = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  153.  
  154.     -- Yoichinoyumi(Decoy Up) Sets --
  155.     sets.Midshot.Yoichinoyumi.Decoy = set_combine(sets.Midshot.Yoichinoyumi,{})
  156.     sets.Midshot.Yoichinoyumi.MidACC.Decoy = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  157.     sets.Midshot.Yoichinoyumi.HighACC.Decoy = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  158.  
  159.     -- Yoichinoyumi(Enmity) Sets --
  160.     sets.Midshot.Yoichinoyumi.Enmity = set_combine(sets.Midshot.Yoichinoyumi,{})
  161.     sets.Midshot.Yoichinoyumi.MidACC.Enmity = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  162.     sets.Midshot.Yoichinoyumi.HighACC.Enmity = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  163.  
  164.     -- Yoichinoyumi(AM) Sets --
  165.     sets.Midshot.Yoichinoyumi.AM = set_combine(sets.Midshot.Yoichinoyumi,{})
  166.     sets.Midshot.Yoichinoyumi.MidACC.AM = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  167.     sets.Midshot.Yoichinoyumi.HighACC.AM = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  168.  
  169.     -- Yoichinoyumi(AM: Ionis) Sets --
  170.     sets.Midshot.Yoichinoyumi.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi,{})
  171.     sets.Midshot.Yoichinoyumi.MidACC.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  172.     sets.Midshot.Yoichinoyumi.HighACC.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  173.  
  174.     -- Yoichinoyumi(Decoy Down: Ionis) Sets --
  175.     sets.Midshot.Yoichinoyumi.Ionis = set_combine(sets.Midshot.Yoichinoyumi,{})
  176.     sets.Midshot.Yoichinoyumi.MidACC.Ionis = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  177.     sets.Midshot.Yoichinoyumi.HighACC.Ionis = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  178.  
  179.     -- Yoichinoyumi(Decoy Up: Ionis) Sets --
  180.     sets.Midshot.Yoichinoyumi.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi,{})
  181.     sets.Midshot.Yoichinoyumi.MidACC.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  182.     sets.Midshot.Yoichinoyumi.HighACC.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  183.  
  184.     -- Yoichinoyumi(Decoy Down: SAM Roll) Sets --
  185.     sets.Midshot.Yoichinoyumi.STP = set_combine(sets.Midshot.Yoichinoyumi,{})
  186.     sets.Midshot.Yoichinoyumi.MidACC.STP = set_combine(sets.Midshot.Yoichinoyumi.STP,{})
  187.     sets.Midshot.Yoichinoyumi.HighACC.STP = set_combine(sets.Midshot.Yoichinoyumi.MidACC.STP,{})
  188.  
  189.     -- Yoichinoyumi(Decoy Up: SAM Roll) Sets --
  190.     sets.Midshot.Yoichinoyumi.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi,{})
  191.     sets.Midshot.Yoichinoyumi.MidACC.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  192.     sets.Midshot.Yoichinoyumi.HighACC.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  193.  
  194.     -- Yoichinoyumi(Decoy Down: Ionis + SAM Roll) Sets --
  195.     sets.Midshot.Yoichinoyumi.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi,{})
  196.     sets.Midshot.Yoichinoyumi.MidACC.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  197.     sets.Midshot.Yoichinoyumi.HighACC.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  198.  
  199.     -- Yoichinoyumi(Decoy Up: Ionis + SAM Roll) Sets --
  200.     sets.Midshot.Yoichinoyumi.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi,{})
  201.     sets.Midshot.Yoichinoyumi.MidACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{})
  202.     sets.Midshot.Yoichinoyumi.HighACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{})
  203.  
  204.     -- Yoichinoyumi Barrage Sets --
  205.     sets.Midshot.Yoichinoyumi.Barrage = set_combine(sets.Midshot.Yoichinoyumi,{},Barrage)
  206.     sets.Midshot.Yoichinoyumi.MidACC.Barrage = set_combine(sets.Midshot.Yoichinoyumi.MidACC,{},Barrage)
  207.     sets.Midshot.Yoichinoyumi.HighACC.Barrage = set_combine(sets.Midshot.Yoichinoyumi.HighACC,{},Barrage)
  208.  
  209.     -- Annihilator(Decoy Down) /SAM Sets --
  210.     sets.Midshot.Annihilator.SAM = {
  211.             range="Annihilator",
  212.             ammo="Achiyal. Bullet"}
  213.     sets.Midshot.Annihilator.SAM.MidACC = set_combine(sets.Midshot.Annihilator.SAM,{})
  214.     sets.Midshot.Annihilator.SAM.HighACC = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  215.  
  216.     -- Annihilator(Decoy Up) /SAM Sets --
  217.     sets.Midshot.Annihilator.SAM.Decoy = set_combine(sets.Midshot.Annihilator.SAM,{})
  218.     sets.Midshot.Annihilator.SAM.MidACC.Decoy = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  219.     sets.Midshot.Annihilator.SAM.HighACC.Decoy = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  220.  
  221.     -- Annihilator(Enmity) /SAM Sets --
  222.     sets.Midshot.Annihilator.SAM.Enmity = set_combine(sets.Midshot.Annihilator.SAM,{})
  223.     sets.Midshot.Annihilator.SAM.MidACC.Enmity = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  224.     sets.Midshot.Annihilator.SAM.HighACC.Enmity = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  225.  
  226.     -- Annihilator(AM) /SAM Sets --
  227.     sets.Midshot.Annihilator.SAM.AM = set_combine(sets.Midshot.Annihilator.SAM,{})
  228.     sets.Midshot.Annihilator.SAM.MidACC.AM = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  229.     sets.Midshot.Annihilator.SAM.HighACC.AM = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  230.  
  231.     -- Annihilator(AM: Ionis) /SAM Sets --
  232.     sets.Midshot.Annihilator.SAM.AM.Ionis = set_combine(sets.Midshot.Annihilator.SAM,{})
  233.     sets.Midshot.Annihilator.SAM.MidACC.AM.Ionis = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  234.     sets.Midshot.Annihilator.SAM.HighACC.AM.Ionis = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  235.  
  236.     -- Annihilator(Decoy Down: Ionis) /SAM Sets --
  237.     sets.Midshot.Annihilator.SAM.Ionis = set_combine(sets.Midshot.Annihilator.SAM,{})
  238.     sets.Midshot.Annihilator.SAM.MidACC.Ionis = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  239.     sets.Midshot.Annihilator.SAM.HighACC.Ionis = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  240.  
  241.     -- Annihilator(Decoy Up: Ionis) /SAM Sets --
  242.     sets.Midshot.Annihilator.SAM.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.SAM,{})
  243.     sets.Midshot.Annihilator.SAM.MidACC.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  244.     sets.Midshot.Annihilator.SAM.HighACC.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  245.  
  246.     -- Annihilator(Decoy Down: SAM Roll) /SAM Sets --
  247.     sets.Midshot.Annihilator.SAM.STP = set_combine(sets.Midshot.Annihilator.SAM,{})
  248.     sets.Midshot.Annihilator.SAM.MidACC.STP = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  249.     sets.Midshot.Annihilator.SAM.HighACC.STP = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  250.  
  251.     -- Annihilator(Decoy Up: SAM Roll) /SAM Sets --
  252.     sets.Midshot.Annihilator.SAM.Decoy.STP = set_combine(sets.Midshot.Annihilator.SAM,{})
  253.     sets.Midshot.Annihilator.SAM.MidACC.Decoy.STP = set_combine(sets.Midshot.Annihilator.SAM.Decoy.STP,{})
  254.     sets.Midshot.Annihilator.SAM.HighACC.Decoy.STP = set_combine(sets.Midshot.Annihilator.SAM.MidACC.Decoy.STP,{})
  255.  
  256.     -- Annihilator(Decoy Down: Ionis + SAM Roll) /SAM Sets --
  257.     sets.Midshot.Annihilator.SAM.Ionis.STP = set_combine(sets.Midshot.Annihilator.SAM,{})
  258.     sets.Midshot.Annihilator.SAM.MidACC.Ionis.STP = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  259.     sets.Midshot.Annihilator.SAM.HighACC.Ionis.STP = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  260.  
  261.     -- Annihilator(Decoy Up: Ionis + SAM Roll) /SAM Sets --
  262.     sets.Midshot.Annihilator.SAM.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.SAM,{})
  263.     sets.Midshot.Annihilator.SAM.MidACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{})
  264.     sets.Midshot.Annihilator.SAM.HighACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{})
  265.  
  266.     -- Annihilator /SAM Barrage Sets --
  267.     sets.Midshot.Annihilator.SAM.Barrage = set_combine(sets.Midshot.Annihilator.SAM,{},Barrage)
  268.     sets.Midshot.Annihilator.SAM.MidACC.Barrage = set_combine(sets.Midshot.Annihilator.SAM.MidACC,{},Barrage)
  269.     sets.Midshot.Annihilator.SAM.HighACC.Barrage = set_combine(sets.Midshot.Annihilator.SAM.HighACC,{},Barrage)
  270.  
  271.     -- Yoichinoyumi(Decoy Down) /SAM Sets --
  272.     sets.Midshot.Yoichinoyumi.SAM = {
  273.             range="Yoichinoyumi",
  274.             ammo="Achiyal. Arrow"}
  275.     sets.Midshot.Yoichinoyumi.SAM.MidACC = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  276.     sets.Midshot.Yoichinoyumi.SAM.HighACC = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  277.  
  278.     -- Yoichinoyumi(Decoy Up) /SAM Sets --
  279.     sets.Midshot.Yoichinoyumi.SAM.Decoy = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  280.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Decoy = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  281.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Decoy = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  282.  
  283.     -- Yoichinoyumi(Enmity) /SAM Sets --
  284.     sets.Midshot.Yoichinoyumi.SAM.Enmity = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  285.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Enmity = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  286.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Enmity = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  287.  
  288.     -- Yoichinoyumi(AM) /SAM Sets --
  289.     sets.Midshot.Yoichinoyumi.SAM.AM = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  290.     sets.Midshot.Yoichinoyumi.SAM.MidACC.AM = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  291.     sets.Midshot.Yoichinoyumi.SAM.HighACC.AM = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  292.  
  293.     -- Yoichinoyumi(AM: Ionis) /SAM Sets --
  294.     sets.Midshot.Yoichinoyumi.SAM.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  295.     sets.Midshot.Yoichinoyumi.SAM.MidACC.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  296.     sets.Midshot.Yoichinoyumi.SAM.HighACC.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  297.  
  298.     -- Yoichinoyumi(Decoy Down: Ionis) /SAM Sets --
  299.     sets.Midshot.Yoichinoyumi.SAM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  300.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  301.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  302.  
  303.     -- Yoichinoyumi(Decoy Up: Ionis) /SAM Sets --
  304.     sets.Midshot.Yoichinoyumi.SAM.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  305.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  306.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  307.  
  308.     -- Yoichinoyumi(Decoy Down: SAM Roll) /SAM Sets --
  309.     sets.Midshot.Yoichinoyumi.SAM.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  310.     sets.Midshot.Yoichinoyumi.SAM.MidACC.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  311.     sets.Midshot.Yoichinoyumi.SAM.HighACC.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  312.  
  313.     -- Yoichinoyumi(Decoy Up: SAM Roll) /SAM Sets --
  314.     sets.Midshot.Yoichinoyumi.SAM.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  315.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.Decoy.STP,{})
  316.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC.Decoy.STP,{})
  317.  
  318.     -- Yoichinoyumi(Decoy Down: Ionis + SAM Roll) /SAM Sets --
  319.     sets.Midshot.Yoichinoyumi.SAM.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  320.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  321.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  322.  
  323.     -- Yoichinoyumi(Decoy Up: Ionis + SAM Roll) /SAM Sets --
  324.     sets.Midshot.Yoichinoyumi.SAM.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM,{})
  325.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{})
  326.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{})
  327.  
  328.     -- Yoichinoyumi /SAM Barrage Sets --
  329.     sets.Midshot.Yoichinoyumi.SAM.Barrage = set_combine(sets.Midshot.Yoichinoyumi.SAM,{},Barrage)
  330.     sets.Midshot.Yoichinoyumi.SAM.MidACC.Barrage = set_combine(sets.Midshot.Yoichinoyumi.SAM.MidACC,{},Barrage)
  331.     sets.Midshot.Yoichinoyumi.SAM.HighACC.Barrage = set_combine(sets.Midshot.Yoichinoyumi.SAM.HighACC,{},Barrage)
  332.  
  333.     -- Annihilator(Decoy Down) /NIN Sets --
  334.     sets.Midshot.Annihilator.NIN = {
  335.             range="Annihilator",
  336.             ammo="Achiyal. Bullet"}
  337.     sets.Midshot.Annihilator.NIN.MidACC = set_combine(sets.Midshot.Annihilator.NIN,{})
  338.     sets.Midshot.Annihilator.NIN.HighACC = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  339.  
  340.     -- Annihilator(Decoy Up) /NIN Sets --
  341.     sets.Midshot.Annihilator.NIN.Decoy = set_combine(sets.Midshot.Annihilator.NIN,{})
  342.     sets.Midshot.Annihilator.NIN.MidACC.Decoy = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  343.     sets.Midshot.Annihilator.NIN.HighACC.Decoy = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  344.  
  345.     -- Annihilator(Enmity) /NIN Sets --
  346.     sets.Midshot.Annihilator.NIN.Enmity = set_combine(sets.Midshot.Annihilator.NIN,{})
  347.     sets.Midshot.Annihilator.NIN.MidACC.Enmity = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  348.     sets.Midshot.Annihilator.NIN.HighACC.Enmity = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  349.  
  350.     -- Annihilator(AM) /NIN Sets --
  351.     sets.Midshot.Annihilator.NIN.AM = set_combine(sets.Midshot.Annihilator.NIN,{})
  352.     sets.Midshot.Annihilator.NIN.MidACC.AM = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  353.     sets.Midshot.Annihilator.NIN.HighACC.AM = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  354.  
  355.     -- Annihilator(AM: Ionis) /NIN Sets --
  356.     sets.Midshot.Annihilator.NIN.AM.Ionis = set_combine(sets.Midshot.Annihilator.NIN,{})
  357.     sets.Midshot.Annihilator.NIN.MidACC.AM.Ionis = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  358.     sets.Midshot.Annihilator.NIN.HighACC.AM.Ionis = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  359.  
  360.     -- Annihilator(Decoy Down: Ionis) /NIN Sets --
  361.     sets.Midshot.Annihilator.NIN.Ionis = set_combine(sets.Midshot.Annihilator.NIN,{})
  362.     sets.Midshot.Annihilator.NIN.MidACC.Ionis = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  363.     sets.Midshot.Annihilator.NIN.HighACC.Ionis = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  364.  
  365.     -- Annihilator(Decoy Up: Ionis) /NIN Sets --
  366.     sets.Midshot.Annihilator.NIN.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.NIN,{})
  367.     sets.Midshot.Annihilator.NIN.MidACC.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  368.     sets.Midshot.Annihilator.NIN.HighACC.Decoy.Ionis = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  369.  
  370.     -- Annihilator(Decoy Down: SAM Roll) /NIN Sets --
  371.     sets.Midshot.Annihilator.NIN.STP = set_combine(sets.Midshot.Annihilator.NIN,{})
  372.     sets.Midshot.Annihilator.NIN.MidACC.STP = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  373.     sets.Midshot.Annihilator.NIN.HighACC.STP = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  374.  
  375.     -- Annihilator(Decoy Up: SAM Roll) /NIN Sets --
  376.     sets.Midshot.Annihilator.NIN.Decoy.STP = set_combine(sets.Midshot.Annihilator.NIN,{})
  377.     sets.Midshot.Annihilator.NIN.MidACC.Decoy.STP = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  378.     sets.Midshot.Annihilator.NIN.HighACC.Decoy.STP = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  379.  
  380.     -- Annihilator(Decoy Down: Ionis + SAM Roll) /NIN Sets --
  381.     sets.Midshot.Annihilator.NIN.Ionis.STP = set_combine(sets.Midshot.Annihilator.NIN,{})
  382.     sets.Midshot.Annihilator.NIN.MidACC.Ionis.STP = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  383.     sets.Midshot.Annihilator.NIN.HighACC.Ionis.STP = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  384.  
  385.     -- Annihilator(Decoy Up: Ionis + SAM Roll) /NIN Sets --
  386.     sets.Midshot.Annihilator.NIN.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.NIN,{})
  387.     sets.Midshot.Annihilator.NIN.MidACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{})
  388.     sets.Midshot.Annihilator.NIN.HighACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{})
  389.  
  390.     -- Annihilator /NIN Barrage Sets --
  391.     sets.Midshot.Annihilator.NIN.Barrage = set_combine(sets.Midshot.Annihilator.NIN,{},Barrage)
  392.     sets.Midshot.Annihilator.NIN.MidACC.Barrage = set_combine(sets.Midshot.Annihilator.NIN.MidACC,{},Barrage)
  393.     sets.Midshot.Annihilator.NIN.HighACC.Barrage = set_combine(sets.Midshot.Annihilator.NIN.HighACC,{},Barrage)
  394.  
  395.     -- Yoichinoyumi(Decoy Down) /NIN Sets --
  396.     sets.Midshot.Yoichinoyumi.NIN = {
  397.             range="Yoichinoyumi",
  398.             ammo="Achiyal. Arrow"}
  399.     sets.Midshot.Yoichinoyumi.NIN.MidACC = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  400.     sets.Midshot.Yoichinoyumi.NIN.HighACC = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  401.  
  402.     -- Yoichinoyumi(Decoy Up) /NIN Sets --
  403.     sets.Midshot.Yoichinoyumi.NIN.Decoy = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  404.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Decoy = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  405.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Decoy = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  406.  
  407.     -- Yoichinoyumi(Enmity) /NIN Sets --
  408.     sets.Midshot.Yoichinoyumi.NIN.Enmity = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  409.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Enmity = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  410.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Enmity = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  411.  
  412.     -- Yoichinoyumi(AM) /NIN Sets --
  413.     sets.Midshot.Yoichinoyumi.NIN.AM = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  414.     sets.Midshot.Yoichinoyumi.NIN.MidACC.AM = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  415.     sets.Midshot.Yoichinoyumi.NIN.HighACC.AM = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  416.  
  417.     -- Yoichinoyumi(AM: Ionis) /NIN Sets --
  418.     sets.Midshot.Yoichinoyumi.NIN.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  419.     sets.Midshot.Yoichinoyumi.NIN.MidACC.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  420.     sets.Midshot.Yoichinoyumi.NIN.HighACC.AM.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  421.  
  422.     -- Yoichinoyumi(Decoy Down: Ionis) /NIN Sets --
  423.     sets.Midshot.Yoichinoyumi.NIN.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  424.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  425.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  426.  
  427.     -- Yoichinoyumi(Decoy Up: Ionis) /NIN Sets --
  428.     sets.Midshot.Yoichinoyumi.NIN.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  429.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  430.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Decoy.Ionis = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  431.  
  432.     -- Yoichinoyumi(Decoy Down: SAM Roll) /NIN Sets --
  433.     sets.Midshot.Yoichinoyumi.NIN.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  434.     sets.Midshot.Yoichinoyumi.NIN.MidACC.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  435.     sets.Midshot.Yoichinoyumi.NIN.HighACC.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  436.  
  437.     -- Yoichinoyumi(Decoy Up: SAM Roll) /NIN Sets --
  438.     sets.Midshot.Yoichinoyumi.NIN.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  439.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  440.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Decoy.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  441.  
  442.     -- Yoichinoyumi(Decoy Down: Ionis + SAM Roll) /NIN Sets --
  443.     sets.Midshot.Yoichinoyumi.NIN.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  444.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  445.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  446.  
  447.     -- Yoichinoyumi(Decoy Up: Ionis + SAM Roll) /NIN Sets --
  448.     sets.Midshot.Yoichinoyumi.NIN.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN,{})
  449.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{})
  450.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Decoy.Ionis.STP = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{})
  451.  
  452.     -- Yoichinoyumi /NIN Barrage Sets --
  453.     sets.Midshot.Yoichinoyumi.NIN.Barrage = set_combine(sets.Midshot.Yoichinoyumi.NIN,{},Barrage)
  454.     sets.Midshot.Yoichinoyumi.NIN.MidACC.Barrage = set_combine(sets.Midshot.Yoichinoyumi.NIN.MidACC,{},Barrage)
  455.     sets.Midshot.Yoichinoyumi.NIN.HighACC.Barrage = set_combine(sets.Midshot.Yoichinoyumi.NIN.HighACC,{},Barrage)
  456.  
  457.     -- PDT/MDT Sets --
  458.     sets.PDT = {}
  459.  
  460.     sets.MDT = set_combine(sets.PDT,{})
  461.  
  462.     -- Melee Sets --
  463.     sets.Melee = {}
  464.     sets.Melee.MidACC = set_combine(sets.Melee,{})
  465.     sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{})
  466.  
  467.     -- WS Base Set --
  468.     sets.WS = {}
  469.  
  470.     -- Coronach Sets --
  471.     sets.WS.Coronach = {}
  472.     sets.WS.Coronach.MidACC = set_combine(sets.WS.Coronach,{})
  473.     sets.WS.Coronach.HighACC = set_combine(sets.WS.Coronach.MidACC,{})
  474.  
  475.     -- Coronach(Attack) Set. This Set Takes Priority Over Other Sets. --
  476.     sets.WS.Coronach.ATT = set_combine(sets.WS.Coronach,{})
  477.  
  478.     -- Coronach(Enmity) Sets --
  479.     sets.WS.Coronach.Enmity = set_combine(sets.WS.Coronach,{})
  480.     sets.WS.Coronach.MidACC.Enmity = set_combine(sets.WS.Coronach.MidACC,{})
  481.     sets.WS.Coronach.HighACC.Enmity = set_combine(sets.WS.Coronach.HighACC,{})
  482.  
  483.     -- Coronach(AM) Sets --
  484.     sets.WS.Coronach.AM = set_combine(sets.WS.Coronach,{})
  485.     sets.WS.Coronach.MidACC.AM = set_combine(sets.WS.Coronach.MidACC,{})
  486.     sets.WS.Coronach.HighACC.AM = set_combine(sets.WS.Coronach.HighACC,{})
  487.  
  488.     -- Coronach(SAM Roll) Sets --
  489.     sets.WS.Coronach.STP = set_combine(sets.WS.Coronach,{})
  490.     sets.WS.Coronach.MidACC.STP = set_combine(sets.WS.Coronach.MidACC,{})
  491.     sets.WS.Coronach.HighACC.STP = set_combine(sets.WS.Coronach.HighACC,{})
  492.  
  493.     -- Last Stand Sets --
  494.     sets.WS["Last Stand"] = {}
  495.     sets.WS["Last Stand"].MidACC = set_combine(sets.WS["Last Stand"],{})
  496.     sets.WS["Last Stand"].HighACC = set_combine(sets.WS["Last Stand"].MidACC,{})
  497.  
  498.     -- Last Stand(Attack) Set. This Set Takes Priority Over Other Sets. --
  499.     sets.WS["Last Stand"].ATT = set_combine(sets.WS["Last Stand"],{})
  500.  
  501.     -- Last Stand(Enmity) Sets --
  502.     sets.WS["Last Stand"].Enmity = set_combine(sets.WS["Last Stand"],{})
  503.     sets.WS["Last Stand"].MidACC.Enmity = set_combine(sets.WS["Last Stand"].MidACC,{})
  504.     sets.WS["Last Stand"].HighACC.Enmity = set_combine(sets.WS["Last Stand"].HighACC,{})
  505.  
  506.     -- Last Stand(AM) Sets --
  507.     sets.WS["Last Stand"].AM = set_combine(sets.WS["Last Stand"],{})
  508.     sets.WS["Last Stand"].MidACC.AM = set_combine(sets.WS["Last Stand"].MidACC,{})
  509.     sets.WS["Last Stand"].HighACC.AM = set_combine(sets.WS["Last Stand"].HighACC,{})
  510.  
  511.     -- Last Stand(SAM Roll) Sets --
  512.     sets.WS["Last Stand"].STP = set_combine(sets.WS["Last Stand"],{})
  513.     sets.WS["Last Stand"].MidACC.STP = set_combine(sets.WS["Last Stand"].MidACC,{})
  514.     sets.WS["Last Stand"].HighACC.STP = set_combine(sets.WS["Last Stand"].HighACC,{})
  515.  
  516.     -- Namas Arrow Sets --
  517.     sets.WS["Namas Arrow"] = {}
  518.     sets.WS["Namas Arrow"].MidACC = set_combine(sets.WS["Namas Arrow"],{})
  519.     sets.WS["Namas Arrow"].HighACC = set_combine(sets.WS["Namas Arrow"].MidACC,{})
  520.  
  521.     -- Namas Arrow(Attack) Set. This Set Takes Priority Over Other Sets. --
  522.     sets.WS["Namas Arrow"].ATT = set_combine(sets.WS["Namas Arrow"],{})
  523.  
  524.     -- Namas Arrow(Enmity) Sets --
  525.     sets.WS["Namas Arrow"].Enmity = set_combine(sets.WS["Namas Arrow"],{})
  526.     sets.WS["Namas Arrow"].MidACC.Enmity = set_combine(sets.WS["Namas Arrow"].MidACC,{})
  527.     sets.WS["Namas Arrow"].HighACC.Enmity = set_combine(sets.WS["Namas Arrow"].HighACC,{})
  528.  
  529.     -- Namas Arrow(AM) Sets --
  530.     sets.WS["Namas Arrow"].AM = set_combine(sets.WS["Namas Arrow"],{})
  531.     sets.WS["Namas Arrow"].MidACC.AM = set_combine(sets.WS["Namas Arrow"].MidACC,{})
  532.     sets.WS["Namas Arrow"].HighACC.AM = set_combine(sets.WS["Namas Arrow"].HighACC,{})
  533.  
  534.     -- Namas Arrow(SAM Roll) Sets --
  535.     sets.WS["Namas Arrow"].STP = set_combine(sets.WS["Namas Arrow"],{})
  536.     sets.WS["Namas Arrow"].MidACC.STP = set_combine(sets.WS["Namas Arrow"].MidACC,{})
  537.     sets.WS["Namas Arrow"].HighACC.STP = set_combine(sets.WS["Namas Arrow"].HighACC,{})
  538.  
  539.     -- Jishnu's Radiance Sets --
  540.     sets.WS["Jishnu's Radiance"] = {}
  541.     sets.WS["Jishnu's Radiance"].MidACC = set_combine(sets.WS["Jishnu's Radiance"],{})
  542.     sets.WS["Jishnu's Radiance"].HighACC = set_combine(sets.WS["Jishnu's Radiance"].MidACC,{})
  543.  
  544.     -- Jishnu's Radiance(Attack) Set. This Set Takes Priority Over Other Sets. --
  545.     sets.WS["Jishnu's Radiance"].ATT = set_combine(sets.WS["Jishnu's Radiance"],{})
  546.  
  547.     -- Jishnu's Radiance(Enmity) Sets --
  548.     sets.WS["Jishnu's Radiance"].Enmity = set_combine(sets.WS["Jishnu's Radiance"],{})
  549.     sets.WS["Jishnu's Radiance"].MidACC.Enmity = set_combine(sets.WS["Jishnu's Radiance"].MidACC,{})
  550.     sets.WS["Jishnu's Radiance"].HighACC.Enmity = set_combine(sets.WS["Jishnu's Radiance"].HighACC,{})
  551.  
  552.     -- Jishnu's Radiance(AM) Sets --
  553.     sets.WS["Jishnu's Radiance"].AM = set_combine(sets.WS["Jishnu's Radiance"],{})
  554.     sets.WS["Jishnu's Radiance"].MidACC.AM = set_combine(sets.WS["Jishnu's Radiance"].MidACC,{})
  555.     sets.WS["Jishnu's Radiance"].HighACC.AM = set_combine(sets.WS["Jishnu's Radiance"].HighACC,{})
  556.  
  557.     -- Jishnu's Radiance(SAM Roll) Sets --
  558.     sets.WS["Jishnu's Radiance"].STP = set_combine(sets.WS["Jishnu's Radiance"],{})
  559.     sets.WS["Jishnu's Radiance"].MidACC.STP = set_combine(sets.WS["Jishnu's Radiance"].MidACC,{})
  560.     sets.WS["Jishnu's Radiance"].HighACC.STP = set_combine(sets.WS["Jishnu's Radiance"].HighACC,{})
  561.  
  562.     -- Apex Arrow Sets --
  563.     sets.WS["Apex Arrow"] = {}
  564.     sets.WS["Apex Arrow"].MidACC = set_combine(sets.WS["Apex Arrow"],{})
  565.     sets.WS["Apex Arrow"].HighACC = set_combine(sets.WS["Apex Arrow"].MidACC,{})
  566.  
  567.     -- Wildfire Set --
  568.     sets.WS.Wildfire = {}
  569.  
  570.     -- JA Sets --
  571.     sets.JA = {}
  572.     sets.JA.Shadowbind = {
  573.             hands="Orion Bracers +1"}
  574.  
  575.     sets.JA.Scavenge = {feet="Orion Socks +1"}
  576.     sets.JA.Camouflage = {body="Orion Jerkin +1"}
  577.     sets.JA.Sharpshot = {legs="Orion Braccae +1"}
  578.     sets.JA["Bounty Shot"] = {hands="Amini Glove. +1"}
  579.     sets.JA["Eagle Eye Shot"] = {
  580.             legs="Arc. Braccae +1"}
  581.  
  582.     -- Waltz Set --
  583.     sets.Waltz = {}
  584.  
  585.     sets.Precast = {}
  586.     -- Fastcast Set --
  587.     sets.Precast.FastCast = {}
  588.     -- Utsusemi Precast Set --
  589.     sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{neck="Magoraga Beads"})
  590.  
  591.     sets.Midcast = {}
  592.     -- Magic Haste Set --
  593.     sets.Midcast.Haste = set_combine(sets.PDT,{})
  594. end
  595.  
  596. function pretarget(spell,action)
  597.     if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  598.         cancel_spell()
  599.         send_command('input /item "Echo Drops" <me>')
  600.     elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  601.         cancel_spell()
  602.         send_command('Aggressor')
  603.     elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  604.         cancel_spell()
  605.         send_command('ThirdEye')
  606.     elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  607.         cancel_spell()
  608.         add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  609.     elseif spell.action_type == 'Ranged Attack' then
  610.         if spell.target.distance > 24.9 then -- Cancel Ranged Attack If You Are Out Of Range --
  611.             cancel_spell()
  612.             add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  613.             return
  614.         else
  615.             if AutoMode == 'ON' and not buffactive.amnesia then -- Auto WS/Decoy Shot/Double Shot --
  616.                 if player.tp >= 1000 then
  617.                     cancel_spell()
  618.                     autoWS()
  619.                 elseif windower.ffxi.get_ability_recasts()[52] < 1 then
  620.                     cancel_spell()
  621.                     send_command('DecoyShot')
  622.                 elseif windower.ffxi.get_ability_recasts()[126] < 1 then
  623.                     cancel_spell()
  624.                     send_command('DoubleShot')
  625.                 end
  626.             end
  627.         end
  628.     elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  629.         if (spell.skill == 'Archery' or spell.skill == 'Marksmanship') and spell.target.distance > 16+target_distance then
  630.             cancel_spell()
  631.             add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  632.             return
  633.         else
  634.             if spell.english ~= 'Bora Axe' and spell.target.distance > target_distance then
  635.                 cancel_spell()
  636.                 add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  637.                 return
  638.             end
  639.         end
  640.     end
  641. end
  642.  
  643. function precast(spell,action)
  644.     local check_ammo
  645.     local check_ammo_count = 1
  646.     if spell.action_type == 'Ranged Attack' then
  647.         check_ammo = player.equipment.ammo
  648.         if player.equipment.ammo == 'empty' or player.inventory[check_ammo].count <= check_ammo_count then
  649.             add_to_chat(123, spell.name..' Canceled: [Out of Ammo]')
  650.             cancel_spell()
  651.             return
  652.         else
  653.             equip(sets.Preshot)
  654.             if player.inventory[check_ammo].count <= ammo_warning_limit and player.inventory[check_ammo].count > 1 and not warning then
  655.                 add_to_chat(8, '***** [Low Ammo Warning!] *****')
  656.                 warning = true
  657.             elseif player.inventory[check_ammo].count > ammo_warning_limit and warning then
  658.                 warning = false
  659.             end
  660.         end
  661.     elseif spell.type == "WeaponSkill" then
  662.         if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  663.             cancel_spell()
  664.             add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  665.             return
  666.         else
  667.             equipSet = sets.WS
  668.             if equipSet[spell.english] then
  669.                 equipSet = equipSet[spell.english]
  670.             end
  671.             if Attack == 'ON' then
  672.                 equipSet = equipSet["ATT"]
  673.             end
  674.             if equipSet[AccArray[AccIndex]] then
  675.                 equipSet = equipSet[AccArray[AccIndex]]
  676.             end
  677.             if equipSet["Enmity"] and Enmity == 'ON' then
  678.                 equipSet = equipSet["Enmity"]
  679.             end
  680.             if buffactive.Aftermath and equipSet["AM"] then
  681.                 equipSet = equipSet["AM"]
  682.             end
  683.             if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  684.                 equipSet = equipSet["STP"]
  685.             end
  686.             if player.tp > 2990 or buffactive.Sekkanoki then
  687.                 if spell.english == "Last Stand" then -- Equip Altdorf's Earring and Wilhelm's Earring When You Have 3000 TP or Sekkanoki For Last Stand --
  688.                     equipSet = set_combine(equipSet,{ear1="Altdorf's Earring",ear2="Wilhelm's Earring"})
  689.                 elseif spell.english == "Jishnu's Radiance" then -- Equip Jupiter's Pearl When You Have 3000 TP or Sekkanoki For Jishnu's Radiance --
  690.                     equipSet = set_combine(equipSet,{ear1="Jupiter's Pearl"})
  691.                 end
  692.             end
  693.             if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  694.                 equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  695.             end
  696.             equip(equipSet)
  697.         end
  698.     elseif spell.type == "JobAbility" then
  699.         if sets.JA[spell.english] then
  700.             equip(sets.JA[spell.english])
  701.         end
  702.     elseif spell.action_type == 'Magic' then
  703.         if spell.english:startswith('Utsusemi') then
  704.             if spell.english == 'Utsusemi: Ni' then
  705.                 if buffactive['Copy Image (3)'] then
  706.                     cancel_spell()
  707.                     add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  708.                     return
  709.                 else
  710.                     equip(sets.Precast.Utsusemi)
  711.                 end
  712.             else
  713.                 equip(sets.Precast.Utsusemi)
  714.             end
  715.         else
  716.             equip(sets.Precast.FastCast)
  717.         end
  718.     elseif spell.type == "Waltz" then
  719.         equip(sets.Waltz)
  720.     elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  721.         cast_delay(0.2)
  722.         send_command('cancel Sneak')
  723.     end
  724. end
  725.  
  726. function midcast(spell,action)
  727.     if spell.action_type == 'Ranged Attack' then
  728.         equipSet = sets.Midshot
  729.         if equipSet[WeaponArray[WeaponIndex]] then
  730.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  731.         end
  732.         if equipSet[player.sub_job] then
  733.             equipSet = equipSet[player.sub_job]
  734.         end
  735.         if equipSet[AccArray[AccIndex]] then
  736.             equipSet = equipSet[AccArray[AccIndex]]
  737.         end
  738.         if buffactive.Barrage and equipSet["Barrage"] then
  739.             equipSet = equipSet["Barrage"]
  740.         end
  741.         if buffactive["Decoy Shot"] and equipSet["Decoy"] then
  742.             equipSet = equipSet["Decoy"]
  743.         end
  744.         if equipSet["Enmity"] and Enmity == 'ON' then
  745.             equipSet = equipSet["Enmity"]
  746.         end
  747.         if buffactive.Aftermath and equipSet["AM"] then
  748.             equipSet = equipSet["AM"]
  749.         end
  750.         if buffactive.Ionis and equipSet["Ionis"] then
  751.             equipSet = equipSet["Ionis"]
  752.         end
  753.         if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  754.             equipSet = equipSet["STP"]
  755.         end
  756.         equip(equipSet)
  757.     elseif spell.action_type == 'Magic' then
  758.         if spell.english:startswith('Utsusemi') then
  759.             if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then
  760.                 send_command('@wait 1.7;cancel Copy Image*')
  761.             end
  762.             equip(sets.Midcast.Haste)
  763.         elseif spell.english == 'Monomi: Ichi' then
  764.             if buffactive['Sneak'] then
  765.                 send_command('@wait 1.7;cancel sneak')
  766.             end
  767.             equip(sets.Midcast.Haste)
  768.         else
  769.             equip(sets.Midcast.Haste)
  770.         end
  771.     end
  772. end
  773.  
  774. function aftercast(spell,action)
  775.     if spell.action_type == 'Ranged Attack' and AutoMode == 'ON' then
  776.         autoRA()
  777.     else
  778.         status_change(player.status)
  779.     end
  780.     if spell.type == "WeaponSkill" and not spell.interrupted then
  781.         send_command('wait 0.2;gs c TP')
  782.     end
  783. end
  784.  
  785. function status_change(new,old)
  786.     check_equip_lock()
  787.     if Armor == 'PDT' then
  788.         equip(sets.PDT)
  789.     elseif Armor == 'MDT' then
  790.         equip(sets.MDT)
  791.     elseif new == 'Engaged' then
  792.         equipSet = sets.Melee
  793.         if equipSet[AccArray[AccIndex]] then
  794.             equipSet = equipSet[AccArray[AccIndex]]
  795.         end
  796.         equip(equipSet)
  797.     else
  798.         equipSet = sets.Idle
  799.         if equipSet[IdleArray[IdleIndex]] then
  800.             equipSet = equipSet[IdleArray[IdleIndex]]
  801.         end
  802.         if equipSet[WeaponArray[WeaponIndex]] then
  803.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  804.         end
  805.         if equipSet[player.sub_job] then
  806.             equipSet = equipSet[player.sub_job]
  807.         end
  808.         if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  809.             equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  810.         end
  811.         if world.area:endswith('Adoulin') then
  812.             equipSet = set_combine(equipSet,{body="Councilor's Garb"})
  813.         end
  814.         equip(equipSet)
  815.     end
  816. end
  817.  
  818. function buff_change(buff,gain)
  819.     buff = string.lower(buff)
  820.     if buff == "overkill" then -- Overkill Timer --
  821.         if gain then
  822.             send_command('timers create "Overkill" 60 down')
  823.         else
  824.             send_command('timers delete "Overkill"')
  825.             add_to_chat(123,'Overkill: [OFF]')
  826.         end
  827.     elseif buff == "decoy shot" then -- Decoy Shot Timer --
  828.         if gain then
  829.             send_command('timers create "Decoy Shot" 180 down')
  830.         else
  831.             send_command('timers delete "Decoy Shot"')
  832.             add_to_chat(123,'Decoy Shot: [OFF]')
  833.         end
  834.     elseif buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  835.         if gain then
  836.             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.]')
  837.         else
  838.             send_command('timers delete "Aftermath: Lv.3"')
  839.             add_to_chat(123,'AM3: [OFF]')
  840.         end
  841.     elseif buff == 'weakness' then -- Weakness Timer --
  842.         if gain then
  843.             send_command('timers create "Weakness" 300 up')
  844.         else
  845.             send_command('timers delete "Weakness"')
  846.         end
  847.     end
  848.     if not midaction() then
  849.         status_change(player.status)
  850.     end
  851. end
  852.  
  853. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  854. function self_command(command)
  855.     if command == 'C1' then -- Accuracy Level Toggle --
  856.         AccIndex = (AccIndex % #AccArray) + 1
  857.         add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  858.         status_change(player.status)
  859.     elseif command == 'C17' then -- Ranged Weapon Toggle --
  860.         WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  861.         add_to_chat(158,'Ranged Weapon: '..WeaponArray[WeaponIndex])
  862.         status_change(player.status)
  863.     elseif command == 'C5' then -- Auto Update Gear Toggle --
  864.         status_change(player.status)
  865.         add_to_chat(158,'Auto Update Gear')
  866.     elseif command == 'C7' then -- PDT Toggle --
  867.         if Armor == 'PDT' then
  868.             Armor = 'None'
  869.             add_to_chat(123,'PDT Set: [Unlocked]')
  870.         else
  871.             Armor = 'PDT'
  872.             add_to_chat(158,'PDT Set: [Locked]')
  873.         end
  874.         status_change(player.status)
  875.     elseif command == 'C15' then -- MDT Toggle --
  876.         if Armor == 'MDT' then
  877.             Armor = 'None'
  878.             add_to_chat(123,'MDT Set: [Unlocked]')
  879.         else
  880.             Armor = 'MDT'
  881.             add_to_chat(158,'MDT Set: [Locked]')
  882.         end
  883.         status_change(player.status)
  884.     elseif command == 'C11' then -- SAM Roll Toggle --
  885.         if Samurai_Roll == 'ON' then
  886.             Samurai_Roll = 'OFF'
  887.             add_to_chat(123,'SAM Roll: [OFF]')
  888.         else
  889.             Samurai_Roll = 'ON'
  890.             add_to_chat(158,'SAM Roll: [ON]')
  891.         end
  892.         status_change(player.status)
  893.     elseif command == 'C10' then -- Enmity Toggle --
  894.         if Enmity == 'ON' then
  895.             Enmity = 'OFF'
  896.             add_to_chat(123,'Enmity Set: [OFF]')
  897.         else
  898.             Enmity = 'ON'
  899.             add_to_chat(158,'Enmity Set: [ON]')
  900.         end
  901.         status_change(player.status)
  902.     elseif command == 'C9' then -- Attack Toggle --
  903.         if Attack == 'ON' then
  904.             Attack = 'OFF'
  905.             add_to_chat(123,'Attack: [OFF]')
  906.         else
  907.             Attack = 'ON'
  908.             add_to_chat(158,'Attack: [ON]')
  909.         end
  910.         status_change(player.status)
  911.     elseif command == 'C3' then -- Overkill Toggle --
  912.         send_command('Overkill')
  913.         add_to_chat(158,'Overkill: [ON]')
  914.     elseif command == 'C8' then -- Distance Toggle --
  915.         if player.target.distance then
  916.             target_distance = math.floor(player.target.distance*10)/10
  917.             add_to_chat(158,'Distance: '..target_distance)
  918.         else
  919.             add_to_chat(123,'No Target Selected')
  920.         end
  921.     elseif command == 'C6' then -- Idle Toggle --
  922.         IdleIndex = (IdleIndex % #IdleArray) + 1
  923.         add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  924.         status_change(player.status)
  925.     elseif command == 'C2' then -- Auto RA/WS Toggle --
  926.         if AutoMode == 'ON' then
  927.             AutoMode = 'OFF'
  928.             add_to_chat(123,'Auto Mode: [OFF]')
  929.         else
  930.             AutoMode = 'ON'
  931.             add_to_chat(158,'Auto Mode: [ON]')
  932.         end
  933.     elseif command == 'TP' then
  934.         add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  935.     elseif command:match('^SC%d$') then
  936.         send_command('//' .. sc_map[command])
  937.     end
  938. end
  939.  
  940. function check_equip_lock() -- Lock Equipment Here --
  941.     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
  942.         disable('ring1','ring2')
  943.     elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
  944.         disable('back')
  945.     else
  946.         enable('ring1','ring2','back')
  947.     end
  948. end
  949.  
  950. function autoRA() -- Make Auto RA Delay Adjustment Here --
  951.     local delay = '2.2'
  952.     if player.equipment.range == 'Annihilator' then
  953.         if spell.type == "WeaponSkill" then
  954.             delay = '2.25'
  955.         else
  956.             if buffactive["Courser's Roll"] then
  957.                 delay = '0.7'
  958.             elseif buffactive.Overkill or buffactive[581] then -- Flurry II --
  959.                 delay = '0.5'
  960.             else
  961.                 delay = '1.05'
  962.             end
  963.         end
  964.     elseif player.equipment.range == 'Yoichinoyumi' then
  965.         if spell.type == "WeaponSkill" then
  966.             delay = '2.25'
  967.         else
  968.             if buffactive["Courser's Roll"] then
  969.                 delay = '0.7'
  970.             elseif buffactive.Overkill or buffactive[581] then -- Flurry II --
  971.                 delay = '0.5'
  972.             else
  973.                 delay = '1.05'
  974.             end
  975.         end
  976.     end
  977.     send_command('@wait '..delay..'; input /ra <t>')
  978. end
  979.  
  980. function autoWS() -- Change Ranged Weapon Here --
  981.     if player.equipment.range == 'Annihilator' then
  982.         send_command('input /ws "'..AutoGunWS..'" <t>')
  983.     elseif player.equipment.range == 'Yoichinoyumi' then
  984.         send_command('input /ws "'..AutoBowWS..'" <t>')
  985.     end
  986. end
  987.  
  988. function sub_job_change(newSubjob, oldSubjob)
  989.     select_default_macro_book()
  990. end
  991.  
  992. function set_macro_page(set,book)
  993.     if not tonumber(set) then
  994.         add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  995.         return
  996.     end
  997.     if set < 1 or set > 10 then
  998.         add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  999.         return
  1000.     end
  1001.     if book then
  1002.         if not tonumber(book) then
  1003.             add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  1004.             return
  1005.         end
  1006.         if book < 1 or book > 20 then
  1007.             add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  1008.             return
  1009.         end
  1010.         send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  1011.     else
  1012.         send_command('@input /macro set '..tostring(set))
  1013.     end
  1014. end
  1015.  
  1016. function select_default_macro_book()
  1017.     -- Default macro set/book
  1018.     if player.sub_job == 'WAR' then
  1019.         set_macro_page(1, 11)
  1020.     elseif player.sub_job == 'DNC' then
  1021.         set_macro_page(5, 11)
  1022.     elseif player.sub_job == 'SAM' then
  1023.         set_macro_page(2, 11)
  1024.     elseif player.sub_job == 'DRG' then
  1025.         set_macro_page(3, 11)
  1026.     elseif player.sub_job == 'NIN' then
  1027.         set_macro_page(10, 11)
  1028.     else
  1029.         set_macro_page(1, 11)
  1030.     end
  1031. end
Advertisement
Add Comment
Please, Sign In to add comment