Advertisement
Fiv

Fiv_WARv2

Fiv
Sep 18th, 2014
2,698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.73 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4. --[[ Updated 9/18/2014, functions with Mote's new includes.
  5. -- Have not played WAR recently, please PM me with any errors
  6. BG: Fival
  7. FFXIAH: Asura.Fiv
  8. ]]--
  9. -- Initialization function for this job file.
  10. function get_sets()
  11. mote_include_version = 2
  12.  
  13. -- Load and initialize the include file.
  14. include('Mote-Include.lua')
  15. end
  16.  
  17.  
  18. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  19. function job_setup()
  20. state.Buff['Aftermath'] = buffactive['Aftermath: Lv.1'] or
  21. buffactive['Aftermath: Lv.2'] or
  22. buffactive['Aftermath: Lv.3'] or false
  23. state.Buff['Mighty Strikes'] = buffactive['Mighty Strikes'] or false
  24. end
  25.  
  26.  
  27. -------------------------------------------------------------------------------------------------------------------
  28. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  29. -------------------------------------------------------------------------------------------------------------------
  30.  
  31. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  32. function user_setup()
  33. state.OffenseMode:options('Normal', 'AccLow', 'AccHigh')
  34. state.RangedMode:options('Normal')
  35. state.HybridMode:options('Normal', 'PDT')
  36. state.WeaponskillMode:options('Normal', 'AccLow', 'AccHigh', 'Attack')
  37. state.CastingMode:options('Normal')
  38. state.IdleMode:options('Normal', 'Regen')
  39. state.RestingMode:options('Normal')
  40. state.PhysicalDefenseMode:options('PDT', 'Reraise')
  41. state.MagicalDefenseMode:options('MDT')
  42.  
  43. update_combat_weapon()
  44. update_melee_groups()
  45. select_default_macro_book()
  46.  
  47. -- Additional Binds
  48. --send_command('alias g510_m1g13 input /ws "Ukko\'s Fury" <t>;')
  49. --send_command('alias g510_m1g14 input /ws "King\'s Justice" <t>;')
  50. --send_command('alias g510_m1g15 input /ws "Upheaval" <t>;')
  51. end
  52.  
  53. function init_gear_sets()
  54.  
  55. --------------------------------------
  56. -- Precast sets
  57. --------------------------------------
  58.  
  59. -- Sets to apply to arbitrary JAs
  60. sets.precast.JA.Berserk = {body="Pumm. Lorica +1",feet="Agoge Calligae +1"}
  61. sets.precast.JA['Aggressor'] = {head="Pumm. Mask +1",body="Agoge Lorica +1"}
  62. sets.precast.JA['Mighty Strikes'] = {hands="Agoge Mufflers +1"}
  63. sets.precast.JA['Blood Rage'] = {body="Rvg. Lorica +2"}
  64. sets.precast.JA['Warcry'] = {head="Agoge Mask +1"}
  65. sets.precast.JA['Tomahawk'] = {ammo="Thr. Tomahawk",feet="Agoge Calligae +1"}
  66. -- Sets to apply to any actions of spell.type
  67. sets.precast.Waltz = {}
  68.  
  69. -- Sets for specific actions within spell.type
  70. sets.precast.Waltz['Healing Waltz'] = {}
  71.  
  72. -- Sets for fast cast gear for spells
  73. sets.precast.FC = {ear2="Loquacious Earring"}
  74.  
  75. -- Fast cast gear for specific spells or spell maps
  76. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {})
  77.  
  78. -- Weaponskill sets
  79. sets.precast.WS = {ammo="Aqreqaq Bomblet",
  80. head="Otomi Helm",neck="Portus Collar",ear1="Moonshade Earring",ear2="Brutal Earring",
  81. body="Mes. Haubergeon",hands="Pumm. Mufflers +1",ring1="Ifrit Ring +1",ring2="Ifrit Ring +1",
  82. back="Mauler's Mantle",waist="Windbuffet Belt +1",legs="Agoge Cuisses +1",feet="Pumm. Calligae +1"}
  83. sets.precast.WS.AccLow = set_combine(sets.precast.WS, {})
  84. sets.precast.WS.AccHigh = set_combine(sets.precast.WS.AccLow, {})
  85. sets.precast.WS.Attack = set_combine(sets.precast.WS, {})
  86. sets.precast.WS.MS = set_combine(sets.precast.WS, {ammo="Yetshila +1",back="Cavaros Mantle",feet="Huginn Gambieras"})
  87.  
  88. -- Specific weaponskill sets.
  89. sets.precast.WS['Upheaval'] = {}
  90. sets.precast.WS['Upheaval'].AccLow = set_combine(sets.precast.WS['Upheaval'], {})
  91. sets.precast.WS['Upheaval'].AccHigh = set_combine(sets.precast.WS['Upheaval'].AccLow, {})
  92. sets.precast.WS['Upheaval'].Attack = set_combine(sets.precast.WS['Upheaval'], {})
  93. sets.precast.WS['Upheaval'].MS = set_combine(sets.precast.WS['Upheaval'], {ammo="Yetshila +1",back="Cavaros Mantle",feet="Huginn Gambieras"})
  94.  
  95. sets.precast.WS['Ukko\'s Fury'] = {}
  96. sets.precast.WS['Ukko\'s Fury'].AccLow = set_combine(sets.precast.WS['Ukko\'s Fury'], {})
  97. sets.precast.WS['Ukko\'s Fury'].AccHigh = set_combine(sets.precast.WS['Ukko\'s Fury'].AccLow, {})
  98. sets.precast.WS['Ukko\'s Fury'].Attack = set_combine(sets.precast.WS['Ukko\'s Fury'], {})
  99. sets.precast.WS['Ukko\'s Fury'].MS = set_combine(sets.precast.WS['Ukko\'s Fury'], {})
  100.  
  101. sets.precast.WS['King\'s Justice'] = set_combine(sets.precast.WS, {})
  102. sets.precast.WS['King\'s Justice'].AccLow = set_combine(sets.precast.WS['King\'s Justice'], {})
  103. sets.precast.WS['King\'s Justice'].AccHigh = set_combine(sets.precast.WS['King\'s Justice'].AccLow, {})
  104. sets.precast.WS['King\'s Justice'].Attack = set_combine(sets.precast.WS['King\'s Justice'], {})
  105. sets.precast.WS['King\'s Justice'].MS = set_combine(sets.precast.WS['King\'s Justice'], {ammo="Yetshila +1",back="Cavaros Mantle",feet="Huginn Gambieras"})
  106.  
  107. sets.precast.WS['Metatron Torment'] = set_combine(sets.precast.WS, {})
  108. sets.precast.WS['Metatron Torment'].AccLow = set_combine(sets.precast.WS['Metatron Torment'], {})
  109. sets.precast.WS['Metatron Torment'].AccHigh = set_combine(sets.precast.WS['Metatron Torment'].AccLow, {})
  110. sets.precast.WS['Metatron Torment'].Attack = set_combine(sets.precast.WS['Metatron Torment'], {})
  111. sets.precast.WS['Metatron Torment'].MS = set_combine(sets.precast.WS['Metatron Torment'], {ammo="Yetshila +1",back="Cavaros Mantle",feet="Huginn Gambieras"})
  112.  
  113. sets.precast.WS['Fell Cleave'] = set_combine(sets.precast.WS, {})
  114. sets.precast.WS['Fell Cleave'].AccLow = set_combine(sets.precast.WS['Fell Cleave'], {})
  115. sets.precast.WS['Fell Cleave'].AccHigh = set_combine(sets.precast.WS['Fell Cleave'].AccLow, {})
  116. sets.precast.WS['Fell Cleave'].Attack = set_combine(sets.precast.WS['Fell Cleave'], {})
  117. sets.precast.WS['Fell Cleave'].MS = set_combine(sets.precast.WS['Fell Cleave'], {ammo="Yetshila +1",back="Cavaros Mantle",feet="Huginn Gambieras"})
  118.  
  119. sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {})
  120. sets.precast.WS['Resolution'].AccLow = set_combine(sets.precast.WS['Resolution'], {})
  121. sets.precast.WS['Resolution'].AccHigh = set_combine(sets.precast.WS['Resolution'].AccLow, {})
  122. sets.precast.WS['Resolution'].Attack = set_combine(sets.precast.WS['Resolution'], {})
  123. sets.precast.WS['Resolution'].MS = set_combine(sets.precast.WS['Resolution'], {ammo="Yetshila +1",back="Cavaros Mantle",feet="Huginn Gambieras"})
  124.  
  125.  
  126. --------------------------------------
  127. -- Midcast sets
  128. --------------------------------------
  129.  
  130. -- Generic spell recast set
  131. sets.midcast.FastRecast = {}
  132.  
  133. -- Specific spells
  134. sets.midcast.Utsusemi = {}
  135.  
  136.  
  137. --------------------------------------
  138. -- Idle/resting/defense/etc sets
  139. --------------------------------------
  140.  
  141. -- Resting sets
  142. sets.resting = {}
  143.  
  144.  
  145. -- Idle sets
  146. sets.idle = {ammo="Yetshila +1",
  147. head="Felistris Mask",neck="Twilight Torque",ear1="Tripudio Earring",ear2="Brutal Earring",
  148. body={ name="Xaddi Mail", augments={'VIT+12','Phys. dmg. taken -5','Magic dmg. taken -3',}},hands="Agoge Mufflers +1",ring1="Dark Ring",ring2="Defending Ring",
  149. back="Repulse Mantle",waist="Flume Belt",legs="Hachiryu Haidate",feet="Hermes' Sandals +1"}
  150.  
  151. sets.idle.Town = {ammo="Yetshila +1",
  152. head="Gavialis Helm",neck="Twilight Torque",ear1="Tripudio Earring",ear2="Brutal Earring",
  153. body="Goldsmith's Apron",hands="Cizin Mufflers +1",ring1="Ifrit Ring +1",ring2="Ifrit Ring +1",
  154. back="Mauler's Mantle",waist="Flume Sash",legs="Hachiryu Haidate",feet="Hermes' Sandals +1"}
  155.  
  156. sets.idle.Regen = {ammo="Angha Gem",
  157. head="Baghere Salade",neck="Wiglen Gorget",ear1="Tripudio Earring",ear2="Dawn Earring",
  158. body="Kumarbi's Akar",hands="Agoge Mufflers +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  159. back="Repulse Mantle",waist="Lyopodium Sash",legs="Hachiryu Haidate",feet="Hermes' Sandals +1"}
  160.  
  161. sets.idle.Weak = {}
  162.  
  163. -- Defense sets
  164. sets.defense.PDT = {}
  165. sets.defense.Reraise = set_combine(sets.defense.PDT, {head="Twilight Helm",body="Twilight Mail"})
  166. sets.defense.MDT = {}
  167.  
  168. -- Gear to wear for kiting
  169. sets.Kiting = {feet="Hermes' Sandals +1"}
  170.  
  171. --------------------------------------
  172. -- Engaged sets
  173. --------------------------------------
  174.  
  175. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  176. -- sets if more refined versions aren't defined.
  177. -- If you create a set with both offense and defense modes, the offense mode should be first.
  178. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  179.  
  180. -- Normal melee group
  181. -- If using a weapon that isn't specified later, the basic engaged sets should automatically be used.
  182. -- Equip the weapon you want to use and engage, disengage, or force update with f12, the correct gear will be used; default weapon is whats equip when file loads.
  183. sets.engaged = {ammo="Yetshila +1",
  184. head="Felistris Mask",neck="Portus Collar",ear1="Trux Earring",ear2="Brutal Earring",
  185. body={ name="Xaddi Mail", augments={'Attack+15','Accuracy+10','"Store TP"+3',}},hands="Cizin Mufflers +1",ring1="K'ayres Ring",ring2="Rajas Ring",
  186. back="Mauler's Mantle",waist="Windbuffet Belt +1",legs="Agoge Cuisses +1",feet="Ejekamal Boots"}
  187. sets.engaged.AccLow = set_combine(sets.engaged, {body="Mes. Haubergeon"})
  188. sets.engaged.AccHigh = set_combine(sets.engaged.AccLow, {head="Yaoyotl Helm"})
  189. sets.engaged.PDT = set_combine(sets.engaged, {head="Ighwa Cap",neck="Twilight Torque"})
  190. sets.engaged.AccLow.PDT = set_combine(sets.engaged.PDT, {})
  191. sets.engaged.AccHigh.PDT = set_combine(sets.engaged.AccLow.PDT, {})
  192.  
  193. sets.engaged.Conqueror = {}
  194. sets.engaged.Conqueror.AccLow = set_combine(sets.engaged.Conqueror, {})
  195. sets.engaged.Conqueror.AccHigh = set_combine(sets.engaged.Conqueror.AccLow, {})
  196. sets.engaged.Conqueror.PDT = set_combine(sets.engaged.Conqueror, {})
  197. sets.engaged.Conqueror.AccLow.PDT = set_combine(sets.engaged.Conqueror.PDT, {})
  198. sets.engaged.Conqueror.AccHigh.PDT = set_combine(sets.engaged.Conqueror.AccLow.PDT, {})
  199. -- Conqueror Aftermath Lv.3 sets
  200. sets.engaged.Conqueror.AM3 = {}
  201. sets.engaged.Conqueror.AccLow.AM3 = set_combine(sets.engaged.Conqueror.AM3, {})
  202. sets.engaged.Conqueror.AccHigh.AM3 = set_combine(sets.engaged.Conqueror.AccLow.AM3, {})
  203. sets.engaged.Conqueror.PDT.AM3 = set_combine(sets.engaged.Conqueror.AM3, {})
  204. sets.engaged.Conqueror.AccLow.PDT.AM3 = set_combine(sets.engaged.Conqueror.PDT.AM3, {})
  205. sets.engaged.Conqueror.AccHigh.PDT.AM3 = set_combine(sets.engaged.Conqueror.AccLow.PDT.AM3, {})
  206.  
  207. sets.engaged.Ukonvasara = {}
  208. sets.engaged.Ukonvasara.AccLow = set_combine(sets.engaged.Ukonvasara, {})
  209. sets.engaged.Ukonvasara.AccHigh = set_combine(sets.engaged.Ukonvasara.AccLow, {})
  210. sets.engaged.Ukonvasara.PDT = set_combine(sets.engaged.Ukonvasara, {})
  211. sets.engaged.Ukonvasara.AccLow.PDT = set_combine(sets.engaged.Ukonvasara.PDT, {})
  212. sets.engaged.Ukonvasara.AccHigh.PDT = set_combine(sets.engaged.Ukonvasara.AccLow.PDT, {})
  213.  
  214. sets.engaged.Bravura = {}
  215. sets.engaged.Bravura.AccLow = set_combine(sets.engaged.Bravura, {})
  216. sets.engaged.Bravura.AccHigh = set_combine(sets.engaged.Bravura.AccLow, {})
  217. sets.engaged.Bravura.PDT = set_combine(sets.engaged.Bravura, {})
  218. sets.engaged.Bravura.AccLow.PDT = set_combine(sets.engaged.Bravura.PDT, {})
  219. sets.engaged.Bravura.AccHigh.PDT = set_combine(sets.engaged.Bravura.AccLow.PDT, {})
  220. -- Bravura Aftermath sets, will only apply if aftermath, bravura, and hybridmode are on
  221. sets.engaged.Bravura.PDT.AM = set_combine(sets.engaged.Bravura, {})
  222. sets.engaged.Bravura.AccLow.PDT.AM = set_combine(sets.engaged.Bravura.PDT.AM , {})
  223. sets.engaged.Bravura.AccHigh.PDT.AM = set_combine(sets.engaged.Bravura.AccLow.PDT.AM , {})
  224.  
  225. sets.engaged.Ragnarok = {}
  226. sets.engaged.Ragnarok.AccLow = set_combine(sets.engaged.Ragnarok, {})
  227. sets.engaged.Ragnarok.AccHigh = set_combine(sets.engaged.Ragnarok.AccLow, {})
  228. sets.engaged.Ragnarok.PDT = set_combine(sets.engaged.Ragnarok, {})
  229. sets.engaged.Ragnarok.AccLow.PDT = set_combine(sets.engaged.Ragnarok.PDT, {})
  230. sets.engaged.Ragnarok.AccHigh.PDT = set_combine(sets.engaged.Ragnarok.AccLow.PDT, {})
  231.  
  232. --------------------------------------
  233. -- Custom buff sets
  234. --------------------------------------
  235. -- Mighty Strikes TP Gear, combines with current melee set.
  236. sets.buff.MS = {ammo="Yetshila +1",neck="Portus Collar",back="Cavaros Mantle",feet="Huginn Gambieras"}
  237. -- Day/Element Helm, if helm is not in inventory or wardrobe, this will not fire, for those who do not own one
  238. sets.WSDayBonus = {head="Gavialis Helm"}
  239. -- Earrings to use with Upheaval when TP is 3000
  240. sets.VIT_earring = {ear1="Terra's Pearl",ear2="Brutal Earring"}
  241. -- Earrings to use with all other weaponskills when TP is 3000
  242. sets.STR_earring = {ear1="Kokou's Earring",ear2="Brutal Earring"}
  243. -- Mantle to use with Upheaval on Darksday
  244. sets.Upheaval_shadow = {back="Shadow Mantle"}
  245. end
  246.  
  247. -------------------------------------------------------------------------------------------------------------------
  248. -- Job-specific hooks for standard casting events.
  249. -------------------------------------------------------------------------------------------------------------------
  250.  
  251. -- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
  252. function job_pretarget(spell, action, spellMap, eventArgs)
  253.  
  254. end
  255.  
  256. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  257. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  258. function job_precast(spell, action, spellMap, eventArgs)
  259.  
  260. end
  261.  
  262. -- Run after the default precast() is done.
  263. -- eventArgs is the same one used in job_precast, in case information needs to be persisted.
  264. function job_post_precast(spell, action, spellMap, eventArgs)
  265. if spell.type == 'WeaponSkill' then
  266. if is_sc_element_today(spell) and player.inventory['Gavialis Helm'] or player.wardrobe['Gavialis Helm'] then
  267. equip(sets.WSDayBonus)
  268. end
  269. if player.tp == 3000 then
  270. if spell.english == "Upheaval" then
  271. equip(sets.VIT_earring)
  272. else
  273. equip(sets.STR_earring)
  274. end
  275. end
  276. if spell.english == "Upheaval" and world.day_element == 'Dark' then
  277. equip(sets.Upheaval_shadow)
  278. end
  279. end
  280. end
  281.  
  282. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  283. function job_aftercast(spell, action, spellMap, eventArgs)
  284. if spell.english == "Tomahawk" and not spell.interrupted then
  285. send_command('timers create "Tomahawk" 90 down')
  286. end
  287. end
  288.  
  289. -- Run after the default aftercast() is done.
  290. -- eventArgs is the same one used in job_aftercast, in case information needs to be persisted.
  291. function job_post_aftercast(spell, action, spellMap, eventArgs)
  292.  
  293. end
  294.  
  295. -------------------------------------------------------------------------------------------------------------------
  296. -- Job-specific hooks for non-casting events.
  297. -------------------------------------------------------------------------------------------------------------------
  298.  
  299. -- Called when the player's status changes.
  300. function job_status_change(newStatus, oldStatus, eventArgs)
  301. update_combat_weapon()
  302. update_melee_groups()
  303. end
  304.  
  305. -- Called when a player gains or loses a buff.
  306. -- buff == buff gained or lost
  307. -- gain == true if the buff was gained, false if it was lost.
  308. function job_buff_change(buff, gain)
  309. if buff == "Aftermath: Lv.3" or buff == "Aftermath" then
  310. classes.CustomMeleeGroups:clear()
  311. if (buff == "Aftermath: Lv.3" and gain) or buffactive["Aftermath: Lv.3"] then
  312. if player.equipment.main == "Conqueror" then
  313. classes.CustomMeleeGroups:append('AM3')
  314. if gain then
  315. 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.]')
  316. else
  317. send_command('timers delete "Aftermath: Lv.3"')
  318. add_to_chat(123,'AM3: [OFF]')
  319. end
  320. end
  321. end
  322. if (buff == "Aftermath" and gain) or buffactive.Aftermath then
  323. if player.equipment.main == "Bravura" and state.HybridMode.value == 'PDT' then
  324. classes.CustomMeleeGroups:append('AM')
  325. end
  326. end
  327. end
  328. if buff == "Aftermath: Lv.3" or buff == "Aftermath" then
  329. handle_equipping_gear(player.status)
  330. end
  331. if buff == 'Blood Rage' and gain then
  332. send_command('timers create "Blood Rage" 60 down abilities/00255.png')
  333. else
  334. send_command('timers delete "Blood Rage"')
  335. end
  336. if buff == 'Warcry' and gain then
  337. send_command('timers create "Warcry" 60 down abilities/00255.png')
  338. else
  339. send_command('timers delete "Warcry"')
  340. end
  341. if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then
  342. equip({neck="Berserker's Torque"})
  343. else
  344. handle_equipping_gear(player.status)
  345. end
  346. end
  347.  
  348. -------------------------------------------------------------------------------------------------------------------
  349. -- User code that supplements standard library decisions.
  350. -------------------------------------------------------------------------------------------------------------------
  351.  
  352. -- Return a customized weaponskill mode to use for weaponskill sets.
  353. -- Don't return anything if you're not overriding the default value.
  354. function get_custom_wsmode(spell, spellMap, default_wsmode)
  355. local wsmode = ''
  356. if state.Buff['Mighty Strikes'] then
  357. wsmode = wsmode .. 'MS'
  358. end
  359. if wsmode ~= '' then
  360. return wsmode
  361. end
  362. end
  363.  
  364. -- Modify the default melee set after it was constructed.
  365. function customize_melee_set(meleeSet)
  366. if buffactive["Mighty Strikes"] then
  367. meleeSet = set_combine(meleeSet, sets.buff.MS)
  368. end
  369. return meleeSet
  370. end
  371.  
  372. -- Called by the 'update' self-command, for common needs.
  373. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  374. function job_update(cmdParams, eventArgs)
  375. update_combat_weapon()
  376. update_melee_groups()
  377. end
  378.  
  379. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  380. function display_current_job_state(eventArgs)
  381. local msg = 'Melee'
  382. if state.CombatForm.has_value then
  383. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  384. end
  385. if state.CombatWeapon.has_value then
  386. msg = msg .. ' (' .. state.CombatWeapon.value .. ')'
  387. end
  388. msg = msg .. ': '
  389. msg = msg .. state.OffenseMode.value
  390. if state.HybridMode.value ~= 'Normal' then
  391. msg = msg .. '/' .. state.HybridMode.value
  392. end
  393. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  394. if state.DefenseMode.value ~= 'None' then
  395. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  396. end
  397. if state.Kiting.value == true then
  398. msg = msg .. ', Kiting'
  399. end
  400. if state.PCTargetMode.value ~= 'default' then
  401. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  402. end
  403. if state.SelectNPCTargets.value == true then
  404. msg = msg .. ', Target NPCs'
  405. end
  406. add_to_chat(122, msg)
  407. eventArgs.handled = true
  408. end
  409.  
  410. -------------------------------------------------------------------------------------------------------------------
  411. -- Utility functions specific to this job.
  412. -------------------------------------------------------------------------------------------------------------------
  413.  
  414. -- Select default macro book on initial load or subjob change.
  415. function select_default_macro_book()
  416. -- Default macro set/book
  417. if player.sub_job == 'WAR' then
  418. set_macro_page(5, 20)
  419. elseif player.sub_job == 'NIN' then
  420. set_macro_page(5, 20)
  421. elseif player.sub_job == 'SAM' then
  422. set_macro_page(5, 20)
  423. else
  424. set_macro_page(5, 20)
  425. end
  426. end
  427.  
  428. function update_combat_weapon()
  429. state.CombatWeapon:set(player.equipment.main)
  430. end
  431.  
  432. function update_melee_groups()
  433. classes.CustomMeleeGroups:clear()
  434. if buffactive['Aftermath: Lv.3'] and player.equipment.main == "Conqueror" then
  435. classes.CustomMeleeGroups:append('AM3')
  436. end
  437. if buffactive.Aftermath and player.equipment.main == "Bravura" and state.HybridMode.value == 'PDT' then
  438. classes.CustomMeleeGroups:append('AM')
  439. end
  440. end
  441.  
  442. function is_sc_element_today(spell)
  443. if spell.type ~= 'WeaponSkill' then
  444. return
  445. end
  446.  
  447. local weaponskill_elements = S{}:
  448. union(skillchain_elements[spell.skillchain_a]):
  449. union(skillchain_elements[spell.skillchain_b]):
  450. union(skillchain_elements[spell.skillchain_c])
  451.  
  452. if weaponskill_elements:contains(world.day_element) then
  453. return true
  454. else
  455. return false
  456. end
  457. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement