midash

Wonderousgoat_PLD

Mar 5th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.13 KB | None | 0 0
  1. include('organizer-lib.lua')
  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. state.Buff.Sentinel = buffactive.sentinel or false
  18. state.Buff.Cover = buffactive.cover or false
  19. state.Buff.Doom = buffactive.Doom or false
  20. end
  21.  
  22. -------------------------------------------------------------------------------------------------------------------
  23. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  24. -------------------------------------------------------------------------------------------------------------------
  25.  
  26. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  27. function user_setup()
  28. state.OffenseMode:options('Normal', 'HiAcc', 'AdoulinAcc')
  29. state.HybridMode:options('Normal', 'PDT', 'Reraise')
  30. state.WeaponskillMode:options('Normal', 'Acc')
  31. state.CastingMode:options('Normal', 'Resistant')
  32. state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm')
  33. state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm')
  34.  
  35. state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP'}
  36. state.EquipShield = M(false, 'Equip Shield w/Defense')
  37.  
  38. update_defense_mode()
  39.  
  40. send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  41. send_command('bind !f11 gs c cycle ExtraDefenseMode')
  42. send_command('bind @f10 gs c toggle EquipShield')
  43. send_command('bind @f11 gs c toggle EquipShield')
  44.  
  45. select_default_macro_book()
  46. end
  47.  
  48. function user_unload()
  49. send_command('unbind ^f11')
  50. send_command('unbind !f11')
  51. send_command('unbind @f10')
  52. send_command('unbind @f11')
  53. end
  54.  
  55.  
  56. -- Define sets and vars used by this job file.
  57. function init_gear_sets()
  58. --------------------------------------
  59. -- Precast sets
  60. --------------------------------------
  61.  
  62. -- Precast sets to enhance JAs
  63. --sets.precast.JA['Invincible'] = {legs="Cab. Breeches +1"}
  64. --sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"}
  65. --sets.precast.JA['Shield Bash'] = {hands="Cab. Gauntlets +1"}
  66. --sets.precast.JA['Sentinel'] = {feet="Cab. Leggings"}
  67. --sets.precast.JA['Rampart'] = {head="Cab. Coronet +1"}
  68. sets.precast.JA['Fealty'] = {body="Cab. Surcoat +1"}
  69. --sets.precast.JA['Divine Emblem'] = {feet="Creed Sabatons +2"}
  70. --sets.precast.JA['Cover'] = {head="Yorium Barbuta"}
  71.  
  72. -- add mnd for Chivalry
  73. sets.precast.JA['Chivalry'] = {
  74. }
  75.  
  76.  
  77. -- Waltz set (chr and vit)
  78. sets.precast.Waltz = {}
  79.  
  80. -- Don't need any special gear for Healing Waltz.
  81. sets.precast.Waltz['Healing Waltz'] = {}
  82.  
  83. sets.precast.Step = {}
  84. sets.precast.Flourish1 = {}
  85.  
  86. -- Fast cast sets for spells
  87.  
  88. sets.precast.FC = {head="Lithelimb Cap",hands="Leyline Gloves",ear2="Loquacious Earring",ring1="Weather. Ring",ring2="Prolix Ring",
  89. body="Emet Harness +1",neck="Voltsurge Torque",back="Ground. Mantle +1",waist="Chuq'aba Belt",legs="Carmine Cuisses +1",feet="Carmine Greaves +1"}
  90.  
  91. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC)
  92.  
  93.  
  94. -- Weaponskill sets
  95. -- Default set for any weaponskill that isn't any more specifically defined
  96. sets.precast.WS = {ammo="Ginsen",
  97. head="Lithelimb Cap",neck="Fotia Gorget",ear1="Brutal Earring",ear2="Moonshade Earring",
  98. body="Emet Harness +1",hands="Leyline Gloves",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  99. back="Ground. Mantle +1",waist="Fotia Belt",legs="Souv. Diechlings +1",feet="Carmine Greaves +1"}
  100.  
  101. sets.precast.WS.Acc = {ammo="Ginsen",
  102. head="Lithelimb Cap",neck="Fotia Gorget",ear1="Zennaroi Earring",ear2="Dignitary's Earring",
  103. body="Emet Harness +1",hands="Leyline Gloves",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  104. back="Ground. Mantle +1",waist="Fotia Belt",legs="Souv. Diechlings +1",feet="Carmine Greaves +1"}
  105.  
  106. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  107. sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {
  108. head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  109. body="Founder's Breastplate",hands="Leyline Gloves",ring1="Leviathan Ring",ring2="Leviathan Ring",
  110. back="Atheling Mantle",waist="Fotia Belt",legs="Yorium Cuisses",feet="Whirlpool Greaves"})
  111. sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {neck="Agitator's Collar",waist="Olseni Belt",ring2="Patricius Ring"})
  112.  
  113. sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {
  114. ammo="Jukukik Feather",
  115. head="Lithelimb Cap",
  116. body="Emet Harness +1",hands="Leyline Gloves",
  117. ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  118. back="Ground. Mantle +1",waist="Fotia Belt",
  119. })
  120.  
  121. sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS.Acc, {})
  122.  
  123. sets.precast.WS['Sanguine Blade'] = {ammo="Ginsen",
  124. head="Yorium Barbuta",
  125. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring2="K'ayres Ring",
  126. waist="Caudata Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  127.  
  128.  
  129.  
  130. --------------------------------------
  131. -- Midcast sets
  132. --------------------------------------
  133.  
  134. sets.midcast.FastRecast = {
  135. head="Lithelimb Cap",neck="Voltsurge Torque",
  136. body="Emet Harness +1",hands="Leyline Gloves",
  137. waist="Chuq'aba Belt",legs="Carmine Cuisses +1",feet="Carmine Greaves +1"}
  138.  
  139. sets.midcast.Enmity = {
  140. head="Loess Barbuta +1",
  141. body="Cab. Surcoat +1",
  142. back="Fierabras's Mantle"}
  143.  
  144. sets.midcast.Flash = set_combine(sets.midcast.Enmity)
  145.  
  146. sets.midcast.Stun = sets.midcast.Flash
  147.  
  148.  
  149. sets.midcast['Enhancing Magic'] = {neck="Incantor's Torque"}
  150.  
  151. sets.midcast.Protect = {ring1="Sheltered Ring"}
  152. sets.midcast.Shell = {ring1="Sheltered Ring"}
  153.  
  154. --------------------------------------
  155. -- Idle/resting/defense/etc sets
  156. --------------------------------------
  157.  
  158. sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  159.  
  160. sets.resting = {}
  161.  
  162.  
  163. -- Idle sets
  164. sets.idle = {ammo="Demonry Stone",
  165. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  166. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Dark Ring",
  167. back="Solemnity Cape",waist="Flume Belt",legs="Carmine Cuisses +1",feet="Souveran Schuhs"}
  168.  
  169. sets.idle.Town = {ammo="Demonry Stone",
  170. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  171. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Dark Ring",
  172. back="Solemnity Cape",waist="Flume Belt",legs="Carmine Cuisses +1",feet="Souveran Schuhs"}
  173.  
  174. sets.idle.Weak = {ammo="Demonry Stone",
  175. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  176. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Dark Ring",
  177. back="Solemnity Cape",waist="Flume Belt",legs="Carmine Cuisses +1",feet="Souveran Schuhs"}
  178.  
  179. sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
  180.  
  181. sets.Kiting = {legs="Crimson Cuisses +1"}
  182.  
  183. sets.latent_refresh = {waist="Fucho-no-obi"}
  184.  
  185. --------------------------------------
  186. -- Items to keep in Inventory
  187. --------------------------------------
  188. organizer_items = {
  189. echos="Echo Drops",
  190. remedy="Remedy",
  191. orb="Macrocosmic Orb",
  192. sushi="Squid Sushi",
  193. sushi2="Sole Sushi",
  194. brilliance="Brilliance"
  195. }
  196.  
  197. --------------------------------------
  198. -- Defense sets
  199. --------------------------------------
  200.  
  201. -- Extra defense sets. Apply these on top of melee or defense sets.
  202. sets.MP = {neck="Creed Collar",waist="Flume Belt"}
  203.  
  204. -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
  205. -- when activating or changing defense mode:
  206. sets.PhysicalShield = {sub="Ochain"} -- Ochain
  207. sets.MagicalShield = {sub="Aegis"} -- Aegis
  208.  
  209. -- Basic defense sets.
  210.  
  211. sets.defense.PDT = {ammo="Demonry Stone",
  212. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  213. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  214. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  215.  
  216. sets.defense.HP = {ammo="Demonry Stone",
  217. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  218. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  219. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  220.  
  221. sets.defense.Reraise = {ammo="Angha Gem",
  222. head="Twilight Helm",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Ethereal Earring",
  223. body="Twilight Mail",hands="Reverence Gauntlets +1",ring1="Dark Ring",ring2="Dark Ring",
  224. back="Weard Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  225.  
  226. sets.defense.Charm = {ammo="Demonry Stone",
  227. head="Yorium Barbuta",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Ethereal Earring",
  228. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Dark Ring",ring2="Dark Ring",
  229. back="Reiki Cloak",waist="Flume Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  230.  
  231. -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
  232. -- Shellra V can provide 75/256, which would need another 53/256 in gear.
  233. sets.defense.MDT = {ammo="Demonry Stone",
  234. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  235. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  236. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  237.  
  238.  
  239. --------------------------------------
  240. -- Engaged sets
  241. --------------------------------------
  242.  
  243. sets.engaged = {ammo="Demonry Stone",
  244. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  245. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  246. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  247.  
  248. sets.engaged.HiAcc = {ammo="Demonry Stone",
  249. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  250. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  251. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  252.  
  253. sets.engaged.AdoulinAcc = {ammo="Demonry Stone",
  254. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  255. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  256. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  257.  
  258.  
  259. sets.engaged.DW = {ammo="Demonry Stone",
  260. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  261. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  262. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  263.  
  264. sets.engaged.DW.Acc = {ammo="Demonry Stone",
  265. head="Loess Barbuta +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Dignitary's Earring",
  266. body="Cab. Surcoat +1",hands="Redan Gloves",ring1="Defending Ring",ring2="Begrudging Ring",
  267. back="Solemnity Cape",waist="Kentarch Belt +1",legs="Souv. Diechlings +1",feet="Souveran Schuhs"}
  268.  
  269. sets.engaged.PDT = set_combine(sets.engaged, {})
  270. sets.engaged.HiAcc.PDT = set_combine(sets.engaged.HiAcc, {body="Reverence Surcoat +1",neck="Agitator's Collar",ring1="Dark Ring",waist="Olseni Belt"})
  271. sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
  272. sets.engaged.HiAcc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
  273.  
  274. sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +1",neck="Loricate Torque +1",ring1="Dark Ring"})
  275. sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +1",neck="Loricate Torque +1",ring1="Dark Ring"})
  276. sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
  277. sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
  278.  
  279.  
  280. --------------------------------------
  281. -- Custom buff sets
  282. --------------------------------------
  283.  
  284. sets.buff.Doom = {ring2="Saida Ring"}
  285. sets.buff.Cover = {head="Yorium Barbuta", body="Cab. Surcoat +1"}
  286. end
  287.  
  288.  
  289. -------------------------------------------------------------------------------------------------------------------
  290. -- Job-specific hooks for standard casting events.
  291. -------------------------------------------------------------------------------------------------------------------
  292.  
  293. function job_midcast(spell, action, spellMap, eventArgs)
  294. -- If DefenseMode is active, apply that gear over midcast
  295. -- choices. Precast is allowed through for fast cast on
  296. -- spells, but we want to return to def gear before there's
  297. -- time for anything to hit us.
  298. -- Exclude Job Abilities from this restriction, as we probably want
  299. -- the enhanced effect of whatever item of gear applies to them,
  300. -- and only one item should be swapped out.
  301. if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  302. handle_equipping_gear(player.status)
  303. eventArgs.handled = true
  304. end
  305. end
  306.  
  307. -------------------------------------------------------------------------------------------------------------------
  308. -- Job-specific hooks for non-casting events.
  309. -------------------------------------------------------------------------------------------------------------------
  310.  
  311. -- Called when the player's status changes.
  312. function job_state_change(field, new_value, old_value)
  313. classes.CustomDefenseGroups:clear()
  314. classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current)
  315. if state.EquipShield.value == true then
  316. classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield')
  317. end
  318.  
  319. classes.CustomMeleeGroups:clear()
  320. classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current)
  321. end
  322.  
  323. -------------------------------------------------------------------------------------------------------------------
  324. -- User code that supplements standard library decisions.
  325. -------------------------------------------------------------------------------------------------------------------
  326.  
  327. -- Called by the 'update' self-command, for common needs.
  328. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  329. function job_update(cmdParams, eventArgs)
  330. update_defense_mode()
  331. end
  332.  
  333. -- Modify the default idle set after it was constructed.
  334. function customize_idle_set(idleSet)
  335. if player.mpp < 51 then
  336. idleSet = set_combine(idleSet, sets.latent_refresh)
  337. end
  338. if state.Buff.Doom then
  339. idleSet = set_combine(idleSet, sets.buff.Doom)
  340. end
  341.  
  342. return idleSet
  343. end
  344.  
  345. -- Modify the default melee set after it was constructed.
  346. function customize_melee_set(meleeSet)
  347. if state.Buff.Doom then
  348. meleeSet = set_combine(meleeSet, sets.buff.Doom)
  349. end
  350.  
  351. return meleeSet
  352. end
  353.  
  354. function customize_defense_set(defenseSet)
  355. if state.ExtraDefenseMode.value ~= 'None' then
  356. defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
  357. end
  358.  
  359. if state.EquipShield.value == true then
  360. defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
  361. end
  362.  
  363. if state.Buff.Doom then
  364. defenseSet = set_combine(defenseSet, sets.buff.Doom)
  365. end
  366.  
  367. return defenseSet
  368. end
  369.  
  370.  
  371. function display_current_job_state(eventArgs)
  372. local msg = 'Melee'
  373.  
  374. if state.CombatForm.has_value then
  375. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  376. end
  377.  
  378. msg = msg .. ': '
  379.  
  380. msg = msg .. state.OffenseMode.value
  381. if state.HybridMode.value ~= 'Normal' then
  382. msg = msg .. '/' .. state.HybridMode.value
  383. end
  384. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  385.  
  386. if state.DefenseMode.value ~= 'None' then
  387. msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  388. end
  389.  
  390. if state.ExtraDefenseMode.value ~= 'None' then
  391. msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
  392. end
  393.  
  394. if state.EquipShield.value == true then
  395. msg = msg .. ', Force Equip Shield'
  396. end
  397.  
  398. if state.Kiting.value == true then
  399. msg = msg .. ', Kiting'
  400. end
  401.  
  402. if state.PCTargetMode.value ~= 'default' then
  403. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  404. end
  405.  
  406. if state.SelectNPCTargets.value == true then
  407. msg = msg .. ', Target NPCs'
  408. end
  409.  
  410. add_to_chat(122, msg)
  411.  
  412. eventArgs.handled = true
  413. end
  414.  
  415. -------------------------------------------------------------------------------------------------------------------
  416. -- Utility functions specific to this job.
  417. -------------------------------------------------------------------------------------------------------------------
  418.  
  419. function update_defense_mode()
  420. if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  421. classes.CustomDefenseGroups:append('Kheshig Blade')
  422. end
  423.  
  424. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  425. if player.equipment.sub and not player.equipment.sub:contains('Shield') and
  426. player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  427. state.CombatForm:set('DW')
  428. else
  429. state.CombatForm:reset()
  430. end
  431. end
  432. end
  433.  
  434.  
  435. -- Select default macro book on initial load or subjob change.
  436. function select_default_macro_book()
  437. -- Default macro set/book
  438. if player.sub_job == 'DNC' then
  439. set_macro_page(1, 14)
  440. elseif player.sub_job == 'NIN' then
  441. set_macro_page(1, 14)
  442. elseif player.sub_job == 'RDM' then
  443. set_macro_page(1, 14)
  444. else
  445. set_macro_page(1, 14)
  446. end
  447. end
Add Comment
Please, Sign In to add comment