Advertisement
bongarippa

SalGEO

Nov 16th, 2023
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.97 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')
  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. end
  50.  
  51. -- function indi_change(itable,gain)
  52. -- if not gain then
  53. -- send_command('gh indi')
  54. -- end
  55. -- end
  56.  
  57. -- Define sets and vars used by this job file.
  58. function init_gear_sets()
  59.  
  60. --------------------------------------
  61. -- Precast sets
  62. --------------------------------------
  63.  
  64. -- Precast sets to enhance JAs
  65. sets.precast.JA['Bolster'] = {body="Bagua Tunic +1"}
  66. sets.precast.JA['Life cycle'] = {body="Geomancy Tunic", back="Nantosuelta's cape"}
  67. sets.precast.JA['Curative Recantation'] = {hands="Bagua Mitaines +1"}
  68. sets.precast.JA['Mending Halation'] = {legs="Bagua Pants +3"}
  69. sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
  70. sets.precast.JA['Primal Zeal'] = {head="Bagua galero"}
  71. sets.precast.JA['Cardinal Chant'] = {head="Geomancy galero"}
  72. sets.precast.JA['Full Circle'] = {head="Azimuth hood +1"}
  73.  
  74.  
  75. -- Fast cast sets for spells
  76.  
  77. sets.precast.FC = {
  78. main={ name="Malevolence", augments={'INT+10','Mag. Acc.+10','"Mag.Atk.Bns."+10','"Fast Cast"+5',}},
  79. sub="Ammurapi Shield",
  80. range="Dunna",
  81. head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic burst dmg.+7%','INT+2','Mag. Acc.+11',}},
  82. body={ name="Merlinic Jubbah", augments={'"Mag.Atk.Bns."+27','Magic burst dmg.+9%','INT+9','Mag. Acc.+13',}},
  83. hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  84. legs="Geomancy Pants",
  85. feet="Regal Pumps +1",
  86. neck="Baetyl Pendant",
  87. waist="Witful Belt",
  88. left_ear="Etiolation Earring",
  89. right_ear="Loquac. Earring",
  90. left_ring="Prolix Ring",
  91. right_ring="Weather. Ring",
  92. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}},}
  93.  
  94. sets.precast.FC.Cure = set_combine(sets.precast.FC, {
  95. main="Tamaxchi",
  96. ammo="Impatiens",
  97. sub="Genmei Shield",
  98. head="Merlinic hood",
  99. neck="Incanter's Torque",
  100. ear2="Loquac. Earring",
  101. body="Merlinic Jubbah",
  102. hands="Otomi gloves",
  103. ring1="Prolix Ring",
  104. ring2="Weatherspoon ring",
  105. back="Pahtli Cape",
  106. waist="Witful Belt",
  107. legs="Amalric slops",
  108. feet="Regal Pumps +1"})
  109.  
  110. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
  111. waist="Siegel Sash"})
  112.  
  113. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
  114. neck="Eddy Necklace",
  115. hands="Bagua Mitaines +1"})
  116.  
  117. sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})
  118.  
  119.  
  120. -- Weaponskill sets
  121. -- Default set for any weaponskill that isn't any more specifically defined
  122. sets.precast.WS = {
  123. head="Merlinic hood",
  124. neck="asperity necklace",
  125. ear1="Bladeborn Earring",
  126. ear2="Steelflash Earring",
  127. body="Ischemia chasuble",
  128. hands="Amalric gages",
  129. ring1="Rajas Ring",
  130. ring2="K'ayres Ring",
  131. back="Refraction Cape",
  132. waist="cetl belt",
  133. legs="Bagua Pants +3",
  134. feet="Bagua Sandals +1"}
  135.  
  136. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  137.  
  138. sets.precast.WS['Hexa Strike'] = {
  139. main={ name="Nehushtan", augments={'Accuracy+11','"Dbl.Atk."+2',}},
  140. sub={ name="Genmei Shield", augments={'"Cure" potency +3%','"Resist Paralyze"+6','"Cure" spellcasting time -5%',}},
  141. range="Dunna",
  142. head="Merlinic hood",
  143. body="Ischemia Chasu.",
  144. hands={ name="Otomi Gloves", augments={'Haste+2','"Snapshot"+2','MND+8',}},
  145. legs={ name="Bagua Pants +3", augments={'Enhances "Mending Halation" effect',}},
  146. feet={ name="Bagua Sandals +1", augments={'Enhances "Radial Arcana" effect',}},
  147. neck="Light Gorget",
  148. waist="Light Belt",
  149. ear1={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
  150. ear2="Brutal Earring",
  151. ring1="Levia. Ring",
  152. ring2="Levia. Ring",
  153. back="Refraction Cape",
  154. }
  155.  
  156. sets.precast.WS['Realmrazer'] = {
  157. main={ name="Nehushtan", augments={'Accuracy+11','"Dbl.Atk."+2',}},
  158. sub={ name="Genmei Shield", augments={'"Cure" potency +3%','"Resist Paralyze"+6','"Cure" spellcasting time -5%',}},
  159. range="Dunna",
  160. head={ name="Befouled Crown", augments={'MP+30','Mag. Acc.+20','MND+7',}},
  161. body="Vanir Cotehardie",
  162. hands={ name="Otomi Gloves", augments={'Haste+2','"Snapshot"+2','MND+8',}},
  163. legs={ name="Bagua Pants +3", augments={'Enhances "Mending Halation" effect',}},
  164. feet={ name="Artsieq Boots", augments={'MP+30','Mag. Acc.+20','MND+7',}},
  165. neck="Light Gorget",
  166. waist="Light Belt",
  167. ear1={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
  168. ear2="Brutal Earring",
  169. ring1="Levia. Ring",
  170. ring2="Levia. Ring",
  171. back="Refraction Cape",
  172. }
  173.  
  174. sets.precast.WS['Flash Nova'] = {head={ name="Hagondes Hat", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+22',}},
  175. body={ name="Merlinic Jubbah", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+16',}},
  176. hands={ name="Merlinic Hood +1", augments={'Phys. dmg. taken -4%','Magic dmg. taken -2%','"Mag.Atk.Bns."+27',}},
  177. legs={ name="Merlinic Shalwar", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+22',}},
  178. feet="Umbani Boots",
  179. neck="Eddy Necklace",
  180. waist=gear.ElementalObi,
  181. ear1="Barkarole Earring",
  182. ear2=gear.ElementalRing,
  183. ring1="Weatherspoon Ring",
  184. ring2="Sangoma Ring",
  185. back=gear.ElementalCape,}
  186.  
  187. sets.precast.WS['Black Halo'] = {head={ name="Hagondes Hat", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+22',}},
  188. body={ name="Merlinic Jubbah", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+16',}},
  189. hands={ name="Merlinic Hood", augments={'Phys. dmg. taken -4%','Magic dmg. taken -2%','"Mag.Atk.Bns."+27',}},
  190. legs={ name="Merlinic Shalwar", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+22',}},
  191. feet="Umbani Boots",
  192. neck="Eddy Necklace",
  193. waist=gear.ElementalObi,
  194. ear1="Barkarole Earring",
  195. ear2=gear.ElementalRing,
  196. ring1="Weatherspoon Ring",
  197. ring2="Sangoma Ring",
  198. back=gear.ElementalCape,}
  199.  
  200. sets.precast.WS['Exudation'] = {
  201. main={ name="Nehushtan", augments={'Accuracy+11','"Dbl.Atk."+2',}},
  202. sub={ name="Genmei Shield", augments={'"Cure" potency +3%','"Resist Paralyze"+6','"Cure" spellcasting time -5%',}},
  203. range="Dunna",head="Geo. Galero +1",body="Vanir Cotehardie",
  204. hands={ name="Otomi Gloves", augments={'Haste+2','"Snapshot"+2','MND+8',}},legs={ name="Bagua Pants +3", augments={'Enhances "Mending Halation" effect',}},feet={ name="Bagua Sandals +1", augments={'Enhances "Radial Arcana" effect',}},
  205. neck="Asperity Necklace",waist="Cetl Belt",ear1={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +25',}},
  206. ear2="Brutal Earring",ring1="Levia. Ring",ring2="Levia. Ring",back="Refraction Cape",}
  207.  
  208.  
  209.  
  210. sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
  211.  
  212. sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
  213.  
  214.  
  215. --------------------------------------
  216. -- Midcast sets
  217. --------------------------------------
  218.  
  219. -- Base fast recast for spells
  220. sets.midcast.FastRecast = {main="Grioavolr",neck="Baetyl Pendant",
  221. head="Merlinic hood",ear2="Loquacious Earring",
  222. body="Merlinic Jubbah",hands="Otomi Gloves",ring1="Prolix Ring",ring2="Weatherspoon ring",
  223. back="Lifestream Cape",waist="Witful Belt",legs="Geomancy Pants",feet="Regal Pumps +1"}
  224.  
  225. sets.midcast.Phalanx = {
  226. main={ name="Kirin's Pole", augments={'DMG:+24','"Resist Sleep"+5','Enha.mag. skill +11',}},
  227. sub="Fulcio Grip",range="Dunna",head="Umuthi Hat",hands="Ayao's Gages",
  228. legs="Portent Pants",feet="Umbani Boots",neck="Incanter's Torque",
  229. waist="Cascade Belt",ear1="Andoaa Earring",ear2="Magnetic Earring",
  230. ring1="Water Ring",ring2="Vocane Ring",back="Merciful Cape",}
  231.  
  232. sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
  233. back="Lifestream cape"})
  234.  
  235. sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
  236. waist="Witful belt"})
  237.  
  238. sets.midcast.Geomancy = {main="Idris",sub="Genmei Shield",range="Dunna",
  239. head="Azimuth hood +1",neck="Incanter's Torque",ear1="Gifted Earring",ear2="Magnetic Earring",
  240. body="Bagua Tunic +1",hands="Geomancy mitaines +1",back="Lifestream cape",
  241. waist="Austerity belt",legs="Bagua Pants +3",feet="Medium's Sabots"}
  242.  
  243. sets.midcast.Geomancy.Indi = set_combine(sets.midcast.Geomancy,{legs="Bagua Pants +3",feet="Azimuth gaiters +1"})
  244.  
  245.  
  246. sets.midcast.Cure = {
  247. main="Tamaxchi",
  248. sub="Genmei Shield",
  249. head="Merlinic hood",
  250. neck="Incanter's Torque",
  251. ear1="Mendicant's earring",
  252. ear2="Roundel earring",
  253. body="Vrikodara Jupon",
  254. hands="Bokwus Gloves",
  255. ring1="Sirona's Ring",
  256. ring2="Ephedra Ring",
  257. back="Pahtli Cape",
  258. waist="Luminary sash",
  259. legs="Psycloth lappas",
  260. feet="Vanya clogs"}
  261.  
  262.  
  263.  
  264. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
  265. main={ name="Kirin's Pole", augments={'DMG:+24','"Resist Sleep"+5','Enha.mag. skill +11',}},
  266. sub="Fulcio Grip",
  267. range="Dunna",
  268. head="Umuthi Hat",
  269. hands="Ayao's Gages",
  270. legs="Portent Pants",
  271. feet="Umbani Boots",
  272. neck="Stone Gorget",
  273. waist="Cascade Belt",
  274. ear1="Andoaa Earring",
  275. ear2="Earthcry Earring",
  276. ring2="Water Ring",
  277. back="Merciful Cape",
  278. })
  279.  
  280.  
  281. sets.midcast.Curaga = sets.midcast.Cure
  282.  
  283. sets.midcast.Protectra = {ring1="Sheltered Ring"}
  284.  
  285. sets.midcast.Shellra = {ring1="Sheltered Ring"}
  286.  
  287. -- Custom Spell Classes
  288. sets.midcast['Enfeebling Magic'] = {
  289. main="Grioavolr",
  290. sub="Niobid Strap",
  291. range="Dunna",
  292. neck="Incanter's Torque",
  293. ear1="Dignitary's earring",
  294. ear2="Barkarole earring",
  295. head="Befouled Crown",
  296. body="Vanya robe",
  297. hands="Lurid Mitts",
  298. ring1="Sangoma Ring",
  299. ring2="Weatherspoon ring",
  300. back="Lifestream Cape",
  301. waist="Luminary Sash",
  302. legs="Psycloth lappas",
  303. feet="Medium's sabots"}
  304.  
  305. sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  306.  
  307. sets.midcast['Dark Magic'] = {main="Grioavolr",sub="Caecus grip",ammo="Aureole",
  308. head="Bagua galero",neck="Incanter's Torque",ear1="Dark earring",ear2="Hirudinea earring",
  309. body="Geomancy Tunic",hands="Helios gloves",ring1="Excelsis ring",ring2="Weatherspoon ring",
  310. back="Refraction cape",waist="Fucho-no-obi",legs="Azimuth tights",feet="Artsieq boots"}
  311.  
  312. sets.midcast.Drain = {main="Grioavolr",sub="Caecus grip",ammo="Aureole",
  313. head="Bagua galero",neck="Incanter's Torque",ear1="Dark earring",ear2="Hirudinea earring",
  314. body="Geomancy Tunic",hands="Helios gloves",ring1="Excelsis ring",ring2="Weatherspoon ring",
  315. back="Refraction cape",waist="Fucho-no-obi",legs="Azimuth tights",feet="Artsieq boots"}
  316.  
  317. sets.midcast.Aspir = sets.midcast.Drain
  318.  
  319.  
  320.  
  321. sets.midcast.Stun = {
  322. main="Idris",
  323. sub="Ammurapi Shield",
  324. range="Dunna",
  325. head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic burst dmg.+7%','INT+2','Mag. Acc.+11',}},
  326. body={ name="Merlinic Jubbah", augments={'"Mag.Atk.Bns."+27','Magic burst dmg.+9%','INT+9','Mag. Acc.+13',}},
  327. hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
  328. legs="Geomancy Pants",
  329. feet={ name="Merlinic Crackows", augments={'Mag. Acc.+21 "Mag.Atk.Bns."+21','Magic burst dmg.+7%','INT+5','Mag. Acc.+13',}},
  330. neck="Erra Pendant",
  331. waist="Witful Belt",
  332. left_ear="Regal Earring",
  333. right_ear="Digni. Earring",
  334. left_ring="Kishar Ring",
  335. right_ring="Weather. Ring",
  336. back={ name="Nantosuelta's Cape", augments={'HP+60','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}},
  337. }
  338.  
  339.  
  340. sets.midcast.Bolster = {body="Bagua Tunic +1"}
  341. sets.midcast['Life Cycle'] = {body="Geo. Tunic"}
  342. sets.midcast['Mending Halation'] = {legs="Bagua Pants +3"}
  343. sets.midcast['Radial Arcana'] = {feet="Bagua Sandals +1"}
  344. sets.midcast.Bolster.Pet = {body="Bagua Tunic +1"}
  345. sets.midcast['Life Cycle'].Pet = {body="Geo. Tunic"}
  346. sets.midcast['Mending Halation'].Pet = {legs="Bagua Pants +3"}
  347. sets.midcast.Bolster.Pet.Indi = {body="Bagua Tunic +1"}
  348. sets.midcast['Life Cycle'].Pet.Indi = {body="Geo. Tunic"}
  349. sets.midcast['Mending Halation'].Pet.Indi = {legs="Bagua Pants +3"}
  350.  
  351. -- Elemental Magic sets
  352.  
  353. sets.midcast['Elemental Magic'] = {
  354. main="Grioavolr",
  355. sub="Niobid Strap",
  356. ammo="Pemphredo Tathlum",
  357. neck="Sanctity Necklace",
  358. ear1="Barkarole earring",
  359. ear2="Friomisi Earring",
  360. head="Merlinic hood",
  361. body="Merlinic Jubbah",
  362. hands="Amalric gages",
  363. ring1="Weatherspoon ring",
  364. ring2="Acumen Ring",
  365. back="Toro Cape",
  366. waist="Refoccilation Stone",
  367. legs="Merlinic Shalwar",
  368. feet="Merlinic Crackows"}
  369.  
  370. sets.midcast['Elemental Magic'].Resistant = {main="Grioavolr",sub="Niobid Strap",ammo="Ghastly Tathlum +1",
  371. head="Merlinic hood",neck="Eddy Necklace",ear1="Barkarole Earring",ear2="Crematio Earring",
  372. body="Merlinic Jubbah",hands="Amalric gages",ring1="Acumen Ring",ring2="Weatherspoon Ring",
  373. back="Toro cape",waist="Refoccilation stone",legs="Merlinic Shalwar",feet="Merlinic crackows"}
  374.  
  375. sets.midcast['Elemental Magic'].highTierNukes = set_combine(sets.midcast['Elemental Magic'],
  376. {head="Merlinic hood",hands="Amalric gages",feet="Merlinic crackows"})
  377.  
  378. sets.midcast.Impact = {main="Grioavolr",sub="Niobid Strap",range="Dunna",
  379. head=empty,body="Twilight Cloak",hands="Amalric gages",legs="Merlinic Shalwar",
  380. feet="Merlinic Crackows",neck="Sanctity Necklace",waist="Luminary Sash",ear1="Barkarole Earring",
  381. ear2="Dignitary's earring",ring1="Weatherspoon Ring",ring2="Sangoma Ring",back="Lifestream Cape",}
  382.  
  383. --------------------------------------
  384. -- Idle/resting/defense/etc sets
  385. --------------------------------------
  386.  
  387. -- Resting sets
  388. sets.resting = {}
  389.  
  390.  
  391. -- Idle sets
  392.  
  393. sets.idle = {main="Idris",sub="Genmei Shield",range="Dunna",
  394. head="Befouled crown",neck="Loricate Torque +1",ear1="Etiolation earring",ear2="Lugalbanda earring",
  395. body="Jhakri Robe +2",hands="Bagua Mitaines +1",ring1="Dark Ring",ring2="Defending Ring",
  396. back="Moonbeam cape",waist="Fucho-no-obi",legs="Assiduity pants +1",feet="Geomancy Sandals +3"}
  397.  
  398. sets.idle.PDT = {main="Idris",sub="Genmei Shield",range="Dunna",
  399. head="Hagondes hat +1",neck="Loricate Torque +1",ear1="Etiolation earring",ear2="Lugalbanda earring",
  400. body="Jhakri Robe +2",hands="Geo. mitaines +1",ring1="Dark Ring",ring2="Defending Ring",
  401. back="Cheviot cape",waist="Fucho-no-obi",legs="Merlinic Shalwar",feet="Hagondes sabots +1"}
  402.  
  403. -- .Pet sets are for when Luopan is present.
  404. sets.idle.Pet = {
  405. main="Idris",
  406. sub="Genmei Shield",
  407. range="Dunna",
  408. head="Azimuth Hood +1",
  409. body="Telchine Chas.",
  410. hands="Telchine gloves",
  411. legs="Telchine braconi",
  412. feet="Bagua Sandals +1",
  413. neck="Loricate Torque +1",
  414. waist="Isa Belt",
  415. ear1="Handler's Earring +1",
  416. ear2="Handler's Earring",
  417. ring1="Dark Ring",
  418. ring2="Defending Ring",
  419. back="Nantosuelta's cape"}
  420.  
  421. sets.idle.PDT.Pet = {main="Idris",sub="Genmei Shield",range="Dunna",
  422. head="Azimuth Hood +1",
  423. neck="Loricate Torque +1",ear1="Handler's earring +1",ear2="Handler's earring",
  424. body="Telchine chasuble",hands="Telchine gloves",ring1="Dark Ring",ring2="Defending Ring",
  425. back="Nantosuelta's cape",waist="Isa belt",
  426. legs="Telchine braconi",
  427. feet="Bagua Sandals +1"}
  428.  
  429. -- .Indi sets are for when an Indi-spell is active.
  430. sets.idle.Indi = set_combine(sets.idle, {})
  431. sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {})
  432. sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {})
  433. sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {})
  434.  
  435. sets.idle.Town = {main="Idris",sub="Genmei Shield",range="Dunna",
  436. head="Befouled crown",neck="Loricate Torque +1",ear1="Etiolation earring",ear2="Ethereal earring",
  437. body="Jhakri Robe +2",hands="Bagua Mitaines +1",ring1="Dark Ring",ring2="Defending Ring",
  438. back="Cheviot Cape",waist="Fucho-no-obi",legs="Assiduity pants +1",feet="Geomancy Sandals +3"}
  439.  
  440. sets.idle.Weak = {main="Idris",sub="Genmei Shield",range="Dunna",
  441. head="Befouled crown",neck="Loricate Torque +1",ear1="Etiolation earring",ear2="Ethereal earring",
  442. body="Jhakri Robe +2",hands="Bagua Mitaines +1",ring1="Dark Ring",ring2="Defending Ring",
  443. back="Cheviot Cape",waist="Fucho-no-obi",legs="Assiduity pants +1",feet="Geomancy Sandals +3"}
  444.  
  445. -- Defense sets
  446.  
  447. sets.defense.PDT = {main="Idris",sub="Genmei Shield",range="Dunna",
  448. head="Hagondes hat +1",neck="Loricate Torque +1",ear1="Etiolation earring",ear2="Etiolation earring",
  449. body="Jhakri Robe +2",hands="Geo. mitaines +1",ring1="Dark Ring",ring2="Defending Ring",
  450. back="Cheviot Cape",waist="Fucho-no-obi",legs="Merlinic Shalwar",feet="Hagondes sabots +1"}
  451.  
  452. sets.defense.MDT = {main="Idris",sub="Genmei Shield",range="Dunna",
  453. head="Hagondes hat +1",neck="Loricate Torque +1",ear1="Etiolation earring",ear2="Etiolation earring",
  454. body="Jhakri Robe +2",hands="Geo. mitaines +1",ring1="Dark Ring",ring2="Defending Ring",
  455. back="Cheviot Cape",waist="Fucho-no-obi",legs="Merlinic Shalwar",feet="Hagondes sabots +1"}
  456.  
  457. sets.Kiting = {feet="Geomancy Sandals +3"}
  458.  
  459. sets.latent_refresh = {waist="Fucho-no-obi"}
  460.  
  461. sets.magic_burst = {ammo="Ghastly Tathlum +1",
  462. head="Merlinic hood",neck="Mizu. Kubikazari",ear1="Barkarole Earring",ear2="Friomisi earring",
  463. body="Merlinic Jubbah",hands="Amalric gages",ring1="Mujin band",ring2="Locus Ring",
  464. back="Seshaw cape",waist="Hachirin-no-Obi",legs="Merlinic Shalwar",feet="Amalric Nails"}
  465.  
  466. --------------------------------------
  467. -- Engaged sets
  468. --------------------------------------
  469.  
  470. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  471. -- sets if more refined versions aren't defined.
  472. -- If you create a set with both offense and defense modes, the offense mode should be first.
  473. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  474.  
  475. -- Normal melee group
  476. sets.engaged = {
  477. main={ name="Idris", augments={'Accuracy+11','"Dbl.Atk."+2',}},
  478. sub={ name="Genmei Shield", augments={'"Cure" potency +3%','"Resist Paralyze"+6','"Cure" spellcasting time -5%',}},
  479. range="Dunna",
  480. head={ name="Hagondes Hat +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -4%','Enmity-4',}},
  481. body={ name="Merlinic Jubbah", augments={'Phys. dmg. taken -3%','"Mag.Atk.Bns."+16',}},
  482. hands={ name="Otomi Gloves", augments={'Haste+2','"Snapshot"+2','MND+8',}},
  483. legs={ name="Merlinic Shalwar", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+22',}},
  484. feet={ name="Hag. Sabots +1", augments={'Phys. dmg. taken -1%','"Mag.Atk.Bns."+11',}},
  485. neck="Asperity Necklace",
  486. waist="Cetl Belt",
  487. ear1="Steelflash Earring",
  488. ear2="Bladeborn Earring",
  489. ring1="K'ayres Ring",
  490. ring2="Rajas Ring",
  491. back="Shadow Mantle",
  492. }
  493.  
  494. sets.engaged.Accuracy = {
  495. main={ name="Idris", augments={'Accuracy+11','"Dbl.Atk."+2',}},
  496. sub={ name="Genmei Shield", augments={'"Cure" potency +3%','"Resist Paralyze"+6','"Cure" spellcasting time -5%',}},
  497. range="Dunna",
  498. head={ name="Hagondes Hat +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -4%','Enmity-4',}},
  499. body="Ischemia Chasu.",
  500. hands="Espial Bracers",
  501. legs={ name="Merlinic Shalwar", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+22',}},
  502. feet={ name="Hag. Sabots +1", augments={'Phys. dmg. taken -1%','"Mag.Atk.Bns."+11',}},
  503. neck="Iqabi Necklace",
  504. waist="Olseni Belt",
  505. ear1="Steelflash Earring",
  506. ear2="Zennaroi Earring",
  507. ring1="Beeline Ring",
  508. ring2="Rajas Ring",
  509. back="Kayapa Cape",
  510. }
  511. --------------------------------------
  512. -- Custom buff sets
  513. --------------------------------------
  514.  
  515. end
  516.  
  517. -------------------------------------------------------------------------------------------------------------------
  518. -- Job-specific hooks for standard casting events.
  519. -------------------------------------------------------------------------------------------------------------------
  520. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  521. function job_precast(spell, action, spellMap, eventArgs)
  522. if spellMap == 'Cure' or spellMap == 'Curaga' then
  523. gear.default.obi_waist = "yamabuki-no-obi"
  524. elseif spell.skill == 'Elemental Magic' then
  525. gear.default.obi_waist = "yamabuki-no-obi"
  526. if state.CastingMode.value == 'Proc' then
  527. classes.CustomClass = 'Proc'
  528. end
  529. end
  530. end
  531.  
  532. function sub_job_change()
  533. send_command('wait 7;input /lockstyleset 3')
  534. end
  535.  
  536.  
  537. function job_midcast(spell, action, spellMap, eventArgs)
  538. if spell.action_type == 'Magic' then
  539. -- Default base equipment layer of fast recast.
  540. equip(sets.midcast.FastRecast)
  541. end
  542. end
  543.  
  544. -- Custom spell mapping.
  545. function job_get_spell_map(spell, default_spell_map)
  546. if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  547. if lowTierNukes:contains(spell.english) then
  548. return 'lowTierNukes'
  549. else
  550. return 'highTierNukes'
  551. end
  552. end
  553. end
  554. -- Run after the general midcast() is done.
  555. function job_post_midcast(spell, action, spellMap, eventArgs)
  556.  
  557. end
  558.  
  559. function job_aftercast(spell, action, spellMap, eventArgs)
  560. if not spell.interrupted then
  561. if spell.english:startswith('Indi') then
  562. if not classes.CustomIdleGroups:contains('Indi') then
  563. classes.CustomIdleGroups:append('Indi')
  564. end
  565. send_command('@timers d "'..indi_timer..'"')
  566. indi_timer = spell.english
  567. send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  568. elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  569. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  570. elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  571. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  572. end
  573. elseif not player.indi then
  574. classes.CustomIdleGroups:clear()
  575. end
  576. end
  577.  
  578. -------------------------------------------------------------------------------------------------------------------
  579. -- Job-specific hooks for non-casting events.
  580. -------------------------------------------------------------------------------------------------------------------
  581.  
  582. -- Called when a player gains or loses a buff.
  583. -- buff == buff gained or lost
  584. -- gain == true if the buff was gained, false if it was lost.
  585. function job_buff_change(buff, gain)
  586. if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  587. classes.CustomIdleGroups:append('Indi')
  588. handle_equipping_gear(player.status)
  589. elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  590. classes.CustomIdleGroups:clear()
  591. handle_equipping_gear(player.status)
  592. end
  593. end
  594.  
  595. function job_state_change(stateField, newValue, oldValue)
  596. if stateField == 'Offense Mode' then
  597. if newValue == 'Accuracy' then
  598. disable('main','sub','range')
  599. else
  600. enable('main','sub','range')
  601. end
  602. end
  603. end
  604.  
  605. -------------------------------------------------------------------------------------------------------------------
  606. -- User code that supplements standard library decisions.
  607. -------------------------------------------------------------------------------------------------------------------
  608.  
  609. function job_get_spell_map(spell, default_spell_map)
  610. if spell.action_type == 'Magic' then
  611. if spell.skill == 'Enfeebling Magic' then
  612. if spell.type == 'WhiteMagic' then
  613. return 'MndEnfeebles'
  614. else
  615. return 'IntEnfeebles'
  616. end
  617. elseif spell.skill == 'Geomancy' then
  618. if spell.english:startswith('Indi') then
  619. return 'Indi'
  620. end
  621. end
  622. end
  623. end
  624.  
  625. function customize_idle_set(idleSet)
  626. if player.mpp < 51 then
  627. idleSet = set_combine(idleSet, sets.latent_refresh)
  628. end
  629. return idleSet
  630. end
  631.  
  632. -- Called by the 'update' self-command.
  633. function job_update(cmdParams, eventArgs)
  634. classes.CustomIdleGroups:clear()
  635. if player.indi then
  636. classes.CustomIdleGroups:append('Indi')
  637. end
  638. end
  639.  
  640. -- Function to display the current relevant user state when doing an update.
  641. function display_current_job_state(eventArgs)
  642. display_current_caster_state()
  643. eventArgs.handled = true
  644. end
  645.  
  646. function open_coffer()
  647. CofferType = "Velkk Coffer"
  648. NCoffer = player.inventory[CofferType].count
  649. bag = windower.ffxi.get_bag_info(0).count
  650. max = windower.ffxi.get_bag_info(0).max
  651. spots = max-bag
  652. if spots > 0 then
  653. add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  654. local nextcommand = ""
  655. for i=1, spots do
  656. nextcommand = nextcommand .. 'input /item "'..CofferType..'" <me>; wait 2;'
  657. end
  658. nextcommand = nextcommand .. 'input //gs c "open"'
  659. send_command(nextcommand)
  660. else
  661. add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  662. end
  663. end
  664.  
  665. function self_command(command)
  666. if command == 'open' then
  667. open_coffer()
  668. end
  669. end
  670. -------------------------------------------------------------------------------------------------------------------
  671. -- Utility functions specific to this job.
  672. -------------------------------------------------------------------------------------------------------------------
  673.  
  674. -- Select default macro book on initial load or subjob change.
  675. function select_default_macro_book()
  676. set_macro_page(1, 4)
  677. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement