JSHidaka

Lazy RNG. Lua

Sep 8th, 2014
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.59 KB | None | 0 0
  1. function get_sets()
  2. set_mode(player.sub_job)
  3.         send_command('bind ^d ara start')
  4.         send_command('bind !d ara stop')
  5.     ranged_ws = S{"Flaming Arrow", "Piercing Arrow", "Dulling Arrow", "Sidewinder", "Arching Arrow",
  6.     "Empyreal Arrow", "Refulgent Arrow", "Apex Arrow", "Namas Arrow", "Jishnu's Radiance", "Hot Shot", "Coronach",
  7.     "Split Shot", "Sniper Shot", "Slug Shot", "Heavy Shot", "Detonator", "Last Stand", "Trueflight","Wildfire"}
  8.    
  9.     auto = 0
  10.     autows = 1 -- 1 Coronach 2 Last Stand 3 Wildfire
  11.     autowskill = 0
  12.     autowarja = 0
  13.     autobarrage = 0
  14.     tpammoind = 1 -- Adlivun Bullet default
  15.     wsammoind = 2 -- Achiyal. Bullet default
  16.  
  17. --JA's Precast Sets
  18.     sets.precast = {}
  19.     sets.precast['Double Shot'] = {head="Sylvan Gapette +2"}
  20.     sets.precast.Scavenge = {feet="Orison Socks +1"}
  21.     sets.precast['Bounty Shot'] = {hands="Syl. Glvltte. +2", waist="Chaac Belt"}
  22.     sets.precast.Camouflage = {body="Orion jerkin +1"}
  23.     sets.precast.Shadowbind = {hands="Orion bracers +1"}
  24.     ammo = {'113', '119'}
  25.     sets.ammo = {}
  26.     sets.ammo['119'] = {ammo="Achiyal. Bullet"}
  27.     sets.ammo['113'] = {ammo="Adlivun Bullet"}
  28.  
  29. -- TP SET
  30. --Preshot
  31.     sets.preshot = {
  32.     head="Sylvan Gapette +2",
  33.     body="Sylvan caban +2",
  34.     hands="Iuitl Wristbands +1",
  35.     legs="Nahtirah Trousers",
  36.     feet="Arcadian socks",
  37.     waist="Impulse Belt",
  38. }
  39.     Alist = {'Disabled', 'Enabled'}
  40.     WSin = {'Coronach', 'Last Stand', 'Wildfire', 'Trueflight'}
  41.     TPindex = {'Normal', 'Accuracy', 'STP', 'WarSTP'}  
  42.     sets.TP = {}
  43.     sets.TP.Normal = {
  44.     head="Arcadian Beret +1",
  45.     body="Orion Jerkin +1",
  46.     hands="Manibozho Gloves",
  47.     legs="Orion Braccae +1",
  48.     feet="Orion Socks +1",
  49.     neck="Ej Necklace",
  50.     waist="Scout's Belt",
  51.     left_ear="Tripudio Earring",
  52.     right_ear="Novia Earring",
  53.     left_ring="Hajduk Ring",
  54.     right_ring="Paqichikaji Ring",
  55.     back="Sylvan Chlamys",
  56. }
  57.     sets.TP.Accuracy = set_combine(sets.TP.Normal, {
  58.     legs="Orion Braccae +1",
  59.     neck="Ej Necklace",
  60.     waist="Scout's Belt",
  61.     left_ring="Hajduk Ring",
  62.     right_ring="Paqichikaji Ring",
  63.     back="Lutian Cape",
  64. })
  65.     sets.TP.STP = set_combine(sets.TP.Normal, {
  66.     legs="Aeto. Trousers +1",
  67.     neck="Ocachi Gorget",
  68.     waist="Scout's Belt",
  69.     left_ear="Volley Earring",
  70.     right_ear="Novia Earring",
  71. --  hands="Seiryu's Kote",
  72.     left_ring="Rajas Ring",
  73. --    left_ring="Hajduk Ring",
  74.     right_ring="Paqichikaji Ring",
  75.     back="Lutian Cape",
  76. })
  77.  
  78. sets.TP.WarSTP ={
  79.     sub="Legion Scutum",
  80.     head="Arcadian Beret +1",
  81.     body="Kyujutsugi",
  82.     hands="Seiryu's Kote",
  83.     legs="Aeto. Trousers +1",
  84.     feet="Orion Socks +1",
  85.     neck="Ocachi Gorget",
  86.     waist="Patentia Sash",
  87.     left_ear="Volley Earring",
  88.     right_ear="Tripudio Earring",
  89.     left_ring="Rajas Ring",
  90.     right_ring="Paqichikaji Ring",
  91.     back="Lutian Cape",
  92. }
  93.  
  94.     sets.WS = {}
  95. --Coronach
  96.     sets.WS.Coronach = {}
  97.     sets.WS.Coronach.Normal = {
  98.     head="Arcadian Beret +1",
  99.     body="Orion Jerkin +1",
  100.     hands="Orion Bracers +1",
  101.     legs="Orion Braccae +1",
  102.     feet="Orion Socks +1",
  103.     neck="Breeze Gorget",
  104.     waist="Breeze Belt",
  105.     left_ear="Flame Pearl",
  106.     right_ear="Flame Pearl",
  107.     left_ring="Bellona's Ring",
  108.     right_ring="Pyrosoul Ring",
  109.     back="Sylvan Chlamys",
  110. }
  111.  
  112.     sets.WS.Coronach.Accuracy = set_combine(sets.WS.Coronach.Normal, {
  113.     left_ring="Hajduk Ring",
  114.     right_ring="Paqichikaji Ring",
  115.     back="Lutian Cape",
  116. })
  117.  
  118.     sets.WS.Coronach.STP = set_combine(sets.WS.Coronach.Normal, {
  119.     legs="Aeto. Trousers +1",
  120.     neck="Ocachi Gorget",
  121.     left_ring="Rajas Ring",
  122.     back="Lutian Cape",
  123. })
  124.     sets.WS.Coronach.WarSTP = set_combine(sets.WS.Coronach.Normal, {
  125.     legs="Aeto. Trousers +1",--5
  126.     neck="Ocachi Gorget",--5
  127.     body="Kyujutsugi",--5
  128.     left_ring="Rajas Ring",--5
  129.     right_ring="Paqichikaji Ring",
  130.     right_ear="Tripudio Earring",--5
  131.     back="Sylvan Chlamys",--5
  132. })
  133. --Wildfire
  134.     sets.WS['Wildfire']= {}
  135.     sets.WS['Wildfire'].Normal ={
  136.     head="Umbani Cap",
  137.     body="Orion Jerkin +1",
  138.     hands="Orion Bracers +1",
  139.     legs="Orion Braccae +1",
  140.     feet="Orion Socks +1",
  141.     neck="Stoicheion Medal",
  142.     waist="Scout's Belt",
  143.     left_ear="Novio Earring",
  144.     right_ear="Hecate's Earring",
  145.     left_ring="Stormsoul Ring",
  146.     right_ring="Stormsoul Ring",
  147.     back="Toro Cape",
  148. }
  149.     sets.WS['Wildfire'].Accuracy = sets.WS['Wildfire'].Normal
  150.     sets.WS['Wildfire'].STP = sets.WS['Wildfire'].Normal
  151.     sets.WS['Wildfire'].WarSTP = sets.WS['Wildfire'].Normal
  152. --Trueflight
  153.     sets.WS['Trueflight']= {}
  154.     sets.WS['Trueflight'].Normal ={
  155.     head="Umbani Cap",
  156.     body="Orion Jerkin +1",
  157.     hands="Orion Bracers +1",
  158.     legs="Orion Braccae +1",
  159.     feet="Orion Socks +1",
  160.     neck="Stoicheion Medal",
  161.     waist="Scout's Belt",
  162.     left_ear="Novio Earring",
  163.     right_ear="Hecate's Earring",
  164.     left_ring="Stormsoul Ring",
  165.     right_ring="Stormsoul Ring",
  166.     back="Toro Cape",
  167. }
  168.     sets.WS['Trueflight'].Accuracy = sets.WS['Trueflight'].Normal
  169.     sets.WS['Trueflight'].STP = sets.WS['Trueflight'].Normal
  170.     sets.WS['Trueflight'].WarSTP = sets.WS['Trueflight'].Normal
  171. --Last Stand   
  172.     sets.WS['Last Stand'] = {}
  173.     sets.WS['Last Stand'].Normal = {
  174.         head="Arcadian Beret +1",
  175.         body="Orion Jerkin +1",
  176.         hands="Orion Bracers +1",
  177.         legs="Orion Braccae +1",
  178.         feet="Orion Socks +1",
  179.         neck="Light Gorget",
  180.         waist="Light Belt",
  181.         left_ear="Volley Earring",
  182.         right_ear="Moonshade Earring",
  183.         left_ring="Stormsoul Ring",
  184.         right_ring="Stormsoul Ring",
  185.         back="Lutian Cape",
  186. }
  187.     sets.WS['Last Stand'].Accuracy = set_combine(sets.WS['Last Stand'].Normal, {
  188.         left_ring="Hajduk Ring",
  189.         right_ring="Paqichikaji Ring",
  190.         back="Lutian Cape",
  191. })
  192.  
  193.     sets.WS['Last Stand'].STP = set_combine(sets.WS['Last Stand'].Normal, {
  194.         legs="Aeto. Trousers +1",
  195.         neck="Ocachi Gorget",
  196.         right_ring="Rajas Ring",
  197.         back="Lutian Cape",
  198. })
  199.     sets.WS['Last Stand'].WarSTP = set_combine(sets.WS['Last Stand'].Normal, {
  200.         legs="Aeto. Trousers +1",
  201.         neck="Ocachi Gorget",
  202.         right_ring="Rajas Ring",
  203.         back="Lutian Cape",
  204. })
  205.  
  206. -- Others WS
  207.     sets.WS.others = {
  208.         head="Arcadian Beret +1",
  209.         body="Orion Jerkin +1",
  210.         hands="Orion Bracers +1",
  211.         legs="Orion Braccae +1",
  212.         feet="Orion Socks +1",
  213.         neck="Ocachi Gorget",
  214.         waist="Scout's Belt",
  215.         left_ear="Volley Earring",
  216.         right_ear="Moonshade Earring",
  217.         left_ring="Stormsoul Ring",
  218.         right_ring="Stormsoul Ring",
  219.         back="Lutian Cape",
  220. }
  221. -- Barrage
  222.     sets.Barrage = set_combine(sets.TP.Accuracy, {
  223.     hands="Orion Bracers +1",
  224.     legs="Desultor Tassets",
  225. })
  226.  
  227. sets.melee ={
  228.     head={ name="Uk'uxkaj Cap", augments={'Haste+2','"Snapshot"+2','STR+8',}},
  229.     body="Thaumas Coat",
  230.     hands={ name="Iuitl Wristbands", augments={'Phys. dmg. taken -3%','"Snapshot"+1',}},
  231.     legs="Kaabnax Trousers",
  232.     feet={ name="Iuitl Gaiters", augments={'Phys. dmg. taken -3%','Rng.Atk.+7',}},
  233.     neck="Asperity Necklace",
  234.     waist="Patentia Sash",
  235.     left_ear="Brutal Earring",
  236.     right_ear="Suppanomimi",
  237.     left_ring="Rajas Ring",
  238.     right_ring="Epona's Ring",
  239.     back="Letalis Mantle",
  240. }
  241. end
  242.  
  243. function precast(spell,action)
  244.  
  245.     if spell.type:lower() == 'weaponskill' then
  246.         if (spell.target.distance >4 and not ranged_ws[spell.name]) or (spell.target.distance >22) then
  247.             add_to_chat(125,'> > Cancelled Too far > > '..spell.name)  
  248.             cancel_spell()
  249.             return
  250.         end
  251.        
  252.         if sets.WS[spell.english] then
  253.             if sets.WS[spell.english][TPindex[ind]] ~= nil then
  254.                 add_to_chat(100,'===='..TPindex[ind]..'====> WS:'..spell.name )
  255.                 equip(sets.WS[spell.english][TPindex[ind]])
  256.                 equip(sets.ammo[ammo[wsammoind]])
  257.             else
  258.                 add_to_chat(100,'===OTHER===> WS:'..spell.name )
  259.                 equip(sets.WS.others)
  260.             end
  261.         else
  262.             add_to_chat(100,'===OTHER===> WS:'..spell.name )
  263.             equip(sets.WS.others)
  264.         end
  265.        
  266.     end
  267.  
  268.     if sets.precast[spell.name] then
  269.         add_to_chat(100,'=================> JA:'..spell.name )
  270.         equip(sets.precast[spell.name])
  271.     end
  272.    
  273.     if spell.name == 'Ranged' then
  274.             if buffactive.Barrage then
  275.                 equip(sets.Barrage)
  276.                 equip(sets.ammo[ammo[wsammoind]])
  277.                 add_to_chat(160,'> > BARRAGE!!! > > ') 
  278.             else
  279.                 equip(sets.preshot)
  280.                 equip(sets.ammo[ammo[tpammoind]])
  281.             end
  282.     end
  283.    
  284. -- Auto JA's   
  285.     if spell.name == 'Ranged' then
  286.         if windower.ffxi.get_ability_recasts()[52] < 1 and not buffactive.amnesia and auto == 1 then
  287.             cancel_spell()
  288.             send_command('@input /ja "Decoy Shot" <me>; wait 1; input /shoot <t>;')
  289.             return
  290.         elseif windower.ffxi.get_ability_recasts()[126] < 1 and not buffactive.amnesia and auto == 1 then
  291.             cancel_spell()
  292.             send_command('@input /ja "Double Shot" <me>; wait 1; input /shoot <t>;')
  293.             return
  294.         elseif windower.ffxi.get_ability_recasts()[125] < 1 and not buffactive.amnesia and autobarrage == 1 then
  295.             cancel_spell()
  296.             send_command('@input /ja "Sharpshot" <me>; wait 1; input /ja "Barrage" <me>; wait 1; input /shoot <t>;')
  297.             return
  298.         elseif player.sub_job == 'SAM' then
  299.             if windower.ffxi.get_ability_recasts()[138] < 1 and not buffactive.amnesia and not buffactive.hasso and (player.equipment.main == "Prester" or player.equipment.main == "Mekki Shakki") then
  300.                 cancel_spell()
  301.                 send_command('@input /ja "Hasso" <me>; wait 1.5; input /shoot <t>')
  302.             end
  303.             if windower.ffxi.get_ability_recasts()[140] < 1 and player.tp > 1400 and not buffactive.amnesia and autowskill == 1 then
  304.                 cancel_spell()
  305.                 send_command('@input /ja "Sekkanoki" <me>; wait 1.5; input /ja "Meditate" <me>; wait 1.5; input /shoot <t>')
  306.             end
  307.         elseif player.sub_job == 'WAR' then
  308.             if windower.ffxi.get_ability_recasts()[1] < 1 and not buffactive.amnesia and autowarja == 1 then
  309.                 cancel_spell()
  310.                 send_command('@input /ja "Berserk" <me>; wait 1.5; input /shoot <t>')
  311.             end
  312.             if windower.ffxi.get_ability_recasts()[2] < 1 and not buffactive.amnesia and not buffactive.warcry and autowarja == 1 then
  313.                 cancel_spell()
  314.                 send_command('@input /ja "Warcry" <me>; wait 1.5; input /shoot <t>')
  315.             end
  316.         end
  317.     end
  318.  
  319.    
  320. -- Auto WeaponSkill
  321.     if spell.name == 'Ranged' then
  322.         if player.tp > 999 and autowskill == 1 and not buffactive.amnesia then
  323.             cancel_spell()
  324.             send_command('@input /ws "'..WSin[autows]..'" <t>; wait 4; input /shoot <t>;')
  325.         end
  326.     end
  327.    
  328. end
  329.  
  330. function midcast(spell,action)
  331.         if spell.name == 'Ranged' then
  332.             if buffactive.Barrage then
  333.                 equip(sets.Barrage)
  334.             else
  335.                 equip(sets.TP[TPindex[ind]])
  336.             end
  337.         end
  338. end
  339.  
  340. function aftercast(spell,action)
  341.     if spell.name == 'Ranged' then
  342.         equip(sets.TP[TPindex[ind]])
  343.         equip(sets.ammo[ammo[tpammoind]])      
  344.     end
  345.     if player.sub_job == 'NIN' and sets.melee then
  346.         equip(sets.melee)
  347.     end
  348. end
  349.  
  350. function status_change(new,old)
  351.     if player.sub_job == 'NIN' then
  352.         if new == 'Engaged' and sets.Melee then
  353.             equip(sets.Melee)
  354.         else
  355.             equip(sets.Melee)
  356.         end
  357.     end
  358. end
  359.  
  360. function sub_job_change(new, old)
  361.     set_mode(new)
  362. end
  363.  
  364. function set_mode(sub_job)
  365.     if sub_job == 'WAR' then
  366.         ind = 4 -- WARSTP
  367.     elseif sub_job == 'SAM' then
  368.         ind = 3 -- STP
  369.     else
  370.         ind = 1 -- Normal
  371.     end
  372. send_command('gs c Report')
  373. end
  374.  
  375. function self_command(command)
  376.         if command == 'TPBullet' then
  377.             tpammoind = tpammoind +1
  378.             if tpammoind > #ammo then
  379.                 tpammoind = 1
  380.             end
  381.             add_to_chat(028,'----- TP Ammo changed to '..ammo[tpammoind]..' -----')
  382.             equip(sets.ammo[ammo[tpammoind]])      
  383.         elseif command == 'WSBullet' then
  384.             wsammoind = wsammoind +1
  385.             if wsammoind > #ammo then
  386.                 wsammoind = 1
  387.             end
  388.             add_to_chat(028,'----- WS Ammo changed to '..ammo[wsammoind]..' -----')
  389.             equip(sets.ammo[ammo[wsammoind]])      
  390.  
  391.         elseif command == 'TPset' then
  392.             ind = ind +1
  393.             if ind > #TPindex then
  394.                 ind = 1
  395.             end
  396.             add_to_chat(028,'----- TP Set changed to '..TPindex[ind]..' -----')
  397.             equip(sets.TP[TPindex[ind]])   
  398.  
  399.         elseif command == 'Report' then
  400.             add_to_chat(060,'----=========================================----')   
  401.             add_to_chat(050,'----- Current TP/WS Set:'..TPindex[ind])  
  402.             add_to_chat(050,'----- Current TP Ammo:'..sets.ammo[ammo[tpammoind]].ammo)             
  403.             add_to_chat(050,'----- Current WS Ammo:'..sets.ammo[ammo[wsammoind]].ammo)             
  404.             add_to_chat(050,'----- Auto Barrage:'..Alist[autobarrage+1])       
  405.             add_to_chat(050,'----- Auto RNG JA\'s:'..Alist[auto+1])    
  406.             add_to_chat(050,'----- Auto WAR JA\'s:'..Alist[autowarja+1])
  407.             add_to_chat(050,'----- Auto WS:'..Alist[autowskill+1])     
  408.             add_to_chat(050,'----- Auto WS is:'..WSin[autows])     
  409.             add_to_chat(060,'----=========================================----')           
  410.         elseif command == 'auto' then
  411.         if auto == 0 then
  412.                     auto = 1
  413.                     send_command('@input /echo Auto RNG JA ON')
  414.                 else
  415.                     auto = 0
  416.                     send_command('@input /echo Auto RNG JA OFF')
  417.                 end
  418.         elseif command == 'autowarja' then
  419.         if autowarja == 0 then
  420.                     autowarja = 1
  421.                     send_command('@input /echo Auto WAR JA ON')
  422.                 else
  423.                     autowarja = 0
  424.                     send_command('@input /echo Auto WAR JA OFF')
  425.                 end
  426.         elseif command == 'autobarrage' then
  427.         if autobarrage == 0 then
  428.                     autobarrage = 1
  429.                     send_command('@input /echo Auto Barrage ON')
  430.                 else
  431.                     autobarrage = 0
  432.                     send_command('@input /echo Auto Barrage OFF')
  433.                 end    
  434.         elseif command == 'autowskill' then            
  435.         if autowskill == 0 then
  436.                     autowskill = 1
  437.                     send_command('@input /echo Auto WS ON')
  438.                 else
  439.                     autowskill = 0
  440.                     send_command('@input /echo Auto WS OFF')
  441.                 end                            
  442.         elseif command == 'autows' then
  443.             autows = autows +1
  444.             if autows > #WSin then
  445.                 autows = 1
  446.             end
  447.             add_to_chat(028,'----- Auto WS Changed to: '..WSin[autows]..' -----')  
  448.         elseif command == 'test' then
  449.         newtp = player.tp - oldtp
  450.         send_command('@input /echo "'..newtp..'"') 
  451.         end
  452.        
  453. end
Advertisement
Add Comment
Please, Sign In to add comment