backstab

WAR.LUA

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