Advertisement
Bokura

Bokura_WAR

Jan 28th, 2014
6,682
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 37.17 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","MaxACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid. 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 = {"Conqueror","Ukonvasara","Ragnarok","Bravura"} -- Default Main Weapon Is Conqueror. 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.     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.     Retaliation = 'OFF' -- Set Default Retaliation ON or OFF Here --
  16.     Samurai_Roll = 'ON' -- Set Default SAM Roll ON or OFF Here --
  17.     target_distance = 5 -- Set Default Distance Here --
  18.     select_default_macro_book() -- Change Default Macro Book At The End --
  19.  
  20.     -- Gavialis Helm --
  21.     elements = {}
  22.     elements.equip = {head="Gavialis Helm"}
  23.     elements["Ukko's Fury"] = S{"Light","Lightning","Wind"}
  24.     elements.Resolution = S{"Lightning","Wind","Earth"}
  25.  
  26.     sc_map = {SC1="UkkosFury", SC2="KingsJustice", SC3="Berserk"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  27.  
  28.     sets.Idle = {}
  29.     -- Idle/Town Sets --
  30.     sets.Idle.Regen = {}
  31.     sets.Idle.Regen.Conqueror = set_combine(sets.Idle.Regen,{
  32.             main="Conqueror",
  33.             sub="Bloodrain Strap"})
  34.     sets.Idle.Regen.Ukonvasara = set_combine(sets.Idle.Regen,{
  35.             main="Ukonvasara",
  36.             sub="Duplus Grip"})
  37.     sets.Idle.Regen.Ragnarok = set_combine(sets.Idle.Regen,{
  38.             main="Ragnarok",
  39.             sub="Duplus Grip"})
  40.     sets.Idle.Regen.Bravura = set_combine(sets.Idle.Regen,{
  41.             main="Bravura",
  42.             sub="Duplus Grip"})
  43.  
  44.     sets.Idle.Movement = set_combine(sets.Idle.Regen,{})
  45.     sets.Idle.Movement.Conqueror = set_combine(sets.Idle.Movement,{
  46.             main="Conqueror",
  47.             sub="Bloodrain Strap"})
  48.     sets.Idle.Movement.Ukonvasara = set_combine(sets.Idle.Movement,{
  49.             main="Ukonvasara",
  50.             sub="Duplus Grip"})
  51.     sets.Idle.Movement.Ragnarok = set_combine(sets.Idle.Movement,{
  52.             main="Ragnarok",
  53.             sub="Duplus Grip"})
  54.     sets.Idle.Movement.Bravura = set_combine(sets.Idle.Movement,{
  55.             main="Bravura",
  56.             sub="Duplus Grip"})
  57.  
  58.     sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  59.  
  60.     -- TP Base Set --
  61.     sets.TP = {}
  62.  
  63.     -- Conqueror(AM3 Down) TP Sets --
  64.     sets.TP.Conqueror = {}
  65.     sets.TP.Conqueror.MidACC = set_combine(sets.TP.Conqueror,{})
  66.     sets.TP.Conqueror.HighACC = set_combine(sets.TP.Conqueror.MidACC,{})
  67.     sets.TP.Conqueror.MaxACC = set_combine(sets.TP.Conqueror.HighACC,{})
  68.  
  69.     -- Conqueror(AM3 Up) TP Sets --
  70.     sets.TP.Conqueror.AM3 = set_combine(sets.TP.Conqueror,{})
  71.     sets.TP.Conqueror.MidACC.AM3 = set_combine(sets.TP.Conqueror.MidACC,{})
  72.     sets.TP.Conqueror.HighACC.AM3 = set_combine(sets.TP.Conqueror.HighACC,{})
  73.     sets.TP.Conqueror.MaxACC.AM3 = set_combine(sets.TP.Conqueror.MaxACC,{})
  74.  
  75.     -- Conqueror(AM3 Down: Restraint) TP Sets --
  76.     sets.TP.Conqueror.Restraint = set_combine(sets.TP.Conqueror,{})
  77.     sets.TP.Conqueror.MidACC.Restraint = set_combine(sets.TP.Conqueror.MidACC,{})
  78.     sets.TP.Conqueror.HighACC.Restraint = set_combine(sets.TP.Conqueror.HighACC,{})
  79.     sets.TP.Conqueror.MaxACC.Restraint = set_combine(sets.TP.Conqueror.MaxACC,{})
  80.  
  81.     -- Conqueror(AM3 Up: Restraint) TP Sets --
  82.     sets.TP.Conqueror.AM3.Restraint = set_combine(sets.TP.Conqueror.AM3,{})
  83.     sets.TP.Conqueror.MidACC.AM3.Restraint = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  84.     sets.TP.Conqueror.HighACC.AM3.Restraint = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  85.     sets.TP.Conqueror.MaxACC.AM3.Restraint = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  86.  
  87.     -- Conqueror(AM3 Down: Ionis) TP Sets --
  88.     sets.TP.Conqueror.Ionis = set_combine(sets.TP.Conqueror,{})
  89.     sets.TP.Conqueror.MidACC.Ionis = set_combine(sets.TP.Conqueror.MidACC,{})
  90.     sets.TP.Conqueror.HighACC.Ionis = set_combine(sets.TP.Conqueror.HighACC,{})
  91.     sets.TP.Conqueror.MaxACC.Ionis = set_combine(sets.TP.Conqueror.MaxACC,{})
  92.  
  93.     -- Conqueror(AM3 Up: Ionis) TP Sets --
  94.     sets.TP.Conqueror.AM3.Ionis = set_combine(sets.TP.Conqueror.AM3,{})
  95.     sets.TP.Conqueror.MidACC.AM3.Ionis = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  96.     sets.TP.Conqueror.HighACC.AM3.Ionis = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  97.     sets.TP.Conqueror.MaxACC.AM3.Ionis = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  98.  
  99.     -- Conqueror(AM3 Down: Restraint + Ionis) TP Sets --
  100.     sets.TP.Conqueror.Restraint.Ionis = set_combine(sets.TP.Conqueror,{})
  101.     sets.TP.Conqueror.MidACC.Restraint.Ionis = set_combine(sets.TP.Conqueror.MidACC,{})
  102.     sets.TP.Conqueror.HighACC.Restraint.Ionis = set_combine(sets.TP.Conqueror.HighACC,{})
  103.     sets.TP.Conqueror.MaxACC.Restraint.Ionis = set_combine(sets.TP.Conqueror.MaxACC,{})
  104.  
  105.     -- Conqueror(AM3 Up: Restraint + Ionis) TP Sets --
  106.     sets.TP.Conqueror.AM3.Restraint.Ionis = set_combine(sets.TP.Conqueror.AM3,{})
  107.     sets.TP.Conqueror.MidACC.AM3.Restraint.Ionis = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  108.     sets.TP.Conqueror.HighACC.AM3.Restraint.Ionis = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  109.     sets.TP.Conqueror.MaxACC.AM3.Restraint.Ionis = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  110.  
  111.     -- Conqueror(AM3 Down: SAM Roll) TP Sets --
  112.     sets.TP.Conqueror.STP = set_combine(sets.TP.Conqueror,{})
  113.     sets.TP.Conqueror.MidACC.STP = set_combine(sets.TP.Conqueror.MidACC,{})
  114.     sets.TP.Conqueror.HighACC.STP = set_combine(sets.TP.Conqueror.HighACC,{})
  115.     sets.TP.Conqueror.MaxACC.STP = set_combine(sets.TP.Conqueror.MaxACC,{})
  116.  
  117.     -- Conqueror(AM3 Up: SAM Roll) TP Sets --
  118.     sets.TP.Conqueror.AM3.STP = set_combine(sets.TP.Conqueror.AM3,{})
  119.     sets.TP.Conqueror.MidACC.AM3.STP = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  120.     sets.TP.Conqueror.HighACC.AM3.STP = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  121.     sets.TP.Conqueror.MaxACC.AM3.STP = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  122.  
  123.     -- Conqueror(AM3 Down: Restraint + SAM Roll) TP Sets --
  124.     sets.TP.Conqueror.Restraint.STP = set_combine(sets.TP.Conqueror,{})
  125.     sets.TP.Conqueror.MidACC.Restraint.STP = set_combine(sets.TP.Conqueror.MidACC,{})
  126.     sets.TP.Conqueror.HighACC.Restraint.STP = set_combine(sets.TP.Conqueror.HighACC,{})
  127.     sets.TP.Conqueror.MaxACC.Restraint.STP = set_combine(sets.TP.Conqueror.MaxACC,{})
  128.  
  129.     -- Conqueror(AM3 Up: Restraint + SAM Roll) TP Sets --
  130.     sets.TP.Conqueror.AM3.Restraint.STP = set_combine(sets.TP.Conqueror.AM3,{})
  131.     sets.TP.Conqueror.MidACC.AM3.Restraint.STP = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  132.     sets.TP.Conqueror.HighACC.AM3.Restraint.STP = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  133.     sets.TP.Conqueror.MaxACC.AM3.Restraint.STP = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  134.  
  135.     -- Conqueror(AM3 Down: Ionis + SAM Roll) TP Sets --
  136.     sets.TP.Conqueror.Ionis.STP = set_combine(sets.TP.Conqueror,{})
  137.     sets.TP.Conqueror.MidACC.Ionis.STP = set_combine(sets.TP.Conqueror.MidACC,{})
  138.     sets.TP.Conqueror.HighACC.Ionis.STP = set_combine(sets.TP.Conqueror.HighACC,{})
  139.     sets.TP.Conqueror.MaxACC.Ionis.STP = set_combine(sets.TP.Conqueror.MaxACC,{})
  140.  
  141.     -- Conqueror(AM3 Up: Ionis + SAM Roll) TP Sets --
  142.     sets.TP.Conqueror.AM3.Ionis.STP = set_combine(sets.TP.Conqueror.AM3,{})
  143.     sets.TP.Conqueror.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  144.     sets.TP.Conqueror.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  145.     sets.TP.Conqueror.MaxACC.AM3.Ionis.STP = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  146.  
  147.     -- Conqueror(AM3 Down: Restraint + Ionis + SAM Roll) TP Sets --
  148.     sets.TP.Conqueror.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror,{})
  149.     sets.TP.Conqueror.MidACC.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.MidACC,{})
  150.     sets.TP.Conqueror.HighACC.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.HighACC,{})
  151.     sets.TP.Conqueror.MaxACC.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.MaxACC,{})
  152.  
  153.     -- Conqueror(AM3 Up: Restraint + Ionis + SAM Roll) TP Sets --
  154.     sets.TP.Conqueror.AM3.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.AM3,{})
  155.     sets.TP.Conqueror.MidACC.AM3.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.MidACC.AM3,{})
  156.     sets.TP.Conqueror.HighACC.AM3.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.HighACC.AM3,{})
  157.     sets.TP.Conqueror.MaxACC.AM3.Restraint.Ionis.STP = set_combine(sets.TP.Conqueror.MaxACC.AM3,{})
  158.  
  159.     -- Ukonvasara TP Sets --
  160.     sets.TP.Ukonvasara = {}
  161.     sets.TP.Ukonvasara.MidACC = set_combine(sets.TP.Ukonvasara,{})
  162.     sets.TP.Ukonvasara.HighACC = set_combine(sets.TP.Ukonvasara.MidACC,{})
  163.     sets.TP.Ukonvasara.MaxACC = set_combine(sets.TP.Ukonvasara.HighACC,{})
  164.  
  165.     -- Ukonvasara(Restraint) TP Sets --
  166.     sets.TP.Ukonvasara.Restraint = set_combine(sets.TP.Ukonvasara,{})
  167.     sets.TP.Ukonvasara.MidACC.Restraint = set_combine(sets.TP.Ukonvasara.MidACC,{})
  168.     sets.TP.Ukonvasara.HighACC.Restraint = set_combine(sets.TP.Ukonvasara.HighACC,{})
  169.     sets.TP.Ukonvasara.MaxACC.Restraint = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  170.  
  171.     -- Ukonvasara(Ionis) TP Sets --
  172.     sets.TP.Ukonvasara.Ionis = set_combine(sets.TP.Ukonvasara,{})
  173.     sets.TP.Ukonvasara.MidACC.Ionis= set_combine(sets.TP.Ukonvasara.MidACC,{})
  174.     sets.TP.Ukonvasara.HighACC.Ionis = set_combine(sets.TP.Ukonvasara.HighACC,{})
  175.     sets.TP.Ukonvasara.MaxACC.Ionis = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  176.  
  177.     -- Ukonvasara(Restraint + Ionis) TP Sets --
  178.     sets.TP.Ukonvasara.Restraint.Ionis = set_combine(sets.TP.Ukonvasara,{})
  179.     sets.TP.Ukonvasara.MidACC.Restraint.Ionis = set_combine(sets.TP.Ukonvasara.MidACC,{})
  180.     sets.TP.Ukonvasara.HighACC.Restraint.Ionis = set_combine(sets.TP.Ukonvasara.HighACC,{})
  181.     sets.TP.Ukonvasara.MaxACC.Restraint.Ionis = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  182.  
  183.     -- Ukonvasara(SAM Roll) TP Sets --
  184.     sets.TP.Ukonvasara.STP = set_combine(sets.TP.Ukonvasara,{})
  185.     sets.TP.Ukonvasara.MidACC.STP = set_combine(sets.TP.Ukonvasara.MidACC,{})
  186.     sets.TP.Ukonvasara.HighACC.STP = set_combine(sets.TP.Ukonvasara.HighACC,{})
  187.     sets.TP.Ukonvasara.MaxACC.STP = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  188.  
  189.     -- Ukonvasara(Restraint + SAM Roll) TP Sets --
  190.     sets.TP.Ukonvasara.Restraint.STP = set_combine(sets.TP.Ukonvasara,{})
  191.     sets.TP.Ukonvasara.MidACC.Restraint.STP = set_combine(sets.TP.Ukonvasara.MidACC,{})
  192.     sets.TP.Ukonvasara.HighACC.Restraint.STP = set_combine(sets.TP.Ukonvasara.HighACC,{})
  193.     sets.TP.Ukonvasara.MaxACC.Restraint.STP = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  194.  
  195.     -- Ukonvasara(Ionis + SAM Roll) TP Sets --
  196.     sets.TP.Ukonvasara.Ionis.STP = set_combine(sets.TP.Ukonvasara,{})
  197.     sets.TP.Ukonvasara.MidACC.Ionis.STP = set_combine(sets.TP.Ukonvasara.MidACC,{})
  198.     sets.TP.Ukonvasara.HighACC.Ionis.STP = set_combine(sets.TP.Ukonvasara.HighACC,{})
  199.     sets.TP.Ukonvasara.MaxACC.Ionis.STP = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  200.  
  201.     -- Ukonvasara(Restraint + Ionis + SAM Roll) TP Sets --
  202.     sets.TP.Ukonvasara.Restraint.Ionis.STP = set_combine(sets.TP.Ukonvasara,{})
  203.     sets.TP.Ukonvasara.MidACC.Restraint.Ionis.STP = set_combine(sets.TP.Ukonvasara.MidACC,{})
  204.     sets.TP.Ukonvasara.HighACC.Restraint.Ionis.STP = set_combine(sets.TP.Ukonvasara.HighACC,{})
  205.     sets.TP.Ukonvasara.MaxACC.Restraint.Ionis.STP = set_combine(sets.TP.Ukonvasara.MaxACC,{})
  206.  
  207.     -- Ragnarok TP Sets --
  208.     sets.TP.Ragnarok = {}
  209.     sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{})
  210.     sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{})
  211.     sets.TP.Ragnarok.MaxACC = set_combine(sets.TP.Ragnarok.HighACC,{})
  212.  
  213.     -- Ragnarok(Restraint) TP Sets --
  214.     sets.TP.Ragnarok.Restraint = set_combine(sets.TP.Ragnarok,{})
  215.     sets.TP.Ragnarok.MidACC.Restraint = set_combine(sets.TP.Ragnarok.MidACC,{})
  216.     sets.TP.Ragnarok.HighACC.Restraint = set_combine(sets.TP.Ragnarok.HighACC,{})
  217.     sets.TP.Ragnarok.MaxACC.Restraint = set_combine(sets.TP.Ragnarok.MaxACC,{})
  218.  
  219.     -- Ragnarok(Ionis) TP Sets --
  220.     sets.TP.Ragnarok.Ionis = set_combine(sets.TP.Ragnarok,{})
  221.     sets.TP.Ragnarok.MidACC.Ionis = set_combine(sets.TP.Ragnarok.MidACC,{})
  222.     sets.TP.Ragnarok.HighACC.Ionis = set_combine(sets.TP.Ragnarok.HighACC,{})
  223.     sets.TP.Ragnarok.MaxACC.Ionis = set_combine(sets.TP.Ragnarok.MaxACC,{})
  224.  
  225.     -- Ragnarok(Restraint + Ionis) TP Sets --
  226.     sets.TP.Ragnarok.Restraint.Ionis = set_combine(sets.TP.Ragnarok,{})
  227.     sets.TP.Ragnarok.MidACC.Restraint.Ionis = set_combine(sets.TP.Ragnarok.MidACC,{})
  228.     sets.TP.Ragnarok.HighACC.Restraint.Ionis = set_combine(sets.TP.Ragnarok.HighACC,{})
  229.     sets.TP.Ragnarok.MaxACC.Restraint.Ionis = set_combine(sets.TP.Ragnarok.MaxACC,{})
  230.  
  231.     -- Ragnarok(SAM Roll) TP Sets --
  232.     sets.TP.Ragnarok.STP = set_combine(sets.TP.Ragnarok,{})
  233.     sets.TP.Ragnarok.MidACC.STP = set_combine(sets.TP.Ragnarok.MidACC,{})
  234.     sets.TP.Ragnarok.HighACC.STP = set_combine(sets.TP.Ragnarok.HighACC,{})
  235.     sets.TP.Ragnarok.MaxACC.STP = set_combine(sets.TP.Ragnarok.MaxACC,{})
  236.  
  237.     -- Ragnarok(Restraint + SAM Roll) TP Sets --
  238.     sets.TP.Ragnarok.Restraint.STP = set_combine(sets.TP.Ragnarok,{})
  239.     sets.TP.Ragnarok.MidACC.Restraint.STP = set_combine(sets.TP.Ragnarok.MidACC,{})
  240.     sets.TP.Ragnarok.HighACC.Restraint.STP = set_combine(sets.TP.Ragnarok.HighACC,{})
  241.     sets.TP.Ragnarok.MaxACC.Restraint.STP = set_combine(sets.TP.Ragnarok.MaxACC,{})
  242.  
  243.     -- Ragnarok(Ionis + SAM Roll) TP Sets --
  244.     sets.TP.Ragnarok.Ionis.STP = set_combine(sets.TP.Ragnarok,{})
  245.     sets.TP.Ragnarok.MidACC.Ionis.STP = set_combine(sets.TP.Ragnarok.MidACC,{})
  246.     sets.TP.Ragnarok.HighACC.Ionis.STP = set_combine(sets.TP.Ragnarok.HighACC,{})
  247.     sets.TP.Ragnarok.MaxACC.Ionis.STP = set_combine(sets.TP.Ragnarok.MaxACC,{})
  248.  
  249.     -- Ragnarok(Restraint + Ionis + SAM Roll) TP Sets --
  250.     sets.TP.Ragnarok.Restraint.Ionis.STP = set_combine(sets.TP.Ragnarok,{})
  251.     sets.TP.Ragnarok.MidACC.Restraint.Ionis.STP = set_combine(sets.TP.Ragnarok.MidACC,{})
  252.     sets.TP.Ragnarok.HighACC.Restraint.Ionis.STP = set_combine(sets.TP.Ragnarok.HighACC,{})
  253.     sets.TP.Ragnarok.MaxACC.Restraint.Ionis.STP = set_combine(sets.TP.Ragnarok.MaxACC,{})
  254.  
  255.     -- Bravura(AM Down) TP Sets --
  256.     sets.TP.Bravura = {}
  257.     sets.TP.Bravura.MidACC = set_combine(sets.TP.Bravura,{})
  258.     sets.TP.Bravura.HighACC = set_combine(sets.TP.Bravura.MidACC,{})
  259.     sets.TP.Bravura.MaxACC = set_combine(sets.TP.Bravura.HighACC,{})
  260.  
  261.     -- Bravura(AM Up) TP Sets --
  262.     sets.TP.Bravura.AM = set_combine(sets.TP.Bravura,{})
  263.     sets.TP.Bravura.MidACC.AM = set_combine(sets.TP.Bravura.MidACC,{})
  264.     sets.TP.Bravura.HighACC.AM = set_combine(sets.TP.Bravura.HighACC,{})
  265.     sets.TP.Bravura.MaxACC.AM = set_combine(sets.TP.Bravura.MaxACC,{})
  266.  
  267.     -- Bravura(AM Down: Restraint) TP Sets --
  268.     sets.TP.Bravura.Restraint = set_combine(sets.TP.Bravura,{})
  269.     sets.TP.Bravura.MidACC.Restraint = set_combine(sets.TP.Bravura.MidACC,{})
  270.     sets.TP.Bravura.HighACC.Restraint = set_combine(sets.TP.Bravura.HighACC,{})
  271.     sets.TP.Bravura.MaxACC.Restraint = set_combine(sets.TP.Bravura.MaxACC,{})
  272.  
  273.     -- Bravura(AM Up: Restraint) TP Sets --
  274.     sets.TP.Bravura.AM.Restraint = set_combine(sets.TP.Bravura.AM,{})
  275.     sets.TP.Bravura.MidACC.AM.Restraint = set_combine(sets.TP.Bravura.MidACC.AM,{})
  276.     sets.TP.Bravura.HighACC.AM.Restraint = set_combine(sets.TP.Bravura.HighACC.AM,{})
  277.     sets.TP.Bravura.MaxACC.AM.Restraint = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  278.  
  279.     -- Bravura(AM Down: Ionis) TP Sets --
  280.     sets.TP.Bravura.Ionis = set_combine(sets.TP.Bravura,{})
  281.     sets.TP.Bravura.MidACC.Ionis = set_combine(sets.TP.Bravura.MidACC,{})
  282.     sets.TP.Bravura.HighACC.Ionis = set_combine(sets.TP.Bravura.HighACC,{})
  283.     sets.TP.Bravura.MaxACC.Ionis = set_combine(sets.TP.Bravura.MaxACC,{})
  284.  
  285.     -- Bravura(AM Up: Ionis) TP Sets --
  286.     sets.TP.Bravura.AM.Ionis = set_combine(sets.TP.Bravura.AM,{})
  287.     sets.TP.Bravura.MidACC.AM.Ionis = set_combine(sets.TP.Bravura.MidACC.AM,{})
  288.     sets.TP.Bravura.HighACC.AM.Ionis = set_combine(sets.TP.Bravura.HighACC.AM,{})
  289.     sets.TP.Bravura.MaxACC.AM.Ionis = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  290.  
  291.     -- Bravura(AM Down: Restraint + Ionis) TP Sets --
  292.     sets.TP.Bravura.Restraint.Ionis = set_combine(sets.TP.Bravura,{})
  293.     sets.TP.Bravura.MidACC.Restraint.Ionis = set_combine(sets.TP.Bravura.MidACC,{})
  294.     sets.TP.Bravura.HighACC.Restraint.Ionis = set_combine(sets.TP.Bravura.HighACC,{})
  295.     sets.TP.Bravura.MaxACC.Restraint.Ionis = set_combine(sets.TP.Bravura.MaxACC,{})
  296.  
  297.     -- Bravura(AM Up: Restraint + Ionis) TP Sets --
  298.     sets.TP.Bravura.AM.Restraint.Ionis = set_combine(sets.TP.Bravura.AM,{})
  299.     sets.TP.Bravura.MidACC.AM.Restraint.Ionis = set_combine(sets.TP.Bravura.MidACC.AM,{})
  300.     sets.TP.Bravura.HighACC.AM.Restraint.Ionis = set_combine(sets.TP.Bravura.HighACC.AM,{})
  301.     sets.TP.Bravura.MaxACC.AM.Restraint.Ionis = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  302.  
  303.     -- Bravura(AM Down: SAM Roll) TP Sets --
  304.     sets.TP.Bravura.STP = set_combine(sets.TP.Bravura,{})
  305.     sets.TP.Bravura.MidACC.STP = set_combine(sets.TP.Bravura.MidACC,{})
  306.     sets.TP.Bravura.HighACC.STP = set_combine(sets.TP.Bravura.HighACC,{})
  307.     sets.TP.Bravura.MaxACC.STP = set_combine(sets.TP.Bravura.MaxACC,{})
  308.  
  309.     -- Bravura(AM Up: SAM Roll) TP Sets --
  310.     sets.TP.Bravura.AM.STP = set_combine(sets.TP.Bravura.AM,{})
  311.     sets.TP.Bravura.MidACC.AM.STP = set_combine(sets.TP.Bravura.MidACC.AM,{})
  312.     sets.TP.Bravura.HighACC.AM.STP = set_combine(sets.TP.Bravura.HighACC.AM,{})
  313.     sets.TP.Bravura.MaxACC.AM.STP = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  314.  
  315.     -- Bravura(AM Down: Restraint + SAM Roll) TP Sets --
  316.     sets.TP.Bravura.Restraint.STP = set_combine(sets.TP.Bravura,{})
  317.     sets.TP.Bravura.MidACC.Restraint.STP = set_combine(sets.TP.Bravura.MidACC,{})
  318.     sets.TP.Bravura.HighACC.Restraint.STP = set_combine(sets.TP.Bravura.HighACC,{})
  319.     sets.TP.Bravura.MaxACC.Restraint.STP = set_combine(sets.TP.Bravura.MaxACC,{})
  320.  
  321.     -- Bravura(AM Up: Restraint + SAM Roll) TP Sets --
  322.     sets.TP.Bravura.AM.Restraint.STP = set_combine(sets.TP.Bravura.AM,{})
  323.     sets.TP.Bravura.MidACC.AM.Restraint.STP = set_combine(sets.TP.Bravura.MidACC.AM,{})
  324.     sets.TP.Bravura.HighACC.AM.Restraint.STP = set_combine(sets.TP.Bravura.HighACC.AM,{})
  325.     sets.TP.Bravura.MaxACC.AM.Restraint.STP = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  326.  
  327.     -- Bravura(AM Down: Ionis + SAM Roll) TP Sets --
  328.     sets.TP.Bravura.Ionis.STP = set_combine(sets.TP.Bravura,{})
  329.     sets.TP.Bravura.MidACC.Ionis.STP = set_combine(sets.TP.Bravura.MidACC,{})
  330.     sets.TP.Bravura.HighACC.Ionis.STP = set_combine(sets.TP.Bravura.HighACC,{})
  331.     sets.TP.Bravura.MaxACC.Ionis.STP = set_combine(sets.TP.Bravura.MaxACC,{})
  332.  
  333.     -- Bravura(AM Up: Ionis + SAM Roll) TP Sets --
  334.     sets.TP.Bravura.AM.Ionis.STP = set_combine(sets.TP.Bravura.AM,{})
  335.     sets.TP.Bravura.MidACC.AM.Ionis.STP = set_combine(sets.TP.Bravura.MidACC.AM,{})
  336.     sets.TP.Bravura.HighACC.AM.Ionis.STP = set_combine(sets.TP.Bravura.HighACC.AM,{})
  337.     sets.TP.Bravura.MaxACC.AM.Ionis.STP = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  338.  
  339.     -- Bravura(AM Down: Restraint + Ionis + SAM Roll) TP Sets --
  340.     sets.TP.Bravura.Restraint.Ionis.STP = set_combine(sets.TP.Bravura,{})
  341.     sets.TP.Bravura.MidACC.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.MidACC,{})
  342.     sets.TP.Bravura.HighACC.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.HighACC,{})
  343.     sets.TP.Bravura.MaxACC.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.MaxACC,{})
  344.  
  345.     -- Bravura(AM Up: Restraint + Ionis + SAM Roll) TP Sets --
  346.     sets.TP.Bravura.AM.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.AM,{})
  347.     sets.TP.Bravura.MidACC.AM.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.MidACC.AM,{})
  348.     sets.TP.Bravura.HighACC.AM.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.HighACC.AM,{})
  349.     sets.TP.Bravura.MaxACC.AM.Restraint.Ionis.STP = set_combine(sets.TP.Bravura.MaxACC.AM,{})
  350.  
  351.     -- Mighty Strikes TP Set --
  352.     sets.TP.MS = {}
  353.  
  354.     -- Retaliation Set --
  355.     sets.TP.Retaliation = {hands="Pumm. Mufflers +1",feet="Boii Calligae +1"}
  356.  
  357.     -- AM3 Rancor ON Mantle --
  358.     sets.TP.Rancor = {back="Rancorous Mantle"}
  359.  
  360.     -- PDT/MDT Sets --
  361.     sets.PDT = {}
  362.  
  363.     sets.MDT = set_combine(sets.PDT,{})
  364.  
  365.     -- Hybrid/Kiting Sets --
  366.     sets.TP.Hybrid = set_combine(sets.PDT,{})
  367.     sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  368.     sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  369.     sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{})
  370.  
  371.     sets.Kiting = set_combine(sets.PDT,{feet="Hermes' Sandals +1"})
  372.  
  373.     -- WS Base Set --
  374.     sets.WS = {}
  375.  
  376.     -- Upheaval Sets --
  377.     sets.WS.Upheaval = {}
  378.     sets.WS.Upheaval.MidACC = set_combine(sets.WS.Upheaval,{})
  379.     sets.WS.Upheaval.HighACC = set_combine(sets.WS.Upheaval.MidACC,{})
  380.     sets.WS.Upheaval.MaxACC = set_combine(sets.WS.Upheaval.HighACC,{})
  381.  
  382.     -- Upheaval(Attack) Set --
  383.     sets.WS.Upheaval.ATT = set_combine(sets.WS.Upheaval,{})
  384.  
  385.     -- Ukko's Fury Sets --
  386.     sets.WS["Ukko's Fury"] = {}
  387.     sets.WS["Ukko's Fury"].MidACC = set_combine(sets.WS["Ukko's Fury"],{})
  388.     sets.WS["Ukko's Fury"].HighACC = set_combine(sets.WS["Ukko's Fury"].MidACC,{})
  389.     sets.WS["Ukko's Fury"].MaxACC = set_combine(sets.WS["Ukko's Fury"].HighACC,{})
  390.  
  391.     -- Ukko's Fury(Attack) Set --
  392.     sets.WS["Ukko's Fury"].ATT = set_combine(sets.WS["Ukko's Fury"],{})
  393.  
  394.     -- King's Justice Sets --
  395.     sets.WS["King's Justice"] = {}
  396.     sets.WS["King's Justice"].MidACC  = set_combine(sets.WS["King's Justice"],{})
  397.     sets.WS["King's Justice"].HighACC = set_combine(sets.WS["King's Justice"].MidACC,{})
  398.     sets.WS["King's Justice"].MaxACC = set_combine(sets.WS["King's Justice"].HighACC,{})
  399.  
  400.     -- Fell Cleave Set --
  401.     sets.WS["Fell Cleave"] = {}
  402.  
  403.     -- Mighty Strikes WS Set --
  404.     sets.MS_WS = {}
  405.  
  406.     -- JA Sets --
  407.     sets.JA = {}
  408.     sets.JA.Berserk = {body="Pumm. Lorica +1",feet="Agoge Calligae +1"}
  409.     sets.JA.Aggressor = {head="Pumm. Mask +1",body="Agoge Lorica +1"}
  410.     sets.JA["Blood Rage"] = {body="Boii Lorica +1"}
  411.     sets.JA.Warcry = {head="Agoge Mask +1"}
  412.     sets.JA.Tomahawk = {ammo="Thr. Tomahawk",feet="Agoge Calligae +1"}
  413.     sets.JA["Mighty Strikes"] = {hands="Agoge Mufflers +1"}
  414.  
  415.     -- Waltz Set --
  416.     sets.Waltz = {}
  417.  
  418.     sets.Precast = {}
  419.     -- Fastcast Set --
  420.     sets.Precast.FastCast = {}
  421.  
  422.     sets.Midcast = {}
  423.     -- Magic Haste Set --
  424.     sets.Midcast.Haste = set_combine(sets.PDT,{})
  425. end
  426.  
  427. function pretarget(spell,action)
  428.     if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  429.         cancel_spell()
  430.         send_command('input /item "Echo Drops" <me>')
  431.     elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  432.         cancel_spell()
  433.         send_command('Aggressor')
  434.     elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  435.         cancel_spell()
  436.         send_command('ThirdEye')
  437.     elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  438.         cancel_spell()
  439.         add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  440.     elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
  441.         if spell.english ~= 'Bora Axe' and spell.name ~= 'Mistral Axe' and spell.target.distance > target_distance then -- Cancel WS If You Are Out Of Range --
  442.             cancel_spell()
  443.             add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  444.             return
  445.         end
  446.     end
  447. end
  448.  
  449. function precast(spell,action)
  450.     if spell.type == "WeaponSkill" then
  451.         if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  452.             cancel_spell()
  453.             add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  454.             return
  455.         else
  456.             equipSet = sets.WS
  457.             if equipSet[spell.english] then
  458.                 equipSet = equipSet[spell.english]
  459.             end
  460.             if Attack == 'ON' then
  461.                 equipSet = equipSet["ATT"]
  462.             end
  463.             if equipSet[AccArray[AccIndex]] then
  464.                 equipSet = equipSet[AccArray[AccIndex]]
  465.             end
  466.             if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
  467.                 equipSet = set_combine(equipSet,elements.equip)
  468.             end
  469.             if buffactive["Mighty Strikes"] then -- Equip MS_WS Set When You Have Mighty Strikes On --
  470.                 equipSet = set_combine(equipSet,sets.MS_WS)
  471.             end
  472.             if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  473.                 equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  474.             end
  475.             if (spell.english == "Ukko's Fury" or spell.english == "King's Justice") and (player.tp > 2990 or buffactive.Sekkanoki) then
  476.                 if world.time <= (7*60) or world.time >= (17*60) then -- 3000 TP or Sekkanoki: Equip Lugra Earring +1 From Dusk To Dawn --
  477.                     equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
  478.                 else
  479.                     equipSet = set_combine(equipSet,{ear1="Kokou's Earring"}) -- 3000 TP or Sekkanoki: Equip Kokou's Earring --
  480.                 end
  481.             end
  482.             if spell.english == "Upheaval" then
  483.                 if world.day_element == 'Dark' then -- Equip Shadow Mantle On Darksday --
  484.                     equipSet = set_combine(equipSet,{back="Shadow Mantle"})
  485.                 end
  486.                 if player.tp > 2990 or buffactive.Sekkanoki then
  487.                     if world.time <= (7*60) or world.time >= (17*60) then -- 3000 TP or Sekkanoki: Equip Lugra Earring +1 From Dusk To Dawn --
  488.                         equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
  489.                     else
  490.                         equipSet = set_combine(equipSet,{ear1="Terra's Pearl"}) -- 3000 TP or Sekkanoki: Equip Terra's Earring --
  491.                     end
  492.                 end
  493.             end
  494.             equip(equipSet)
  495.         end
  496.     elseif spell.type == "JobAbility" then
  497.         if sets.JA[spell.english] then
  498.             equip(sets.JA[spell.english])
  499.         end
  500.     elseif spell.action_type == 'Magic' then
  501.         if spell.english == 'Utsusemi: Ni' then
  502.             if buffactive['Copy Image (3)'] then
  503.                 cancel_spell()
  504.                 add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  505.                 return
  506.             else
  507.                 equip(sets.Precast.FastCast)
  508.             end
  509.         else
  510.             equip(sets.Precast.FastCast)
  511.         end
  512.     elseif spell.type == "Waltz" then
  513.         refine_waltz(spell,action)
  514.         equip(sets.Waltz)
  515.     elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  516.         cast_delay(0.2)
  517.         send_command('cancel Sneak')
  518.     end
  519.     if Twilight == 'Twilight' then
  520.         equip(sets.Twilight)
  521.     end
  522. end
  523.  
  524. function midcast(spell,action)
  525.     if spell.action_type == 'Magic' then
  526.         if spell.english:startswith('Utsusemi') then
  527.             if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then -- Cancel Copy Image 1, 2 & 3 For Utsusemi: Ichi --
  528.                 send_command('@wait 1.7;cancel Copy Image*')
  529.             end
  530.             equip(sets.Midcast.Haste)
  531.         elseif spell.english == 'Monomi: Ichi' then -- Cancel Sneak --
  532.             if buffactive['Sneak'] then
  533.                 send_command('@wait 1.7;cancel sneak')
  534.             end
  535.             equip(sets.Midcast.Haste)
  536.         else
  537.             equip(sets.Midcast.Haste)
  538.         end
  539.     end
  540. end
  541.  
  542. function aftercast(spell,action)
  543.     if not spell.interrupted then
  544.         if spell.type == "WeaponSkill" then
  545.             send_command('wait 0.2;gs c TP')
  546.         elseif spell.english == "Blood Rage" then -- Blood Rage Timer/Countdown --
  547.             timer_blood_rage()
  548.             send_command('wait 50;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  549.         elseif spell.english == "Tomahawk" then -- Tomahawk Timer/Countdown --
  550.             timer_tomahawk()
  551.             send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Tomahawk";input /echo '..spell.name..': [OFF]')
  552.         end
  553.     end
  554.     status_change(player.status)
  555. end
  556.  
  557. function status_change(new,old)
  558.     check_equip_lock()
  559.     if Armor == 'PDT' then
  560.         equip(sets.PDT)
  561.     elseif Armor == 'MDT' then
  562.         equip(sets.MDT)
  563.     elseif Armor == 'Kiting' then
  564.         equip(sets.Kiting)
  565.     elseif new == 'Engaged' then
  566.         equipSet = sets.TP
  567.         if Armor == 'Hybrid' and equipSet["Hybrid"] then
  568.             equipSet = equipSet["Hybrid"]
  569.         end
  570.         if equipSet[WeaponArray[WeaponIndex]] then
  571.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  572.         end
  573.         if equipSet[AccArray[AccIndex]] then
  574.             equipSet = equipSet[AccArray[AccIndex]]
  575.         end
  576.         if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  577.             if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
  578.                 equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
  579.             else -- Use Rancor Toggle For Atheling Mantle --
  580.                 equipSet = equipSet["AM3"]
  581.             end
  582.         end
  583.         if buffactive.Aftermath and equipSet["AM"] then
  584.             equipSet = equipSet["AM"]
  585.         end
  586.         if buffactive.Restraint and equipSet["Restraint"] then -- Restraint TP Set --
  587.             equipSet = equipSet["Restraint"]
  588.         end
  589.         if buffactive.Ionis and equipSet["Ionis"] then -- Ionis TP Set --
  590.             equipSet = equipSet["Ionis"]
  591.         end
  592.         if buffactive["Mighty Strikes"] then -- Mighty Strikes TP Set --
  593.             equipSet = set_combine(equipSet,sets.TP.MS)
  594.         end
  595.         if buffactive.Retaliation and Retaliation == 'ON' then -- Use Retaliation Toggle For Retaliation TP Set --
  596.             equipSet = set_combine(equipSet,sets.TP.Retaliation)
  597.         end
  598.         equip(equipSet)
  599.     else
  600.         equipSet = sets.Idle
  601.         if equipSet[IdleArray[IdleIndex]] then
  602.             equipSet = equipSet[IdleArray[IdleIndex]]
  603.         end
  604.         if equipSet[WeaponArray[WeaponIndex]] then
  605.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  606.         end
  607.         if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  608.             equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  609.         end
  610.         if world.area:endswith('Adoulin') then
  611.             equipSet = set_combine(equipSet,{body="Councilor's Garb"})
  612.         end
  613.         equip(equipSet)
  614.     end
  615.     if Twilight == 'Twilight' then
  616.         equip(sets.Twilight)
  617.     end
  618. end
  619.  
  620. function buff_change(buff,gain)
  621.     buff = string.lower(buff)
  622.     if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  623.         if gain then
  624.             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.]')
  625.         else
  626.             send_command('timers delete "Aftermath: Lv.3"')
  627.             add_to_chat(123,'AM3: [OFF]')
  628.         end
  629.     elseif buff == "blood rage" and not gain then
  630.         send_command('timers delete "Blood Rage"')
  631.     elseif buff == 'weakness' then -- Weakness Timer --
  632.         if gain then
  633.             send_command('timers create "Weakness" 300 up')
  634.         else
  635.             send_command('timers delete "Weakness"')
  636.         end
  637.     end
  638.     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 --
  639.         equip({neck="Berserker's Torque"})
  640.     else
  641.         if not midaction() then
  642.             status_change(player.status)
  643.         end
  644.     end
  645. end
  646.  
  647. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  648. function self_command(command)
  649.     if command == 'C1' then -- Accuracy Toggle --
  650.         AccIndex = (AccIndex % #AccArray) + 1
  651.         add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  652.         status_change(player.status)
  653.     elseif command == 'C17' then -- Main Weapon Toggle --
  654.         WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  655.         add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
  656.         status_change(player.status)
  657.     elseif command == 'C5' then -- Auto Update Gear Toggle --
  658.         status_change(player.status)
  659.         add_to_chat(158,'Auto Update Gear')
  660.     elseif command == 'C2' then -- Hybrid Toggle --
  661.         if Armor == 'Hybrid' then
  662.             Armor = 'None'
  663.             add_to_chat(123,'Hybrid Set: [Unlocked]')
  664.         else
  665.             Armor = 'Hybrid'
  666.             add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  667.         end
  668.         status_change(player.status)
  669.     elseif command == 'C7' then -- PDT Toggle --
  670.         if Armor == 'PDT' then
  671.             Armor = 'None'
  672.             add_to_chat(123,'PDT Set: [Unlocked]')
  673.         else
  674.             Armor = 'PDT'
  675.             add_to_chat(158,'PDT Set: [Locked]')
  676.         end
  677.         status_change(player.status)
  678.     elseif command == 'C15' then -- MDT Toggle --
  679.         if Armor == 'MDT' then
  680.             Armor = 'None'
  681.             add_to_chat(123,'MDT Set: [Unlocked]')
  682.         else
  683.             Armor = 'MDT'
  684.             add_to_chat(158,'MDT Set: [Locked]')
  685.         end
  686.         status_change(player.status)
  687.     elseif command == 'C12' then -- Kiting Toggle --
  688.         if Armor == 'Kiting' then
  689.             Armor = 'None'
  690.             add_to_chat(123,'Kiting Set: [Unlocked]')
  691.         else
  692.             Armor = 'Kiting'
  693.             add_to_chat(158,'Kiting Set: [Locked]')
  694.         end
  695.         status_change(player.status)
  696.     elseif command == 'C10' then -- Retaliation Toggle --
  697.         if Retaliation == 'ON' then
  698.             Retaliation = 'OFF'
  699.             add_to_chat(123,'Retaliation Set: [Unlocked]')
  700.         else
  701.             Retaliation = 'ON'
  702.             add_to_chat(158,'Retaliation Set: [Locked]')
  703.         end
  704.         status_change(player.status)
  705.     elseif command == 'C16' then -- Rancor Toggle --
  706.         if Rancor == 'ON' then
  707.             Rancor = 'OFF'
  708.             add_to_chat(123,'Rancor: [OFF]')
  709.         else
  710.             Rancor = 'ON'
  711.             add_to_chat(158,'Rancor: [ON]')
  712.         end
  713.         status_change(player.status)
  714.     elseif command == 'C18' then -- SAM Roll Toggle --
  715.         if Samurai_Roll == 'ON' then
  716.             Samurai_Roll = 'OFF'
  717.             add_to_chat(123,'SAM Roll: [OFF]')
  718.         else
  719.             Samurai_Roll = 'ON'
  720.             add_to_chat(158,'SAM Roll: [ON]')
  721.         end
  722.         status_change(player.status)
  723.     elseif command == 'C9' then -- Attack Toggle --
  724.         if Attack == 'ON' then
  725.             Attack = 'OFF'
  726.             add_to_chat(123,'Attack: [OFF]')
  727.         else
  728.             Attack = 'ON'
  729.             add_to_chat(158,'Attack: [ON]')
  730.         end
  731.         status_change(player.status)
  732.     elseif command == 'C3' then -- Twilight Toggle --
  733.         if Twilight == 'Twilight' then
  734.             Twilight = 'None'
  735.             add_to_chat(123,'Twilight Set: [Unlocked]')
  736.         else
  737.             Twilight = 'Twilight'
  738.             add_to_chat(158,'Twilight Set: [locked]')
  739.         end
  740.         status_change(player.status)
  741.     elseif command == 'C8' then -- Distance Toggle --
  742.         if player.target.distance then
  743.             target_distance = math.floor(player.target.distance*10)/10
  744.             add_to_chat(158,'Distance: '..target_distance)
  745.         else
  746.             add_to_chat(123,'No Target Selected')
  747.         end
  748.     elseif command == 'C6' then -- Idle Toggle --
  749.         IdleIndex = (IdleIndex % #IdleArray) + 1
  750.         add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  751.         status_change(player.status)
  752.     elseif command == 'TP' then
  753.         add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  754.     elseif command:match('^SC%d$') then
  755.         send_command('//' .. sc_map[command])
  756.     end
  757. end
  758.  
  759. function check_equip_lock() -- Lock Equipment Here --
  760.     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
  761.         disable('ring1','ring2')
  762.     elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
  763.         disable('back')
  764.     else
  765.         enable('ring1','ring2','back')
  766.     end
  767. end
  768.  
  769. function timer_blood_rage()
  770.     local duration = 60
  771.     send_command('timers create "Blood Rage" '..tostring(duration)..' down')
  772. end
  773.  
  774. function timer_tomahawk()
  775.     local duration = 90
  776.     send_command('timers create "Tomahawk" '..tostring(duration)..' down')
  777. end
  778.  
  779. function refine_waltz(spell,action)
  780.     if spell.type ~= 'Waltz' then
  781.         return
  782.     end
  783.  
  784.     if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  785.         return
  786.     end
  787.  
  788.     local newWaltz = spell.english
  789.     local waltzID
  790.  
  791.     local missingHP
  792.  
  793.     if spell.target.type == "SELF" then
  794.         missingHP = player.max_hp - player.hp
  795.     elseif spell.target.isallymember then
  796.         local target = find_player_in_alliance(spell.target.name)
  797.         local est_max_hp = target.hp / (target.hpp/100)
  798.         missingHP = math.floor(est_max_hp - target.hp)
  799.     end
  800.  
  801.     if missingHP ~= nil then
  802.         if player.sub_job == 'DNC' then
  803.             if missingHP < 40 and spell.target.name == player.name then
  804.                 add_to_chat(8,'Full HP!')
  805.                 cancel_spell()
  806.                 return
  807.             elseif missingHP < 150 then
  808.                 newWaltz = 'Curing Waltz'
  809.                 waltzID = 190
  810.             elseif missingHP < 300 then
  811.                 newWaltz = 'Curing Waltz II'
  812.                 waltzID = 191
  813.             else
  814.                 newWaltz = 'Curing Waltz III'
  815.                 waltzID = 192
  816.             end
  817.         else
  818.             return
  819.         end
  820.     end
  821.  
  822.     local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
  823.     local tpCost = waltzTPCost[newWaltz]
  824.  
  825.     local downgrade
  826.  
  827.     if player.tp < tpCost and not buffactive.trance then
  828.  
  829.         if player.tp < 20 then
  830.             add_to_chat(8, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  831.             cancel_spell()
  832.             return
  833.         elseif player.tp < 35 then
  834.             newWaltz = 'Curing Waltz'
  835.         elseif player.tp < 50 then
  836.             newWaltz = 'Curing Waltz II'
  837.         end
  838.  
  839.         downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  840.     end
  841.  
  842.     if newWaltz ~= spell.english then
  843.         send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  844.         if downgrade then
  845.             add_to_chat(158, downgrade)
  846.         end
  847.         cancel_spell()
  848.         return
  849.     end
  850.  
  851.     if missingHP > 0 then
  852.         add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  853.     end
  854. end
  855.  
  856. function find_player_in_alliance(name)
  857.     for i,v in ipairs(alliance) do
  858.         for k,p in ipairs(v) do
  859.             if p.name == name then
  860.                 return p
  861.             end
  862.         end
  863.     end
  864. end
  865.  
  866. function sub_job_change(newSubjob, oldSubjob)
  867.     select_default_macro_book()
  868. end
  869.  
  870. function set_macro_page(set,book)
  871.     if not tonumber(set) then
  872.         add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  873.         return
  874.     end
  875.     if set < 1 or set > 10 then
  876.         add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  877.         return
  878.     end
  879.  
  880.     if book then
  881.         if not tonumber(book) then
  882.             add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  883.             return
  884.         end
  885.         if book < 1 or book > 20 then
  886.             add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  887.             return
  888.         end
  889.         send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  890.     else
  891.         send_command('@input /macro set '..tostring(set))
  892.     end
  893. end
  894.  
  895. function select_default_macro_book()
  896.     -- Default macro set/book
  897.     if player.sub_job == 'SAM' then
  898.         set_macro_page(1, 15)
  899.     elseif player.sub_job == 'DNC' then
  900.         set_macro_page(3, 15)
  901.     elseif player.sub_job == 'NIN' then
  902.         set_macro_page(10, 15)
  903.     else
  904.         set_macro_page(1, 15)
  905.     end
  906. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement