Advertisement
bongarippa

SalGEO

Nov 16th, 2023 (edited)
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.75 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. include('organizer-lib')
  8. mote_include_version = 2
  9.  
  10. -- Load and initialize the include file.
  11. include('Mote-Include.lua')
  12. send_command('wait 1;input /lockstyleset 3')
  13. end
  14.  
  15. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  16. function job_setup()
  17. indi_timer = ''
  18. indi_duration = 269
  19. end
  20.  
  21. -------------------------------------------------------------------------------------------------------------------
  22. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  23. -------------------------------------------------------------------------------------------------------------------
  24.  
  25. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  26. function user_setup()
  27. state.OffenseMode:options('None', 'Normal','Accuracy')
  28. state.CastingMode:options('Normal', 'Resistant')
  29. state.IdleMode:options('Normal', 'PDT', 'Craft')
  30.  
  31. lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  32. 'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  33. 'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  34. 'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  35. 'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II',
  36. 'Stonera', 'Thundara', 'Fira', 'Blizzara', 'Aerora', 'Watera'}
  37.  
  38. highTierNukes = S{'Stone IV', 'Water IV', 'Aero IV', 'Fire IV', 'Blizzard IV', 'Thunder IV',
  39. 'Stone V', 'Water V', 'Aero V', 'Fire V', 'Blizzard V', 'Thunder V',
  40. 'Stonera II', 'Thundara II', 'Fira II', 'Blizzara II', 'Aerora II', 'Watera II'}
  41.  
  42. gear.default.weaponskill_waist = "Fotia Belt"
  43. gear.default.obi_waist = "yamabuki-no-obi"
  44. gear.default.obi_back = "seshaw Cape"
  45. gear.default.obi_ring = "Acumen Ring"
  46.  
  47. select_default_macro_book()
  48.  
  49. send_command('lua l gearinfo')
  50.  
  51. end
  52.  
  53. -- function indi_change(itable,gain)
  54. -- if not gain then
  55. -- send_command('gh indi')
  56. -- end
  57. -- end
  58.  
  59. -- Define sets and vars used by this job file.
  60. function init_gear_sets()
  61.  
  62. --------------------------------------
  63. -- Precast sets
  64. --------------------------------------
  65.  
  66. -- Precast sets to enhance JAs
  67. sets.precast.JA['Bolster'] = {body="Bagua Tunic +3"}
  68. sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +3", back="Nantosuelta's cape"}
  69. sets.precast.JA['Curative Recantation'] = {hands="Bagua Mitaines +3"}
  70. sets.precast.JA['Mending Halation'] = {legs="Bagua Pants +3"}
  71. sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +3"}
  72. sets.precast.JA['Primal Zeal'] = {head="Bagua galero +3"}
  73. sets.precast.JA['Cardinal Chant'] = {head="Geomancy galero"}
  74. sets.precast.JA['Full Circle'] = {head="Azimuth hood +2"}
  75.  
  76.  
  77. -- Fast cast sets for spells
  78.  
  79. sets.precast.FC = {
  80. head={ name="Amalric Coif +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
  81. body="Shango Robe",
  82. hands={ name="Bagua Mitaines +3", augments={'Enhances "Curative Recantation" effect',}},
  83. legs="Geomancy Pants +3",
  84. feet="Regal Pumps +1",
  85. neck="Baetyl Pendant",
  86. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  87. left_ear="Etiolation Earring",
  88. right_ear="Malignance Earring",
  89. left_ring="Kishar Ring",
  90. right_ring="Medada's Ring",
  91. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}}}
  92.  
  93. sets.precast.FC.Cure = set_combine(sets.precast.FC)
  94.  
  95. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC)
  96.  
  97. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC)
  98.  
  99. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
  100.  
  101.  
  102. -- Weaponskill sets
  103. -- Default set for any weaponskill that isn't any more specifically defined
  104. sets.precast.WS = {head="Azimuth Hood +2",
  105. body={ name="Bagua Tunic +3", augments={'Enhances "Bolster" effect',}},
  106. hands={ name="Bagua Mitaines +3", augments={'Enhances "Curative Recantation" effect',}},
  107. legs={ name="Bagua Pants +3", augments={'Enhances "Mending Halation" effect',}},
  108. feet={ name="Bagua Sandals +3", augments={'Enhances "Radial Arcana" effect',}},
  109. neck="Fotia Gorget",
  110. waist="Fotia Belt",
  111. left_ear="Ishvara Earring",
  112. right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  113. left_ring="Hetairoi Ring",
  114. right_ring="Petrov Ring",
  115. back="Moonbeam Cape"}
  116.  
  117. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  118.  
  119. sets.precast.WS['Hexa Strike'] = {}
  120.  
  121. sets.precast.WS['Realmrazer'] = {}
  122.  
  123. sets.precast.WS['Flash Nova'] = {}
  124.  
  125. sets.precast.WS['Black Halo'] = {}
  126.  
  127. sets.precast.WS['Exudation'] = {}
  128.  
  129.  
  130.  
  131. sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
  132.  
  133. sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
  134.  
  135.  
  136. --------------------------------------
  137. -- Midcast sets
  138. --------------------------------------
  139.  
  140. -- Base fast recast for spells
  141. sets.midcast.FastRecast = {}
  142.  
  143. sets.midcast.Phalanx = {main={ name="Gada", augments={'"Fast Cast"+5','VIT+1','"Mag.Atk.Bns."+20','DMG:+5',}},
  144. sub="Ammurapi Shield",
  145. range="Dunna",
  146. head="Befouled Crown",
  147. body={ name="Telchine Chas.", augments={'Pet: "Regen"+2','Pet: Damage taken -1%',}},
  148. feet="Regal Pumps +1",
  149. neck="Incanter's Torque",
  150. waist="Olympus Sash",
  151. left_ear="Andoaa Earring",
  152. right_ear="Mimir Earring",
  153. back="Perimede Cape",}
  154.  
  155. sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {head="Amalric Coif +1"})
  156.  
  157. sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {head="Amalric Coif +1",
  158. waist="Witful belt"})
  159.  
  160. sets.midcast.Geomancy = {main="Idris",
  161. sub="Genmei Shield",
  162. range="Dunna",
  163. head="Azimuth Hood +2",
  164. body={ name="Bagua Tunic +3", augments={'Enhances "Bolster" effect',}},
  165. hands="Geo. Mitaines +3",
  166. legs={ name="Bagua Pants +3", augments={'Enhances "Mending Halation" effect',}},
  167. feet="Azimuth Gaiters +2",
  168. neck="Incanter's Torque",
  169. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  170. left_ear="Mendi. Earring",
  171. right_ear="Magnetic Earring",
  172. left_ring={ name="Mephitas's Ring +1", augments={'Path: A',}},
  173. right_ring="Stikini Ring +1",
  174. back={ name="Lifestream Cape", augments={'Geomancy Skill +6','Indi. eff. dur. +20','Pet: Damage taken -3%',}}}
  175.  
  176. sets.midcast.Geomancy.Indi = set_combine(sets.midcast.Geomancy,{legs="Bagua Pants +3",feet="Azimuth gaiters +1"})
  177.  
  178.  
  179. sets.midcast.Cure = {main="Daybreak",
  180. sub="Genmei Shield",
  181. range="Dunna",
  182. head={ name="Vanya Hood", augments={'MP+50','"Fast Cast"+10','Haste+2%',}},
  183. body="Azimuth Coat +2",
  184. hands={ name="Telchine Gloves", augments={'Pet: "Regen"+3','Pet: Damage taken -4%',}},
  185. legs="Geomancy Pants +3",
  186. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  187. neck="Incanter's Torque",
  188. waist="Luminary Sash",
  189. left_ear="Meili Earring",
  190. right_ear="Regal Earring",
  191. left_ring={ name="Mephitas's Ring +1", augments={'Path: A',}},
  192. right_ring="Naji's Loop",
  193. back="Perimede Cape"}
  194.  
  195.  
  196.  
  197. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'])
  198.  
  199.  
  200. sets.midcast.Curaga = sets.midcast.Cure
  201.  
  202. sets.midcast.Protectra = {ring1="Sheltered Ring"}
  203.  
  204. sets.midcast.Shellra = {ring1="Sheltered Ring"}
  205.  
  206. -- Custom Spell Classes
  207. sets.midcast['Enfeebling Magic'] = {main={ name="Gada", augments={'"Fast Cast"+5','VIT+1','"Mag.Atk.Bns."+20','DMG:+5',}},
  208. sub="Ammurapi Shield",
  209. range="Dunna",
  210. head="Azimuth Hood +2",
  211. body="Azimuth Coat +2",
  212. hands="Geo. Mitaines +3",
  213. legs="Geomancy Pants +3",
  214. feet={ name="Bagua Sandals +3", augments={'Enhances "Radial Arcana" effect',}},
  215. neck="Incanter's Torque",
  216. waist="Luminary Sash",
  217. left_ear="Vor Earring",
  218. right_ear="Malignance Earring",
  219. left_ring="Stikini Ring +1",
  220. right_ring="Medada's Ring",
  221. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}}}
  222.  
  223. sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  224.  
  225. sets.midcast['Dark Magic'] = {main="Idris",
  226. sub="Ammurapi Shield",
  227. range="Dunna",
  228. head="Azimuth Hood +2",
  229. body="Geomancy Tunic +3",
  230. hands="Geo. Mitaines +3",
  231. legs="Geomancy Pants +3",
  232. feet="Azimuth Gaiters +2",
  233. neck="Incanter's Torque",
  234. waist="Luminary Sash",
  235. left_ear="Regal Earring",
  236. right_ear="Malignance Earring",
  237. left_ring="Stikini Ring +1",
  238. right_ring="Medada's Ring",
  239. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}}}
  240.  
  241. sets.midcast.Drain = {main="Idris",
  242. sub="Ammurapi Shield",
  243. range="Dunna",
  244. head={ name="Bagua Galero +3", augments={'Enhances "Primeval Zeal" effect',}},
  245. body="Geomancy Tunic +3",
  246. hands="Geo. Mitaines +3",
  247. legs="Geomancy Pants +3",
  248. feet="Azimuth Gaiters +2",
  249. neck="Incanter's Torque",
  250. waist="Fucho-no-Obi",
  251. left_ear="Regal Earring",
  252. right_ear="Malignance Earring",
  253. left_ring="Stikini Ring +1",
  254. right_ring="Evanescence Ring",
  255. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}}}
  256.  
  257. sets.midcast.Aspir = sets.midcast.Drain
  258.  
  259.  
  260.  
  261. sets.midcast.Stun = {main="Idris",
  262. sub="Ammurapi Shield",
  263. range="Dunna",
  264. head="Azimuth Hood +2",
  265. body="Geomancy Tunic +3",
  266. hands="Geo. Mitaines +3",
  267. legs="Geomancy Pants +3",
  268. feet="Azimuth Gaiters +2",
  269. neck="Incanter's Torque",
  270. waist="Luminary Sash",
  271. left_ear="Regal Earring",
  272. right_ear="Malignance Earring",
  273. left_ring="Stikini Ring +1",
  274. right_ring="Medada's Ring",
  275. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}}
  276. }
  277.  
  278.  
  279. sets.midcast.Bolster = {body="Bagua Tunic +3"}
  280. sets.midcast['Life Cycle'] = {body="Geomancy Tunic +3"}
  281. sets.midcast['Mending Halation'] = {legs="Bagua Pants +3"}
  282. sets.midcast['Radial Arcana'] = {feet="Bagua Sandals +3"}
  283. sets.midcast.Bolster.Pet = {body="Bagua Tunic +3"}
  284. sets.midcast['Life Cycle'].Pet = {body="Geomancy Tunic +3"}
  285. sets.midcast['Mending Halation'].Pet = {legs="Bagua Pants +3"}
  286. sets.midcast.Bolster.Pet.Indi = {body="Bagua Tunic +3"}
  287. sets.midcast['Life Cycle'].Pet.Indi = {body="Geomancy Tunic +3"}
  288. sets.midcast['Mending Halation'].Pet.Indi = {legs="Bagua Pants +3"}
  289.  
  290. -- Elemental Magic sets
  291.  
  292. sets.midcast['Elemental Magic'] = {
  293. main="Daybreak",
  294. sub="Ammurapi Shield",
  295. ammo="Pemphredo Tathlum",
  296. head={ name="Bagua Galero +3", augments={'Enhances "Primeval Zeal" effect',}},
  297. body={ name="Bagua Tunic +3", augments={'Enhances "Bolster" effect',}},
  298. hands={ name="Bagua Mitaines +3", augments={'Enhances "Curative Recantation" effect',}},
  299. legs="Geomancy Pants +3",
  300. feet={ name="Bagua Sandals +3", augments={'Enhances "Radial Arcana" effect',}},
  301. neck="Baetyl Pendant",
  302. waist="Eschan Stone",
  303. left_ear="Malignance Earring",
  304. right_ear="Regal Earring",
  305. left_ring="Metamor. Ring +1",
  306. right_ring="Metamor. Ring +1",
  307. back={ name="Nantosuelta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Magic Damage +10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}}}
  308.  
  309. sets.midcast['Elemental Magic'].Resistant = {}
  310.  
  311. sets.midcast['Elemental Magic'].highTierNukes = set_combine(sets.midcast['Elemental Magic'])
  312.  
  313. sets.midcast.Impact = {main="Daybreak",
  314. sub="Ammurapi Shield",
  315. ammo="Pemphredo Tathlum",
  316. head=empty,
  317. body="Twilight Cloak",
  318. hands={ name="Bagua Mitaines +3", augments={'Enhances "Curative Recantation" effect',}},
  319. legs="Geomancy Pants +3",
  320. feet={ name="Bagua Sandals +3", augments={'Enhances "Radial Arcana" effect',}},
  321. neck="Baetyl Pendant",
  322. waist="Eschan Stone",
  323. left_ear="Malignance Earring",
  324. right_ear="Regal Earring",
  325. left_ring="Metamor. Ring +1",
  326. right_ring="Metamor. Ring +1",
  327. back={ name="Nantosuelta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Magic Damage +10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}}}
  328.  
  329. --------------------------------------
  330. -- Idle/resting/defense/etc sets
  331. --------------------------------------
  332.  
  333. -- Resting sets
  334. sets.resting = {}
  335.  
  336.  
  337. -- Idle sets
  338.  
  339. sets.idle = {main="Idris",
  340. sub="Genmei Shield",
  341. range="Dunna",
  342. head="Azimuth Hood +2",
  343. body="Azimuth Coat +2",
  344. hands="Bagua Mitaines +3",
  345. legs="Assid. Pants +1",
  346. feet="Geo. Sandals +3",
  347. neck="Loricate Torque +1",
  348. waist="Plat. Mog. Belt",
  349. left_ear="Etiolation Earring",
  350. right_ear="Genmei Earring",
  351. left_ring="Gelatinous Ring +1",
  352. right_ring="Defending Ring",
  353. back={ name="Nantosuelta's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Pet: "Regen"+10','Pet: Damage taken -5%',}}}
  354.  
  355. sets.idle.PDT = {main="Idris",
  356. sub="Genmei Shield",
  357. range="Dunna",
  358. head="Azimuth Hood +2",
  359. body="Geomancy Tunic +3",
  360. hands={ name="Bagua Mitaines +3", augments={'Enhances "Curative Recantation" effect',}},
  361. legs="Assid. Pants +1",
  362. feet="Geo. Sandals +3",
  363. neck="Loricate Torque +1",
  364. waist="Plat. Mog. Belt",
  365. left_ear="Etiolation Earring",
  366. right_ear="Genmei Earring",
  367. left_ring="Gelatinous Ring +1",
  368. right_ring="Defending Ring",
  369. back="Moonbeam Cape"}
  370.  
  371. sets.idle.Craft = {head="Protective Specs.",
  372. body="Boneworker's Apn.",
  373. hands={ name="Bagua Mitaines +3", augments={'Enhances "Curative Recantation" effect',}},
  374. legs="Assid. Pants +1",
  375. feet="Geo. Sandals +3",
  376. neck="Bone. Torque",
  377. waist="Plat. Mog. Belt",
  378. left_ear="Etiolation Earring",
  379. right_ear="Genmei Earring",
  380. left_ring="Orvail Ring",
  381. back="Moonbeam Cape",}
  382.  
  383. -- .Pet sets are for when Luopan is present.
  384. sets.idle.Pet = set_combine(sets.Idle, {
  385. main="Idris",
  386. sub="Genmei Shield",
  387. range="Dunna",
  388. head={ name="Telchine Cap", augments={'Pet: "Regen"+2','Pet: Damage taken -4%',}},
  389. body="Geomancy Tunic +3",
  390. hands="Geo. Mitaines +3",
  391. legs={ name="Telchine Braconi", augments={'Pet: "Regen"+2','Pet: Damage taken -1%',}},
  392. feet={ name="Bagua Sandals +3", augments={'Enhances "Radial Arcana" effect',}},
  393. neck="Loricate Torque +1",
  394. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  395. left_ear="Etiolation Earring",
  396. right_ear="Handler's Earring +1",
  397. left_ring="Defending Ring",
  398. right_ring="Stikini Ring +1",
  399. back={ name="Nantosuelta's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Pet: "Regen"+10',}}})
  400.  
  401. sets.idle.PDT.Pet = {main="Idris",
  402. sub="Genmei Shield",
  403. range="Dunna",
  404. head="Azimuth Hood +2",
  405. body="Geomancy Tunic +3",
  406. hands="Geo. Mitaines +3",
  407. legs={ name="Bagua Pants +3", augments={'Enhances "Mending Halation" effect',}},
  408. feet={ name="Bagua Sandals +3", augments={'Enhances "Radial Arcana" effect',}},
  409. neck="Loricate Torque +1",
  410. waist="Plat. Mog. Belt",
  411. left_ear="Etiolation Earring",
  412. right_ear="Handler's Earring +1",
  413. left_ring="Stikini Ring +1",
  414. right_ring="Defending Ring",
  415. back={ name="Nantosuelta's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Pet: "Regen"+10','Pet: Damage taken -5%',}}}
  416.  
  417. -- .Indi sets are for when an Indi-spell is active.
  418. sets.idle.Indi = set_combine(sets.idle, {})
  419. sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {})
  420. sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {})
  421. sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {})
  422.  
  423. sets.idle.Town = sets.idle
  424.  
  425. sets.idle.Weak = sets.idle
  426.  
  427. -- Defense sets
  428.  
  429. sets.defense.PDT = {}
  430.  
  431. sets.defense.MDT = {}
  432.  
  433. sets.Kiting = {feet="Geomancy Sandals +3"}
  434.  
  435. sets.latent_refresh = {waist="Fucho-no-obi"}
  436.  
  437. sets.magic_burst = {}
  438.  
  439. --------------------------------------
  440. -- Engaged sets
  441. --------------------------------------
  442.  
  443. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  444. -- sets if more refined versions aren't defined.
  445. -- If you create a set with both offense and defense modes, the offense mode should be first.
  446. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  447.  
  448. -- Normal melee group
  449. sets.engaged = {}
  450.  
  451. sets.engaged.Accuracy = {}
  452. --------------------------------------
  453. -- Custom buff sets
  454. --------------------------------------
  455.  
  456. end
  457.  
  458. -------------------------------------------------------------------------------------------------------------------
  459. -- Job-specific hooks for standard casting events.
  460. -------------------------------------------------------------------------------------------------------------------
  461. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  462. function job_precast(spell, action, spellMap, eventArgs)
  463. if spellMap == 'Cure' or spellMap == 'Curaga' then
  464. gear.default.obi_waist = "yamabuki-no-obi"
  465. elseif spell.skill == 'Elemental Magic' then
  466. gear.default.obi_waist = "yamabuki-no-obi"
  467. if state.CastingMode.value == 'Proc' then
  468. classes.CustomClass = 'Proc'
  469. end
  470. end
  471. end
  472.  
  473. function sub_job_change()
  474. send_command('wait 7;input /lockstyleset 3')
  475. end
  476.  
  477.  
  478. function job_midcast(spell, action, spellMap, eventArgs)
  479. if spell.action_type == 'Magic' then
  480. -- Default base equipment layer of fast recast.
  481. equip(sets.midcast.FastRecast)
  482. end
  483. end
  484.  
  485. -- Custom spell mapping.
  486. function job_get_spell_map(spell, default_spell_map)
  487. if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  488. if lowTierNukes:contains(spell.english) then
  489. return 'lowTierNukes'
  490. else
  491. return 'highTierNukes'
  492. end
  493. end
  494. end
  495. -- Run after the general midcast() is done.
  496. function job_post_midcast(spell, action, spellMap, eventArgs)
  497.  
  498. end
  499.  
  500. function job_aftercast(spell, action, spellMap, eventArgs)
  501. if not spell.interrupted then
  502. if spell.english:startswith('Indi') then
  503. if not classes.CustomIdleGroups:contains('Indi') then
  504. classes.CustomIdleGroups:append('Indi')
  505. end
  506. send_command('@timers d "'..indi_timer..'"')
  507. indi_timer = spell.english
  508. send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  509. elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  510. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  511. elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  512. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  513. end
  514. elseif not player.indi then
  515. classes.CustomIdleGroups:clear()
  516. end
  517. end
  518.  
  519. -------------------------------------------------------------------------------------------------------------------
  520. -- Job-specific hooks for non-casting events.
  521. -------------------------------------------------------------------------------------------------------------------
  522.  
  523. -- Called when a player gains or loses a buff.
  524. -- buff == buff gained or lost
  525. -- gain == true if the buff was gained, false if it was lost.
  526. function job_buff_change(buff, gain)
  527. if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  528. classes.CustomIdleGroups:append('Indi')
  529. handle_equipping_gear(player.status)
  530. elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  531. classes.CustomIdleGroups:clear()
  532. handle_equipping_gear(player.status)
  533. end
  534. end
  535.  
  536. function job_state_change(stateField, newValue, oldValue)
  537. if stateField == 'Offense Mode' then
  538. if newValue == 'Accuracy' then
  539. disable('main','sub','range')
  540. else
  541. enable('main','sub','range')
  542. end
  543. end
  544. end
  545.  
  546. -------------------------------------------------------------------------------------------------------------------
  547. -- User code that supplements standard library decisions.
  548. -------------------------------------------------------------------------------------------------------------------
  549.  
  550. function job_get_spell_map(spell, default_spell_map)
  551. if spell.action_type == 'Magic' then
  552. if spell.skill == 'Enfeebling Magic' then
  553. if spell.type == 'WhiteMagic' then
  554. return 'MndEnfeebles'
  555. else
  556. return 'IntEnfeebles'
  557. end
  558. elseif spell.skill == 'Geomancy' then
  559. if spell.english:startswith('Indi') then
  560. return 'Indi'
  561. end
  562. end
  563. end
  564. end
  565.  
  566. function customize_idle_set(idleSet)
  567. if player.mpp < 51 then
  568. idleSet = set_combine(idleSet, sets.latent_refresh)
  569. end
  570. return idleSet
  571. end
  572.  
  573. -- Called by the 'update' self-command.
  574. function job_update(cmdParams, eventArgs)
  575. classes.CustomIdleGroups:clear()
  576. if player.indi then
  577. classes.CustomIdleGroups:append('Indi')
  578. end
  579. end
  580.  
  581. -- Function to display the current relevant user state when doing an update.
  582. function display_current_job_state(eventArgs)
  583. display_current_caster_state()
  584. eventArgs.handled = true
  585. end
  586.  
  587. function open_coffer()
  588. CofferType = "Velkk Coffer"
  589. NCoffer = player.inventory[CofferType].count
  590. bag = windower.ffxi.get_bag_info(0).count
  591. max = windower.ffxi.get_bag_info(0).max
  592. spots = max-bag
  593. if spots > 0 then
  594. add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  595. local nextcommand = ""
  596. for i=1, spots do
  597. nextcommand = nextcommand .. 'input /item "'..CofferType..'" <me>; wait 2;'
  598. end
  599. nextcommand = nextcommand .. 'input //gs c "open"'
  600. send_command(nextcommand)
  601. else
  602. add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  603. end
  604. end
  605.  
  606. function self_command(command)
  607. if command == 'open' then
  608. open_coffer()
  609. end
  610. end
  611. -------------------------------------------------------------------------------------------------------------------
  612. -- Utility functions specific to this job.
  613. -------------------------------------------------------------------------------------------------------------------
  614.  
  615. -- Select default macro book on initial load or subjob change.
  616. function select_default_macro_book()
  617. set_macro_page(1, 4)
  618. end
  619.  
  620. function gearinfo(cmdParams, eventArgs)
  621. if cmdParams[1] == 'gearinfo' then
  622. if type(cmdParams[4]) == 'string' then
  623. if cmdParams[4] == 'true' then
  624. moving = true
  625. elseif cmdParams[4] == 'false' then
  626. moving = false
  627. end
  628. end
  629. if not midaction() then
  630. job_update()
  631. end
  632. end
  633. end
  634.  
  635. function check_moving()
  636. if state.DefenseMode.value == 'None' and state.Kiting.value == false then
  637. if state.Auto_Kite.value == false and moving then
  638. state.Auto_Kite:set(true)
  639. elseif state.Auto_Kite.value == true and moving == false then
  640. state.Auto_Kite:set(false)
  641. end
  642. end
  643. end
  644.  
  645. function check_gear()
  646. if no_swap_gear:contains(player.equipment.left_ring) then
  647. disable("left_ring")
  648. else
  649. enable("left_ring")
  650. end
  651. if no_swap_gear:contains(player.equipment.right_ring) then
  652. disable("right_ring")
  653. else
  654. enable("right_ring")
  655. end
  656. end
  657.  
  658.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement