Advertisement
starfishsky

Untitled

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