Advertisement
bongarippa

RUN

Apr 3rd, 2017 (edited)
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.81 KB | None | 0 0
  1. -- Setup functions for this job. Generally should not be modified.
  2. -------------------------------------------------------------------------------------------------------------------
  3.  
  4. Enmity_Spells = S{"Foil","Flash","Blank Gaze","Geist Wall","Jettatura","Stun"}
  5.  
  6. -- Initialization function for this job file.
  7. function get_sets()
  8. include('organizer-lib')
  9. mote_include_version = 2
  10.  
  11. -- Load and initialize the include file.
  12. include('Mote-Include.lua')
  13. end
  14.  
  15.  
  16. -- Setup vars that are user-independent.
  17. function job_setup()
  18. -- Table of entries
  19. rune_timers = T{}
  20. -- entry = rune, index, expires
  21.  
  22. if player.main_job_level >= 65 then
  23. max_runes = 3
  24. elseif player.main_job_level >= 35 then
  25. max_runes = 2
  26. elseif player.main_job_level >= 5 then
  27. max_runes = 1
  28. else
  29. max_runes = 0
  30. end
  31.  
  32. state.Buff['Aftermath'] = buffactive['Aftermath: Lv.1'] or
  33. buffactive['Aftermath: Lv.2'] or
  34. buffactive['Aftermath: Lv.3'] or false
  35.  
  36. no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
  37. "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
  38.  
  39. --include('Mote-TreasureHunter')
  40. --state.TreasureMode:set('Tag')
  41. end
  42.  
  43. -------------------------------------------------------------------------------------------------------------------
  44. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  45. -------------------------------------------------------------------------------------------------------------------
  46.  
  47. function user_setup()
  48. state.OffenseMode:options('Normal', 'AccLow', 'AccHigh')
  49. state.RangedMode:options('Normal')
  50. state.HybridMode:options('Normal', 'PDT', 'Resist')
  51. state.WeaponskillMode:options('Normal', 'AccLow', 'AccHigh', 'Attack')
  52. state.CastingMode:options('Normal')
  53. state.IdleMode:options('Normal', 'Regen', 'Refresh', 'Dyna')
  54. state.RestingMode:options('Normal')
  55. state.PhysicalDefenseMode:options('PDT', 'Reraise')
  56. state.MagicalDefenseMode:options('MDT')
  57.  
  58. update_combat_weapon()
  59. update_melee_groups()
  60. select_default_macro_book()
  61.  
  62. send_command('lua l gearinfo')
  63. end
  64.  
  65. function user_unload()
  66. send_command('lua u gearinfo')
  67. end
  68.  
  69. function init_gear_sets()
  70. sets.enmity = {ammo="Aqreqaq Bomblet",
  71. head="Rabid Visor",
  72. body="Emet Harness +1",
  73. hands="Kurys Gloves",
  74. legs="Eri. Leg Guards +3",
  75. feet="Erilaz Greaves +3",
  76. neck={ name="Unmoving Collar +1", augments={'Path: A',}},
  77. waist="Goading Belt",
  78. left_ear="Cryptic Earring",
  79. right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
  80. left_ring="Gelatinous Ring +1",
  81. right_ring="Eihwaz Ring",
  82. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}}
  83.  
  84. sets.Battuta = {hands="Turms Mittens +1",feet="Futhark Boots +3 +1"}
  85.  
  86. sets.cure = {ammo="Sapience Orb",
  87. head={ name="Nyame Helm", augments={'Path: B',}},
  88. body={ name="Nyame Mail", augments={'Path: A',}},
  89. hands="Erilaz Gauntlets +3",
  90. legs="Eri. Leg Guards +3",
  91. feet="Erilaz Greaves +3",
  92. neck="Sacro Gorget",
  93. waist="Sroda Belt",
  94. left_ear="Cryptic Earring",
  95. right_ear="Roundel Earring",
  96. left_ring="Eihwaz Ring",
  97. right_ring="Moonlight Ring",
  98. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}}
  99.  
  100. sets.sird = {ammo="Staunch Tathlum +1",
  101. head="Erilaz Galea +3",
  102. body={ name="Taeon Tabard", augments={'Pet: Accuracy+17 Pet: Rng. AccLow.+17','Spell interruption rate down -9%','Phalanx +3',}},
  103. hands="Regal Gauntlets",
  104. legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  105. neck="Moonlight Necklace",
  106. right_ring="Supershear Ring",
  107. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  108.  
  109. sets.TreasureHunter = {head="Volte Cap",
  110. body="Volte Jupon",
  111. feet="Volte Boots"}
  112.  
  113. --------------------------------------
  114. -- Precast sets
  115. --------------------------------------
  116.  
  117. -- Precast sets to enhance JAs
  118. sets.precast.JA['Vallation'] = set_combine(sets.enmity, {body="Runeist's coat +3", legs="Futhark trousers +3"})
  119. sets.precast.JA['Valiance'] = sets.precast.JA['Vallation']
  120. sets.precast.JA['Pflug'] = set_combine(sets.enmity, {feet="Runeist Bottes +3"})
  121. sets.precast.JA['Battuta'] = set_combine(sets.enmity, {head="Fu. Bandeau +3"})
  122. sets.precast.JA['Liement'] = set_combine(sets.enmity, {body="Futhark Coat +3"})
  123. sets.precast.JA['Lunge'] = {ammo={ name="Seeth. Bomblet +1", augments={'Path: A',}},
  124. head="Agwu's Cap",
  125. body={ name="Nyame Mail", augments={'Path: A',}},
  126. hands="Agwu's Gages",
  127. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  128. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  129. neck="Baetyl Pendant",
  130. waist="Orpheus's Sash",
  131. left_ear="Friomisi Earring",
  132. right_ear="Novio Earring",
  133. left_ring="Shiva Ring +1",
  134. right_ring="Shiva Ring +1",
  135. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}}
  136. sets.precast.JA['Swipe'] = sets.precast.JA['Lunge']
  137. sets.precast.JA['Gambit'] = {hands="Runeist Mitons +2"}
  138. sets.precast.JA['Rayke'] = {feet="Futhark Boots +3"}
  139. sets.precast.JA['Elemental Sforzo'] = {body="Futhark Coat +3"}
  140. sets.precast.JA['Swordplay'] = {hands="Futhark Mitons +3"}
  141. sets.precast.JA['Embolden'] = {back={ name="Evasionist's Cape", augments={'Enmity+3','"Embolden"+15',}}}
  142. sets.precast.JA['Vivacious Pulse'] = set_combine(sets.enmity, {
  143. head="Erilaz Galea +3"})
  144. sets.precast.JA['One For All'] = set_combine(sets.enmity)
  145. sets.precast.JA['Provoke'] = sets.enmity
  146.  
  147.  
  148.  
  149. -- Fast cast sets for spells
  150. sets.precast.FC = {
  151. ammo="Sapience Orb",
  152. head="Rune. Bandeau +3",
  153. body="Erilaz Surcoat +3",
  154. hands="Leyline Gloves",
  155. legs="Agwu's Slops",
  156. feet={ name="Carmine Greaves +1", augments={'HP+80','MP+80','Phys. dmg. taken -4',}},
  157. neck="Orunmila's Torque",
  158. waist="Oneiros Belt",
  159. left_ear="Loquac. Earring",
  160. right_ear="Etiolation Earring",
  161. left_ring="Kishar Ring",
  162. right_ring="Moonlight Ring",
  163. back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10',}}}
  164. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {legs="Futhark trousers +3"})
  165. sets.precast.FC['Utsusemi: Ichi'] = set_combine(sets.precast.FC, {neck='Magoraga beads', back="Mujin Mantle"})
  166. sets.precast.FC['Utsusemi: Ni'] = set_combine(sets.precast.FC['Utsusemi: Ichi'], {})
  167.  
  168.  
  169. -- Weaponskill sets
  170. sets.precast.WS['Resolution'] = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  171. head={ name="Nyame Helm", augments={'Path: B',}},
  172. body={ name="Nyame Mail", augments={'Path: A',}},
  173. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  174. legs="Nyame Flanchard",
  175. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  176. neck="Fotia Gorget",
  177. waist="Fotia Belt",
  178. left_ear="Sherida Earring",
  179. right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  180. left_ring="Niqmaddu Ring",
  181. right_ring="Regal Ring",
  182. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  183.  
  184. sets.precast.WS['Resolution'].AccLow = {}
  185.  
  186. sets.precast.WS['Dimidiation'] = {ammo="Knobkierrie",
  187. head={ name="Nyame Helm", augments={'Path: B',}},
  188. body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  189. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  190. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  191. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  192. neck="Fotia Gorget",
  193. waist={ name="Kentarch Belt +1", augments={'Path: A',}},
  194. left_ear="Sherida Earring",
  195. right_ear="Ishvara Earring",
  196. left_ring="Cornelia's Ring",
  197. right_ring="Epaminondas's Ring",
  198. back={ name="Ogma's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}}}
  199.  
  200. sets.precast.WS['Dimidiation'].AccLow = set_combine(sets.precast.WS['Dimidiation'],{})
  201.  
  202. sets.precast.WS['Ground Strike'] = set_combine(sets.precast.WS['Dimidiation'], {})
  203.  
  204. sets.precast.WS['Herculean Slash'] = set_combine(sets.precast['Lunge'])
  205. sets.precast.WS['Herculean Slash'].AccLow = set_combine(sets.precast.WS['Herculean Slash'].Normal, {})
  206.  
  207. sets.precast.WS['Weapon Break'] = {ammo="Pemphredo Tathlum",
  208. head="Sakpata's Helm",
  209. body="Sakpata's Plate",
  210. hands={ name="Sakpata's Gauntlets", augments={'Path: A',}},
  211. legs="Sakpata's Cuisses",
  212. feet="Sakpata's Leggings",
  213. neck="Sanctity Necklace",
  214. waist="Eschan Stone",
  215. left_ear="Digni. Earring",
  216. right_ear={ name="Boii Earring +1", augments={'System: 1 ID: 1676 Val: 0','Accuracy+13','Mag. AccLow.+13','Crit.hit rate+4',}},
  217. left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  218. right_ring="Stikini Ring +1",
  219. back={ name="Ogma's Cape", augments={'STR+20','Mag. AccLow+20 /Mag. Dmg.+20','Mag. AccLow.+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}}
  220.  
  221. sets.precast.WS['Armor Break'] = set_combine(sets.precast.WS['Weapon Break'], {})
  222.  
  223.  
  224. --------------------------------------
  225. -- Midcast sets
  226. --------------------------------------
  227.  
  228. sets.midcast.FastRecast = {}
  229. sets.midcast['Enhancing Magic'] = {head="Erilaz Galea +3",
  230. hands="Runeist Mitons +2",
  231. legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  232. neck="Incanter's Torque",
  233. left_ear="Andoaa Earring",
  234. right_ear="Mimir Earring",
  235. left_ring="Stikini Ring +1"}
  236. sets.midcast['Phalanx'] = set_combine(sets.midcast['Enhancing Magic'], {head={ name="Fu. Bandeau +3", augments={'Enhances "Battuta" effect',}},
  237. body={ name="Herculean Vest", augments={'Crit. hit damage +1%','Weapon skill damage +2%','Phalanx +4','Accuracy+11 Attack+11',}},
  238. hands={ name="Herculean Gloves", augments={'MND+9','Crit. hit damage +2%','Phalanx +4','Accuracy+16 Attack+16',}},
  239. legs={ name="Herculean Trousers", augments={'Pet: STR+8','CHR+3','Phalanx +5','Accuracy+18 Attack+18',}},
  240. feet={ name="Herculean Boots", augments={'INT+2','Weapon Skill Acc.+11','Phalanx +3','Mag. Acc.+7 "Mag.Atk.Bns."+7',}}})
  241. sets.midcast['Regen'] = {head="Runeist Bandeau +3", hands="Regal Gauntlets", legs="Futhark trousers +3"}
  242. sets.midcast['Stoneskin'] = set_combine(sets.midcast['Enhancing Magic'], sets.midcast['Foil'])
  243. sets.midcast['Flash'] = set_combine(sets.midcast['Foil'])
  244. sets.midcast['Stun'] = set_combine(sets.midcast['Foil'])
  245. sets.midcast['Poisonga'] = set_combine(sets.midcast['Foil'])
  246. sets.midcast['Foil'] = set_combine(sets.enmity, {ammo="Staunch Tathlum +1",
  247. head="Erilaz Galea +3",
  248. body={ name="Nyame Mail", augments={'Path: A',}},
  249. hands="Regal Gauntlets",
  250. neck="Moonlight Necklace",
  251. waist="Audumbla Sash",
  252. left_ear="Magnetic Earring",
  253. left_ring="Supershear Ring",
  254. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}})
  255. sets.midcast['Blank Gaze'] = set_combine(sets.midcast['Foil'], {})
  256. sets.midcast['Jettatura'] = set_combine(sets.midcast['Foil'], {})
  257. sets.midcast['Soporific'] = {ammo="Staunch Tathlum +1",
  258. head="Erilaz Galea +3",
  259. body="Nyame Mail",
  260. hands="Regal Gauntlets",
  261. legs="Carmine Cuisses +1",
  262. feet="Erilaz Greaves +3",
  263. neck="Moonlight Necklace",
  264. waist="Plat. Mog. Belt",
  265. left_ear="Magnetic Earring",
  266. right_ear="Odnowa Earring +1",
  267. left_ring="Defending Ring",
  268. right_ring="Gelatinous Ring +1",
  269. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  270. sets.midcast['Sheep Song'] = set_combine(sets.midcast['Foil'])
  271. sets.midcast['Geist Wall'] = set_combine(sets.midcast['Soporific'])
  272. sets.midcast['Cocoon'] = set_combine(sets.midcast['Foil'], {})
  273. sets.midcast['Wild Carrot'] = set_combine(sets.cure)
  274. sets.midcast['Healing Breeze'] = set_combine(sets.cure)
  275. sets.midcast['Magic Fruit'] = set_combine(sets.cure)
  276. sets.midcast['Crusade'] = set_combine(sets.midcast['Regen'])
  277.  
  278. --------------------------------------
  279. -- Idle/resting/defense/etc sets
  280. --------------------------------------
  281.  
  282. sets.idle = {ammo="Yamarang",
  283. head={ name="Nyame Helm", augments={'Path: B',}},
  284. body="Erilaz Surcoat +3",
  285. hands="Turms Mittens +1",
  286. legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  287. feet="Erilaz Greaves +3",
  288. neck={ name="Futhark Torque +2", augments={'Path: A',}},
  289. waist="Plat. Mog. Belt",
  290. left_ear="Eabani Earring",
  291. right_ear="Erilaz Earring +1",
  292. left_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  293. right_ring="Moonlight Ring",
  294. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}}
  295.  
  296. sets.idle.Refresh = set_combine(sets.idle, {ammo="Homiliary",
  297. body="Runeist Coat +3",
  298. hands="Nyame Gauntlets",
  299. neck="Sibyl Scarf",
  300. right_ring="Stikini Ring +1",})
  301.  
  302. sets.idle.Regen = set_combine(sets.idle, {body={ name="Futhark Coat +3", augments={'Enhances "Elemental Sforzo" effect',}},
  303. hands="Regal Gauntlets",
  304. feet="Turms Leggings +1",
  305. neck="Bathy Choker +1"})
  306.  
  307. sets.idle.Dyna= set_combine(sets.idle, {legs="Eri. Leg Guards +3",
  308. right_ear="Eabani Earring"})
  309.  
  310. sets.defense.PDT = {}
  311.  
  312.  
  313.  
  314. sets.defense.MDT = set_combine(sets.defense.PDT, {})
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323. --------------------------------------
  324. -- Engaged sets
  325. --------------------------------------
  326.  
  327. sets.engaged = {ammo="Yamarang",
  328. head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  329. body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  330. hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  331. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  332. feet={ name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
  333. neck="Anu Torque",
  334. waist="Windbuffet Belt +1",
  335. left_ear="Telos Earring",
  336. right_ear="Sherida Earring",
  337. left_ring="Niqmaddu Ring",
  338. right_ring="Epona's Ring",
  339. back={ name="Ogma's cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%'}}}
  340.  
  341. sets.engaged.AccLow = set_combine(sets.engaged, {
  342. hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  343. feet={name="Herculean Boots", augments={'Accuracy+27','"Triple Atk."+4','MND+8','Attack+15',}},
  344. legs="Rune. Trousers +3",
  345. neck="Lissome Necklace",
  346. waist="Kentarch Belt +1",
  347. lear="Telos Earring",
  348. rear="Digni. Earring",
  349. ring1="Ilabrat Ring",
  350. back={name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%'}}})
  351.  
  352. sets.engaged.AccHigh = set_combine(sets.engaged.AccLow,
  353. {head={name="Carmine Mask +1", augments={'Accuracy+20','Mag. AccLow.+12','"Fast Cast"+4',}},
  354. body="Runeist's Coat +3",
  355. ring2="Regal Ring",
  356. back={name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%'}}})
  357.  
  358. sets.engaged.PDT = {ammo="Staunch Tathlum +1",
  359. head={ name="Nyame Helm", augments={'Path: B',}},
  360. body="Erilaz Surcoat +3",
  361. hands="Turms Mittens +1",
  362. legs="Eri. Leg Guards +3",
  363. feet="Erilaz Greaves +3",
  364. neck="Futhark Torque +2",
  365. waist="Ioskeha Belt +1",
  366. left_ear="Telos Earring",
  367. right_ear="Erilaz Earring +1",
  368. left_ring="Chirich Ring +1",
  369. right_ring="Moonlight Ring",
  370. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  371.  
  372. sets.engaged.PDT.AccLow = {ammo="Yamarang",
  373. head={ name="Nyame Helm", augments={'Path: B',}},
  374. body={ name="Nyame Mail", augments={'Path: A',}},
  375. hands="Turms Mittens +1",
  376. legs="Eri. Leg Guards +3",
  377. feet="Erilaz Greaves +3",
  378. neck={ name="Futhark Torque +2", augments={'Path: A',}},
  379. waist="Ioskeha Belt +1",
  380. left_ear="Sherida Earring",
  381. right_ear="Erilaz Earring +1",
  382. left_ring="Niqmaddu Ring",
  383. right_ring="Chirich Ring +1",
  384. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  385.  
  386. sets.engaged.Epeolatry = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  387. head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  388. body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  389. hands="Turms Mittens +1",
  390. legs="Eri. Leg Guards +3",
  391. feet="Turms Leggings +1",
  392. neck="Lissome Necklace",
  393. waist="Ioskeha Belt +1",
  394. left_ear="Telos Earring",
  395. right_ear="Sherida Earring",
  396. left_ring="Niqmaddu Ring",
  397. right_ring="Epona's Ring",
  398. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  399. sets.engaged.Epeolatry.AccLow = set_combine(sets.engaged.Epeolatry, {})
  400. sets.engaged.Epeolatry.AccHigh = set_combine(sets.engaged.Epeolatry.AccLow, {})
  401. sets.engaged.Epeolatry.PDT = {ammo="Staunch Tathlum +1",
  402. head={ name="Nyame Helm", augments={'Path: B',}},
  403. body="Erilaz Surcoat +3",
  404. hands="Turms Mittens +1",
  405. legs="Eri. Leg Guards +3",
  406. feet="Erilaz Greaves +3",
  407. neck="Futhark Torque +2",
  408. waist="Ioskeha Belt +1",
  409. left_ear="Telos Earring",
  410. right_ear="Erilaz Earring +1",
  411. left_ring="Chirich Ring +1",
  412. right_ring="Moonlight Ring",
  413. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  414. sets.engaged.Epeolatry.AccLow.PDT = set_combine(sets.engaged.Epeolatry.PDT, {})
  415. sets.engaged.Epeolatry.Resist = set_combine(sets.engaged.Epeolatry.PDT, {head="Volte Cap",
  416. body="Runeist Coat +3",
  417. hands="Volte Bracers",
  418. legs="Rune. Trousers +3",
  419. feet="Erilaz Greaves +3",
  420. left_ear="Hearty Earring",
  421. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}})
  422. -- Epeolatry Aftermath Lv.3 sets
  423. sets.engaged.Epeolatry.AM3 = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  424. head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  425. body="Nyame Mail",
  426. hands="Turms Mittens +1",
  427. legs="Volte Tights",
  428. feet="Volte Spats",
  429. neck="Lissome Necklace",
  430. waist={ name="Kentarch Belt +1", augments={'Path: A',}},
  431. left_ear="Dedition Earring",
  432. right_ear="Sherida Earring",
  433. left_ring="Niqmaddu Ring",
  434. right_ring="Epona's Ring",
  435. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  436. sets.engaged.Epeolatry.AccLow.AM3 = set_combine(sets.engaged.Epeolatry.AM3, {})
  437. sets.engaged.Epeolatry.AccHigh.AM3 = set_combine(sets.engaged.Epeolatry.AccLow.AM3, {})
  438. sets.engaged.Epeolatry.PDT.AM3 = set_combine(sets.engaged.Epeolatry.PDT, {ammo="Yamarang",
  439. body={ name="Nyame Mail", augments={'Path: A',}},
  440. left_ear="Dedition Earring",
  441. back={ name="Ogma's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}})
  442. sets.engaged.Epeolatry.AccLow.PDT.AM3 = set_combine(sets.engaged.Epeolatry.PDT.AM3, {})
  443. sets.engaged.Epeolatry.Resist.AM3 = set_combine(sets.engaged.Epeolatry.AM3, {head="Volte Cap",
  444. body="Runeist Coat +3",
  445. hands="Volte Bracers",
  446. legs="Rune. Trousers +3",
  447. feet="Erilaz Greaves +3",
  448. left_ear="Hearty Earring",
  449. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}})
  450.  
  451. sets.engaged.Lionheart = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  452. head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  453. body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  454. hands="Turms Mittens +1",
  455. legs="Eri. Leg Guards +3",
  456. feet="Turms Leggings +1",
  457. neck="Lissome Necklace",
  458. waist="Ioskeha Belt +1",
  459. left_ear="Telos Earring",
  460. right_ear="Sherida Earring",
  461. left_ring="Niqmaddu Ring",
  462. right_ring="Epona's Ring",
  463. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  464. sets.engaged.Lionheart.AccLow = set_combine(sets.engaged.Lionheart, {})
  465. sets.engaged.Lionheart.Resist = set_combine(sets.engaged.Lionheart.Resist, {head="Volte Cap",
  466. body="Runeist Coat +3",
  467. hands="Volte Bracers",
  468. legs="Rune. Trousers +3",
  469. feet="Erilaz Greaves +3",
  470. left_ear="Hearty Earring",
  471. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}})
  472. sets.engaged.Lionheart.PDT = {ammo="Staunch Tathlum +1",
  473. head={ name="Nyame Helm", augments={'Path: B',}},
  474. body="Erilaz Surcoat +3",
  475. hands="Turms Mittens +1",
  476. legs="Eri. Leg Guards +3",
  477. feet="Erilaz Greaves +3",
  478. neck="Futhark Torque +2",
  479. waist="Ioskeha Belt +1",
  480. left_ear="Telos Earring",
  481. right_ear="Erilaz Earring +1",
  482. left_ring="Chirich Ring +1",
  483. right_ring="Moonlight Ring",
  484. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  485. sets.engaged.Lionheart.SubtleBlow = {}
  486. sets.engaged.Lionheart.AccLow.PDT = {ammo="Yamarang",
  487. head={ name="Nyame Helm", augments={'Path: B',}},
  488. body={ name="Nyame Mail", augments={'Path: A',}},
  489. hands="Turms Mittens +1",
  490. legs="Eri. Leg Guards +3",
  491. feet="Erilaz Greaves +3",
  492. neck={ name="Futhark Torque +2", augments={'Path: A',}},
  493. waist="Ioskeha Belt +1",
  494. left_ear="Sherida Earring",
  495. right_ear="Erilaz Earring +1",
  496. left_ring="Niqmaddu Ring",
  497. right_ring="Chirich Ring +1",
  498. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  499.  
  500. sets.engaged.Lycurgos = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  501. head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  502. body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
  503. hands="Turms Mittens +1",
  504. legs="Eri. Leg Guards +3",
  505. feet="Turms Leggings +1",
  506. neck="Lissome Necklace",
  507. waist="Ioskeha Belt +1",
  508. left_ear="Telos Earring",
  509. right_ear="Sherida Earring",
  510. left_ring="Niqmaddu Ring",
  511. right_ring="Epona's Ring",
  512. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  513. sets.engaged.Lycurgos.AccLow = set_combine(sets.engaged.Lycurgos, {})
  514. sets.engaged.Lycurgos.Resist = set_combine(sets.engaged.Lycurgos.Resist, {head="Volte Cap",
  515. body="Runeist Coat +3",
  516. hands="Volte Bracers",
  517. legs="Rune. Trousers +3",
  518. feet="Erilaz Greaves +3",
  519. left_ear="Hearty Earring",
  520. back={ name="Ogma's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}}})
  521. sets.engaged.Lycurgos.PDT = {ammo="Yamarang",
  522. head={ name="Nyame Helm", augments={'Path: B',}},
  523. body="Erilaz Surcoat +3",
  524. hands="Turms Mittens +1",
  525. legs="Eri. Leg Guards +3",
  526. feet="Erilaz Greaves +3",
  527. neck="Futhark Torque +2",
  528. waist="Ioskeha Belt +1",
  529. left_ear="Telos Earring",
  530. right_ear="Erilaz Earring +1",
  531. left_ring="Chirich Ring +1",
  532. right_ring="Moonlight Ring",
  533. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  534. sets.engaged.Lycurgos.SubtleBlow = {}
  535. sets.engaged.Lycurgos.AccLow.PDT = {ammo="Yamarang",
  536. head={ name="Nyame Helm", augments={'Path: B',}},
  537. body={ name="Nyame Mail", augments={'Path: A',}},
  538. hands="Turms Mittens +1",
  539. legs="Eri. Leg Guards +3",
  540. feet="Erilaz Greaves +3",
  541. neck={ name="Futhark Torque +2", augments={'Path: A',}},
  542. waist="Ioskeha Belt +1",
  543. left_ear="Sherida Earring",
  544. right_ear="Erilaz Earring +1",
  545. left_ring="Niqmaddu Ring",
  546. right_ring="Chirich Ring +1",
  547. back={ name="Ogma's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}}}
  548.  
  549. sets.engaged.repulse = {back="Repulse Mantle"}
  550.  
  551. end
  552.  
  553. ------------------------------------------------------------------
  554. -- Action events
  555. ------------------------------------------------------------------
  556.  
  557. -- Run after the default midcast() is done.
  558. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  559. function midcast(spell,act)
  560. if spell.action_type == 'Magic' then
  561. if spell.english == 'Phalanx' then
  562. equip({head="Fu. bandeau +3"})
  563. elseif Enmity_Spells:contains(spell.name) then
  564. equip(sets.enmity)
  565. send_command('@input /echo Enmity Set')
  566. else
  567. equip(sets.precast.FC)
  568. end
  569. end
  570. end
  571.  
  572.  
  573. function job_aftercast(spell)
  574. if not spell.interrupted then
  575. if spell.type == 'Rune' then
  576. update_timers(spell)
  577. elseif spell.name == "Lunge" or spell.name == "Gambit" or spell.name == 'Rayke' then
  578. reset_timers()
  579. elseif spell.name == "Swipe" then
  580. send_command(trim(1))
  581. end
  582. end
  583. end
  584.  
  585.  
  586. function status_change(new,old)
  587.  
  588. if buffactive['Battuta'] then
  589. equip(sets.Battuta)
  590. end
  591. end
  592.  
  593. function job_buff_change(buff, gain)
  594. if buff == "Aftermath: Lv.3" or buff == "Aftermath" then
  595. classes.CustomMeleeGroups:clear()
  596. if (buff == "Aftermath: Lv.3" and gain) or buffactive["Aftermath: Lv.3"] then
  597. if player.equipment.main == "Epeolatry" then
  598. classes.CustomMeleeGroups:append('AM3')
  599. if gain then
  600. send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  601. else
  602. send_command('timers delete "Aftermath: Lv.3"')
  603. add_to_chat(123,'AM3: [OFF]')
  604. end
  605. end
  606. end
  607. end
  608. if buff == "Aftermath: Lv.3" or buff == "Aftermath" then
  609. handle_equipping_gear(player.status)
  610. end
  611. end
  612.  
  613.  
  614.  
  615.  
  616.  
  617. -------------------------------------------------------------------------------------------------------------------
  618. -- Customization hooks for idle and melee sets, after they've been automatically constructed.
  619. -------------------------------------------------------------------------------------------------------------------
  620.  
  621. -------------------------------------------------------------------------------------------------------------------
  622. -- General hooks for other events.
  623. -------------------------------------------------------------------------------------------------------------------
  624.  
  625. -------------------------------------------------------------------------------------------------------------------
  626. -- User code that supplements self-commands.
  627. -------------------------------------------------------------------------------------------------------------------
  628.  
  629. -------------------------------------------------------------------------------------------------------------------
  630. -- Utility functions specific to this job.
  631. -------------------------------------------------------------------------------------------------------------------
  632.  
  633. -- Select default macro book on initial load or subjob change.
  634. function select_default_macro_book()
  635. -- Default macro set/book
  636. if player.sub_job == 'WAR' then
  637. set_macro_page(3, 20)
  638. elseif player.sub_job == 'NIN' then
  639. set_macro_page(1, 20)
  640. elseif player.sub_job == 'SAM' then
  641. set_macro_page(2, 20)
  642. else
  643. set_macro_page(5, 20)
  644. end
  645. end
  646.  
  647. function update_combat_weapon()
  648. state.CombatWeapon:set(player.equipment.main)
  649. end
  650.  
  651. function update_melee_groups()
  652. classes.CustomMeleeGroups:clear()
  653. if buffactive['Aftermath: Lv.3'] and player.equipment.main == "Epeolatry" then
  654. classes.CustomMeleeGroups:append('AM3')
  655. end
  656. if buffactive.Aftermath and player.equipment.main == "Bravura" and state.HybridMode.value == 'PDT' then
  657. classes.CustomMeleeGroups:append('AM')
  658. end
  659. end
  660.  
  661. function get_rune_obi_element()
  662. weather_rune = buffactive[elements.rune_of[world.weather_element] or '']
  663. day_rune = buffactive[elements.rune_of[world.day_element] or '']
  664.  
  665. local found_rune_element
  666.  
  667. if weather_rune and day_rune then
  668. if weather_rune > day_rune then
  669. found_rune_element = world.weather_element
  670. else
  671. found_rune_element = world.day_element
  672. end
  673. elseif weather_rune then
  674. found_rune_element = world.weather_element
  675. elseif day_rune then
  676. found_rune_element = world.day_element
  677. end
  678.  
  679. return found_rune_element
  680. end
  681.  
  682. function get_obi(element)
  683. if element and elements.obi_of[element] then
  684. return (player.inventory[elements.obi_of[element]] or player.wardrobe[elements.obi_of[element]]) and elements.obi_of[element]
  685. end
  686. end
  687.  
  688.  
  689. ------------------------------------------------------------------
  690. -- Timer manipulation
  691. ------------------------------------------------------------------
  692.  
  693. -- Add a new run to the custom timers, and update index values for existing timers.
  694. function update_timers(spell)
  695. local expires_time = os.time() + 300
  696. local entry_index = rune_count(spell.name) + 1
  697.  
  698. local entry = {rune=spell.name, index=entry_index, expires=expires_time}
  699.  
  700. rune_timers:append(entry)
  701. local cmd_queue = create_timer(entry).. ';wait 0.05;'
  702.  
  703. cmd_queue = cmd_queue .. trim()
  704.  
  705. add_to_chat(123,'cmd_queue='..cmd_queue)
  706.  
  707. send_command(cmd_queue)
  708. end
  709.  
  710. -- Get the command string to create a custom timer for the provided entry.
  711. function create_timer(entry)
  712. local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) .. '"'
  713. local duration = entry.expires - os.time()
  714. return 'timers c ' .. timer_name .. ' ' .. tostring(duration) .. ' down'
  715. end
  716.  
  717. -- Get the command string to delete a custom timer for the provided entry.
  718. function delete_timer(entry)
  719. local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) .. '"'
  720. return 'timers d ' .. timer_name .. ''
  721. end
  722.  
  723. -- Reset all timers
  724. function reset_timers()
  725. local cmd_queue = ''
  726. for index,entry in pairs(rune_timers) do
  727. cmd_queue = cmd_queue .. delete_timer(entry) .. ';wait 0.05;'
  728. end
  729. rune_timers:clear()
  730. send_command(cmd_queue)
  731. end
  732.  
  733. -- Get a count of the number of runes of a given type
  734. function rune_count(rune)
  735. local count = 0
  736. local current_time = os.time()
  737. for _,entry in pairs(rune_timers) do
  738. if entry.rune == rune and entry.expires > current_time then
  739. count = count + 1
  740. end
  741. end
  742. return count
  743. end
  744.  
  745. -- Remove the oldest rune(s) from the table, until we're below the max_runes limit.
  746. -- If given a value n, remove n runes from the table.
  747. function trim(n)
  748. local cmd_queue = ''
  749.  
  750. local to_remove = n or (rune_timers:length() - max_runes)
  751.  
  752. while to_remove > 0 and rune_timers:length() > 0 do
  753. local oldest
  754. for index,entry in pairs(rune_timers) do
  755. if oldest == nil or entry.expires < rune_timers[oldest].expires then
  756. oldest = index
  757. end
  758. end
  759.  
  760. cmd_queue = cmd_queue .. prune(rune_timers[oldest].rune)
  761. to_remove = to_remove - 1
  762. end
  763.  
  764. return cmd_queue
  765. end
  766.  
  767. -- Drop the index of all runes of a given type.
  768. -- If the index drops to 0, it is removed from the table.
  769. function prune(rune)
  770. local cmd_queue = ''
  771.  
  772. for index,entry in pairs(rune_timers) do
  773. if entry.rune == rune then
  774. cmd_queue = cmd_queue .. delete_timer(entry) .. ';wait 0.05;'
  775. entry.index = entry.index - 1
  776. end
  777. end
  778.  
  779. for index,entry in pairs(rune_timers) do
  780. if entry.rune == rune then
  781. if entry.index == 0 then
  782. rune_timers[index] = nil
  783. else
  784. cmd_queue = cmd_queue .. create_timer(entry) .. ';wait 0.05;'
  785. end
  786. end
  787. end
  788.  
  789. return cmd_queue
  790. end
  791.  
  792.  
  793. ------------------------------------------------------------------
  794. -- Reset events
  795. ------------------------------------------------------------------
  796.  
  797. windower.raw_register_event('zone change',reset_timers)
  798. windower.raw_register_event('logout',reset_timers)
  799. windower.raw_register_event('status change',function(new, old)
  800. if gearswap.res.statuses[new].english == 'Dead' then
  801. reset_timers()
  802. end
  803. end)
  804.  
  805. function gearinfo(cmdParams, eventArgs)
  806. if cmdParams[1] == 'gearinfo' then
  807. if type(cmdParams[4]) == 'string' then
  808. if cmdParams[4] == 'true' then
  809. moving = true
  810. elseif cmdParams[4] == 'false' then
  811. moving = false
  812. end
  813. end
  814. if not midaction() then
  815. job_update()
  816. end
  817. end
  818. end
  819.  
  820. function check_moving()
  821. if state.DefenseMode.value == 'None' and state.Kiting.value == false then
  822. if state.Auto_Kite.value == false and moving then
  823. state.Auto_Kite:set(true)
  824. elseif state.Auto_Kite.value == true and moving == false then
  825. state.Auto_Kite:set(false)
  826. end
  827. end
  828. end
  829.  
  830. function check_gear()
  831. if no_swap_gear:contains(player.equipment.left_ring) then
  832. disable("ring1")
  833. else
  834. enable("ring1")
  835. end
  836. if no_swap_gear:contains(player.equipment.right_ring) then
  837. disable("ring2")
  838. else
  839. enable("ring2")
  840. end
  841. end
  842.  
  843. windower.register_event('zone change',
  844. function()
  845. if no_swap_gear:contains(player.equipment.left_ring) then
  846. enable("ring1")
  847. equip(sets.idle)
  848. end
  849. if no_swap_gear:contains(player.equipment.right_ring) then
  850. enable("ring2")
  851. equip(sets.idle)
  852. end
  853. end
  854. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement