Bokura

Bokura_SAM

Jan 22nd, 2014
4,202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 45.09 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Motenten's Macro Book Function ** --
  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. Can Delete Lentus If You Don't Need It. --
  7.     WeaponIndex = 1
  8.     WeaponArray = {"Kogarasumaru","Tsurumaru","Amanomurakumo","Masamune"} -- Default TP Set Is Kogarasumaru. 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.     TypeIndex = 1
  12.     Armor = 'None'
  13.     Twilight = 'None'
  14.     warning = false
  15.     Attack = 'OFF' -- Set Default WS Attack Set ON or OFF Here --
  16.     Seigan = 'ON' -- Set Default Seigan Set ON or OFF Here --
  17.     Third_Eye = 'ON' -- Set Default Third Eye Set ON or OFF Here --
  18.     Samurai_Roll = 'ON' -- Set Default SAM Roll ON or OFF Here --
  19.     ammo_warning_limit = 10 -- Set Ammo Limit Check Here --
  20.     target_distance = 5 -- Set Default Distance Here --
  21.     select_default_macro_book() -- Change Default Macro Book At The End --
  22.  
  23.     -- Gavialis Helm --
  24.     elements = {}
  25.     elements.equip = {head="Gavialis Helm"}
  26.     elements["Tachi: Shoha"] = S{"Lightning","Dark","Wind"}
  27.     elements["Tachi: Fudo"] = S{"Light","Ice","Water","Wind","Fire","Lightning"}
  28.     elements["Tachi: Rana"] = S{"Dark","Earth","Ice"}
  29.     elements["Tachi: Ageha"] = S{"Dark","Earth"}
  30.     elements["Tachi: Kasha"] = S{"Fire","Light","Dark"}
  31.     elements["Tachi: Gekko"] = S{"Water","Ice"}
  32.  
  33.     sc_map = {SC1="TachiFudo", SC2="TachiRana", SC3="NamasArrow"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  34.  
  35.     sets.Idle = {}
  36.     -- Idle/Town Sets --
  37.     sets.Idle.Regen = {
  38.             head="Twilight Helm",
  39.             neck="Wiglen Gorget",
  40.             ear1="Sanare Earring",
  41.             ear2="Dawn Earring",
  42.             body="Kumarbi's Akar",
  43.             hands="Otronif Gloves +1",
  44.             ring1="Sheltered Ring",
  45.             ring2="Paguroidea Ring",
  46.             back="Repulse Mantle",
  47.             waist="Lycopodium Sash",
  48.             legs="Otronif Brais +1",
  49.             feet="Danzo Sune-Ate"}
  50.     sets.Idle.Regen.Kogarasumaru = set_combine(sets.Idle.Regen,{
  51.             main="Kogarasumaru",
  52.             sub="Bloodrain Strap",
  53.             range="Cibitshavore",
  54.             ammo="Eminent Arrow"})
  55.     sets.Idle.Regen.Tsurumaru = set_combine(sets.Idle.Regen,{
  56.             main="Tsurumaru",
  57.             sub="Bloodrain Strap",
  58.             range="Yoichinoyumi",
  59.             ammo="Eminent Arrow"})
  60.     sets.Idle.Regen.Amanomurakumo = set_combine(sets.Idle.Regen,{
  61.             main="Amanomurakumo",
  62.             sub="Bloodrain Strap",
  63.             range="Cibitshavore",
  64.             ammo="Eminent Arrow"})
  65.     sets.Idle.Regen.Masamune = set_combine(sets.Idle.Regen,{
  66.             main="Masamune",
  67.             sub="Bloodrain Strap",
  68.             range="Cibitshavore",
  69.             ammo="Eminent Arrow"})
  70.  
  71.     sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  72.             head="Otomi Helm",
  73.             neck="Ganesha's Mala",
  74.             ear1="Trux Earring",
  75.             ear2="Brutal Earring",
  76.             body="Tartarus Platemail",
  77.             ring1="Defending Ring",
  78.             ring2="Patricius Ring"})
  79.     sets.Idle.Movement.Kogarasumaru = set_combine(sets.Idle.Movement,{
  80.             main="Kogarasumaru",
  81.             sub="Bloodrain Strap",
  82.             range="Cibitshavore",
  83.             ammo="Eminent Arrow"})
  84.     sets.Idle.Movement.Tsurumaru = set_combine(sets.Idle.Movement,{
  85.             main="Tsurumaru",
  86.             sub="Bloodrain Strap",
  87.             range="Yoichinoyumi",
  88.             ammo="Eminent Arrow"})
  89.     sets.Idle.Movement.Amanomurakumo = set_combine(sets.Idle.Movement,{
  90.             main="Amanomurakumo",
  91.             sub="Bloodrain Strap",
  92.             range="Cibitshavore",
  93.             ammo="Eminent Arrow"})
  94.     sets.Idle.Movement.Masamune = set_combine(sets.Idle.Movement,{
  95.             main="Masamune",
  96.             sub="Bloodrain Strap",
  97.             range="Cibitshavore",
  98.             ammo="Eminent Arrow"})
  99.  
  100.     sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  101.  
  102.     -- Preshot Set --
  103.     sets.Preshot = {}
  104.  
  105.     -- Midshot Sets --
  106.     sets.Midshot = {}
  107.     sets.Midshot.MidACC = set_combine(sets.Midshot,{})
  108.     sets.Midshot.HighACC = set_combine(sets.Midshot.MidACC,{})
  109.     sets.Midshot.MaxACC = set_combine(sets.Midshot.HighACC,{})
  110.  
  111.     -- TP Base Set --
  112.     sets.TP = {}
  113.  
  114.     -- Kogarasumaru(AM3 Down) TP Sets --
  115.     sets.TP.Kogarasumaru = {
  116.             main="Kogarasumaru",
  117.             sub="Bloodrain Strap",
  118.             range="Cibitshavore",
  119.             ammo="Eminent Arrow",
  120.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Haste+3','STR+7 DEX+7',}},
  121.             neck="Ganesha's Mala",
  122.             ear1="Tripudio Earring",
  123.             ear2="Enervating Earring",
  124.             body="Kasuga Domaru +1",
  125.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  126.             ring1="K'ayres Ring",
  127.             ring2="Rajas Ring",
  128.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}},
  129.             waist="Windbuffet Belt +1",
  130.             legs="Kasuga Haidate +1",
  131.             feet="Sak. Sune-Ate +1"}
  132.     sets.TP.Kogarasumaru.MidACC = set_combine(sets.TP.Kogarasumaru,{
  133.             ear2="Zennaroi Earring",
  134.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+6 DEX+6',}}})
  135.     sets.TP.Kogarasumaru.HighACC = set_combine(sets.TP.Kogarasumaru.MidACC,{
  136.             neck="Da. Nodowa +1",
  137.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  138.             waist="Olseni Belt"})
  139.     sets.TP.Kogarasumaru.MaxACC = set_combine(sets.TP.Kogarasumaru.HighACC,{
  140.             head="Yaoyotl Helm",
  141.             neck="Iqabi Necklace",
  142.             ear1="Steelflash Earring",
  143.             ring1="Ramuh Ring +1",
  144.             ring2="Ramuh Ring +1",
  145.             back="Ground. Mantle +1",
  146.             waist="Dynamic Belt +1"})
  147.            
  148.     -- Kogarasumaru(AM3 Up) TP Sets --
  149.     sets.TP.Kogarasumaru.AM3 = set_combine(sets.TP.Kogarasumaru,{})
  150.     sets.TP.Kogarasumaru.MidACC.AM3 = set_combine(sets.TP.Kogarasumaru.MidACC,{})
  151.     sets.TP.Kogarasumaru.HighACC.AM3 = set_combine(sets.TP.Kogarasumaru.HighACC,{})
  152.     sets.TP.Kogarasumaru.MaxACC.AM3 = set_combine(sets.TP.Kogarasumaru.MaxACC,{})
  153.            
  154.     -- Kogarasumaru(AM3 Down: Ionis) TP Sets --
  155.     sets.TP.Kogarasumaru.Ionis = set_combine(sets.TP.Kogarasumaru,{})
  156.     sets.TP.Kogarasumaru.MidACC.Ionis = set_combine(sets.TP.Kogarasumaru.MidACC,{})
  157.     sets.TP.Kogarasumaru.HighACC.Ionis = set_combine(sets.TP.Kogarasumaru.HighACC,{})
  158.     sets.TP.Kogarasumaru.MaxACC.Ionis = set_combine(sets.TP.Kogarasumaru.MaxACC,{})
  159.  
  160.     -- Kogarasumaru(AM3 Up: Ionis) TP Sets --
  161.     sets.TP.Kogarasumaru.AM3.Ionis = set_combine(sets.TP.Kogarasumaru.AM3,{})
  162.     sets.TP.Kogarasumaru.MidACC.AM3.Ionis = set_combine(sets.TP.Kogarasumaru.MidACC.AM3,{})
  163.     sets.TP.Kogarasumaru.HighACC.AM3.Ionis = set_combine(sets.TP.Kogarasumaru.HighACC.AM3,{})
  164.     sets.TP.Kogarasumaru.MaxACC.AM3.Ionis = set_combine(sets.TP.Kogarasumaru.MaxACC.AM3,{})
  165.  
  166.     -- Kogarasumaru(AM3 Down: SAM Roll) TP Sets --
  167.     sets.TP.Kogarasumaru.STP = set_combine(sets.TP.Kogarasumaru,{})
  168.     sets.TP.Kogarasumaru.MidACC.STP = set_combine(sets.TP.Kogarasumaru.MidACC,{})
  169.     sets.TP.Kogarasumaru.HighACC.STP = set_combine(sets.TP.Kogarasumaru.HighACC,{})
  170.     sets.TP.Kogarasumaru.MaxACC.STP = set_combine(sets.TP.Kogarasumaru.MaxACC,{})
  171.  
  172.     -- Kogarasumaru(AM3 Up: SAM Roll) TP Sets --
  173.     sets.TP.Kogarasumaru.AM3.STP = set_combine(sets.TP.Kogarasumaru.AM3,{})
  174.     sets.TP.Kogarasumaru.MidACC.AM3.STP = set_combine(sets.TP.Kogarasumaru.MidACC.AM3,{})
  175.     sets.TP.Kogarasumaru.HighACC.AM3.STP = set_combine(sets.TP.Kogarasumaru.HighACC.AM3,{})
  176.     sets.TP.Kogarasumaru.MaxACC.AM3.STP = set_combine(sets.TP.Kogarasumaru.MaxACC.AM3,{})
  177.  
  178.     -- Kogarasumaru(AM3 Down: Ionis + SAM Roll) TP Sets --
  179.     sets.TP.Kogarasumaru.Ionis.STP = set_combine(sets.TP.Kogarasumaru,{})
  180.     sets.TP.Kogarasumaru.MidACC.Ionis.STP = set_combine(sets.TP.Kogarasumaru.MidACC,{})
  181.     sets.TP.Kogarasumaru.HighACC.Ionis.STP = set_combine(sets.TP.Kogarasumaru.HighACC,{})
  182.     sets.TP.Kogarasumaru.MaxACC.Ionis.STP = set_combine(sets.TP.Kogarasumaru.MaxACC,{})
  183.  
  184.     -- Kogarasumaru(AM3 Up: Ionis + SAM Roll) TP Sets --
  185.     sets.TP.Kogarasumaru.AM3.Ionis.STP = set_combine(sets.TP.Kogarasumaru.AM3,{})
  186.     sets.TP.Kogarasumaru.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Kogarasumaru.MidACC.AM3,{})
  187.     sets.TP.Kogarasumaru.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Kogarasumaru.HighACC.AM3,{})
  188.     sets.TP.Kogarasumaru.MaxACC.AM3.Ionis.STP = set_combine(sets.TP.Kogarasumaru.MaxACC.AM3,{})
  189.  
  190.     -- Tsurumaru TP Sets --
  191.     sets.TP.Tsurumaru = {
  192.             main="Tsurumaru",
  193.             sub="Bloodrain Strap",
  194.             range="Yoichinoyumi",
  195.             ammo="Eminent Arrow",
  196.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  197.             neck="Ganesha's Mala",
  198.             ear1="Trux Earring",
  199.             ear2="Brutal Earring",
  200.             body="Kasuga Domaru +1",
  201.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  202.             ring1="K'ayres Ring",
  203.             ring2="Rajas Ring",
  204.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}},
  205.             waist="Windbuffet Belt +1",
  206.             legs="Kasuga Haidate +1",
  207.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+6 DEX+6',}}}
  208.     sets.TP.Tsurumaru.MidACC = set_combine(sets.TP.Tsurumaru,{
  209.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Haste+3','STR+7 DEX+7',}},
  210.             ear1="Zennaroi Earring",
  211.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}}})
  212.     sets.TP.Tsurumaru.HighACC = set_combine(sets.TP.Tsurumaru.MidACC,{
  213.             neck="Da. Nodowa +1",
  214.             waist="Olseni Belt"})
  215.     sets.TP.Tsurumaru.MaxACC = set_combine(sets.TP.Tsurumaru.HighACC,{
  216.             head="Yaoyotl Helm",
  217.             neck="Iqabi Necklace",
  218.             ear2="Steelflash Earring",
  219.             ring1="Ramuh Ring +1",
  220.             ring2="Ramuh Ring +1",
  221.             back="Ground. Mantle +1",
  222.             waist="Dynamic Belt +1"})
  223.  
  224.     -- Tsurumaru(Ionis) TP Sets --
  225.     sets.TP.Tsurumaru.Ionis = set_combine(sets.TP.Tsurumaru,{})
  226.     sets.TP.Tsurumaru.MidACC.Ionis = set_combine(sets.TP.Tsurumaru.MidACC,{})
  227.     sets.TP.Tsurumaru.HighACC.Ionis = set_combine(sets.TP.Tsurumaru.HighACC,{})
  228.     sets.TP.Tsurumaru.MaxACC.Ionis = set_combine(sets.TP.Tsurumaru.MaxACC,{})
  229.  
  230.     -- Tsurumaru(SAM Roll) TP Sets --
  231.     sets.TP.Tsurumaru.STP = set_combine(sets.TP.Tsurumaru,{})
  232.     sets.TP.Tsurumaru.MidACC.STP = set_combine(sets.TP.Tsurumaru.MidACC,{})
  233.     sets.TP.Tsurumaru.HighACC.STP = set_combine(sets.TP.Tsurumaru.HighACC,{})
  234.     sets.TP.Tsurumaru.MaxACC.STP = set_combine(sets.TP.Tsurumaru.MaxACC,{})
  235.  
  236.     -- Tsurumaru(Ionis + SAM Roll) TP Sets --
  237.     sets.TP.Tsurumaru.Ionis.STP = set_combine(sets.TP.Tsurumaru,{})
  238.     sets.TP.Tsurumaru.MidACC.Ionis.STP = set_combine(sets.TP.Tsurumaru.MidACC,{})
  239.     sets.TP.Tsurumaru.HighACC.Ionis.STP = set_combine(sets.TP.Tsurumaru.HighACC,{})
  240.     sets.TP.Tsurumaru.MaxACC.Ionis.STP = set_combine(sets.TP.Tsurumaru.MaxACC,{})
  241.  
  242.     -- Amanomurakumo(AM Down) TP Sets --
  243.     sets.TP.Amanomurakumo = {
  244.             main="Amanomurakumo",
  245.             sub="Bloodrain Strap",
  246.             range="Yoichinoyumi",
  247.             ammo="Eminent Arrow",
  248.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  249.             neck="Ganesha's Mala",
  250.             ear1="Trux Earring",
  251.             ear2="Brutal Earring",
  252.             body="Kasuga Domaru +1",
  253.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  254.             ring1="K'ayres Ring",
  255.             ring2="Rajas Ring",
  256.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}},
  257.             waist="Windbuffet Belt +1",
  258.             legs="Kasuga Haidate +1",
  259.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+6 DEX+6',}}}
  260.     sets.TP.Amanomurakumo.MidACC = set_combine(sets.TP.Amanomurakumo,{
  261.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Haste+3','STR+7 DEX+7',}},
  262.             ear1="Zennaroi Earring",
  263.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}}})
  264.     sets.TP.Amanomurakumo.HighACC = set_combine(sets.TP.Amanomurakumo.MidACC,{
  265.             neck="Da. Nodowa +1",
  266.             waist="Olseni Belt"})
  267.     sets.TP.Amanomurakumo.MaxACC = set_combine(sets.TP.Amanomurakumo.HighACC,{
  268.             head="Yaoyotl Helm",
  269.             neck="Iqabi Necklace",
  270.             ear2="Steelflash Earring",
  271.             ring1="Ramuh Ring +1",
  272.             ring2="Ramuh Ring +1",
  273.             back="Ground. Mantle +1",
  274.             waist="Dynamic Belt +1"})
  275.  
  276.     -- Amanomurakumo(AM Up) TP Sets --
  277.     sets.TP.Amanomurakumo.AM = set_combine(sets.TP.Amanomurakumo,{})
  278.     sets.TP.Amanomurakumo.MidACC.AM = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  279.     sets.TP.Amanomurakumo.HighACC.AM = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  280.     sets.TP.Amanomurakumo.MaxACC.AM = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  281.  
  282.     -- Amanomurakumo(AM Down: Ionis) TP Sets --
  283.     sets.TP.Amanomurakumo.Ionis =  set_combine(sets.TP.Amanomurakumo,{})
  284.     sets.TP.Amanomurakumo.MidACC.Ionis = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  285.     sets.TP.Amanomurakumo.HighACC.Ionis = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  286.     sets.TP.Amanomurakumo.MaxACC.Ionis = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  287.  
  288.     -- Amanomurakumo(AM Up: Ionis) TP Sets --
  289.     sets.TP.Amanomurakumo.AM.Ionis =  set_combine(sets.TP.Amanomurakumo,{})
  290.     sets.TP.Amanomurakumo.MidACC.AM.Ionis = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  291.     sets.TP.Amanomurakumo.HighACC.AM.Ionis = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  292.     sets.TP.Amanomurakumo.MaxACC.AM.Ionis = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  293.  
  294.     -- Amanomurakumo(AM Down: SAM Roll) TP Sets --
  295.     sets.TP.Amanomurakumo.STP = set_combine(sets.TP.Amanomurakumo,{})
  296.     sets.TP.Amanomurakumo.MidACC.STP = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  297.     sets.TP.Amanomurakumo.HighACC.STP = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  298.     sets.TP.Amanomurakumo.MaxACC.STP = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  299.  
  300.     -- Amanomurakumo(AM Up: SAM Roll) TP Sets --
  301.     sets.TP.Amanomurakumo.AM.STP = set_combine(sets.TP.Amanomurakumo,{})
  302.     sets.TP.Amanomurakumo.MidACC.AM.STP = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  303.     sets.TP.Amanomurakumo.HighACC.AM.STP = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  304.     sets.TP.Amanomurakumo.MaxACC.AM.STP = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  305.  
  306.     -- Amanomurakumo(AM Down: Ionis + SAM Roll) TP Sets --
  307.     sets.TP.Amanomurakumo.Ionis.STP = set_combine(sets.TP.Amanomurakumo,{})
  308.     sets.TP.Amanomurakumo.MidACC.Ionis.STP = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  309.     sets.TP.Amanomurakumo.HighACC.Ionis.STP = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  310.     sets.TP.Amanomurakumo.MaxACC.Ionis.STP = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  311.  
  312.     -- Amanomurakumo(AM Up: Ionis + SAM Roll) TP Sets --
  313.     sets.TP.Amanomurakumo.AM.Ionis.STP = set_combine(sets.TP.Amanomurakumo,{})
  314.     sets.TP.Amanomurakumo.MidACC.AM.Ionis.STP = set_combine(sets.TP.Amanomurakumo.MidACC,{})
  315.     sets.TP.Amanomurakumo.HighACC.AM.Ionis.STP = set_combine(sets.TP.Amanomurakumo.HighACC,{})
  316.     sets.TP.Amanomurakumo.MaxACC.AM.Ionis.STP = set_combine(sets.TP.Amanomurakumo.MaxACC,{})
  317.  
  318.     -- Masamune TP Sets --
  319.     sets.TP.Masamune = {
  320.             main="Masamune",
  321.             sub="Bloodrain Strap",
  322.             range="Cibitshavore",
  323.             ammo="Eminent Arrow",
  324.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  325.             neck="Ganesha's Mala",
  326.             ear1="Trux Earring",
  327.             ear2="Brutal Earring",
  328.             body="Kasuga Domaru +1",
  329.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  330.             ring1="K'ayres Ring",
  331.             ring2="Rajas Ring",
  332.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}},
  333.             waist="Windbuffet Belt +1",
  334.             legs="Kasuga Haidate +1",
  335.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+6 DEX+6',}}}
  336.     sets.TP.Masamune.MidACC = set_combine(sets.TP.Masamune,{
  337.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Haste+3','STR+7 DEX+7',}},
  338.             ear1="Zennaroi Earring",
  339.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}}})
  340.     sets.TP.Masamune.HighACC = set_combine(sets.TP.Masamune.MidACC,{
  341.             neck="Da. Nodowa +1",
  342.             waist="Olseni Belt"})
  343.     sets.TP.Masamune.MaxACC = set_combine(sets.TP.Masamune.HighACC,{
  344.             head="Yaoyotl Helm",
  345.             neck="Iqabi Necklace",
  346.             ear2="Steelflash Earring",
  347.             ring1="Ramuh Ring +1",
  348.             ring2="Ramuh Ring +1",
  349.             back="Ground. Mantle +1",
  350.             waist="Dynamic Belt +1"})
  351.  
  352.     -- Masamune(Ionis) TP Sets --
  353.     sets.TP.Masamune.Ionis = set_combine(sets.TP.Masamune,{})
  354.     sets.TP.Masamune.MidACC.Ionis = set_combine(sets.TP.Masamune.MidACC,{})
  355.     sets.TP.Masamune.HighACC.Ionis = set_combine(sets.TP.Masamune.HighACC,{})
  356.     sets.TP.Masamune.MaxACC.Ionis = set_combine(sets.TP.Masamune.MaxACC,{})
  357.  
  358.     -- Masamune(SAM Roll) TP Sets --
  359.     sets.TP.Masamune.STP = set_combine(sets.TP.Masamune,{})
  360.     sets.TP.Masamune.MidACC.STP = set_combine(sets.TP.Masamune.MidACC,{})
  361.     sets.TP.Masamune.HighACC.STP = set_combine(sets.TP.Masamune.HighACC,{})
  362.     sets.TP.Masamune.MaxACC.STP = set_combine(sets.TP.Masamune.MaxACC,{})
  363.  
  364.     -- Masamune(Ionis + SAM Roll) TP Sets --
  365.     sets.TP.Masamune.Ionis.STP = set_combine(sets.TP.Masamune.Ionis,{})
  366.     sets.TP.Masamune.MidACC.Ionis.STP = set_combine(sets.TP.Masamune.MidACC,{})
  367.     sets.TP.Masamune.HighACC.Ionis.STP = set_combine(sets.TP.Masamune.HighACC,{})
  368.     sets.TP.Masamune.MaxACC.Ionis.STP = set_combine(sets.TP.Masamune.MaxACC,{})
  369.  
  370.     -- Seigan TP Set --
  371.     sets.TP.Seigan = {head="Kasuga Kabuto +1"}
  372.  
  373.     -- Third Eye TP Set --
  374.     sets.TP['Third Eye'] = {legs="Sakonji Haidate +1"}
  375.  
  376.     -- PDT/MDT Sets --
  377.     sets.PDT = {
  378.             head="Otronif Mask +1",
  379.             neck="Twilight Torque",
  380.             ear1="Black Earring",
  381.             ear2="Darkness Earring",
  382.             body="Tartarus Platemail",
  383.             hands="Otronif Gloves +1",
  384.             ring1="Dark Ring",
  385.             ring2="Defending Ring",
  386.             back="Shadow Mantle",
  387.             waist="Flume Belt",
  388.             legs="Otronif Brais +1",
  389.             feet="Otronif Boots +1"}
  390.  
  391.     sets.MDT = set_combine(sets.PDT,{
  392.             head="Ogier's Helm",
  393.             ear1="Merman's Earring",
  394.             ear2="Sanare Earring",
  395.             body="Tartarus Platemail",
  396.             ring1="Shadow Ring",
  397.             back="Engulfer Cape",
  398.             waist="Resolute Belt"})
  399.  
  400.     -- Hybrid Sets --
  401.     sets.TP.Hybrid = set_combine(sets.PDT,{})
  402.     sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  403.     sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  404.     sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{})
  405.  
  406.     -- WS Base Set --
  407.     sets.WS = {
  408.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  409.             neck="Ganesha's Mala",
  410.             ear1="Vulcan's Pearl",
  411.             ear2="Brutal Earring",
  412.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  413.             hands="Miki. Gauntlets",
  414.             ring1="Ifrit Ring +1",
  415.             ring2="Ifrit Ring +1",
  416.             back="Buquwik Cape",
  417.             waist="Metalsinger Belt",
  418.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  419.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  420.  
  421.     -- Tachi: Fudo Sets --
  422.     sets.WS["Tachi: Fudo"] = {
  423.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  424.             neck="Fotia Gorget",
  425.             ear1="Moonshade Earring",
  426.             ear2="Brutal Earring",
  427.             body="Phorcys Korazin",
  428.             hands="Miki. Gauntlets",
  429.             ring1="Ifrit Ring +1",
  430.             ring2="Karieyh Ring",
  431.             back="Buquwik Cape",
  432.             waist="Metalsinger Belt",
  433.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  434.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  435.     sets.WS["Tachi: Fudo"].MidACC = set_combine(sets.WS["Tachi: Fudo"],{
  436.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','Weapon skill damage +3%',}},
  437.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','STR+10',}},
  438.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}}})
  439.     sets.WS["Tachi: Fudo"].HighACC = set_combine(sets.WS["Tachi: Fudo"].MidACC,{
  440.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  441.             waist="Olseni Belt",})
  442.     sets.WS["Tachi: Fudo"].MaxACC = set_combine(sets.WS["Tachi: Fudo"].HighACC,{
  443.             ear1="Zennaroi Earring",
  444.             ear2="Steelflash Earring",
  445.             ring1="Ramuh Ring +1",})
  446.  
  447.     -- Tachi: Fudo(SAM Roll) Sets --
  448.     sets.WS["Tachi: Fudo"].STP = set_combine(sets.WS["Tachi: Fudo"],{})
  449.     sets.WS["Tachi: Fudo"].MidACC.STP = set_combine(sets.WS["Tachi: Fudo"].MidACC,{})
  450.     sets.WS["Tachi: Fudo"].HighACC.STP = set_combine(sets.WS["Tachi: Fudo"].HighACC,{})
  451.     sets.WS["Tachi: Fudo"].MaxACC.STP = set_combine(sets.WS["Tachi: Fudo"].MaxACC,{})
  452.  
  453.     -- Tachi: Fudo(Attack) Set --
  454.     sets.WS["Tachi: Fudo"].ATT = set_combine(sets.WS["Tachi: Fudo"],{})
  455.  
  456.     -- Tachi: Shoha Sets --
  457.     sets.WS["Tachi: Shoha"] = {
  458.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  459.             neck="Ganesha's Mala",
  460.             ear1="Moonshade Earring",
  461.             ear2="Brutal Earring",
  462.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  463.             hands="Miki. Gauntlets",
  464.             ring1="Ifrit Ring +1",
  465.             ring2="Ifrit Ring +1",
  466.             back="Buquwik Cape",
  467.             waist="Metalsinger Belt",
  468.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  469.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  470.     sets.WS["Tachi: Shoha"].MidACC = set_combine(sets.WS["Tachi: Shoha"],{
  471.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','Weapon skill damage +3%',}},
  472.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','STR+10',}},
  473.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}}})
  474.     sets.WS["Tachi: Shoha"].HighACC = set_combine(sets.WS["Tachi: Shoha"].MidACC,{
  475.             neck="Breeze Gorget",
  476.             waist="Olseni Belt"})
  477.     sets.WS["Tachi: Shoha"].MaxACC = set_combine(sets.WS["Tachi: Shoha"].HighACC,{
  478.             ear1="Zennaroi Earring",
  479.             ear2="Steelflash Earring",
  480.             ring1="Ramuh Ring +1",})
  481.  
  482.     -- Tachi: Shoha(SAM Roll) Sets --
  483.     sets.WS["Tachi: Shoha"].STP = set_combine(sets.WS["Tachi: Shoha"],{})
  484.     sets.WS["Tachi: Shoha"].MidACC.STP = set_combine(sets.WS["Tachi: Shoha"].MidACC,{})
  485.     sets.WS["Tachi: Shoha"].HighACC.STP = set_combine(sets.WS["Tachi: Shoha"].HighACC,{})
  486.     sets.WS["Tachi: Shoha"].MaxACC.STP = set_combine(sets.WS["Tachi: Shoha"].MaxACC,{})
  487.  
  488.     -- Tachi: Kaiten Sets --
  489.     sets.WS["Tachi: Kaiten"] = {
  490.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  491.             neck="Fotia Gorget",
  492.             ear1="Moonshade Earring",
  493.             ear2="Brutal Earring",
  494.             body="Phorcys Korazin",
  495.             hands="Miki. Gauntlets",
  496.             ring1="Ifrit Ring +1",
  497.             ring2="Karieyh Ring",
  498.             back="Buquwik Cape",
  499.             waist="Metalsinger Belt",
  500.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  501.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  502.     sets.WS["Tachi: Kaiten"].MidACC = set_combine(sets.WS["Tachi: Kaiten"],{
  503.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','Weapon skill damage +3%',}},
  504.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','STR+10',}}})
  505.     sets.WS["Tachi: Kaiten"].HighACC = set_combine(sets.WS["Tachi: Kaiten"].MidACC,{
  506.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  507.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}},
  508.             waist="Olseni Belt"})
  509.     sets.WS["Tachi: Kaiten"].MaxACC = set_combine(sets.WS["Tachi: Kaiten"].HighACC,{
  510.             ear1="Zennaroi Earring",
  511.             ear2="Steelflash Earring",
  512.             ring1="Ramuh Ring +1",})
  513.  
  514.     -- Tachi: Kaiten(SAM Roll) Sets --
  515.     sets.WS["Tachi: Kaiten"].STP = set_combine(sets.WS["Tachi: Kaiten"],{})
  516.     sets.WS["Tachi: Kaiten"].MidACC.STP = set_combine(sets.WS["Tachi: Kaiten"].MidACC,{})
  517.     sets.WS["Tachi: Kaiten"].HighACC.STP = set_combine(sets.WS["Tachi: Kaiten"].HighACC,{})
  518.     sets.WS["Tachi: Kaiten"].MaxACC.STP = set_combine(sets.WS["Tachi: Kaiten"].MaxACC,{})
  519.  
  520.     -- Tachi: Kaiten(Attack) Set --
  521.     sets.WS["Tachi: Kaiten"].ATT = set_combine(sets.WS["Tachi: Kaiten"],{})
  522.  
  523.     -- Tachi: Rana Sets --
  524.     sets.WS["Tachi: Rana"] = {
  525.             head={ name="Otomi Helm", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  526.             neck="Fotia Gorget",
  527.             ear1="Vulcan's Pearl",
  528.             ear2="Brutal Earring",
  529.             body={ name="Acro Surcoat", augments={'Accuracy+20 Attack+20','"Store TP"+6','STR+7 DEX+7',}},
  530.             hands="Miki. Gauntlets",
  531.             ring1="Ifrit Ring +1",
  532.             ring2="Ifrit Ring +1",
  533.             back="Buquwik Cape",
  534.             waist="Metalsinger Belt",
  535.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  536.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  537.     sets.WS["Tachi: Rana"].MidACC = set_combine(sets.WS["Tachi: Rana"],{
  538.             head={ name="Acro Helm", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','Weapon skill damage +3%',}},
  539.             hands={ name="Acro Gauntlets", augments={'Accuracy+20 Attack+20','Weapon Skill Acc.+20','STR+10',}}})
  540.     sets.WS["Tachi: Rana"].HighACC = set_combine(sets.WS["Tachi: Rana"].MidACC,{
  541.             back={ name="Takaha Mantle", augments={'STR+3','"Zanshin"+1','"Store TP"+3',}},
  542.             waist="Olseni Belt"})
  543.     sets.WS["Tachi: Rana"].MaxACC = set_combine(sets.WS["Tachi: Rana"].HighACC,{
  544.             ear1="Zennaroi Earring",
  545.             ear2="Steelflash Earring",
  546.             ring1="Ramuh Ring +1",})
  547.  
  548.     -- Tachi: Rana(SAM Roll) Sets --
  549.     sets.WS["Tachi: Rana"].STP = set_combine(sets.WS["Tachi: Rana"],{})
  550.     sets.WS["Tachi: Rana"].MidACC.STP = set_combine(sets.WS["Tachi: Rana"].MidACC,{})
  551.     sets.WS["Tachi: Rana"].HighACC.STP = set_combine(sets.WS["Tachi: Rana"].HighACC,{})
  552.     sets.WS["Tachi: Rana"].MaxACC.STP = set_combine(sets.WS["Tachi: Rana"].MaxACC,{})
  553.  
  554.     -- Namas Arrow Sets --
  555.     sets.WS["Namas Arrow"] = {
  556.             ammo="Eminent Arrow",
  557.             head="Sakonji Kabuto +1",
  558.             neck="Ocachi Gorget",
  559.             ear1="Vulcan's Pearl",
  560.             ear2="Vulcan's Pearl",
  561.             body="Phorcys Korazin",
  562.             hands="Kasuga Kote +1",
  563.             ring1="Ifrit Ring +1",
  564.             ring2="Karieyh Ring",
  565.             back="Buquwik Cape",
  566.             waist="Fotia Belt",
  567.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  568.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  569.     sets.WS["Namas Arrow"].MidACC = set_combine(sets.WS["Namas Arrow"],{
  570.             neck="Fotia Gorget",
  571.             feet="Waki. Sune-Ate +1"})
  572.     sets.WS["Namas Arrow"].HighACC = set_combine(sets.WS["Namas Arrow"].MidACC,{
  573.             ear1="Clearview Earring",
  574.             ear2="Enervating Earring",
  575.             body="Kyujutsugi",
  576.             back="Thall Mantle"})
  577.     sets.WS["Namas Arrow"].MaxACC = set_combine(sets.WS["Namas Arrow"].HighACC,{
  578.             ring1="Hajduk Ring +1",
  579.             ring2="Hajduk Ring +1"})
  580.  
  581.     -- Apex Arrow Sets --
  582.     sets.WS["Apex Arrow"] = {
  583.             ammo="Eminent Arrow",
  584.             head="Sakonji Kabuto +1",
  585.             neck="Fotia Gorget",
  586.             ear1="Altdorf's Earring",
  587.             ear2="Wilhelm's Earring",
  588.             body="Phorcys Korazin",
  589.             hands="Kasuga Kote +1",
  590.             ring1="Stormsoul Ring",
  591.             ring2="Stormsoul Ring",
  592.             back="Buquwik Cape",
  593.             waist="Fotia Belt",
  594.             legs={ name="Acro Breeches", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}},
  595.             feet={ name="Acro Leggings", augments={'Accuracy+20 Attack+20','"Store TP"+6','Weapon skill damage +3%',}}}
  596.     sets.WS["Apex Arrow"].MidACC = set_combine(sets.WS["Apex Arrow"],{
  597.             feet="Waki. Sune-Ate +1"})
  598.     sets.WS["Apex Arrow"].HighACC = set_combine(sets.WS["Apex Arrow"].MidACC,{
  599.             ear1="Clearview Earring",
  600.             ear2="Enervating Earring",
  601.             body="Kyujutsugi",
  602.             back="Thall Mantle"})
  603.     sets.WS["Apex Arrow"].MaxACC = set_combine(sets.WS["Apex Arrow"].HighACC,{
  604.             ring1="Hajduk Ring +1",
  605.             ring2="Hajduk Ring +1"})
  606.  
  607.     -- JA Sets --
  608.     sets.JA = {}
  609.     sets.JA.Meditate = {head="Wakido Kabuto +1",hands="Sakonji Kote +1"}
  610.     sets.JA["Warding Circle"] = {head="Wakido Kabuto +1"}
  611.  
  612.     -- Waltz Set --
  613.     sets.Waltz = {}
  614.  
  615.     sets.Precast = {}
  616.     -- Fastcast Set --
  617.     sets.Precast.FastCast = {
  618.             neck="Orunmila's Torque",
  619.             ear1="Loquac. Earring",
  620.             ring1="Prolix Ring",
  621.             ring2="Veneficium Ring"}
  622.  
  623.     sets.Midcast = {}
  624.     -- Magic Haste Set --
  625.     sets.Midcast.Haste = set_combine(sets.PDT,{})
  626. end
  627.  
  628. function pretarget(spell,action)
  629.     if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  630.         cancel_spell()
  631.         send_command('input /item "Echo Drops" <me>')
  632.     elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  633.         cancel_spell()
  634.         send_command('Aggressor')
  635.     elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  636.         cancel_spell()
  637.         send_command('ThirdEye')
  638.     elseif spell.english == "Meditate" and player.tp > 2800 then -- Cancel Meditate If TP Is Above 2800 --
  639.         cancel_spell()
  640.         add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  641.     elseif spell.action_type == 'Ranged Attack' and spell.target.distance > 24.9 then
  642.         cancel_spell()
  643.         add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  644.         return
  645.     elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
  646.         if spell.skill == 'Archery' then
  647.             if spell.target.distance > 16+target_distance then
  648.                 cancel_spell()
  649.                 add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  650.                 return
  651.             end
  652.         else
  653.             if spell.target.distance > target_distance then
  654.                 cancel_spell()
  655.                 add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  656.                 return
  657.             end
  658.         end
  659.     end
  660. end
  661.  
  662. function precast(spell,action)
  663.     local check_ammo
  664.     local check_ammo_count = 1
  665.     if spell.action_type == 'Ranged Attack' then
  666.         check_ammo = player.equipment.ammo
  667.         if player.equipment.ammo == 'empty' or player.inventory[check_ammo].count <= check_ammo_count then
  668.             add_to_chat(123, spell.name..' Canceled: [Out of Ammo]')
  669.             cancel_spell()
  670.             return
  671.         else
  672.             equip(sets.Preshot)
  673.             if player.inventory[check_ammo].count <= ammo_warning_limit and player.inventory[check_ammo].count > 1 and not warning then
  674.                 add_to_chat(8, '***** [Low Ammo Warning!] *****')
  675.                 warning = true
  676.             elseif player.inventory[check_ammo].count > ammo_warning_limit and warning then
  677.                 warning = false
  678.             end
  679.         end
  680.     elseif spell.type == "WeaponSkill" then
  681.         if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  682.             cancel_spell()
  683.             add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  684.             return
  685.         else
  686.             equipSet = sets.WS
  687.             if equipSet[spell.english] then
  688.                 equipSet = equipSet[spell.english]
  689.             end
  690.             if Attack == 'ON' then
  691.                 equipSet = equipSet["ATT"]
  692.             end
  693.             if equipSet[AccArray[AccIndex]] then
  694.                 equipSet = equipSet[AccArray[AccIndex]]
  695.             end
  696.             if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  697.                 equipSet = equipSet["STP"]
  698.             end
  699.             if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
  700.                 equipSet = set_combine(equipSet,elements.equip)
  701.             end
  702.             if buffactive.Sekkanoki then -- Equip Kasuga Kote +1 When Sekkanoki Is On --
  703.                 equipSet = set_combine(equipSet,{hands="Kasuga Kote +1"})
  704.             end
  705.             if buffactive.Sengikori then -- Equip Kas. Sune-Ate +1 When Sengikori Is On --
  706.                 equipSet = set_combine(equipSet,{feet="Kas. Sune-Ate +1"})
  707.             end
  708.             if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  709.                 equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  710.             end
  711.             if TypeIndex == 1 and spell.english == "Tachi: Fudo" then
  712.                 if player.tp > 2990 or buffactive.Sekkanoki or (player.tp > 1990 and buffactive.Hagakure) then     
  713.                     if world.time <= (7*60) or world.time >= (17*60) then
  714.                         if buffactive["Aftermath: Lv.3"] then
  715.                             equipSet = set_combine(equipSet,{ear1="Lugra Earring +1",ear2="Lugra Earring"}) -- 3000 TP or Sekkanoki or Hagakure(2000+ TP) - Equip Lugra Earring +1 & Lugra Earring During AM3 From Dusk To Dawn --
  716.                         else
  717.                             equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"}) -- 3000 TP or Sekkanoki or Hagakure(2000+ TP) - Equip Lugra Earring +1 From Dusk To Dawn --
  718.                         end
  719.                     else
  720.                         equipSet = set_combine(equipSet,{ear1="Vulcan's Pearl"}) -- 3000 TP or Sekkanoki or Hagakure(2000+ TP) - Equip Vulcan's Pearl --
  721.                     end
  722.                 elseif buffactive["Aftermath: Lv.3"] then
  723.                     if world.time <= (7*60) or world.time >= (17*60) then
  724.                         equipSet = set_combine(equipSet,{ear2="Lugra Earring +1"}) -- Equip Lugra Earring +1 Instead of Brutal Earring During AM3 From Dusk To Dawn --
  725.                     else
  726.                         equipSet = set_combine(equipSet,{ear2="Vulcan's Pearl"}) -- Equip Vulcan's Pearl Instead of Brutal Earring During AM3 --
  727.                     end
  728.                 end
  729.             end
  730.             if TypeIndex == 1 and (spell.english == "Tachi: Shoha" or spell.english == "Tachi: Kasha") and (player.tp > 2990 or buffactive.Sekkanoki or (player.tp > 1990 and buffactive.Hagakure)) then
  731.                 if world.time <= (7*60) or world.time >= (17*60) then
  732.                     equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"}) -- 3000 TP or Sekkanoki or Hagakure(2000+ TP) - Equip Lugra Earring +1 From Dusk To Dawn --
  733.                 else
  734.                     equipSet = set_combine(equipSet,{ear1="Vulcan's Pearl"}) -- 3000 TP or Sekkanoki or Hagakure(2000+ TP) - Equip Vulcan's Pearl --
  735.                 end
  736.             end
  737.             if TypeIndex == 1 and spell.english == "Tachi: Rana" and (world.time <= (7*60) or world.time >= (17*60)) then -- Equip Lugra Earring +1 From Dusk To Dawn --
  738.                 equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
  739.             end
  740.             equip(equipSet)
  741.         end
  742.     elseif spell.type == "JobAbility" then
  743.         if sets.JA[spell.english] then
  744.             equip(sets.JA[spell.english])
  745.         end
  746.     elseif spell.action_type == 'Magic' then
  747.         if spell.english == 'Utsusemi: Ni' then
  748.             if buffactive['Copy Image (3)'] then
  749.                 cancel_spell()
  750.                 add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  751.                 return
  752.             else
  753.                 equip(sets.Precast.FastCast)
  754.             end
  755.         else
  756.             equip(sets.Precast.FastCast)
  757.         end
  758.     elseif spell.type == "Waltz" then
  759.         refine_waltz(spell,action)
  760.         equip(sets.Waltz)
  761.     elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  762.         cast_delay(0.2)
  763.         send_command('cancel Sneak')
  764.     end
  765.     if Twilight == 'Twilight' then
  766.         equip(sets.Twilight)
  767.     end
  768. end
  769.  
  770. function midcast(spell,action)
  771.     if spell.action_type == 'Ranged Attack' then
  772.         equipSet = sets.Midshot
  773.         if equipSet[AccArray[AccIndex]] then
  774.             equipSet = equipSet[AccArray[AccIndex]]
  775.         end
  776.         equip(equipSet)
  777.     elseif spell.action_type == 'Magic' then
  778.         if spell.english:startswith('Utsusemi') then
  779.             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 --
  780.                 send_command('@wait 1.7;cancel Copy Image*')
  781.             end
  782.             equip(sets.Midcast.Haste)
  783.         elseif spell.english == 'Monomi: Ichi' then
  784.             if buffactive['Sneak'] then
  785.                 send_command('@wait 1.7;cancel sneak')
  786.             end
  787.             equip(sets.Midcast.Haste)
  788.         else
  789.             equip(sets.Midcast.Haste)
  790.         end
  791.     end
  792. end
  793.  
  794. function aftercast(spell,action)
  795.     if not spell.interrupted then
  796.         if spell.type == "WeaponSkill" then
  797.             send_command('wait 0.2;gs c TP')
  798.         elseif spell.english == "Warding Circle" then -- Warding Circle Countdown --
  799.             send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  800.         end
  801.     end
  802.     status_change(player.status)
  803. end
  804.  
  805. function status_change(new,old)
  806.     check_equip_lock()
  807.     if Armor == 'PDT' then
  808.         equip(sets.PDT)
  809.     elseif Armor == 'MDT' then
  810.         equip(sets.MDT)
  811.     elseif new == 'Engaged' then
  812.         equipSet = sets.TP
  813.         if Armor == 'Hybrid' and equipSet["Hybrid"] then
  814.             equipSet = equipSet["Hybrid"]
  815.         end
  816.         if equipSet[WeaponArray[WeaponIndex]] then
  817.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  818.         end
  819.         if equipSet[AccArray[AccIndex]] then
  820.             equipSet = equipSet[AccArray[AccIndex]]
  821.         end
  822.         if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  823.             equipSet = equipSet["AM3"]
  824.         end
  825.         if buffactive.Ionis and equipSet["Ionis"] then
  826.             equipSet = equipSet["Ionis"]
  827.         end
  828.         if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  829.             equipSet = equipSet["STP"]
  830.         end
  831.         if buffactive.Seigan and Seigan == 'ON' then -- Use Seigan Toggle For Seigan TP Set --
  832.             equipSet = set_combine(equipSet,sets.TP.Seigan)
  833.         end
  834.         if buffactive["Third Eye"] and Third_Eye == 'ON' then -- Use Third Eye Toggle For Third Eye TP Set --
  835.             equipSet = set_combine(equipSet,sets.TP["Third Eye"])
  836.         end
  837.         equip(equipSet)
  838.     else
  839.         equipSet = sets.Idle
  840.         if equipSet[IdleArray[IdleIndex]] then
  841.             equipSet = equipSet[IdleArray[IdleIndex]]
  842.         end
  843.         if equipSet[WeaponArray[WeaponIndex]] then
  844.             equipSet = equipSet[WeaponArray[WeaponIndex]]
  845.         end
  846.         if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  847.             equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  848.         end
  849.         if world.area:endswith('Adoulin') then
  850.             equipSet = set_combine(equipSet,{body="Councilor's Garb"})
  851.         end
  852.         equip(equipSet)
  853.     end
  854.     if Twilight == 'Twilight' then
  855.         equip(sets.Twilight)
  856.     end
  857. end
  858.  
  859. function buff_change(buff,gain)
  860.     buff = string.lower(buff)
  861.     if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  862.         if gain then
  863.             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.]')
  864.         else
  865.             send_command('timers delete "Aftermath: Lv.3"')
  866.             add_to_chat(123,'AM3: [OFF]')
  867.         end
  868.     elseif buff == "perfect defense" then -- PD Timer --
  869.         if gain then
  870.             send_command('timers create "Perfect Defense" 57 down')
  871.         else
  872.             send_command('timers delete "Perfect Defense"')
  873.             add_to_chat(123,'PD: [OFF]')
  874.         end
  875.     elseif buff == "yaegasumi" then -- Yaegasumi Timer --
  876.         if gain then
  877.             send_command('timers create "Yaegasumi" 45 down')
  878.         else
  879.             send_command('timers delete "Yaegasumi"')
  880.             add_to_chat(123,'Yaegasumi: [OFF]')
  881.         end
  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 == 'C16' then -- Seigan Toggle --
  939.         if Seigan == 'ON' then
  940.             Seigan = 'OFF'
  941.             add_to_chat(123,'Seigan Set: [Unlocked]')
  942.         else
  943.             Seigan = 'ON'
  944.             add_to_chat(158,'Seigan Set: [Locked]')
  945.         end
  946.         status_change(player.status)
  947.     elseif command == 'C12' then -- Third Eye Toggle --
  948.         if Third_Eye == 'ON' then
  949.             Third_Eye = 'OFF'
  950.             add_to_chat(123,'Third Eye Set: [Unlocked]')
  951.         else
  952.             Third_Eye = 'ON'
  953.             add_to_chat(158,'Third Eye Set: [Locked]')
  954.         end
  955.         status_change(player.status)
  956.     elseif command == 'C11' then -- SAM Roll Toggle --
  957.         if Samurai_Roll == 'ON' then
  958.             Samurai_Roll = 'OFF'
  959.             add_to_chat(123,'SAM Roll: [OFF]')
  960.         else
  961.             Samurai_Roll = 'ON'
  962.             add_to_chat(158,'SAM Roll: [ON]')
  963.         end
  964.         status_change(player.status)
  965.     elseif command == 'C9' then -- Attack Toggle --
  966.         if Attack == 'ON' then
  967.             Attack = 'OFF'
  968.             add_to_chat(123,'Attack: [OFF]')
  969.         else
  970.             Attack = 'ON'
  971.             add_to_chat(158,'Attack: [ON]')
  972.         end
  973.         status_change(player.status)
  974.     elseif command == 'C3' then -- Twilight Toggle --
  975.         if Twilight == 'Twilight' then
  976.             Twilight = 'None'
  977.             add_to_chat(123,'Twilight Set: [Unlocked]')
  978.         else
  979.             Twilight = 'Twilight'
  980.             add_to_chat(158,'Twilight Set: [locked]')
  981.         end
  982.         status_change(player.status)
  983.     elseif command == 'C8' then -- Distance Toggle --
  984.         if player.target.distance then
  985.             target_distance = math.floor(player.target.distance*10)/10
  986.             add_to_chat(158,'Distance: '..target_distance)
  987.         else
  988.             add_to_chat(123,'No Target Selected')
  989.         end
  990.     elseif command == 'C10' then -- Cancel Meikyo Shisui --
  991.         send_command('Cancel Meikyo Shisui')
  992.         add_to_chat(123,'Meikyo Shisui: [OFF]')
  993.     elseif command == 'C6' then -- Idle Toggle --
  994.         IdleIndex = (IdleIndex % #IdleArray) + 1
  995.         add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
  996.         status_change(player.status)
  997.     elseif command == 'TP' then
  998.         add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  999.     elseif command:match('^SC%d$') then
  1000.         send_command('//'..sc_map[command])
  1001.     end
  1002. end
  1003.  
  1004. function check_equip_lock() -- Lock Equipment Here --
  1005.     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
  1006.         disable('ring1','ring2')
  1007.     elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
  1008.         disable('back')
  1009.     else
  1010.         enable('ring1','ring2','back')
  1011.     end
  1012. end
  1013.  
  1014. function refine_waltz(spell,action)
  1015.     if spell.type ~= 'Waltz' then
  1016.         return
  1017.     end
  1018.  
  1019.     if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" then
  1020.         return
  1021.     end
  1022.  
  1023.     local newWaltz = spell.english
  1024.     local waltzID
  1025.  
  1026.     local missingHP
  1027.  
  1028.     if spell.target.type == "SELF" then
  1029.         missingHP = player.max_hp - player.hp
  1030.     elseif spell.target.isallymember then
  1031.         local target = find_player_in_alliance(spell.target.name)
  1032.         local est_max_hp = target.hp / (target.hpp/100)
  1033.         missingHP = math.floor(est_max_hp - target.hp)
  1034.     end
  1035.  
  1036.     if missingHP ~= nil then
  1037.         if player.sub_job == 'DNC' then
  1038.             if missingHP < 40 and spell.target.name == player.name then
  1039.                 add_to_chat(123,'Full HP!')
  1040.                 cancel_spell()
  1041.                 return
  1042.             elseif missingHP < 150 then
  1043.                 newWaltz = 'Curing Waltz'
  1044.                 waltzID = 190
  1045.             elseif missingHP < 300 then
  1046.                 newWaltz = 'Curing Waltz II'
  1047.                 waltzID = 191
  1048.             else
  1049.                 newWaltz = 'Curing Waltz III'
  1050.                 waltzID = 192
  1051.             end
  1052.         else
  1053.             return
  1054.         end
  1055.     end
  1056.  
  1057.     local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
  1058.     local tpCost = waltzTPCost[newWaltz]
  1059.  
  1060.     local downgrade
  1061.  
  1062.     if player.tp < tpCost then
  1063.  
  1064.         if player.tp < 20 then
  1065.             add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  1066.             cancel_spell()
  1067.             return
  1068.         elseif player.tp < 35 then
  1069.             newWaltz = 'Curing Waltz'
  1070.         elseif player.tp < 50 then
  1071.             newWaltz = 'Curing Waltz II'
  1072.         end
  1073.  
  1074.         downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  1075.     end
  1076.  
  1077.     if newWaltz ~= spell.english then
  1078.         send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  1079.         if downgrade then
  1080.             add_to_chat(8, downgrade)
  1081.         end
  1082.         cancel_spell()
  1083.         return
  1084.     end
  1085.  
  1086.     if missingHP > 0 then
  1087.         add_to_chat(8,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  1088.     end
  1089. end
  1090.  
  1091. function find_player_in_alliance(name)
  1092.     for i,v in ipairs(alliance) do
  1093.         for k,p in ipairs(v) do
  1094.             if p.name == name then
  1095.                 return p
  1096.             end
  1097.         end
  1098.     end
  1099. end
  1100.  
  1101. function sub_job_change(newSubjob, oldSubjob)
  1102.     select_default_macro_book()
  1103. end
  1104.  
  1105. function set_macro_page(set,book)
  1106.     if not tonumber(set) then
  1107.         add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  1108.         return
  1109.     end
  1110.     if set < 1 or set > 10 then
  1111.         add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  1112.         return
  1113.     end
  1114.  
  1115.     if book then
  1116.         if not tonumber(book) then
  1117.             add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  1118.             return
  1119.         end
  1120.         if book < 1 or book > 20 then
  1121.             add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  1122.             return
  1123.         end
  1124.         send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  1125.     else
  1126.         send_command('@input /macro set '..tostring(set))
  1127.     end
  1128. end
  1129.  
  1130. function select_default_macro_book()
  1131.     -- Default macro set/book
  1132.     if player.sub_job == 'WAR' then
  1133.         set_macro_page(1, 12)
  1134.     elseif player.sub_job == 'DNC' then
  1135.         set_macro_page(3, 12)
  1136.     elseif player.sub_job == 'DRK' then
  1137.         set_macro_page(2, 12)
  1138.     elseif player.sub_job == 'NIN' then
  1139.         set_macro_page(5, 12)
  1140.     else
  1141.         set_macro_page(1, 12)
  1142.     end
  1143. end
Advertisement
Add Comment
Please, Sign In to add comment