KLoOoSH

My Monk Gearswap

Dec 29th, 2014
857
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.90 KB | None | 0 0
  1. -- Multiple TP Sets "Normal", ACC, P/MDT, Hybrid
  2. -- Multiple WS Sets, VS(Acc, Impetus, Impetus + ACC) SS(Normal, Acc) FH(Normal, Acc) Others WS
  3. -- Impetus active, auto VS WS Gear depending on TP Set
  4. -- Impetus Wear off, Remove Impetus Gear and back to "Normal"
  5. -- MACROS FOR GEARSWAPS /console gs c >Command<
  6. -- normal, Set TP Gear to "normal"
  7. -- PDT, Set TP Gear tp PDT
  8. -- MDT, Toogle gear to MDT and if in MDT will set you back to NORMAL
  9. -- impetus, Set gear to Impetus Set
  10. -- acc, set gear to Acc set, while In acc set, WS like VS, SS will use their acc set.
  11. -- MACRO FOR AUTO BOOST /console gs c autoboost , Toogle it ON/OFF, on by default
  12.  
  13.  
  14.  
  15. function get_sets()
  16. BoostdWS = S{"Final Heaven","Victory Smite","Shijin Spiral","Asuran Fists"}
  17. autoboost = 1  
  18. autoboostnext = 0
  19.        
  20. --JA's Precast Sets
  21.     sets.precast = {}
  22.     sets.precast['Hundred Fists'] = {legs="Hes. Hose"}
  23.     sets.precast['Formless Strikes'] = {body="Mel. Cyclas +2"}
  24.     sets.precast.Counterstance = {feet="Hes. Gaiters"}
  25.     sets.precast.Dodge = {feet="Anchorite's Gaiters"}
  26.     sets.precast.Boost = {hands="Anch. Gloves +1"}
  27.     sets.precast.Mantra = {feet="Hes. Gaiters"}
  28.     sets.precast.Focus = {head="Anchor. Crown +1"}
  29.    
  30.     sets.precast.Chakra = {
  31.     ammo="Brigantia Pebble",
  32.     head="Uk'uxkaj Cap",
  33.     body="Anch. Cyclas +1",
  34.     hands="Hes. Gloves +1",
  35.     legs="Quiahuiz trousers",
  36.     feet="Otronif boost +1",
  37.     neck="Tjukurrpa Medal",
  38.     waist="Caudata Belt",
  39.     left_ear="Kemas Earring",
  40.     right_ear="Soil Pearl",
  41.     left_ring="Terrasoul Ring",
  42.     right_ring="Terrasoul Ring",
  43.     back="Iximulew Cape",}
  44.  
  45.     sets.weapon = {main="Spharai"}
  46.  
  47. --VS Base Set
  48.     sets.precast.VSDD={
  49.     ammo="Honed tathlum",
  50.     head="Uk'uxkaj Cap",
  51.     body="Manibozho Jerkin",
  52.     hands="Otronif gloves +1",
  53.     legs="Quiahuiz Trousers",
  54.     feet="Otronif boost +1",
  55.     neck="Light gorget",
  56.     waist="Light Belt",
  57.     left_ear="Bladeborn Earring",
  58.     right_ear="Steelflash Earring",
  59.     left_ring="Ifrit Ring",
  60.     right_ring="Ifrit Ring",
  61.     back="Buquwik cape", }
  62.    
  63. --VS Impetus Set
  64. sets.precast.VSImpetus = set_combine(sets.precast.VSDD, {
  65.     body="Tantra Cyclas +2",
  66.     back="Rancorous Mantle",
  67. })
  68. --VS Accuracy Base Set
  69.     sets.precast.VSACC={
  70.     ammo="Honed Tathlum",
  71.     head="Uk'uxkaj Cap",
  72.     body="Manibozho Jerkin",
  73.     hands="Hes. Gloves +1",
  74.     legs="Otronif brais +1",
  75.     feet="Otronif boost +1",
  76.     neck="Light Gorget",
  77.     waist="Light Belt",
  78.     left_ear="Bladeborn Earring",
  79.     right_ear="Steelflash Earring",
  80.     left_ring="Ifrit Ring",
  81.     right_ring="Ifrit Ring",
  82.     back="Buquwik mantle",}
  83.    
  84. --VS Accuracy + Impetus Set
  85.     sets.precast.VSImpacc = set_combine(sets.precast.VSACC, {
  86.     body="Tantra Cyclas +2",
  87. })
  88. --Default Set for VS    
  89.     sets.precast['Victory Smite'] = sets.precast.VSDD
  90. --SS Base set
  91.     sets.precast.SSDD={
  92.     ammo="Potestas Bomblet",
  93.     head="Whirlpool Mask",
  94.     body="Manibozho Jerkin",
  95.     hands="Hes. Gloves +1",
  96.     legs="Manibozho Brais",
  97.     feet="Manibozho boots",
  98.     neck="Asperity Necklace",
  99.     waist="Windbuffet Belt",
  100.     left_ear="Bladeborn Earring",
  101.     right_ear="Steelflash Earring",
  102.     left_ring="Epona's Ring",
  103.     right_ring="Rajas Ring",
  104.     back="Atheling Mantle",}
  105.    
  106. --SS Accuracy Set
  107.     sets.precast.SSACC= set_combine(sets.precast.SSDD, {
  108.     ammo="Honed Tathlum",
  109.     body="Manibozho Jerkin",
  110.     hands="Hes. Gloves +1",
  111.     neck="Light Gorget",
  112.     waist="Light Belt",
  113.     back="Anchoret's Mantle",})
  114.    
  115. --Default Set for SS
  116.     sets.precast['Shijin Spiral']= sets.precast.SSDD
  117.    
  118. -- FH Base Set
  119.     sets.precast.FHDD ={
  120.     ammo="Tantra Tathlum",
  121.     head="Whirlpool Mask",
  122.     body="Manibozho Jerkin",
  123.     hands="Anch. Gloves +1",
  124.     legs="Nahtirah Trousers",
  125.     feet="Otronif Boots",
  126.     neck="Asperity Necklace",
  127.     waist="Windbuffet Belt",
  128.     left_ear="Brutal Earring",
  129.     right_ear="Kemas Earring",    
  130.     left_ring="Epona's Ring",
  131.     right_ring="Terrasoul Ring",
  132.     back="Anchoret's Mantle",}
  133.    
  134. -- FH Accuracy set
  135.     sets.precast.FHACC = set_combine(sets.precast.FHDD, {
  136.     ammo="Tantra Tathlum",
  137.     hands="Hes. Gloves +1",
  138.     legs="Kaabnax Trousers",
  139.     feet="Manibozho boots",
  140.     neck="Light Gorget",
  141.     waist="Light Belt",})
  142.    
  143. -- Default set for FH
  144.     sets.precast['Final Heaven'] = sets.precast.FHDD
  145.    
  146. -- Others WS Set   
  147.     sets.precast.WS = {    
  148.     ammo="Potestas Bomblet",
  149.     head="Uk'uxkaj Cap",
  150.     body="Manibozho Jerkin",
  151.     hands="Hes. Gloves +1",
  152.     legs="Quiahuiz Trousers",
  153.     feet="Otronif boots +1",
  154.     neck="Light gorget",
  155.     waist="Light Belt",
  156.     left_ear="Kemas Earring",
  157.     right_ear="Bushinomimi",
  158.     left_ring="Ifrit Ring",
  159.     right_ring="Ifrit Ring",
  160.     back="Buquwik cape",}
  161.    
  162. --TP sets
  163.     sets.TP = {}
  164.    
  165. --TP DD sets   
  166.     sets.TP.DD = {
  167.     ammo="Honed tathlum",
  168.     head="Whirlpool Mask",
  169.     body="Thaumas Coat",
  170.     hands="Otronif gloves +1",  
  171.     legs="Otronif brais +1",
  172.     feet="Otronif boots +1",
  173.     neck="Asperity Necklace",
  174.     waist="Windbuffet Belt",
  175.     left_ear="Bladeborn Earring",
  176.     right_ear="Steelflash Earring",
  177.     left_ring="K'ayres Ring",
  178.     right_ring="Epona's Ring",
  179.     back="Letalis Mantle",}
  180.    
  181. --TP Acc sets  
  182.     sets.TP.Acc = set_combine(sets.TP.DD, {
  183.     ammo="Honed Tathlum",
  184.     head="Whirlpool Mask",
  185.     body="Manibozho Jerkin",
  186.     hands="Hes. Gloves +1",
  187.     legs="Manibozho brais",
  188.     feet="Manibozho boost",
  189.     neck="Iqabi Necklace",
  190.     waist="Anguinus belt",
  191.     left_ring="Patricius Ring",
  192.     right_ring="Beeline Ring",
  193.     back="Letalis Mantle",})
  194. --TP Counterstance
  195.     sets.TP.cc = set_combine(sets.TP.DD, {
  196.     feet="Hes. Gaiters"})
  197. --TP Hybrid Acc/PDT sets   
  198.     sets.TP.Hybrid= set_combine(sets.TP.Acc, {
  199.     head="Otronif Mask",
  200.     body="Otronif Harness +1",
  201.     hands="Hes. Gloves +1",
  202.     legs="Otronif Brais",
  203.     feet="Otronif Boots",
  204.     neck="Iqabi Necklace",
  205.     left_ear="Bladeborn Earring",
  206.     right_ear="Steelflash Earring",
  207.     left_ring="Patricius Ring",
  208.     right_ring="Defending Ring",
  209.     back="Iximulew cape",})
  210.    
  211. --TP Impetus sets  
  212.     sets.TP.Impetus=set_combine(sets.TP.DD, {
  213.     head="Uk'uxkaj Cap",
  214.     body="Tantra Cyclas +2",
  215.     waist="Cetl Belt",
  216.     back="Letalis Mantle",})
  217.    
  218. --PDT/MDT Sets
  219.     sets.PDT ={
  220.     ammo="Brigantia Pebble",
  221.     head="Otronif Mask",
  222.     body="Otronif Harness +1",
  223.     hands="Otronif Gloves",
  224.     legs="Otronif Brais",
  225.     feet="Otronif Boots",
  226.     neck="Twilight Torque",
  227.     waist="Black Belt",
  228.     left_ear="Bladeborn Earring",
  229.     right_ear="Steelflash Earring",
  230.     left_ring="Dark Ring",
  231.     right_ring="Defending Ring",
  232.     back="Shadow Mantle",}
  233.    
  234. --PDT/MDT Sets
  235.     sets.MDT = set_combine(sets.PDT, {body="Otronif Harness",})
  236.  
  237. --Aftercast Rule/Idle Set  
  238.     sets.aftercast = {}
  239.     sets.aftercast.TP = sets.TP.DD
  240.  
  241.     sets.aftercast.Idle = {    
  242.     ammo="Hagneia Stone",
  243.     head="Whirlpool mask",
  244.     body="Mel. Cyclas +2",
  245.     hands="Hes. Gloves +1",
  246.     legs="Otronif brais +1",
  247.     feet="Otronif boost +1",
  248.     neck="Asperity necklace",
  249.     waist="Windbuffet belt",
  250.     left_ear="Bladeborn Earring",
  251.     right_ear="Steelflash Earring",
  252.     left_ring="Warp ring",
  253.     right_ring="Defending Ring",    
  254.     back="Shadow Mantle",}
  255.    
  256. end
  257.  
  258. function pretarget(spell)
  259. end
  260.  
  261. function precast(spell,action)
  262. --Auto Boost on Certain WS
  263.     if BoostdWS:contains(spell.name) and windower.ffxi.get_ability_recasts()[16] < 1 and not buffactive['Hundred Fists'] and not buffactive.amnesia and spell.target.distance < 5.5 and player.tp > 99 and autoboost == 1 and autoboostnext == 0 then
  264.         cancel_spell()
  265.         autoboostnext = 1
  266.         abws = spell.name
  267.         send_command('input /ja "Boost" <me>;')
  268.         add_to_chat(100,'> > > > '..spell.name)
  269.         return
  270.     end
  271.  
  272.     if sets.precast[spell.english] then
  273.         if buffactive['Impetus'] then
  274.             if sets.aftercast.TP == sets.TP.Acc then
  275.                 sets.precast['Victory Smite'] = sets.precast.VSImpacc
  276.             else       
  277.                 if sets.aftercast.TP == sets.TP.DD then
  278.                     sets.precast['Victory Smite'] = sets.precast.VSImpetus
  279.                 end
  280.             end
  281.         end
  282.             equip(sets.precast[spell.english])
  283.         elseif spell.type=="WeaponSkill" then
  284.             equip(sets.precast.WS)
  285.     end
  286. end
  287.  
  288. function midcast(spell,action)
  289. end
  290.  
  291. function aftercast(spell,action)
  292.     if spell.name == null then
  293.             return -- Cancel Aftercast for outofrange/unable to see.
  294.     end
  295.  
  296.     if player.status == 'Engaged' then
  297.         if spell.name == 'Boost' then
  298.             return -- Cancel aftercast for boost, coz it was overlapping with the precast of the ws when used all in a macro.
  299.         else
  300.             equip(sets.aftercast.TP)
  301.         end
  302.     else
  303.         if sets.aftercast.TP == sets.PDT or sets.aftercast.TP == sets.MDT then
  304.             equip(sets.aftercast.TP)
  305.         else
  306.             equip(sets.aftercast.Idle)
  307.         end
  308.     end
  309. end
  310.  
  311. function status_change(new,old)
  312.     if new == 'Engaged' then
  313.         equip(sets.aftercast.TP)
  314.         autoboostnext = 0
  315.     else
  316.         if sets.aftercast.TP == sets.PDT then
  317.             equip(sets.aftercast.TP)
  318.             autoboostnext = 0
  319.         elseif sets.aftercast.TP == sets.MDT then
  320.             equip(sets.aftercast.TP)
  321.             autoboostnext = 0
  322.         else
  323.             equip(sets.aftercast.Idle)
  324.             autoboostnext = 0
  325.         end
  326.     end
  327. end
  328.  
  329. function buff_change(status,gain_or_loss)
  330.  
  331.     if status == "Boost" and autoboostnext == 1 then
  332.         if gain_or_loss then
  333.             send_command('input /ws "'..abws..'" <t>;')
  334.         else
  335.             autoboostnext = 0
  336.         end
  337.     end
  338.  
  339.     if status == "Impetus" then
  340.         if gain_or_loss then
  341.             if sets.aftercast.TP == sets.TP.Acc then
  342.                 sets.precast['Victory Smite'] = sets.precast.VSImpacc
  343.                 send_command('@input /echo Victory Smite WS Set = ImpAcc ')
  344.             else
  345.                 if sets.aftercast.TP == sets.MDT or sets.aftercast.TP == sets.PDT then
  346.                     sets.precast['Victory Smite'] = sets.precast.VSImpetus
  347.                     send_command('@input /echo Victory Smite WS Set = P/MDT - VSImpetus ')         
  348.                 else
  349.                     equip(sets.TP.Impetus)
  350.                     sets.aftercast.TP = sets.TP.Impetus        
  351.                     sets.precast['Victory Smite'] = sets.precast.VSImpetus
  352.                     send_command('@input /echo Victory Smite WS Set = VSImpetus ') 
  353.                 end
  354.             end
  355.         else
  356.             if sets.aftercast.TP == sets.TP.Acc then
  357.                 sets.precast['Victory Smite'] = sets.precast.VSACC
  358.                 send_command('@input /echo Victory Smite WS Set = Acc ')
  359.             else
  360.                 if sets.aftercast.TP == sets.MDT then
  361.                     equip(sets.MDT)
  362.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  363.                     send_command('@input /echo Victory Smite WS Set = Normal -- MDT SET ON')   
  364.                 elseif sets.aftercast.TP == sets.PDT then
  365.                     equip(sets.PDT)
  366.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  367.                     send_command('@input /echo Victory Smite WS Set = Normal -- PDT SET ON')   
  368.                 else
  369.                     equip(sets.TP.DD)
  370.                     sets.aftercast.TP = sets.TP.DD
  371.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  372.                     send_command('@input /echo Victory Smite WS Set = Normal ')        
  373.                 end
  374.             end
  375.         end
  376.     end
  377. end
  378. -- SE Macros /console gs c "command" [case sensitive]
  379. function self_command(command)
  380.         if command == 'normal' then
  381.             if player.status == 'Engaged' then 
  382.                 equip(sets.TP.DD)
  383.                 sets.aftercast.TP = sets.TP.DD
  384.                 sets.precast['Victory Smite'] = sets.precast.VSDD
  385.                 sets.precast['Shijin Spiral'] = sets.precast.SSDD
  386.                 add_to_chat(100, 'Normal TP Set')
  387.             else
  388.                 equip(sets.aftercast.Idle)
  389.                 sets.aftercast.TP = sets.TP.DD
  390.                 sets.precast['Victory Smite'] = sets.precast.VSDD
  391.                 sets.precast['Shijin Spiral'] = sets.precast.SSDD
  392.                 add_to_chat(100, 'Normal TP - Idle Set')
  393.             end
  394.         elseif command == 'acc' then
  395.                 equip(sets.TP.Acc)
  396.                 sets.aftercast.TP = sets.TP.Acc
  397.                 sets.precast['Victory Smite'] = sets.precast.VSACC
  398.                 sets.precast['Shijin Spiral'] = sets.precast.SSACC
  399.                 add_to_chat(100, 'Accuracy Set')
  400.         elseif command == 'hybrid' then
  401.                 equip(sets.TP.Hybrid)
  402.                 sets.aftercast.TP = sets.TP.Hybrid
  403.                 sets.precast['Victory Smite'] = sets.precast.VSACC
  404.                 sets.precast['Shijin Spiral'] = sets.precast.SSACC
  405.                 add_to_chat(100, 'Acc-DT Set')
  406.         elseif command == 'impetus' then
  407.                 equip(sets.TP.Impetus)
  408.                 sets.aftercast.TP = sets.TP.Impetus
  409.                 sets.precast['Victory Smite'] = sets.precast.VSImpetus
  410.                 sets.precast['Shijin Spiral'] = sets.precast.SSDD
  411.                 add_to_chat(100, 'Impetus TP Set')
  412.         elseif command == 'cc' then
  413.             equip(sets.TP.cc)
  414.             sets.aftercast.TP = sets.TP.cc
  415.                 add_to_chat(100, 'Counterstance Set')
  416.         elseif command == 'PDT' then
  417.             equip(sets.PDT)
  418.             sets.aftercast.TP = sets.PDT
  419.                 add_to_chat(100, 'PDT Set')
  420.         elseif command == 'MDT' then
  421.             if sets.aftercast.TP == sets.MDT then
  422.                 if player.status == 'Engaged' then 
  423.                     equip(sets.TP.DD)
  424.                     sets.aftercast.TP = sets.TP.DD
  425.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  426.                     sets.precast['Shijin Spiral'] = sets.precast.SSDD
  427.                     add_to_chat(100, 'Normal TP Set')
  428.                 else
  429.                     equip(sets.aftercast.Idle)
  430.                     sets.aftercast.TP = sets.TP.DD
  431.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  432.                     sets.precast['Shijin Spiral'] = sets.precast.SSDD
  433.                     add_to_chat(100, 'Normal TP Set + idle')
  434.                 end
  435.             else
  436.                 equip(sets.MDT)
  437.                 sets.aftercast.TP = sets.MDT
  438.                 add_to_chat(100, 'MDT Set')
  439.             end
  440.         elseif command == 'AutoBoost' then
  441.             if autoboost == 1 then
  442.                 autoboost = 0
  443.                 add_to_chat(100, 'Auto Boost Before WS = OFF')
  444.             else
  445.                 autoboost = 1
  446.                 add_to_chat(100, 'Auto Boost Before WS = ON')
  447.             end
  448.     end
  449. end
Advertisement
Add Comment
Please, Sign In to add comment