Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.53 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- (Original: Motenten / Modified: Arislan)
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. --[[ Custom Features:
  6. Rune Selector Cycle through available runes and trigger with a single macro [Ctl-`]
  7. Knockback Mode Equips knockback prevention gear (Ctl-[)
  8. Death Mode Equips death prevention gear (Ctl-])
  9. Auto. Doom Automatically equips cursna received gear on doom status
  10. Capacity Pts. Mode Capacity Points Mode Toggle [WinKey-C]
  11. Reive Detection Automatically equips Reive bonus gear
  12. Auto. Lockstyle Automatically locks specified equipset on file load
  13. --]]
  14.  
  15.  
  16. -------------------------------------------------------------------------------------------------------------------
  17. -- Setup functions for this job. Generally should not be modified.
  18. -------------------------------------------------------------------------------------------------------------------
  19.  
  20. -- Initialization function for this job file.
  21. function get_sets()
  22. mote_include_version = 2
  23.  
  24. -- Load and initialize the include file.
  25. include('Mote-Include.lua')
  26. end
  27.  
  28. -- Setup vars that are user-independent.
  29. function job_setup()
  30. state.Buff.Doom = buffactive.Doom or false
  31.  
  32. -- /BLU Spell Maps
  33. blue_magic_maps = {}
  34.  
  35. blue_magic_maps.Enmity = S{'Blank Gaze', 'Geist Wall', 'Jettatura', 'Soporific',
  36. 'Poison Breath', 'Blitzstrahl', 'Sheep Song', 'Chaotic Eye'}
  37. blue_magic_maps.Cure = S{'Wild Carrot'}
  38. blue_magic_maps.Buffs = S{'Cocoon', 'Refueling'}
  39.  
  40. rayke_duration = 50
  41. gambit_duration = 98
  42.  
  43. end
  44.  
  45. -------------------------------------------------------------------------------------------------------------------
  46. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  47. -------------------------------------------------------------------------------------------------------------------
  48.  
  49. function user_setup()
  50. state.OffenseMode:options('STP', 'Normal', 'TADT', 'DT')
  51. state.WeaponskillMode:options('Normal', 'Acc')
  52. state.CastingMode:options('Normal', 'Resistant')
  53. state.IdleMode:options('Normal', 'DT', 'Refresh')
  54. state.PhysicalDefenseMode:options('PDT', 'HP', 'Critical')
  55. state.MagicalDefenseMode:options('MDT', 'Status')
  56.  
  57. state.WeaponLock = M(false, 'Weapon Lock')
  58. state.Knockback = M(false, 'Knockback')
  59. state.Death = M(false, "Death Resistance")
  60. state.CP = M(false, "Capacity Points Mode")
  61.  
  62. state.Runes = M{['description']='Runes', "Ignis", "Gelus", "Flabra", "Tellus", "Sulpor", "Unda", "Lux", "Tenebrae"}
  63.  
  64. send_command('bind ^` input //gs c rune')
  65. send_command('bind !` input /ja "Vivacious Pulse" <me>')
  66. send_command('bind ^- gs c cycleback Runes')
  67. send_command('bind ^= gs c cycle Runes')
  68. send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  69. send_command('bind ^[ gs c toggle Knockback')
  70. send_command('bind ^] gs c toggle Death')
  71. send_command('bind ^\ gs c toggle Charm')
  72. send_command('bind !q input /ma "Temper" <me>')
  73. send_command('bind !w input /ma "Cocoon" <me>')
  74. send_command('bind !e input /ma "Refueling" <me>')
  75. send_command('bind !o input /ma "Regen IV" <stpc>')
  76. --send_command('bind !p input /ma "Shock Spikes" <me>')
  77.  
  78. if player.sub_job == 'DNC' then
  79. send_command('bind ^, input /ja "Spectral Jig" <me>')
  80. send_command('unbind ^.')
  81. else
  82. send_command('bind ^, input /item "Silent Oil" <me>')
  83. send_command('bind ^. input /item "Prism Powder" <me>')
  84. end
  85.  
  86. send_command('bind @w gs c toggle WeaponLock')
  87. send_command('bind @c gs c toggle CP')
  88.  
  89. select_default_macro_book()
  90. set_lockstyle()
  91. end
  92.  
  93. function user_unload()
  94. send_command('unbind ^`')
  95. send_command('unbind !`')
  96. send_command('unbind ^-')
  97. send_command('unbind ^=')
  98. send_command('unbind ^f11')
  99. send_command('unbind ^[')
  100. send_command('unbind !]')
  101. send_command('unbind !q')
  102. send_command('unbind !w')
  103. send_command('unbind !e')
  104. send_command('unbind !o')
  105. send_command('unbind !p')
  106. send_command('unbind ^,')
  107. send_command('unbind @w')
  108. send_command('unbind @c')
  109. end
  110.  
  111. -- Define sets and vars used by this job file.
  112. function init_gear_sets()
  113. --------------------------------------
  114. -- Start defining the sets
  115. --------------------------------------
  116.  
  117. -- Enmity set
  118. sets.Enmity = {
  119. -- 45% DT and high HP
  120. ammo="Sapience Orb",
  121. head="Halitus Helm",
  122. body="Emet Harness +1",
  123. hands="Kurys Gloves",
  124. legs="Eri. Leg Guards +1",
  125. feet="Ahosi Leggings",
  126. neck="Unmoving Collar +1",
  127. waist="Flume Belt",
  128. left_ear="Cryptic Earring",
  129. right_ear="Odnowa Earring +1",
  130. left_ring="Vocane Ring",
  131. right_ring="Defending Ring",
  132. back="Moonbeam Cape",
  133. -- Aettir 10 / Alber Strap 5
  134. --ammo="Sapience Orb", --2
  135. --head="Halitus Helm", --8
  136. --body="Emet Harness +1", --10
  137. --hands="Kurys Gloves", --9
  138. --legs="Eri. Leg Guards +1", --7
  139. --feet="Ahosi Leggings",-- 7
  140. --neck="Unmoving Collar +1", --10
  141. --left_ear="Cryptic Earring", --4
  142. --right_ear="Eris' Earring +1", -- 3
  143. --left_ring="Petrov Ring", -- 4
  144. --right_ring="Provocare Ring", --5
  145. --back="Reiki Cloak", -- 6
  146. --waist="Sulla Belt", --3
  147. }
  148.  
  149. -- Precast sets to enhance JAs
  150. sets.precast.JA['Vallation'] = set_combine(sets.Enmity, {body="Runeist Coat +1", legs="Futhark Trousers +1", back="Ogma's Cape"})
  151. sets.precast.JA['Valiance'] = sets.precast.JA['Vallation']
  152. sets.precast.JA['Pflug'] = set_combine(sets.Enmity, {feet="Runeist Bottes +1"})
  153. sets.precast.JA['Battuta'] = set_combine(sets.Enmity, {head="Fu. Bandeau +1"})
  154. sets.precast.JA['Liement'] = set_combine(sets.Enmity, {body="Futhark Coat +1"})
  155.  
  156. sets.precast.JA['Lunge'] = {
  157. ammo="Pemphredo Tathlum",
  158. head={ name="Herculean Helm", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','STR+8','Mag. Acc.+9','"Mag.Atk.Bns."+13',}},
  159. body="Samnuha Coat",
  160. hands={ name="Herculean Gloves", augments={'Mag. Acc.+16 "Mag.Atk.Bns."+16','Mag. Acc.+2','"Mag.Atk.Bns."+13',}},
  161. legs={ name="Herculean Trousers", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','Crit. hit damage +4%','STR+11','Mag. Acc.+7','"Mag.Atk.Bns."+5',}},
  162. feet={ name="Herculean Boots", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','AGI+9','"Mag.Atk.Bns."+12',}},
  163. neck="Sanctity Necklace",
  164. left_ear={ name="Moonshade Earring", augments={'MP+25','TP Bonus +25',}},
  165. right_ear="Friomisi Earring",
  166. left_ring="Shiva Ring +1",
  167. right_ring="Shiva Ring +1",
  168. back="Argocham. Mantle",
  169. waist="Eschan Stone",
  170. }
  171.  
  172. sets.precast.JA['Swipe'] = sets.precast.JA['Lunge']
  173. sets.precast.JA['Gambit'] = {hands="Runeist Mitons +1"}
  174. sets.precast.JA['Rayke'] = {feet="Futhark Boots +1"}
  175. sets.precast.JA['Elemental Sforzo'] = {body="Futhark Coat +1"}
  176. sets.precast.JA['Swordplay'] = set_combine(sets.Enmity, {hands="Futhark Mitons +1"})
  177. sets.precast.JA['Embolden'] = set_combine(sets.Enmity, {back="Evasionist's Cape"})
  178. sets.precast.JA['Vivacious Pulse'] = set_combine(sets.Enmity, {head="Erilaz Galea +1", neck="Incanter's Torque", legs="Rune. Trousers +1"})
  179. sets.precast.JA['One For All'] = sets.Enmity
  180. sets.precast.JA['Provoke'] = sets.Enmity
  181.  
  182. sets.precast.Waltz = {
  183. hands="Slither Gloves +1",
  184. ring1="Asklepian Ring",
  185. ring2="Valseur's Ring",
  186. }
  187.  
  188. sets.precast.Waltz['Healing Waltz'] = {}
  189.  
  190. -- Fast cast sets for spells
  191. sets.precast.FC = {
  192. ammo="Sapience Orb", --2
  193. head={ name="Herculean Helm", augments={'"Fast Cast"+5','STR+4','Mag. Acc.+14',}}, --12
  194. body={ name="Taeon Tabard", augments={'"Fast Cast"+5',}}, --9
  195. hands="Leyline Gloves", --8
  196. legs={ name="Herculean Trousers", augments={'"Fast Cast"+5','"Mag.Atk.Bns."+2',}}, --5
  197. feet={ name="Herculean Boots", augments={'Mag. Acc.+4','"Fast Cast"+6',}}, --6
  198. neck="Voltsurge Torque", --4
  199. left_ear="Etiolation Earring", --1
  200. right_ear="Enchntr. Earring +1", --2
  201. left_ring="Kishar Ring", --4
  202. right_ring="Rahab Ring", --2
  203. --back=gear.RUN_HP_Cape, --10
  204. waist="Flume Belt",
  205.  
  206. }
  207.  
  208. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
  209. legs="Futhark Trousers +1",
  210. waist="Siegel Sash",
  211. })
  212.  
  213. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {
  214. ammo="Impatiens",
  215. neck="Magoraga Beads",
  216. ring1="Lebeche Ring",
  217. })
  218.  
  219. -- Weaponskill sets
  220. sets.precast.WS = {
  221. ammo="Seething Bomblet",
  222. head={ name="Adhemar Bonnet", augments={'DEX+10','AGI+10','Accuracy+15',}},
  223. body="Meg. Cuirie +2",
  224. hands={ name="Herculean Gloves", augments={'Accuracy+26','"Triple Atk."+3','DEX+3',}},
  225. legs="Samnuha Tights",
  226. feet={ name="Herculean Boots", augments={'Accuracy+17 Attack+17','"Triple Atk."+3','Accuracy+5','Attack+3',}},
  227. neck="Fotia Gorget",
  228. waist="Fotia Belt",
  229. left_ear={ name="Moonshade Earring", augments={'MP+25','TP Bonus +25',}},
  230. right_ear="Telos Earring",
  231. left_ring="Shukuyu Ring",
  232. right_ring="Epona's Ring",
  233. back={ name="Ogma's cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  234. }
  235.  
  236. sets.precast.WS.Acc = set_combine(sets.precast.WS, {
  237. legs="Meg. Chausses +2",
  238. })
  239.  
  240.  
  241. sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {
  242. legs="Meg. Chausses +2",
  243. })
  244.  
  245. sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS['Resolution'], {
  246.  
  247. })
  248.  
  249. sets.precast.WS['Dimidiation'] = set_combine(sets.precast.WS['Resolution'], {
  250. ammo="Knobkierrie",
  251. head={ name="Adhemar Bonnet", augments={'DEX+10','AGI+10','Accuracy+15',}},
  252. body={ name="Adhemar Jacket", augments={'DEX+10','AGI+10','Accuracy+15',}},
  253. hands="Meg. Gloves +2",
  254. legs={ name="Lustr. Subligar +1", augments={'Accuracy+20','DEX+8','Crit. hit rate+3%',}},
  255. feet={ name="Lustra. Leggings +1", augments={'HP+65','STR+15','DEX+15',}},
  256. neck="Caro Necklace",
  257. waist="Grunfeld Rope",
  258. left_ear={ name="Moonshade Earring", augments={'MP+25','TP Bonus +25',}},
  259. right_ear="Ishvara Earring",
  260. left_ring="Ramuh Ring +1",
  261. right_ring="Ramuh Ring +1",
  262. back={ name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  263. })
  264.  
  265. sets.precast.WS['Dimidiation'].Acc = set_combine(sets.precast.WS['Dimidiation'], {
  266. ammo="Seething Bomblet",
  267. })
  268.  
  269. sets.precast.WS['Herculean Slash'] = sets.precast.JA['Lunge']
  270.  
  271. sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {
  272. ammo="Knobkierrie",
  273. body="Meg. Cuirie +2",
  274. hands="Meg. Gloves +2",
  275. legs="Meg. Chausses +2",
  276. feet=gear.Herc_TA_feet,
  277. neck="Caro Necklace",
  278. ring1="Ifrit Ring +1",
  279. ring2="Shukuyu Ring",
  280. waist="Prosilio Belt +1",
  281. })
  282.  
  283. sets.precast.WS['Sanguine Blade'] = {
  284. ammo="Seeth. Bomblet +1",
  285. head="Pixie Hairpin +1",
  286. body="Samnuha Coat",
  287. hands="Carmine Fin. Ga. +1",
  288. legs=gear.Herc_MAB_legs,
  289. feet=gear.Herc_MAB_feet,
  290. neck="Sanctity Necklace",
  291. ear1="Moonshade Earring",
  292. ear2="Friomisi Earring",
  293. ring1="Archon Ring",
  294. ring2="Levia. Ring +1",
  295. back="Argocham. Mantle",
  296. waist="Eschan Stone",
  297. }
  298.  
  299. sets.precast.WS['True Strike']= sets.precast.WS['Savage Blade']
  300. sets.precast.WS['Judgment'] = sets.precast.WS['Savage Blade']
  301. sets.precast.WS['Black Halo'] = sets.precast.WS['Savage Blade']
  302.  
  303. sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS['Sanguine Blade'], {
  304. head=gear.Herc_MAB_head,
  305. ring1="Shiva Ring +1",
  306. ring2="Shiva Ring +1",
  307. })
  308.  
  309. --------------------------------------
  310. -- Midcast Sets
  311. --------------------------------------
  312.  
  313. sets.midcast.FastRecast = {
  314. ear1="Etiolation Earring",
  315. ear2="Loquacious Earring",
  316. }
  317.  
  318. sets.midcast['Enhancing Magic'] = {
  319. head="Erilaz Galea +1",--head="Carmine Mask +1",
  320. hands="Runeist Mitons +1",
  321. legs="Carmine Cuisses +1",
  322. neck="Incanter's Torque",
  323. ear2="Andoaa Earring",
  324. --ring1="Stikini Ring",
  325. --ring2="Stikini Ring",
  326. --waist="Olympus Sash",
  327.  
  328. back="Moonbeam Cape", --5
  329. left_ring="Vocane Ring",
  330. right_ring="Defending Ring",
  331. waist="Flume Belt",
  332. body={ name="Futhark Coat +1", augments={'Enhances "Elemental Sforzo" effect',}}, --7
  333. }
  334.  
  335. sets.midcast.EnhancingDuration = {
  336. head="Erilaz Galea +1",
  337. legs="Futhark Trousers +1",
  338. }
  339.  
  340. sets.midcast['Phalanx'] = set_combine(sets.midcast['Enhancing Magic'], {
  341. head="Fu. Bandeau +1",
  342. })
  343.  
  344. sets.midcast['Regen'] = set_combine(sets.midcast['Enhancing Magic'], {
  345. head="Runeist Bandeau +1",
  346. })
  347.  
  348. sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
  349. waist="Gishdubar Sash",
  350. })
  351.  
  352. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
  353. waist="Siegel Sash",
  354. })
  355.  
  356. sets.midcast.Protect = set_combine(sets.midcast.EnhancingDuration, {
  357. ring2="Sheltered Ring",
  358. })
  359.  
  360. sets.midcast.Shell = sets.midcast.Protect
  361.  
  362. sets.midcast['Divine Magic'] = {
  363. legs="Runeist Trousers +1",
  364. neck="Incanter's Torque",
  365. ring1="Stikini Ring",
  366. ring2="Stikini Ring",
  367. waist="Bishop's Sash",
  368. }
  369.  
  370. sets.midcast.Flash = set_combine(sets.Enmity, {
  371.  
  372. })
  373.  
  374. sets.midcast.Foil = set_combine(sets.Enmity, {
  375.  
  376. }) --sets.midcast.EnhancingDuration
  377.  
  378. sets.midcast.Utsusemi = {
  379. waist="Ninurta's Sash",
  380. }
  381.  
  382. sets.midcast['Blue Magic'] = {}
  383. sets.midcast['Blue Magic'].Enmity = sets.Enmity
  384. sets.midcast['Blue Magic'].Cure = sets.midcast.Cure
  385. sets.midcast['Blue Magic'].Buff = sets.midcast['Enhancing Magic']
  386.  
  387. --------------------------------------
  388. -- Idle/resting/defense/etc sets
  389. --------------------------------------
  390.  
  391. sets.idle = {
  392. ammo="Staunch Tathlum",
  393. head={ name="Fu. Bandeau +1", augments={'Enhances "Battuta" effect',}},
  394. body="Runeist Coat +1",
  395. hands="Erilaz Gauntlets +1",
  396. legs="Eri. Leg Guards +1",
  397. feet="Erilaz Greaves +1",
  398. neck="Loricate Torque +1",
  399. waist="Flume Belt",
  400. left_ear="Odnowa Earring +1",
  401. right_ear="Odnowa Earring",
  402. left_ring="Vocane Ring",
  403. right_ring="Defending Ring",
  404. back="Moonbeam Cape",
  405. }
  406.  
  407. sets.idle.DT = {
  408. -- Aettir (+5 PDTII)
  409. --sub="Refined Grip +1", --3/3
  410. --ammo="Staunch Tathlum", --2/2
  411. --head="Erilaz Galea +1",
  412. --body="Erilaz Surcoat +1",
  413. --legs="Eri. Leg Guards +1", --7/0
  414. --feet="Erilaz Greaves +1", --5/0
  415. --neck="Loricate Torque +1", --6/6
  416. --ear2="Odnowa Earring", --0/1
  417. --ear2="Odnowa Earring +1", --0/2
  418. --ring1="Gelatinous Ring +1", --7/(-1)
  419. --ring2="Defending Ring", --10/10
  420. --back="Evasionist's Cape", --7/4
  421. --waist="Flume Belt +1", --4/0
  422. ammo="Staunch Tathlum", --2
  423. head={ name="Fu. Bandeau +1", augments={'Enhances "Battuta" effect',}}, --4
  424. body={ name="Futhark Coat +1", augments={'Enhances "Elemental Sforzo" effect',}}, --7
  425. hands="Runeist Mitons +1", --2
  426. legs="Eri. Leg Guards +1", --7
  427. feet="Erilaz Greaves +1", --5
  428. neck="Loricate Torque +1", --6
  429. waist="Flume Belt", --4
  430. left_ear="Etiolation Earring",
  431. right_ear="Odnowa Earring +1",
  432. left_ring="Moonbeam Ring", --4
  433. right_ring="Moonbeam Ring", --4
  434. back="Moonbeam Cape", --5
  435. }
  436.  
  437. sets.idle.Refresh = set_combine(sets.idle, {
  438. head="Rawhide Mask",
  439. body="Runeist Coat +1",
  440. waist="Fucho-no-obi",
  441. })
  442.  
  443. sets.idle.Town = set_combine(sets.idle, {
  444. ammo="Staunch Tathlum",
  445. head={ name="Fu. Bandeau +1", augments={'Enhances "Battuta" effect',}},
  446. body="Runeist Coat +1",
  447. hands="Erilaz Gauntlets +1",
  448. legs="Eri. Leg Guards +1",
  449. feet="Erilaz Greaves +1",
  450. neck="Loricate Torque +1",
  451. waist="Flume Belt",
  452. left_ear="Odnowa Earring +1",
  453. right_ear="Odnowa Earring",
  454. left_ring="Vocane Ring",
  455. right_ring="Defending Ring",
  456. back="Moonbeam Cape",
  457. })
  458.  
  459. sets.idle.Weak = sets.idle.DT
  460.  
  461. sets.Kiting = {legs="Carmine Cuisses +1"}
  462.  
  463.  
  464. --------------------------------------
  465. -- Defense sets
  466. --------------------------------------
  467.  
  468. sets.defense.Knockback = {back="Repulse Mantle"}
  469.  
  470. sets.defense.Death = {
  471. body="Samnuha Coat",
  472. ring1="Warden's Ring",
  473. ring2="Eihwaz Ring",
  474. }
  475.  
  476. sets.defense.PDT = {
  477. -- Aettir (+5 PDTII)
  478. --sub="Refined Grip +1", --3/3
  479. --ammo="Staunch Tathlum", --2/2
  480. --head=gear.Herc_DT_head, --3/3
  481. --body="Erilaz Surcoat +1",
  482. --hands=gear.Herc_DT_hands, --5/3
  483. --legs="Eri. Leg Guards +1", --7/0
  484. --feet="Erilaz Greaves +1", --5/0
  485. --neck="Loricate Torque +1", --6/6
  486. --ear1="Genmei Earring", --2/0
  487. --ear2="Impreg. Earring",
  488. --ring1="Warden's Ring +1", --3/0
  489. --ring2="Defending Ring", --10/10
  490. --back=gear.RUN_HP_Cape,
  491. --waist="Flume Belt +1", --4/0
  492. ammo="Staunch Tathlum",
  493. head="Skulker's Bonnet +1",
  494. body="Meg. Cuirie +2",
  495. hands={ name="Herculean Gloves", augments={'Accuracy+26','"Triple Atk."+3','DEX+3',}},
  496. legs="Meg. Chausses +2",
  497. feet="Erilaz Greaves +1",
  498. neck="Loricate Torque +1",
  499. waist="Flume Belt",
  500. left_ear="Cessance Earring",
  501. right_ear="Telos Earring",
  502. left_ring="Vocane Ring",
  503. right_ring="Defending Ring",
  504. back="Solemnity Cape",
  505. }
  506.  
  507. sets.defense.MDT = {
  508. -- Aettir (+5 PDTII)
  509. --sub="Refined Grip +1", --3/3
  510. --ammo="Iron Gobbet",
  511. --head="Erilaz Galea +1",
  512. --body="Futhark Coat +1", --7/7
  513. --hands="Erilaz Gauntlets +1",
  514. --legs="Eri. Leg Guards +1", --7/0
  515. --feet="Erilaz Greaves +1",--5/0
  516. --neck="Warder's Charm +1",
  517. --ear2="Odnowa Earring", --0/1
  518. --ear2="Odnowa Earring +1", --0/2
  519. --ring1="Gelatinous Ring +1", --7/(-1)
  520. --ring2="Defending Ring", --10/10
  521. --back="Evasionist's Cape", --7/4
  522. --waist="Flume Belt +1", --4/0
  523. ammo="Staunch Tathlum",
  524. head="Skulker's Bonnet +1",
  525. body="Meg. Cuirie +2",
  526. hands={ name="Herculean Gloves", augments={'Accuracy+26','"Triple Atk."+3','DEX+3',}},
  527. legs="Meg. Chausses +2",
  528. feet="Erilaz Greaves +1",
  529. neck="Loricate Torque +1",
  530. waist="Flume Belt",
  531. left_ear="Cessance Earring",
  532. right_ear="Telos Earring",
  533. left_ring="Vocane Ring",
  534. right_ring="Defending Ring",
  535. back="Solemnity Cape",
  536. }
  537.  
  538. sets.defense.Status = {
  539. -- Aettir (+5 PDTII)
  540. --sub="Refined Grip +1", --3/3
  541. ammo="Staunch Tathlum",
  542. head={ name="Fu. Bandeau +1", augments={'Enhances "Battuta" effect',}},
  543. body="Runeist Coat +1",
  544. hands="Erilaz Gauntlets +1",
  545. legs="Rune. Trousers +1",
  546. feet="Erilaz Greaves +1",
  547. neck="Loricate Torque +1",
  548. waist="Flume Belt",
  549. left_ear="Hearty Earring",
  550. right_ear="Etiolation Earring",
  551. left_ring="Vocane Ring",
  552. right_ring="Defending Ring",
  553. back="Moonbeam Cape",
  554. }
  555.  
  556.  
  557. sets.defense.HP = {
  558. -- Epeo (+25 PDTII)
  559. --
  560. ammo="Staunch Tathlum", --2
  561. head={ name="Fu. Bandeau +1", augments={'Enhances "Battuta" effect',}}, --4
  562. body={ name="Futhark Coat +1", augments={'Enhances "Elemental Sforzo" effect',}}, --7
  563. hands="Runeist Mitons +1", --2
  564. legs="Eri. Leg Guards +1", --7
  565. feet="Erilaz Greaves +1", --5
  566. neck="Loricate Torque +1", --6
  567. waist="Flume Belt", --4
  568. left_ear="Etiolation Earring",
  569. right_ear="Odnowa Earring +1",
  570. left_ring="Moonbeam Ring", --4
  571. right_ring="Moonbeam Ring", --4
  572. back="Moonbeam Cape", --5
  573.  
  574. }
  575.  
  576. sets.defense.Critical = {
  577. -- Aettir (+5 PDTII)
  578. --sub="Refined Grip +1", --3/3
  579. ammo="Iron Gobbet", --(2)
  580. head="Fu. Bandeau +1", -- 4/0
  581. body="Futhark Coat +1", --7/7
  582. hands="Runeist Mitons +1", --2/0
  583. legs="Eri. Leg Guards +1", --7/0
  584. feet="Erilaz Greaves +1", --5/0
  585. neck="Loricate Torque +1", --6/6
  586. ear1="Genmei Earring", --2/0
  587. ear2="Impreg. Earring",
  588. left_ring="Vocane Ring",
  589. right_ring="Defending Ring",
  590. --ring1="Fortified Ring", --0/5(7)
  591. --ring2="Defending Ring", --10/10
  592. --back=gear.RUN_HP_Cape,
  593. back="Solemnity Cape",
  594. --waist="Flume Belt +1", --4/0
  595. waist="Flume Belt",
  596. }
  597.  
  598. --------------------------------------
  599. -- Engaged sets
  600. --------------------------------------
  601.  
  602. sets.engaged = {
  603. ammo="Yamarang",
  604. --head="Dampening Tam",
  605. head={ name="Adhemar Bonnet", augments={'DEX+10','AGI+10','Accuracy+15',}},
  606. body={ name="Adhemar Jacket", augments={'DEX+10','AGI+10','Accuracy+15',}},
  607. hands={ name="Adhemar Wristbands", augments={'DEX+10','AGI+10','Accuracy+15',}},
  608. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  609. feet={ name="Herculean Boots", augments={'Accuracy+17 Attack+17','"Triple Atk."+3','Accuracy+5','Attack+3',}},
  610. neck="Combatant's Torque",
  611. left_ear="Cessance Earring",
  612. right_ear="Telos Earring",
  613. left_ring="Petrov Ring",
  614. right_ring="Epona's Ring",
  615. back={ name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  616. waist="Windbuffet Belt +1",
  617. }
  618. --hybrid acc/dt (43 pdt)
  619. sets.engaged.TADT = set_combine(sets.engaged, {
  620. ammo="Staunch Tathlum",
  621. head={ name="Adhemar Bonnet", augments={'DEX+10','AGI+10','Accuracy+15',}},
  622. body="Meg. Cuirie +2",
  623. hands={ name="Herculean Gloves", augments={'Accuracy+26','"Triple Atk."+3','DEX+3',}},
  624. legs="Meg. Chausses +2",
  625. feet={ name="Herculean Boots", augments={'Accuracy+17 Attack+17','"Triple Atk."+3','Accuracy+5','Attack+3',}},
  626. neck="Loricate Torque +1",
  627. waist="Hurch'lan Sash",
  628. left_ear="Cessance Earring",
  629. right_ear="Telos Earring",
  630. left_ring="Moonbeam Ring",
  631. right_ring="Defending Ring",
  632. back={ name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  633. })
  634.  
  635. sets.engaged.MidAcc = set_combine(sets.engaged.LowAcc, {
  636. ammo="Yamarang",
  637. legs="Adhemar Kecks",
  638. ear2="Mache Earring",
  639. })
  640.  
  641. sets.engaged.HighAcc = set_combine(sets.engaged.MidAcc, {
  642. head="Carmine Mask +1",
  643. legs="Carmine Cuisses +1",
  644. --feet=gear.Herc_Acc_feet,
  645. ring1="Ramuh Ring +1",
  646. ring2="Ramuh Ring +1",
  647. --waist="Kentarch Belt +1",
  648. })
  649.  
  650. sets.engaged.STP = set_combine(sets.engaged, {
  651. --feet="Carmine Greaves +1",
  652. --neck="Ainia Collar",
  653. --ear2="Dedition Earring",
  654. --waist="Kentarch Belt +1",
  655. })
  656. sets.engaged.DT = {
  657. ammo="Staunch Tathlum", --2
  658. head={ name="Fu. Bandeau +1", augments={'Enhances "Battuta" effect',}}, --4
  659. body={ name="Futhark Coat +1", augments={'Enhances "Elemental Sforzo" effect',}}, --7
  660. hands="Runeist Mitons +1", --2
  661. legs="Eri. Leg Guards +1", --7
  662. feet="Erilaz Greaves +1", --5
  663. neck="Loricate Torque +1", --6
  664. waist="Flume Belt", --4
  665. left_ear="Etiolation Earring",
  666. right_ear="Odnowa Earring +1",
  667. left_ring="Moonbeam Ring", --4
  668. right_ring="Moonbeam Ring", --4
  669. back="Moonbeam Cape", --5
  670. }
  671. -- Custom buff sets
  672. sets.buff.Doom = {ring1="Eshmun's Ring", ring2="Eshmun's Ring", waist="Gishdubar Sash"}
  673.  
  674. sets.CP = {back="Mecisto. Mantle"}
  675. --sets.Reive = {neck="Ygnas's Resolve +1"}
  676.  
  677. end
  678.  
  679. -------------------------------------------------------------------------------------------------------------------
  680. -- Job-specific hooks for standard casting events.
  681. -------------------------------------------------------------------------------------------------------------------
  682.  
  683. function job_precast(spell, action, spellMap, eventArgs)
  684. if spell.english == 'Lunge' then
  685. local abil_recasts = windower.ffxi.get_ability_recasts()
  686. if abil_recasts[spell.recast_id] > 0 then
  687. send_command('input /jobability "Swipe" <t>')
  688. -- add_to_chat(122, '***Lunge Aborted: Timer on Cooldown -- Downgrading to Swipe.***')
  689. eventArgs.cancel = true
  690. return
  691. end
  692. end
  693. if spell.english == 'Valiance' then
  694. local abil_recasts = windower.ffxi.get_ability_recasts()
  695. if abil_recasts[spell.recast_id] > 0 then
  696. send_command('input /jobability "Vallation" <me>')
  697. eventArgs.cancel = true
  698. return
  699. end
  700. end
  701. if spellMap == 'Utsusemi' then
  702. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
  703. cancel_spell()
  704. add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
  705. eventArgs.handled = true
  706. return
  707. elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
  708. send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
  709. end
  710. end
  711. end
  712.  
  713. -- Run after the default midcast() is done.
  714. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  715. function job_post_midcast(spell, action, spellMap, eventArgs)
  716. if spell.english == 'Lunge' or spell.english == 'Swipe' then
  717. local obi = get_obi(get_rune_obi_element())
  718. if obi then
  719. equip({waist=obi})
  720. end
  721. end
  722. if spell.skill == 'Enhancing Magic' and classes.NoSkillSpells:contains(spell.english) then
  723. equip(sets.midcast.EnhancingDuration)
  724. end
  725. -- If DefenseMode is active, apply that gear over midcast
  726. -- choices. Precast is allowed through for fast cast on
  727. -- spells, but we want to return to def gear before there's
  728. -- time for anything to hit us.
  729. -- Exclude Job Abilities from this restriction, as we probably want
  730. -- the enhanced effect of whatever item of gear applies to them,
  731. -- and only one item should be swapped out.
  732. if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  733. handle_equipping_gear(player.status)
  734. eventArgs.handled = true
  735. end
  736. if buffactive['Reive Mark'] and spell.type == 'WeaponSkill' then
  737. equip(sets.Reive)
  738. end
  739. end
  740.  
  741. function job_aftercast(spell, action, spellMap, eventArgs)
  742. if spell.name == 'Rayke' and not spell.interrupted then
  743. send_command('@timers c "Rayke ['..spell.target.name..']" '..rayke_duration..' down spells/00136.png')
  744. send_command('input /p Rayke: ON;wait '..rayke_duration..';input /echo Rayke: OFF;')
  745. elseif spell.name == 'Gambit' and not spell.interrupted then
  746. send_command('@timers c "Gambit ['..spell.target.name..']" '..gambit_duration..' down spells/00136.png')
  747. send_command('input /p Gambit: ON;wait '..gambit_duration..';input /echo Gambit: OFF;')
  748. end
  749. end
  750.  
  751. -------------------------------------------------------------------------------------------------------------------
  752. -- Job-specific hooks for non-casting events.
  753. -------------------------------------------------------------------------------------------------------------------
  754.  
  755. -- Called when the player's status changes.
  756. function job_state_change(field, new_value, old_value)
  757. classes.CustomDefenseGroups:clear()
  758. classes.CustomDefenseGroups:append(state.Knockback.current)
  759. classes.CustomDefenseGroups:append(state.Death.current)
  760.  
  761. classes.CustomMeleeGroups:clear()
  762. classes.CustomMeleeGroups:append(state.Knockback.current)
  763. classes.CustomMeleeGroups:append(state.Death.current)
  764. end
  765.  
  766. function job_buff_change(buff,gain)
  767. if buff == 'Doom' and gain then
  768. status_change(player.status)
  769. --handle_equipping_gear(player.status)
  770. end
  771. -- If we gain or lose any haste buffs, adjust which gear set we target.
  772. if buffactive['Reive Mark'] then
  773. equip(sets.Reive)
  774. disable('neck')
  775. else
  776. enable('neck')
  777. end
  778. end
  779.  
  780. -- Handle notifications of general user state change.
  781. function job_state_change(stateField, newValue, oldValue)
  782. if state.WeaponLock.value == true then
  783. disable('main','sub')
  784. else
  785. enable('main','sub')
  786. end
  787. end
  788.  
  789. -------------------------------------------------------------------------------------------------------------------
  790. -- User code that supplements standard library decisions.
  791. -------------------------------------------------------------------------------------------------------------------
  792.  
  793. -- Modify the default idle set after it was constructed.
  794. function customize_idle_set(idleSet)
  795. if player.mpp < 51 then
  796. idleSet = set_combine(idleSet, sets.latent_refresh)
  797. end
  798. if state.Knockback.value == true then
  799. idleSet = set_combine(idleSet, sets.defense.Knockback)
  800. end
  801. if state.Death.value == true then
  802. idleSet = set_combine(idleSet, sets.defense.Death)
  803. end
  804. if state.Buff.Doom then
  805. idleSet = set_combine(idleSet, sets.buff.Doom)
  806. add_to_chat(060, 'doom set')
  807. end
  808. if state.CP.current == 'on' then
  809. equip(sets.CP)
  810. disable('back')
  811. else
  812. enable('back')
  813. end
  814.  
  815.  
  816. return idleSet
  817. end
  818.  
  819. -- Modify the default melee set after it was constructed.
  820. function customize_melee_set(meleeSet)
  821. if state.Knockback.value == true then
  822. meleeSet = set_combine(meleeSet, sets.defense.Knockback)
  823. end
  824. if state.Death.value == true then
  825. meleeSet = set_combine(meleeSet, sets.defense.Death)
  826. end
  827. if state.Buff.Doom then
  828. meleeSet = set_combine(meleeSet, sets.buff.Doom)
  829. add_to_chat(060, 'doom set')
  830. end
  831.  
  832. return meleeSet
  833. end
  834.  
  835. function customize_defense_set(defenseSet)
  836. if state.Knockback.value == true then
  837. defenseSet = set_combine(defenseSet, sets.defense.Knockback)
  838. end
  839. if state.Death.value == true then
  840. defenseSet = set_combine(defenseSet, sets.defense.Death)
  841. end
  842. if state.Buff.Doom then
  843. defenseSet = set_combine(defenseSet, sets.buff.Doom)
  844. add_to_chat(060, 'doom set')
  845. end
  846. return defenseSet
  847. end
  848.  
  849. -- Function to display the current relevant user state when doing an update.
  850. -- Set eventArgs.handled to true if display was handled, and you don't want the default info shown.
  851. function display_current_job_state(eventArgs)
  852. local msg = '[ Melee'
  853.  
  854. if state.CombatForm.has_value then
  855. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  856. end
  857.  
  858. msg = msg .. ': '
  859.  
  860. msg = msg .. state.OffenseMode.value
  861. if state.HybridMode.value ~= 'Normal' then
  862. msg = msg .. '/' .. state.HybridMode.value
  863. end
  864. msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value .. ' ]'
  865.  
  866. if state.DefenseMode.value ~= 'None' then
  867. msg = msg .. '[ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ' ]'
  868. end
  869.  
  870. if state.Knockback.value == true then
  871. msg = msg .. '[ Knockback: ON ]'
  872. end
  873.  
  874. if state.Death.value == true then
  875. msg = msg .. '[ Death: ON ]'
  876. end
  877.  
  878. if state.Kiting.value then
  879. msg = msg .. '[ Kiting Mode: ON ]'
  880. end
  881.  
  882. msg = msg .. '[ *Rune: '..state.Runes.current .. '* ]'
  883.  
  884. add_to_chat(060, msg)
  885.  
  886. eventArgs.handled = true
  887. end
  888.  
  889. -------------------------------------------------------------------------------------------------------------------
  890. -- General hooks for other events.
  891. -------------------------------------------------------------------------------------------------------------------
  892. function job_get_spell_map(spell, default_spell_map)
  893. if spell.skill == 'Blue Magic' then
  894. for category,spell_list in pairs(blue_magic_maps) do
  895. if spell_list:contains(spell.english) then
  896. return category
  897. end
  898. end
  899. end
  900. end
  901.  
  902. -------------------------------------------------------------------------------------------------------------------
  903. -- User code that supplements self-commands.
  904. -------------------------------------------------------------------------------------------------------------------
  905. function job_self_command(cmdParams, eventArgs)
  906. if cmdParams[1]:lower() == 'rune' then
  907. send_command('@input /ja '..state.Runes.value..' <me>')
  908. end
  909. end
  910.  
  911. -------------------------------------------------------------------------------------------------------------------
  912. -- Utility functions specific to this job.
  913. -------------------------------------------------------------------------------------------------------------------
  914.  
  915. -- Select default macro book on initial load or subjob change.
  916. function get_rune_obi_element()
  917. weather_rune = buffactive[elements.rune_of[world.weather_element] or '']
  918. day_rune = buffactive[elements.rune_of[world.day_element] or '']
  919.  
  920. local found_rune_element
  921.  
  922. if weather_rune and day_rune then
  923. if weather_rune > day_rune then
  924. found_rune_element = world.weather_element
  925. else
  926. found_rune_element = world.day_element
  927. end
  928. elseif weather_rune then
  929. found_rune_element = world.weather_element
  930. elseif day_rune then
  931. found_rune_element = world.day_element
  932. end
  933.  
  934. return found_rune_element
  935. end
  936.  
  937. function get_obi(element)
  938. if element and elements.obi_of[element] then
  939. return (player.inventory[elements.obi_of[element]] or player.wardrobe[elements.obi_of[element]]) and elements.obi_of[element]
  940. end
  941. end
  942.  
  943. -- Select default macro book on initial load or subjob change.
  944. function select_default_macro_book()
  945. -- Default macro set/book: (set, book)
  946. -- if player.sub_job == 'BLU' then
  947. -- set_macro_page(2, 12)
  948. -- else
  949. set_macro_page(1, 12)
  950. -- end
  951. end
  952.  
  953. function set_lockstyle()
  954. send_command('wait 5; input /lockstyleset 11')
  955. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement