midash

Yellowbear_BLM

Mar 5th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.65 KB | None | 0 0
  1. include('organizer-lib')
  2. -------------------------------------------------------------------------------------------------------------------
  3. -- Setup functions for this job. Generally should not be modified.
  4. -------------------------------------------------------------------------------------------------------------------
  5.  
  6. -- Initialization function for this job file.
  7. function get_sets()
  8. mote_include_version = 2
  9.  
  10. -- Load and initialize the include file.
  11. include('Mote-Include.lua')
  12. end
  13.  
  14.  
  15. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  16. function job_setup()
  17.  
  18. end
  19.  
  20. -------------------------------------------------------------------------------------------------------------------
  21. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  22. -------------------------------------------------------------------------------------------------------------------
  23.  
  24. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  25. function user_setup()
  26. state.OffenseMode:options('None', 'Normal')
  27. state.CastingMode:options('Normal', 'Resistant')
  28. state.IdleMode:options('Normal', 'PDT')
  29.  
  30. state.MagicBurst = M(false, 'Magic Burst')
  31. state.ArtifactBody = M(false, 'Use AF Body')
  32. lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  33. 'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  34. 'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  35. 'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  36. 'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  37.  
  38. gear.default.obi_waist = "Hachirin-no-obi"
  39. gear.default.obi_back = "Toro Cape"
  40. gear.default.obi_ring = "Shiva Ring"
  41. elements.obi_of = {['Light']='Hachirin-no-obi', ['Dark']='Hachirin-no-obi', ['Fire']='Hachirin-no-obi',
  42. ['Ice']='Hachirin-no-obi', ['Wind']='Hachirin-no-obi',['Earth']='Hachirin-no-obi',
  43. ['Lightning']='Hachirin-no-obi', ['Water']='Hachirin-no-obi'}
  44.  
  45. -- Additional local binds
  46. send_command('bind ^` gs c toggle ArtifactBody') -- Control ` turns AF body on and off
  47. send_command('bind !` gs c toggle MagicBurst') -- Alt ` turns magic burst set on and off
  48. send_command('bind f9 input /equip main "Lathi"; input /equip sub "Niobid Strap"; gs disable main; gs disable sub;') -- F9 Locks your staff and grip slots so you wont lose TP
  49. send_command('bind !f9 gs enable main; gs enable sub;') -- Alt F9 enables staff and grip , so other weapons/grip can swap
  50. send_command('bind f10 gs c set DefenseMode Physical') -- F10 turns PDT gear on, after spells/JAs you will return to PDT set automatically
  51. send_command('bind f11 gs c set DefenseMode Magical') -- F11 turns MDT gear on, same as above for PDT
  52. send_command('bind ^f11 gs c cycle CastingMode') -- Control F11 changes your casting mode between normal and resistant (magic accuracy)
  53. send_command('bind f12 gs c update user') -- F12 forces an update (gear changes and other file options), also displays some current info
  54. send_command('bind ^f12 gs c cycle IdleMode') -- Control F12 changes idle mode between idle and idle PDT, you shouldn't need to use this
  55. send_command('bind !f12 gs c reset DefenseMode') -- Alt F12 clears your PDT or MDT and turns you to normal idle sets
  56.  
  57. send_command('bind ^- gs c toggle selectnpctargets')
  58. send_command('bind ^= gs c cycle pctargetmode')
  59.  
  60.  
  61. select_default_macro_book()
  62. end
  63.  
  64. -- Called when this job file is unloaded (eg: job change)
  65. function user_unload()
  66. send_command('unbind ^`')
  67. send_command('unbind @`')
  68. end
  69.  
  70.  
  71. -- Define sets and vars used by this job file.
  72. function init_gear_sets()
  73. --------------------------------------
  74. -- Start defining the sets
  75. --------------------------------------
  76. organizer_items = {
  77. echos="Echo Drops",
  78. remedy="Remedy",
  79. orb="Macrocosmic Orb",
  80. Crepe="Pear Crepe",
  81. }
  82. sets.lockstyle = {head="Umuthi Hat",body="Helios Jacket",hands="Helios Gloves",legs="Hagondes Pants +1",feet="Helios Boots"}
  83.  
  84. ---- Precast Sets ----
  85.  
  86. -- Precast sets to enhance JAs
  87. sets.precast.JA['Mana Wall'] = {feet="Goetia Sabots +2"}
  88.  
  89. sets.precast.JA.Manafont = {body="Archmage's Coat"}
  90.  
  91. -- equip to maximize HP (for Tarus) and minimize MP loss before using convert
  92. sets.precast.JA.Convert = {}
  93.  
  94.  
  95. -- Fast cast sets for spells
  96.  
  97. sets.precast.FC = {ammo="Impatiens",
  98. head="Nahtirah Hat",neck="Orunmila's Torque",ear1="Etiolation Earring",ear2="Loquacious Earring",
  99. body="Vanir Cotehardie",hands="Telchine Gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
  100. back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  101.  
  102. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  103. sets.precast.FC.Stoneskin = set_combine(sets.precast.FC, {head="Umuthi Hat",waist="Siegel Sash"})
  104. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {ear2="Barkarole Earring",neck="Stoicheion Medal",legs="Merlinic Shalwar",head="Wicce Petasos +1"})
  105.  
  106. sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris", back="Pahtli Cape"})
  107.  
  108. sets.precast.FC.Curaga = sets.precast.FC.Cure
  109.  
  110. -- Weaponskill sets
  111. -- Default set for any weaponskill that isn't any more specifically defined
  112.  
  113. -- You can add gear to this set if you plan on doing any weaponskills not defined below
  114. sets.precast.WS = {}
  115.  
  116. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  117. sets.precast.WS['Vidohunir'] = {}
  118.  
  119. sets.precast.WS['Myrkr'] = {ammo="Ghastly Tathlum",
  120. head="Merlinic Hood",neck="Fotia Gorget",ear1="Influx Earring",ear2="Moonshade Earring",
  121. body="Helios Jacket",hands="Otomi Gloves",ring1="Sangoma Ring",ring2="Fenrir Ring",
  122. back="Bane Cape",waist="Fotia Belt",legs="Merlinic Shalwar",feet="Regal Pumps +1"}
  123.  
  124. ---- Midcast Sets ----
  125.  
  126. sets.midcast.FastRecast = {ammo="Impatiens",
  127. head="Nahtirah Hat",neck="Orunmila's Torque",ear2="Loquacious Earring",
  128. body="Vanir Cotehardie",hands="Telchine Gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
  129. back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  130.  
  131. sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",
  132. head="Nahtirah Hat",neck="Phalaina Locket",ear2="Loquacious Earring",
  133. body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Prolix Ring",
  134. back="Pahtli Cape",waist=gear.ElementalObi,legs="Mes'yohi Slacks",feet="Regal Pumps +1"}
  135.  
  136. sets.midcast.Curaga = sets.midcast.Cure
  137.  
  138. sets.midcast['Enhancing Magic'] = {main="Kirin's Pole",
  139. head="Umuthi Hat",ear1="Andoaa Earring",
  140. feet="Regal Pumps +1"}
  141.  
  142. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
  143.  
  144. sets.midcast['Enfeebling Magic'] = {main="Lathi",sub="Mephitis Grip",ammo="Ghastly Tathlum",
  145. head="Befouled Crown",neck="Imbodla Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  146. body="Vanya Robe",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring",
  147. back="Refraction Cape",waist="Rumination Sash",legs="Mes'yohi Slacks",feet="Medium's Sabots"}
  148.  
  149. sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  150.  
  151. sets.midcast['Dark Magic'] = {main="Lathi",sub="Mephitis Grip",ammo="Ghastly Tathlum",
  152. head="Befouled Crown",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  153. body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring",
  154. back="Bane Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  155.  
  156. sets.midcast.Drain = {main="Lathi",sub="Mephitis Grip",ammo="Ghastly Tathlum",
  157. head="Befouled Crown",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  158. body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring",
  159. back="Bane Cape",waist="Fucho-no-Obi",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  160.  
  161. sets.midcast.Aspir = sets.midcast.Drain
  162.  
  163. sets.midcast.Stun = {main="Lathi",sub="Mephitis Grip",ammo="Ghastly Tathlum",
  164. head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  165. body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring",
  166. back="Bane Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  167.  
  168.  
  169. -- Elemental Magic sets
  170.  
  171. sets.midcast['Elemental Magic'] = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum",
  172. head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  173. body="Spae. Coat +1",hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring",
  174. back="Bane Cape",waist="Yamabuki-no-Obi",legs="Merlinic Shalwar",feet="Merlinic Crackows"}
  175.  
  176. sets.midcast.Impact = {main="Lathi",sub="Mephitis Grip",ammo="Ghastly Tathlum",
  177. head=empty,neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  178. body="Twilight Cloak",hands="Helios Gloves",ring1="Shiva Ring",ring2="Shiva Ring",
  179. back="Bane Cape",waist="Yamabuki-no-obi",legs="Hagondes Pants +1",feet="Helios Boots"}
  180.  
  181. -- More magic accuracy & skill in this set
  182. sets.midcast['Elemental Magic'].Resistant = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum",
  183. head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  184. body="Witching Robe",hands="Hagondes Cuffs +1",ring1="Weather. Ring",ring2="Sangoma Ring",
  185. back="Bane Cape",waist="Eschan Stone",legs="Merlinic Shalwar",feet="Helios Boots"}
  186.  
  187. -- Not much changes here, this is for higher tier spells, you can use more INT/MAB then magic damage.
  188. sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {})
  189. sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'], {})
  190.  
  191. sets.af_body = {body="Spae. Coat +1"}
  192.  
  193. -- Sets to return to when not performing an action.
  194.  
  195. -- Resting sets
  196. sets.resting = {ammo="Clarus Stone",
  197. head=empty,
  198. body="Respite Cloak",hands="Serpentes Cuffs",ring1="Sheltered Ring",
  199. waist="Austerity Belt",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  200.  
  201.  
  202. -- Idle sets
  203.  
  204. -- Normal refresh idle set
  205. sets.idle = {main="Lathi",sub="Oneiros Grip",ammo="Ghastly Tathlum",
  206. neck="Twilight Torque",ear1="Loquacious Earring",ear2="Barkarole Earring",
  207. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Dark Ring",ring2="Dark Ring",
  208. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  209.  
  210. -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
  211. sets.idle.PDT = {ammo="Ghastly Tathlum",
  212. neck="Twilight Torque",ear1="Etiolation Earring",ear2="Barkarole Earring",
  213. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Dark Ring",ring2="Dark Ring",
  214. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  215.  
  216. -- Idle mode scopes:
  217. -- Idle mode when weak.
  218. sets.idle.Weak = {ammo="Ghastly Tathlum",
  219. neck="Twilight Torque",ear1="Etiolation Earring",ear2="Barkarole Earring",
  220. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Dark Ring",ring2="Dark Ring",
  221. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  222.  
  223. -- Town gear.
  224. sets.idle.Town = {main="Lathi",sub="Oneiros Grip",ammo="Ghastly Tathlum",
  225. neck="Twilight Torque",ear1="Etiolation Earring",ear2="Barkarole Earring",
  226. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Dark Ring",ring2="Dark Ring",
  227. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Herald's Gaiters"}
  228.  
  229. -- Defense sets
  230.  
  231. sets.defense.PDT = {
  232. head="Hagondes Hat +1",neck="Twilight Torque",ear1="Etiolation Earring",ear2="Barkarole Earring",
  233. body="Hagondes Coat +1",hands="Helios Gloves",ring1="Dark Ring",ring2="Dark Ring",
  234. back="Kumbira Cape",waist="Lieutenant's Sash",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  235.  
  236. sets.defense.MDT = {ammo="Demonry Stone",
  237. head="Hagondes Hat +1",neck="Twilight Torque",ear1="Etiolation Earring",ear2="Barkarole Earring",
  238. body="Hagondes Coat +1",hands="Helios Gloves",ring1="Dark Ring",ring2="Dark Ring",
  239. back="Kumbira Cape",waist="Lieutenant's Sash",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  240.  
  241. sets.Kiting = {feet="Herald's Gaiters"}
  242.  
  243. sets.latent_refresh = {waist="Fucho-no-obi"}
  244.  
  245. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  246.  
  247. sets.buff['Mana Wall'] = {feet="Goetia Sabots +2"}
  248.  
  249. sets.magic_burst = {main="Lathi",
  250. head="Helios Band",neck="Mizukage-no-Kubikazari",
  251. hands="Amalric Gages",ear1="Friomisi Earring",ear2="Barkarole Earring",
  252. ring1="Locus Ring",ring2="Mujin Band",
  253. feet="Helios Boots",back="Seshaw Cape"}
  254.  
  255. -- Engaged sets
  256.  
  257. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  258. -- sets if more refined versions aren't defined.
  259. -- If you create a set with both offense and defense modes, the offense mode should be first.
  260. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  261.  
  262. -- Normal melee group
  263. sets.engaged = {ammo="Ghastly Tathlum",
  264. head="Befouled Crown",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  265. body="Witching Robe",hands="Hagondes Cuffs +1",ring1="Dark Ring",ring2="Dark Ring",
  266. back="Kumbira Cape",waist="Witful Belt",legs="Assid. Pants +1",feet="Regal Pumps +1"}
  267. end
  268.  
  269. -------------------------------------------------------------------------------------------------------------------
  270. -- Job-specific hooks for standard casting events.
  271. -------------------------------------------------------------------------------------------------------------------
  272.  
  273. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  274. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  275. function job_precast(spell, action, spellMap, eventArgs)
  276.  
  277. end
  278.  
  279.  
  280. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  281. function job_midcast(spell, action, spellMap, eventArgs)
  282.  
  283. end
  284.  
  285. function job_post_midcast(spell, action, spellMap, eventArgs)
  286. if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
  287. equip(sets.magic_burst)
  288. elseif spell.skill == 'Elemental Magic' and state.ArtifactBody.value then
  289. equip(sets.af_body)
  290. end
  291. end
  292.  
  293. function job_aftercast(spell, action, spellMap, eventArgs)
  294. -- Lock feet after using Mana Wall.
  295. if not spell.interrupted then
  296. if spell.english == 'Mana Wall' then
  297. enable('feet')
  298. equip(sets.buff['Mana Wall'])
  299. disable('feet')
  300. --elseif spell.skill == 'Elemental Magic' then
  301. --state.MagicBurst:reset()
  302. end
  303. end
  304. end
  305.  
  306. -------------------------------------------------------------------------------------------------------------------
  307. -- Job-specific hooks for non-casting events.
  308. -------------------------------------------------------------------------------------------------------------------
  309.  
  310. -- Called when a player gains or loses a buff.
  311. -- buff == buff gained or lost
  312. -- gain == true if the buff was gained, false if it was lost.
  313. function job_buff_change(buff, gain)
  314. -- Unlock feet when Mana Wall buff is lost.
  315. if buff == "Mana Wall" and not gain then
  316. enable('feet')
  317. handle_equipping_gear(player.status)
  318. end
  319. end
  320.  
  321. -- Handle notifications of general user state change.
  322. function job_state_change(stateField, newValue, oldValue)
  323. --[[if stateField == 'Offense Mode' then
  324. if newValue == 'Normal' then
  325. disable('main','sub','range')
  326. else
  327. enable('main','sub','range')
  328. end
  329. end]]--
  330. end
  331.  
  332.  
  333. -------------------------------------------------------------------------------------------------------------------
  334. -- User code that supplements standard library decisions.
  335. -------------------------------------------------------------------------------------------------------------------
  336.  
  337. -- Custom spell mapping.
  338. function job_get_spell_map(spell, default_spell_map)
  339. if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  340. if lowTierNukes:contains(spell.english) then
  341. return 'LowTierNuke'
  342. else
  343. return 'HighTierNuke'
  344. end
  345. end
  346. end
  347.  
  348. -- Modify the default idle set after it was constructed.
  349. function customize_idle_set(idleSet)
  350. if player.mpp < 51 then
  351. idleSet = set_combine(idleSet, sets.latent_refresh)
  352. end
  353.  
  354. return idleSet
  355. end
  356.  
  357.  
  358. -- Function to display the current relevant user state when doing an update.
  359. function display_current_job_state(eventArgs)
  360. display_current_caster_state()
  361. eventArgs.handled = true
  362. end
  363.  
  364. -------------------------------------------------------------------------------------------------------------------
  365. -- Utility functions specific to this job.
  366. -------------------------------------------------------------------------------------------------------------------
  367.  
  368. -- Select default macro book on initial load or subjob change.
  369. function select_default_macro_book()
  370. set_macro_page(1, 3)
  371. end
Advertisement
Add Comment
Please, Sign In to add comment