Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 24.19 KB | None | 0 0
  1. -- NOTE: I do not play bst, so this will not be maintained for 'active' use.
  2. -- It is added to the repository to allow people to have a baseline to build from,
  3. -- and make sure it is up-to-date with the library API.
  4.  
  5. -- Credit to Quetzalcoatl.Falkirk for most of the original work.
  6.  
  7. --[[
  8.     Custom commands:
  9.    
  10.     Ctrl-F8 : Cycle through available pet food options.
  11.     Alt-F8 : Cycle through correlation modes for pet attacks.
  12. ]]
  13. --Update:  PET SIC & READY MOVES
  14. -------------------------------------------------------------------------------------------------------------------
  15. -- Setup functions for this job.  Generally should not be modified.
  16. -------------------------------------------------------------------------------------------------------------------
  17.  
  18. -- Initialization function for this job file.
  19. function get_sets()
  20.     mote_include_version = 2
  21.    
  22.     -- Load and initialize the include file.
  23.     include('Mote-Include.lua')
  24.    
  25.     sets.obi = {Fire = {waist="Karin Obi"},
  26.     Earth = {waist="Dorin Obi"},
  27.     Water = {waist="Suirin Obi"},
  28.     Wind = {waist="Furin Obi"},
  29.     Ice = {waist="Hyorin Obi"},
  30.     Lightning = {waist="Rairin Obi"},
  31.     Light = {waist="Korin Obi"},
  32.     Dark = {waist="Anrin Obi"}}
  33. end
  34.  
  35. function job_setup()
  36.     -- Set up Reward Modes and keybind Ctrl-F8
  37.     state.RewardMode = M{['description']='Reward Mode', 'Zeta', 'Theta', 'Eta'}
  38.     RewardFood = {name="Pet Food Zeta"}
  39.     send_command('bind ^f8 gs c cycle RewardMode')
  40.  
  41.     -- Set up Monster Correlation Modes and keybind Alt-F8
  42.     state.CorrelationMode = M{['description']='Correlation Mode', 'Neutral','Favorable'}
  43.     send_command('bind !f8 gs c cycle CorrelationMode')
  44.    
  45.     -- Custom pet modes for engaged gear
  46.     state.PetMode = M{['description']='Pet Mode', 'Normal', 'PetStance', 'PetTank'}
  47.  
  48.  
  49.     ready_moves_to_check = S{'Sic','Whirl Claws','Dust Cloud','Foot Kick','Sheep Song','Sheep Charge','Lamb Chop',
  50.         'Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang',
  51.         'Roar','Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Venom','Geist Wall','Toxic Spit',
  52.         'Numbing Noise','Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino Attack','Power Attack',
  53.         'Hi-Freq Field','Sandpit','Sandblast','Venom Spray','Mandibular Bite','Metallic Body','Bubble Shower',
  54.         'Bubble Curtain','Scissor Guard','Big Scissors','Grapple','Spinning Top','Double Claw','Filamented Hold',
  55.         'Frog Kick','Queasyshroom','Silence Gas','Numbshroom','Spore','Dark Spore','Shakeshroom','Blockhead',
  56.         'Secretion','Fireball','Tail Blow','Plague Breath','Brain Crush','Infrasonics','1000 Needles',
  57.         'Needleshot','Chaotic Eye','Blaster','Scythe Tail','Ripper Fang','Chomp Rush','Intimidate','Recoil Dive',
  58.         'Water Wall','Snow Cloud','Wild Carrot','Sudden Lunge','Spiral Spin','Noisome Powder','Wing Slap',
  59.         'Beak Lunge','Suction','Drainkiss','Acid Mist','TP Drainkiss','Back Heel','Jettatura','Choke Breath',
  60.         'Fantod','Charged Whisker','Purulent Ooze','Corrosive Ooze','Tortoise Stomp','Harden Shell','Aqua Breath',
  61.         'Sensilla Blades','Tegmina Buffet','Molting Plumage','Swooping Frenzy','Pentapeck','Sweeping Gouge',
  62.         'Zealous Snort'}
  63. end
  64.  
  65. -------------------------------------------------------------------------------------------------------------------
  66. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  67. -------------------------------------------------------------------------------------------------------------------
  68.  
  69. function user_setup()
  70.     state.OffenseMode:options('Normal', 'DW', 'PetTank', 'DWPetTank', 'ShadowDWPetTank')
  71.     state.WeaponskillMode:options('Normal', 'Acc')
  72.     state.IdleMode:options('Normal', 'Refresh', 'Reraise')
  73.     state.PhysicalDefenseMode:options('PDT', 'Killer', 'DWKiller')
  74.     --state.PetMode:options('None', 'Tank')
  75.  
  76.     update_combat_form()
  77. end
  78.  
  79.  
  80. -- Called when this job file is unloaded (eg: job change)
  81. function user_unload()
  82.     -- Unbinds the Reward and Correlation hotkeys.
  83.     send_command('unbind ^f8')
  84.     send_command('unbind !f8')
  85. end
  86.  
  87.  
  88. -- Define sets and vars used by this job file.
  89. function init_gear_sets()
  90.     --------------------------------------
  91.     -- Precast sets
  92.     --------------------------------------
  93.  
  94.     sets.precast.JA['Killer Instinct'] = {}
  95.     sets.precast.JA['Feral Howl'] = {}
  96.     sets.precast.JA['Call Beast'] = {hands="Monster Gloves +1"}
  97.     sets.precast.JA['Familiar'] = {}
  98.     sets.precast.JA['Tame'] = {}
  99.     sets.precast.JA['Spur'] = {}
  100.  
  101.     sets.precast.JA['Reward'] = {ammo=RewardFood,
  102.         main="Zoraal Ja's Axe", sub="Zoraal Ja's Axe",
  103.         head="Khimaira bonnet",neck="Temperance Torque",ear1="Melody Earring +1",ear2="Loquacious Earring",
  104.         body="Monster Jackcoat +1",hands="Ogre Gloves",ring1="Blitz Ring",ring2="Rajas Ring",
  105.         back="Cuchulain's Mantle",waist="Monster Belt",legs="Byakko's Haidate",feet="Monster Gaiters +1"}
  106.  
  107.     sets.precast.JA['Charm'] = {ammo="Bibiki Seashell",
  108.         head="Monster Helm +1",neck="Temperance Torque",ear1="Melody Earring +1",ear2="Loquacious Earring",
  109.         body="Monster Jackcoat +1",hands="Monster Gloves",ring1="Blitz Ring",ring2="Rajas Ring",
  110.         back="Cuchulain's Mantle",waist="Monster Belt",legs="Beast Trousers +1",feet="Monster Gaiters +1"}
  111.  
  112.     -- CURING WALTZ
  113.     sets.precast.Waltz = {ammo="Bibiki Seashell",
  114.         head="Maat's Cap",neck="Temperance Torque",ear1="Melody Earring +1",ear2="Loquacious Earring",
  115.         body="Kirin's Osode",hands="Monster Gloves",ring1="Blitz Ring",ring2="Rajas Ring",
  116.         back="Cuchulain's Mantle",waist="Monster Belt",legs="Beast Trousers +1",feet="Monster Gaiters +1"}
  117.  
  118.     -- HEALING WALTZ
  119.     sets.precast.Waltz['Healing Waltz'] = {}
  120.  
  121.     -- STEPS
  122.     sets.precast.Step = {}
  123.  
  124.     -- VIOLENT FLOURISH
  125.     sets.precast.Flourish1 = {}
  126.     sets.precast.Flourish1['Violent Flourish'] = {}
  127.  
  128.     sets.precast.FC = {ammo="Bibiki Seashell",
  129.         head="Walahra Turban",neck="Evasion Torque",ear1="Loquacious Earring",ear2="Brutal Earring",
  130.         body="Scorpion Harness +1",hands="Dusk Gloves +1",ring1="Blitz Ring",ring2="Defending Ring",
  131.         back="Boxer's Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"}
  132.        
  133.     sets.precast.FC.Utsusemi = sets.precast.FC
  134.  
  135.     -- WEAPONSKILLS
  136.     -- Default weaponskill set.
  137.     sets.precast.WS = {ammo="Tiphia Sting",
  138.         head="Hecatomb Cap +1",neck="Peacock Charm",ear1="Triumph Earring",ear2="Brutal Earring",
  139.         body="Armada Hauberk",hands="Hecatomb Mittens +1",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  140.         right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  141.         back="Cerberus Mantle +1",waist="Warwolf Belt",legs="Hecatomb Subligar +1",feet="Hecatomb Leggings +1"}
  142.  
  143.     sets.precast.WS.WSAcc = {ammo="Tiphia Sting",
  144.         head="Hecatomb Cap +1",neck="Peacock Charm",ear1="Triumph Earring",ear2="Brutal Earring",
  145.         body="Armada Hauberk",hands="Hecatomb Mittens +1",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  146.         right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  147.         back="Cuchulain's Mantle",waist="Warwolf Belt",legs="Hecatomb Subligar +1",feet="Hecatomb Leggings +1"}
  148.  
  149.     -- Specific weaponskill sets.
  150.     sets.precast.WS['Ruinator'] = set_combine(sets.precast.WS, {neck="Snow Gorget",back="Cuchulain's Mantle"})
  151.             sets.precast.WS['Ruinator'].Acc = set_combine(sets.precast.WS.Acc, {neck="Snow Gorget",back="Cuchulain's Mantle"})
  152.             sets.precast.WS['Ruinator'].Mod = {}
  153.      
  154.             sets.precast.WS['Rampage'] = set_combine(sets.precast.WS, {neck="Soil Gorget",back="Cuchulain's Mantle"})
  155.             sets.precast.WS['Rampage'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",back="Cuchulain's Mantle"})
  156.             sets.precast.WS['Rampage'].Mod = {}
  157.      
  158.             sets.precast.WS['Onslaught'] = set_combine(sets.precast.WS, {neck="Soil Gorget",ear1="Pixie Earring",back="Cuchulain's Mantle"})
  159.             sets.precast.WS['Onslaught'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",back="Cuchulain's Mantle"})
  160.             sets.precast.WS['Onslaught'].Mod = {}
  161.            
  162.             sets.precast.WS['Cloudsplitter'] = set_combine(sets.precast.WS, {neck="Temperance Torque"})
  163.             sets.precast.WS['Cloudsplitter'].Acc = set_combine(sets.precast.WS.Acc, {neck="Temperance Torque"})
  164.             sets.precast.WS['Cloudsplitter'].Mod = {}
  165.  
  166.             sets.precast.WS['Decimation'] = set_combine(sets.precast.WS, {neck="Flame Gorget"})
  167.             sets.precast.WS['Decimation'].Acc = set_combine(sets.precast.WS.Acc, {neck="Flame Gorget"})
  168.             sets.precast.WS['Decimation'].Mod = {}
  169.     --------------------------------------
  170.     -- Midcast sets
  171.     --------------------------------------
  172.    
  173.     sets.midcast.FastRecast = {ammo="Bibiki Seashell",
  174.         head="Walahra Turban",neck="Evasion Torque",ear1="Loquacious Earring",ear2="Brutal Earring",
  175.         body="Scorpion Harness +1",hands="Dusk Gloves +1",ring1="Blitz Ring",ring2="Defending Ring",
  176.         back="Boxer's Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"}
  177.  
  178.     sets.midcast.Utsusemi = sets.midcast.FastRecast
  179.  
  180.    sets.midcast.Cure = {
  181.         ammo="Bibiki Seashell",
  182.         head="Maat's Cap",
  183.         neck="Healing Torque",
  184.         ear1="Star Earring",
  185.         ear2="Loquacious Earring",
  186.         body="Kirin's Osode",
  187.         hands="Dusk Gloves +1",
  188.         ring1="Aqua Ring",
  189.         ring2="Aqua Ring",
  190.         back="Boxer's Cape",
  191.         waist="Velocious Belt",
  192.         legs="Byakko's Haidate",
  193.         feet="Suzaku's Sune-ate"}
  194.        
  195.     sets.midcast.Curaga = sets.midcast.Cure
  196.    
  197.    sets.midcast['Enhancing Magic'] = {
  198.         ammo="Bibiki Seashell",
  199.         head="Maat's Cap",
  200.         neck="Faith Torque",
  201.         ear1="Star Earring",
  202.         ear2="Loquacious Earring",
  203.         body="Kirin's Osode",
  204.         hands="Dusk Gloves +1",
  205.         ring1="Aqua Ring",
  206.         ring2="Aqua Ring",
  207.         back="Boxer's Cape",
  208.         waist="Velocious Belt",
  209.         legs="Byakko's Haidate",
  210.         feet="Suzaku's Sune-ate"}
  211.        
  212.     sets.midcast.MndEnfeebles = {
  213.         ammo="Bibiki Seashell",
  214.         head="Maat's Cap",
  215.         neck="Faith Torque",
  216.         ear1="Star Earring",
  217.         ear2="Loquacious Earring",
  218.         body="Kirin's Osode",
  219.         hands="Dusk Gloves +1",
  220.         ring1="Aqua Ring",
  221.         ring2="Aqua Ring",
  222.         back="Boxer's Cape",
  223.         waist="Velocious Belt",
  224.         legs="Byakko's Haidate",
  225.         feet="Suzaku's Sune-ate"}
  226.        
  227.     sets.midcast.Stoneskin = {
  228.         ammo="Bibiki Seashell",
  229.         head="Maat's Cap",
  230.         neck="Faith Torque",
  231.         ear1="Star Earring",
  232.         ear2="Loquacious Earring",
  233.         body="Kirin's Osode",
  234.         hands="Dusk Gloves +1",
  235.         ring1="Aqua Ring",
  236.         ring2="Aqua Ring",
  237.         back="Boxer's Cape",
  238.         waist="Velocious Belt",
  239.         legs="Byakko's Haidate",
  240.         feet="Suzaku's Sune-ate"}
  241.        
  242.     sets.midcast.IntEnfeebles = {
  243.         ammo="Bibiki Seashell",
  244.         head="Maat's Cap",
  245.         neck="Lemegeton Medallion +1",
  246.         ear1="Phantom Earring +1",
  247.         ear2="Loquacious Earring",
  248.         body="Kirin's Osode",
  249.         hands="Dusk Gloves +1",
  250.         ring1="Aqua Ring",
  251.         ring2="Aqua Ring",
  252.         back="Boxer's Cape",
  253.         waist="Velocious Belt",
  254.         legs="Elder's Braguette",
  255.         feet="Suzaku's Sune-ate"}
  256.    
  257. -- Check Set
  258.     sets.midcast['Dark Magic'] = {
  259.         ammo="Bibiki Seashell",
  260.         head="Maat's Cap",
  261.         neck="Aesir Torque",
  262.         ear1="Phantom Earring +1",
  263.         ear2="Loquacious Earring",
  264.         body="Kirin's Osode",
  265.         hands="Dusk Gloves +1",
  266.         ring1="Aqua Ring",
  267.         ring2="Aqua Ring",
  268.         back="Boxer's Cape",
  269.         waist="Velocious Belt",
  270.         legs="Elder's Braguette",
  271.         feet="Suzaku's Sune-ate"}
  272.    
  273.     -- PET SIC & READY MOVES
  274.     sets.midcast.Pet.WS = {ammo="Tiphia Sting",
  275.         head="Spurrer Beret",neck="Peacock Charm",ear1="Triumph Earring",ear2="Brutal Earring",
  276.         body="Armada Hauberk",hands="Hecatomb Mittens +1",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  277.         right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  278.         back="Cerberus Mantle +1",waist="Warwolf Belt",legs="Hecatomb Subligar +1",feet="Hecatomb Leggings +1"}
  279.  
  280.     sets.midcast.Pet.WS.Unleash = set_combine(sets.midcast.Pet.WS, {})
  281.  
  282.     sets.midcast.Pet.Neutral = {}
  283.     sets.midcast.Pet.Favorable = {}
  284.  
  285.  
  286.     --------------------------------------
  287.     -- Idle/resting/defense/etc sets
  288.     --------------------------------------
  289.  
  290.     -- RESTING
  291.     sets.resting = {ammo="Bibiki Seashell",
  292.         head="Monster Helm +1",neck="Orochi Nodowa",ear1="Ethereal Earring",ear2="Triton Earring",
  293.         body="Scorpion Harness +1",hands="Seiryu's Kote",ring1="Shadow Ring",ring2="Defending Ring",
  294.         back="Shadow Mantle",waist="Marid Belt",legs="Monster Trousers",feet="Suzaku's Sune-ate"}
  295.  
  296.     -- IDLE SETS
  297.     sets.idle = {ammo="Bibiki Seashell",
  298.         head="Monster Helm +1",neck="Chocobo Whistle",ear1="Ethereal Earring",ear2="Brutal Earring",
  299.         body="Monster Jackcoat +1",hands="Beast bazubands",ring1="Defending Ring",ring2="Shadow Ring",
  300.         back="Nexus Cape",waist="Monster Belt",legs="Beast Trousers +1",feet="Monster Gaiters +1"}
  301.  
  302.     sets.idle.Refresh = {}
  303.  
  304.     sets.idle.Reraise = set_combine(sets.idle, {})
  305.  
  306.     sets.idle.Pet = sets.idle
  307.  
  308.     sets.idle.Pet.Engaged = {ammo="Tiphia Sting",
  309.         head="Spurrer Beret",neck="Peacock Charm",ear1="Triumph Earring",ear2="Brutal Earring",
  310.         body="Armada Hauberk",hands="Beast bazubands",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  311.         right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  312.         back="Cuchulain's Mantle",waist="Warwolf Belt",legs="Hecatomb Subligar +1",feet="Hecatomb Leggings +1"}
  313.  
  314.     -- DEFENSE SETS
  315.     sets.defense.PDT = {ammo="Bibiki Seashell",
  316.                     head="Darksteel Cap +1",neck="Evasion Torque",ear1="Triton Earring",ear2="Ethereal Earring",
  317.                     body="Darksteel Harness +1",hands="Darksteel Mittens +1",ring1="Defending Ring",ring2="Jelly Ring",
  318.                     back="Shadow Mantle",waist="Scouter's Rope",legs="Darksteel Subligar +1",feet="Darksteel Leggings +1"}
  319.  
  320.     sets.defense.Hybrid = set_combine(sets.defense.PDT, {})
  321.  
  322.     sets.defense.Killer = {ammo="Bibiki Seashell",
  323.                     head="Walahra Turban",neck="Temperance Torque",ear1="Brutal Earring",ear2="Ethereal Earring",
  324.                     body="Armada Hauberk",hands="Beast bazubands",ring1="Defending Ring",ring2="Shadow Ring",
  325.                     back="Shadow Mantle",waist="Velocious Belt",legs="Beast Trousers +1",feet="Dusk Ledelsens +1"}
  326.                    
  327.     sets.defense.DWKiller = {ammo="Bibiki Seashell",
  328.                     head="Walahra Turban",neck="Temperance Torque",ear1="Suppanomimi",ear2="Ethereal Earring",
  329.                     body="Armada Hauberk",hands="Beast bazubands",ring1="Defending Ring",ring2="Shadow Ring",
  330.                     back="Shadow Mantle",waist="Velocious Belt",legs="Beast Trousers +1",feet="Dusk Ledelsens +1"}
  331.  
  332.     sets.defense.MDT = {ammo="Bibiki Seashell",
  333.                     head="Coral Visor",neck="Evasion Torque",ear1="Ethereal Earring",ear2="Merman's Earring",
  334.                     body="Coral Scale Mail",hands="Coral Finger Gauntlets",ring1="Defending Ring",ring2="Shadow Ring",
  335.                     back="Resentment Cape",waist="Velocious Belt",legs="Coral Cuisses",feet="Coral Greaves"}
  336.  
  337.     sets.Kiting = {ammo="Bibiki Seashell",
  338.                     head="Darksteel Cap +1",neck="Evasion Torque",ear1="Triton Earring",ear2="Ethereal Earring",
  339.                     body="Darksteel Harness +1",hands="Darksteel Mittens +1",ring1="Defending Ring",ring2="Shadow Ring",
  340.                     back="Boxer's Mantle +1",waist="Scouter's Rope",legs="Darksteel Subligar +1",feet="Darksteel Leggings +1"}
  341.  
  342.  
  343.     --------------------------------------
  344.     -- Engaged sets
  345.     --------------------------------------
  346.  
  347.     sets.engaged = {ammo="Tiphia Sting",
  348.                     head="Walahra Turban",neck="Temperance Torque",ear1="Ethereal Earring",ear2="Brutal earring",
  349.                     body="Armada Hauberk",hands="Dusk Gloves +1",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  350.                     right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  351.                     back="Cuchulain's Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"}
  352.                    
  353.     sets.engaged.DW = {ammo="Tiphia Sting",
  354.                     head="Walahra Turban",neck="Temperance Torque",ear1="Suppanomimi",ear2="Brutal earring",
  355.                     body="Armada Hauberk",hands="Dusk Gloves +1",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  356.                     right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  357.                     back="Cuchulain's Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"}
  358.                    
  359.     sets.engaged.PetTank = {ammo="Tiphia Sting",
  360.                     head="Spurrer Beret",neck="Temperance Torque",ear1="Ethereal Earring",ear2="Brutal earring",
  361.                     body="Armada Hauberk",hands="Beast bazubands",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  362.                     right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  363.                     back="Cuchulain's Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"}
  364.  
  365.     sets.engaged.DWPetTank = {ammo="Tiphia Sting",
  366.                     head="Spurrer Beret",neck="Temperance Torque",ear1="Suppanomimi",ear2="Brutal earring",
  367.                     body="Armada Hauberk",hands="Beast bazubands",left_ring={ name="Toreador's Ring", augments={'Accuracy+5','"Triple Atk."+2',}},
  368.                     right_ring={ name="Toreador's Ring", augments={'Attack+4','"Triple Atk."+2',}},
  369.                     back="Cuchulain's Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"} 
  370.  
  371.     sets.engaged.ShadowDWPetTank = {ammo="Tiphia Sting",
  372.                     head="Spurrer Beret",neck="Temperance Torque",ear1="Suppanomimi",ear2="Brutal earring",
  373.                     body="Armada Hauberk",hands="Beast bazubands",ring1="Defending Ring",ring2="Shadow Ring",
  374.                     back="Shadow Mantle",waist="Velocious Belt",legs="Byakko's Haidate",feet="Dusk Ledelsens +1"}  
  375.  
  376.                    
  377.     sets.engaged.Killer = set_combine(sets.engaged, {legs="Beast Trousers +1"})
  378.    
  379.     sets.engaged.Killer.Acc = set_combine(sets.engaged.Acc, {legs="Beast Trousers +1"})
  380.    
  381.    
  382.     -- [[EXAMPLE SETS WITH PET MODES
  383.  
  384.    -- sets.engaged.PetStance = {}
  385.    -- sets.engaged.PetStance.Acc = {}
  386.    -- sets.engaged.PetTank = {}
  387.    -- sets.engaged.PetTank.Acc = {}
  388.    -- sets.engaged.PetStance.Killer = {}
  389.    -- sets.engaged.PetStance.Killer.Acc = {}
  390.    -- sets.engaged.PetTank.Killer = {}
  391.    -- sets.engaged.PetTank.Killer.Acc = {}
  392.    
  393.     -- MORE EXAMPLE SETS WITH EXPANDED COMBAT FORMS
  394.     --[[
  395.     sets.engaged.DW.PetStance = {}
  396.     sets.engaged.DW.PetStance.Acc = {}
  397.     sets.engaged.DW.PetTank = {}
  398.     sets.engaged.DW.PetTank.Acc = {}
  399.     sets.engaged.KillerDW.PetStance = {}
  400.     sets.engaged.KillerDW.PetStance.Acc = {}
  401.     sets.engaged.KillerDW.PetTank= {}
  402.     sets.engaged.KillerDW.PetTank.Acc = {}
  403.     ]]
  404.    
  405.     --------------------------------------
  406.     -- Custom buff sets
  407.     --------------------------------------
  408.  
  409.     sets.buff['Killer Instinct'] = {}
  410.    
  411. end
  412.  
  413.  
  414. -------------------------------------------------------------------------------------------------------------------
  415. -- Job-specific hooks for standard casting events.
  416. -------------------------------------------------------------------------------------------------------------------
  417.  
  418. function job_precast(spell, action, spellMap, eventArgs)
  419.     -- Define class for Sic and Ready moves.
  420.     if ready_moves_to_check:contains(spell.english) and pet.status == 'Engaged' then
  421.         classes.CustomClass = "WS"
  422.     end
  423.    
  424.     if spell.type == 'WeaponSkill' then
  425.         if world.time >= 18*60 or world.time < 6*60 then
  426.         equip({ear1="Vampire Earring"})
  427.         end
  428.     end
  429. end
  430.  
  431.  
  432. function job_post_precast(spell, action, spellMap, eventArgs)
  433.     -- If Killer Instinct is active during WS, equip Ferine Gausape +2.
  434.     if spell.type:lower() == 'weaponskill' and buffactive['Killer Instinct'] then
  435.         equip(sets.buff['Killer Instinct'])
  436.     end
  437. end
  438.  
  439.  
  440. function job_pet_post_midcast(spell, action, spellMap, eventArgs)
  441.     -- Equip monster correlation gear, as appropriate
  442.     equip(sets.midcast.Pet[state.CorrelationMode.value])
  443.    
  444.        
  445.     if spell.action_type == "Magic" then
  446.         if spell.element == world.weather_element or spell.element == world.day_element then
  447.             equip(sets.obi[spell.element])
  448.             end
  449.     end
  450.    
  451.    
  452. end
  453.  
  454. -------------------------------------------------------------------------------------------------------------------
  455. -- Job-specific hooks for non-casting events.
  456. -------------------------------------------------------------------------------------------------------------------
  457.  
  458. function job_buff_change(buff, gain)
  459.     if buff == 'Killer Instinct' then
  460.         update_combat_form()
  461.         handle_equipping_gear(player.status)
  462.     end
  463. end
  464.  
  465. -- Called when the pet's status changes.
  466. function job_pet_status_change(newStatus, oldStatus)
  467.  
  468. end
  469.  
  470. -- Handle notifications of general user state change.
  471. function job_state_change(stateField, newValue, oldValue)
  472.     if stateField == 'Reward Mode' then
  473.         -- Thena, Zeta or Eta
  474.         RewardFood.name = "Pet Food " .. newValue
  475.     elseif stateField == 'Pet Mode' then
  476.         state.CombatWeapon:set(newValue)
  477.     end
  478. end
  479.  
  480. -------------------------------------------------------------------------------------------------------------------
  481. -- User code that supplements standard library decisions.
  482. -------------------------------------------------------------------------------------------------------------------
  483.  
  484. function get_custom_wsmode(spell, spellMap, defaut_wsmode)
  485.     if defaut_wsmode == 'Normal' then
  486.         if spell.english == "Cloudsplitter" and (world.day_element == 'Lightning' or world.day_element == 'Lightning') then
  487.             equip(sets.obi[spell.element])
  488.         end
  489.     end
  490. end
  491.  
  492. -- Called by the 'update' self-command, for common needs.
  493. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  494. function job_update(cmdParams, eventArgs)
  495.     update_combat_form()
  496. end
  497.  
  498.  
  499. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  500. function display_current_job_state(eventArgs)
  501.     local msg = 'Melee'
  502.    
  503.     if state.CombatForm.has_value then
  504.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  505.     end
  506.    
  507.     msg = msg .. ': '
  508.    
  509.     msg = msg .. state.OffenseMode.value
  510.     if state.HybridMode.value ~= 'Normal' then
  511.         msg = msg .. '/' .. state.HybridMode.value
  512.     end
  513.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  514.    
  515.     if state.DefenseMode.value ~= 'None' then
  516.         msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  517.     end
  518.    
  519.     if state.Kiting.value then
  520.         msg = msg .. ', Kiting'
  521.     end
  522.  
  523.     msg = msg .. ', Reward: '..state.RewardMode.value..', Correlation: '..state.CorrelationMode.value
  524.  
  525.     add_to_chat(122, msg)
  526.  
  527.     eventArgs.handled = true
  528. end
  529.  
  530.  
  531. -------------------------------------------------------------------------------------------------------------------
  532. -- Utility functions specific to this job.
  533. -------------------------------------------------------------------------------------------------------------------
  534.  
  535. function update_combat_form()
  536.     if buffactive['Killer Instinct'] then
  537.         if (player.sub_job == 'NIN' or player.sub_job == 'DNC') and player.equipment.sub:endswith('Axe') then
  538.             state.CombatForm:set('KillerDW')
  539.         else
  540.             state.CombatForm:set('Killer')
  541.         end
  542.     elseif (player.sub_job == 'NIN' or player.sub_job == 'DNC') and player.equipment.sub:endswith('Axe') then
  543.         state.CombatForm:set('DW')
  544.     else
  545.         state.CombatForm:reset()
  546.     end
  547. end
  548.  
  549. -- Select default macro book on initial load or subjob change.
  550. function select_default_macro_book()
  551.     -- Default macro set/book
  552.     if player.sub_job == 'WAR' then
  553.         set_macro_page(1, 7)
  554.     elseif player.sub_job == 'WHM' then
  555.         set_macro_page(1, 7)
  556.     else
  557.         set_macro_page(1, 7)
  558.     end
  559. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement