Advertisement
Guest User

Untitled

a guest
Jul 14th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.17 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.  
  17. end
  18.  
  19.  
  20. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  21. function user_setup()
  22. -- Options: Override default values
  23. options.CastingModes = {'Normal', 'Resistant', 'Proc'}
  24. options.OffenseModes = {'None', 'Normal'}
  25. options.DefenseModes = {'Normal'}
  26. options.WeaponskillModes = {'Normal'}
  27. options.IdleModes = {'Normal'}
  28. options.RestingModes = {'Normal'}
  29. options.PhysicalDefenseModes = {'PDT'}
  30. options.MagicalDefenseModes = {'MDT'}
  31.  
  32. state.Defense.PhysicalMode = 'PDT'
  33. state.OffenseMode = 'None'
  34.  
  35. lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  36. 'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  37. 'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  38. 'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  39. 'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  40.  
  41. gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Phys. dmg. taken -3%','Mag. Acc.+29'}}
  42.  
  43. select_default_macro_book()
  44. end
  45.  
  46.  
  47. -- Define sets and vars used by this job file.
  48. function init_gear_sets()
  49. --------------------------------------
  50. -- Start defining the sets
  51. --------------------------------------
  52.  
  53. ---- Precast Sets ----
  54.  
  55. -- Precast sets to enhance JAs
  56. sets.precast.JA['Mana Wall'] = {feet="Goetia Sabots +1"}
  57.  
  58. sets.precast.JA.Manafont = {body="Sorcerer's Coat +2"}
  59.  
  60. -- equip to maximize HP (for Tarus) and minimize MP loss before using convert
  61. sets.precast.JA.Convert = {}
  62.  
  63.  
  64. -- Fast cast sets for spells
  65.  
  66. sets.precast.FC = {head="Teal Chapeau",ear2="Loquacious Earring",body="Teal Saio",
  67. legs="Teal Slops",feet="Teal Pigaches",hands="Teal Cuffs"}
  68.  
  69. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  70.  
  71. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {head="Goetia Petasos +1",feet="Chelona Boots"})
  72.  
  73. sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris", back="Pahtli Cape"})
  74.  
  75. sets.precast.FC.Curaga = sets.precast.FC.Cure
  76.  
  77. -- Weaponskill sets
  78. -- Default set for any weaponskill that isn't any more specifically defined
  79. sets.precast.WS = {
  80. head="Hagondes Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  81. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="Icesoul Ring",
  82. back="Refraction Cape",waist="Cognition Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  83.  
  84. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  85. sets.precast.WS['Vidohunir'] = {ammo="Dosis Tathlum",
  86. head="Hagondes Hat",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
  87. body="Hagondes Coat",hands="Yaoyotl Gloves",ring1="Icesoul Ring",ring2="Acumen Ring",
  88. back="Toro Cape",waist="Thunder Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  89.  
  90.  
  91. ---- Midcast Sets ----
  92.  
  93. sets.midcast.FastRecast = {
  94. head="Nahtirah Hat",ear2="Loquacious Earring",
  95. body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Prolix Ring",
  96. back="Swith Cape +1",waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  97.  
  98. sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",
  99. head="Nahtirah Hat",neck="Colossus's Torque",ear2="Loquacious Earring",
  100. body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
  101. back="Pahtli Cape",waist=gear.ElementalObi,legs="Hagondes Pants",feet="Hagondes Sabots"}
  102.  
  103. sets.midcast.Curaga = sets.midcast.Cure
  104.  
  105. sets.midcast['Enhancing Magic'] = {
  106. neck="Colossus's Torque",
  107. body="Manasa Chasuble",hands="Ayao's Gages",
  108. legs="Portent Pants"}
  109.  
  110. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
  111.  
  112. sets.midcast['Enfeebling Magic'] = {main="Eminent Staff",sub="Macero Grip",head="Igqira Tiara",
  113. neck="Spider Torque",ear1="Aptus Earring",body="Wizard's Coat",hands="Teal Cuffs",
  114. back="Refraction Cape",legs="Wayfarer Slops",feet="Teal Pigaches"}
  115.  
  116. sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  117.  
  118. sets.midcast['Dark Magic'] = {main="Eminent Staff",sub="Caecus Grip",
  119. head="Walahra Turban",neck="Dark Torque",ear1="Dark Earring",ear2="Aptus Earring",
  120. body="Teal Saio",hands="Teal Cuffs",legs="Wizard's Tonban"}
  121.  
  122. sets.midcast.Drain = set_combine(sets.midcast.['Dark Magic'])
  123.  
  124. sets.midcast.Aspir = sets.midcast.Drain
  125.  
  126. sets.midcast.Stun = set_combine(sets.midcast.['Dark Magic'])
  127.  
  128. sets.midcast.BardSong = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Sturm's Report",
  129. head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  130. body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
  131. back="Refraction Cape",legs="Bokwus Slops",feet="Bokwus Boots"}
  132.  
  133.  
  134. -- Elemental Magic sets
  135.  
  136. sets.midcast['Elemental Magic'] = {main="Eminent Staff",sub="Bugard Strap +1",ammo="Phantom Tathlum",
  137. head="Goetia Petasos +1",neck="Feud Pendant",ear1="Moldavite Earring",ear2="Aptus Earring",
  138. body="Igqira Weskit",hands="Eradico Mitts",ring1="Snow Ring",ring2="Snow Ring",
  139. back="Romanus Cape",waist=gear.ElementalObi,legs="Wayfarer Slops",feet="Goetia Sabots +1"}
  140.  
  141. sets.midcast['Elemental Magic'].Resistant = {main="Eminent Staff",sub="Elementa Grip",ammo="Phantom Tathlum",
  142. head="Goetia Petasos +1",neck="Elemental Torque",ear1="Moldavite Earring",ear2="Aptus Earring",
  143. body="Igqira Weskit",hands="Wizard's Gloves",ring1="Snow Ring",ring2="Snow Ring",
  144. back="Eloquence Cape",waist=gear.ElementalObi,legs="Wayfarer Slops",feet="Goetia Sabots +1"}
  145.  
  146. sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
  147. sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
  148.  
  149.  
  150. -- Minimal damage gear for procs.
  151. sets.midcast['Elemental Magic'].Proc = {main="Earth Staff", sub="Mephitis Grip",ammo="Impatiens",
  152. head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  153. body="Manasa Chasuble",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  154. back="Swith Cape +1",waist="Witful Belt",legs="Nares Trews",feet="Chelona Boots +1"}
  155.  
  156.  
  157.  
  158. -- Sets to return to when not performing an action.
  159.  
  160. -- Resting sets
  161. sets.resting = {main="Pluto's Staff",ammo="Clarus Stone",head="Yigit Turban",neck="Eidolon Pendant",
  162. body="Errant Houppelande",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  163. waist="Austerity Belt",legs="Nisse Slacks",feet="Chelona Boots",ear1="Antivenom Earring",
  164. ear2="Relaxing Earring"}
  165.  
  166.  
  167. -- Idle sets
  168.  
  169. -- Normal refresh idle set
  170. sets.idle = {main="Terra's Staff", sub="Raptor Strap +1",ammo="Phantom Tathlum",
  171. head="Goetia Petasos +1",neck="Orochi Nodowa",ear1="Insomnia Earring",ear2="Sorcerer's Earring",
  172. body="Socerer's Coat",hands="Teal Cuffs",ring1="Snow Ring",ring2="Jelly Ring",
  173. back="Eloquence Cape",waist="Penitent's Rope",legs="Igqira Lappas",feet="Goetia Sabots +1"}
  174.  
  175. -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
  176. sets.idle.PDT = {main="Terra's Staff", sub="Raptor Strap +1",ammo="Phantom Tathlum",
  177. head="Goetia Petasos +1",neck="Orochi Nodowa",ear1="Insomnia Earring",ear2="Sorcerer's Earring",
  178. body="Socerer's Coat",hands="Teal Cuffs",ring1="Snow Ring",ring2="Jelly Ring",
  179. back="Eloquence Cape",waist="Penitent's Rope",legs="Igqira Lappas",feet="Goetia Sabots +1"}
  180.  
  181. -- Idle mode scopes:
  182. -- Idle mode when weak.
  183. sets.idle.Weak = {main="Terra's Staff", sub="Raptor Strap +1",ammo="Phantom Tathlum",
  184. head="Goetia Petasos +1",neck="Orochi Nodowa",ear1="Insomnia Earring",ear2="Sorcerer's Earring",
  185. body="Socerer's Coat",hands="Teal Cuffs",ring1="Snow Ring",ring2="Jelly Ring",
  186. back="Eloquence Cape",waist="Penitent's Rope",legs="Igqira Lappas",feet="Goetia Sabots +1"}
  187.  
  188. -- Town gear.
  189. sets.idle.Town = {main="Varuna's Staff", sub="Dark Grip",ammo="Phantom Tathlum",
  190. head="Goetia Petasos +1",neck="Uggalepih Pendant",ear1="Aptus Earring",ear2="Sorcerer's Earring",
  191. body="Goetia Coat",hands="Goetia Gloves",ring1="Snow Ring",ring2="Jelly Ring",
  192. back="Sunbeam Cape",waist="Penitent's Rope",legs="Nisse Slacks",feet="Goetia Sabots +1"}
  193.  
  194. -- Defense sets
  195.  
  196. sets.defense.PDT = {main="Terra's Staff", sub="Raptor Strap +1",ammo="Phantom Tathlum",
  197. head="Goetia Petasos +1",neck="Orochi Nodowa",ear1="Insomnia Earring",ear2="Sorcerer's Earring",
  198. body="Socerer's Coat",hands="Teal Cuffs",ring1="Snow Ring",ring2="Jelly Ring",
  199. back="Eloquence Cape",waist="Penitent's Rope",legs="Igqira Lappas",feet="Goetia Sabots +1"}
  200.  
  201. sets.defense.MDT = {main="Terra's Staff", sub="Raptor Strap +1",ammo="Phantom Tathlum",
  202. head="Goetia Petasos +1",neck="Orochi Nodowa",ear1="Insomnia Earring",ear2="Sorcerer's Earring",
  203. body="Socerer's Coat",hands="Teal Cuffs",ring1="Snow Ring",ring2="Snow Ring",
  204. back="Eloquence Cape",waist="Penitent's Rope",legs="Igqira Lappas",feet="Goetia Sabots +1"}
  205.  
  206. sets.Kiting = {feet="Herald's Gaiters"}
  207.  
  208. sets.latent_refresh = {waist="Fucho-no-obi"}
  209.  
  210. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  211.  
  212. sets.buff['Mana Wall'] = {feet="Goetia Sabots +2"}
  213.  
  214.  
  215. -- Engaged sets
  216.  
  217. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  218. -- sets if more refined versions aren't defined.
  219. -- If you create a set with both offense and defense modes, the offense mode should be first.
  220. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  221.  
  222. -- Normal melee group
  223. sets.engaged = {
  224. head="Zelus Tiara",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  225. body="Hagondes Coat",hands="Bokwus Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  226. back="Umbra Cape",waist="Goading Belt",legs="Hagondes Pants",feet="Hagondes Sabots"}
  227. end
  228.  
  229. -------------------------------------------------------------------------------------------------------------------
  230. -- Job-specific hooks that are called to process player actions at specific points in time.
  231. -------------------------------------------------------------------------------------------------------------------
  232.  
  233. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  234. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  235. function job_precast(spell, action, spellMap, eventArgs)
  236. if spellMap == 'Cure' or spellMap == 'Curaga' then
  237. gear.default.obi_waist = "Goading Belt"
  238. elseif spell.skill == 'Elemental Magic' then
  239. gear.default.obi_waist = "Searing Sash"
  240. if state.CastingMode == 'Proc' then
  241. classes.CustomClass = 'Proc'
  242. end
  243. end
  244. end
  245.  
  246.  
  247. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  248. function job_midcast(spell, action, spellMap, eventArgs)
  249. if spell.action_type == 'Magic' then
  250. if spell.skill == 'Elemental Magic' and state.CastingMode == 'Proc' then
  251. add_to_chat(15,'Proc mode, no damage gear for midcast.')
  252. eventArgs.handled = true
  253. end
  254. end
  255. end
  256.  
  257.  
  258. function job_aftercast(spell, action, spellMap, eventArgs)
  259. -- Lock feet after using Mana Wall.
  260. if not spell.interrupted and spell.english == 'Mana Wall' then
  261. enable('feet')
  262. equip(sets.buff['Mana Wall'])
  263. disable('feet')
  264. end
  265. end
  266.  
  267. -------------------------------------------------------------------------------------------------------------------
  268. -- Customization hooks for idle and melee sets, after they've been automatically constructed.
  269. -------------------------------------------------------------------------------------------------------------------
  270.  
  271. -- Custom spell mapping.
  272. function job_get_spell_map(spell, default_spell_map)
  273. if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  274. --[[ No real need to differentiate with current gear.
  275. if lowTierNukes:contains(spell.english) then
  276. return 'LowTierNuke'
  277. else
  278. return 'HighTierNuke'
  279. end
  280. --]]
  281. end
  282. end
  283.  
  284. -- Modify the default idle set after it was constructed.
  285. function customize_idle_set(idleSet)
  286. if player.mpp < 51 then
  287. idleSet = set_combine(idleSet, sets.latent_refresh)
  288. end
  289.  
  290. return idleSet
  291. end
  292.  
  293.  
  294. -------------------------------------------------------------------------------------------------------------------
  295. -- General hooks for other events.
  296. -------------------------------------------------------------------------------------------------------------------
  297.  
  298. -- Called when a player gains or loses a buff.
  299. -- buff == buff gained or lost
  300. -- gain == true if the buff was gained, false if it was lost.
  301. function job_buff_change(buff, gain)
  302. -- Unlock feet when Mana Wall buff is lost.
  303. if buff == "Mana Wall" and not gain then
  304. enable('feet')
  305. handle_equipping_gear(player.status)
  306. end
  307. end
  308.  
  309.  
  310. -------------------------------------------------------------------------------------------------------------------
  311. -- User code that supplements self-commands.
  312. -------------------------------------------------------------------------------------------------------------------
  313.  
  314. -- Handle notifications of general user state change.
  315. function job_state_change(stateField, newValue, oldValue)
  316. if stateField == 'OffenseMode' then
  317. if newValue == 'Normal' then
  318. disable('main','sub')
  319. else
  320. enable('main','sub')
  321. end
  322. elseif stateField == 'Reset' then
  323. if state.OffenseMode == 'None' then
  324. enable('main','sub')
  325. end
  326. end
  327. end
  328.  
  329.  
  330. -- Function to display the current relevant user state when doing an update.
  331. -- Return true if display was handled, and you don't want the default info shown.
  332. function display_current_job_state(eventArgs)
  333. local meleeString = ''
  334. if state.OffenseMode == 'Normal' then
  335. meleeString = 'Melee: Weapons locked, '
  336. end
  337.  
  338. local defenseString = ''
  339. if state.Defense.Active then
  340. local defMode = state.Defense.PhysicalMode
  341. if state.Defense.Type == 'Magical' then
  342. defMode = state.Defense.MagicalMode
  343. end
  344.  
  345. defenseString = 'Defense: '..state.Defense.Type..' '..defMode..', '
  346. end
  347.  
  348. add_to_chat(122,meleeString..'Casting ['..state.CastingMode..'], Idle ['..state.IdleMode..'], '..defenseString..
  349. 'Kiting: '..on_off_names[state.Kiting])
  350.  
  351. eventArgs.handled = true
  352. end
  353.  
  354. -------------------------------------------------------------------------------------------------------------------
  355. -- Utility functions specific to this job.
  356. -------------------------------------------------------------------------------------------------------------------
  357.  
  358. -- Select default macro book on initial load or subjob change.
  359. function select_default_macro_book()
  360. set_macro_page(1, 1)
  361. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement