Advertisement
Guest User

Untitled

a guest
Dec 17th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.90 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Initialization function that defines sets and variables to be used.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
  6.  
  7. -- Initialization function for this job file.
  8. function get_sets()
  9. -- Load and initialize the include file.
  10. include('Mote-Include.lua')
  11. end
  12.  
  13.  
  14. -- Setup vars that are user-independent.
  15. function job_setup()
  16. state.CombatForm = get_combat_form()
  17. update_melee_groups()
  18. end
  19.  
  20.  
  21. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  22. function user_setup()
  23. -- Options: Override default values
  24. options.OffenseModes = {'Normal', 'Acc'}
  25. options.DefenseModes = {'Normal', 'PDT'}
  26. options.WeaponskillModes = {'Normal', 'Acc'}
  27. options.IdleModes = {'Normal'}
  28. options.RestingModes = {'Normal'}
  29. options.PhysicalDefenseModes = {'PDT'}
  30. options.MagicalDefenseModes = {'MDT'}
  31.  
  32. state.Defense.PhysicalMode = 'PDT'
  33.  
  34. select_default_macro_book()
  35. end
  36.  
  37.  
  38. -- Called when this job file is unloaded (eg: job change)
  39. function file_unload()
  40. if binds_on_unload then
  41. binds_on_unload()
  42. end
  43. end
  44.  
  45.  
  46. -- Define sets and vars used by this job file.
  47. function init_gear_sets()
  48. --------------------------------------
  49. -- Start defining the sets
  50. --------------------------------------
  51. -- Precast Sets
  52.  
  53. -- Precast sets to enhance JAs on use
  54. sets.precast.JA['Hundred Fists'] = {legs="Hesychast's Hose +1"}
  55. sets.precast.JA['Boost'] = {hands="Anchorite's Gloves +1"}
  56. sets.precast.JA['Dodge'] = {feet="Anchorite's Gaiters +1"}
  57. sets.precast.JA['Focus'] = {head="Anchorite's Crown +1"}
  58. sets.precast.JA['Counterstance'] = {feet="Hesychast's Gaiters +1"}
  59. sets.precast.JA['Chi Blast'] = {feet="Thurandaut Boots +1"}
  60. sets.precast.JA['Impetus']={body="tantra cyclas +2"}
  61. sets.precast.JA['Formless Strikes'] = {body="Hesychast's Cyclas +1"}
  62. sets.precast.JA['Mantra'] = {feet="Hesychast's Gaiters +1"}
  63. sets.precast.JA['Chakra'] = {ammo="Brigantia Pebble",
  64. head="Lithelimb Cap",neck="Tjukurrpa Medal",ear1="Terra's Pearl",ear2="Terra's Pearl",
  65. body="Anchorite's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
  66. back="Iximulew Cape",waist="Caudata Belt",legs="nahtirah Trousers",feet="Thurandaut Boots +1"}
  67.  
  68. -- Waltz set (chr and vit)
  69. sets.precast.Waltz = {ammo="Brigantia Pebble",
  70. head="Lithelimb Cap",neck="Tjukurrpa Medal",ear1="Terra's Pearl",ear2="Terra's Pearl",
  71. body="Anchorite's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
  72. back="Iximulew Cape",waist="Caudata Belt",legs="Kaabnax Trousers",feet="Thurandaut Boots +1"}
  73.  
  74. -- Don't need any special gear for Healing Waltz.
  75. sets.precast.Waltz['Healing Waltz'] = {}
  76.  
  77. -- Fast cast sets for spells
  78.  
  79. sets.precast.FC = {ammo="Impatiens",body="Dread Jupon",ring2="Veneficium Ring",head="Haruspex hat +1",
  80. ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring"}
  81.  
  82. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  83.  
  84.  
  85. -- Weaponskill sets
  86. -- Default set for any weaponskill that isn't any more specifically defined
  87. sets.precast.WS = {ammo="Ginsen",
  88. head="Whirlpool Mask",neck="Nefarious collar +1",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  89. body="mekosuchinae harness",hands="Hes. Gloves +1",ring1="Rajas ring",ring2="Epona's Ring",
  90. back="anchoret's mantle",waist="Caudata Belt",legs="ighwa trousers",feet="Qaxxo leggings"}
  91. sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Honed Tathlum", back="Anchoret's Mantle"})
  92.  
  93. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  94. sets.precast.WS["Victory Smite"] = set_combine(sets.precast.WS, {ear1="Brutal Earring",ear2="trux earring"})
  95. sets.precast.WS["Victory Smite"].Acc = set_combine(sets.precast.WS.Acc, {ear1="Brutal Earring",ear2="Moonshade Earring"})
  96.  
  97. sets.precast.WS['Final Heaven'] = set_combine(sets.precast.WS, {head="lithelimb cap",neck=gear.ElementalGorget,feet="Thurandaut Boots +1",body="Anchorite's Cyclas +1",ammo="Ginsen"})
  98. sets.precast.WS['Final Heaven'].Acc = set_combine(sets.precast.WS.Acc, {head="lithelimb cap",neck=gear.ElementalGorget,feet="Thurandaut Boots +1",body="Anchorite's Cyclas +1",ammo="Ginsen"})
  99.  
  100. sets.precast.WS['Asuran Fists'] = set_combine(sets.precast.WS, {neck=gear.ElementalGorget})
  101. sets.precast.WS['Asuran Fists'].Acc = set_combine(sets.precast.WS.Acc, {neck=gear.ElementalGorget})
  102.  
  103. sets.precast.WS["Ascetic's Fury"] = set_combine(sets.precast.WS, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
  104. sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS.Acc, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
  105.  
  106. -- Midcast Sets
  107. sets.midcast.FastRecast = {
  108. head="Whirlpool Mask",neck="",ear1="",ear2="Loquacious Earring",
  109. body="Otronif Harness +1",hands="Thaumas Gloves",ring1="Prolix Ring",ring2="",
  110. back="",waist="Black Belt",legs="",feet="Otronif Boots +1"}
  111.  
  112. -- Specific spells
  113. sets.midcast.Utsusemi = {ammo="Impatiens",
  114. head="Whirlpool Mask",neck="",ear1="",ear2="Loquacious Earring",
  115. body="Otronif Harness +1",hands="Thaumas Gloves",ring1="",ring2="",
  116. back="",waist="Black Belt",legs="Kaabnax Trousers",feet="Otronif Boots +1"}
  117.  
  118. -- Sets to return to when not performing an action.
  119. -- Resting sets
  120. sets.resting = {ammo="Brigantia Pebble",
  121. head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring",
  122. body="Hesychast's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  123. back="Shadow Mantle",waist="Black Belt",legs="Hesychast's Hose +1",feet="Hesychast's Gaiters +1"}
  124.  
  125. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  126. sets.idle = {main="Spharai",ammo="Brigantia Pebble",
  127. head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring",
  128. body="Hesychast's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  129. back="Shadow Mantle",waist="Black Belt",legs="Hesychast's Hose +1",feet="Hesychast's Gaiters +1"}
  130. sets.idle.Town = {main="Spharai",ammo="Brigantia Pebble",
  131. head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring",
  132. body="Hesychast's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  133. back="Shadow Mantle",waist="Black Belt",legs="Hesychast's Hose +1",feet="Hesychast's Gaiters +1"}
  134.  
  135. -- Defense sets
  136. sets.defense.PDT = {ammo="Brigantia Pebble",
  137. head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  138. body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Jelly ring",ring2="Patricius Ring",
  139. back="Shadow Mantle",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
  140.  
  141. sets.defense.MDT = {ammo="Brigantia Pebble",
  142. head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  143. body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Defending Ring",ring2="Shadow Ring",
  144. back="Engulfer Cape",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
  145.  
  146. sets.Kiting = {feet=""}
  147.  
  148. -- Engaged sets
  149. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  150. -- sets if more refined versions aren't defined.
  151. -- If you create a set with both offense and defense modes, the offense mode should be first.
  152.  
  153. -- Normal melee sets
  154. sets.engaged = {ammo="Ginsen",
  155. head="Felistris Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  156. body={ name="Qaaxo Harness", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},hands="Hes. Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
  157. back="Atheling Mantle",waist="Windbuffet Belt +1",legs="Hesychast's Hose +1",feet="soku. Sune-Ate"}
  158.  
  159. sets.engaged.Acc = {ammo="Honed Tathlum",
  160. head="Whirlpool Mask",neck="Iqabi Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  161. body="mekosuchinae harness",hands="Hesychast's Gloves +1",ring1="Rajas Ring",ring2="Mars's Ring",
  162. back="Anchoret's Mantle",waist="Hurch'lan Sash",legs="Qaaxo Tights",feet="Qaaxo Leggings"}
  163. sets.engaged.PDT = {ammo="Brigantia Pebble",
  164. head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  165. body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Jelly ring",ring2="Patricius Ring",
  166. back="Mollusca Mantle",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
  167. sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
  168. head="Lithelimb Cap",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  169. body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Rajas Ring",ring2="Patricius Ring",
  170. back="Mollusca Mantle",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
  171. end
  172.  
  173. -------------------------------------------------------------------------------------------------------------------
  174. -- Job-specific hooks that are called to process player actions at specific points in time.
  175. -------------------------------------------------------------------------------------------------------------------
  176.  
  177. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  178. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  179. function job_precast(spell, action, spellMap, eventArgs)
  180. -- Don't gearswap for weaponskills when Defense is on.
  181. if spell.type:lower() == 'weaponskill' and state.Defense.Active then
  182. eventArgs.handled = true
  183. elseif spell.type == 'Waltz' then
  184. refine_waltz(spell, action, spellMap, eventArgs)
  185. end
  186. end
  187.  
  188. -- Run after the general precast() is done.
  189. function job_post_precast(spell, action, spellMap, eventArgs)
  190. if spell.type:lower() == 'weaponskill' and not state.Defense.Active then
  191. if buffactive.impetus and (spell.english == "Ascetic's Fury" or spell.english == "Victory Smite") then
  192. equip({body="Tantra Cyclas +2"})
  193. elseif buffactive.footwork and (spell.english == "Dragon's Kick" or spell.english == "Tornado Kick") then
  194. equip({feet="Anchorite's Gaiters +1"})
  195. end
  196. end
  197. end
  198.  
  199. -------------------------------------------------------------------------------------------------------------------
  200. -- General hooks for other game events.
  201. -------------------------------------------------------------------------------------------------------------------
  202.  
  203. -- Called when a player gains or loses a buff.
  204. -- buff == buff gained or lost
  205. -- gain == true if the buff was gained, false if it was lost.
  206. function job_buff_change(buff, gain)
  207. -- Set Footwork as combat form any time it's active and Hundred Fists is not.
  208. if buff == 'Footwork' and gain and not buffactive['hundred fists'] then
  209. state.CombatForm = 'Footwork'
  210. elseif buff == "Hundred Fists" and not gain and buffactive.footwork then
  211. state.CombatForm = 'Footwork'
  212. else
  213. state.CombatForm = nil
  214. end
  215.  
  216. -- Hundred Fists and Impetus modify the custom melee groups
  217. if buff == "Hundred Fists" or buff == "Impetus" then
  218. classes.CustomMeleeGroups:clear()
  219.  
  220. if (buff == "Hundred Fists" and gain) or buffactive['hundred fists'] then
  221. classes.CustomMeleeGroups:append('HF')
  222. end
  223.  
  224. if (buff == "Impetus" and gain) or buffactive.impetus then
  225. classes.CustomMeleeGroups:append('Impetus')
  226. end
  227. end
  228.  
  229. -- Update gear if any of the above changed
  230. if buff == "Hundred Fists" or buff == "Impetus" or buff == "Footwork" then
  231. handle_equipping_gear(player.status)
  232. end
  233. end
  234.  
  235.  
  236. -------------------------------------------------------------------------------------------------------------------
  237. -- User code that supplements self-commands.
  238. -------------------------------------------------------------------------------------------------------------------
  239.  
  240. -- Called by the 'update' self-command.
  241. function job_update(cmdParams, eventArgs)
  242. state.CombatForm = get_combat_form()
  243. update_melee_groups()
  244. end
  245.  
  246.  
  247. -------------------------------------------------------------------------------------------------------------------
  248. -- Utility functions specific to this job.
  249. -------------------------------------------------------------------------------------------------------------------
  250.  
  251. function get_combat_form()
  252. if buffactive.footwork and not buffactive['hundred fists'] then
  253. return 'Footwork'
  254. end
  255. end
  256.  
  257. function update_melee_groups()
  258. classes.CustomMeleeGroups:clear()
  259.  
  260. if buffactive['hundred fists'] then
  261. classes.CustomMeleeGroups:append('HF')
  262. end
  263.  
  264. if buffactive.impetus then
  265. classes.CustomMeleeGroups:append('Impetus')
  266. end
  267. end
  268.  
  269.  
  270. -- Select default macro book on initial load or subjob change.
  271. function select_default_macro_book()
  272. -- Default macro set/book
  273. if player.sub_job == 'DNC' then
  274. set_macro_page(2, 1)
  275. elseif player.sub_job == 'NIN' then
  276. set_macro_page(3, 1)
  277. else
  278. set_macro_page(1, 1)
  279. end
  280. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement