Advertisement
Falkirk

Simple BST Gearswap Jan 18 2020

Jan 17th, 2020
578
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 17.49 KB | None | 0 0
  1. -- Simple BST Gearswap, originally edited by Beaztmaster.
  2.  
  3. -------------------------------------------------------------------------------------------------------------------
  4. -- Initialization function that defines sets and variables to be used.
  5. -------------------------------------------------------------------------------------------------------------------
  6.  
  7. -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
  8.  
  9. -- Initialization function for this job file.
  10. function get_sets()
  11.     mote_include_version = 2
  12.  
  13.     -- Load and initialize the include file.
  14.     include('Mote-Include.lua')
  15. end
  16.  
  17. function job_setup()
  18.     get_combat_form()
  19. end
  20.  
  21. function user_setup()
  22.     state.IdleMode:options('Normal', 'Reraise')
  23.     state.OffenseMode:options('Normal', 'PetDT')
  24.  
  25.     state.CorrelationMode = M{['description']='Correlation Mode', 'Neutral', 'HighAcc', 'MaxAcc',}
  26.     send_command('bind ^f11 gs c cycle CorrelationMode')
  27. end
  28.  
  29.  
  30. -- Complete list of Ready moves to use with Sic & Ready Recast -5 Desultor Tassets.
  31. ready_moves_to_check = S{'Sic','Whirl Claws','Dust Cloud','Foot Kick','Sheep Song','Sheep Charge','Lamb Chop',
  32.     'Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang',
  33.     'Roar','Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Venom','Geist Wall','Toxic Spit',
  34.     'Numbing Noise','Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino Attack','Power Attack',
  35.     'Hi-Freq Field','Sandpit','Sandblast','Venom Spray','Mandibular Bite','Metallic Body','Bubble Shower',
  36.     'Bubble Curtain','Scissor Guard','Big Scissors','Grapple','Spinning Top','Double Claw','Filamented Hold',
  37.     'Frog Kick','Queasyshroom','Silence Gas','Numbshroom','Spore','Dark Spore','Shakeshroom','Blockhead',
  38.     'Secretion','Fireball','Tail Blow','Plague Breath','Brain Crush','Infrasonics','??? Needles',
  39.     'Needleshot','Chaotic Eye','Blaster','Scythe Tail','Ripper Fang','Chomp Rush','Intimidate','Recoil Dive',
  40.     'Water Wall','Snow Cloud','Wild Carrot','Sudden Lunge','Spiral Spin','Noisome Powder','Wing Slap',
  41.     'Beak Lunge','Suction','Drainkiss','Acid Mist','TP Drainkiss','Back Heel','Jettatura','Choke Breath',
  42.     'Fantod','Charged Whisker','Purulent Ooze','Corrosive Ooze','Tortoise Stomp','Harden Shell','Aqua Breath',
  43.     'Sensilla Blades','Tegmina Buffet','Molting Plumage','Swooping Frenzy','Pentapeck','Sweeping Gouge',
  44.     'Zealous Snort','Somersault ','Tickling Tendrils','Stink Bomb','Nectarous Deluge','Nepenthic Plunge',
  45.     'Pecking Flurry','Pestilent Plume','Foul Waters','Spider Web','Sickle Slash','Frogkick','Ripper Fang',
  46.     'Scythe Tail','Chomp Rush','Extirpating Salvo','Disembowel'}
  47.    
  48. mab_ready_moves = S{
  49.     'Cursed Sphere','Venom','Toxic Spit','Venom Spray','Bubble Shower','Fireball','Plague Breath',
  50.     'Snow Cloud','Acid Spray','Silence Gas','Dark Spore','Charged Whisker','Purulent Ooze','Aqua Breath',
  51.     'Stink Bomb','Nectarous Deluge','Nepenthic Plunge','Foul Waters','Dust Cloud','Sheep Song','Scream',
  52.     'Dream Flower','Roar','Gloeosuccus','Palsy Pollen','Soporific','Geist Wall','Numbing Noise','Spoil',
  53.     'Hi-Freq Field','Sandpit','Sandblast','Filamented Hold','Spore','Infrasonics','Chaotic Eye',
  54.     'Blaster','Intimidate','Noisome Powder','TP Drainkiss','Jettatura','Spider Web','Corrosive Ooze',
  55.     'Molting Plumage','Swooping Frenzy','Pestilent Plume'}
  56.  
  57. function file_unload()
  58.     if binds_on_unload then
  59.         binds_on_unload()
  60.     end
  61.  
  62.     -- Unbinds the Jug Pet, Reward, Correlation, Treasure, PetMode, MDEF Mode hotkeys.
  63.     send_command('unbind !=')
  64.     send_command('unbind ^=')
  65.     send_command('unbind !f8')
  66.     send_command('unbind ^f8')
  67.     send_command('unbind @f8')
  68.     send_command('unbind ^f11')
  69. end
  70.  
  71. -- BST gearsets
  72. function init_gear_sets()
  73.     -- HERE IS THE BEGINNING OF THE GEARSWAP AS FAR AS YOU SHOULD BE CONCERNED FOR EDITING GEAR --
  74.     -- PRECAST SETS
  75.     sets.precast.JA['Killer Instinct'] = {head="Ankusa Helm +1"}
  76.  
  77.     sets.precast.JA['Bestial Loyalty'] = {hands="Ankusa Gloves",body="Mirke Wardecors",}
  78.  
  79.     sets.precast.JA['Call Beast'] = sets.precast.JA['Bestial Loyalty']
  80.  
  81.     sets.precast.JA.Familiar = {legs="Ankusa Trousers"}
  82.  
  83.     sets.precast.JA.Tame = {head="Totemic Helm +1",}
  84.  
  85.     sets.precast.JA.Spur = {feet="Nukumi Ocreae +1"}
  86.    
  87.     --This is what will equip when you use Reward.
  88.         sets.precast.JA.Reward = {
  89.             ammo="Pet Food Theta",
  90.             ring1="Aquasoul Ring",
  91.             head="Stout Bonnet",
  92.             neck="Aife's Medal",
  93.             ear1="Lifestorm Earring",
  94.             ear2="Neptune's Pearl",
  95.             body="Totemic Jackcoat +1",
  96.             hands="Leyline Gloves",
  97.             ring2="Aquasoul Ring",
  98.             back="Pastoralist's Mantle",
  99.             waist="Crudelis Belt",
  100.             legs="Ankusa Trousers",
  101.             feet="Ankusa Gaiters"}
  102.  
  103.     --This is your base FastCast set that equips during precast for all spells/magic.
  104.     sets.precast.FC = {
  105.         ring2="Lebeche Ring",
  106.         ammo="Impatiens",
  107.         neck="Voltsurge Torque",
  108.         head={name="Taeon Chapeau", augments={'"Fast Cast"+2',}},
  109.         body={name="Taeon Tabard", augments={'Pet: "Mag.Atk.Bns."+23','"Fast Cast"+4',}},
  110.         hands="Leyline Gloves",
  111.         legs={name="Taeon Tights", augments={'Pet: DEF+17','"Fast Cast"+4',}},
  112.         feet={name="Taeon Boots", augments={'Pet: "Mag.Atk.Bns."+24','"Fast Cast"+2',}},
  113.         ring1="Prolix Ring",
  114.         waist="Ninurta's Sash",}
  115.  
  116.  
  117.     sets.midcast.Stoneskin = {
  118.         head="Taeon Chapeau",
  119.         neck="Stone Gorget",
  120.         ear1="Earthcry Earring",
  121.         ear2="Lifestorm Earring",
  122.         body="Totemic Jackcoat +1",
  123.         hands="Stone Mufflers",
  124.         ring1="Aquasoul Ring",
  125.         ring2="Aquasoul Ring",
  126.         back="Pastoralist's Mantle",
  127.         waist="Crudelis Belt",
  128.         legs="Haven Hose",
  129.         feet="Amm Greaves"}
  130.  
  131.         -- WEAPONSKILLS
  132.         -- Default weaponskill set.
  133.     sets.precast.WS = {
  134.         ammo="Cheruski Needle",
  135.         head="Nukumi Cabasset +1",
  136.         neck="Asperity Necklace",
  137.         ear1="Flame Pearl",
  138.         ear2="Brutal Earring",
  139.         body="Nukumi Gausape +1",
  140.         hands="Boor Bracelets",
  141.         ring1="Pyrosoul Ring",
  142.         ring2="Ifrit Ring",
  143.         back="Buquwik Cape",
  144.         waist="Windbuffet Belt +1",
  145.         legs="Nukumi Quijotes +1",
  146.         feet="Nukumi Ocreae +1"}
  147.  
  148.  
  149.         -- Specific weaponskill sets.
  150.     sets.precast.WS['Ruinator'] = set_combine(sets.precast.WS, {neck="Breeze Gorget"})
  151.  
  152.     sets.precast.WS['Onslaught'] = set_combine(sets.precast.WS, {
  153.         ammo="Floestone",
  154.         neck="Justiciar's Torque",
  155.         ear1="Tati Earring +1",
  156.         ear2="Brutal Earring",
  157.         body="Mes'yohi Haubergeon",
  158.         hands="Nomkahpa Mittens +1",
  159.         ring1="Ramuh Ring +1",
  160.         back="Vespid Mantle",
  161.         legs="Mikinaak Cuisses",
  162.         feet="Vanir Boots"})
  163.  
  164.     sets.precast.WS['Primal Rend'] = {
  165.         head="Taeon Chapeau",
  166.         body="Tot. Jackcoat +1",
  167.         hands="Leyline Gloves",
  168.         legs="Taeon Tights",
  169.         feet="Taeon Boots",
  170.         neck="Stoicheion Medal",
  171.         waist="Salire Belt",
  172.         left_ear="Hecate's Earring",
  173.         right_ear="Friomisi Earring",
  174.         left_ring="Epona's Ring",
  175.         right_ring="Rajas Ring",
  176.         back="Argocham. Mantle",}
  177.  
  178.     sets.precast.WS['Cloudsplitter'] = set_combine(sets.precast.WS['Primal Rend'],{ammo="Erlene's Notebook",
  179.         head="Highwing Helm",
  180.         neck="Stoicheion Medal",
  181.         ear1="Moonshade Earring",
  182.         ear2="Friomisi Earring",
  183.         body="Taeon Tabard",
  184.         hands="Taeon Gloves",
  185.         ring1="Acumen Ring",
  186.         ring2="Carb. Ring",
  187.         back="Toro Cape",
  188.         waist="Salire Belt",
  189.         legs="Taeon Tights",
  190.         feet="Taeon Boots",})
  191.  
  192.     -- PET SIC & READY MOVES
  193.     --This is your base Ready move set, activating for physical Ready moves. Merlin/D.Tassets are accounted for already.
  194.     sets.midcast.Pet.WS = {
  195.         main="Arktoi",
  196.         ammo="Demonry Core",
  197.         neck="Empath Necklace",
  198.         ear1="Sabong Earring",
  199.         head="Despair Helm",
  200.         body={ name="Acro Surcoat", augments={'Pet: Attack+24 Pet: Rng.Atk.+24','Pet: "Dbl. Atk."+5',}},
  201.         hands="Nukumi Manoplas +1",
  202.         legs={ name="Acro Breeches", augments={'Pet: Attack+22 Pet: Rng.Atk.+22','Pet: "Dbl. Atk."+3',}},
  203.         feet={ name="Acro Leggings", augments={'Pet: Attack+23 Pet: Rng.Atk.+23','Pet: "Dbl. Atk."+3',}},
  204.         back="Pastoralist's Mantle",
  205.         ring1="Thurandaut Ring",
  206.         ear2="Domesticator's Earring",
  207.         sub="Digirbalag",
  208.         waist="Hurch'lan Sash",}
  209.  
  210.     sets.midcast.Pet.Neutral = set_combine(sets.midcast.Pet.WS, {  
  211.         main="Arktoi",
  212.         ammo="Demonry Core",
  213.         neck="Empath Necklace",
  214.         ear1="Sabong Earring",
  215.         head="Despair Helm",
  216.         body={ name="Acro Surcoat", augments={'Pet: Attack+24 Pet: Rng.Atk.+24','Pet: "Dbl. Atk."+5',}},
  217.         hands="Nukumi Manoplas +1",
  218.         legs={ name="Acro Breeches", augments={'Pet: Attack+22 Pet: Rng.Atk.+22','Pet: "Dbl. Atk."+3',}},
  219.         feet={ name="Acro Leggings", augments={'Pet: Attack+23 Pet: Rng.Atk.+23','Pet: "Dbl. Atk."+3',}},
  220.         back="Pastoralist's Mantle",
  221.         ring1="Thurandaut Ring",
  222.         ear2="Domesticator's Earring",
  223.         sub="Digirbalag",
  224.         waist="Hurch'lan Sash",})
  225.  
  226.     sets.midcast.Pet.HighAcc = set_combine(sets.midcast.Pet.WS, {
  227.         main="Odium",
  228.         ear1="Handler's Earring +1",
  229.         head="Despair Helm",
  230.         body="Valorous Mail",
  231.         legs="Wisent Kecks",
  232.         feet="Valorous Greaves",
  233.         hands="Nukumi Manoplas +1",
  234.         ammo="Demonry Core",
  235.         neck="Empath Necklace",
  236.         waist="Incarnation Sash",
  237.         ear2="Handler's Earring",
  238.         sub="Digirbalag",
  239.         ring1="Thurandaut Ring",
  240.         back="Pastoralist's Mantle",})
  241.  
  242.     sets.midcast.Pet.MaxAcc = set_combine(sets.midcast.Pet.WS, {
  243.         main="Malevolence",
  244.         ear1="Handler's Earring +1",
  245.         head="Valorous Mask",
  246.         body="Valorous Mail",
  247.         legs="Wisent Kecks",
  248.         feet="Valorous Greaves",
  249.         hands="Nukumi Manoplas +1",
  250.         ammo="Demonry Core",
  251.         neck="Empath Necklace",
  252.         waist="Incarnation Sash",
  253.         ear2="Handler's Earring",
  254.         sub="Digirbalag",
  255.         ring1="Thurandaut Ring",
  256.         back="Pastoralist's Mantle",})
  257.  
  258.     sets.UnleashHands = {hands={ name="Valorous Mitts", augments={'Pet: Attack+30 Pet: Rng.Atk.+30','Pet: "Store TP"+10','System: 1 ID: 1792 Val: 13','Pet: Accuracy+3 Pet: Rng. Acc.+3',}}}
  259.  
  260.     --This will equip for Magical Ready moves like Fireball
  261.     sets.midcast.Pet.MabReady = set_combine(sets.midcast.Pet.WS, {
  262.         main="Skullrender",
  263.         head={name="Taeon Chapeau", augments={'Pet: "Mag.Atk.Bns."+24',}},
  264.         body={name="Taeon Tabard", augments={'Pet: "Mag.Atk.Bns."+23','"Fast Cast"+4',}},
  265.         hands={name="Acro Gauntlets", augments={'Pet: "Mag.Atk.Bns."+24',}},
  266.         legs={name="Acro Breeches", augments={'Pet: Mag. Acc.+24',}},
  267.         feet={name="Taeon Boots", augments={'Pet: "Mag.Atk.Bns."+24','"Fast Cast"+2',}},
  268.         back="Argocham. Mantle",
  269.         sub={name="Kumbhakarna", augments={'Pet: "Mag.Atk.Bns."+16','Pet: TP Bonus+180',}},
  270.         ring1="Thurandaut Ring",})
  271.  
  272.     sets.TPBonus = {hands="Nukumi Manoplas +1"}
  273.  
  274.     sets.ReadyRecast = {legs="Desultor Tassets"}
  275.  
  276.     -- IDLE SETS (TOGGLE between RERAISE and NORMAL with CTRL+F12)
  277.  
  278.     -- Base Idle Set (when you do NOT have a pet out)
  279.     sets.idle = {
  280.         main="Kumbhakarna",
  281.         head="Anwig Salade",
  282.         ring2="Succor Ring",
  283.         neck="Empath Necklace",
  284.         ear2="Handler's Earring +1",
  285.         ammo="Demonry Core",
  286.         body="Acro Surcoat",
  287.         hands="Acro Gauntlets",
  288.         legs="Nukumi Quijotes +1",
  289.         feet="Skadi's Jambeaux +1",
  290.         ring1="Thurandaut Ring",
  291.         sub="Astolfo",
  292.         back="Pastoralist's Mantle",
  293.         waist="Isa Belt",
  294.         ear1="Handler's Earring",}
  295.  
  296.     sets.idle.Reraise = set_combine(sets.idle, {head="Twilight Helm",body="Twilight Mail"})
  297.  
  298.     -- Idle Set that equips when you have a pet out and not fighting an enemy.
  299.     sets.idle.Pet = set_combine(sets.idle, {
  300.         main="Izizoeksi",
  301.         ear2="Handler's Earring +1",
  302.         ring2="Succor Ring",
  303.         head="Anwig Salade",
  304.         neck="Empath Necklace",
  305.         ammo="Demonry Core",
  306.         body="Acro Surcoat",
  307.         hands="Acro Gauntlets",
  308.         legs="Nukumi Quijotes +1",
  309.         feet="Skadi's Jambeaux +1",
  310.         ring1="Thurandaut Ring",
  311.         sub="Astolfo",
  312.         back="Pastoralist's Mantle",
  313.         waist="Isa Belt",
  314.         ear1="Handler's Earring",})
  315.  
  316.     -- Idle set that equips when you have a pet out and ARE fighting an enemy.
  317.     sets.idle.Pet.Engaged = set_combine(sets.idle, {
  318.         main="Izizoeksi",
  319.         head="Anwig Salade",
  320.         neck="Empath Necklace",
  321.         ammo="Demonry Core",
  322.         ear2="Handler's Earring +1",
  323.         ring1="Thurandaut Ring",
  324.         body="Acro Surcoat",
  325.         hands="Acro Gauntlets",
  326.         legs="Nukumi Quijotes +1",
  327.         feet="Acro Leggings",
  328.         sub="Astolfo",
  329.         back="Pastoralist's Mantle",
  330.         waist="Isa Belt",
  331.         ring2="Succor Ring",
  332.         ear1="Handler's Earring",})
  333.  
  334.      -- MELEE (SINGLE-WIELD) SETS
  335.  
  336.     sets.engaged = {
  337.         main="Aymur",
  338.         ammo="Ginsen",
  339.         head={name="Taeon Chapeau", augments={'Accuracy+23','"Triple Atk."+2',}},
  340.         neck="Asperity Necklace",
  341.         ear1="Handler's Earring",
  342.         body="Nukumi Gausape +1",
  343.         hands={name="Taeon Gloves", augments={'Accuracy+20 Attack+20','"Triple Atk."+2',}},
  344.         ring1="Epona's Ring",
  345.         ring2="Rajas Ring",
  346.         back="Bleating Mantle",
  347.         waist="Windbuffet Belt +1",
  348.         ear2="Handler's Earring +1",
  349.         legs={name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Triple Atk."+2',}},
  350.         feet={name="Taeon Boots", augments={'Accuracy+25','"Triple Atk."+2','CHR+9',}},}
  351.  
  352.     sets.engaged.PetDT = {
  353.         main="Odium",
  354.         ammo="Ginsen",
  355.         head={ name="Taeon Chapeau", augments={'Accuracy+23','"Triple Atk."+2',}},
  356.         neck="Asperity Necklace",
  357.         ear1="Handler's Earring",
  358.         body="Nukumi Gausape +1",
  359.         hands={ name="Taeon Gloves", augments={'Accuracy+20 Attack+20','"Triple Atk."+2',}},
  360.         ring1="Epona's Ring",
  361.         ring2="Rajas Ring",
  362.         back="Bleating Mantle",
  363.         waist="Windbuffet Belt +1",
  364.         ear2="Handler's Earring +1",
  365.         legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Triple Atk."+2',}},
  366.         feet={ name="Taeon Boots", augments={'Accuracy+25','"Triple Atk."+2','CHR+9',}},}
  367.  
  368.     -- MELEE (DUAL-WIELD) SETS FOR DNC AND NIN SUBJOB
  369.  
  370.     sets.engaged.DW = {
  371.         main="Aymur",
  372.         sub="Kumbhakarna",
  373.         head="Taeon Chapeau",
  374.         body="Tot. Jackcoat +1",
  375.         hands="Taeon Gloves",
  376.         legs="Taeon Tights",
  377.         feet="Taeon Boots",
  378.         neck="Asperity Necklace",
  379.         waist="Patentia Sash",
  380.         ear1="Dudgeon Earring",
  381.         ear2="Heartseeker Earring",
  382.         ring1="Epona's Ring",
  383.         ring2="Rajas Ring",
  384.         back="Atheling Mantle",}
  385.  
  386.     sets.engaged.DW.PetDT = {
  387.         main="Malevolence",
  388.         sub="Odium",
  389.         head="Taeon Chapeau",
  390.         body="Tot. Jackcoat +1",
  391.         hands="Taeon Gloves",
  392.         legs="Taeon Tights",
  393.         feet="Taeon Boots",
  394.         neck="Asperity Necklace",
  395.         waist="Patentia Sash",
  396.         ear1="Dudgeon Earring",
  397.         ear2="Heartseeker Earring",
  398.         ring1="Epona's Ring",
  399.         ring2="Rajas Ring",
  400.         back="Atheling Mantle",}
  401.  
  402.     -- THIS IS THE END OF THE GEARSWAP AS FAR AS YOU SHOULD BE CONCERNED --
  403. end
  404.  
  405. -------------------------------------------------------------------------------------------------------------------
  406. -- Job-specific hooks that are called to process player actions at specific points in time.
  407. -------------------------------------------------------------------------------------------------------------------
  408.  
  409. function job_precast(spell, action, spellMap, eventArgs)
  410.     if ready_moves_to_check:contains(spell.name) and pet.status == 'Engaged' then
  411.       classes.CustomClass = "WS"
  412.         if spell.type == "Monster" and not spell.interrupted then
  413.             equip(set_combine(sets.midcast.Pet.WS, sets.midcast.Pet[state.CorrelationMode.value]))
  414.         if mab_ready_moves:contains(spell.english) and pet.status == 'Engaged' then
  415.             equip(sets.midcast.Pet.MabReady)
  416.         end
  417.  
  418.         if buffactive['Unleash'] then
  419.             equip(sets.UnleashHands)
  420.         else
  421.             equip(sets.TPBonus, sets.ReadyRecast)
  422.         end
  423.  
  424.         eventArgs.handled = true
  425.         end
  426.     end
  427. end
  428.  
  429. function job_pet_midcast(spell, action, spellMap, eventArgs)
  430.     if spell.type == "Monster" and not spell.interrupted then
  431.         eventArgs.handled = true
  432.     end
  433. end
  434.  
  435. function job_aftercast(spell, action, spellMap, eventArgs)
  436.     if spell.type == "Monster" and not spell.interrupted then
  437.         eventArgs.handled = true
  438.     end
  439. end
  440.  
  441. function job_state_change(stateField, newValue, oldValue)
  442.     if stateField == 'Correlation Mode' then
  443.         state.CorrelationMode:set(newValue)
  444.     end
  445. end
  446.  
  447. function get_combat_form()
  448.     if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  449.         state.CombatForm:set('DW')
  450.     else
  451.         state.CombatForm:reset()
  452.     end
  453. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement