Advertisement
Guest User

THF.LUA

a guest
Aug 17th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.96 KB | None | 0 0
  1. -----------------------------------
  2. -- Setup functions for this job. --
  3. -----------------------------------
  4.  
  5. function get_sets()
  6. mote_include_version = 2
  7.  
  8. include('Mote-Include.lua')
  9. end
  10.  
  11. function job_setup()
  12. -- Required for knowing when Sneak and Trick are on.
  13. state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
  14. state.Buff['Trick Attack'] = buffactive['trick attack'] or false
  15. state.Buff['Feint'] = buffactive['feint'] or false
  16.  
  17. -- Not entirely valid on Era but needed to make the code work.
  18. -- For th_action_check():
  19. -- JA IDs for actions that always have TH: Provoke, Animated Flourish
  20. info.default_ja_ids = S{35, 204}
  21. -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
  22. info.default_u_ja_ids = S{201, 202, 203, 205, 207}
  23.  
  24. include('Mote-TreasureHunter')
  25. end
  26.  
  27. ----------------------------------------
  28. -- User setup functions for this job. --
  29. ----------------------------------------
  30.  
  31. -- Called whin this file is initially loaded.
  32. function user_setup()
  33. state.OffenseMode:options('Haste', 'Accuracy', 'Evasion', 'Subtle')
  34. state.RangedMode:options('Power', 'Accuracy')
  35. state.HybridMode:options('Normal')
  36. state.WeaponskillMode:options('Normal') -- Does not possess a default binding.
  37. state.CastingMode:options('Normal')
  38. state.IdleMode:options('Normal') -- Ctrl+F12 to cycle modes.
  39. state.RestingMode:options('Normal')
  40. state.PhysicalDefenseMode:options('PDT') -- F10 to turn on and Ctrl+F10 to cycle and Alt+F12 turns off.
  41. state.MagicalDefenseMode:options('MDT') -- F11 to turn on and Alt+F12 turns off.
  42. state.TreasureMode:options('Tag', 'Fulltime', 'None')
  43.  
  44. select_default_macro_book() -- Calls the function to set the default macro book page.
  45.  
  46. -- send_command('gs enable all') -- Unlock any slots that may have been locked before this gearswap was loaded.
  47. send_command('wait 9; input /lockstyleset 06') -- Sets your lockstyle set to the two digit number at the end.
  48.  
  49. send_command('bind %` gs c cycle treasuremode')
  50. send_command('bind %!f11 gs c cycle MagicalDefenseMode')
  51. send_command('bind %^space gs disable main sub range') -- Press ctrl + space to lock weapons.
  52. send_command('bind %!space gs enable main sub range') -- Press alt + space to unlock weapons.
  53.  
  54. end
  55.  
  56. -- Called when this file is unloaded or reloaded.
  57. function user_unload()
  58. -- Remove the bindings set above when this gearswap is unloaded.
  59. send_command('unbind %`')
  60. send_command('unbind %!f11')
  61. send_command('unbind %^space')
  62. send_command('unbind %!space')
  63.  
  64. end
  65.  
  66. ----------------
  67. -- Gear sets. --
  68. ----------------
  69.  
  70. function init_gear_sets()
  71.  
  72. ----------------
  73. -- Buff sets. --
  74. ----------------
  75.  
  76. -----------------------
  77. -- Job ability sets. --
  78. -----------------------
  79.  
  80. -- Uses TH gear for for these abilities. I might remove this later.
  81. sets.precast.Step = sets.TreasureHunter -- Must use TreasureHunter set for this ability manually.
  82. sets.precast.Flourish1 = sets.TreasureHunter -- Same as above
  83. sets.precast.JA.Provoke = sets.TreasureHunter -- Same.
  84.  
  85. sets.precast.JA['Steal'] = {
  86. head = "Rogue's Bonnet",
  87. neck = "Rabbit Charm",
  88. hands = "Rogue's Armlets",
  89. legs = "Assassin's Culottes",
  90. feet = "Rogue's Poulaines",
  91. }
  92.  
  93. sets.precast.JA['Mug'] = {head="Assassin's Bonnet",}
  94. sets.precast.JA["Flee"] = {feet="Rogue's Poulaines",} -- Equips your Thief feet AF before flee for increased duration.
  95. sets.precast.JA["Hide"] = {body="Rogue's Vest",} -- Equips your Thief body AF before hide for increased duration.
  96.  
  97. sets.precast.JA['Collaborator'] = {}
  98. sets.precast.JA['Accomplice'] = {}
  99.  
  100. -- You can safely delete these if you don't use dancer.
  101. sets.precast.Waltz = {
  102. hands="Assassin's Armlets",
  103. waist="Steppe Sash",
  104. feet="Assassin's Poulaines",
  105. }
  106.  
  107. -- Same as above.
  108. sets.precast.Waltz['Healing Waltz'] = {} -- Intentionally empty so none of your waltz gear is used.
  109.  
  110. -------------------
  111. -- Casting sets. --
  112. -------------------
  113.  
  114. sets.precast.FC = { -- Benefits from only Fastcast gear and used before every spell cast.
  115. ear1 = "Loquacious Earring",
  116. }
  117.  
  118. -- Almost every job has to use it at some point put lots of haste in here.
  119. sets.midcast.Utsusemi = { -- Put in haste, interrupt reduction, and evasion.
  120. head = "Walahra Turban",
  121. body = "Rapparee Harness",
  122. hands = "Dusk Gloves",
  123. waist = "Velocious Belt",
  124. legs = "Bravo's Subligar",
  125. feet = "Dusk Ledelsens",
  126. }
  127.  
  128. -------------------
  129. -- Engaged sets. --
  130. -------------------
  131.  
  132. sets.engaged.Haste = { -- This is your main fighting set while in combat.
  133. head = "Walahra Turban",
  134. neck = "Peacock Amulet",
  135. ear1 = "Cassie Earring",
  136. ring1 = "Rajas Ring",
  137. ear2 = "Suppanomimi",
  138. ring2 = "Ecphoria Ring",
  139. body = "Rapparee Harness",
  140. hands = "Dusk Gloves",
  141. back = "Cuchulain's Mantle",
  142. waist = "Velocious Belt",
  143. legs = "Bravo's Subligar",
  144. feet = "Dusk Ledelsens",
  145. }
  146.  
  147. sets.engaged.Accuracy = { -- This is your main fighting set while in combat.
  148. head = "Optical Hat",
  149. neck = "Peacock Amulet",
  150. ear1 = "Cassie Earring",
  151. ring1 = "Rajas Ring",
  152. ear2 = "Suppanomimi",
  153. ring2 = "Ecphoria Ring",
  154. body = "Homam Corazza",
  155. hands = "Dusk Gloves",
  156. back = "Cuchulain's Mantle",
  157. waist = "Velocious Belt",
  158. legs = "Bravo's Subligar",
  159. feet = "Dusk Ledelsens",
  160. }
  161.  
  162. sets.engaged.Evasion = { -- This is your main fighting set while in combat.
  163. head = "Optical Hat",
  164. neck = "Peacock Amulet",
  165. ear1 = "Dodge Earring",
  166. ring1 = "Rajas Ring",
  167. ear2 = "Dodge Earring",
  168. ring2 = "Ecphoria Ring",
  169. body = "Scorpion Harness +1",
  170. hands = "Dusk Gloves",
  171. back = "Bat Cape",
  172. waist = "Velocious Belt",
  173. legs = "Bravo's Subligar",
  174. feet = "Dance Shoes +1",
  175. }
  176.  
  177. sets.engaged.Subtle = { -- This is your main fighting set while in combat.
  178. head = "Dragon Cap",
  179. neck = "Peacock Amulet",
  180. ear1 = "Cassie Earring",
  181. ring1 = "Rajas Ring",
  182. ear2 = "Suppanomimi",
  183. ring2 = "Ecphoria Ring",
  184. body = "Dragon Harness",
  185. hands = "Dragon Mittens",
  186. back = "Cuchulain's Mantle",
  187. waist = "Velocious Belt",
  188. legs = "Dragon Subligar",
  189. feet = "Dusk Ledelsens",
  190. }
  191.  
  192. -- Delete this list if you never use NIN or DNC.
  193. -- A set pinned under your engaged sets while single wielding.
  194. -- If you delete the dual wielding code in customize_melee_set() you can delete this too.
  195. sets.engaged.SW = { -- Put your single wielding weapons in here and pieces used while doing so.
  196. main = "Mandau",
  197. sub = "Tatami Shield",
  198. }
  199.  
  200. -- Same as above delete this if you never use NIN or DNC.
  201. -- A set pinned under your engaged sets while dual wielding.
  202. -- If you delete the dual wielding code in customize_melee_set() you can delete this too.
  203. sets.engaged.DW = { -- Put your dual wielding weapons in here and pieces used while doing so.
  204. main = "Mandau",
  205. sub = "Ridill",
  206. }
  207.  
  208. -----------------------------------------------------------------------------------
  209. -- Range sets. -- Delete this section if your job doesn't have ranged abilities. --
  210. -----------------------------------------------------------------------------------
  211.  
  212. sets.precast.RA.Power = {
  213. head="Walahra Turban",
  214. body="Rapparee Harness",
  215. hands="Dusk Gloves",
  216. waist="Velocious Belt",
  217. legs="Bravo's Subligar",
  218. feet="Dusk Ledelsens",
  219. }
  220.  
  221. sets.midcast.RA.Power = {
  222. head="Optical Hat",
  223. neck="Peacock Amulet",
  224. ear1="Intruder Earring",
  225. ring1="Coral Ring",
  226. ear2="Suppanomimi",
  227. ring2="Coral Ring",
  228. body="Rapparee Harness",
  229. hands="Dragon Mittens",
  230. back="Cerberus Mantle",
  231. legs="Dusk Trousers",
  232. feet="Bounding boots",
  233. }
  234.  
  235. sets.precast.RA.Accuracy = {
  236. head="Walahra Turban",
  237. body="Rapparee Harness",
  238. hands="Dusk Gloves",
  239. waist="Velocious Belt",
  240. legs="Bravo's Subligar",
  241. feet="Dusk Ledelsens",
  242. }
  243.  
  244. sets.midcast.RA.Accuracy = {
  245. head="Optical Hat",
  246. neck="Peacock Amulet",
  247. ear1="Intruder Earring",
  248. ring1="Coral Ring",
  249. ear2="Suppanomimi",
  250. ring2="Coral Ring",
  251. body="Rapparee Harness",
  252. hands="Dragon Mittens",
  253. back="Cerberus Mantle",
  254. legs="Bravo's Subligar",
  255. feet="Bounding boots",
  256. }
  257.  
  258. ------------------------
  259. -- Weapon skill sets. --
  260. ------------------------
  261.  
  262. sets.buff['Sneak Attack'] = { -- A set just for while Sneak Attack is active, use dex gear in here.
  263. head = "Hecatomb Cap",
  264. neck = "Spike Necklace",
  265. ear1 = "Intruder Earring",
  266. ring1 = "Rajas Ring",
  267. ear2 = "Pixie Earring",
  268. ring2 = "Thunder Ring",
  269. body = "Dragon Harness",
  270. hands = "Hecatomb Mittens",
  271. back = "Cuchulain's Mantle",
  272. waist = "Warwolf Belt",
  273. legs = "Hecatomb Subligar",
  274. feet = "Hecatomb Leggings",
  275. }
  276.  
  277. sets.buff['Trick Attack'] = { -- A set just for while Trick Attack is active, use agi gear in here.
  278. head = "Dragon Cap",
  279. neck = "Orochi Nodowa",
  280. ear1 = "Drone Earring",
  281. ring1 = "Snow Ring",
  282. ear2 = "Drone Earring",
  283. ring2 = "Snow Ring",
  284. body = "Dragon Harness",
  285. hands = "Dragon Mittens",
  286. back = "Assassin's Cape",
  287. waist = "Warwolf Belt",
  288. legs = "Dragon Subligar",
  289. feet = "Bounding Boots",
  290. }
  291.  
  292. sets.precast.WS = {
  293. head = "Hecatomb Cap",
  294. neck = "Spike Necklace",
  295. ear1 = "Cassie Earring",
  296. ring1 = "Rajas Ring",
  297. ear2 = "Pixie Earring",
  298. ring2 = "Flame Ring",
  299. body = "Hecatomb Harness",
  300. hands = "Mecatomb Mittens",
  301. back = "Cuchulain's Mantle",
  302. waist = "Warwolf Belt",
  303. legs = "Hecatomb Subligar",
  304. feet = "Hecatomb Leggings",
  305. }
  306.  
  307. sets.precast.WS.SA = sets.buff['Sneak Attack']
  308. sets.precast.WS.TA = sets.buff['Trick Attack']
  309. sets.precast.WS.SATA = set_combine(sets.buff['Trick Attack'], sets.buff['Sneak Attack'])
  310.  
  311. sets.precast.WS['Mercy Stroke'] = {
  312. head = "Hecatomb Cap",
  313. neck = "Soil Gorget",
  314. ear1 = "Cassie Earring",
  315. ring1 = "Rajas Ring",
  316. ear2 = "Pixie Earring",
  317. ring2 = "Flame Ring",
  318. body = "Hecatomb Harness",
  319. hands = "Alkyoneus's Bracelets",
  320. back = "Cuchulain's Mantle",
  321. waist = "Warwolf Belt",
  322. legs = "Hecatomb Subligar",
  323. feet = "Hecatomb Leggings",
  324. }
  325.  
  326. sets.precast.WS['Mercy Stroke'].SA = set_combine(sets.precast.WS['Mercy Stroke'], {
  327. ear1 = "Cassie Earring",
  328. ring2 = "Flame Ring",
  329. ear2 = "Pixie Earring",
  330. body = "Hecatomb Harness",
  331. hands = "Alkyoneus's Bracelets",
  332. back = "Cuchulain's Mantle",
  333. })
  334.  
  335. sets.precast.WS['Mercy Stroke'].TA = set_combine(sets.precast.WS['Mercy Stroke'], {
  336.  
  337. })
  338.  
  339. sets.precast.WS['Mercy Stroke'].SATA = set_combine(sets.precast.WS['Mercy Stroke'], {
  340. head = "Hecatomb Cap",
  341. ear1 = "Intruder Earring",
  342. ring2 = "Thunder Ring",
  343. ear2 = "Pixie Earring",
  344. body = "Hecatomb Harness",
  345. hands = "Hecatomb Mittens",
  346. back = "Cuchulain's Mantle",
  347. })
  348.  
  349. ----------------
  350. -- Idle sets. --
  351. ----------------
  352.  
  353. sets.idle = { -- Stuff worn while walking around or inbetween casts while out of combat.
  354. range = "Velocity Bow +1",
  355. ammo = "Sleep Bolt",
  356. head = "Optical Hat",
  357. neck = "Orochi Nodowa",
  358. ear1 = "Dodge Earring",
  359. ring1 = "Bloodbead Ring",
  360. ear2 = "Dodge Earring",
  361. ring2 = "Jelly Ring",
  362. body = "Scorpion Harness +1",
  363. hands = "Dusk Gloves",
  364. back = "Bat Cape",
  365. waist = "Steppe Sash",
  366. legs = "Bravo's Subligar",
  367. feet = "Trotter Boots",
  368. }
  369.  
  370. sets.idle.Town = set_combine(sets.idle, { -- In town idle set, items in here override main idle set.
  371. back = "Nexus Cape",
  372. })
  373.  
  374. sets.idle.Weak = set_combine(sets.idle, { -- Weakened idle set, items in here override main idle set.
  375. ring2 = "Jelly Ring",
  376. })
  377.  
  378. -- Delete this code if you never use /NIN or /DNC.
  379. -- A set pinned under your idle sets while single wielding.
  380. -- If you delete the dual wielding code in customize_idle_set() you can delete this too.
  381. sets.idle.SW = { -- Put your single wielding weapons in here and pieces used while doing so.
  382. main = "Mandau",
  383. sub = "Tatami Shield",
  384. }
  385.  
  386. -- Same as above you can delete this if you never NIN or DNC.
  387. -- A set pinned under your idle sets while dual wielding.
  388. -- If you delete the dual wielding code in customize_idle_set() you can delete this too.
  389. sets.idle.DW = { -- Put your duel wielding weapons in here and pieces used while doing so.
  390. main = "Mandau",
  391. sub = "Ridill",
  392. }
  393.  
  394. sets.resting = {
  395. range = " ",
  396. ammo = " ",
  397. head = " ",
  398. neck = " ",
  399. ear1 = " ",
  400. ring1 = " ",
  401. ear2 = " ",
  402. ring2 = " ",
  403. body = " ",
  404. hands = " ",
  405. back = " ",
  406. waist = " ",
  407. legs = " ",
  408. feet = " ",
  409. }
  410.  
  411. -------------------
  412. -- Defense sets. --
  413. -------------------
  414.  
  415. sets.Kiting = {feet = "Trotter Boots",} -- Movement speed gear press Alt + F10 to pin this.
  416.  
  417. sets.defense.PDT = {ring2 = "Jelly Ring"}
  418.  
  419. sets.defense.MDT = {
  420. ring2 = "Jelly Ring",
  421. back = "Resentment Cape",
  422. }
  423.  
  424. -------------------
  425. -- Pinning sets. --
  426. -------------------
  427.  
  428. sets.TreasureHunter = {hands = "Assassin's Armlets",}
  429.  
  430. --[[
  431. These sets can be called and pinned in a windower macro using the example script.txt below.
  432. gs enable neck
  433. gs equip manual.whistle
  434. gs disable neck
  435.  
  436. Or used (and pinned) in a standard in game macro with the example below.
  437. /console gs enable neck
  438. /console equip manual.whistle
  439. /console gs disable neck
  440.  
  441. Make sure you enable then equip and then disable all the slots that are used in the sets.
  442. --]]
  443.  
  444. sets.manual = {} -- Creates a empty list for these sets to be a sub list of.
  445. sets.manual.whistle = {neck = "Chocobo Whistle",}
  446. sets.manual.nexus = {back = "Nexus Cape",}
  447. sets.manual.warp = {ring2 = "Warp Ring",}
  448.  
  449. sets.manual.bloody = {
  450. range = "Velocity Bow +1",
  451. ammo = "Bloody Bolt",
  452. }
  453.  
  454. sets.manual.boomerange = {
  455. range = "Ungur Boomerang",
  456. }
  457.  
  458. sets.manual.bomblet = {
  459. ammo = "Fire Bomblet",
  460. }
  461.  
  462. sets.manual.sleep = {
  463. range = "Velocity Bow +1",
  464. ammo = "Sleep Bolt",
  465. }
  466.  
  467. sets.manual.acid = {
  468. range = "Velocity Bow +1",
  469. ammo = "Acid Bolt",
  470. }
  471.  
  472. sets.manual.silence = {
  473. range = "Lamian Kaman",
  474. ammo = "Silencing Arrow",
  475. }
  476.  
  477. sets.manual.manthief = {
  478. main = "Mandau",
  479. sub = "Thief's Knife",
  480. }
  481.  
  482. sets.manual.ridill = {
  483. main = "Mandau",
  484. sub = "Ridill",
  485. }
  486.  
  487. sets.manual.kris = {
  488. main = "Mandau",
  489. sub = "Mercurial Kris",
  490. }
  491.  
  492. sets.manual.thiefshield = {
  493. main = "Thief's Knife",
  494. sub = "Tatami Shield",
  495. }
  496.  
  497. sets.manual.manshield = {
  498. main = "Mandau",
  499. sub = "Tatami Shield",
  500. }
  501.  
  502. end
  503.  
  504. -----------------------------------------------------
  505. -- Job-specific hooks for standard casting events. --
  506. -----------------------------------------------------
  507.  
  508. function job_post_precast(spell, action, spellMap, eventArgs)
  509. -- Uses your treasure hunter gear when you use a AOE WS if in a treasure hunter mode.
  510. if spell.english == 'Cyclone' or spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
  511. equip(sets.TreasureHunter)
  512. end
  513.  
  514. end
  515.  
  516. function job_post_midcast(spell, action, spellMap, eventArgs)
  517. -- Uses your treasure hunter gear when you range attack if in a treasure hunter mode.
  518. if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
  519. equip(sets.TreasureHunter)
  520. end
  521.  
  522. end
  523.  
  524. function job_aftercast(spell, action, spellMap, eventArgs)
  525. -- If you WS with sneak or trick set gear on it stays on without this.
  526. if spell.type == 'WeaponSkill' and not spell.interrupted then
  527. state.Buff['Sneak Attack'] = false
  528. state.Buff['Trick Attack'] = false
  529. state.Buff['Feint'] = false
  530. end
  531.  
  532. end
  533.  
  534. ------------------------------------------------
  535. -- Job-specific hooks for non-casting events. --
  536. ------------------------------------------------
  537.  
  538. function job_buff_change(buff, gain)
  539. -- Called when a player gains or loses a buff.
  540. -- buff == buff gained or lost
  541. -- gain == true if the buff was gained, false if it was lost.
  542. -- Without this when buffs end the gear never changes back.
  543. if state.Buff[buff] ~= nil then
  544. if not midaction() then
  545. handle_equipping_gear(player.status)
  546. end
  547. end
  548.  
  549. end
  550.  
  551. -----------------------------------------------------------
  552. -- User code that supplements standard library decisions. -
  553. -----------------------------------------------------------
  554.  
  555. --[[
  556. function get_custom_wsmode(spell, spellMap, defaut_wsmode)
  557. -- Makes gearswap look for special WS sets for every WS ending in SA, TA, and SATA.
  558. local wsmode
  559.  
  560. if state.Buff['Sneak Attack'] then
  561. wsmode = 'SA'
  562. end
  563.  
  564. if state.Buff['Trick Attack'] then
  565. wsmode = (wsmode or '') .. 'TA'
  566. end
  567.  
  568. return wsmode
  569. end
  570. --]]
  571.  
  572. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  573. function job_handle_equipping_gear(playerStatus, eventArgs)
  574. -- Checks for TA or SA and equips that gear specifically blocking other gear.
  575. check_buff('Trick Attack', eventArgs)
  576. check_buff('Sneak Attack', eventArgs)
  577. end
  578.  
  579. -- Whenever a engaged set is used this function is called.
  580. function customize_melee_set(meleeSet)
  581. if state.TreasureMode.value == 'Fulltime' then
  582. meleeSet = set_combine(meleeSet, sets.TreasureHunter)
  583. end
  584.  
  585. -- Checks if your subjob is DNC or NIN or isn't and uses the right weapons.
  586. if player.sub_job ~= "DNC" and player.sub_job ~= "NIN" then
  587. meleeSet = set_combine(sets.engaged.SW, meleeSet)
  588. else
  589. meleeSet = set_combine(sets.engaged.DW, meleeSet)
  590. end
  591.  
  592. return meleeSet
  593. end
  594.  
  595. -- Wenever a idle set is used this fuction is called.
  596. function customize_idle_set(idleSet)
  597. if state.TreasureMode.value == 'Fulltime' then
  598. idleSet = set_combine(idleSet, sets.TreasureHunter)
  599. end
  600.  
  601. -- Checks if your subjob is DNC or NIN or isn't and uses the right weapons.
  602. if player.sub_job ~= "DNC" and player.sub_job ~= "NIN" then
  603. idleSet = set_combine(sets.idle.SW, idleSet)
  604. else
  605. idleSet = set_combine(sets.idle.DW, idleSet)
  606. end
  607.  
  608. return idleSet
  609. end
  610.  
  611. -- Believe this to also be required to recognize when TH has been applied.
  612. -- Called by the 'update' self-command.
  613. function job_update(cmdParams, eventArgs)
  614. th_update(cmdParams, eventArgs)
  615. end
  616.  
  617. ---------------------------------------------
  618. -- Utility functions specific to this job. --
  619. ---------------------------------------------
  620.  
  621. -- State buff checks that will equip buff gear and mark the event as handled.
  622. function check_buff(buff_name, eventArgs)
  623. if state.Buff[buff_name] then
  624. equip(sets.buff[buff_name] or {})
  625. eventArgs.handled = true
  626. end
  627.  
  628. end
  629.  
  630. -- Required for Treasure Hunter Tag mode to know when certain things have put your TH level on.
  631. -- Check for various actions that we've specified in user code as being used with TH gear.
  632. -- This will only ever be called if TreasureMode is not 'None'.
  633. -- Category and Param are as specified in the action event packet.
  634. function th_action_check(category, param)
  635. if category == 2 or -- any ranged attack
  636. category == 4 or -- any magic action
  637. (category == 3 and param == 30) or -- Aeolian Edge
  638. (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
  639. (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
  640. then return true
  641. end
  642. end
  643.  
  644. function select_default_macro_book()
  645. set_macro_page(1, 6)
  646. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement