Advertisement
Guest User

BLM

a guest
Dec 17th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.11 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 +1"
  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 +1",
  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 +1",
  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.  
  145. sets.midcast['Enfeebling Magic'] = {main="Lathi",sub="Mephitis Grip",ammo="Ghastly Tathlum +1",
  146. head="Befouled Crown",neck="Imbodla Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  147. body="Vanya Robe",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  148. back="Refraction Cape",waist="Rumination Sash",legs="Mes'yohi Slacks",feet="Medium's Sabots"}
  149.  
  150. sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  151.  
  152. sets.midcast['Dark Magic'] = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  153. head="Befouled Crown",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  154. body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  155. back="Bane Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  156.  
  157. sets.midcast.Drain = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  158. head="Befouled Crown",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  159. body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  160. back="Bane Cape",waist="Fucho-no-Obi",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  161.  
  162. sets.midcast.Aspir = sets.midcast.Drain
  163.  
  164. sets.midcast.Stun = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  165. head="Nahtirah Hat",neck="Eddy Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  166. body="Wretched Coat",hands="Lurid Mitts",ring1="Sangoma Ring",ring2="Fenrir Ring +1",
  167. back="Bane Cape",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  168.  
  169.  
  170. -- Elemental Magic sets
  171.  
  172. sets.midcast['Elemental Magic'] = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  173. head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  174. body="Merlinic Jubbah",hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring +1",
  175. back="Bane Cape",waist="Yamabuki-no-Obi",legs="Merlinic Shalwar",feet="Amalric Nails"}
  176.  
  177. sets.midcast.Death = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  178. head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  179. body="Merlinic Jubbah",hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring +1",
  180. back="Bane Cape",waist="Yamabuki-no-Obi",legs="Merlinic Shalwar",feet="Amalric Nails"}
  181.  
  182. sets.midcast.Impact = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  183. head='empty',neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  184. body="Twilight Cloak",hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring +1",
  185. back="Bane Cape",waist="Yamabuki-no-Obi",legs="Merlinic Shalwar",feet="Amalric Nails"}
  186.  
  187. -- More magic accuracy & skill in this set
  188. sets.midcast['Elemental Magic'].Resistant = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  189. head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  190. body="Merlinic Jubbah",hands="Amalric Gages",ring1="Weather. Ring",ring2="Sangoma Ring",
  191. back="Bane Cape",waist="Eschan Stone",legs="Merlinic Shalwar",feet="Amalric Nails"}
  192.  
  193. -- Not much changes here, this is for higher tier spells, you can use more INT/MAB then magic damage.
  194. sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {})
  195. sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'], {})
  196.  
  197. sets.af_body = {body="Spae. Coat +1"}
  198.  
  199. -- Sets to return to when not performing an action.
  200.  
  201. -- Resting sets
  202. sets.resting = {ammo="Clarus Stone",
  203. head=empty,
  204. body="Respite Cloak",hands="Serpentes Cuffs",ring1="Sheltered Ring",
  205. waist="Austerity Belt",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  206.  
  207.  
  208. -- Idle sets
  209.  
  210. -- Normal refresh idle set
  211. sets.idle = {main="Lathi",sub="Oneiros Grip",ammo="Ghastly Tathlum +1",
  212. neck="Loricate Torque +1",ear1="Loquacious Earring",ear2="Barkarole Earring",
  213. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",
  214. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  215.  
  216. -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
  217. sets.idle.PDT = {ammo="Ghastly Tathlum +1",
  218. neck="Loricate Torque +1",ear1="Etiolation Earring",ear2="Sanare Earring",
  219. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Dark Ring",ring2="Dark Ring",
  220. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Serpentes Sabots"}
  221.  
  222. -- Idle mode scopes:
  223. -- Idle mode when weak.
  224. sets.idle.Weak = {ammo="Ghastly Tathlum +1",
  225. neck="Loricate Torque +1",ear1="Etiolation Earring",ear2="Sanare 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="Serpentes Sabots"}
  228.  
  229. -- Town gear.
  230. sets.idle.Town = {main="Lathi",sub="Oneiros Grip",ammo="Ghastly Tathlum +1",
  231. neck="Loricate Torque +1",ear1="Etiolation Earring",ear2="Sanare Earring",
  232. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Dark Ring",ring2="Dark Ring",
  233. back="Kumbira Cape",waist="Fucho-no-Obi",legs="Assid. Pants +1",feet="Herald's Gaiters"}
  234.  
  235. -- Defense sets
  236.  
  237. sets.defense.PDT = {
  238. head="Befouled Crown",neck="Loricate Torque +1",ear1="Etiolation Earring",ear2="Sanare Earring",
  239. body="Hagondes Coat +1",hands="Hagondes Cuffs +1",ring1="Dark Ring",ring2="Dark Ring",
  240. back="Kumbira Cape",waist="Lieutenant's Sash",legs="Assid. Pants +1",feet="Hagondes Sabots"}
  241.  
  242. sets.defense.MDT = {ammo="Demonry Stone",
  243. head="Befouled Crown",neck="Loricate Torque +1",ear1="Etiolation Earring",ear2="Sanare Earring",
  244. body="Hagondes Coat +1",hands="Hagondes Cuffs +1",ring1="Dark Ring",ring2="Dark Ring",
  245. back="Kumbira Cape",waist="Lieutenant's Sash",legs="Assid. Pants +1",feet="Hagondes Sabots"}
  246.  
  247. sets.Kiting = {feet="Herald's Gaiters"}
  248.  
  249. sets.latent_refresh = {waist="Fucho-no-obi"}
  250.  
  251. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  252.  
  253. sets.buff['Mana Wall'] = {feet="Goetia Sabots +2"}
  254.  
  255. sets.magic_burst = {main="Lathi",
  256. head="Helios Band",neck="Mizukage-no-Kubikazari",
  257. body="Merlinic Jubbah",hands="Amalric Gages",ear1="Friomisi Earring",ear2="Barkarole Earring",
  258. ring1="Locus Ring",ring2="Mujin Band",
  259. feet="Helios Boots",back="Seshaw Cape"}
  260.  
  261. -- Engaged sets
  262.  
  263. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  264. -- sets if more refined versions aren't defined.
  265. -- If you create a set with both offense and defense modes, the offense mode should be first.
  266. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  267.  
  268. -- Normal melee group
  269. sets.engaged = {main="Lathi",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  270. head="Merlinic Hood",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  271. body="Merlinic Jubbah",hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring +1",
  272. back="Bane Cape",waist="Yamabuki-no-Obi",legs="Merlinic Shalwar",feet="Amalric Nails"}
  273. end
  274.  
  275. -------------------------------------------------------------------------------------------------------------------
  276. -- Job-specific hooks for standard casting events.
  277. -------------------------------------------------------------------------------------------------------------------
  278.  
  279. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  280. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  281. function job_precast(spell, action, spellMap, eventArgs)
  282.  
  283. end
  284.  
  285.  
  286. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  287. function job_midcast(spell, action, spellMap, eventArgs)
  288.  
  289. end
  290.  
  291. function job_post_midcast(spell, action, spellMap, eventArgs)
  292. if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
  293. equip(sets.magic_burst)
  294. elseif spell.skill == 'Elemental Magic' and state.ArtifactBody.value then
  295. equip(sets.af_body)
  296. end
  297. end
  298.  
  299. function job_aftercast(spell, action, spellMap, eventArgs)
  300. -- Lock feet after using Mana Wall.
  301. if not spell.interrupted then
  302. if spell.english == 'Mana Wall' then
  303. enable('feet')
  304. equip(sets.buff['Mana Wall'])
  305. disable('feet')
  306. --elseif spell.skill == 'Elemental Magic' then
  307. --state.MagicBurst:reset()
  308. end
  309. end
  310. end
  311.  
  312.  
  313. -------------------------------------------------------------------------------------------------------------------
  314. -- Job-specific hooks for non-casting events.
  315. -------------------------------------------------------------------------------------------------------------------
  316.  
  317. -- Called when a player gains or loses a buff.
  318. -- buff == buff gained or lost
  319. -- gain == true if the buff was gained, false if it was lost.
  320. function job_buff_change(buff, gain)
  321. -- Unlock feet when Mana Wall buff is lost.
  322. if buff == "Mana Wall" and not gain then
  323. enable('feet')
  324. handle_equipping_gear(player.status)
  325. end
  326. end
  327.  
  328. -- Handle notifications of general user state change.
  329. function job_state_change(stateField, newValue, oldValue)
  330. --[[if stateField == 'Offense Mode' then
  331. if newValue == 'Normal' then
  332. disable('main','sub','range')
  333. else
  334. enable('main','sub','range')
  335. end
  336. end]]--
  337. end
  338.  
  339.  
  340. -------------------------------------------------------------------------------------------------------------------
  341. -- User code that supplements standard library decisions.
  342. -------------------------------------------------------------------------------------------------------------------
  343.  
  344. -- Custom spell mapping.
  345. function job_get_spell_map(spell, default_spell_map)
  346. if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  347. if lowTierNukes:contains(spell.english) then
  348. return 'LowTierNuke'
  349. else
  350. return 'HighTierNuke'
  351. end
  352. end
  353. end
  354.  
  355. -- Modify the default idle set after it was constructed.
  356. function customize_idle_set(idleSet)
  357. if player.mpp < 51 then
  358. idleSet = set_combine(idleSet, sets.latent_refresh)
  359. end
  360.  
  361. return idleSet
  362. end
  363.  
  364.  
  365. -- Function to display the current relevant user state when doing an update.
  366. function display_current_job_state(eventArgs)
  367. display_current_caster_state()
  368. eventArgs.handled = true
  369. end
  370.  
  371. -------------------------------------------------------------------------------------------------------------------
  372. -- Utility functions specific to this job.
  373. -------------------------------------------------------------------------------------------------------------------
  374.  
  375. -- Select default macro book on initial load or subjob change.
  376. function select_default_macro_book()
  377. set_macro_page(1, 3)
  378. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement