Advertisement
Guest User

Gukai Rng Lua

a guest
Jul 12th, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.57 KB | None | 0 0
  1. function get_sets()
  2. TPback = { name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','"Store TP"+10',}}
  3. DEXback = { name="Belenus's Cape", augments={'DEX+20','Rng.Acc.+20 Rng.Atk.+20','DEX+10','Crit.hit rate+10',}}
  4. AGIback = { name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}}
  5. SNAPback = { name="Belenus's Cape", augments={'"Snapshot"+10',}}
  6.  
  7.  
  8. -------------------------------------------
  9.     -- aftercast for returning to TP and Idle sets
  10.     -- the 'self command' area will change the set defined as aftercast.TP
  11. -------------------------------------------    
  12.     sets.aftercast = {}
  13.     sets.engaged = {}
  14.     sets.precast = {}
  15.     sets.midcast = {}
  16.     sets.midcast.Ranged = {}
  17.  
  18.     sets.aftercast.Idle = {
  19.         head="Orion Beret +3",
  20.         neck="Wiglen Gorget",
  21.         lear="Infused Earring",
  22.         rear="Ethereal Earring",
  23.         body="Mummu Jacket +1",
  24.         hands="Garden Bangles",
  25.         lring="Sheltered Ring",
  26.         rring="Shneddick Ring",
  27.         back="Shadow Mantle",
  28.         waist="Kwahu Kachina Belt",
  29.         legs="Taeon Tights",
  30.         feet="Fajin Boots"}
  31.  
  32. -------------------------------------------
  33. -- The outermost table has to be named "sets", but
  34. -- otherwise there are no restrictions.
  35. -------------------------------------------
  36.  
  37.     sets.engaged.TPnormal = {
  38.         head="Meghanada Visor +1",
  39.         neck="Asperity Necklace",
  40.         lear="Bladeborn Earring",
  41.         rear="Steelflash Earring",
  42.         body="Thaumas Coat",
  43.         hands="Meg. Gloves +2",
  44.         lring="Hetairoi Ring",
  45.         rring="Epona's Ring",
  46.         back="Letalis Mantle",
  47.         waist="Goading Belt",
  48.         legs="Taeon Tights",
  49.         feet="Taeon Boots"} --8+4+4+5+6+4=31 haste
  50.        
  51.     sets.engaged.TPacc = set_combine(sets.engaged.TPnormal, {
  52.         neck="Erudit. Necklace",
  53.         body="Meg. Cuirie +2",
  54.         lring="Patricius Ring",
  55.         rring="Mars's Ring",
  56.         waist="Sailfi Belt +1"}) --8+2+3+8+6+4=31 haste
  57.    
  58.     sets.aftercast.TP = sets.engaged.TPnormal
  59. -------------------------------------------
  60.     -- Ranged sets:  
  61.     --   Precast is Snapshot (SS) / Rapid Shot (RS)
  62.          -- Snapshot reduces aiming delay by %, Rapid Shot reduces aiming delay by chance procs
  63.          -- Snapshot goal 70 without Flurry (merits 5/5 = 10)
  64.          -- Flurry build allows for more RS to be input because 70 SS achieved easier
  65.     --   Midcast is the TP builds, showing a normal and acc build
  66. -------------------------------------------
  67.     sets.precast.Ranged = {
  68.         head="Amini Gapette +1", --7/0
  69.         lear="Enervating Earring", --just in case instant-shot
  70.         rear="Telos Earring", --just in case instant-shot
  71.         body="Amini Caban +1",
  72.         hands="Carmine Fin. Ga. +1", --8/11
  73.         back=SNAPback, --10/0
  74.         waist="Impulse Belt", --3/0
  75.         legs="Adhemar Kecks", --9/10
  76.         feet="Meg. Jam. +2"} --10/0
  77.         --snapshot: 10 merits+7+8+10+3+9+10=57
  78.  
  79.     sets.precast.Ranged.Flurry = {
  80.         head="Orion Beret +3", --0/18
  81.         lear="Enervating Earring", --just in case instant-shot
  82.         rear="Telos Earring", --just in case instant-shot
  83.         body="Amini Caban +1",
  84.         hands="Carmine Fin. Ga. +1", --8/11
  85.         back=SNAPback, --10/0
  86.         waist="Yemaya Belt", --0/5
  87.         legs="Adhemar Kecks", --9/10
  88.         feet="Arcadian Socks +1"} --0/6
  89.         --snapshot: 30 flurry II + 10 merits+8+10+9=67
  90.  
  91.     sets.midcast.Ranged.TPnormal = {
  92.         head="Orion Beret +3", --0
  93.         neck="Ocachi Gorget", --5
  94.         lear="Enervating Earring", --4
  95.         rear="Telos Earring", --5
  96.         body="Mummu Jacket +1", --5
  97.         hands="Amini Glove. +1", --9
  98.         lring="Paqichikaji Ring", --0
  99.         rring="Bellona's Ring", --0
  100.         back=TPback, --10
  101.         waist="Yemaya Belt", --4
  102.         legs="Amini Brague +1", --10
  103.         feet="Meg. Jam. +2"} --0
  104.        
  105.         -- STP totals: 5+4+5+5+9+10+4+10=52 STP, w/o weapon factoring
  106.         -- STP totals: 62 for Fomal & Fail
  107.        
  108.         --1384 racc yoichi +knife/shield
  109.         --1284 racc fomal/fail +knife/shield
  110.        
  111.         --normal 27.3tp w/fomal   racc 22.8 w/fomal
  112.             --normal 19.9tp ws   racc 19.0 ws
  113.         --normal 23.2tp w/yoichi   racc 19.1 w/yoichi
  114.             --normal 16.5tp ws   racc 15.7 ws
  115.         --normal 25.5tp w/fail   racc 21.3 w/fail
  116.             --normal 18.6tp ws   racc 17.5 ws
  117.            
  118.         --i need 30 more stp for yoichi bow... can swap out neck for iskur when I get it
  119.         --That would be +3 stp and +30 racc.  swap out rings for +10stp and -22racc
  120.         --Net so far +13 stp +8 racc
  121.         --with yoichi, not possible to get 30stp, but the above changes would allow Fail to 4hit
  122.        
  123.     sets.midcast.Ranged.TPacc = set_combine(sets.midcast.Ranged.TPnormal, {
  124.         neck="Erudit. Necklace", --6
  125.         body="Meg. Cuirie +2", --0
  126.         hands="Meg. Gloves +2", --0
  127.         waist="Kwahu Kachina Belt", --0
  128.         legs="Meg. Chausses +2"}) --0
  129.         -- STP totals: 52-5+6-5-9-4-10=25
  130.  
  131.     sets.aftercast.Ranged = sets.midcast.Ranged.TPnormal
  132.    
  133. -------------------------------------------
  134.     -- STR WS : Refulgent Arrow
  135.     -- So it's easy to determine if new obtained gear can replace anything, listed str stats per piece
  136. -------------------------------------------
  137.     sets.precast.WSStr = {
  138.         head="Orion Beret +3", --33
  139.         neck="Fotia Gorget",
  140.         lear="Moonshade Earring",
  141.         rear="Ishvara Earring",
  142.         body="Meg. Cuirie +2", --34
  143.         hands="Meg. Gloves +2", --23
  144.         lring="Apate Ring", --6
  145.         rring="Rajas Ring", --5
  146.         back=AGIback,
  147.         waist="Fotia Belt",
  148.         legs="Meg. Chausses +2", --40
  149.         feet="Meg. Jam. +2"} --23
  150.         -- STP totals: 52-5-4-5-5-9+3+5-10-4-10=8
  151.        
  152.     sets.precast.WSStrAcc = set_combine(sets.precast.WSStr, {
  153.         rring="Paqichikaji Ring"})
  154.         -- STP totals: 8-5=3
  155.    
  156. -------------------------------------------
  157.     -- STR/AGI WS Mix : Flaming Arrow, Piercing Arrow, Dulling Arrow, Sidewinder, Blast Arrow, Arching Arrow, Empyreal Arrow, Namas Arrow
  158.     -- Apex Arrow ws also included even though it's purely AGI, the main modifiers for the above WS's are AGI anyways
  159.     -- So it's easy to determine if new obtained gear can replace anything, listed str/agi stats per piece
  160. -------------------------------------------
  161.     sets.precast.WSStrAgi = {
  162.         head="Orion Beret +3", --33/39
  163.         neck="Fotia Gorget",
  164.         lear="Moonshade Earring",
  165.         rear="Ishvara Earring",
  166.         body="Meg. Cuirie +2", --34/41
  167.         hands="Meg. Gloves +2", --23/19
  168.         lring="Apate Ring", --6/6
  169.         rring="Cho'j Band",     --rring="Rajas Ring", --5/0
  170.         back=AGIback, --0/30
  171.         waist="Fotia Belt",
  172.         legs="Meg. Chausses +2", --40/42
  173.         feet="Meg. Jam. +2"} --23/54
  174.         -- STP totals: 52-5-4-5-5-9+3+5-10-4-10=8
  175.        
  176.     sets.precast.WSStrAgiAcc = set_combine(sets.precast.WSStrAgi, {
  177.         rring="Paqichikaji Ring"})
  178.  
  179. -------------------------------------------
  180.     -- AGI WS Mix : All Marksmanship WS's (except Trueflight/Wildfire -magic ws- & Coronach -Relic WS-)
  181.     -- So it's easy to determine if new obtained gear can replace anything, listed agi stats per piece
  182. -------------------------------------------
  183.     sets.precast.WSAgi = {
  184.         head="Orion Beret +3", --39
  185.         neck="Fotia Gorget",
  186.         lear="Moonshade Earring",
  187.         rear="Ishvara Earring",
  188.         body="Meg. Cuirie +2", --41
  189.         hands="Meg. Gloves +2", --19
  190.         lring="Apate Ring", --6
  191.         rring="Petrov Ring", --3
  192.         back=AGIback, --30
  193.         waist="Fotia Belt",
  194.         legs="Meg. Chausses +2", --42
  195.         feet="Meg. Jam. +2"} --54
  196.        
  197.     sets.precast.WSAgiAcc = set_combine(sets.precast.WSAgi, {
  198.         rring="Paqichikaji Ring"})
  199.    
  200. -------------------------------------------
  201.     -- DEX WS : Jishnu's Radiance
  202.     -- So it's easy to determine if new obtained gear can replace anything, listed dex stats per piece
  203. -------------------------------------------
  204.     sets.precast.WSDex = {
  205.         head="Orion Beret +3", --34
  206.         neck="Fotia Gorget",
  207.         lear="Moonshade Earring",
  208.         rear="Sherida Earring", --5
  209.         body="Meg. Cuirie +2", --45
  210.         hands="Meg. Gloves +2", --50
  211.         lring="Begrudging Ring",
  212.         rring="Apate Ring", --6
  213.         back=DEXback,
  214.         waist="Fotia Belt",
  215.         legs="Darraigner's Brais",
  216.         feet="Meg. Jam. +2"} --34
  217.        
  218.     sets.precast.WSDexAcc = set_combine(sets.precast.WSDex, {
  219.         rring="Paqichikaji Ring"})
  220.        
  221. -------------------------------------------
  222.     -- Magic WS Mix : Trueflight & Wildfire
  223.     -- They have an AGI Modifier so using that as a base and applying gear with MAB
  224.     -- Applying notes for gear chosen
  225. -------------------------------------------
  226.     sets.precast.WSMAB = {
  227.         head="Orion Beret +3", --39 agi, keeping for racc
  228.         neck="Sanctity Necklace", --10 mab/mac/racc
  229.         lear="Friomisi Earring", --10 mab
  230.         rear="Crematio Earring", --6 mab
  231.         body="Samnuha Coat", --34 mab, 36 mac, 8 mbd II
  232.         hands="Carmine Fin. Ga. +1", --42 mab
  233.         lring="Apate Ring", --6 agi
  234.         rring="Acumen Ring", --4 mab
  235.         back=AGIback, --30 agi
  236.         waist="Eschan Stone", --7 mab/mac, 15 racc/ratk
  237.         legs="Meg. Chausses +2", --42 agi, keeping for racc
  238.         feet="Meg. Jam. +2"} --need adhemar feet
  239.        
  240.     sets.precast.WSMABAcc = set_combine(sets.precast.WSMAB, {
  241.         rring="Paqichikaji Ring"})
  242.    
  243. -------------------------------------------
  244.     -- Precast sets for fastcast spells
  245. -------------------------------------------
  246.     sets.precast.Fastcast = set_combine(sets.engaged.TPnormal, {
  247.         head="Athos's Chapeau",
  248.         neck="Voltsurge Torque",
  249.         lear="Loquac. Earring",
  250.         rear="Enchntr. Earring +1",
  251.         body="Samnuha Coat",
  252.         hands="Leyline Gloves",
  253.         lring="Lebeche Ring",
  254.         rring="Prolix Ring",
  255.         waist="Sailfi Belt +1",
  256.         legs="Limbo Trousers"})
  257.    
  258.     sets.precast.Utsusemi = set_combine(sets.precast.Fastcast, {
  259.         neck="Magoraga Beads"})
  260.        
  261. -------------------------------------------
  262.     -- Job Ability sets
  263. -------------------------------------------
  264.        
  265.     sets.precast["Eagle Eye Shot"] = set_combine(sets.precast.WSDex, {legs="Arc. Braccae +1"})
  266.     sets.precast.Sharpshot = {legs="Orion Braccae +1"}
  267.     sets.precast.Scavage = {feet="Orion Socks +1"}
  268.     sets.precast.Camouflage = {body="Orion Jerkin +2"}
  269.     sets.precast.Barrage = {hands="Orion Bracers +3"}
  270.     sets.precast.Shadowbind = {hands="Orion Bracers +3"}
  271.     sets.precast["Velocity Shot"] = {body="Amini Caban +1"}
  272.     sets.precast["Unlimited Shot"] = {feet="Amini Bottillons +1"}
  273.     sets.precast["Flashy Shot"] = {hands="Arc. Bracers +1"}
  274.     sets.precast["Stealth Shot"] = {feet="Arcadian Socks +1"}
  275.     sets.precast["Double Shot"] = {head="Amini Gapette +1"}
  276.     sets.precast["Bounty Shot"] = {hands="Amini Glove. +1"}
  277.     sets.precast.Waltz = {hands="Slither Gloves +1"}
  278.    
  279.     send_command('input /macro book 3')
  280. end
  281.  
  282. function precast(spell,action)
  283.     if spell.action_type == 'Ranged Attack' and buffactive['Flurry'] then
  284.         equip(sets.precast.Ranged.Flurry)
  285.     elseif sets.precast[spell.english] then
  286.         equip(sets.precast[spell.english])
  287.     elseif spell.type == 'WeaponSkill' then
  288.         if sets.aftercast.TP == sets.engaged.TPnormal then
  289.             if spell.english == 'Refulgent Arrow' then
  290.                 equip(sets.precast.WSStr)
  291.             elseif spell.english == 'Flaming Arrow' or 'Piercing Arrow' or 'Dulling Arrow' or 'Blast Arrow' or 'Arching Arrow' or 'Empyreal Arrow' or 'Namas Arrow' then
  292.                 equip(sets.precast.WSStrAgi)
  293.             elseif spell.english == 'Sidewinder' or 'Apex Arrow' then
  294.                 equip(sets.precast.WSStrAgiAcc)
  295.             --elseif spell.skill == 'Marksmanship' and spell.name ~= 'Last Stand' then
  296.             --or 'Trueflight' or 'Wildfire') then
  297.                 --equip(sets.precast.WSAgi)
  298.             elseif spell.english == 'Last Stand' then
  299.                 equip(sets.precast.WSAgiAcc)
  300.             elseif spell.english == 'Trueflight' or 'Wildfire' then
  301.                 equip(sets.precast.WSMAB)
  302.             elseif spell.english == "Jishnu's Radiance" then
  303.                 equip(sets.precast.WSDex)
  304.             else equip(sets.precast.WSDex)  -- when mainhand is a dagger
  305.             end
  306.         elseif sets.aftercast.TP == sets.engaged.TPacc then
  307.             if spell.english == 'Refulgent Arrow' then
  308.                 equip(sets.precast.WSStrAcc)
  309.             elseif spell.english == 'Flaming Arrow' or 'Piercing Arrow' or 'Dulling Arrow' or 'Blast Arrow' or 'Arching Arrow' or 'Empyreal Arrow' or 'Namas Arrow' then
  310.                 equip(sets.precast.WSStrAgiAcc)
  311.             elseif spell.english == 'Sidewinder' or 'Apex Arrow' then
  312.                 equip(sets.precast.WSStrAgiAcc)
  313.             elseif spell.skill == 'Marksmanship' and spell.name ~= ('Last Stand' or 'Trueflight' or 'Wildfire') then
  314.                 equip(sets.precast.WSAgiAcc)
  315.             elseif spell.english == 'Last Stand' then
  316.                 equip(sets.precast.WSAgiAcc)
  317.             elseif spell.english == 'Trueflight' or 'Wildfire' then
  318.                 equip(sets.precast.WSMABAcc)
  319.             elseif spell.english == "Jishnu's Radiance" then
  320.                 equip(sets.precast.WSDexAcc)
  321.             else equip(sets.precast.WSDexAcc)  -- when mainhand is a dagger
  322.             end
  323.         end
  324.     end
  325. end
  326.  
  327. function midcast(spell,action)
  328.     if spell.name == "Ranged" then
  329.         equip(sets.aftercast.Ranged)
  330.     end
  331.     if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  332.         if windower.wc_match(spell.english,'Utsusemi') then
  333.             if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then -- Cancel Copy Image 1 & 2 For Utsusemi: Ichi --
  334.                 send_command('@wait 1.7;cancel Copy Image*')
  335.             end
  336.         elseif spell.english == 'Monomi: Ichi' then -- Cancel Sneak --
  337.             if buffactive['Sneak'] then
  338.                 send_command('@wait 1.7;cancel sneak')
  339.             end
  340.         else equip(sets.precast.Fastcast)
  341.         end
  342.     end
  343. end
  344.  
  345. function aftercast(spell)
  346.     if player.status == 'Engaged' then
  347.         equip(sets.aftercast.TP)
  348.     else
  349.         equip(sets.aftercast.Idle)
  350.     end
  351. end
  352.  
  353. function buff_change(new,old)
  354.     if buffactive['Barrage'] then
  355.         equip(sets.precast.Barrage)
  356.     end
  357.  end
  358.  
  359. function status_change(new,old)
  360.     if new == 'Idle' then
  361.         equip(sets.aftercast.Idle)
  362.     elseif new == 'Resting' then
  363.         equip(sets.aftercast.Resting)
  364.     elseif new == 'Engaged' then
  365.         equip(sets.aftercast.TP)
  366.     end
  367. end
  368.  
  369. function self_command(command)
  370.     if command == 'toggle TP set' then
  371.         if sets.aftercast.TP == sets.engaged.TPnormal then
  372.             sets.aftercast.TP = sets.engaged.TPacc
  373.             sets.aftercast.Ranged = sets.midcast.Ranged.TPacc
  374.             send_command('@input /echo ACC SET')
  375.         elseif sets.aftercast.TP == sets.engaged.TPacc then
  376.             sets.aftercast.TP = sets.engaged.TPnormal
  377.             sets.aftercast.Ranged = sets.midcast.Ranged.TPnormal
  378.             send_command('@input /echo NORMAL SET')
  379.         end
  380.     end
  381. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement