Guest User

Untitled

a guest
May 20th, 2015
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.80 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7. mote_include_version = 2
  8.  
  9. -- Load and initialize the include file.
  10. include('Mote-Include.lua')
  11. end
  12.  
  13. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  14. function job_setup()
  15. indi_timer = ''
  16. indi_duration = 180
  17. end
  18.  
  19. -------------------------------------------------------------------------------------------------------------------
  20. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  21. -------------------------------------------------------------------------------------------------------------------
  22.  
  23. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  24. function user_setup()
  25. state.OffenseMode:options('None', 'Normal')
  26. state.CastingMode:options('Normal', 'Resistant')
  27. state.IdleMode:options('Normal', 'PDT')
  28.  
  29. gear.default.weaponskill_waist = "Windbuffet Belt"
  30.  
  31. select_default_macro_book()
  32. end
  33.  
  34.  
  35. -- Define sets and vars used by this job file.
  36. function init_gear_sets()
  37.  
  38. --------------------------------------
  39. -- Precast sets
  40. --------------------------------------
  41.  
  42. -- Precast sets to enhance JAs
  43. sets.precast.JA.Bolster = {body="Bagua Tunic"}
  44. sets.precast.JA['Life cycle'] = {body="Geomancy Tunic"}
  45.  
  46. -- Fast cast sets for spells
  47.  
  48. sets.precast.FC = {ammo="Impatiens",
  49. head="Nahtirah Hat",ear2="Loquacious Earring",
  50. body="Vanir Cotehardie",ring1="Prolix Ring",
  51. back="Swith Cape",waist="Witful Belt",legs="Orvail Pants +1",feet="Chelona Boots"}
  52.  
  53. sets.precast.FC.Cure = set_combine(sets.precast.FC, {main="Tamaxchi",sub="Genbu's Shield",back="Pahtli Cape"})
  54.  
  55. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})
  56.  
  57.  
  58. -- Weaponskill sets
  59. -- Default set for any weaponskill that isn't any more specifically defined
  60. sets.precast.WS = {
  61. head="Nahtirah Hat",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
  62. body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  63. back="Refraction Cape",waist=gear.ElementalBelt,legs="Hagondes Pants",feet="Hagondes Sabots"}
  64.  
  65. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  66. sets.precast.WS['Flash Nova'] = {ammo="Dosis Tathlum",
  67. head="Hagondes Hat",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  68. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Acumen Ring",ring2="Strendu Ring",
  69. back="Toro Cape",waist="Snow Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  70.  
  71. sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
  72.  
  73. sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
  74.  
  75.  
  76. --------------------------------------
  77. -- Midcast sets
  78. --------------------------------------
  79.  
  80. -- Base fast recast for spells
  81. sets.midcast.FastRecast = {
  82. head="Zelus Tiara",ear2="Loquacious Earring",
  83. body="Hagondes Coat",hands="Bokwus Gloves",ring1="Prolix Ring",
  84. back="Swith Cape",waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  85.  
  86. sets.midcast.Geomancy = {range="Nepote Bell"}
  87. sets.midcast.Geomancy.Indi = {range="Nepote Bell",legs="Bagua Pants"}
  88.  
  89. sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",
  90. body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Haoma Ring",ring2="Sirona's Ring",
  91. back="Swith Cape",legs="Nares Trews",feet="Hagondes Sabots"}
  92.  
  93. sets.midcast.Curaga = sets.midcast.Cure
  94.  
  95. sets.midcast.Protectra = {ring1="Sheltered Ring"}
  96.  
  97. sets.midcast.Shellra = {ring1="Sheltered Ring"}
  98.  
  99.  
  100. --------------------------------------
  101. -- Idle/resting/defense/etc sets
  102. --------------------------------------
  103.  
  104. -- Resting sets
  105. sets.resting = {head="Nefer Khat +1",neck="Wiglen Gorget",
  106. body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  107. waist="Austerity Belt",legs="Nares Trews",feet="Chelona Boots"}
  108.  
  109.  
  110. -- Idle sets
  111.  
  112. sets.idle = {main="Bolelabunga",sub="Genbu's Shield",range="Nepote Bell",
  113. head="Nefer Khat +1",neck="Wiglen Gorget",ear1="Ethereal Earring",ear2="Loquacious Earring",
  114. body="Artsieq Jubbah",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  115. back="Umbra Cape",waist="Slipor Sash",legs="Nares Trews",feet="Serpentes Sabots"}
  116.  
  117. sets.idle.PDT = {main="Bolelabunga",sub="Genbu's Shield",range="Nepote Bell",
  118. head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  119. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Paguroidea Ring",
  120. back="Umbra Cape",waist="Goading Belt",legs="Nares Trews",feet="Herald's Gaiters"}
  121.  
  122. -- .Pet sets are for when Luopan is present.
  123. sets.idle.Pet = {main="Bolelabunga",sub="Genbu's Shield",range="Nepote Bell",
  124. head="Nahtirah Hat",neck="Twilight Torque",ear1="Ethereal Earring",ear2="Loquacious Earring",
  125. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  126. back="Umbra Cape",waist="Goading Belt",legs="Nares Trews",feet="Herald's Gaiters"}
  127.  
  128. sets.idle.PDT.Pet = {main="Bolelabunga",sub="Genbu's Shield",range="Nepote Bell",
  129. head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  130. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Paguroidea Ring",
  131. back="Umbra Cape",waist="Goading Belt",legs="Nares Trews",feet="Herald's Gaiters"}
  132.  
  133. -- .Indi sets are for when an Indi-spell is active.
  134. sets.idle.Indi = set_combine(sets.idle, {legs="Bagua Pants"})
  135. sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {legs="Bagua Pants"})
  136. sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {legs="Bagua Pants"})
  137. sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {legs="Bagua Pants"})
  138.  
  139. sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",range="Nepote Bell",
  140. head="Nefer Khat +1",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  141. body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  142. back="Umbra Cape",waist="Goading Belt",legs="Nares Trews",feet="Herald's Gaiters"}
  143.  
  144. sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",range="Nepote Bell",
  145. head="Nefer Khat +1",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  146. body="Heka's Kalasiris",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  147. back="Umbra Cape",waist="Goading Belt",legs="Nares Trews",feet="Herald's Gaiters"}
  148.  
  149. -- Defense sets
  150.  
  151. sets.defense.PDT = {range="Nepote Bell",
  152. head="Hagondes Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  153. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  154. back="Umbra Cape",waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  155.  
  156. sets.defense.MDT = {range="Nepote Bell",
  157. head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  158. body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
  159. back="Umbra Cape",waist="Goading Belt",legs="Bokwus Slops",feet="Hagondes Sabots"}
  160.  
  161. sets.Kiting = {feet="Herald's Gaiters"}
  162.  
  163. sets.latent_refresh = {waist="Fucho-no-obi"}
  164.  
  165.  
  166. --------------------------------------
  167. -- Engaged sets
  168. --------------------------------------
  169.  
  170. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  171. -- sets if more refined versions aren't defined.
  172. -- If you create a set with both offense and defense modes, the offense mode should be first.
  173. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  174.  
  175. -- Normal melee group
  176. sets.engaged = {range="Nepote Bell",
  177. head="Zelus Tiara",neck="Peacock Charm",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  178. body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Rajas Ring",ring2="Paguroidea Ring",
  179. back="Umbra Cape",waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  180.  
  181. --------------------------------------
  182. -- Custom buff sets
  183. --------------------------------------
  184.  
  185. end
  186.  
  187. -------------------------------------------------------------------------------------------------------------------
  188. -- Job-specific hooks for standard casting events.
  189. -------------------------------------------------------------------------------------------------------------------
  190.  
  191. function job_aftercast(spell, action, spellMap, eventArgs)
  192. if not spell.interrupted then
  193. if spell.english:startswith('Indi') then
  194. if not classes.CustomIdleGroups:contains('Indi') then
  195. classes.CustomIdleGroups:append('Indi')
  196. end
  197. send_command('@timers d "'..indi_timer..'"')
  198. indi_timer = spell.english
  199. send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  200. elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  201. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  202. elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  203. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  204. end
  205. elseif not player.indi then
  206. classes.CustomIdleGroups:clear()
  207. end
  208. end
  209.  
  210.  
  211. -------------------------------------------------------------------------------------------------------------------
  212. -- Job-specific hooks for non-casting events.
  213. -------------------------------------------------------------------------------------------------------------------
  214.  
  215. -- Called when a player gains or loses a buff.
  216. -- buff == buff gained or lost
  217. -- gain == true if the buff was gained, false if it was lost.
  218. function job_buff_change(buff, gain)
  219. if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  220. classes.CustomIdleGroups:append('Indi')
  221. handle_equipping_gear(player.status)
  222. elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  223. classes.CustomIdleGroups:clear()
  224. handle_equipping_gear(player.status)
  225. end
  226. end
  227.  
  228. function job_state_change(stateField, newValue, oldValue)
  229. if stateField == 'Offense Mode' then
  230. if newValue == 'Normal' then
  231. disable('main','sub','range')
  232. else
  233. enable('main','sub','range')
  234. end
  235. end
  236. end
  237.  
  238. -------------------------------------------------------------------------------------------------------------------
  239. -- User code that supplements standard library decisions.
  240. -------------------------------------------------------------------------------------------------------------------
  241.  
  242. function job_get_spell_map(spell, default_spell_map)
  243. if spell.action_type == 'Magic' then
  244. if spell.skill == 'Enfeebling Magic' then
  245. if spell.type == 'WhiteMagic' then
  246. return 'MndEnfeebles'
  247. else
  248. return 'IntEnfeebles'
  249. end
  250. elseif spell.skill == 'Geomancy' then
  251. if spell.english:startswith('Indi') then
  252. return 'Indi'
  253. end
  254. end
  255. end
  256. end
  257.  
  258. function customize_idle_set(idleSet)
  259. if player.mpp < 51 then
  260. idleSet = set_combine(idleSet, sets.latent_refresh)
  261. end
  262. return idleSet
  263. end
  264.  
  265. -- Called by the 'update' self-command.
  266. function job_update(cmdParams, eventArgs)
  267. classes.CustomIdleGroups:clear()
  268. if player.indi then
  269. classes.CustomIdleGroups:append('Indi')
  270. end
  271. end
  272.  
  273. -- Function to display the current relevant user state when doing an update.
  274. function display_current_job_state(eventArgs)
  275. display_current_caster_state()
  276. eventArgs.handled = true
  277. end
  278.  
  279. -------------------------------------------------------------------------------------------------------------------
  280. -- Utility functions specific to this job.
  281. -------------------------------------------------------------------------------------------------------------------
  282.  
  283. -- Select default macro book on initial load or subjob change.
  284. function select_default_macro_book()
  285. set_macro_page(1, 6)
  286. end
Advertisement
Add Comment
Please, Sign In to add comment