bongarippa

EvdaPLD

May 10th, 2025
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.44 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7. mote_include_version = 2
  8.  
  9. -- Load and initialize the include file.
  10. include('Mote-Include.lua')
  11. end
  12.  
  13. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  14. function job_setup()
  15. no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
  16. "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
  17.  
  18. state.Buff.Sentinel = buffactive.sentinel or false
  19. state.Buff.Cover = buffactive.cover or false
  20. state.Buff.Doom = buffactive.Doom or false
  21. end
  22.  
  23. -------------------------------------------------------------------------------------------------------------------
  24. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  25. -------------------------------------------------------------------------------------------------------------------
  26.  
  27. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  28. function user_setup()
  29. state.OffenseMode:options('Normal', 'Acc', 'Mid', 'Duo', 'AmDuo')
  30. state.HybridMode:options('Normal', 'PDT', 'Reraise')
  31. state.IdleMode:options('Normal','DT', 'RefreshDT','Turtle') --Normal
  32. state.WeaponskillMode:options('Normal', 'Acc')
  33. state.CastingMode:options('Normal', 'Resistant')
  34. state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm')
  35. state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm')
  36.  
  37. state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP', 'Knockback', 'MP_Knockback'}
  38. state.EquipShield = M(true, 'Equip Shield w/Defense')
  39.  
  40. update_defense_mode()
  41.  
  42. send_command('lua l gearinfo')
  43.  
  44. state.Auto_Kite = M(false, 'Auto_Kite')
  45. moving = false
  46.  
  47. send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  48. send_command('bind !f11 gs c cycle ExtraDefenseMode')
  49. send_command('bind @f10 gs c toggle EquipShield')
  50. send_command('bind @f11 gs c toggle EquipShield')
  51.  
  52. select_default_macro_book()
  53. end
  54.  
  55. function user_unload()
  56. send_command('lua u gearinfo')
  57. send_command('unbind ^f11')
  58. send_command('unbind !f11')
  59. send_command('unbind @f10')
  60. send_command('unbind @f11')
  61. end
  62.  
  63.  
  64. -- Define sets and vars used by this job file.
  65. function init_gear_sets()
  66. --------------------------------------
  67. -- Precast sets
  68. --------------------------------------
  69.  
  70. -- Precast sets to enhance JAs
  71. sets.precast.Enmity = {ammo="Sapience Orb",
  72. head="Souv. Schaller +1",
  73. body="Souv. Cuirass +1",
  74. hands="Eschite Gauntlets",
  75. legs="Cab. Breeches +3",
  76. feet="Chev. Sabatons +3",
  77. neck="Moonlight Necklace",
  78. waist="Null Belt",
  79. left_ear="Cryptic Earring",
  80. right_ear="Friomisi Earring",
  81. left_ring="Eihwaz Ring",
  82. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  83. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  84.  
  85. sets.precast.JA['Invincible'] = set_combine(sets.precast.Enmity, {legs="Caballarius Breeches +2"})
  86.  
  87. sets.precast.JA['Holy Circle'] = set_combine(sets.precast.Enmity, {feet="Rev. Leggings +2"})
  88.  
  89. sets.precast.JA['Shield Bash'] = set_combine(sets.precast.Enmity, {hands="Cab. Gauntlets +3"})
  90.  
  91. sets.precast.JA['Sentinel'] = set_combine(sets.precast.Enmity, {feet="Cab. Leggings +3"})
  92.  
  93. sets.precast.JA['Rampart'] = set_combine(sets.precast.Enmity, {head="Cab. Coronet +3"})
  94.  
  95. sets.precast.JA['Fealty'] = set_combine(sets.precast.Enmity, {body="Cab. Surcoat +3"})
  96.  
  97. sets.precast.JA['Divine Emblem'] = {feet="Chev. Sabatons +3"}
  98. sets.precast.JA['Cover'] = {head="Reverence Coronet +2"}
  99.  
  100. sets.precast.JA['Provoke'] = set_combine(sets.precast.Enmity, {})
  101.  
  102.  
  103. -- add mnd for Chivalry
  104. sets.precast.JA['Chivalry'] = {
  105. head="Caballarius Coronet +3",
  106. body="Caballarius Surcoat +3",
  107. hands={ name="Cab. Gauntlets +3", augments={'Enhances "Chivalry" effect',}},
  108. --ring1="Tjukurrpa Annulet",
  109. ring2="Metamor. Ring +1", augments={'Path: A',},
  110. --back="Xucau Mantle",
  111. ring1="Stikini Ring",
  112. legs="Caballarius Breeches +3",
  113. feet="Caballarius Leggings +3"
  114. }
  115.  
  116.  
  117. -- Waltz set (chr and vit)
  118. sets.precast.Waltz = {
  119. --ammo="Sonia's Plectrum",
  120. head="Reverence Coronet +1",
  121. --body="Gorney Haubert +1",hands="Reverence Gauntlets +1",ring2="Asklepian Ring",
  122. --back="Iximulew Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Whirlpool Greaves"
  123. }
  124.  
  125. -- Don't need any special gear for Healing Waltz.
  126. sets.precast.Waltz['Healing Waltz'] = {}
  127.  
  128. sets.precast.Step = {waist="Chaac Belt"}
  129. sets.precast.Flourish1 = {waist="Chaac Belt"}
  130.  
  131. -- Fast cast sets for spells
  132.  
  133. sets.precast.FC = {
  134. ammo="Sapience Orb",
  135. head="Sakpata's Helm",
  136. body="Rev. Surcoat +3",
  137. hands="Leyline Gloves",
  138. legs="Sakpata's Cuisses",
  139. feet="Chev. Sabatons +3",
  140. neck="Voltsurge Torque",
  141. waist="Plat. Mog. Belt",
  142. left_ear="Odnowa Earring +1",
  143. right_ear="Loquac. Earring",
  144. left_ring="Kishar Ring",
  145. right_ring="Medada's Ring",
  146. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}}}
  147.  
  148. sets.precast.FC.Flash = {ammo="Staunch Tathlum +1",
  149. head="Souv. Schaller +1",
  150. body="Rev. Surcoat +3",
  151. hands="Eschite Gauntlets",
  152. legs="Cab. Breeches +3",
  153. feet="Eschite Greaves",
  154. neck="Moonlight Necklace",
  155. waist="Audumbla Sash",
  156. left_ear="Odnowa Earring +1",
  157. right_ear="Cryptic Earring",
  158. left_ring="Eihwaz Ring",
  159. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  160. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  161.  
  162. --sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  163.  
  164. -- Weaponskill sets
  165. -- Default set for any weaponskill that isn't any more specifically defined
  166. sets.precast.WS = {
  167. ammo="Oshasha's Treatise",
  168. head="Nyame Helm",
  169. body="Nyame Mail",
  170. hands="Nyame Gauntlets",
  171. legs="Nyame Flanchard",
  172. feet="Nyame Sollerets",
  173. neck="Rep. Plat. Medal",
  174. waist="Sailfi Belt +1",
  175. left_ear="Moonshade Earring",
  176. right_ear="Ishvara Earring",
  177. left_ring="Epaminondas's Ring",
  178. right_ring="Sroda Ring",
  179. back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Chance of successful block +5',}}}
  180.  
  181. sets.precast.WS.Acc = {}
  182.  
  183. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  184. --sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Leviathan Ring",ring2="Aquasoul Ring"})
  185. --sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {ring1="Leviathan Ring"})
  186.  
  187. sets.precast.WS['Knights of Round'] = set_combine(sets.precast.WS, {})
  188.  
  189. sets.precast.WS['Swift Blade'] = set_combine(sets.precast.WS, {})
  190.  
  191. sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {})
  192.  
  193. sets.precast.WS['Hexa Strike'] = sets.precast.WS['Chant du Cygne']
  194.  
  195. sets.precast.WS['Judgment'] = set_combine(sets.precast.WS, {})
  196.  
  197. sets.precast.WS['Black Halo'] = set_combine(sets.precast.WS, {})
  198.  
  199. sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {})
  200.  
  201. sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {
  202. })
  203.  
  204. sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {})
  205.  
  206. sets.precast.WS['Impulse Drive'] = set_combine(sets.precast.WS, {})
  207.  
  208. sets.precast.WS['Impulse Drive'].mid = set_combine(sets.precast.WS, {})
  209.  
  210. sets.precast.WS['Atonement'] = {
  211. ammo="Iron Gobbet",
  212. head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  213. body={ name="Souveran Cuirass", augments={'HP+80','Enmity+7','Potency of "Cure" effect received +10%',}},
  214. hands={ name="Cab. Gauntlets +3", augments={'Enhances "Chivalry" effect',}},
  215. legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  216. feet={ name="Souveran Schuhs +1", augments={'HP+65','Attack+25','Magic dmg. taken -4',}},
  217. neck={ name="Kgt. Beads +1", augments={'Path: A',}},
  218. waist="Creed Baudrier",
  219. left_ear="Cryptic Earring",
  220. right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  221. left_ring="Eihwaz Ring",
  222. right_ring="Supershear Ring",
  223. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Damage taken-5%',}},
  224. }
  225.  
  226.  
  227. sets.precast.WS['Aeolian Edge'] = set_combine(sets.precast.WS, {})
  228.  
  229. sets.precast.WS['Sanguine Blade'] = set_combine(sets.precast.WS, {})
  230.  
  231. sets.precast.WS['Seraph Blade'] = sets.precast.WS['Aeolian Edge']
  232. sets.precast.WS['Shining Blade'] = sets.precast.WS['Aeolian Edge']
  233. sets.precast.WS['Red Lotus Blade'] = sets.precast.WS['Aeolian Edge']
  234. sets.precast.WS['Burning Blade'] = sets.precast.WS['Aeolian Edge']
  235. sets.precast.WS['Cataclysm'] = sets.precast.WS['Sanguine Blade']
  236. sets.precast.WS['Flash Nova'] = sets.precast.WS['Aeolian Edge']
  237.  
  238.  
  239. --------------------------------------
  240. -- Midcast sets
  241. --------------------------------------
  242.  
  243. sets.midcast.Enmity = {ammo="Staunch Tathlum +1",
  244. head="Souv. Schaller +1",
  245. body="Rev. Surcoat +3",
  246. hands="Eschite Gauntlets",
  247. legs="Cab. Breeches +3",
  248. feet="Eschite Greaves",
  249. neck="Moonlight Necklace",
  250. waist="Plat. Mog. Belt",
  251. left_ear="Odnowa Earring +1",
  252. right_ear="Cryptic Earring",
  253. left_ring="Eihwaz Ring",
  254. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  255. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  256.  
  257. sets.midcast.SIRD = set_combine(sets.midcast.Enmity, {body="Rev. Surcoat +3",
  258. feet="Eschite Greaves",
  259. waist="Audumbla Sash"})
  260.  
  261. sets.midcast.Crusade = set_combine(sets.midcast.SIRD, {body="Shab. Cuirass +1"})
  262. sets.midcast.Flash = sets.midcast.SIRD
  263. sets.midcast.Foil = sets.midcast.SIRD
  264. sets.midcast.Stun = sets.midcast.SIRD
  265. sets.midcast.Jettatura = sets.midcast.SIRD
  266. sets.midcast.Soporific = sets.midcast.SIRD
  267.  
  268. sets.midcast['Geist Wall'] = sets.midcast.SIRD
  269. sets.midcast['Blank Gaze'] = sets.midcast.SIRD
  270. sets.midcast['Stinking Gas'] = sets.midcast.SIRD
  271. sets.midcast['Chaotic Eye'] = sets.midcast.SIRD
  272.  
  273. sets.midcast['Sheep Song'] = sets.midcast.SIRD
  274.  
  275. sets.midcast['Banish'] = {ammo="Ghastly Tathlum +1",
  276. head="Nyame Helm",
  277. body="Rev. Surcoat +3",
  278. hands="Eschite Gauntlets",
  279. legs="Nyame Flanchard",
  280. feet="Nyame Sollerets",
  281. neck="Incanter's Torque",
  282. waist="Orpheus's Sash",
  283. left_ear="Crep. Earring",
  284. right_ear="Chev. Earring +1",
  285. left_ring="Stikini Ring +1",
  286. right_ring="Stikini Ring +1",
  287. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  288.  
  289. sets.midcast['Banish II'] = sets.midcast['Banish']
  290.  
  291. sets.midcast['Banishga'] = sets.midcast['Banish']
  292.  
  293. sets.midcast['Holy'] = sets.midcast['Banish']
  294.  
  295. sets.midcast['Holy II'] = sets.midcast['Banish']
  296.  
  297.  
  298. sets.midcast['Phalanx'] = {main="Sakpata's Sword",
  299. ammo="Staunch Tathlum +1",
  300. head="Yorium Barbuta",
  301. body="Yorium Cuirass",
  302. hands="Souv. Handsch. +1",
  303. legs="Sakpata's Cuisses",
  304. feet="Souveran Schuhs +1",
  305. neck="Loricate Torque +1",
  306. waist="Olympus Sash",
  307. left_ear="Andoaa Earring",
  308. right_ear="Mimir Earring",
  309. left_ring="Stikini Ring +1",
  310. right_ring="Stikini Ring +1",
  311. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  312.  
  313. sets.midcast['Phalanx'].Resistant = set_combine(sets.midcast['Phalanx'], {})
  314.  
  315.  
  316. sets.midcast['Enlight'] = {ammo="Staunch Tathlum +1",
  317. head="Souv. Schaller +1",
  318. body="Rev. Surcoat +3",
  319. hands="Eschite Gauntlets",
  320. neck="Incanter's Torque",
  321. waist="Asklepian Belt",
  322. left_ring="Stikini Ring +1",
  323. right_ring="Stikini Ring +1"}
  324.  
  325. sets.midcast['Enlight II'] = sets.midcast['Enlight']
  326.  
  327. sets.midcast['Reprisal'] = {ammo="Staunch Tathlum +1",
  328. head="Souv. Schaller +1",
  329. body="Shab. Cuirass +1",
  330. hands="Eschite Gauntlets",
  331. legs="Cab. Breeches +3",
  332. feet="Eschite Greaves",
  333. neck="Moonlight Necklace",
  334. waist="Plat. Mog. Belt",
  335. left_ear="Odnowa Earring +1",
  336. right_ear="Cryptic Earring",
  337. left_ring="Eihwaz Ring",
  338. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  339. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Spell interruption rate down-10%',}}}
  340.  
  341. --This needs updating
  342.  
  343. sets.midcast.Poisonga = {ammo="Paeapua",
  344. head="Souv. Schaller",neck="Unmoving Collar +1",ear1="Cryptic Earring",--ear2="Hades Earring +1",
  345. body="Souv. Cuirass",hands="Souv. Handsch. +1",ring1="Petrov Ring",ring2="Eihwaz Ring",
  346. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}},
  347. waist="Creed Baudrier",legs="Souv. Diechlings +1",feet="Souveran Schuhs +1"}
  348.  
  349. sets.midcast.Cure = {ammo="Staunch Tathlum +1",
  350. head="Souv. Schaller +1",
  351. body="Souv. Cuirass +1",
  352. hands="Macabre Gaunt. +1",
  353. legs="Carmine Cuisses +1",
  354. feet="Eschite Greaves",
  355. neck="Moonlight Necklace",
  356. waist="Audumbla Sash",
  357. left_ear="Odnowa Earring +1",
  358. right_ear="Nourish. Earring +1",
  359. left_ring="Eihwaz Ring",
  360. right_ring="Gelatinous Ring +1",
  361. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Cure" potency +10%','Phys. dmg. taken-10%',}}}
  362.  
  363. sets.midcast.Protect = set_combine(sets.midcast.Crusade, {legs="Rev. Breeches +3",
  364. waist="Olympus Sash",
  365. left_ear="Andoaa Earring",
  366. right_ear="Mimir Earring",
  367. left_ring="Stikini Ring +1",
  368. right_ring="Stikini Ring +1"})
  369.  
  370. --sets.midcast.Shell = {Ear2="Brachyura Earring"}
  371.  
  372. --------------------------------------
  373. -- Idle/resting/defense/etc sets
  374. --------------------------------------
  375.  
  376. sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  377.  
  378. sets.resting = {}
  379.  
  380.  
  381. -- Idle sets
  382. sets.idle = {ammo="Staunch Tathlum +1",
  383. head="Chev. Armet +3",
  384. body="Chev. Cuirass +3",
  385. hands="Chev. Gauntlets +3",
  386. legs="Carmine Cuisses +1",
  387. feet="Chev. Sabatons +3",
  388. neck="Loricate Torque +1",
  389. waist="Plat. Mog. Belt",
  390. left_ear="Odnowa Earring +1",
  391. right_ear="Chev. Earring +1",
  392. left_ring={name="Moonlight Ring", bag="wardrobe2"},
  393. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  394. back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Chance of successful block +5',}}
  395. }
  396. sets.idle.DT = set_combine(sets.idle, {})
  397.  
  398. sets.idle.RefreshDT = set_combine(sets.idle, {})
  399.  
  400. --This needs updating
  401.  
  402. sets.idle.Turtle = set_combine(sets.idle, {})
  403.  
  404. sets.idle.Weak = set_combine(sets.idle, {})
  405.  
  406. sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
  407.  
  408. sets.Kiting ={
  409. legs="Carmine Cuisses +1",
  410. --waist="Fucho-no-obi",neck="Coatl Gorget +1",hands="Regal Gauntlets"
  411. }
  412.  
  413.  
  414. --sets.latent_refresh = {waist="Fucho-no-obi",neck="Coatl Gorget +1",hands="Regal Gauntlets"}
  415.  
  416.  
  417. --------------------------------------
  418. -- Defense sets
  419. --------------------------------------
  420.  
  421. -- Extra defense sets. Apply these on top of melee or defense sets.
  422. sets.Knockback = {
  423. legs="Dashing Subligar",
  424. left_ring="Vocane Ring",
  425. back="Philidor Mantle",
  426. }
  427. sets.MP = {
  428. neck="Creed Collar",
  429. waist="Flume Belt +1"
  430. }
  431. sets.MP_Knockback = {
  432. neck="Creed Collar",
  433. legs="Dashing Subligar",
  434. left_ring="Vocane Ring",
  435. back="Philidor Mantle",
  436. }
  437.  
  438. -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
  439. -- when activating or changing defense mode:
  440. --sets.PhysicalShield = {main="Burtgang",sub="Srivatsa"} -- Ochain
  441. --sets.MagicalShield = {main="Burtgang",sub="Aegis"} -- Aegis
  442.  
  443. -- Basic defense sets.
  444.  
  445. sets.defense.PDT = {ammo="Staunch Tathlum +1",
  446. head="Chev. Armet +3",
  447. body="Sakpata's Plate",
  448. hands="Sakpata's Gauntlets",
  449. legs="Chev. Cuisses +3",
  450. feet="Sakpata's Leggings",
  451. neck="Unmoving Collar +1",
  452. waist="Audumbla Sash",
  453. left_ear="Odnowa Earring +1",
  454. right_ear="Cryptic Earring",
  455. left_ring={name="Moonlight Ring", bag="wardrobe2"},
  456. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  457. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Cure" potency +10%','Phys. dmg. taken-10%',}}}
  458.  
  459. sets.defense.HP = set_combine(sets.defense.PDT, {})
  460.  
  461. sets.defense.Reraise = {
  462. head="Twilight Helm",
  463. body="Twilight Mail",
  464. }
  465. sets.defense.Charm = {
  466. ammo="Staunch Tathlum +1 +1",
  467. head={ name="Souv. Schaller +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  468. body="Sacro Breastplate",
  469. hands="Macabre Gauntlets",
  470. legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  471. feet={ name="Souveran Schuhs +1", augments={'HP+65','Attack+25','Magic dmg. taken -4',}},
  472. neck="Unmoving Collar +1",
  473. --waist="Asklepian Belt",
  474. left_ear="Odnowa Earring +1",
  475. --right_ear="Arete del Luna +1",
  476. --left_ring="Wuji Ring",
  477. right_ring="Defending Ring",
  478. --back={ name="Rudianos's Mantle", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity+10','Occ. inc. resist. to stat. ailments+10',}},
  479. back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Phys. dmg. taken-10%',}},
  480. }
  481. -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
  482. -- Shellra V can provide 75/256, which would need another 53/256 in gear.
  483.  
  484. sets.defense.MDT = set_combine(sets.defense.PDT, {})
  485.  
  486. --------------------------------------
  487. -- Engaged sets
  488. --------------------------------------
  489.  
  490. sets.engaged = {ammo="Coiste Bodhar",
  491. head="Chev. Armet +3",
  492. body="Sakpata's Plate",
  493. hands="Sakpata's Gauntlets",
  494. legs="Sakpata's Cuisses",
  495. feet="Sakpata's Leggings",
  496. neck="Sanctity Necklace",
  497. waist="Sailfi Belt +1",
  498. left_ear="Crep. Earring",
  499. right_ear="Telos Earring",
  500. left_ring={name="Moonlight Ring", bag="wardrobe2"},
  501. right_ring={name="Moonlight Ring", bag="wardrobe4"},
  502. back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Chance of successful block +5',}}}
  503.  
  504.  
  505. sets.engaged.Acc = set_combine(sets.engaged, {})
  506.  
  507. --This one needs updated
  508.  
  509. sets.engaged.Mid = set_combine(sets.engaged, {})
  510.  
  511. --This one needs updated
  512.  
  513. sets.engaged.Duo = set_combine(sets.engaged, {})
  514. --This one needs updated
  515.  
  516. sets.engaged.AmDuo = set_combine(sets.engaged, {})
  517.  
  518. sets.engaged.PDT = set_combine(sets.engaged, {body="Chev. Cuirass +3",feet="Cab. Leggings +3"})
  519. sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {body="Chev. Cuirass +3"})
  520. sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
  521. sets.engaged.Acc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
  522.  
  523. --sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +2",neck="Loricate Torque +1",ring1="Defending Ring"})
  524. --sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +2",neck="Loricate Torque +1",ring1="Defending Ring"})
  525. --sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
  526. --sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
  527.  
  528.  
  529. --------------------------------------
  530. -- Custom buff sets
  531. --------------------------------------
  532.  
  533. sets.buff.Doom = {ring2="Saida Ring"}
  534. sets.buff.Cover = {head="Reverence Coronet +2", body="Caballarius Surcoat +2"}
  535. end
  536.  
  537.  
  538. -------------------------------------------------------------------------------------------------------------------
  539. -- Job-specific hooks for standard casting events.
  540. -------------------------------------------------------------------------------------------------------------------
  541.  
  542. function job_midcast(spell, action, spellMap, eventArgs)
  543. -- If DefenseMode is active, apply that gear over midcast
  544. -- choices. Precast is allowed through for fast cast on
  545. -- spells, but we want to return to def gear before there's
  546. -- time for anything to hit us.
  547. -- Exclude Job Abilities from this restriction, as we probably want
  548. -- the enhanced effect of whatever item of gear applies to them,
  549. -- and only one item should be swapped out.
  550. if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  551. handle_equipping_gear(player.status)
  552. eventArgs.handled = true
  553. end
  554. end
  555.  
  556. -------------------------------------------------------------------------------------------------------------------
  557. -- Job-specific hooks for non-casting events.
  558. -------------------------------------------------------------------------------------------------------------------
  559.  
  560. -- Called when the player's status changes.
  561. function job_state_change(field, new_value, old_value)
  562. classes.CustomDefenseGroups:clear()
  563. classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current)
  564. if state.EquipShield.value == true then
  565. classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield')
  566. end
  567.  
  568. classes.CustomMeleeGroups:clear()
  569. classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current)
  570. end
  571.  
  572. -------------------------------------------------------------------------------------------------------------------
  573. -- User code that supplements standard library decisions.
  574. -------------------------------------------------------------------------------------------------------------------
  575.  
  576. -- Called by the 'update' self-command, for common needs.
  577. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  578.  
  579. function job_update(cmdParams, eventArgs)
  580. update_defense_mode()
  581. end
  582.  
  583. -- Modify the default idle set after it was constructed.
  584. function customize_idle_set(idleSet)
  585. if player.mpp < 51 then
  586. idleSet = set_combine(idleSet, sets.latent_refresh)
  587. end
  588. if state.Buff.Doom then
  589. idleSet = set_combine(idleSet, sets.buff.Doom)
  590. end
  591.  
  592. return idleSet
  593. end
  594.  
  595. -- Modify the default melee set after it was constructed.
  596. function customize_melee_set(meleeSet)
  597. if state.Buff.Doom then
  598. meleeSet = set_combine(meleeSet, sets.buff.Doom)
  599. end
  600.  
  601. return meleeSet
  602. end
  603.  
  604. function customize_defense_set(defenseSet)
  605. if state.ExtraDefenseMode.value ~= 'None' then
  606. defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
  607. end
  608.  
  609. if state.EquipShield.value == true then
  610. defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
  611. end
  612.  
  613. if state.Buff.Doom then
  614. defenseSet = set_combine(defenseSet, sets.buff.Doom)
  615. end
  616.  
  617. return defenseSet
  618. end
  619.  
  620.  
  621. function display_current_job_state(eventArgs)
  622. local msg = 'Melee'
  623.  
  624. if state.CombatForm.has_value then
  625. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  626. end
  627.  
  628. msg = msg .. ': '
  629.  
  630. msg = msg .. state.OffenseMode.value
  631. if state.HybridMode.value ~= 'Normal' then
  632. msg = msg .. '/' .. state.HybridMode.value
  633. end
  634. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  635.  
  636. if state.DefenseMode.value ~= 'None' then
  637. msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  638. end
  639.  
  640. if state.ExtraDefenseMode.value ~= 'None' then
  641. msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
  642. end
  643.  
  644. if state.EquipShield.value == true then
  645. msg = msg .. ', Force Equip Shield'
  646. end
  647.  
  648. if state.Kiting.value == true then
  649. msg = msg .. ', Kiting'
  650. end
  651.  
  652. if state.PCTargetMode.value ~= 'default' then
  653. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  654. end
  655.  
  656. if state.SelectNPCTargets.value == true then
  657. msg = msg .. ', Target NPCs'
  658. end
  659.  
  660. add_to_chat(122, msg)
  661.  
  662. eventArgs.handled = true
  663. end
  664.  
  665. -------------------------------------------------------------------------------------------------------------------
  666. -- Utility functions specific to this job.
  667. -------------------------------------------------------------------------------------------------------------------
  668.  
  669. function update_defense_mode()
  670. if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  671. classes.CustomDefenseGroups:append('Kheshig Blade')
  672. end
  673.  
  674. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  675. if player.equipment.sub and not player.equipment.sub:contains('Shield') and
  676. player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  677. state.CombatForm:set('DW')
  678. else
  679. state.CombatForm:reset()
  680. end
  681. end
  682. end
  683.  
  684.  
  685. -- Select default macro book on initial load or subjob change.
  686. function select_default_macro_book()
  687. -- Default macro set/book
  688. if player.sub_job == 'DNC' then
  689. set_macro_page(1, 9)
  690. elseif player.sub_job == 'NIN' then
  691. set_macro_page(1, 9)
  692. elseif player.sub_job == 'RDM' then
  693. set_macro_page(1, 9)
  694. elseif player.sub_job == 'BLU' then
  695. set_macro_page(1, 9)
  696. elseif player.sub_job == 'DRK' then
  697. set_macro_page(1, 9)
  698. elseif player.sub_job == 'RUN' then
  699. set_macro_page(1, 9)
  700. elseif player.sub_job == 'WAR' then
  701. set_macro_page(1, 9)
  702. else
  703. set_macro_page(1, 9)
  704. end
  705. end
  706.  
  707. function customize_idle_set(idleSet)
  708. if state.Auto_Kite.value == true then
  709. idleSet = set_combine(idleSet, sets.Kiting)
  710. end
  711.  
  712. return idleSet
  713. end
  714.  
  715. function job_handle_equipping_gear(playerStatus, eventArgs)
  716. check_gear()
  717. check_moving()
  718. end
  719.  
  720. function job_update(cmdParams, eventArgs)
  721. handle_equipping_gear(player.status)
  722. end
  723. -- Select default macro book on initial load or subjob change.
  724. function update_combat_weapon()
  725. state.CombatWeapon:set(player.equipment.main)
  726. end
  727.  
  728. function job_self_command(cmdParams, eventArgs)
  729. gearinfo(cmdParams, eventArgs)
  730. end
  731.  
  732. function gearinfo(cmdParams, eventArgs)
  733. if cmdParams[1] == 'gearinfo' then
  734. if type(cmdParams[4]) == 'string' then
  735. if cmdParams[4] == 'true' then
  736. moving = true
  737. elseif cmdParams[4] == 'false' then
  738. moving = false
  739. end
  740. end
  741. if not midaction() then
  742. job_update()
  743. end
  744. end
  745. end
  746.  
  747. function check_moving()
  748. if state.DefenseMode.value == 'None' and state.Kiting.value == false then
  749. if state.Auto_Kite.value == false and moving then
  750. state.Auto_Kite:set(true)
  751. elseif state.Auto_Kite.value == true and moving == false then
  752. state.Auto_Kite:set(false)
  753. end
  754. end
  755. end
  756.  
  757. function check_gear()
  758. if no_swap_gear:contains(player.equipment.left_ring) then
  759. disable("ring1")
  760. else
  761. enable("ring1")
  762. end
  763. if no_swap_gear:contains(player.equipment.right_ring) then
  764. disable("ring2")
  765. else
  766. enable("ring2")
  767. end
  768. end
  769.  
  770. windower.register_event('zone change',
  771. function()
  772. if no_swap_gear:contains(player.equipment.left_ring) then
  773. enable("ring1")
  774. equip(sets.idle)
  775. end
  776. if no_swap_gear:contains(player.equipment.right_ring) then
  777. enable("ring2")
  778. equip(sets.idle)
  779. end
  780. end
  781. )
Advertisement
Add Comment
Please, Sign In to add comment