midash

Curebear_GEO

Mar 5th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.66 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. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  15. function job_setup()
  16. indi_timer = ''
  17. indi_duration = 180
  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.  
  32.  
  33. gear.default.weaponskill_waist = "Fotia Belt"
  34.  
  35. -- Additional local binds
  36. send_command('bind !` gs c toggle MagicBurst') -- Alt ` turns magic burst set on and off
  37. send_command('bind f9 input /equip main "Lehbrailg +2"; input /equip sub "Willpower Grip"; gs disable main; gs disable sub;') -- F9 Locks your staff and grip slots so you wont lose TP
  38. send_command('bind !f9 gs enable main; gs enable sub;') -- Alt F9 enables staff and grip , so other weapons/grip can swap
  39. send_command('bind f10 gs c set DefenseMode Physical') -- F10 turns PDT gear on, after spells/JAs you will return to PDT set automatically
  40. send_command('bind f11 gs c set DefenseMode Magical') -- F11 turns MDT gear on, same as above for PDT
  41. send_command('bind ^f11 gs c cycle CastingMode') -- Control F11 changes your casting mode between normal and resistant (magic accuracy)
  42. send_command('bind f12 gs c update user') -- F12 forces an update (gear changes and other file options), also displays some current info
  43. 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
  44. send_command('bind !f12 gs c reset DefenseMode') -- Alt F12 clears your PDT or MDT and turns you to normal idle sets
  45.  
  46. send_command('bind ^- gs c toggle selectnpctargets')
  47. send_command('bind ^= gs c cycle pctargetmode')
  48.  
  49.  
  50. select_default_macro_book()
  51.  
  52. end
  53.  
  54.  
  55. -- Define sets and vars used by this job file.
  56. function init_gear_sets()
  57.  
  58. --------------------------------------
  59. -- Precast sets
  60. --------------------------------------
  61.  
  62. organizer_items = {
  63. echos="Echo Drops",
  64. remedy="Remedy",
  65. orb="Macrocosmic Orb",
  66. Crepe="Pear Crepe",
  67. }
  68.  
  69. -- Precast sets to enhance JAs
  70. sets.precast.JA.Bolster = {body="Bagua Tunic"}
  71. sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +1"}
  72. sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +1"}
  73.  
  74. -- Fast cast sets for spells
  75.  
  76. sets.precast.FC = {ammo="Impatiens",
  77. head="Nahtirah Hat",ear1="Etiolation Earring",ear2="Loquacious Earring",neck="Orunmila's Torque",
  78. body="Vanir Cotehardie",ring1="Prolix Ring",ring2="Weatherspoon Ring",
  79. back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  80.  
  81. sets.precast.FC.Cure = set_combine(sets.precast.FC, {main="Tamaxchi",sub="Genbu's Shield",back="Pahtli Cape"})
  82.  
  83. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC,{ear1="Barkarole Earring",neck="Stoicheion Medal"})
  84.  
  85.  
  86. -- Weaponskill sets
  87. -- Default set for any weaponskill that isn't any more specifically defined
  88. sets.precast.WS = {
  89. head="Nahtirah Hat",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  90. body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  91. back="Refraction Cape",waist=gear.ElementalBelt,legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  92.  
  93. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  94. sets.precast.WS['Flash Nova'] = {ammo="Ghastly Tathlum +1",
  95. head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  96. body="Hagondes Coat +1",hands="Yaoyotl Gloves",ring1="Acumen Ring",ring2="Strendu Ring",
  97. back="Toro Cape",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  98.  
  99. sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
  100.  
  101. sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
  102.  
  103.  
  104. --------------------------------------
  105. -- Midcast sets
  106. --------------------------------------
  107.  
  108. -- Base fast recast for spells
  109. sets.midcast.FastRecast = {ammo="Impatiens",
  110. head="Nahtirah Hat",neck="Orunmila's Torque",ear2="Loquacious Earring",
  111. body="Vanir Cotehardie",hands="Telchine Gloves",ring1="Prolix Ring",ring2="Weatherspoon Ring",
  112. back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet="Regal Pumps +1"}
  113.  
  114. sets.midcast.Geomancy = {main="Solstice",sub="Genbu's Shield",Head="Azimuth Hood +1",range="Dunna", hands="Geomancy Mitaines",back="Lifestream Cape",feet="Medium's Sabots"}
  115. sets.midcast.Geomancy.Indi = {main="Solstice",sub="Genbu's Shield",head="Azimuth Hood +1",range="Dunna",legs="Bagua Pants",back="Lifestream Cape",hands="Geomancy Mitaines",feet="Medium's Sabots"}
  116.  
  117. sets.midcast['Elemental Magic'] = {main="Solstice",sub="Genbu's Shield",ammo="Ghastly Tathlum +1",
  118. head="Welkin Crown",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  119. body="Witching Robe",hands="Amalric Gages",ring1="Shiva Ring",ring2="Shiva Ring",
  120. back="Toro Cape",waist="Yamabuki-no-Obi",legs="Hagondes Pants +1",feet="Helios Boots"}
  121.  
  122. sets.midcast['Elemental Magic'].Resistant = {main="Solstice",sub="Genbu's Shield",ammo="Ghastly Tathlum +1",
  123. head="Helios Band",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Barkarole Earring",
  124. body="Witching Robe",hands="Hagondes Cuffs +1",ring1="Shiva Ring",ring2="Shiva Ring",
  125. back="Toro Cape",waist="Eschan Stone",legs="Hagondes Pants +1",feet="Helios Boots"}
  126.  
  127. sets.midcast['Enfeebling Magic'] = {main="Solstice",sub="Genbu's Shield",ammo="Ghastly Tathlum +1",
  128. head="Befouled Crown",neck="Imbodla Necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  129. body="Vanya Robe",hands="Hagondes Cuffs +1",ring1="Sangoma Ring",ring2="Weather. Ring",
  130. back="Refraction Cape",waist="Eschan Stone",legs="Psycloth Lappas",feet="Uk'uxkaj Boots"}
  131.  
  132. sets.midcast.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Oreiad's Tathlum",
  133. head="Nahtirah Hat",neck="Weike Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  134. body="Vanir Cotehardie",hands="Hagondes Cuffs +1",ring1="Strendu Ring",ring2="Sangoma Ring",
  135. back="Swith Cape +1",waist="Goading Belt",legs="Psycloth Lappas",feet="Artsieq Boots"}
  136.  
  137. sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Lehbrailg +2"})
  138.  
  139.  
  140. sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",
  141. body="Heka's Kalasiris",hands="Bokwus Gloves",ring1="Ephedra Ring",ring2="Sirona's Ring",
  142. back="Swith Cape +1",legs="Assiduity Pants +1",feet="Medium's Sabots"}
  143.  
  144. sets.midcast.Curaga = sets.midcast.Cure
  145.  
  146. sets.midcast.Protectra = {ring1="Sheltered Ring"}
  147.  
  148. sets.midcast.Shellra = {ring1="Sheltered Ring"}
  149.  
  150.  
  151. --------------------------------------
  152. -- Idle/resting/defense/etc sets
  153. --------------------------------------
  154.  
  155. -- Resting sets
  156. sets.resting = {main="Bolelabunga",sub="Genbu's Shield",head=empty,neck="Bathy Choker",
  157. body="Respite Cloak",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  158. waist="Fucho-no-obi",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  159.  
  160.  
  161. -- Idle sets
  162.  
  163. sets.idle = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  164. neck="Bathy Choker",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  165. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  166. back="Lifestream Cape",waist="Fucho-no-obi",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  167.  
  168. sets.idle.PDT = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  169. neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  170. head='Befouled Crown',body="Witching Robe",hands="Helios Gloves",ring1="Dark Ring",ring2="Dark Ring",
  171. back="Repulse Mantle",waist="Goading Belt",legs="Helios Spats",feet="Helios Boots"}
  172.  
  173. -- .Pet sets are for when Luopan is present.
  174. sets.idle.Pet = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  175. neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  176. head='Befouled Crown',body="Witching Robe",hands="Geomancy Mitaines",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  177. back="Lifestream Cape",waist="Isa Belt",legs="Ngen Seraweels",feet="Serpentes Sabots"}
  178.  
  179. sets.idle.PDT.Pet = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  180. neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  181. head='Befouled Crown',body="Witching Robe",hands="Geomancy Mitaines",ring1="Dark Ring",ring2="Paguroidea Ring",
  182. back="Repulse Mantle",waist="Isa Belt",legs="Ngen Seraweels",feet="Serpentes Sabots"}
  183.  
  184. -- .Indi sets are for when an Indi-spell is active.
  185. sets.idle.Indi = set_combine(sets.idle, {legs="Bagua Pants"})
  186. sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {legs="Bagua Pants"})
  187. sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {legs="Bagua Pants"})
  188. sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {legs="Bagua Pants"})
  189.  
  190. sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  191. neck="Orunmila's Torque",ear1="Friomisi Earring",ear2="Crematio Earring",
  192. head='Befouled Crown',body="Witching Robe",hands="Helios Gloves",ring1="Fenrir Ring",ring2="Shiva Ring",
  193. back="Lifestream Cape",waist="Goading Belt",legs="Assiduity Pants +1",feet="Herald's Gaiters"}
  194.  
  195. sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
  196. neck="Bathy Choker",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  197. head='Befouled Crown',body="Witching Robe",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  198. back="Repulse Mantle",waist="Goading Belt",legs="Assiduity Pants +1",feet="Serpentes Sabots"}
  199.  
  200. -- Defense sets
  201.  
  202. sets.defense.PDT = {range="Dunna",
  203. head="Helios Band",neck="Bathy Choker",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  204. body="Hagondes Coat +1",hands="Yaoyotl Gloves",ring1="Dark Ring",ring2="Dark Ring",
  205. back="Repulse Mantle",waist="Goading Belt",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  206.  
  207. sets.defense.MDT = {range="Dunna",
  208. head="Helios Band",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
  209. body="Helios Jacket",hands="Yaoyotl Gloves",ring1="Dark Ring",ring2="Dark Ring",
  210. back="Repulse Mantle",waist="Goading Belt",legs="Helios Spats",feet="Helios Boots"}
  211.  
  212. sets.Kiting = {feet="Herald's Gaiters"}
  213.  
  214. sets.latent_refresh = {waist="Fucho-no-obi"}
  215.  
  216. sets.magic_burst = {main="Lehbrailg +2",sub="Willpower Grip",
  217. head="Helios Band",neck="Mizukage-no-Kubikazari",
  218. body="Witching Robe",hands="Amalric Gages",
  219. ring1="Locus Ring",ring2="Mujin Band",
  220. feet="Helios Boots",back="Seshaw Cape"}
  221.  
  222.  
  223.  
  224. --------------------------------------
  225. -- Engaged sets
  226. --------------------------------------
  227.  
  228. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  229. -- sets if more refined versions aren't defined.
  230. -- If you create a set with both offense and defense modes, the offense mode should be first.
  231. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  232.  
  233. -- Normal melee group
  234. sets.engaged = {range="Dunna",
  235. head="Nahtirah Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  236. body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Rajas Ring",ring2="Patricius Ring",
  237. back="Repulse Mantle",waist="Goading Belt",legs="Hagondes Pants +1",feet="Hagondes Sabots"}
  238.  
  239. --------------------------------------
  240. -- Custom buff sets
  241. --------------------------------------
  242.  
  243. end
  244.  
  245. -------------------------------------------------------------------------------------------------------------------
  246. -- Job-specific hooks for standard casting events.
  247. -------------------------------------------------------------------------------------------------------------------
  248.  
  249. function job_aftercast(spell, action, spellMap, eventArgs)
  250. if not spell.interrupted then
  251. if spell.english:startswith('Indi') then
  252. if not classes.CustomIdleGroups:contains('Indi') then
  253. classes.CustomIdleGroups:append('Indi')
  254. end
  255. send_command('@timers d "'..indi_timer..'"')
  256. indi_timer = spell.english
  257. send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  258. elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  259. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  260. elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  261. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  262. end
  263. elseif not player.indi then
  264. classes.CustomIdleGroups:clear()
  265. end
  266. end
  267.  
  268.  
  269. -------------------------------------------------------------------------------------------------------------------
  270. -- Job-specific hooks for non-casting events.
  271. -------------------------------------------------------------------------------------------------------------------
  272.  
  273. -- Called when a player gains or loses a buff.
  274. -- buff == buff gained or lost
  275. -- gain == true if the buff was gained, false if it was lost.
  276. function job_buff_change(buff, gain)
  277. if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  278. classes.CustomIdleGroups:append('Indi')
  279. handle_equipping_gear(player.status)
  280. elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  281. classes.CustomIdleGroups:clear()
  282. handle_equipping_gear(player.status)
  283. end
  284. end
  285.  
  286. function job_state_change(stateField, newValue, oldValue)
  287. if stateField == 'Offense Mode' then
  288. if newValue == 'Normal' then
  289. disable('main','sub','range')
  290. else
  291. enable('main','sub','range')
  292. end
  293. end
  294. end
  295.  
  296. -------------------------------------------------------------------------------------------------------------------
  297. -- User code that supplements standard library decisions.
  298. -------------------------------------------------------------------------------------------------------------------
  299.  
  300. function job_get_spell_map(spell, default_spell_map)
  301. if spell.action_type == 'Magic' then
  302. if spell.skill == 'Enfeebling Magic' then
  303. if spell.type == 'WhiteMagic' then
  304. return 'MndEnfeebles'
  305. else
  306. return 'IntEnfeebles'
  307. end
  308. elseif spell.skill == 'Geomancy' then
  309. if spell.english:startswith('Indi') then
  310. return 'Indi'
  311. end
  312. end
  313. end
  314. end
  315.  
  316. function customize_idle_set(idleSet)
  317. if player.mpp < 51 then
  318. idleSet = set_combine(idleSet, sets.latent_refresh)
  319. end
  320. return idleSet
  321. end
  322.  
  323. -- Called by the 'update' self-command.
  324. function job_update(cmdParams, eventArgs)
  325. classes.CustomIdleGroups:clear()
  326. if player.indi then
  327. classes.CustomIdleGroups:append('Indi')
  328. end
  329. end
  330.  
  331. -- Function to display the current relevant user state when doing an update.
  332. function display_current_job_state(eventArgs)
  333. display_current_caster_state()
  334. eventArgs.handled = true
  335. end
  336.  
  337. -------------------------------------------------------------------------------------------------------------------
  338. -- Utility functions specific to this job.
  339. -------------------------------------------------------------------------------------------------------------------
  340.  
  341. -- Select default macro book on initial load or subjob change.
  342. function select_default_macro_book()
  343. set_macro_page(1, 18)
  344. end
Advertisement
Add Comment
Please, Sign In to add comment