Advertisement
Guest User

Untitled

a guest
Feb 6th, 2015
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.44 KB | None | 0 0
  1.  
  2. -------------------------------------------------------------------------------------------------------------------
  3.  
  4. -- Initialization function for this job file.
  5. function get_sets()
  6. mote_include_version = 2
  7.  
  8. -- Load and initialize the include file.
  9. include('Mote-Include.lua')
  10. end
  11.  
  12. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  13. function job_setup()
  14. state.Buff.Sentinel = buffactive.sentinel or false
  15. state.Buff.Cover = buffactive.cover or false
  16. state.Buff.Doom = buffactive.Doom or false
  17. end
  18.  
  19. -------------------------------------------------------------------------------------------------------------------
  20. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  21. -------------------------------------------------------------------------------------------------------------------
  22.  
  23. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  24. function user_setup()
  25. state.OffenseMode:options('Normal', 'Acc')
  26. state.HybridMode:options('Normal', 'PDT', 'Reraise')
  27. state.WeaponskillMode:options('Normal', 'Acc')
  28. state.CastingMode:options('Normal', 'Resistant')
  29. state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm')
  30. state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm')
  31.  
  32. state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP', 'Knockback', 'MP_Knockback'}
  33. state.EquipShield = M(false, 'Equip Shield w/Defense')
  34.  
  35. update_defense_mode()
  36.  
  37. send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  38. send_command('bind !f11 gs c cycle ExtraDefenseMode')
  39. send_command('bind @f10 gs c toggle EquipShield')
  40. send_command('bind @f11 gs c toggle EquipShield')
  41.  
  42. select_default_macro_book()
  43. end
  44.  
  45. function user_unload()
  46. send_command('unbind ^f11')
  47. send_command('unbind !f11')
  48. send_command('unbind @f10')
  49. send_command('unbind @f11')
  50. end
  51.  
  52.  
  53. -- Define sets and vars used by this job file.
  54. function init_gear_sets()
  55. --------------------------------------
  56. -- Precast sets
  57. --------------------------------------
  58.  
  59. -- Precast sets to enhance JAs
  60. sets.precast.JA['Invincible'] = {legs="Caballarius Breeches +1"}
  61. sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"}
  62. sets.precast.JA['Shield Bash'] = {hands="Caballarius Gauntlets +1",sub="Aegis"}
  63. sets.precast.JA['Sentinel'] = {feet="Caballarius Leggings +1"}
  64. sets.precast.JA['Rampart'] = {head="Caballarius Coronet +1"}
  65. sets.precast.JA['Fealty'] = {body="Caballarius Surcoat +1"}
  66. sets.precast.JA['Divine Emblem'] = {feet="Creed Sabatons +2"}
  67. sets.precast.JA['Cover'] = {head="Reverence Coronet +1"}
  68.  
  69. -- add mnd for Chivalry
  70. sets.precast.JA['Chivalry'] = {
  71. head="Reverence Coronet +1",
  72. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Leviathan Ring",ring2="Aquasoul Ring",
  73. back="Weard Mantle",legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  74.  
  75. sets.precast.JA[ 'Provoke'] = {
  76. head="Cab. Coronet +1",ear1="Trux Earring",
  77. body="Cab. Surcoat +1",hands="Rev. Gauntlets",
  78. ring1="Eihwaz Ring",ring2="Vexer Ring",
  79. back="Mubvumbamiri Mantle",waist="Goading Belt",
  80. legs="Cab. Breeches +1",feet="Cab. Leggings +1"}
  81.  
  82. -- Waltz set (chr and vit)
  83. sets.precast.Waltz = {ammo="Sonia's Plectrum",
  84. head="Reverence Coronet +1",
  85. body="Gorney Haubert +1",hands="Reverence Gauntlets +1",ring2="Asklepian Ring",
  86. back="Iximulew Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  87.  
  88. -- Don't need any special gear for Healing Waltz.
  89. sets.precast.Waltz['Healing Waltz'] = {}
  90.  
  91. sets.precast.Step = {waist="Chaac Belt"}
  92. sets.precast.Flourish1 = {waist="Chaac Belt"}
  93.  
  94. -- Fast cast sets for spells
  95.  
  96. sets.precast.FC = {ammo="Incantor Stone",
  97. head="Cizin Helm",ear2="Loquacious Earring",ring2="Prolix Ring",legs="Enif Cosciales"}
  98.  
  99. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  100.  
  101.  
  102. -- Weaponskill sets
  103. -- Default set for any weaponskill that isn't any more specifically defined
  104. sets.precast.WS = {ammo="Ginsen",
  105. head="Otomi Helm",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
  106. body="Gorney Haubert +1",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Cho'j Band",
  107. back="Atheling Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches",feet="Whirlpool Greaves"}
  108.  
  109. sets.precast.WS.Acc = {ammo="Ginsen",
  110. head="Yaoyotl Helm",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
  111. body="Gorney Haubert +1",hands="Buremte Gloves",ring1="Rajas Ring",ring2="Patricius Ring",
  112. back="Atheling Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches",feet="Whirlpool Greaves"}
  113.  
  114. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  115. sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Leviathan Ring",ring2="Aquasoul Ring"})
  116. sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {ring1="Leviathan Ring"})
  117.  
  118. sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {hands="Buremte Gloves",waist="Zoran's Belt"})
  119. sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS.Acc, {waist="Zoran's Belt"})
  120.  
  121. sets.precast.WS['Sanguine Blade'] = {ammo="Ginsen",
  122. head="Reverence Coronet +1",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
  123. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Shiva Ring",ring2="K'ayres Ring",
  124. back="Toro Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  125.  
  126. sets.precast.WS['Atonement'] = {ammo="Iron Gobbet",
  127. head="Champion's Galea",neck=gear.ElementalGorget,ear1="Creed Earring",ear2="Steelflash Earring",
  128. body="Phorcys Korazin",hands="Reverence Gauntlets +1",ring1="Rajas Ring",ring2="Vexer Ring",
  129. back="Fierabras's Mantle",waist=gear.ElementalBelt,legs="Ogier's breeches",feet="Caballarius Leggings"}
  130.  
  131. --------------------------------------
  132. -- Midcast sets
  133. --------------------------------------
  134.  
  135. sets.midcast.FastRecast = {ammo="Incantor Stone",
  136. head="Cizin Helm +1",ear1="Loquac. Earring",ring1="Prolix Ring",
  137. body="Nuevo Coselete",hands="Buremte Gloves",
  138. waist="Zoran's Belt",legs="Enif Cosciales",feet="Ejekamal Boots"}
  139.  
  140. sets.midcast.Enmity = {ammo="Paepua",
  141. head="Cab. Coronet +1",neck="Atzintli Necklace",ear1="Trux Earring",ear2="Friomisi Earring",
  142. body="Cab. Surcoat +1",hands="Reverence Gauntlets +1",ring1="Eihwaz Ring",ring2="Vexer Ring",
  143. back="Mubvumbamiri Mantle",waist="Goading Belt",legs="Cab. Breeches +1",feet="Caballarius Leggings"}
  144.  
  145. sets.midcast.Flash = set_combine(sets.midcast.Enmity, {legs="Enif Cosciales"})
  146.  
  147. sets.midcast.Stun = sets.midcast.Flash
  148.  
  149. sets.midcast.Cure = {ammo="Incantor Stone",
  150. head="Cizin Helm +1",neck="Phalaina Locket",ear1="Loquac. Earring",ear2="Trux Earring",
  151. body="Nuevo Coselete",hands="Buremte Gloves",ring1="Vocane Ring",ring2="Asklepian Ring",
  152. back="Fierabras's Mantle",waist="Chuq'aba Belt",legs="Enif Cosciales",feet="Ejekamal Boots"}
  153.  
  154. sets.midcast['Enhancing Magic'] = {neck="Colossus's Torque",waist="Olympus Sash",legs="Reverence Breeches +1"}
  155.  
  156. sets.midcast.Protect = {ring1="Sheltered Ring"}
  157. sets.midcast.Shell = {ring1="Sheltered Ring"}
  158.  
  159. --------------------------------------
  160. -- Idle/resting/defense/etc sets
  161. --------------------------------------
  162.  
  163. sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  164.  
  165. sets.resting = {neck="Creed Collar",
  166. ring1="Sheltered Ring",ring2="Paguroidea Ring",
  167. waist="Austerity Belt"}
  168.  
  169.  
  170. -- Idle sets
  171. sets.idle = {ammo="Angha Gem",
  172. head="Reverence Coronet +1",neck="Creed Collar",ear1="Colossus's Earring",ear2="Ethereal Earring",
  173. body="Cab. Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2="Vocane Ring",
  174. back="Repulse Mantle",waist="Flume Belt",legs="Cab. Breeches +1",feet="Reverence Leggings +1"}
  175.  
  176. sets.idle.Town = {main="Anahera Sword",ammo="Incantor Stone",
  177. head="Reverence Coronet +1",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring",
  178. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Sheltered Ring",ring2="Meridian Ring",
  179. back="Fierabras's Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
  180.  
  181. sets.idle.Weak = {ammo="Iron Gobbet",
  182. head="Reverence Coronet +1",neck="Creed Collar",ear1="Creed Earring",ear2="Bloodgem Earring",
  183. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Sheltered Ring",ring2="Meridian Ring",
  184. back="Fierabras's Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
  185. sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
  186.  
  187. sets.Kiting = {legs="Crimson Cuisses"}
  188.  
  189. sets.latent_refresh = {waist="Fucho-no-obi"}
  190.  
  191.  
  192. --------------------------------------
  193. -- Defense sets
  194. --------------------------------------
  195.  
  196. -- Extra defense sets. Apply these on top of melee or defense sets.
  197. sets.Knockback = {back="Repulse Mantle"}
  198. sets.MP = {neck="Creed Collar",waist="Flume Belt"}
  199. sets.MP_Knockback = {neck="Creed Collar",waist="Flume Belt",back="Repulse Mantle"}
  200.  
  201. -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
  202. -- when activating or changing defense mode:
  203. sets.PhysicalShield = {main="Anahera Sword",sub="Killedar Shield"} -- Ochain
  204. sets.MagicalShield = {main="Anahera Sword",sub="Beatific Shield +1"} -- Aegis
  205.  
  206. -- Basic defense sets.
  207.  
  208. sets.defense.PDT = {ammo="Iron Gobbet",
  209. head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Buckler Earring",
  210. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  211. back="Shadow Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  212. sets.defense.HP = {ammo="Iron Gobbet",
  213. head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  214. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2="Meridian Ring",
  215. back="Weard Mantle",waist="Creed Baudrier",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  216. sets.defense.Reraise = {ammo="Iron Gobbet",
  217. head="Twilight Helm",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  218. body="Twilight Mail",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  219. back="Weard Mantle",waist="Nierenschutz",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  220. sets.defense.Charm = {ammo="Iron Gobbet",
  221. head="Reverence Coronet +1",neck="Lavalier +1",ear1="Creed Earring",ear2="Buckler Earring",
  222. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  223. back="Shadow Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  224. -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
  225. -- Shellra V can provide 75/256, which would need another 53/256 in gear.
  226. sets.defense.MDT = {ammo="Demonry Stone",
  227. head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  228. body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2="Shadow Ring",
  229. back="Engulfer Cape",waist="Creed Baudrier",legs="Osmium Cuisses",feet="Reverence Leggings +1"}
  230.  
  231.  
  232. --------------------------------------
  233. -- Engaged sets
  234. --------------------------------------
  235.  
  236. sets.engaged = {ammo="Ginsen",
  237. head="Yaoyotl Helm",neck="Iqabi Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  238. body="Xaddi mail",hands="Buremte Gloves",ring1="Patricius Ring",ring2="Mars's Ring",
  239. back="Letalis Mantle",waist="Dynamic Belt +1",legs="Xaddi Cuisses",feet="Ejekamal boots"}
  240.  
  241. sets.engaged.Acc = {ammo="Ginsen",
  242. head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  243. body="Gorney Haubert +1",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  244. back="Weard Mantle",waist="Zoran's Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
  245.  
  246. sets.engaged.DW = {ammo="Ginsen",
  247. head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  248. body="Gorney Haubert +1",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
  249. back="Atheling Mantle",waist="Cetl Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
  250.  
  251. sets.engaged.DW.Acc = {ammo="Ginsen",
  252. head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  253. body="Gorney Haubert +1",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  254. back="Weard Mantle",waist="Zoran's Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
  255.  
  256. sets.engaged.PDT = set_combine(sets.engaged, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  257. sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  258. sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
  259. sets.engaged.Acc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
  260.  
  261. sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  262. sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  263. sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
  264. sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
  265.  
  266.  
  267. --------------------------------------
  268. -- Custom buff sets
  269. --------------------------------------
  270.  
  271. sets.buff.Doom = {ring2="Saida Ring"}
  272. sets.buff.Cover = {head="Reverence Coronet +1", body="Caballarius Surcoat"}
  273. end
  274.  
  275.  
  276. -------------------------------------------------------------------------------------------------------------------
  277. -- Job-specific hooks for standard casting events.
  278. -------------------------------------------------------------------------------------------------------------------
  279.  
  280. function job_midcast(spell, action, spellMap, eventArgs)
  281. -- If DefenseMode is active, apply that gear over midcast
  282. -- choices. Precast is allowed through for fast cast on
  283. -- spells, but we want to return to def gear before there's
  284. -- time for anything to hit us.
  285. -- Exclude Job Abilities from this restriction, as we probably want
  286. -- the enhanced effect of whatever item of gear applies to them,
  287. -- and only one item should be swapped out.
  288. if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  289. handle_equipping_gear(player.status)
  290. eventArgs.handled = true
  291. end
  292. end
  293.  
  294. -------------------------------------------------------------------------------------------------------------------
  295. -- Job-specific hooks for non-casting events.
  296. -------------------------------------------------------------------------------------------------------------------
  297.  
  298. -- Called when the player's status changes.
  299. function job_state_change(field, new_value, old_value)
  300. classes.CustomDefenseGroups:clear()
  301. classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current)
  302.  
  303. if state.EquipShield.value == true then
  304. classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield')
  305.  
  306. end
  307. classes.CustomMeleeGroups:clear()
  308. classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current)
  309. end
  310.  
  311. function get_sets()
  312. sets.phalanx.engaged = {ammo="Ginsen",
  313. head="Reverence Coronet +1",neck="Creed Collar",ear1="Colossus's Earring",ear2="Ethereal Earring",
  314. body="Cab. Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2="Vocane Ring",
  315. back="Repulse Mantle",waist="Flume Belt",legs="Cab. Breeches +1",feet="Reverence Leggings +1"}
  316. end
  317.  
  318. -- Called when a player gains or loses a buff.
  319. function buff_change(buff, gain)
  320. if gain and buff == "Phalanx" then equip(sets.Phalanx.Engaged) end
  321. if not gain and buff == "Phalanx" then equip(sets.Engaged) end
  322.  
  323. sets.enlight.engaged = {ammo="Ginsen",
  324. head="Ighwa Cap",neck="Agitator's Collar",hands="Umuthi Gloves",waist="Flume Belt",
  325. legs="Xaddi Cuisses",feet="Gorney Sollerets +1",waist="Flume Belt",ring1"Defending Ring",
  326. ring2"Patricius Ring",body="Cab.Surcoat +1",ear1="Steelflash Earring",ear2="Bladeborn Earring"}
  327. end
  328. -- Called when a player gains or loses a buff.
  329. function buff_change(buff, gain)
  330. if gain and buff == "Enlight" then equip(sets.Enlight.Engaged) end
  331. if not gain and buff == "Enlight" then equip(sets.Engaged) end
  332. end
  333.  
  334. -- Called when a player gains or loses a buff.
  335. function buff_change(buff, gain)
  336. if gain and buff == "Reprisal" then equip(sets.Reprisal) end
  337. if not gain and buff == "Reprisal" then equip(sets.Block) end
  338. end
  339.  
  340. function get_sets()
  341. sets.reprisal = {sub="Aegis"} end
  342.  
  343. function get_sets()
  344. sets.block = {sub="Ochain"} end
  345. -------------------------------------------------------------------------------------------------------------------
  346. -- User code that supplements standard library decisions.
  347. -------------------------------------------------------------------------------------------------------------------
  348.  
  349. -- Called by the 'update' self-command, for common needs.
  350. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  351. function job_update(cmdParams, eventArgs)
  352. update_defense_mode()
  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. if state.Buff.Doom then
  361. idleSet = set_combine(idleSet, sets.buff.Doom)
  362. end
  363.  
  364. return idleSet
  365. end
  366.  
  367. -- Modify the default melee set after it was constructed.
  368. function customize_melee_set(meleeSet)
  369. if state.Buff.Doom then
  370. meleeSet = set_combine(meleeSet, sets.buff.Doom)
  371. end
  372.  
  373. return meleeSet
  374. end
  375.  
  376. function customize_defense_set(defenseSet)
  377. if state.ExtraDefenseMode.value ~= 'None' then
  378. defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
  379. end
  380.  
  381. if state.EquipShield.value == true then
  382. defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
  383. end
  384.  
  385. if state.Buff.Doom then
  386. defenseSet = set_combine(defenseSet, sets.buff.Doom)
  387. end
  388.  
  389. return defenseSet
  390. end
  391.  
  392.  
  393. function display_current_job_state(eventArgs)
  394. local msg = 'Melee'
  395.  
  396. if state.CombatForm.has_value then
  397. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  398. end
  399.  
  400. msg = msg .. ': '
  401.  
  402. msg = msg .. state.OffenseMode.value
  403. if state.HybridMode.value ~= 'Normal' then
  404. msg = msg .. '/' .. state.HybridMode.value
  405. end
  406. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  407.  
  408. if state.DefenseMode.value ~= 'None' then
  409. msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  410. end
  411.  
  412. if state.ExtraDefenseMode.value ~= 'None' then
  413. msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
  414. end
  415.  
  416. if state.EquipShield.value == true then
  417. msg = msg .. ', Force Equip Shield'
  418. end
  419.  
  420. if state.Kiting.value == true then
  421. msg = msg .. ', Kiting'
  422. end
  423.  
  424. if state.PCTargetMode.value ~= 'default' then
  425. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  426. end
  427.  
  428. if state.SelectNPCTargets.value == true then
  429. msg = msg .. ', Target NPCs'
  430. end
  431.  
  432. add_to_chat(122, msg)
  433.  
  434. eventArgs.handled = true
  435. end
  436.  
  437. -------------------------------------------------------------------------------------------------------------------
  438. -- Utility functions specific to this job.
  439. -------------------------------------------------------------------------------------------------------------------
  440.  
  441. function update_defense_mode()
  442. if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  443. classes.CustomDefenseGroups:append('Kheshig Blade')
  444. end
  445.  
  446. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  447. if player.equipment.sub and not player.equipment.sub:contains('Shield') and
  448. player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  449. state.CombatForm:set('DW')
  450. else
  451. state.CombatForm:reset()
  452. end
  453. end
  454. end
  455.  
  456.  
  457. -- Select default macro book on initial load or subjob change.
  458. function select_default_macro_book()
  459. -- Default macro set/book
  460. if player.sub_job == 'DNC' then
  461. set_macro_page(5, 2)
  462. elseif player.sub_job == 'NIN' then
  463. set_macro_page(4, 2)
  464. elseif player.sub_job == 'RDM' then
  465. set_macro_page(3, 2)
  466. else
  467. set_macro_page(2, 2)
  468. end
  469. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement