Advertisement
JSHidaka

MNK Lua 2.0

Dec 20th, 2013
4,114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.85 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="Nahtirah Trousers",
  36.     feet="Thur. Boots +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="Potestas Bomblet",
  50.     head="Uk'uxkaj Cap",
  51.     body="Manibozho Jerkin",
  52.     hands="Hes. Gloves +1",
  53.     legs="Quiahuiz Trousers",
  54.     feet="Manibozho boots",
  55.     neck="Justiciar's Torque",
  56.     waist="Windbuffet Belt",
  57.     left_ear="Brutal Earring",
  58.     right_ear="Moonshade Earring",
  59.     left_ring="Epona's Ring",
  60.     right_ring="Rajas Ring",
  61.     back="Rancorous Mantle", }
  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="Whirlpool Mask",
  72.     body="Manibozho Jerkin",
  73.     hands="Hes. Gloves +1",
  74.     legs="Kaabnax Trousers",
  75.     feet="Manibozho boots",
  76.     neck="Light Gorget",
  77.     waist="Light Belt",
  78.     left_ear="Bladeborn Earring",
  79.     right_ear="Steelflash Earring",
  80.     left_ring="Beeline Ring",
  81.     right_ring="Toreador's Ring",
  82.     back="Anchoret's 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="Manibozho boots",
  154.     neck="Justiciar's Torque",
  155.     waist="Windbuffet Belt",
  156.     left_ear="Brutal Earring",
  157.     right_ear="Moonshade Earring",
  158.     left_ring="Epona's Ring",
  159.     right_ring="Rajas Ring",
  160.     back="Rancorous Mantle",}
  161.    
  162. --TP sets
  163.     sets.TP = {}
  164.    
  165. --TP DD sets   
  166.     sets.TP.DD = {
  167.     ammo="Hagneia Stone",
  168.     head="Whirlpool Mask",
  169.     body="Thaumas Coat",
  170.     hands="Hes. Gloves +1",    
  171.     legs="Hes. Hose",
  172.     feet="Manibozho boots",
  173.     neck="Asperity Necklace",
  174.     waist="Windbuffet Belt",
  175.     left_ear="Bladeborn Earring",
  176.     right_ear="Steelflash Earring",
  177.     left_ring="Epona's Ring",
  178.     right_ring="K'ayres Ring",
  179.     back="Atheling Mantle",}
  180.    
  181. --TP Acc sets  
  182.     sets.TP.Acc = set_combine(sets.TP.DD, {
  183.     ammo="Honed Tathlum",
  184.     body="Manibozho Jerkin",
  185.     hands="Hes. Gloves +1",
  186.     legs="Kaabnax Trousers",
  187.     neck="Ej Necklace",
  188.     waist="Hurch'lan Sash",
  189.     left_ring="Beeline Ring",
  190.     right_ring="Toreador's Ring",
  191.     back="Anchoret's Mantle",})
  192. --TP Counterstance
  193.     sets.TP.cc = set_combine(sets.TP.DD, {
  194.     feet="Hes. Gaiters"})
  195. --TP Hybrid Acc/PDT sets   
  196.     sets.TP.Hybrid= set_combine(sets.TP.Acc, {
  197.     head="Otronif Mask",
  198.     body="Otronif Harness",
  199.     hands="Hes. Gloves +1",
  200.     legs="Otronif Brais",
  201.     feet="Otronif Boots",
  202.     neck="Ej Necklace",
  203.     left_ear="Bladeborn Earring",
  204.     right_ear="Steelflash Earring",
  205.     right_ring="Defending Ring",
  206.     back="Mollusca Mantle",})
  207.    
  208. --TP Impetus sets  
  209.     sets.TP.Impetus=set_combine(sets.TP.DD, {
  210.     head="Uk'uxkaj Cap",
  211.     body="Tantra Cyclas +2",
  212.     waist="Cetl Belt",
  213.     back="Letalis Mantle",})
  214.    
  215. --PDT/MDT Sets
  216.     sets.PDT ={
  217.     ammo="Brigantia Pebble",
  218.     head="Otronif Mask",
  219.     body="Otronif Harness",
  220.     hands="Otronif Gloves",
  221.     legs="Otronif Brais",
  222.     feet="Otronif Boots",
  223.     neck="Twilight Torque",
  224.     waist="Black Belt",
  225.     left_ear="Bladeborn Earring",
  226.     right_ear="Steelflash Earring",
  227.     left_ring="Dark Ring",
  228.     right_ring="Defending Ring",
  229.     back="Mollusca Mantle",}
  230.    
  231. --PDT/MDT Sets
  232.     sets.MDT = set_combine(sets.PDT, {body="Avalon Breastplate",})
  233.  
  234. --Aftercast Rule/Idle Set  
  235.     sets.aftercast = {}
  236.     sets.aftercast.TP = sets.TP.DD
  237.  
  238.     sets.aftercast.Idle = {    
  239.     ammo="Hagneia Stone",
  240.     head="Oce. Headpiece +1",
  241.     body="Mel. Cyclas +2",
  242.     hands="Hes. Gloves +1",
  243.     legs="Hes. Hose",
  244.     feet="Hermes' Sandals +1",
  245.     neck="Wiglen Gorget",
  246.     waist="Black Belt",
  247.     left_ear="Bladeborn Earring",
  248.     right_ear="Steelflash Earring",
  249.     left_ring="Paguroidea Ring",
  250.     right_ring="Defending Ring",    
  251.     back="Iximulew Cape",}
  252.    
  253. end
  254.  
  255. function pretarget(spell)
  256. end
  257.  
  258. function precast(spell,action)
  259. --Auto Boost on Certain WS
  260.     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
  261.         cancel_spell()
  262.         autoboostnext = 1
  263.         abws = spell.name
  264.         send_command('input /ja "Boost" <me>;')
  265.         add_to_chat(100,'> > > > '..spell.name)
  266.         return
  267.     end
  268.  
  269.     if sets.precast[spell.english] then
  270.         if buffactive['Impetus'] then
  271.             if sets.aftercast.TP == sets.TP.Acc then
  272.                 sets.precast['Victory Smite'] = sets.precast.VSImpacc
  273.             else       
  274.                 if sets.aftercast.TP == sets.TP.DD then
  275.                     sets.precast['Victory Smite'] = sets.precast.VSImpetus
  276.                 end
  277.             end
  278.         end
  279.             equip(sets.precast[spell.english])
  280.         elseif spell.type=="WeaponSkill" then
  281.             equip(sets.precast.WS)
  282.     end
  283. end
  284.  
  285. function midcast(spell,action)
  286. end
  287.  
  288. function aftercast(spell,action)
  289.     if spell.name == null then
  290.             return -- Cancel Aftercast for outofrange/unable to see.
  291.     end
  292.  
  293.     if player.status == 'Engaged' then
  294.         if spell.name == 'Boost' then
  295.             return -- Cancel aftercast for boost, coz it was overlapping with the precast of the ws when used all in a macro.
  296.         else
  297.             equip(sets.aftercast.TP)
  298.         end
  299.     else
  300.         if sets.aftercast.TP == sets.PDT or sets.aftercast.TP == sets.MDT then
  301.             equip(sets.aftercast.TP)
  302.         else
  303.             equip(sets.aftercast.Idle)
  304.         end
  305.     end
  306. end
  307.  
  308. function status_change(new,old)
  309.     if new == 'Engaged' then
  310.         equip(sets.aftercast.TP)
  311.         autoboostnext = 0
  312.     else
  313.         if sets.aftercast.TP == sets.PDT then
  314.             equip(sets.aftercast.TP)
  315.             autoboostnext = 0
  316.         elseif sets.aftercast.TP == sets.MDT then
  317.             equip(sets.aftercast.TP)
  318.             autoboostnext = 0
  319.         else
  320.             equip(sets.aftercast.Idle)
  321.             autoboostnext = 0
  322.         end
  323.     end
  324. end
  325.  
  326. function buff_change(status,gain_or_loss)
  327.  
  328.     if status == "Boost" and autoboostnext == 1 then
  329.         if gain_or_loss then
  330.             send_command('input /ws "'..abws..'" <t>;')
  331.         else
  332.             autoboostnext = 0
  333.         end
  334.     end
  335.  
  336.     if status == "Impetus" then
  337.         if gain_or_loss then
  338.             if sets.aftercast.TP == sets.TP.Acc then
  339.                 sets.precast['Victory Smite'] = sets.precast.VSImpacc
  340.                 send_command('@input /echo Victory Smite WS Set = ImpAcc ')
  341.             else
  342.                 if sets.aftercast.TP == sets.MDT or sets.aftercast.TP == sets.PDT then
  343.                     sets.precast['Victory Smite'] = sets.precast.VSImpetus
  344.                     send_command('@input /echo Victory Smite WS Set = P/MDT - VSImpetus ')         
  345.                 else
  346.                     equip(sets.TP.Impetus)
  347.                     sets.aftercast.TP = sets.TP.Impetus        
  348.                     sets.precast['Victory Smite'] = sets.precast.VSImpetus
  349.                     send_command('@input /echo Victory Smite WS Set = VSImpetus ') 
  350.                 end
  351.             end
  352.         else
  353.             if sets.aftercast.TP == sets.TP.Acc then
  354.                 sets.precast['Victory Smite'] = sets.precast.VSACC
  355.                 send_command('@input /echo Victory Smite WS Set = Acc ')
  356.             else
  357.                 if sets.aftercast.TP == sets.MDT then
  358.                     equip(sets.MDT)
  359.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  360.                     send_command('@input /echo Victory Smite WS Set = Normal -- MDT SET ON')   
  361.                 elseif sets.aftercast.TP == sets.PDT then
  362.                     equip(sets.PDT)
  363.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  364.                     send_command('@input /echo Victory Smite WS Set = Normal -- PDT SET ON')   
  365.                 else
  366.                     equip(sets.TP.DD)
  367.                     sets.aftercast.TP = sets.TP.DD
  368.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  369.                     send_command('@input /echo Victory Smite WS Set = Normal ')        
  370.                 end
  371.             end
  372.         end
  373.     end
  374. end
  375. -- SE Macros /console gs c "command" [case sensitive]
  376. function self_command(command)
  377.         if command == 'normal' then
  378.             if player.status == 'Engaged' then 
  379.                 equip(sets.TP.DD)
  380.                 sets.aftercast.TP = sets.TP.DD
  381.                 sets.precast['Victory Smite'] = sets.precast.VSDD
  382.                 sets.precast['Shijin Spiral'] = sets.precast.SSDD
  383.                 add_to_chat(100, 'Normal TP Set')
  384.             else
  385.                 equip(sets.aftercast.Idle)
  386.                 sets.aftercast.TP = sets.TP.DD
  387.                 sets.precast['Victory Smite'] = sets.precast.VSDD
  388.                 sets.precast['Shijin Spiral'] = sets.precast.SSDD
  389.                 add_to_chat(100, 'Normal TP - Idle Set')
  390.             end
  391.         elseif command == 'acc' then
  392.                 equip(sets.TP.Acc)
  393.                 sets.aftercast.TP = sets.TP.Acc
  394.                 sets.precast['Victory Smite'] = sets.precast.VSACC
  395.                 sets.precast['Shijin Spiral'] = sets.precast.SSACC
  396.                 add_to_chat(100, 'Accuracy Set')
  397.         elseif command == 'hybrid' then
  398.                 equip(sets.TP.Hybrid)
  399.                 sets.aftercast.TP = sets.TP.Hybrid
  400.                 sets.precast['Victory Smite'] = sets.precast.VSACC
  401.                 sets.precast['Shijin Spiral'] = sets.precast.SSACC
  402.                 add_to_chat(100, 'Acc-DT Set')
  403.         elseif command == 'impetus' then
  404.                 equip(sets.TP.Impetus)
  405.                 sets.aftercast.TP = sets.TP.Impetus
  406.                 sets.precast['Victory Smite'] = sets.precast.VSImpetus
  407.                 sets.precast['Shijin Spiral'] = sets.precast.SSDD
  408.                 add_to_chat(100, 'Impetus TP Set')
  409.         elseif command == 'cc' then
  410.             equip(sets.TP.cc)
  411.             sets.aftercast.TP = sets.TP.cc
  412.                 add_to_chat(100, 'Counterstance Set')
  413.         elseif command == 'PDT' then
  414.             equip(sets.PDT)
  415.             sets.aftercast.TP = sets.PDT
  416.                 add_to_chat(100, 'PDT Set')
  417.         elseif command == 'MDT' then
  418.             if sets.aftercast.TP == sets.MDT then
  419.                 if player.status == 'Engaged' then 
  420.                     equip(sets.TP.DD)
  421.                     sets.aftercast.TP = sets.TP.DD
  422.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  423.                     sets.precast['Shijin Spiral'] = sets.precast.SSDD
  424.                     add_to_chat(100, 'Normal TP Set')
  425.                 else
  426.                     equip(sets.aftercast.Idle)
  427.                     sets.aftercast.TP = sets.TP.DD
  428.                     sets.precast['Victory Smite'] = sets.precast.VSDD
  429.                     sets.precast['Shijin Spiral'] = sets.precast.SSDD
  430.                     add_to_chat(100, 'Normal TP Set + idle')
  431.                 end
  432.             else
  433.                 equip(sets.MDT)
  434.                 sets.aftercast.TP = sets.MDT
  435.                 add_to_chat(100, 'MDT Set')
  436.             end
  437.         elseif command == 'AutoBoost' then
  438.             if autoboost == 1 then
  439.                 autoboost = 0
  440.                 add_to_chat(100, 'Auto Boost Before WS = OFF')
  441.             else
  442.                 autoboost = 1
  443.                 add_to_chat(100, 'Auto Boost Before WS = ON')
  444.             end
  445.     end
  446. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement