bongarippa

DRG

May 10th, 2025
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.22 KB | None | 0 0
  1. -- Original: Motenten / Modified: Arislan
  2.  
  3. -------------------------------------------------------------------------------------------------------------------
  4. -- Keybinds
  5. -------------------------------------------------------------------------------------------------------------------
  6.  
  7. -- Modes: [ F9 ] Cycle Offense Modes
  8. -- [ CTRL+F9 ] Cycle Hybrid Modes
  9. -- [ WIN+F9 ] Cycle Weapon Skill Modes
  10. -- [ F10 ] Emergency -PDT Mode
  11. -- [ ALT+F10 ] Toggle Kiting Mode
  12. -- [ F11 ] Emergency -MDT Mode
  13. -- [ F12 ] Update Current Gear / Report Current Status
  14. -- [ CTRL+F12 ] Cycle Idle Modes
  15. -- [ ALT+F12 ] Cancel Emergency -PDT/-MDT Mode
  16. -- [ WIN+A ] AttackMode: Capped/Uncapped WS Modifier
  17. -- [ WIN+C ] Toggle Capacity Points Mode
  18. --
  19. --
  20. -- (Global-Binds.lua contains additional non-job-related keybinds)
  21.  
  22. -------------------------------------------------------------------------------------------------------------------
  23. -- Setup functions for this job. Generally should not be modified.
  24. -------------------------------------------------------------------------------------------------------------------
  25.  
  26. -- Initialization function for this job file.
  27. function get_sets()
  28. mote_include_version = 2
  29.  
  30. -- Load and initialize the include file.
  31. include('Mote-Include.lua')
  32. end
  33.  
  34. -- Setup vars that are user-independent.
  35. function job_setup()
  36.  
  37. no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
  38. "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
  39.  
  40. wyv_breath_spells = S{'Dia', 'Cure', 'Poison', 'Blaze Spikes', 'Protect', 'Sprout Smack', 'Head Butt', 'Cocoon',
  41. 'Barfira', 'Barblizzara', 'Baraera', 'Barstonra', 'Barthundra', 'Barwatera'}
  42. wyv_elem_breath = S{'Flame Breath', 'Frost Breath', 'Sand Breath', 'Hydro Breath', 'Gust Breath', 'Lightning Breath'}
  43.  
  44. lockstyleset = 12
  45.  
  46. end
  47.  
  48. -------------------------------------------------------------------------------------------------------------------
  49. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  50. -------------------------------------------------------------------------------------------------------------------
  51.  
  52. function user_setup()
  53. state.OffenseMode:options('STP', 'Normal', 'LowAcc', 'MidAcc', 'HighAcc', 'MaxAcc')
  54. state.WeaponskillMode:options('Normal', 'Acc', 'PDL', 'Treasure', 'Subtle')
  55. state.HybridMode:options('Normal', 'Subtle', 'MEVA', 'Crit', 'DT')
  56. state.IdleMode:options('Normal','Regain')
  57. state.PhysicalDefenseMode:options('PDT', 'PetPDT')
  58.  
  59. state.AttackMode = M{['description']='Attack', 'Capped', 'Uncapped'}
  60. state.CP = M(false, "Capacity Points Mode")
  61.  
  62. -- Additional local binds
  63. -- include('Global-Binds.lua') -- OK to remove this line
  64. -- include('Global-GEO-Binds.lua') -- OK to remove this line
  65.  
  66. send_command('lua l gearinfo')
  67.  
  68. send_command('bind ^` input /ja "Call Wyvern" <me>')
  69. send_command('bind !` input /ja "Spirit Link" <me>')
  70. send_command('bind @a gs c cycle AttackMode')
  71. send_command('bind @c gs c toggle CP')
  72.  
  73. if player.sub_job == 'WAR' then
  74. send_command('bind !w input /ja "Defender" <me>')
  75. elseif player.sub_job == 'SAM' then
  76. send_command('bind !w input /ja "Hasso" <me>')
  77. end
  78.  
  79. send_command('bind @w gs c toggle WeaponLock')
  80. send_command('bind @c gs c toggle CP')
  81.  
  82. if player.sub_job == 'WAR' then
  83. send_command('bind ^numpad/ input /ja "Berserk" <me>')
  84. send_command('bind ^numpad* input /ja "Warcry" <me>')
  85. send_command('bind ^numpad- input /ja "Aggressor" <me>')
  86. elseif player.sub_job == 'SAM' then
  87. send_command('bind ^numpad/ input /ja "Meditate" <me>')
  88. send_command('bind ^numpad* input /ja "Sekkanoki" <me>')
  89. send_command('bind ^numpad- input /ja "Third Eye" <me>')
  90. end
  91.  
  92. --send_command('bind ^numpad7 input /ws "Camlann\'s Torment" <t>')
  93. --send_command('bind ^numpad8 input /ws "Drakesbane" <t>')
  94. --send_command('bind ^numpad4 input /ws "Stardiver" <t>')
  95. --send_command('bind ^numpad5 input /ws "Geirskogul" <t>')
  96. --send_command('bind ^numpad1 input /ws "Sonic Thrust" <t>')
  97. --send_command('bind ^numpad2 input /ws "Leg Sweep" <t>')
  98.  
  99. --send_command('bind numpad0 input /ja "Jump" <t>')
  100. --send_command('bind numpad. input /ja "High Jump" <t>')
  101. --send_command('bind ^numpad0 input /ja "Spirit Jump" <t>')
  102. --send_command('bind ^numpad. input /ja "Soul Jump" <t>')
  103. --send_command('bind ^numpadenter input /ja "Super Jump" <t>')
  104.  
  105. select_default_macro_book()
  106. set_lockstyle()
  107.  
  108. state.Auto_Kite = M(false, 'Auto_Kite')
  109. moving = false
  110.  
  111. end
  112.  
  113. function user_unload()
  114. send_command('unbind ^`')
  115. send_command('unbind !`')
  116. send_command('unbind @a')
  117. send_command('unbind @c')
  118. send_command('unbind ^numpad/')
  119. send_command('unbind ^numpad*')
  120. send_command('unbind ^numpad-')
  121. send_command('unbind ^numpad7')
  122. send_command('unbind ^numpad8')
  123. send_command('unbind ^numpad4')
  124. send_command('unbind ^numpad5')
  125. send_command('unbind ^numpad1')
  126. send_command('unbind ^numpad2')
  127. send_command('unbind numpad0')
  128. send_command('unbind numpad.')
  129. send_command('unbind ^numpad0')
  130. send_command('unbind ^numpad.')
  131. send_command('unbind ^numpadenter')
  132.  
  133. send_command('unbind #`')
  134. send_command('unbind #1')
  135. send_command('unbind #2')
  136. send_command('unbind #3')
  137. send_command('unbind #4')
  138. send_command('unbind #5')
  139. send_command('unbind #6')
  140. send_command('unbind #7')
  141. send_command('unbind #8')
  142. send_command('unbind #9')
  143. send_command('unbind #0')
  144.  
  145. send_command('lua u gearinfo')
  146. end
  147.  
  148. -- Define sets and vars used by this job file.
  149. function init_gear_sets()
  150.  
  151. ------------------------------------------------------------------------------------------------
  152. ---------------------------------------- Precast Sets ------------------------------------------
  153. ------------------------------------------------------------------------------------------------
  154.  
  155. sets.precast.JA['Spirit Surge'] = {body="Ptero. Mail +3"}
  156. sets.precast.JA['Call Wyvern'] = {body="Ptero. Mail +3",
  157. right_ear="Pel. Earring +2"}
  158. sets.precast.JA['Ancient Circle'] = {legs="Vishap Brais +3"}
  159.  
  160. sets.precast.JA['Spirit Link'] = {
  161. head="Vishap Armet +1",
  162. hands="Peltast's Vambraces +3",
  163. feet={ name="Ptero. Greaves +3", augments={'Enhances "Empathy" effect',}},
  164. left_ear="Pratik Earring",
  165. }
  166.  
  167. sets.precast.JA['Steady Wing'] = {
  168. body={ name="Emicho Haubert", augments={'Pet: HP+100','Pet: INT+15','Pet: "Regen"+2',}},
  169. hands={ name="Despair Fin. Gaunt.", augments={'Accuracy+10','Pet: VIT+7','Pet: Damage taken -3%',}},
  170. legs="Vishap Brais +3",
  171. feet={ name="Ptero. Greaves +3", augments={'Enhances "Empathy" effect',}},
  172. left_ear="Lancer's Earring",
  173. right_ear="Anastasi Earring",
  174. back={ name="Updraft Mantle", augments={'STR+2','Pet: Breath+10','Pet: Damage taken -3%','Weapon skill damage +2%',}},
  175. }
  176.  
  177. sets.precast.JA['Jump'] = {
  178. ammo="Aurgelmir Orb +1",
  179. head="Flam. Zucchetto +2",
  180. body="Vishap Mail +3",
  181. hands="Vishap F. G. +1",
  182. legs={ name="Ptero. Brais +3", augments={'Enhances "Strafe" effect',}},
  183. feet="Ostro Greaves",
  184. neck="Anu Torque",
  185. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  186. left_ear="Sherida Earring",
  187. right_ear="Telos Earring",
  188. left_ring="Chirich Ring +1",
  189. right_ring="Niqmaddu Ring",
  190. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
  191. }
  192.  
  193. sets.precast.JA['High Jump'] = sets.precast.JA['Jump']
  194. sets.precast.JA['Spirit Jump'] = sets.precast.JA['Jump']
  195. sets.precast.JA['Soul Jump'] = sets.precast.JA['Jump']
  196. sets.precast.JA['Super Jump'] = {}
  197.  
  198. sets.precast.JA['Angon'] = {ammo="Angon", hands="Ptero. Fin. G. +3"}
  199.  
  200. sets.precast.HealingBreath = {head="Vishap Armet +1"}
  201. -- Fast cast sets for spells
  202. sets.precast.FC = {ammo="Sapience Orb",
  203. head="Vishap Armet +1",
  204. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  205. feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
  206. neck="Orunmila's Torque",
  207. left_ear="Enchntr. Earring +1",
  208. right_ear="Loquac. Earring",
  209. left_ring="Rahab Ring",
  210. right_ring="Weather. Ring +1",
  211. }
  212.  
  213. ------------------------------------------------------------------------------------------------
  214. ------------------------------------- Weapon Skill Sets ----------------------------------------
  215. ------------------------------------------------------------------------------------------------
  216.  
  217. sets.precast.WS = {
  218. ammo="Knobkierrie",
  219. head="Nyame Helm",
  220. body="Nyame Mail",
  221. hands="Nyame Gauntlets",
  222. legs="Vishap Brais +3",
  223. feet="Nyame Flanchard",
  224. neck="Fotia Gorget",
  225. waist="Fotia Belt",
  226. left_ear="Moonshade Earring",
  227. right_ear="Pel. Earring +2",
  228. left_ring="Regal Ring",
  229. right_ring="Niqmaddu Ring",
  230. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  231. }
  232.  
  233. sets.precast.WS.Acc = sets.precast.WS
  234.  
  235. sets.precast.WS.Uncapped = set_combine(sets.precast.WS, {
  236. head="",
  237. })
  238.  
  239. sets.precast.WS['Impulse Drive'] = {ammo="Knobkierrie",
  240. head="Peltast's Mezail +3",
  241. body="Nyame Mail",
  242. hands="Ptero. Fin. G. +3",
  243. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  244. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  245. neck="Rep. Plat. Medal",
  246. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  247. left_ear="Thrud Earring",
  248. right_ear={ name="Pel. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+16','Mag. Acc.+16','Crit.hit rate+6','STR+7 VIT+7',}},
  249. left_ring="Cornelia's Ring",
  250. right_ring="Niqmaddu Ring",
  251. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  252. }
  253.  
  254. sets.precast.WS['Impulse Drive'].Acc = sets.precast.WS['Impulse Drive']
  255.  
  256. sets.precast.WS['Impulse Drive'].Uncapped = sets.precast.WS['Impulse Drive']
  257.  
  258. sets.precast.WS['Camlann\'s Torment'] = {ammo="Knobkierrie",
  259. head="Peltast's Mezail +3",
  260. body="Nyame Mail",
  261. hands="Ptero. Fin. G. +3",
  262. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  263. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  264. neck="Rep. Plat. Medal",
  265. waist="Fotia Belt",
  266. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  267. right_ear="Thrud Earring",
  268. left_ring="Cornelia's Ring",
  269. right_ring="Regal Ring",
  270. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  271. }
  272.  
  273. sets.precast.WS['Camlann\'s Torment'].Acc = sets.precast.WS['Camlann\'s Torment']
  274.  
  275. sets.precast.WS['Camlann\'s Torment'].Uncapped = sets.precast.WS['Camlann\'s Torment']
  276.  
  277. sets.precast.WS['Wheeling Thrust'] = {ammo="Knobkierrie",
  278. head="Nyame Helm",
  279. body="Nyame Mail",
  280. hands="Nyame Gauntlets",
  281. legs="Nyame Flanchard",
  282. feet="Nyame Sollerets",
  283. neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  284. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  285. left_ear="Thrud Earring",
  286. right_ear="Pel. Earring +2",
  287. left_ring="Epaminondas's Ring",
  288. right_ring="Niqmaddu Ring",
  289. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
  290. }
  291.  
  292. sets.precast.WS['Penta Thrust'] = {
  293. ammo="Knobkierrie",
  294. head={ name="Ptero. Armet +3", augments={'Enhances "Deep Breathing" effect',}},
  295. body="Dagon breastplate",
  296. hands="Sulev. Gauntlets +2",
  297. legs="Sulev. Cuisses +2",
  298. feet="Nyame Sollerets",
  299. neck="Fotia Gorget",
  300. waist="Fotia Belt",
  301. left_ear="Moonshade Earring",
  302. right_ear="Pel. Earring +2",
  303. left_ring="Regal Ring",
  304. right_ring="Niqmaddu Ring",
  305. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  306. }
  307.  
  308. sets.precast.WS['Drakesbane'] = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  309. head={ name="Blistering Sallet +1", augments={'Path: A',}},
  310. body="Hjarrandi Breast.",
  311. hands={ name="Gleti's Gauntlets", augments={'Path: A',}},
  312. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  313. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  314. neck="Rep. Plat. Medal",
  315. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  316. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  317. right_ear={ name="Pel. Earring +2", augments={'System: 1 ID: 1676 Val: 0','Accuracy+16','Mag. Acc.+16','Crit.hit rate+6','STR+7 VIT+7',}},
  318. left_ring="Cornelia's Ring",
  319. right_ring="Niqmaddu Ring",
  320. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Crit.hit rate+10','Phys. dmg. taken-10%',}}
  321. }
  322.  
  323. sets.precast.WS['Drakesbane'].Acc = sets.precast.WS['Drakesbane']
  324.  
  325. sets.precast.WS['Drakesbane'].Uncapped = sets.precast.WS['Drakesbane']
  326.  
  327. sets.precast.WS['Geirskogul'] = {ammo="Knobkierrie",
  328. head="Peltast's Mezail +3",
  329. body="Nyame Mail",
  330. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  331. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  332. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  333. neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  334. waist="Fotia Belt",
  335. left_ear="Sherida Earring",
  336. right_ear="Thrud Earring",
  337. left_ring="Epaminondas's Ring",
  338. right_ring="Niqmaddu Ring",
  339. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
  340. }
  341.  
  342. sets.precast.WS['Geirskogul'].Acc = set_combine(sets.precast.WS['Geirskogul'], {})
  343.  
  344. sets.precast.WS['Geirskogul'].Uncapped = set_combine(sets.precast.WS['Geirskogul'], {
  345. head="",
  346. legs=gear.Valo_WSD_legs,
  347. })
  348.  
  349. sets.precast.WS['Sonic Thrust'] = sets.precast.WS['Camlann\'s Torment']
  350. sets.precast.WS['Sonic Thrust'].Acc = sets.precast.WS['Camlann\'s Torment'].Acc
  351. sets.precast.WS['Sonic Thrust'].Uncapped = sets.precast.WS['Camlann\'s Torment'].Uncapped
  352.  
  353. sets.precast.WS['Sonic Thrust'].Treasure = {ammo="Knobkierrie",
  354. head={ name="Nyame Helm", augments={'Path: B',}},
  355. body="Volte Jupon",
  356. hands="Volte Bracers",
  357. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  358. feet="Volte Boots",
  359. neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  360. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  361. left_ear="Thrud Earring",
  362. right_ear="Balder Earring +1",
  363. left_ring="Epaminondas's Ring",
  364. right_ring="Niqmaddu Ring",
  365. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
  366. }
  367.  
  368. sets.precast.WS['Stardiver'] = {ammo="Knobkierrie",
  369. head="Peltast's Mezail +3",
  370. body="Nyame Mail",
  371. hands="Pel. Vambraces +3",
  372. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  373. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  374. neck="Fotia Gorget",
  375. waist="Fotia Belt",
  376. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  377. right_ear="Sherida Earring",
  378. left_ring="Cornelia's Ring",
  379. right_ring="Niqmaddu Ring",
  380. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
  381. }
  382.  
  383. sets.precast.WS['Stardiver'].Acc = set_combine(sets.precast.WS['Stardiver'], {
  384. feet="Vishap Greaves +1",
  385. })
  386.  
  387. sets.precast.WS['Stardiver'].PDL = set_combine(sets.precast.WS['Stardiver'], {
  388. head="Gleti's Mask",
  389. body="Gleti's Cuirass",
  390. hands="Gleti's Gauntlets",
  391. legs="Gleti's Breeches",
  392. feet="Gleti's Boots",
  393. })
  394. sets.precast.WS['Stardiver'].Subtle = set_combine(sets.precast.WS['Stardiver'], {legs="Gleti's Breeches",
  395. left_ear="Sherida Earring",
  396. right_ear="Pel. Earring +2",
  397. right_ring="Niqmaddu Ring",})
  398.  
  399. sets.precast.WS['Raiden Thrust'] = {
  400. ammo="Pemphredo Tathlum",
  401. head={ name="Nyame Helm", augments={'Path: B',}},
  402. body="Nyame Mail",
  403. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  404. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  405. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  406. neck="Baetyl Pendant",
  407. waist="Orpheus's Sash",
  408. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  409. right_ear="Friomisi Earring",
  410. left_ring="Cornelia's Ring",
  411. right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  412. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  413. }
  414. sets.precast.WS['Thunder Thrust'] = sets.precast.WS['Raiden Thrust']
  415.  
  416. sets.precast.WS['Leg Sweep'] = {ammo="Voluspa Tathlum",
  417. head="Peltast's Mezail +3",
  418. body="Pelt. Plackart +3",
  419. hands="Pel. Vambraces +3",
  420. legs="Pelt. Cuissots +3",
  421. feet="Pelt. Schyn. +3",
  422. neck="Sanctity Necklace",
  423. waist="Skrymir Cord +1",
  424. left_ear="Crep. Earring",
  425. right_ear="Pel. Earring +2",
  426. left_ring="Etana Ring",
  427. right_ring="Stikini Ring +1",
  428. back={ name="Brigantia's Mantle", augments={'STR+20','Mag. Acc+20 /Mag. Dmg.+20','Magic Damage +10','Weapon skill damage +10%',}},
  429. }
  430.  
  431. sets.precast.WS['Shell Crusher'] = sets.precast.WS['Leg Sweep']
  432.  
  433. sets.precast.WS['Cataclysm'] = {ammo="Pemphredo Tathlum",
  434. head="Pixie Hairpin +1",
  435. body="Nyame Mail",
  436. hands="Nyame Gauntlets",
  437. legs="Nyame Flanchard",
  438. feet="Nyame sollerets",
  439. neck="Sanctity Necklace",
  440. waist="Orpheus's Sash",
  441. left_ear="Crematio Earring",
  442. right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  443. left_ring="Archon Ring",
  444. right_ring="Shiva Ring +1",
  445. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
  446. }
  447.  
  448. sets.precast.WS['Retribution'] = sets.precast.WS['Camlann\'s Torment']
  449.  
  450. sets.precast.WS['Savage Blade'] = {ammo="Knobkierrie",
  451. head="Peltast's Mezail +3",
  452. body="Nyame Mail",
  453. hands="Nyame Gauntlets",
  454. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  455. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  456. neck="Rep. Plat. Medal",
  457. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  458. left_ear="Thrud Earring",
  459. right_ear="Pel. Earring +2",
  460. left_ring="Cornelia's Ring",
  461. right_ring="Epaminondas's Ring",
  462. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}}
  463.  
  464. sets.precast.WS['Shattersoul'] = {ammo="Knobkierrie",
  465. head={ name="Ptero. Armet +3", augments={'Enhances "Deep Breathing" effect',}},
  466. body="Dagon Breast.",
  467. hands="Sulev. Gauntlets +2",
  468. legs="Sulev. Cuisses +2",
  469. feet="Nyame Sollerets",
  470. neck="Fotia Gorget",
  471. waist="Fotia Belt",
  472. left_ear="Sherida Earring",
  473. right_ear="Balder Earring +1",
  474. left_ring="Regal Ring",
  475. right_ring="Niqmaddu Ring",
  476. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  477. }
  478.  
  479. sets.precast.WS['Shattersoul'].PDL = set_combine(sets.precast.WS['Shattersoul'], {
  480. head="Gleti's Mask",
  481. body="Gleti's Cuirass",
  482. hands="Gleti's Gauntlets",
  483. legs="Gleti's Breeches",
  484. feet="Gleti's Boots",
  485. })
  486.  
  487. sets.precast.WS['Full Swing'] = sets.precast.WS['Camlann\'s Torment']
  488.  
  489.  
  490. -- sets.WSDayBonus = {head="Gavialis Helm"}
  491.  
  492. ------------------------------------------------------------------------------------------------
  493. ---------------------------------------- Midcast Sets ------------------------------------------
  494. ------------------------------------------------------------------------------------------------
  495.  
  496. sets.midcast.HealingBreath = {
  497. head="Ptero. Armet +3",
  498. body="Nyame Mail",
  499. hands="Peltast's Vambraces +3",
  500. legs="Vishap Brais +3",
  501. feet={ name="Ptero. Greaves +3", augments={'Enhances "Empathy" effect',}},
  502. neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  503. waist="Glassblower's Belt",
  504. right_ear="Anastasi Earring",
  505. back={ name="Updraft Mantle", augments={'STR+2','Pet: Breath+10','Pet: Damage taken -3%','Weapon skill damage +2%',}},
  506. }
  507.  
  508. sets.midcast.ElementalBreath = {ammo="Voluspa Tathlum",
  509. head={ name="Ptero. Armet +3", augments={'Enhances "Deep Breathing" effect',}},
  510. body="Pelt. Plackart +3",
  511. hands="Pel. Vambraces +3",
  512. legs="Pelt. Cuissots +3",
  513. feet="Pelt. Schyn. +3",
  514. neck="Adad Amulet",
  515. waist="Incarnation Sash",
  516. left_ear="Enmerkar Earring",
  517. right_ear="Kyrene's Earring",
  518. left_ring="C. Palug Ring",
  519. right_ring="Vengeful Ring",
  520. back="Moonlight Cape",
  521. }
  522.  
  523. sets.midcast['Dia'] = {head="Volte Cap", hands="Volte Bracers", feet="Volte Boots", legs="Volte Hose"}
  524.  
  525. sets.midcast['Flash'] = {ammo="Sapience Orb",
  526. head="Halitus Helm",
  527. body="Emet Harness +1",
  528. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  529. legs={ name="Zoar Subligar +1", augments={'Path: A',}},
  530. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  531. neck={ name="Unmoving Collar +1", augments={'Path: A',}},
  532. waist="Flume Belt +1",
  533. left_ear="Trux Earring",
  534. right_ear="Cryptic Earring",
  535. left_ring="Eihwaz Ring",
  536. right_ring="Pernicious Ring",
  537. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  538. }
  539. ------------------------------------------------------------------------------------------------
  540. ----------------------------------------- Idle Sets --------------------------------------------
  541. ------------------------------------------------------------------------------------------------
  542.  
  543. sets.idle = {
  544. ammo="Staunch Tathlum +1",
  545. head="Nyame Helm",
  546. body="Sacro Breastplate",
  547. hands="Nyame Gauntlets",
  548. legs="Carmine Cuisses +1",
  549. feet="Nyame Sollerets",
  550. neck="Loricate Torque +1",
  551. waist="Plat. Mog. Belt",
  552. left_ear="Eabani Earring",
  553. right_ear="Odnowa Earring +1",
  554. left_ring="Gelatinous Ring +1",
  555. right_ring="Paguroidea Ring",
  556. back="Moonlight Cape"
  557. }
  558.  
  559. sets.idle.Regain = set_combine(sets.idle, {
  560. head="Gleti's Mask",
  561. body="Gleti's Cuirass",
  562. hands="Gleti's Gauntlets",
  563. legs="Gleti's Breeches",
  564. feet="Gleti's Boots",
  565. })
  566.  
  567. sets.idle.Pet = {ammo="Staunch Tathlum +1",
  568. head="Nyame Helm",
  569. body="Nyame Mail",
  570. hands={ name="Ptero. Fin. G. +3", augments={'Enhances "Angon" effect',}},
  571. legs={ name="Ptero. Brais +3", augments={'Enhances "Strafe" effect',}},
  572. feet={ name="Ptero. Greaves +3", augments={'Enhances "Empathy" effect',}},
  573. neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  574. waist="Isa Belt",
  575. left_ear="Enmerkar Earring",
  576. right_ear="Anastasi Earring",
  577. left_ring="Defending Ring",
  578. right_ring="Gelatinous Ring +1",
  579. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  580. }
  581.  
  582. sets.idle.Regain.Pet = set_combine(sets.idle.Pet, {
  583. head="Gleti's Mask",
  584. body="Gleti's Cuirass",
  585. hands="Gleti's Gauntlets",
  586. legs="Gleti's Breeches",
  587. feet="Gleti's Boots",
  588. })
  589.  
  590.  
  591. sets.idle.Town = sets.idle
  592.  
  593. sets.idle.Weak = sets.idle
  594. sets.Kiting = {legs="Carmine Cuisses +1"}
  595.  
  596.  
  597. ------------------------------------------------------------------------------------------------
  598. ---------------------------------------- Defense Sets ------------------------------------------
  599. ------------------------------------------------------------------------------------------------
  600.  
  601. sets.defense.PDT = sets.idle
  602. sets.defense.MDT = sets.idle
  603. sets.defense.PetPDT = sets.idle.Pet
  604. ------------------------------------------------------------------------------------------------
  605. ---------------------------------------- Engaged Sets ------------------------------------------
  606. ------------------------------------------------------------------------------------------------
  607.  
  608. sets.engaged = {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  609. head="Flam. Zucchetto +2",
  610. body="Pelt. Plackart +3",
  611. hands={ name="Gleti's Gauntlets", augments={'Path: A',}},
  612. legs={ name="Ptero. Brais +3", augments={'Enhances "Strafe" effect',}},
  613. feet="Flam. Gambieras +2",
  614. neck={ name="Vim Torque +1", augments={'Path: A',}},
  615. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  616. left_ear="Sherida Earring",
  617. right_ear="Sroda Earring",
  618. left_ring="Chirich Ring +1",
  619. right_ring="Niqmaddu Ring",
  620. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
  621. }
  622.  
  623. sets.engaged.LowAcc = set_combine(sets.engaged, {
  624. back={ name="Brigantia's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10',}},
  625. })
  626.  
  627. sets.engaged.MidAcc = set_combine(sets.engaged.LowAcc, {
  628. waist="Ioskeha Belt +1",
  629. ear2="Telos Earring",
  630. })
  631.  
  632. sets.engaged.HighAcc = set_combine(sets.engaged.MidAcc, {
  633. ring1="Chirich Ring +1",
  634. neck="Shulmanu Collar",
  635. })
  636.  
  637. sets.engaged.MaxAcc = set_combine(sets.engaged.HighAcc, {
  638. ring1="Regal Ring",
  639. legs="Vishap Brais +3",
  640.  
  641. })
  642.  
  643. sets.engaged.STP = sets.engaged
  644.  
  645.  
  646. ------------------------------------------------------------------------------------------------
  647. ---------------------------------------- Hybrid Sets -------------------------------------------
  648. ------------------------------------------------------------------------------------------------
  649.  
  650. sets.engaged.Hybrid = set_combine(sets.engaged, {
  651. head="Gleti's Mask",
  652. body="Gleti's Cuirass",
  653. hands="Pel. Vambraces +3",
  654. legs="Gleti's Breeches",
  655. feet="Nyame Sollerets",
  656. neck="Loricate Torque +1",
  657. left_ring="Moonlight Ring"
  658. })
  659.  
  660. sets.engaged.DT = set_combine(sets.engaged, sets.engaged.Hybrid)
  661. sets.engaged.LowAcc.DT = set_combine(sets.engaged.LowAcc, sets.engaged.Hybrid)
  662. sets.engaged.MidAcc.DT = set_combine(sets.engaged.MidAcc, sets.engaged.Hybrid)
  663. sets.engaged.HighAcc.DT = set_combine(sets.engaged.HighAcc, sets.engaged.Hybrid)
  664. sets.engaged.STP.DT = set_combine(sets.engaged.STP, sets.engaged.Hybrid)
  665.  
  666. sets.engaged.Subtle= set_combine(sets.engaged.Hybrid, {head="Gleti's Mask",
  667. body="Dagon Breast.",
  668. legs="Gleti's Breeches",
  669. feet="Gleti's Boots",
  670. right_ear="Pel. Earring +2",
  671. right_ring="Chirich Ring +1",
  672. })
  673. sets.engaged.MEVA= set_combine(sets.engaged, {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  674. head="Hjarrandi Helm",
  675. body="Dagon Breast.",
  676. hands="Sulev. Gauntlets +2",
  677. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  678. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  679. neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  680. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  681. left_ear="Sherida Earring",
  682. right_ear="Brutal Earring",
  683. left_ring="Moonlight Ring",
  684. right_ring="Moonlight Ring",
  685. back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  686. })
  687.  
  688. -- sets.engaged.MEVA= set_combine(sets.engaged, {ammo="Aurgelmir Orb +1",
  689. -- head="Nyame Helm",
  690. -- body="Nyame Mail",
  691. -- hands="Nyame Gauntlets",
  692. -- legs="Nyame Flanchard",
  693. -- feet="Nyame Sollerets",
  694. -- neck={ name="Dgn. Collar +2", augments={'Path: A',}},
  695. -- waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  696. -- left_ear="Sherida Earring",
  697. -- right_ear="Balder Earring +1",
  698. -- left_ring="Petrov Ring",
  699. -- right_ring="Niqmaddu Ring",
  700. -- back={ name="Brigantia's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  701. -- })
  702.  
  703. sets.engaged.Crit= set_combine(sets.engaged, {
  704. body="Gleti's Cuirass",
  705. ring1="Hetairoi ring",
  706. ear2="Anastasi Earring",
  707. feet="Thereoid greaves",
  708. back={ name="Brigantia's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
  709. })
  710. ------------------------------------------------------------------------------------------------
  711. ---------------------------------------- Special Sets ------------------------------------------
  712. ------------------------------------------------------------------------------------------------
  713.  
  714. sets.buff.Doom = {
  715. neck="Nicander's Necklace", --20
  716. waist="Gishdubar Sash", --10
  717. }
  718.  
  719. sets.CP = {back=""}
  720. sets.TreasureHunter = {head="Volte Cap", legs="Volte hose", hands="Volte Bracers",feet="Volte boots",}
  721. --sets.Reive = {neck="Ygnas's Resolve +1"}
  722.  
  723. end
  724.  
  725. -------------------------------------------------------------------------------------------------------------------
  726. -- Job-specific hooks for standard casting events.
  727. -------------------------------------------------------------------------------------------------------------------
  728.  
  729. function job_aftercast(spell, action, spellMap, eventArgs)
  730. if spell.name == 'Hasso' and not spell.interrupted then
  731. send_command('wait 285;input /echo Hasso wearing off soon!;')
  732. end
  733. end
  734.  
  735. function job_precast(spell, action, spellMap, eventArgs)
  736. -- Wyvern Commands
  737. if spell.name == 'Dismiss' and pet.hpp < 100 then
  738. eventArgs.cancel = true
  739. add_to_chat(50, 'Cancelling Dismiss! ' ..pet.name.. ' is below full HP! [ ' ..pet.hpp.. '% ]')
  740. elseif wyv_breath_spells:contains(spell.english and player.hpp < 50) or (spell.skill == 'Ninjutsu' and player.hpp < 50) then
  741. equip({head="Vishap Armet +1"})
  742. end
  743.  
  744. -- Jump Overrides
  745. --if pet.isvalid and player.main_job_level >= 77 and spell.name == "Jump" then
  746. -- eventArgs.cancel = true
  747. -- send_command('@input /ja "Spirit Jump" <t>')
  748. --end
  749.  
  750. --if pet.isvalid and player.main_job_level >= 85 and spell.name == "High Jump" then
  751. -- eventArgs.cancel = true
  752. -- send_command('@input /ja "Soul Jump" <t>')
  753. --end
  754. end
  755.  
  756. --function job_post_precast(spell, action, spellMap, eventArgs)
  757. -- if spell.type == 'WeaponSkill' and state.WeaponskillMode.current == 'Normal' then
  758. -- if spell.english == 'Sonic Thrust' then
  759. -- if world.day_element == 'Earth' or world.day_element == 'Light' then
  760. -- equip(sets.WSDayBonus)
  761. -- end
  762. -- elseif spell.english == 'Stardiver' then
  763. -- if world.day_element == 'Earth' or world.day_element == 'Light' or world.day_element == 'Dark' then
  764. -- equip(sets.WSDayBonus)
  765. -- end
  766. -- end
  767. -- end
  768. --end
  769.  
  770. -- function job_pet_midcast(spell, action, spellMap, eventArgs)
  771. -- if spell.name:startswith('Healing Breath') or spell.name == 'Restoring Breath' then
  772. -- send_command('gi ugs false')
  773. -- equip(sets.midcast.HealingBreath)
  774. -- send_command('wait 1; gi ugs true')
  775. -- elseif wyv_elem_breath:contains(spell.english) then
  776. -- send_command('gi ugs false')
  777. -- equip(sets.midcast.ElementalBreath)
  778. -- send_command('wait 1; gi ugs true')
  779. -- end
  780. -- end
  781.  
  782. --function job_pet_midcast(spell, action, spellMap, eventArgs)
  783. -- if spell.name:startswith('Healing Breath') or spell.name == 'Restoring Breath' then
  784. -- equip(sets.midcast.HealingBreath)
  785. -- elseif wyv_elem_breath:contains(spell.english) then
  786. -- equip(sets.midcast.ElementalBreath)
  787. -- end
  788. --end
  789.  
  790. -------------------------------------------------------------------------------------------------------------------
  791. -- Job-specific hooks for non-casting events.
  792. -------------------------------------------------------------------------------------------------------------------
  793.  
  794. function job_buff_change(buff,gain)
  795. -- If we gain or lose any haste buffs, adjust which gear set we target.
  796. -- if buffactive['Reive Mark'] then
  797. -- if gain then
  798. -- equip(sets.Reive)
  799. -- disable('neck')
  800. -- else
  801. -- enable('neck')
  802. -- end
  803. -- end
  804.  
  805. if buff == "doom" then
  806. if gain then
  807. equip(sets.buff.Doom)
  808. send_command('@input /p Doomed.')
  809. disable('ring1','ring2','waist')
  810. else
  811. enable('ring1','ring2','waist')
  812. handle_equipping_gear(player.status)
  813. end
  814. end
  815.  
  816. end
  817.  
  818.  
  819. -------------------------------------------------------------------------------------------------------------------
  820. -- User code that supplements standard library decisions.
  821. -------------------------------------------------------------------------------------------------------------------
  822.  
  823. -- Modify the default idle set after it was constructed.
  824. function customize_idle_set(idleSet)
  825. -- if state.CP.current == 'on' then
  826. -- equip(sets.CP)
  827. -- disable('back')
  828. -- else
  829. -- enable('back')
  830. -- end
  831. if state.Auto_Kite.value == true then
  832. idleSet = set_combine(idleSet, sets.Kiting)
  833. end
  834.  
  835. return idleSet
  836. end
  837.  
  838. -- Function to display the current relevant user state when doing an update.
  839. -- Set eventArgs.handled to true if display was handled, and you don't want the default info shown.
  840. function display_current_job_state(eventArgs)
  841. local msg = '[ Melee'
  842.  
  843. if state.CombatForm.has_value then
  844. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  845. end
  846.  
  847. msg = msg .. ': '
  848.  
  849. msg = msg .. state.OffenseMode.value
  850. if state.HybridMode.value ~= 'Normal' then
  851. msg = msg .. '/' .. state.HybridMode.value
  852. end
  853. msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value .. ' ]'
  854.  
  855. if state.DefenseMode.value ~= 'None' then
  856. msg = msg .. '[ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ' ]'
  857. end
  858.  
  859. if state.Kiting.value then
  860. msg = msg .. '[ Kiting Mode ]'
  861. end
  862.  
  863. add_to_chat(060, msg)
  864.  
  865. eventArgs.handled = true
  866. end
  867.  
  868.  
  869. -------------------------------------------------------------------------------------------------------------------
  870. -- User code that supplements self-commands.
  871. -------------------------------------------------------------------------------------------------------------------
  872. function job_handle_equipping_gear(playerStatus, eventArgs)
  873. check_gear()
  874. check_moving()
  875. end
  876.  
  877. function job_update(cmdParams, eventArgs)
  878. handle_equipping_gear(player.status)
  879. end
  880.  
  881.  
  882. function get_custom_wsmode(spell, action, spellMap)
  883. if spell.type == 'WeaponSkill' and state.AttackMode.value == 'Uncapped' then
  884. return "Uncapped"
  885. end
  886. end
  887.  
  888. -------------------------------------------------------------------------------------------------------------------
  889. -- Utility functions specific to this job.
  890. -------------------------------------------------------------------------------------------------------------------
  891. function job_self_command(cmdParams, eventArgs)
  892. gearinfo(cmdParams, eventArgs)
  893. end
  894.  
  895. function gearinfo(cmdParams, eventArgs)
  896. if cmdParams[1] == 'gearinfo' then
  897. if type(cmdParams[4]) == 'string' then
  898. if cmdParams[4] == 'true' then
  899. moving = true
  900. elseif cmdParams[4] == 'false' then
  901. moving = false
  902. end
  903. end
  904. if not midaction() then
  905. job_update()
  906. end
  907. end
  908. end
  909.  
  910. function check_moving()
  911. if state.DefenseMode.value == 'None' and state.Kiting.value == false then
  912. if state.Auto_Kite.value == false and moving then
  913. state.Auto_Kite:set(true)
  914. elseif state.Auto_Kite.value == true and moving == false then
  915. state.Auto_Kite:set(false)
  916. end
  917. end
  918. end
  919.  
  920. function check_gear()
  921. if no_swap_gear:contains(player.equipment.left_ring) then
  922. disable("ring1")
  923. else
  924. enable("ring1")
  925. end
  926. if no_swap_gear:contains(player.equipment.right_ring) then
  927. disable("ring2")
  928. else
  929. enable("ring2")
  930. end
  931. end
  932.  
  933. windower.register_event('zone change',
  934. function()
  935. if no_swap_gear:contains(player.equipment.left_ring) then
  936. enable("ring1")
  937. equip(sets.idle)
  938. end
  939. if no_swap_gear:contains(player.equipment.right_ring) then
  940. enable("ring2")
  941. equip(sets.idle)
  942. end
  943. end
  944. )
  945.  
  946.  
  947. -- Select default macro book on initial load or subjob change.
  948. function select_default_macro_book()
  949. -- Default macro set/book: (set, book)
  950. --if player.sub_job == 'SAM' then
  951. set_macro_page(1, 7)
  952. --else
  953. --set_macro_page(2, 7)
  954. --end
  955. end
  956.  
  957. function set_lockstyle()
  958. send_command('wait 2; input /lockstyleset ' .. lockstyleset)
  959. end
Advertisement
Add Comment
Please, Sign In to add comment