Sithel

THF GearSwap (Mote) 1-02-15

Jul 6th, 2014
642
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 27.88 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job.  Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. --[[
  6.     Custom commands:
  7.  
  8.     gs c cycle treasuremode (set on ctrl-= by default): Cycles through the available treasure hunter modes.
  9.    
  10.     Treasure hunter modes:
  11.         None - Will never equip TH gear
  12.         Tag - Will equip TH gear sufficient for initial contact with a mob (either melee, ranged hit, or Aeolian Edge AOE)
  13.         SATA - Will equip TH gear sufficient for initial contact with a mob, and when using SATA
  14.         Fulltime - Will keep TH gear equipped fulltime
  15.  
  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. end
  25.  
  26. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  27. function job_setup()
  28.     state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
  29.     state.Buff['Trick Attack'] = buffactive['trick attack'] or false
  30.     state.Buff['Feint'] = buffactive['feint'] or false 
  31.    
  32.     include('Mote-TreasureHunter')
  33.  
  34.     -- For th_action_check():
  35.     -- JA IDs for actions that always have TH: Provoke, Animated Flourish
  36.     info.default_ja_ids = S{35, 204}
  37.     -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
  38.     info.default_u_ja_ids = S{201, 202, 203, 205, 207}
  39. end
  40.  
  41. -------------------------------------------------------------------------------------------------------------------
  42. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  43. -------------------------------------------------------------------------------------------------------------------
  44.  
  45. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  46. function user_setup()
  47.     state.OffenseMode:options('Normal', 'LightAcc', 'Acc', 'Skadi', 'Thaumas')
  48.     state.HybridMode:options('Normal', 'Evasion', 'PDT')
  49.     state.RangedMode:options('Normal', 'Acc')
  50.     state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
  51.     state.PhysicalDefenseMode:options('Evasion', 'PDT')
  52.     state.IdleMode:options('Town', 'Normal')
  53.  
  54.  
  55.     gear.default.weaponskill_neck = "Asperity Necklace"
  56.     gear.default.weaponskill_waist = "Caudata Belt"
  57.     gear.AugQuiahuiz = {name="Quiahuiz Trousers", augments={'Haste+2','"Snapshot"+2','STR+8'}}
  58.  
  59.     -- Additional local binds
  60.     --[[send_command('bind ^` input /ja "Flee" <me>')
  61.     send_command('bind ^= gs c cycle treasuremode')
  62.     send_command('bind !- gs c cycle targetmode')--]]
  63.     send_command('bind f12 gs c update user')
  64.     send_command('bind F11 exec rudras_bully_sa.txt')
  65.     send_command('bind F10 exec rudras_sa.txt')
  66.     send_command('bind F9 ws Rudras Storm <t>')
  67.  
  68.     select_default_macro_book()
  69. end
  70.  
  71. -- Called when this job file is unloaded (eg: job change)
  72. function user_unload()
  73.     --[[send_command('unbind ^`')
  74.     send_command('unbind !-')--]]
  75.     send_command('unbind F7')
  76.     send_command('unbind F9')
  77.     send_command('unbind F10')
  78.     send_command('unbind F11')
  79.     send_command('unbind F12')
  80. end
  81.  
  82. -- Define sets and vars used by this job file.
  83. function init_gear_sets()
  84.     --------------------------------------
  85.     -- Special sets (required by rules)
  86.     --------------------------------------
  87.  
  88.     sets.TreasureHunter = {hands="Plunderer's Armlets +1", waist="Chaac Belt", feet="Raider's Poulaines +2"}
  89.     sets.ExtraRegen = {head="Ocelomeh Headpiece +1", back="Scuta Cape"}
  90.     sets.ExtraRefresh = {head="Wivre Hairpin"}
  91.     sets.Kiting = {feet="Fajin Boots"}
  92.     --sets.buff['sleep'] = {head="Frenzy Sallet"}
  93.     sets.Slept = {head="Frenzy Sallet"}
  94.  
  95.     sets.buff['Sneak Attack'] = {
  96.         ammo="Ginsen",
  97.         head="Pillager's Bonnet +1",
  98.         neck="Asperity Necklace",
  99.         ear1="Dudgeon Earring",
  100.         ear2="Heartseeker Earring",
  101.         body="Pillager's Vest +1",
  102.         hands="Pillager's Armlets +1",
  103.         ring1="Rajas Ring",
  104.         ring2="Epona's Ring",
  105.         back="Atheling Mantle",
  106.         waist="Patentia Sash",
  107.         legs="Pill. Culottes +1",
  108.         feet="Plunderer's Poulaines +1"}
  109.  
  110.     sets.buff['Trick Attack'] = {
  111.         ammo="Ginsen",
  112.         head="Pillager's Bonnet +1",
  113.         neck="Asperity Necklace",
  114.         ear1="Dudgeon Earring",
  115.         ear2="Heartseeker Earring",
  116.         body="Pillager's Vest +1",
  117.         hands="Pillager's Armlets +1",
  118.         ring1="Stormsoul Ring",
  119.         ring2="Epona's Ring",
  120.         back="Atheling Mantle",
  121.         waist="Patentia Sash",
  122.         legs="Pill. Culottes +1",
  123.         feet="Plunderer's Poulaines +1"}
  124.        
  125.     --Reive Neck
  126.     sets.ReiveNeck = {neck="Adoulin's Refuge +1"}  
  127.  
  128.     -- Actions we want to use to tag TH.
  129.     sets.precast.Step = sets.TreasureHunter
  130.     sets.precast.Flourish1 = sets.TreasureHunter
  131.     sets.precast.JA.Provoke = sets.TreasureHunter
  132.  
  133.  
  134.     --------------------------------------
  135.     -- Precast sets
  136.     --------------------------------------
  137.  
  138.     -- Precast sets to enhance JAs
  139.     sets.precast.JA['Collaborator'] = {head="Raider's Bonnet +2"}
  140.     sets.precast.JA['Accomplice'] = {head="Raider's Bonnet +2"}
  141.     sets.precast.JA['Flee'] = {feet="Pillager's Poulaines +1"}
  142.     sets.precast.JA['Hide'] = {body="Pillager's Vest +1"}
  143.     sets.precast.JA['Conspirator'] = {} -- {body="Raider's Vest +2"}
  144.     sets.precast.JA['Steal'] = {head="Plunderer's Bonnet",hands="Pillager's Armlets +1",legs="Pillager's Culottes +1",feet="Pillager's Poulaines +1"}
  145.     sets.precast.JA['Despoil'] = {legs="Raider's Culottes +2",feet="Raider's Poulaines +2"}
  146.     sets.precast.JA['Perfect Dodge'] = {hands="Plunderer's Armlets +1"}
  147.     sets.precast.JA['Feint'] = {} -- {legs="Assassin's Culottes +2"}
  148.  
  149.     sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
  150.     sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
  151.  
  152.  
  153.     -- Waltz set (chr and vit)
  154.     sets.precast.Waltz = {ammo="Sonia's Plectrum",
  155.         head="Whirlpool Mask",
  156.         body="Pillager's Vest +1",
  157.         hands="Pillager's Armlets +1",
  158.         ring1="Asklepian Ring",
  159.         back="Iximulew Cape",
  160.         waist="Caudata Belt",
  161.         legs="Pillager's Culottes +1",
  162.         feet="Plunderer's Poulaines +1"}
  163.  
  164.     -- Don't need any special gear for Healing Waltz.
  165.     sets.precast.Waltz['Healing Waltz'] = {}
  166.  
  167.  
  168.     -- Fast cast sets for spells
  169.     sets.precast.FC = {head="Haruspex Hat",ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring",legs="Enif Cosciales"}
  170.  
  171.     sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  172.  
  173.  
  174.     -- Ranged snapshot gear
  175.     sets.precast.RA = {head="Aurore Beret",hands="Iuitl Wristbands",legs="Nahtirah Trousers",feet="Wurrukatte Boots"}
  176.  
  177.  
  178.     -- Weaponskill sets
  179.  
  180.     -- Default set for any weaponskill that isn't any more specifically defined
  181.     sets.precast.WS = {
  182.         ammo="Ginsen",
  183.         head="Whirlpool Mask",             
  184.         body="Pillager's Vest +1",
  185.         hands="Pill. Armlets +1",
  186.         ring1="Rajas Ring",
  187.         ring2="Epona's Ring",
  188.         back="Atheling Mantle",
  189.         waist="Caudata Belt",
  190.         legs="Pill. Culottes +1",
  191.         feet="Plun. Poulaines +1"}
  192.  
  193.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  194.     sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {ring1="Stormsoul Ring",legs="Nahtirah Trousers"})
  195.     sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  196.     sets.precast.WS['Exenterator'].Mod = set_combine(sets.precast.WS['Exenterator'], {head="Felistris Mask",waist=gear.ElementalBelt})
  197.     sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
  198.     sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
  199.     sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
  200.  
  201.     sets.precast.WS['Dancing Edge'] = set_combine(sets.precast.WS, {})
  202.     sets.precast.WS['Dancing Edge'].Acc = set_combine(sets.precast.WS['Dancing Edge'], {back="Letalis Mantle"})
  203.     sets.precast.WS['Dancing Edge'].Mod = set_combine(sets.precast.WS['Dancing Edge'], {})
  204.     sets.precast.WS['Dancing Edge'].SA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {})
  205.     sets.precast.WS['Dancing Edge'].TA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {})
  206.     sets.precast.WS['Dancing Edge'].SATA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {})
  207.  
  208.     sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {
  209.         ammo="Ginsen",
  210.         head="Uk'uxkaj Cap",
  211.         neck="Rancor Collar",
  212.         ear1="Brutal Earring",
  213.         ear2="Moonshade Earring",
  214.         body="Plunderer's Vest +1",
  215.         ring1="Thundersoul Ring",
  216.         ring2="Karieyh Ring",
  217.         back="Cavaros Mantle",
  218.         waist="Artful Belt"})
  219.  
  220.     sets.precast.WS['Evisceration'].Acc = set_combine(sets.precast.WS['Evisceration'], {back="Letalis Mantle"})
  221.     sets.precast.WS['Evisceration'].Mod = set_combine(sets.precast.WS['Evisceration'], {
  222.         head="Uk'uxkaj cap",
  223.         neck="Rancor Collar",
  224.         ear1="Brutal Earring",
  225.         ear2="Pixie Earring",
  226.         body="Plunderer's Vest +1",
  227.         ring1="Thundersoul Ring",
  228.         ring2="Karieyh Ring",
  229.         back="Kayapa Cape",
  230.         waist="Artful Belt"})
  231.     sets.precast.WS['Evisceration'].SA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
  232.     sets.precast.WS['Evisceration'].TA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
  233.     sets.precast.WS['Evisceration'].SATA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
  234.  
  235.     sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {
  236.         ammo="Jukukik Feather",
  237.         head="Whirlpool mask",
  238.         neck="Snow Gorget",
  239.         ear1="Brutal Earring",
  240.         ear2="Moonshade Earring",
  241.         body="Plunderer's Vest +1",
  242.         ring1="Thundersoul Ring",
  243.         ring2="Karieyh Ring",
  244.         back="Kayapa Cape",
  245.         waist="Artful Belt"})
  246.     sets.precast.WS["Rudra's Storm"].Acc = set_combine(sets.precast.WS["Rudra's Storm"], {ammo="Ginsen",ear1="Zennaroi Earring",body="Pillager's Vest +1",waist="Caudata Belt",back="Letalis Mantle"})
  247.     sets.precast.WS["Rudra's Storm"].Mod = set_combine(sets.precast.WS["Rudra's Storm"], {
  248.         ammo="Jukukik Feather",
  249.         head="Pillager's Bonnet +1",
  250.         neck="Justiciar's Torque",
  251.         ear1="Pixie Earring",
  252.         ear2="Moonshade Earring",
  253.         body="Pillager's Vest +1",
  254.         ring1="Thundersoul Ring",
  255.         ring2="Karieyh Ring",
  256.         back="Kayapa Cape",
  257.         waist="Artful Belt",
  258.         legs="Pill. Culottes +1",
  259.         feet="Plun. Poulaines +1"})
  260.     sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {})
  261.     sets.precast.WS["Rudra's Storm"].TA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {})
  262.     sets.precast.WS["Rudra's Storm"].SATA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {})
  263.  
  264.     sets.precast.WS["Shark Bite"] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
  265.     sets.precast.WS['Shark Bite'].Acc = set_combine(sets.precast.WS['Shark Bite'], {back="Letalis Mantle"})
  266.     sets.precast.WS['Shark Bite'].Mod = set_combine(sets.precast.WS['Shark Bite'], {back="Kayapa Cape",waist=gear.ElementalBelt})
  267.     sets.precast.WS['Shark Bite'].SA = set_combine(sets.precast.WS['Shark Bite'].Mod, {body="Pillager's Vest +1",legs="Pill. Culottes +1"})
  268.     sets.precast.WS['Shark Bite'].TA = set_combine(sets.precast.WS['Shark Bite'].Mod, {body="Pillager's Vest +1",legs="Pill. Culottes +1"})
  269.     sets.precast.WS['Shark Bite'].SATA = set_combine(sets.precast.WS['Shark Bite'].Mod, {body="Pillager's Vest +1",legs="Pill. Culottes +1"})
  270.  
  271.     sets.precast.WS['Mandalic Stab'] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
  272.     sets.precast.WS['Mandalic Stab'].Acc = set_combine(sets.precast.WS['Mandalic Stab'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  273.     sets.precast.WS['Mandalic Stab'].Mod = set_combine(sets.precast.WS['Mandalic Stab'], {back="Kayapa Cape",waist=gear.ElementalBelt})
  274.     sets.precast.WS['Mandalic Stab'].SA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {body="Pillager's Vest +1",legs="Pill. Culottes +1"})
  275.     sets.precast.WS['Mandalic Stab'].TA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {body="Pillager's Vest +1",legs="Pill. Culottes +1"})
  276.     sets.precast.WS['Mandalic Stab'].SATA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {body="Pillager's Vest +1",legs="Pill. Culottes +1"})
  277.  
  278.     sets.precast.WS['Aeolian Edge'] = {
  279.         ammo="Jukukik Feather",
  280.         head="Wayfarer Circlet",
  281.         neck="Stoicheion Medal",
  282.         ear1="Friomisi Earring",
  283.         ear2="Moonshade Earring",
  284.         body="Wayfarer Robe",
  285.         hands="Pillager's Armlets +1",
  286.         ring1="Acumen Ring",
  287.         ring2="Demon's Ring",
  288.         back="Toro Cape",
  289.         waist=gear.ElementalBelt,
  290.         legs="Shneddick Tights +1",
  291.         feet="Wayfarer Clogs"}
  292.  
  293.     sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
  294.  
  295.  
  296.     --------------------------------------
  297.     -- Midcast sets
  298.     --------------------------------------
  299.  
  300.     sets.midcast.FastRecast = {
  301.         head="Whirlpool Mask",ear2="Loquacious Earring",
  302.         body="Pillager's Vest +1",hands="Pillager's Armlets +1",
  303.         back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
  304.  
  305.     -- Specific spells
  306.     sets.midcast.Utsusemi = {
  307.         head="Whirlpool Mask",neck="Ej Necklace",ear2="Loquacious Earring",
  308.         body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",
  309.         back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
  310.  
  311.     -- Ranged gear
  312.     sets.midcast.RA = {
  313.         head="Whirlpool Mask",neck="Ej Necklace",ear1="Clearview Earring",ear2="Volley Earring",
  314.         body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Beeline Ring",ring2="Hajduk Ring",
  315.         back="Libeccio Mantle",waist="Aquiline Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"}
  316.  
  317.     sets.midcast.RA.Acc = {
  318.         head="Pillager's Bonnet +1",neck="Ej Necklace",ear1="Clearview Earring",ear2="Volley Earring",
  319.         body="Iuitl Vest",hands="Buremte Gloves",ring1="Beeline Ring",ring2="Hajduk Ring",
  320.         back="Libeccio Mantle",waist="Aquiline Belt",legs="Thurandaut Tights +1",feet="Pillager's Poulaines +1"}
  321.  
  322.  
  323.     --------------------------------------
  324.     -- Idle/resting/defense sets
  325.     --------------------------------------
  326.  
  327.     -- Resting sets
  328.     sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",
  329.         ring1="Sheltered Ring",ring2="Paguroidea Ring"}
  330.  
  331.  
  332.     -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  333.  
  334.     sets.idle = {
  335.         ammo="Ginsen",
  336.         head="Felistris Mask",
  337.         neck="Wiglen Gorget",
  338.         ear1="Dudgeon Earring",
  339.         ear2="Heartseeker Earring",
  340.         body="Pillager's Vest +1",
  341.         hands="Pillager's Armlets +1",
  342.         ring1="Sheltered Ring",
  343.         ring2="Karieyh Ring",
  344.         back="Canny cape",
  345.         waist="Patentia Sash",
  346.         legs="Quiahuiz trousers",
  347.         feet="Fajin Boots"}
  348.  
  349.     sets.idle.Town = {     
  350.         ammo="Ginsen",
  351.         head="Felistris Mask",
  352.         neck="Asperity Necklace",
  353.         ear1="Dudgeon Earring",
  354.         ear2="Heartseeker Earring",
  355.         body="Mekosu. Harness",
  356.         hands="Aeto. Gloves +1",
  357.         ring1="Oneiros Ring",
  358.         ring2="Epona's Ring",
  359.         back="Bleating Mantle",
  360.         waist="Patentia Sash",
  361.         legs="Pill. Culottes +1",
  362.         feet="Plunderer's Poulaines +1"}
  363.  
  364.     sets.idle.Weak = {ammo="Ginsen",
  365.         head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  366.         body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  367.         back="Shadow Mantle",waist="Flume Belt",legs="Pill. Culottes +1",feet="Skadi's Jambeaux +1"}
  368.  
  369.  
  370.     -- Defense sets
  371.  
  372.     sets.defense.Evasion = {
  373.         ammo="Iron Gobbet",
  374.         head="Pillager's Bonnet +1",
  375.         neck="Twilight Torque",
  376.         body="Emet harness",
  377.         hands="Pillager's Armlets +1",
  378.         ring1="Dark Ring",
  379.         ring2="Dark Ring",
  380.         back="Mollusca Mantle",
  381.         waist="Flume Belt",
  382.         legs="Pill. Culottes +1",
  383.         feet="Plunderer's Poulaines +1"}
  384.  
  385.     sets.defense.PDT = {
  386.         ammo="Iron Gobbet",
  387.         head="Pillager's Bonnet +1",
  388.         neck="Twilight Torque",
  389.         body="Emet harness",
  390.         hands="Pillager's Armlets +1",
  391.         ring1="Dark Ring",
  392.         ring2="Dark Ring",
  393.         back="Mollusca Mantle",
  394.         waist="Flume Belt",
  395.         legs="Pill. Culottes +1",
  396.         feet="Iuitl Gaiters +1"}
  397.  
  398.     sets.defense.MDT = {
  399.         ammo="Demonry Stone",
  400.         head="Pillager's Bonnet +1",
  401.         neck="Twilight Torque",
  402.         body="Pillager's Vest +1",
  403.         hands="Pillager's Armlets +1",
  404.         ring1="Dark Ring",
  405.         ring2="Dark Ring",
  406.         back="Mollusca Mantle",
  407.         waist="Flax Sash",
  408.         legs="Pill. Culottes +1",
  409.         feet="Plunderer's Poulaines +1"}
  410.  
  411.  
  412.     --------------------------------------
  413.     -- Melee sets
  414.     --------------------------------------
  415.  
  416.     -- Normal melee group
  417.     sets.engaged = {
  418.         ammo="Ginsen",
  419.         head="Felistris Mask",
  420.         neck="Asperity Necklace",
  421.         ear1="Dudgeon Earring",
  422.         ear2="Heartseeker Earring",
  423.         body="Mekosu. Harness",
  424.         hands="Aeto. Gloves +1",
  425.         ring1="Rajas Ring",
  426.         ring2="Epona's Ring",
  427.         back="Canny cape",
  428.         waist="Patentia Sash",
  429.         legs="Pill. Culottes +1",
  430.         feet="Plunderer's Poulaines +1"}
  431.  
  432.     sets.engaged.LightAcc = {
  433.         ammo="Ginsen",
  434.         head="Felistris Mask",
  435.         neck="Iqabi necklace",
  436.         ear1="Dudgeon Earring",
  437.         ear2="Heartseeker Earring",
  438.         body="Mekosu. Harness",
  439.         hands="Aeto. Gloves +1",
  440.         ring1="Oneiros Ring",
  441.         ring2="Epona's Ring",
  442.         back="Canny cape",
  443.         waist="Patentia Sash",
  444.         legs="Pill. Culottes +1",
  445.         feet="Plunderer's Poulaines +1"}
  446.     sets.engaged.Acc = {
  447.         ammo="Ginsen",
  448.         head="Whirlpool Mask",
  449.         neck="Iqabi necklace",
  450.         ear1="Zennaroi Earring",
  451.         ear2="Heartseeker Earring",
  452.         body="Pillager's Vest +1",
  453.         hands="Buremte Gloves",
  454.         ring1="Rajas Ring",
  455.         ring2="Enlivened Ring",
  456.         back="Letalis Mantle",
  457.         waist="Olseni Belt",
  458.         legs="Pill. Culottes +1",
  459.         feet="Manibozho boots"}
  460.        
  461.     -- Mod set for trivial mobs (Skadi+1)
  462.     sets.engaged.Skadi = {
  463.         ammo="Ginsen",
  464.         head="Felistris Mask",
  465.         neck="Asperity Necklace",
  466.         ear1="Dudgeon Earring",
  467.         ear2="Heartseeker Earring",
  468.         body="Skadi's cuirie +1",
  469.         hands="Pillager's Armlets +1",
  470.         ring1="Rajas Ring",
  471.         ring2="Epona's Ring",
  472.         back="Bleating Mantle",
  473.         waist="Patentia Sash",
  474.         legs="Quiahuiz trousers",
  475.         feet="Plunderer's Poulaines +1"}
  476.  
  477.     -- Mod set for trivial mobs (Thaumas)
  478.     sets.engaged.Thaumas = {
  479.         ammo="Ginsen",
  480.         head="Felistris Mask",
  481.         neck="Asperity Necklace",
  482.         ear1="Dudgeon Earring",
  483.         ear2="Heartseeker Earring",
  484.         body="Thaumas Coat",
  485.         hands="Pillager's Armlets +1",
  486.         ring1="Rajas Ring",
  487.         ring2="Epona's Ring",
  488.         back="Bleating Mantle",
  489.         waist="Patentia Sash",
  490.         legs="Quiahuiz trousers",
  491.         feet="Plunderer's Poulaines +1"}
  492.  
  493.     sets.engaged.Evasion = {ammo="Ginsen",
  494.         head="Felistris Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  495.         body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
  496.         back="Canny Cape",waist="Patentia Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
  497.     sets.engaged.Acc.Evasion = {ammo="Ginsen",
  498.         head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  499.         body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
  500.         back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
  501.  
  502.     sets.engaged.PDT = {ammo="Ginsen",
  503.         head="Felistris Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  504.         body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
  505.         back="Iximulew Cape",waist="Patentia Sash",legs="Iuitl Tights",feet="Qaaxo Leggings"}
  506.     sets.engaged.Acc.PDT = {ammo="Ginsen",
  507.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  508.         body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
  509.         back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet="Qaaxo Leggings"}
  510.  
  511. end
  512.  
  513.  
  514. -------------------------------------------------------------------------------------------------------------------
  515. -- Job-specific hooks for standard casting events.
  516. -------------------------------------------------------------------------------------------------------------------
  517.  
  518. -- Run after the general precast() is done.
  519. function job_post_precast(spell, action, spellMap, eventArgs)
  520.     if spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
  521.         equip(sets.TreasureHunter)     
  522.     elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
  523.         if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  524.             equip(sets.TreasureHunter)
  525.         end
  526.     end
  527. end
  528.  
  529. --[[function precast(spell,action)
  530. if player.tp > 1000 and player.status == "Engaged" then
  531.     send_command('ws Rudras Storm <t>')
  532.     end
  533. end--]]
  534.  
  535. -- Run after the general midcast() set is constructed.
  536. function job_post_midcast(spell, action, spellMap, eventArgs)
  537.     if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
  538.         equip(sets.TreasureHunter)
  539.     end
  540. end
  541.  
  542. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  543. function job_aftercast(spell, action, spellMap, eventArgs)
  544.     -- Weaponskills wipe SATA/Feint.  Turn those state vars off before default gearing is attempted.
  545.     if spell.type == 'WeaponSkill' and not spell.interrupted then
  546.         state.Buff['Sneak Attack'] = false
  547.         state.Buff['Trick Attack'] = false
  548.         state.Buff['Feint'] = false    
  549.     end
  550. end
  551.  
  552. -- Called after the default aftercast handling is complete.
  553. function job_post_aftercast(spell, action, spellMap, eventArgs)
  554.     -- If Feint is active, put that gear set on on top of regular gear.
  555.     -- This includes overlaying SATA gear.
  556.     check_buff('Feint', eventArgs)
  557. end
  558.  
  559. -------------------------------------------------------------------------------------------------------------------
  560. -- Job-specific hooks for non-casting events.
  561. -------------------------------------------------------------------------------------------------------------------
  562.  
  563. -- Called when a player gains or loses a buff.
  564. -- buff == buff gained or lost
  565. -- gain == true if the buff was gained, false if it was lost.
  566. function job_buff_change(buff, gain)
  567.     if state.Buff[buff] ~= nil then
  568.         if not midaction() then
  569.             handle_equipping_gear(player.status)
  570.         end
  571.     end
  572.     if buff == 'sleep' then
  573.         if gain then
  574.             equip(sets.Slept)
  575.             add_to_chat(39,'You are slept... [Equipping Frenzy Sallet]')           
  576.         else
  577.             send_command('gs c update')
  578.             add_to_chat(200,'You are awake... [Removing Frenzy Sallet]')
  579.         end
  580.     end
  581.     if buff == 'Reive Mark' then
  582.         if gain then
  583.             equip(sets.ReiveNeck)
  584.             add_to_chat(39,'Entering a Reive... [Equipping Reive Neck]')
  585.             disable('neck')
  586.         else
  587.             send_command('gs c update')
  588.             add_to_chat(200,'Left a Reive... [Removing Reive Neck]')
  589.             enable('neck')
  590.         end
  591.     end
  592. end
  593.  
  594.  
  595. -------------------------------------------------------------------------------------------------------------------
  596. -- User code that supplements standard library decisions.
  597. -------------------------------------------------------------------------------------------------------------------
  598.  
  599. function get_custom_wsmode(spell, spellMap, defaut_wsmode)
  600.     local wsmode
  601.  
  602.     if state.Buff['Sneak Attack'] then
  603.         wsmode = 'SA'
  604.     end
  605.     if state.Buff['Trick Attack'] then
  606.         wsmode = (wsmode or '') .. 'TA'
  607.     end
  608.  
  609.     return wsmode
  610. end
  611.  
  612.  
  613. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  614. function job_handle_equipping_gear(playerStatus, eventArgs)
  615.     -- Check that ranged slot is locked, if necessary
  616.     check_range_lock()
  617.  
  618.     -- Check for SATA when equipping gear.  If either is active, equip
  619.     -- that gear specifically, and block equipping default gear.
  620.     check_buff('Sneak Attack', eventArgs)
  621.     check_buff('Trick Attack', eventArgs)  
  622.     if player.equipment.back == 'Mecisto. Mantle' then
  623.         --cast_delay(0.2)
  624.         disable('back')
  625.     else
  626.         enable('back')
  627.     end
  628. end
  629.  
  630.  
  631. function customize_idle_set(idleSet)
  632.     if player.hpp < 80 then
  633.         idleSet = set_combine(idleSet, sets.ExtraRegen)
  634.     end
  635.     if player.mp < 100 then --If MP gets below 100 & Idle it will equip refresh set (For Oneiros Ring latent)
  636.         idleSet = sets.ExtraRefresh
  637.     end
  638.  
  639.     return idleSet
  640. end
  641.  
  642.  
  643. function customize_melee_set(meleeSet)
  644.     if state.TreasureMode.value == 'Fulltime' then
  645.         meleeSet = set_combine(meleeSet, sets.TreasureHunter)
  646.     end
  647.  
  648.     return meleeSet
  649. end
  650.  
  651.  
  652. -- Called by the 'update' self-command.
  653. function job_update(cmdParams, eventArgs)
  654.     th_update(cmdParams, eventArgs)
  655. end
  656.  
  657. -- Function to display the current relevant user state when doing an update.
  658. -- Return true if display was handled, and you don't want the default info shown.
  659. function display_current_job_state(eventArgs)
  660.     local msg = 'Melee'
  661.    
  662.     if state.CombatForm.has_value then
  663.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  664.     end
  665.    
  666.     msg = msg .. ': '
  667.    
  668.     msg = msg .. state.OffenseMode.value
  669.     if state.HybridMode.value ~= 'Normal' then
  670.         msg = msg .. '/' .. state.HybridMode.value
  671.     end
  672.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  673.    
  674.     if state.DefenseMode.value ~= 'None' then
  675.         msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  676.     end
  677.    
  678.     if state.Kiting.value == true then
  679.         msg = msg .. ', Kiting'
  680.     end
  681.  
  682.     if state.PCTargetMode.value ~= 'default' then
  683.         msg = msg .. ', Target PC: '..state.PCTargetMode.value
  684.     end
  685.  
  686.     if state.SelectNPCTargets.value == true then
  687.         msg = msg .. ', Target NPCs'
  688.     end
  689.    
  690.     msg = msg .. ', TH: ' .. state.TreasureMode.value
  691.  
  692.     add_to_chat(122, msg)
  693.  
  694.     eventArgs.handled = true
  695. end
  696.  
  697. -------------------------------------------------------------------------------------------------------------------
  698. -- Utility functions specific to this job.
  699. -------------------------------------------------------------------------------------------------------------------
  700.  
  701. -- State buff checks that will equip buff gear and mark the event as handled.
  702. function check_buff(buff_name, eventArgs)
  703.     if state.Buff[buff_name] then
  704.         equip(sets.buff[buff_name] or {})
  705.         if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  706.             equip(sets.TreasureHunter)
  707.         end
  708.         eventArgs.handled = true
  709.     end
  710. end
  711.  
  712.  
  713. -- Check for various actions that we've specified in user code as being used with TH gear.
  714. -- This will only ever be called if TreasureMode is not 'None'.
  715. -- Category and Param are as specified in the action event packet.
  716. function th_action_check(category, param)
  717.     if category == 2 or -- any ranged attack
  718.         --category == 4 or -- any magic action
  719.         (category == 3 and param == 30) or -- Aeolian Edge
  720.         (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
  721.         (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
  722.         then return true
  723.     end
  724. end
  725.  
  726.  
  727. -- Function to lock the ranged slot if we have a ranged weapon equipped.
  728. function check_range_lock()
  729.     if player.equipment.range ~= 'empty' then
  730.         disable('range', 'ammo')
  731.     else
  732.         enable('range', 'ammo')
  733.     end
  734.    
  735. end
  736.  
  737.  
  738.  
  739. -- Select default macro book on initial load or subjob change.
  740. function select_default_macro_book()
  741.     -- Default macro set/book
  742.     if player.sub_job == 'DNC' then
  743.         set_macro_page(3, 13)
  744.     elseif player.sub_job == 'WAR' then
  745.         set_macro_page(3, 13)
  746.     elseif player.sub_job == 'NIN' then
  747.         set_macro_page(3, 13)
  748.     else
  749.         set_macro_page(3, 13)
  750.     end
  751. end
Advertisement
Add Comment
Please, Sign In to add comment