Advertisement
Guest User

Untitled

a guest
Apr 26th, 2016
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.44 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. --[[
  6. Custom commands:
  7. gs c cycle treasuremode (set on ctrl-= by default): Cycles through the available treasure hunter modes.
  8.  
  9. Treasure hunter modes:
  10. None - Will never equip TH gear
  11. Tag - Will equip TH gear sufficient for initial contact with a mob (either melee, ranged hit, or Aeolian Edge AOE)
  12. SATA - Will equip TH gear sufficient for initial contact with a mob, and when using SATA
  13. Fulltime - Will keep TH gear equipped fulltime
  14. --]]
  15.  
  16. -- Initialization function for this job file.
  17. function get_sets()
  18. mote_include_version = 2
  19.  
  20. -- Load and initialize the include file.
  21. include('Mote-Include.lua')
  22. include('organizer-lib')
  23. end
  24.  
  25. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  26. function job_setup()
  27. state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
  28. state.Buff['Trick Attack'] = buffactive['trick attack'] or false
  29. state.Buff['Feint'] = buffactive['feint'] or false
  30.  
  31. include('Mote-TreasureHunter')
  32.  
  33. -- For th_action_check():
  34. -- JA IDs for actions that always have TH: Provoke, Animated Flourish
  35. info.default_ja_ids = S{35, 204}
  36. -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
  37. info.default_u_ja_ids = S{201, 202, 203, 205, 207}
  38. end
  39.  
  40. -------------------------------------------------------------------------------------------------------------------
  41. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  42. -------------------------------------------------------------------------------------------------------------------
  43.  
  44. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  45. function user_setup()
  46. state.OffenseMode:options('DWNormal', 'DWMidAcc', 'DWAcc', 'DANormal', 'DAMidAcc', 'DAAcc','Solo')
  47. state.HybridMode:options()
  48. state.RangedMode:options('Normal', 'Acc')
  49. state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
  50. state.PhysicalDefenseMode:options('Evasion', 'PDT')
  51. state.IdleMode:options('Normal', 'Regen', 'PDT')
  52.  
  53. -- Additional local binds
  54. send_command('bind ^` input /ja "Flee" <me>')
  55. send_command('bind ^= gs c cycle treasuremode')
  56. send_command('bind !- gs c cycle targetmode')
  57.  
  58. select_default_macro_book()
  59. end
  60.  
  61. -- Called when this job file is unloaded (eg: job change)
  62. function user_unload()
  63. send_command('unbind ^`')
  64. send_command('unbind !-')
  65. end
  66.  
  67. -- Define sets and vars used by this job file.
  68. function init_gear_sets()
  69. --------------------------------------
  70. -- Special sets (required by rules)
  71. --------------------------------------
  72.  
  73. DThead={ name="Herculean Helm", augments={'Pet: Attack+30 Pet: Rng.Atk.+30','Pet: "Dbl. Atk."+3','Damage taken-4%','Accuracy+18 Attack+18',}}
  74. DThands={ name="Herculean Gloves", augments={'"Store TP"+1','Accuracy+25','Damage taken-2%','Mag. Acc.+16 "Mag.Atk.Bns."+16',}}
  75. DTlegs={ name="Herculean Trousers", augments={'Accuracy+27','Damage taken-2%','STR+7','Attack+14',}}
  76. DTfeet={ name="Herculean Boots", augments={'Accuracy+6','Damage taken-4%','STR+5','Attack+1',}}
  77.  
  78.  
  79. DWBoots ={ name="Taeon Boots", augments={'Accuracy+18 Attack+18','"Triple Atk."+2','STR+2 DEX+2',}}
  80. Critfeet= { name="Herculean Boots", augments={'Accuracy+25','Crit.hit rate+5','Attack+11',}}
  81. TPfeet={ name="Herculean Boots", augments={'"Store TP"+6','Accuracy+14','Attack+1',}}
  82. Accfeet ={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','Crit. hit damage +1%','DEX+8','Accuracy+15','Attack+14',}}
  83.  
  84. MABhead={ name="Herculean Helm", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','"Store TP"+2','MND+2','Mag. Acc.+15','"Mag.Atk.Bns."+15',}}
  85. MABhands={ name="Herculean Gloves", augments={'"Cure" spellcasting time -6%','"Mag.Atk.Bns."+23','Mag. Acc.+18 "Mag.Atk.Bns."+18',}}
  86. MABlegs={ name="Herculean Trousers", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','AGI+8',}}
  87. MABfeet = {name="Herculean Boots", augments={'Magic Damage +11','Pet: Mag. Acc.+14','Phalanx +4','Accuracy+11 Attack+11','Mag. Acc.+16 "Mag.Atk.Bns."+16',}}
  88.  
  89. Crithands={ name="Herculean Gloves", augments={'Rng.Acc.+22','Crit.hit rate+4','AGI+5','Accuracy+8','Attack+10',}}
  90. WShands={ name="Herculean Gloves", augments={'Accuracy+3 Attack+3','Crit.hit rate+1','Weapon skill damage +6%','Mag. Acc.+7 "Mag.Atk.Bns."+7',}}
  91.  
  92. RNGhands= { name="Herculean Gloves", augments={'Rng.Acc.+22 Rng.Atk.+22','Phys. dmg. taken -2%','DEX+4','Rng.Acc.+13',}}
  93. RNGlegs= { name="Herculean Trousers", augments={'Rng.Acc.+24 Rng.Atk.+24','Weapon skill damage +1%','DEX+4','Rng.Acc.+14','Rng.Atk.+15',}}
  94. RNGfeet= { name="Herculean Boots", augments={'Rng.Acc.+24 Rng.Atk.+24','"Subtle Blow"+4','STR+9','Rng.Atk.+13',}}
  95.  
  96. THfeet={ name="Herculean Boots", augments={'Enmity-4','Accuracy+19','"Treasure Hunter"+2','Accuracy+1 Attack+1',}}
  97.  
  98. FChead={ name="Herculean Helm", augments={'Mag. Acc.+24','"Fast Cast"+6','"Mag.Atk.Bns."+1',}}
  99. FCBody = { name="Taeon tabard", augments={'Accuracy+18 Attack+18','"Fast Cast"+2','Phalanx +3',}}
  100.  
  101.  
  102. sets.TreasureHunter = {hands="Plunderer's Armlets +1", waist="Chaac Belt", feet=THfeet}
  103. sets.ExtraRegen = {neck="Bathy Choker +1",ring1="Sheltered Ring",ring2="Paguroidea ring"}
  104. sets.Kiting = {feet="Jute Boots +1"}
  105.  
  106. sets.buff['Sneak Attack'] = {ammo="Yetshila",
  107. head="Lilitu Headpiece",neck="Caro Necklace",ear1="Assuage Earring",ear2="Cessance Earring",
  108. body="Pillager's Vest +1",hands="Skulker's Armlets +1",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  109. back="Toutatis's Cape",waist="Chiner's Belt +1"}
  110.  
  111. sets.buff['Trick Attack'] = {ammo="Yetshila",
  112. head="Pursuer's Beret",neck="Combatant's Torque",ear1="Assuage Earring",ear2="Cessance Earring",
  113. body="Pillager's Vest +1",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Rajas Ring",
  114. waist="Chiner's Belt +1"}
  115.  
  116. -- Actions we want to use to tag TH.
  117. sets.precast.Step = sets.TreasureHunter
  118. sets.precast.Flourish1 = sets.TreasureHunter
  119. sets.precast.JA.Provoke = sets.TreasureHunter
  120.  
  121.  
  122. --------------------------------------
  123. -- Precast sets
  124. --------------------------------------
  125.  
  126. -- Precast sets to enhance JAs
  127. sets.precast.JA['Collaborator'] = {head="Skulker's Bonnet +1"}
  128. sets.precast.JA['Accomplice'] = {head="Skulker's Bonnet +1"}
  129. sets.precast.JA['Flee'] = {feet="Pillager's Poulaines +1"}
  130. sets.precast.JA['Hide'] = {body="Pillager's Vest +1"}
  131. sets.precast.JA['Conspirator'] = {body="Raider's Vest +2"}
  132. sets.precast.JA['Steal'] = {ammo="Barathrum",feet="Pillager's Poulaines +1"}
  133. sets.precast.JA['Despoil'] = {ammo="Barathrum"}
  134. sets.precast.JA['Perfect Dodge'] = {hands="Plunderer's Armlets +1"}
  135. sets.precast.JA['Feint'] = {legs="Plunderer's Culottes"}
  136. sets.precast.JA['Mug'] = {ammo="Expeditious Pinion",head="Pursuer's Beret",neck="Magoraga bead necklace",ear2="Suppanomimi",
  137. body="Adhemar Jacket",hands="Pursuer's cuffs",ring1="Apate Ring",ring2="Ramuh Ring +1",
  138. back="Toutatis's Cape",waist="Chaac Belt",legs="Pursuer's Pants",feet="Pursuer's Gaiters"}
  139. sets.precast.JA['Lunge'] = {ammo="Seething Bomblet +1",head=MABhead,neck="Baetyl Pendant",ear1="Hecate's Earring",ear2="Friomisi Earring",
  140. body="Samnuha Coat",hands=MABhands,ring1="Acumen ring",ring2="Arvina Ringlet +1",
  141. back="Toro Cape",waist="Eschan Stone",legs=MABlegs,feet=MABfeet}
  142. sets.precast.JA['Swipe'] = {sets.precast.JA['Lunge']}
  143.  
  144. sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
  145. sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
  146.  
  147. sets.precast.Item = {HolyWater}
  148.  
  149. sets.precast.Item['Holy Water'] = {ring1="Purity Ring"}
  150.  
  151.  
  152. -- Waltz set (chr and vit)
  153. sets.precast.Waltz = {
  154. body="Emet harness +1",hands="Plunderer's Armlets +1",waist="Chaac belt",legs="Feast Hose",feet=DWBoots}
  155.  
  156. -- Don't need any special gear for Healing Waltz.
  157. sets.precast.Waltz['Healing Waltz'] = {feet="Rawhide boots"}
  158.  
  159.  
  160. -- Fast cast sets for spells
  161. sets.precast.FC = {ammo="Sapience Orb",
  162. head=FChead,neck="Baetyl Pendant",ear2="Loquacious Earring",
  163. body=FCBody,hands="Leyline Gloves",ring1="Lebeche Ring",legs="Rawhide Trousers"}
  164.  
  165. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  166.  
  167. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  168.  
  169.  
  170. -- Ranged snapshot gear
  171. --sets.precast.RA = {
  172. -- body="Pursuer's Doublet",legs="Pursuer's Pants",feet="Adhemar gamashes"}
  173.  
  174.  
  175. -- Weaponskill sets
  176.  
  177. -- Default set for any weaponskill that isn't any more specifically defined
  178. sets.precast.WS = {ammo="Falcon Eye",
  179. head="Lilitu headpiece",neck="Fotia Gorget",ear1="Assuage Earring",ear2="Moonshade Earring",
  180. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  181. back="Toutatis's Cape",waist="Fotia Belt",legs="Samnuha Tights",feet=Critfeet}
  182. sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Falcon Eye"})
  183.  
  184. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  185. sets.precast.WS['Exenterator'] = {ammo="Falcon Eye",
  186. head="Lilitu headpiece",neck="Fotia Gorget",ear1="Assuage Earring",ear2="Moonshade Earring",
  187. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  188. back="Grounded mantle +1",waist="Fotia Belt",legs="Samnuha Tights",feet=Critfeet}
  189. sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {ammo="Falcon Eye"})
  190.  
  191. sets.precast.WS['Dancing Edge'] = set_combine(sets.precast.WS, {})
  192. sets.precast.WS['Dancing Edge'].Acc = set_combine(sets.precast.WS['Dancing Edge'], {ammo="Falcon Eye", back="Grounded mantle +1"})
  193.  
  194. sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {ammo="Yetshila",
  195. head="Taeon Chapeau",
  196. body="Foppish Tunica",hands=WShands,ring1="Begrudging Ring",ring2="Ramuh Ring +1",
  197. back="Toutatis's Cape",legs="Lustratio Subligar +1"})
  198. sets.precast.WS['Evisceration'].Acc = set_combine(sets.precast.WS['Evisceration'], {ammo="Falcon Eye",back="Toutatis's Cape"})
  199.  
  200. sets.precast.WS['Mercy Stroke'] = {ammo="Seething Bomblet +1",
  201. head="Lilitu headpiece",neck="Caro Necklace",ear1="Ishvara Earring",ear2="Moonshade Earring",
  202. body="Adhemar Jacket",hands=WShands,ring1="Apate Ring",ring2="Rajas Ring",
  203. back="Buquwik Cape",waist="Metalsinger Belt",legs="Samnuha Tights",feet="Lustratio Leggings +1"}
  204. sets.precast.WS['Mercy Stroke'].Mod = set_combine(sets.precast.WS['Mercy Stroke'], {ammo="Yetshila",
  205. body="Pillager's Vest +1"})
  206. sets.precast.WS['Mercy Stroke'].SA = set_combine(sets.precast.WS['Mercy Stroke'].Mod, {back="Toutatis's Cape"})
  207. sets.precast.WS['Mercy Stroke'].TA = set_combine(sets.precast.WS['Mercy Stroke'].Mod, {})
  208. sets.precast.WS['Mercy Stroke'].SATA = set_combine(sets.precast.WS['Mercy Stroke'].Mod, {back="Toutatis's Cape"})
  209.  
  210. sets.precast.WS['Rudra\'s Storm'] = {ammo="Falcon Eye",
  211. head="Lilitu headpiece",neck="Caro Necklace",ear1="Ishvara Earring",ear2="Moonshade Earring",
  212. body="Adhemar Jacket",hands=WShands,ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  213. back="Toutatis's Cape",waist="Grunfeld rope",legs="Lustratio Subligar +1",feet="Lustratio Leggings +1"}
  214. sets.precast.WS['Rudra\'s Storm'].Mod = set_combine(sets.precast.WS['Rudra\'s Storm'], {ammo="Yetshila",
  215. body="Pillager's Vest +1",back="Toutatis's Cape"})
  216. sets.precast.WS['Rudra\'s Storm'].SA = set_combine(sets.precast.WS['Rudra\'s Storm'].Mod, {})
  217. sets.precast.WS['Rudra\'s Storm'].TA = set_combine(sets.precast.WS['Rudra\'s Storm'].Mod, {})
  218. sets.precast.WS['Rudra\'s Storm'].SATA = set_combine(sets.precast.WS['Rudra\'s Storm'].Mod, {})
  219.  
  220. sets.precast.WS['Shark Bite'] = {ammo="Falcon Eye",
  221. head="Lilitu headpiece",neck="Caro Necklace",ear1="Ishvara Earring",ear2="Moonshade Earring",
  222. body="Adhemar Jacket",hands=WShands,ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  223. back="Toutatis's Cape",waist="Grunfeld Rope",legs="Lustratio Subligar +1",feet="Lustratio Leggings +1"}
  224. sets.precast.WS['Shark Bite'].Mod = set_combine(sets.precast.WS['Shark Bite'], {ammo="Yetshila",
  225. body="Pillager's Vest +1",back="Toutatis's Cape"})
  226. sets.precast.WS['Shark Bite'].SA = set_combine(sets.precast.WS['Shark Bite'].Mod, {})
  227. sets.precast.WS['Shark Bite'].TA = set_combine(sets.precast.WS['Shark Bite'].Mod, {})
  228. sets.precast.WS['Shark Bite'].SATA = set_combine(sets.precast.WS['Shark Bite'].Mod, {})
  229.  
  230. sets.precast.WS['Mandalic Stab'] = {ammo="Falcon Eye",
  231. head="Lilitu headpiece",neck="Caro Necklace",ear1="Ishvara Earring",ear2="Moonshade Earring",
  232. body="Adhemar Jacket",hands=WShands,ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  233. back="Toutatis's Cape",waist="Grunfeld Rope",legs="Lustratio Subligar +1",feet="Lustratio Leggings +1"}
  234. sets.precast.WS['Mandalic Stab'].Mod = set_combine(sets.precast.WS['Mandalic Stab'], {ammo="Yetshila",
  235. body="Pillager's Vest +1",back="Toutatis's Cape"})
  236. sets.precast.WS['Mandalic Stab'].SA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {})
  237. sets.precast.WS['Mandalic Stab'].TA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {})
  238. sets.precast.WS['Mandalic Stab'].SATA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {})
  239.  
  240. sets.precast.WS['Aeolian Edge'] = {ammo="Seething Bomblet +1",
  241. head=MABhead,neck="Baetyl Pendant",ear1="Ishvara Earring",ear2="Friomisi Earring",
  242. body="Samnuha Coat",hands=MABhands,ring1="Acumen ring",ring2="Arvina ringlet +1",
  243. back="Toro Cape",waist="Eschan Stone",legs=MABlegs,feet=MABfeet}
  244.  
  245. --sets.precast.WS['Last Stand'] = {
  246. -- head="Pursuer's Beret",neck="Fotia Gorget",ear1="Clearview Earring",ear2="Moonshade Earring",
  247. -- body="Foppish Tunica",hands=RNGhands,ring1="Garuda Ring +1",ring2="Garuda Ring +1",
  248. -- back="Libeccio Mantle",waist="Yemaya Belt",legs=RNGlegs,feet=RNGfeet}
  249.  
  250. sets.precast.WS['Vorpal Blade'] = {sets.precast.WS['Evisceration']}
  251.  
  252.  
  253.  
  254. --------------------------------------
  255. -- Midcast sets
  256. --------------------------------------
  257.  
  258. sets.midcast.FastRecast = {ammo="Sapience Orb",
  259. head=FChead,neck="Baetyl Pendant",ear1="Sanare earring",ear2="Loquacious Earring",
  260. body=FCBody,hands="Leyline Gloves",ring1="Gelatinous Ring +1",ring2="Defending Ring",
  261. waist="Flume Belt",legs="Rawhide Trousers"}
  262.  
  263. -- Specific spells
  264. sets.midcast.Utsusemi = sets.midcast.FastRecast
  265.  
  266. sets.midcast['Enhancing Magic'] = {neck="Incanter's Torque",ear1="Andoaa Earring",waist="Olympus Sash"}
  267.  
  268.  
  269. -- Ranged gear
  270. --sets.midcast.RA = {
  271. -- head="Pursuer's beret",neck="Combatant's Torque",ear1="Neritic Earring",ear2="Volley Earring",
  272. -- body="Pursuer's Doublet",hands=RNGhands,ring1="Garuda Ring +1",ring2="Garuda Ring +1",
  273. -- back="Libeccio Mantle",waist="Yemaya Belt",legs=RNGlegs,feet=RNGfeet}
  274.  
  275. --sets.midcast.RA.Acc = {
  276. -- head="Pursuer's beret",neck="Combatant's Torque",ear1="Clearview Earring",ear2="Volley Earring",
  277. -- body="Foppish Tunica",hands=RNGhands,ring1="Garuda Ring +1",ring2="Garuda Ring +1",
  278. -- back="Libeccio Mantle",waist="Yemaya Belt",legs="Pursuer's Pants",feet=RNGfeet}
  279.  
  280.  
  281. --------------------------------------
  282. -- Idle/resting/defense sets
  283. --------------------------------------
  284.  
  285. -- Resting sets
  286. sets.resting = {neck="Bathy Choker +1",
  287. ring1="Sheltered Ring",ring2="Paguroidea Ring"}
  288.  
  289.  
  290. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  291.  
  292. sets.idle = {
  293. head="Rawhide Mask",neck="Bathy Choker +1",ear1="Sanare Earring",ear2="Infused Earring",
  294. body="Mekosuchinae Harness",hands=DThands,ring1="Sheltered Ring",ring2="Karieyh Ring",
  295. back="Mubvumbamiri mantle",waist="Flume Belt",legs="Qaaxo Tights",feet="Jute Boots +1"}
  296.  
  297. sets.idle.Regen = {
  298. head=DThead,neck="Bathy Choker +1",ear1="Sanare Earring",ear2="Infused Earring",
  299. body="Mekosuchinae Harness",hands=DThands,ring1="Sheltered Ring",ring2="Paguroidea Ring",
  300. waist="Flume Belt",legs="Samnuha Tights",feet="Jute Boots +1"}
  301.  
  302. sets.idle.PDT = {ammo="Inlamvuyeso",
  303. head=DThead,neck="Loricate Torque +1",ear1="Sanare Earring",ear2="Eabani Earring",
  304. body="Emet harness +1",hands=DThands,ring1="Gelatinous Ring +1",ring2="Defending Ring",
  305. back="Xucau mantle",waist="Flume Belt",legs="Qaaxo Tights",feet="Jute Boots +1"}
  306.  
  307. sets.idle.Town = {main="Mandau",sub="Twashtar",
  308. head=DThead,neck="Bathy Choker +1",ear1="Sanare Earring",ear2="Ethereal Earring",
  309. body="Pillager's Vest +1",hands=DThands,ring1="Sheltered Ring",ring2="Karieyh Ring",
  310. back="Toutatis's Cape",waist="Chiner's Belt +1",legs="Samnuha Tights",feet="Jute Boots +1"}
  311.  
  312. sets.idle.Weak = {
  313. head=DThead,neck="Bathy Choker +1",ear1="Sanare Earring",ear2="Odnowa earring +1",
  314. body="Pillager's Vest +1",hands=DThands,ring1="Sheltered Ring",ring2="Paguroidea Ring",
  315. back="Xucau mantle",waist="Flume Belt",legs=DTlegs,feet=DTfeet}
  316.  
  317.  
  318. -- Defense sets
  319.  
  320. sets.defense.Evasion = {
  321. head=DThead,neck="Bathy Choker +1",ear1="Eabani Earring",ear2="Assuage Earring",
  322. body="Emet Harness +1",hands=DThands,ring1="Gelatinous Ring +1",ring2="Defending Ring",
  323. waist="Chiner's Belt +1",legs=DTlegs,feet=DTfeet}
  324.  
  325. sets.defense.PDT = {ammo="Inlamvuyeso",
  326. head=DThead,neck="Loricate Torque +1",ear1="Assuage Earring",ear2="Odnowa Earring +1",
  327. body="Emet harness +1",hands=DThands,ring1="Gelatinous Ring +1",ring2="Defending Ring",
  328. back="Xucau mantle",waist="Engraved Belt",legs=DTlegs,feet=DTfeet}
  329.  
  330. sets.defense.MDT = {ammo="Vanir Battery",
  331. head=DThead,neck="Warder's Charm +1",ear1="Sanare Earring",ear2="Eabani Earring",
  332. body="Lapidary Tunic",hands="Leyline Gloves",ring1="Purity Ring",ring2="Defending Ring",
  333. back="Mubvumbamiri Mantle",waist="Engraved Belt",legs="Feast Hose",feet="Jute Boots +1"}
  334.  
  335.  
  336. --------------------------------------
  337. -- Melee sets
  338. --------------------------------------
  339.  
  340. -- Normal melee group
  341. sets.engaged.DWNormal = {ammo="Ginsen",
  342. head="Skulker's Bonnet +1",neck="Combatant's Torque",ear1="Eabani Earring",ear2="Suppanomimi",
  343. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Petrov Ring",
  344. back="Toutatis's Cape",waist="Chiner's Belt +1",legs="Samnuha Tights",feet=DWBoots}
  345.  
  346. sets.engaged.DWMidAcc = {ammo="Ginsen",
  347. head="Skulker's Bonnet +1",neck="Combatant's Torque",ear1="Eabani Earring",ear2="Suppanomimi",
  348. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Rajas Ring",
  349. back="Toutatis's Cape",waist="Kentarch Belt +1",legs="Samnuha Tights",feet=DWBoots}
  350.  
  351. sets.engaged.DWAcc = {ammo="Falcon Eye",
  352. head="Dampening Tam",neck="Combatant's Torque",ear1="Cessance Earring",ear2="Assuage Earring",
  353. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  354. back="Toutatis's Cape",waist="Kentarch Belt +1",legs="Samnuha Tights",feet=Accfeet}
  355.  
  356. sets.engaged.DANormal = {ammo="Ginsen",
  357. head="Skulker's Bonnet +1",neck="Combatant's Torque",ear1="Cessance Earring",ear2="Assuage Earring",
  358. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Hetairoi Ring",
  359. back="Toutatis's Cape",waist="Chiner's Belt +1",legs="Samnuha Tights",feet=TPfeet}
  360.  
  361. sets.engaged.DAMidAcc = {ammo="Ginsen",
  362. head="Skulker's Bonnet +1",neck="Combatant's Torque",ear1="Cessance Earring",ear2="Assuage Earring",
  363. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Rajas Ring",
  364. back="Toutatis's Cape",waist="Kentarch Belt +1",legs="Samnuha Tights",feet=Accfeet}
  365.  
  366. sets.engaged.DAAcc = {ammo="Falcon Eye",
  367. head="Dampening Tam",neck="Combatant's Torque",ear1="Cessance Earring",ear2="Assuage Earring",
  368. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  369. back="Toutatis's Cape",waist="Kentarch Belt +1",legs="Samnuha Tights",feet=Accfeet}
  370.  
  371. sets.engaged.Solo = {ammo="Ginsen",
  372. head="Skulker's Bonnet +1",neck="Combatant's Torque",ear1="Eabani Earring",ear2="Suppanomimi",
  373. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Rajas Ring",
  374. back="Toutatis's Cape",waist="Chiner's Belt +1",legs="Samnuha Tights",feet=DWBoots}
  375.  
  376.  
  377.  
  378. -- Mod set for trivial mobs
  379. sets.engaged.Trash = {ammo="Ginsen",
  380. head="Skulker's Bonnet +1",neck="Combatant's Torque",ear1="Eabani Earring",ear2="Suppanomimi",
  381. body="Adhemar Jacket",hands="Adhemar Wristbands",ring1="Epona's Ring",ring2="Rajas Ring",
  382. back="Toutatis's Cape",waist="Chiner's Belt +1",legs="Samnuha Tights",feet=DWBoots}
  383.  
  384. -- Mod set for trivial mobs
  385.  
  386.  
  387. end
  388.  
  389.  
  390. -------------------------------------------------------------------------------------------------------------------
  391. -- Job-specific hooks for standard casting events.
  392. -------------------------------------------------------------------------------------------------------------------
  393.  
  394. -- Run after the general precast() is done.
  395. function job_post_precast(spell, action, spellMap, eventArgs)
  396. if spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
  397. equip(sets.TreasureHunter)
  398. elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
  399. if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  400. equip(sets.TreasureHunter)
  401. end
  402. end
  403. end
  404.  
  405. -- Run after the general midcast() set is constructed.
  406. function job_post_midcast(spell, action, spellMap, eventArgs)
  407. if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
  408. equip(sets.TreasureHunter)
  409. end
  410. end
  411.  
  412. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  413. function job_aftercast(spell, action, spellMap, eventArgs)
  414. -- Weaponskills wipe SATA/Feint. Turn those state vars off before default gearing is attempted.
  415. if spell.type == 'WeaponSkill' and not spell.interrupted then
  416. state.Buff['Sneak Attack'] = false
  417. state.Buff['Trick Attack'] = false
  418. state.Buff['Feint'] = false
  419. end
  420. end
  421.  
  422. -- Called after the default aftercast handling is complete.
  423. function job_post_aftercast(spell, action, spellMap, eventArgs)
  424. -- If Feint is active, put that gear set on on top of regular gear.
  425. -- This includes overlaying SATA gear.
  426. check_buff('Feint', eventArgs)
  427. end
  428.  
  429. -------------------------------------------------------------------------------------------------------------------
  430. -- Job-specific hooks for non-casting events.
  431. -------------------------------------------------------------------------------------------------------------------
  432.  
  433. -- Called when a player gains or loses a buff.
  434. -- buff == buff gained or lost
  435. -- gain == true if the buff was gained, false if it was lost.
  436. function job_buff_change(buff, gain)
  437. if state.Buff[buff] ~= nil then
  438. if not midaction() then
  439. handle_equipping_gear(player.status)
  440. end
  441. end
  442. end
  443.  
  444.  
  445. -------------------------------------------------------------------------------------------------------------------
  446. -- User code that supplements standard library decisions.
  447. -------------------------------------------------------------------------------------------------------------------
  448.  
  449. function get_custom_wsmode(spell, spellMap, defaut_wsmode)
  450. local wsmode
  451.  
  452. if state.Buff['Sneak Attack'] then
  453. wsmode = 'SA'
  454. end
  455. if state.Buff['Trick Attack'] then
  456. wsmode = (wsmode or '') .. 'TA'
  457. end
  458.  
  459. return wsmode
  460. end
  461.  
  462.  
  463. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  464. function job_handle_equipping_gear(playerStatus, eventArgs)
  465. -- Check that ranged slot is locked, if necessary
  466. check_range_lock()
  467.  
  468. -- Check for SATA when equipping gear. If either is active, equip
  469. -- that gear specifically, and block equipping default gear.
  470. check_buff('Sneak Attack', eventArgs)
  471. check_buff('Trick Attack', eventArgs)
  472. end
  473.  
  474.  
  475. function customize_idle_set(idleSet)
  476. if player.hpp < 80 then
  477. idleSet = set_combine(idleSet, sets.ExtraRegen)
  478. end
  479.  
  480. return idleSet
  481. end
  482.  
  483.  
  484. function customize_melee_set(meleeSet)
  485. if state.TreasureMode.value == 'Fulltime' then
  486. meleeSet = set_combine(meleeSet, sets.TreasureHunter)
  487. end
  488.  
  489. return meleeSet
  490. end
  491.  
  492.  
  493. -- Called by the 'update' self-command.
  494. function job_update(cmdParams, eventArgs)
  495. th_update(cmdParams, eventArgs)
  496. end
  497.  
  498. -- Function to display the current relevant user state when doing an update.
  499. -- Return true if display was handled, and you don't want the default info shown.
  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 == true then
  520. msg = msg .. ', Kiting'
  521. end
  522.  
  523. if state.PCTargetMode.value ~= 'default' then
  524. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  525. end
  526.  
  527. if state.SelectNPCTargets.value == true then
  528. msg = msg .. ', Target NPCs'
  529. end
  530.  
  531. msg = msg .. ', TH: ' .. state.TreasureMode.value
  532.  
  533. add_to_chat(122, msg)
  534.  
  535. eventArgs.handled = true
  536. end
  537.  
  538. -------------------------------------------------------------------------------------------------------------------
  539. -- Utility functions specific to this job.
  540. -------------------------------------------------------------------------------------------------------------------
  541.  
  542. -- State buff checks that will equip buff gear and mark the event as handled.
  543. function check_buff(buff_name, eventArgs)
  544. if state.Buff[buff_name] then
  545. equip(sets.buff[buff_name] or {})
  546. if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  547. equip(sets.TreasureHunter)
  548. end
  549. eventArgs.handled = true
  550. end
  551. end
  552.  
  553.  
  554. -- Check for various actions that we've specified in user code as being used with TH gear.
  555. -- This will only ever be called if TreasureMode is not 'None'.
  556. -- Category and Param are as specified in the action event packet.
  557. function th_action_check(category, param)
  558. if category == 2 or -- any ranged attack
  559. --category == 4 or -- any magic action
  560. (category == 3 and param == 30) or -- Aeolian Edge
  561. (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
  562. (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
  563. then return true
  564. end
  565. end
  566.  
  567.  
  568. -- Function to lock the ranged slot if we have a ranged weapon equipped.
  569. function check_range_lock()
  570. if player.equipment.range ~= 'empty' then
  571. disable('range', 'ammo')
  572. else
  573. enable('range', 'ammo')
  574. end
  575. end
  576.  
  577.  
  578. -- Select default macro book on initial load or subjob change.
  579. function select_default_macro_book()
  580. -- Default macro set/book
  581. if player.sub_job == 'DNC' then
  582. set_macro_page(2, 2)
  583. elseif player.sub_job == 'WAR' then
  584. set_macro_page(4, 2)
  585. elseif player.sub_job == 'NIN' then
  586. set_macro_page(3, 2)
  587. else
  588. set_macro_page(1, 2)
  589. end
  590. end
  591.  
  592. organizer_items = {
  593. Shihei="Shihei",
  594. Holy="Holy Water",
  595. Remedy="Remedy"}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement