BenWagner

PLD GS

Jan 28th, 2015
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.64 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Some of Motenten's Functions ** --
  3. -- Last Updated: 05/05/14 12:00 AM ** --
  4.  
  5. function get_sets()
  6. AccIndex = 1
  7. AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
  8. ShieldIndex = 1
  9. ShieldArray = {"Aegis","Ochain"} -- Default Shield Type Is Ochain. Set Default Shield Type Here. --
  10. IdleIndex = 1
  11. IdleArray = {"Movement","Regen","Refresh"} -- Default Idle Set Is Movement --
  12. Armor = 'None'
  13. Twilight = 'None'
  14. Repulse = 'OFF' -- Set Default Repulse ON or OFF Here --
  15. target_distance = 5 -- Set Default Distance Here --
  16. select_default_macro_book() -- Change Default Macro Book At The End --
  17.  
  18. Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  19. sc_map = {SC1="Flash", SC2="UtsusemiNi", SC3="UtsusemiIchi"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  20. EnmityBlueMagic = S{"Jettatura","Sheep Song","Soporific","Blank Gaze","Geist Wall"} -- BlueMagic --
  21.  
  22. include('organizer-lib')
  23.  
  24. sets.Idle = {}
  25. -- Idle/Town Sets --
  26. sets.Idle.Regen = {
  27. head="Baghere Salade",
  28. neck="Wiglen Gorget",
  29. ear1="Dawn earring",
  30. ammo="Homiliary",
  31. ear2="Infused earring",
  32. body="Kumarbi's Akar",
  33. ring1="Sheltered Ring",
  34. ring2="Paguroidea Ring",
  35. back="Scuta Cape",
  36. waist="Flume belt +1",
  37. legs="Carmine Cuisses",
  38. feet="Souveran Schuhs +1"}
  39. sets.Idle.Regen.Ochain = set_combine(sets.Idle.Regen,{
  40. main="Burtgang",
  41. sub="Ochain"})
  42. sets.Idle.Regen.Aegis = set_combine(sets.Idle.Regen,{
  43. main="Burtgang",
  44. sub="Aegis"})
  45.  
  46. sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  47. head="Loess Barbuta +1",
  48. neck="Loricate Collar +1",
  49. back="Xucau Mantle",
  50. hands="Crusher Gauntlets",
  51. legs="Carmine Cuisses",
  52. ear1="Genmei earring",
  53. ear2="Ethereal Earring",
  54. body="Uac Jerkin",
  55. feet="Souveran Schuhs +1",
  56. ring2="Vocane Ring",
  57. ring1="Defending Ring",
  58. ammo="Homiliary",
  59. waist="Flume Belt +1"})
  60. sets.Idle.Movement.Ochain = set_combine(sets.Idle.Movement,{
  61. main="Burtgang",
  62. sub="Ochain"})
  63. sets.Idle.Movement.Aegis = set_combine(sets.Idle.Movement,{
  64. main="Burtgang",
  65. sub="Aegis"})
  66.  
  67. sets.Idle.Refresh = {
  68. legs="Ogier's Breeches",
  69. hands="Ogier's Gauntlets",
  70. body="Respite Cloak",
  71. ammo="Homiliary",
  72. ring1="Apeile Ring",
  73. ring2="Apeile Ring +1",
  74. waist="Fucho-no-obi",
  75. feet="Ogier's Leggings"}
  76. sets.Idle.Refresh.Ochain = set_combine(sets.Idle.Refresh,{
  77. waist="Fucho-no-obi",
  78. neck="Coatl Gorget +1",
  79. ring1="Apeile Ring",
  80. ammo="Homiliary",
  81. ring2="Apeile Ring +1",
  82. body="Respite Cloak",
  83. sub="Ochain"})
  84. sets.Idle.Refresh.Aegis = {
  85. waist="Fucho-no-obi",
  86. ring1="Apeile Ring",
  87. ring2="Apeile Ring +1",
  88. ammo="Homiliary",
  89. legs="Ogier's Breeches",
  90. neck="Coatl Gorget +1",
  91. hands="Ogier's Gauntlets",
  92. body="Respite cloak",
  93. sub="Aegis"}
  94.  
  95. sets.Resting = set_combine(sets.Idle.Refresh)
  96.  
  97. sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  98.  
  99. -- TP Base Set --
  100. sets.TP = {}
  101.  
  102. -- Ochain TP Sets --
  103. sets.TP.Ochain = {
  104. sub="Ochain",
  105. ammo="Ginsen",
  106. head="Acro Helm",
  107. neck="Asperity necklace",
  108. ear1="Tripudio earring",
  109. ear2="Trux Earring",
  110. body="Acro Surcoat",
  111. hands="Acro Gauntlets",
  112. ring1="Petrov ring",
  113. ring2="Rajas Ring",
  114. back="Bleating mantle",
  115. waist="Windbuffet Belt +1",
  116. legs="Acro Breeches",
  117. feet="Acro Leggings"}
  118. sets.TP.Ochain.MidACC = set_combine(sets.TP.Ochain,{
  119. head="Gavialis Helm",
  120. back="Ground. Mantle +1",
  121. body="Mes. Haubergeon",
  122. ear1="Zennaroi earring",
  123. ear2="Zwazo earring +1",
  124. hands="Acro gauntlets",
  125. waist="Olseni Belt"})
  126. sets.TP.Ochain.HighACC = set_combine(sets.TP.Ochain.MidACC,{
  127. neck="Subtlety Spec.",
  128. body="Mes. Haubergeon",
  129. ammo="Hasty Pinion +1",
  130. hands="Chev. Gauntlets +1",
  131. ring2="Ramuh Ring +1",
  132. ring1="Ramuh Ring +1"})
  133.  
  134. -- Aegis TP Sets --
  135. sets.TP.Aegis = {
  136. sub="Aegis",
  137. ammo="Ginsen",
  138. head="Acro Helm",
  139. neck="Asperity necklace",
  140. ear1="Tripudio Earring",
  141. ear2="Trux earring",
  142. body="Acro Surcoat",
  143. hands="Acro Gauntlets",
  144. ring2="Rajas Ring",
  145. ring1="Petrov Ring",
  146. back="Bleating Mantle",
  147. waist="Windbuffet belt +1",
  148. legs="Acro breeches",
  149. feet="Acro Leggings"}
  150. sets.TP.Aegis.MidACC = set_combine(sets.TP.Aegis,{
  151. head="Gavialis Helm",
  152. hands="Acro gauntlets",
  153. neck="Subtlety Spec.",
  154. back="Ground. Mantle +1",
  155. body="Mes. Haubergeon",
  156. ear1="Zennaroi earring",
  157. ear2="Zwazo earring +1",
  158. waist="Olseni Belt"})
  159. sets.TP.Aegis.HighACC = set_combine(sets.TP.Aegis.MidACC,{
  160. hands="Chev. Gauntlets +1",
  161. ammo="Hasty Pinion +1",
  162. body="Mes. Haubergeon",
  163. ring2="Ramuh RIng +1",
  164. ring1="Ramuh Ring +1"})
  165.  
  166. -- Ragnarok TP Sets --
  167. sets.TP.Ragnarok = {}
  168. sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{
  169. })
  170. sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{
  171. })
  172.  
  173. -- Ragnarok(Ionis) TP Sets --
  174. sets.TP.Ragnarok.Ionis = set_combine(sets.TP.Ragnarok,{})
  175. sets.TP.Ragnarok.MidACC.Ionis = set_combine(sets.TP.Ragnarok.Ionis,{
  176. head="Yaoyotl Helm",
  177. waist="Dynamic Belt +1"})
  178. sets.TP.Ragnarok.HighACC.Ionis = set_combine(sets.TP.Ragnarok.MidACC.Ionis,{
  179. })
  180.  
  181. -- PDT/DT Sets --
  182. sets.PDT = {}
  183. sets.PDT.Ochain = {
  184. sub="Ochain",
  185. ammo="Brigantia Pebble",
  186. head="Souveran schaller",
  187. neck="Loricate Collar +1",
  188. ear1="Genmei earring",
  189. ear2="Upsurge earring",
  190. body="Souveran Cuirass",
  191. hands="Souv. Handschuhs",
  192. ring2="Vocane Ring",
  193. ring1="Defending Ring",
  194. back="Xucau Mantle",
  195. waist="Flume Belt +1",
  196. legs="Souveran Diechlings",
  197. feet="Souveran Schuhs +1"}
  198. sets.PDT.Aegis = {
  199. sub="Aegis",
  200. ammo="Brigantia Pebble",
  201. head="Souveran schaller",
  202. neck="Loricate Collar +1",
  203. ear1="Genmei earring",
  204. ear2="Upsurge earring",
  205. body="Souveran Cuirass",
  206. hands="Souv. Handschuhs",
  207. ring2="Vocane Ring",
  208. ring1="Defending Ring",
  209. back="Xucau Mantle",
  210. waist="Flume Belt +1",
  211. legs="Souveran Diechlings",
  212. feet="Souveran schuhs +1"}
  213.  
  214. sets.MDT = {}
  215. sets.MDT.Ochain = set_combine(sets.PDT.Ochain,{
  216. head="Chev. Armet +1",
  217. ear2="Spellbr. Earring",
  218. ear1="Sanare earring",
  219. ammo="Vanir Battery",
  220. body="Chev. Cuirass +1",
  221. neck="Warder's Charm +1",
  222. legs="Mes'yohi slacks",
  223. hands="Souv. Handschuhs",
  224. ring2="Shadow Ring",
  225. back="Engulfer Cape +1",
  226. waist="Creed Baudrier",
  227. feet="Cab. Leggings +1"})
  228. sets.MDT.Aegis = set_combine(sets.PDT.Aegis,{
  229. head="Chev. Armet +1",
  230. ammo="Vanir Battery",
  231. ear2="Spellbr. earring",
  232. ear1="Sanare Earring",
  233. body="Chev. Cuirass +1",
  234. neck="Warder's Charm +1",
  235. hands="Souv. Handschuhs",
  236. ring1="Defending ring",
  237. ring2="Shadow Ring",
  238. back="Engulfer Cape +1",
  239. waist="Creed Baudrier",
  240. legs="Mes'yohi slacks",
  241. feet="Chev. Sabatons +1"})
  242.  
  243. sets.DT = {}
  244. sets.DT.Ochain = set_combine(sets.PDT.Ochain,{
  245. waist="Nierenschutz"})
  246. sets.DT.Aegis = set_combine(sets.PDT.Aegis,{
  247. back="Philidor mantle",
  248. waist="Nierenschutz"})
  249.  
  250. -- Weakness/Kiting/Repulse Sets --
  251. sets.Weakness = {}
  252. sets.Weakness.Ochain = set_combine(sets.PDT.Ochain,{
  253. body="Rev. Surcoat +1"})
  254. sets.Weakness.Aegis = set_combine(sets.PDT.Aegis,{
  255. body="Rev. Surcoat +1"})
  256.  
  257. sets.Kiting = {}
  258. sets.Kiting.Ochain = set_combine(sets.PDT.Ochain,{legs="Carmine Cuisses",ammo="Egoist's tathlum",back="Xucau Mantle",head="Souveran Schaller",body="Souveran Cuirass",ear1="Genmei earring",feet="Souveran Schuhs +1"})
  259. sets.Kiting.Aegis = set_combine(sets.PDT.Aegis,{legs="Carmine Cuisses",ammo="Egoist's Tathlum",back="Xucau Mantle",body="Souveran cuirass",head="Souveran Schaller",ear1="Genmei earring",feet="Souveran Schuhs +1"})
  260.  
  261. sets.Repulse = {}
  262. sets.Repulse.Ochain = {sub="Ochain"}
  263. sets.Repulse.Aegis = {sub="Aegis"}
  264.  
  265. -- Hybrid/Shield Skill Sets --
  266. sets.TP.Hybrid = {
  267. ammo="Egoist's Tathlum",
  268. head="Chev. armet +1",
  269. neck="Twilight Torque",
  270. ear1="Ethereal Earring",
  271. ear2="Trux earring",
  272. body="Chev. Cuirass +1",
  273. waist="Flume Belt +1",
  274. hands="Chev. Gauntlets +1",
  275. ring2="Vocane Ring",
  276. ring1="Defending Ring",
  277. feet="Chev. Sabatons +1",
  278. back="Xucau Mantle",
  279. legs="Chev. Cuisses +1"}
  280. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{
  281. ear2="Zennaroi earring",
  282. waist="Olseni Belt"})
  283. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{
  284. ammo="Hasty Pinion +1",
  285. ear1="Steelflash earring"})
  286.  
  287. sets.TP.ShieldSkill = {
  288. ammo="Brigantia Pebble",
  289. head="Chev. armet +1",
  290. neck="Loricate Collar +1",
  291. ear1="Genmei earring",
  292. ear2="Ethereal earring",
  293. body="Souveran Cuirass",
  294. hands="Souv. Handschuhs",
  295. ring2="Vocane Ring",
  296. ring1="Defending Ring",
  297. back="Xucau Mantle",
  298. waist="Flume Belt +1",
  299. legs="Souveran Diechlings",
  300. feet="Souveran schuhs +1"}
  301.  
  302. -- WS Base Set --
  303. sets.WS = {}
  304.  
  305. -- WS Sets --
  306. sets.WS["Savage Blade"] = {
  307. ammo="Floestone",
  308. head="Lustratio cap",
  309. neck="Fotia Gorget",
  310. ear1="Moonshade Earring",
  311. ear2="Zwazo earring +1",
  312. body="Lustratio Harness",
  313. hands="Founder's gauntlets",
  314. ring1="Ifrit Ring +1",
  315. ring2="Ifrit Ring +1",
  316. back="Bleating Mantle",
  317. waist="Windbuffet Belt +1",
  318. legs="Acro Breeches",
  319. feet="Acro Leggings"}
  320. sets.WS["Savage Blade"].MidACC = set_combine(sets.WS["Savage Blade"],{
  321. head="Gavialis Helm",
  322. body="Mes. Haubergeon",
  323. hands="Acro Gauntlets",
  324. back="Grounded mantle +1",
  325. waist="Fotia Belt"})
  326. sets.WS["Savage Blade"].HighACC = set_combine(sets.WS["Savage Blade"].MidACC,{
  327. ring1="Ramuh Ring +1",
  328. ear1="Zennaroi earring",
  329. ear2="Zwazo Earring +1",
  330. ring2="Ramuh Ring +1",
  331. ammo="Hasty Pinion +1",
  332. feet="Xaddi Boots"})
  333.  
  334. sets.WS["Vorpal Blade"] = {
  335. ammo="Floestone",
  336. head="Otomi Helm",
  337. neck="Fotia Gorget",
  338. ear1="Moonshade Earring",
  339. ear2="Vulcan's Pearl",
  340. body="Mes. Haubergeon",
  341. hands="Founder's gauntlets",
  342. ring1="Ifrit Ring +1",
  343. ring2="Ifrit Ring +1",
  344. back="Bleating Mantle",
  345. waist="Windbuffet Belt +1",
  346. legs="Acro Breeches",
  347. feet="Whirlpool Greaves"}
  348. sets.WS["Vorpal Blade"].MidACC = set_combine(sets.WS["Vorpal Blade"],{
  349. ammo="Ginsen",
  350. ear2="Zennaroi earring",
  351. hands="Acro Gauntlets",
  352. waist="Fotia Belt"})
  353. sets.WS["Vorpal Blade"].HighACC = set_combine(sets.WS["Vorpal Blade"].MidACC,{
  354. ring1="Ramuh Ring +1",
  355. ring2="Ramuh Ring +1",
  356. ear1="Zennaroi earring",
  357. ear2="Zwazo Earring +1",
  358. neck="Iqabi necklace"})
  359.  
  360. sets.WS.Requiescat = {
  361. ammo="Floestone",
  362. head="Gavialis Helm",
  363. neck="Fotia Gorget",
  364. lear="Moonshade Earring",
  365. rear="Brutal Earring",
  366. body="Mes. Haubergeon",
  367. hands="Founder's Gauntlets",
  368. ring1="Ifrit Ring +1",
  369. ring2="Ifrit Ring +1",
  370. back="Bleating Mantle",
  371. waist="Fotia Belt",
  372. legs="Acro Breeches",
  373. feet="Acro Leggings"}
  374. sets.WS.Requiescat.MidACC = set_combine(sets.WS.Requiescat,{
  375. back="Grounded Mantle +1",
  376. ammo="Hasty Pinion +1",
  377. hands="Acro Gauntlets",
  378. ring2="Ramuh RIng +1"})
  379. sets.WS.Requiescat.HighACC = set_combine(sets.WS.Requiescat.MidACC,{
  380. ring1="Ramuh Ring +1",
  381. ear2="Zwazo Earring +1",
  382. ear1="Zennaroi earring",
  383. body="Mes. haubergeon",})
  384.  
  385. sets.WS.Resolution = {
  386. ammo="Cheruski Needle",
  387. head="Otomi Helm",
  388. neck="Soil Gorget",
  389. ear1="Moonshade Earring",
  390. ear2="Brutal Earring",
  391. body="Phorcys Korazin",
  392. body="Mes. Haubergeon",
  393. hands="Miki. Gauntlets",
  394. ring1="Strigoi Ring",
  395. ring2="Pyrosoul Ring",
  396. back="Atheling Mantle",
  397. waist="Soil Belt",
  398. feet="Mikinaak Greaves"}
  399. sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{
  400. head="Yaoyotl Helm",
  401. feet="Whirlpool Greaves"})
  402. sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{
  403. back="Letalis Mantle"})
  404.  
  405. sets.WS.Atonement = {
  406. ammo="Iron gobbet",
  407. head="Yorium Barbuta",
  408. body="Phorcys Korazin",
  409. ear1="Cryptic earring",
  410. ear2="Trux earring",
  411. hands="Yorium Gauntlets",
  412. ring1="Apeile Ring",
  413. ring2="Apeile Ring +1",
  414. back="earthcry mantle",
  415. waist="Fotia Belt",
  416. neck="Fotia Gorget",
  417. legs="Yorium Cuisses",
  418. feet="Yorium Sabatons"}
  419.  
  420.  
  421. sets.WS["Knights of Round"] = {
  422. ammo="Iron gobbet",
  423. head="Acro Helm",
  424. body="Phorcys Korazin",
  425. ear1="Moonshade earring",
  426. hands="Acro Gauntlets +1",
  427. ring1="Eihwaz Ring",
  428. ring2="Apeile Ring +1",
  429. back="earthcry mantle",
  430. waist="Flame Belt",
  431. neck="Flame Gorget",
  432. legs="Ogier's Breeches",
  433. feet="Yorium Sabatons"}
  434.  
  435.  
  436.  
  437. sets.WS["Circle Blade"] = {
  438. ammo="Floestone",
  439. head="Acro Helm",
  440. body="Lustratio Harness",
  441. ear1="Zwazo earring",
  442. ear2="Zwazo Earring +1",
  443. hands="Founder's Gauntlets",
  444. ring1="Ifrit Ring +1",
  445. ring2="Ifrit Ring +1",
  446. back="earthcry mantle",
  447. waist="Fotia Belt",
  448. neck="Fotia Gorget",
  449. legs="Acro Breeches",
  450. feet="Acro leggings"}
  451.  
  452. sets.Enmity = {
  453. ammo="Iron Gobbet",
  454. head="loess Barbuta +1",
  455. neck="unmoving collar +1",
  456. ear1="Cryptic earring",
  457. ear2="Trux Earring",
  458. body="Souveran Cuirass",
  459. hands="Yorium Gauntlets",
  460. ring1="Apeile Ring",
  461. ring2="Apeile Ring +1",
  462. back="earthcry Mantle",
  463. waist="Creed Baudrier",
  464. legs="Yorium Cuisses",
  465. feet="Yorium Sabatons"}
  466.  
  467. -- JA Sets --
  468. sets.JA = {}
  469. sets.JA["Shield Bash"] = set_combine(sets.Enmity,{hands="Cab. Gauntlets +1"})
  470. sets.JA.Sentinel = set_combine(sets.Enmity,{feet="Cab. Leggings +1"})
  471. sets.JA["Holy Circle"] = set_combine(sets.Enmity,{feet="Rev. Leggings +1"})
  472. sets.JA["Divine Emblem"] = set_combine(sets.Enmity,{feet="Chev. Sabatons +1"})
  473. sets.JA.Fealty = set_combine(sets.Enmity,{body="Cab. Surcoat +1"})
  474. sets.JA.Invincible = set_combine(sets.Enmity,{legs="Cab. Breeches +1"})
  475. sets.JA.Cover = {head="Rev. Coronet +1",body="Cab. Surcoat +1"}
  476. sets.JA.Palisade = set_combine(sets.Enmity)
  477. sets.JA.Provoke = set_combine(sets.Enmity)
  478. sets.JA.Warcry = set_combine(sets.Enmity)
  479. sets.JA.Souleater = set_combine(sets.Enmity)
  480. sets.JA["Last Resort"] = set_combine(sets.Enmity)
  481. sets.JA.Chivalry = {
  482. hands="Cab. Gauntlets +1"}
  483. sets.JA.Rampart = {
  484. head="Cab. Coronet +1",
  485. neck="Unmoving Collar +1",
  486. ear1="Cryptic earring",
  487. ear2="Trux Earring",
  488. body="Souveran Cuirass",
  489. hands="Yorium Gauntlets",
  490. ring1="Apeile Ring",
  491. ring2="Apeile Ring +1",
  492. back="Earthcry Mantle",
  493. waist="Creed Baudrier",
  494. legs="Yorium Cuisses",
  495. feet="Yorium Sabatons"}
  496.  
  497. -- Sublimation --
  498. sets.Sublimation = {}
  499.  
  500. -- Flourish --
  501. sets.Flourish = {}
  502.  
  503. -- Step --
  504. sets.Step = {}
  505.  
  506. -- Waltz --
  507. sets.Waltz = {}
  508.  
  509. sets.Precast = {}
  510. --Fastcast Set --
  511. sets.Precast.FastCast = {
  512. ammo="Impatiens",
  513. feet="Ejekamal boots",
  514. head="Carmine Mask",
  515. body="Nuevo Coselete",
  516. hands="Leyline gloves",
  517. waist="Siegel sash",
  518. neck="Orunmila's Torque",
  519. ear1="Loquac. Earring",
  520. ear2="Enchntr. earring +1",
  521. ring2="Prolix Ring",
  522. legs="Enif Cosciales"}
  523.  
  524. -- Precast Enhancing Magic --
  525. sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash"})
  526.  
  527. -- Cure Precast Set --
  528. sets.Precast.Cure = set_combine(sets.Precast.FastCast,{
  529. ammo="Impatiens",
  530. feet="Ejekamal boots",
  531. body="Nuevo Coselete",
  532. head="Carmine Mask",
  533. hands="Leyline gloves",
  534. neck="Orunmila's Torque",
  535. waist="Acerbic Sash +1",
  536. ear1="Nourish. Earring",
  537. ear2="Nourish. Earring +1",
  538. ring2="Prolix Ring",
  539. legs="Enif Cosciales"})
  540.  
  541. -- Midcast Base Set --
  542. sets.Midcast = {}
  543.  
  544. -- Spells Recast --
  545. sets.Midcast.Recast = {
  546. ammo="Brigantia pebble",
  547. head="Souveran Schaller",
  548. neck="Loricate Collar +1",
  549. ear2="Enchntr. Earring +1",
  550. ear1="Genmei earring",
  551. body="Souveran cuirass",
  552. hands="Souveran handschuhs",
  553. ring2="Vocane Ring",
  554. ring1="Defending Ring",
  555. back="Xucau Mantle",
  556. waist="Flume Belt +1",
  557. legs="Souveran Diechlings",
  558. feet="Souveran Schuhs +1"}
  559.  
  560. -- Divine Magic --
  561. sets.Midcast['Divine Magic'] = set_combine(sets.Midcast.Recast,{
  562. ear2="Divine Earring",
  563. hands="Eschite gauntlets",
  564. head="Jumalik Helm",
  565. neck="Divine Torque",
  566. body="Rev. Surcoat +1",
  567. back="Altruistic Cape",
  568. waist="Bishop's Sash"})
  569.  
  570. -- Cure Set --
  571. sets.Midcast.Cure = {
  572. ammo="Iron Gobbet",
  573. neck="unmoving collar +1",
  574. head="Loess Barbuta +1",
  575. ear1="Cryptic earring",
  576. ear2="Trux earring",
  577. body="Souveran Cuirass",
  578. hands="Yorium Gauntlets",
  579. ring1="Apeile Ring",
  580. ring2="Apeile Ring +1",
  581. back="Earthcry Mantle",
  582. waist="Creed Baudrier",
  583. legs="Yorium Cuisses",
  584. feet="Yorium Sabatons"}
  585.  
  586. -- Self Cure Set --
  587. sets.Midcast.SelfCure = set_combine(sets.Midcast.Cure,{
  588. waist="Chuq'aba belt",
  589. head="Souveran Schaller",
  590. ear2="Trux earring",
  591. legs="Souveran diechlings",
  592. feet="Souveran Schuhs +1",
  593. body="Souveran Cuirass",
  594. ring2="Vocane Ring"})
  595.  
  596. -- Flash Set --
  597. sets.Midcast.Flash = {
  598. ammo="Iron Gobbet",
  599. head="loess Barbuta +1",
  600. neck="unmoving collar +1",
  601. ear2="Trux earring",
  602. ear1="Cryptic earring",
  603. body="Souveran Cuirass",
  604. hands="Yorium Gauntlets",
  605. back="earthcry mantle",
  606. ring1="Apeile Ring",
  607. ring2="Apeile Ring +1",
  608. waist="Creed Baudrier",
  609. legs="Yorium Cuisses",
  610. feet="Yorium sabatons"}
  611.  
  612. -- Enhancing Magic --
  613. sets.Midcast['Enhancing Magic'] = {
  614. waist="Olympus Sash",
  615. ear1="Augment. earring",
  616. body="Yorium Cuirass",
  617. head="Carmine mask",
  618. feet="Souveran Schuhs +1",
  619. hands="Souv. Handschuhs",
  620. neck="Colossus's torque",
  621. back="Weard Mantle",
  622. ear2="Andoaa Earring",
  623. legs="Carmine Cuisses"}
  624.  
  625.  
  626. -- Stoneskin --
  627. sets.Midcast.Stoneskin = set_combine(sets.Midcast.Recast,{
  628. neck="Stone Gorget",
  629. ear2="Earthcry Earring",
  630. hands="Stone Mufflers",
  631. ring1="Levia. Ring +1",
  632. ring2="Levia. Ring",
  633. waist="Siegel Sash",
  634. legs="Haven Hose"})
  635.  
  636. -- Reprisal --
  637. sets.Midcast.Reprisal = {
  638. ammo="Impatiens",
  639. head="Chev. Armet +1",
  640. neck="Orunmila's Torque",
  641. ear1="Ethereal Earring",
  642. body="Nuevo Coselete",
  643. ring1="Eihwaz Ring",
  644. feet="Rev. Leggings +1"}
  645. sets.Midcast.Crusade = {
  646. waist="Flume Belt +1",
  647. ear1="Genmei earring",
  648. ring1="Defending Ring",
  649. ring2="Vocane Ring",
  650. ammo="Brigantia Pebble",
  651. body="Shab. Cuirass +1",
  652. head="Souveran Schaller",
  653. feet="Souveran Schuhs +1",
  654. hands="Souv. Handschuhs",
  655. neck="Loricate collar +1",
  656. back="Xucau Mantle",
  657. ear2="Impreg. Earring",
  658. legs="Carmine Cuisses"}
  659.  
  660. end
  661.  
  662. function pretarget(spell,action)
  663. if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  664. cancel_spell()
  665. send_command('input /item "Echo Drops" <me>')
  666. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  667. degrade_spell(spell,Cure_Spells)
  668. elseif spell.english == "Berserk" and buffactive.Berserk then -- Cancel Berserk If Berserk Is On --
  669. send_command('cancel Berserk')
  670. elseif spell.english == "Defender" and buffactive.Defender then -- Cancel Defender If Defender Is On --
  671. send_command('cancel Defender')
  672. elseif spell.english == "Souleater" and buffactive.Souleater then -- Cancel Souleater If Souleater Is On --
  673. send_command('cancel Souleater')
  674. elseif spell.english == "Last Resort" and buffactive["Last Resort"] then -- Cancel Last Resort If Last Resort Is On --
  675. send_command('cancel Last Resort')
  676. elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  677. cancel_spell()
  678. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  679. return
  680. elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  681. if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  682. cancel_spell()
  683. send_command('input /ja Addendum: White <me>')
  684. elseif spell.english == "Manifestation" then
  685. cancel_spell()
  686. send_command('input /ja Accession <me>')
  687. elseif spell.english == "Alacrity" then
  688. cancel_spell()
  689. send_command('input /ja Celerity <me>')
  690. elseif spell.english == "Parsimony" then
  691. cancel_spell()
  692. send_command('input /ja Penury <me>')
  693. end
  694. elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  695. if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  696. cancel_spell()
  697. send_command('input /ja Addendum: Black <me>')
  698. elseif spell.english == "Accession" then
  699. cancel_spell()
  700. send_command('input /ja Manifestation <me>')
  701. elseif spell.english == "Celerity" then
  702. cancel_spell()
  703. send_command('input /ja Alacrity <me>')
  704. elseif spell.english == "Penury" then
  705. cancel_spell()
  706. send_command('input /ja Parsimony <me>')
  707. end
  708. end
  709. end
  710.  
  711. function precast(spell,action)
  712. if spell.type == "WeaponSkill" then
  713. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  714. cancel_spell()
  715. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  716. return
  717. else
  718. equipSet = sets.WS
  719. if equipSet[spell.english] then
  720. equipSet = equipSet[spell.english]
  721. end
  722. if equipSet[AccArray[AccIndex]] then
  723. equipSet = equipSet[AccArray[AccIndex]]
  724. end
  725. if spell.english == "Savage Blade" and (world.day_element == 'Light' or world.day_element == 'Wind') then -- Equip Mekira-oto +1 On Darksday Or Earthsday --
  726. equipSet = set_combine(equipSet,{head="Gavialis Helm"})
  727. end
  728. if player.tp > 2999 then
  729. if spell.english == "Resolution" then -- Equip Kokou's Earring When You Have 300 TP --
  730. equipSet = set_combine(equipSet,{ear1="Kokou's Earring"})
  731. elseif spell.english == "Chant du Cygne" then -- Equip Jupiter's Pearl When You Have 300 TP --
  732. equipSet = set_combine(equipSet,{ear1="Jupiter's Pearl"})
  733. end
  734. end
  735. equip(equipSet)
  736. end
  737. elseif spell.type == "JobAbility" then
  738. if sets.JA[spell.english] then
  739. equip(sets.JA[spell.english])
  740. end
  741. elseif spell.type == "Rune" then
  742. equip(sets.Enmity)
  743. elseif spell.action_type == 'Magic' then
  744. if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  745. cancel_spell()
  746. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  747. return
  748. else
  749. if string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
  750. equip(sets.Precast.Cure)
  751. elseif spell.english == "Reprisal" then
  752. if buffactive['Blaze Spikes'] or buffactive['Ice Spikes'] or buffactive['Shock Spikes'] then -- Cancel Blaze Spikes, Ice Spikes or Shock Spikes When You Cast Reprisal --
  753. cast_delay(0.2)
  754. send_command('cancel Blaze Spikes,Ice Spikes,Shock Spikes')
  755. end
  756. equip(sets.Precast.FastCast)
  757. elseif string.find(spell.english,'Utsusemi') then
  758. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  759. cancel_spell()
  760. add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  761. return
  762. else
  763. equip(sets.Precast.FastCast)
  764. end
  765. elseif sets.Precast[spell.skill] then
  766. equip(sets.Precast[spell.skill])
  767. else
  768. equip(sets.Precast.FastCast)
  769. end
  770. end
  771. elseif string.find(spell.type,'Flourish') then
  772. if spell.english == "Animated Flourish" then
  773. equip(sets.Enmity)
  774. else
  775. equip(sets.Flourish)
  776. end
  777. elseif spell.type == "Step" then
  778. equip(sets.Step)
  779. elseif spell.type == "Waltz" then
  780. refine_waltz(spell,action)
  781. equip(sets.Waltz)
  782. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  783. cast_delay(0.2)
  784. send_command('cancel Sneak')
  785. end
  786. if Twilight == 'Twilight' then
  787. equip(sets.Twilight)
  788. end
  789. end
  790.  
  791. function midcast(spell,action)
  792. equipSet = {}
  793. if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  794. equipSet = sets.Midcast
  795. if equipSet[spell.english] then
  796. equipSet = equipSet[spell.english]
  797. elseif (string.find(spell.english,'Cur') or spell.english == "Wild Carrot" or spell.english == "Healing Breeze") and spell.english ~= "Cursna" then
  798. if spell.target.name == player.name then
  799. equipSet = equipSet.SelfCure
  800. else
  801. equipSet = equipSet.Cure
  802. end
  803. elseif string.find(spell.english,'Protect') or string.find(spell.english,'Shell') then
  804. if spell.target.name == player.name then
  805. equipSet = set_combine(equipSet,{ring2="Sheltered Ring"})
  806. end
  807. elseif spell.english == "Stoneskin" then
  808. if buffactive.Stoneskin then
  809. send_command('@wait 1.7;cancel stoneskin')
  810. end
  811. equipSet = equipSet.Stoneskin
  812. elseif spell.english == "Sneak" then
  813. if spell.target.name == player.name and buffactive['Sneak'] then
  814. send_command('cancel sneak')
  815. end
  816. equipSet = equipSet.Recast
  817. elseif string.find(spell.english,'Banish') then
  818. equipSet = set_combine(equipSet,{ring1="Fenian Ring"})
  819. elseif EnmityBlueMagic:contains(spell.english) or spell.english == "Stun" or string.find(spell.english,'Absorb') or spell.english == 'Aspir' or spell.english == 'Drain' then
  820. if buffactive.Sentinel then
  821. equipSet = equipSet.Recast
  822. else
  823. equipSet = equipSet.Flash
  824. end
  825. elseif string.find(spell.english,'Spikes') then
  826. equipSet = equipSet.Recast
  827. elseif string.find(spell.english,'Utsusemi') then
  828. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  829. send_command('@wait 1.7;cancel Copy Image*')
  830. end
  831. equipSet = equipSet.Recast
  832. elseif spell.english == 'Monomi: Ichi' then
  833. if buffactive['Sneak'] then
  834. send_command('@wait 1.7;cancel sneak')
  835. end
  836. equipSet = equipSet.Recast
  837. elseif equipSet[spell.skill] then
  838. equipSet = equipSet[spell.skill]
  839. end
  840. elseif equipSet[spell.english] then
  841. equipSet = equipSet[spell.english]
  842. end
  843. equip(equipSet)
  844. end
  845.  
  846. function aftercast(spell,action)
  847. if not spell.interrupted then
  848. if spell.type == "WeaponSkill" then
  849. send_command('wait 0.2;gs c TP')
  850. elseif spell.english == "Banish II" then -- Banish II Countdown --
  851. send_command('@wait 20;input /echo Banish Effect: [WEARING OFF IN 10 SEC.]')
  852. elseif spell.english == "Holy Circle" then -- Holy Circle Countdown --
  853. send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  854. end
  855. end
  856. status_change(player.status)
  857. end
  858.  
  859. function status_change(new,old)
  860. if Armor == 'PDT' then
  861. equip(sets.PDT[ShieldArray[ShieldIndex]])
  862. elseif Armor == 'MDT' then
  863. equip(sets.MDT[ShieldArray[ShieldIndex]])
  864. elseif Armor == 'Kiting' then
  865. equip(sets.Kiting[ShieldArray[ShieldIndex]])
  866. elseif Armor == 'Weakness' then
  867. equip(sets.Weakness[ShieldArray[ShieldIndex]])
  868. elseif Armor == 'DT' then
  869. equip(sets.DT[ShieldArray[ShieldIndex]])
  870. elseif buffactive["Sublimation: Activated"] then
  871. equip(sets.Sublimation)
  872. elseif new == 'Engaged' then
  873. equipSet = sets.TP
  874. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  875. equipSet = equipSet["Hybrid"]
  876. end
  877. if equipSet[player.equipment.main] then
  878. equipSet = equipSet[player.equipment.main]
  879. end
  880. if equipSet[ShieldArray[ShieldIndex]] then
  881. equipSet = equipSet[ShieldArray[ShieldIndex]]
  882. end
  883. if equipSet[AccArray[AccIndex]] then
  884. equipSet = equipSet[AccArray[AccIndex]]
  885. end
  886. if buffactive.Ionis and equipSet["Ionis"] then
  887. equipSet = equipSet["Ionis"]
  888. end
  889. if Armor == 'ShieldSkill' then
  890. equipSet = set_combine(equipSet,sets.TP.ShieldSkill)
  891. end
  892. equip(equipSet)
  893. elseif new == 'Idle' then
  894. equipSet = sets.Idle
  895. if equipSet[IdleArray[IdleIndex]] then
  896. equipSet = equipSet[IdleArray[IdleIndex]]
  897. end
  898. if equipSet[ShieldArray[ShieldIndex]] then
  899. equipSet = equipSet[ShieldArray[ShieldIndex]]
  900. end
  901. equip(equipSet)
  902. elseif new == 'Resting' then
  903. equip(sets.Resting)
  904. end
  905. if Repulse == 'ON' then -- Use Repulse Toggle To Lock Repulse Mantle --
  906. equip(sets.Repulse[ShieldArray[ShieldIndex]])
  907. end
  908. if Twilight == 'Twilight' then
  909. equip(sets.Twilight)
  910. end
  911. end
  912.  
  913. function buff_change(buff,gain)
  914. buff = string.lower(buff)
  915. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  916. if gain then
  917. send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  918. else
  919. send_command('timers delete "Aftermath: Lv.3"')
  920. add_to_chat(123,'AM3: [OFF]')
  921. end
  922. elseif buff == 'weakness' then -- Weakness Timer --
  923. if gain then
  924. send_command('timers create "Weakness" 300 up')
  925. else
  926. send_command('timers delete "Weakness"')
  927. end
  928. end
  929. if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP --
  930. equip({neck="Berserker's Torque"})
  931. else
  932. if not midaction() then
  933. status_change(player.status)
  934. end
  935. end
  936. end
  937.  
  938. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  939. function self_command(command)
  940. if command == 'C1' then -- Accuracy Level Toggle --
  941. AccIndex = (AccIndex % #AccArray) + 1
  942. status_change(player.status)
  943. add_to_chat(158,'Accuracy Level: '..AccArray[AccIndex])
  944. elseif command == 'C5' then -- Auto Update Gear Toggle --
  945. status_change(player.status)
  946. add_to_chat(158,'Auto Update Gear')
  947. elseif command == 'C2' then -- Shield Type Toggle --
  948. ShieldIndex = (ShieldIndex % #ShieldArray) + 1
  949. status_change(player.status)
  950. add_to_chat(158,'Shield Type: '..ShieldArray[ShieldIndex])
  951. elseif command == 'C9' then -- Hybrid Toggle --
  952. if Armor == 'Hybrid' then
  953. Armor = 'None'
  954. add_to_chat(123,'Hybrid Set: [Unlocked]')
  955. else
  956. Armor = 'Hybrid'
  957. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  958. end
  959. status_change(player.status)
  960. elseif command == 'C7' then -- PDT Toggle --
  961. if Armor == 'PDT' then
  962. Armor = 'None'
  963. add_to_chat(123,'PDT Set: [Unlocked]')
  964. else
  965. Armor = 'PDT'
  966. add_to_chat(158,'PDT Set: [Locked]')
  967. end
  968. status_change(player.status)
  969. elseif command == 'C15' then -- MDT Toggle --
  970. if Armor == 'MDT' then
  971. Armor = 'None'
  972. add_to_chat(123,'MDT Set: [Unlocked]')
  973. else
  974. Armor = 'MDT'
  975. add_to_chat(158,'MDT Set: [Locked]')
  976. end
  977. status_change(player.status)
  978. elseif command == 'C12' then -- Kiting Toggle --
  979. if Armor == 'Kiting' then
  980. Armor = 'None'
  981. add_to_chat(123,'Kiting Set: [Unlocked]')
  982. else
  983. Armor = 'Kiting'
  984. add_to_chat(158,'Kiting Set: [Locked]')
  985. end
  986. status_change(player.status)
  987. elseif command == 'C10' then -- Weakness Set Toggle --
  988. if Armor == 'Weakness' then
  989. Armor = 'None'
  990. add_to_chat(123,'Weakness Set: [Unlocked]')
  991. else
  992. Armor = 'Weakness'
  993. add_to_chat(158,'Weakness Set: [Locked]')
  994. end
  995. status_change(player.status)
  996. elseif command == 'C17' then -- DT Toggle --
  997. if Armor == 'DT' then
  998. Armor = 'None'
  999. add_to_chat(123,'DT Set: [Unlocked]')
  1000. else
  1001. Armor = 'DT'
  1002. add_to_chat(158,'DT Set: [Locked]')
  1003. end
  1004. status_change(player.status)
  1005. elseif command == 'C16' then -- Repulse Mantle Toggle --
  1006. if Repulse == 'ON' then
  1007. Repulse = 'OFF'
  1008. add_to_chat(123,'Repulse Mantle: [Unlocked]')
  1009. else
  1010. Repulse = 'ON'
  1011. add_to_chat(158,'Repulse Mantle: [Locked]')
  1012. end
  1013. status_change(player.status)
  1014. elseif command == 'C11' then -- Shield Skill Toggle --
  1015. if Armor == 'ShieldSkill' then
  1016. Armor = 'None'
  1017. add_to_chat(123,'MP PDT Set: [Unlocked]')
  1018. else
  1019. Armor = 'ShieldSkill'
  1020. add_to_chat(158,'MP PDT Set: [Locked]')
  1021. end
  1022. status_change(player.status)
  1023. elseif command == 'C3' then -- Twilight Toggle --
  1024. if Twilight == 'Twilight' then
  1025. Twilight = 'None'
  1026. add_to_chat(123,'Twilight Set: [Unlocked]')
  1027. else
  1028. Twilight = 'Twilight'
  1029. add_to_chat(158,'Twilight Set: [locked]')
  1030. end
  1031. status_change(player.status)
  1032. elseif command == 'C8' then -- Distance Toggle --
  1033. if player.target.distance then
  1034. target_distance = math.floor(player.target.distance*10)/10
  1035. add_to_chat(158,'Distance: '..target_distance)
  1036. else
  1037. add_to_chat(123,'No Target Selected')
  1038. end
  1039. elseif command == 'C6' then -- Idle Toggle --
  1040. IdleIndex = (IdleIndex % #IdleArray) + 1
  1041. status_change(player.status)
  1042. add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
  1043. elseif command == 'TP' then
  1044. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  1045. elseif command:match('^SC%d$') then
  1046. send_command('//' .. sc_map[command])
  1047. end
  1048. end
  1049.  
  1050. function actualCost(originalCost)
  1051. if buffactive["Penury"] then
  1052. return originalCost*.5
  1053. elseif buffactive["Light Arts"] or buffactive["Addendum: White"] then
  1054. return originalCost*.9
  1055. elseif buffactive["Dark Arts"] or buffactive["Addendum: Black"] then
  1056. return originalCost*1.1
  1057. else
  1058. return originalCost
  1059. end
  1060. end
  1061.  
  1062. function degrade_spell(spell,degrade_array)
  1063. spell_index = table.find(degrade_array,spell.name)
  1064. if spell_index > 1 then
  1065. new_spell = degrade_array[spell_index - 1]
  1066. change_spell(new_spell,spell.target.raw)
  1067. add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  1068. end
  1069. end
  1070.  
  1071. function change_spell(spell_name,target)
  1072. cancel_spell()
  1073. send_command('//'..spell_name..' '..target)
  1074. end
  1075.  
  1076. function refine_waltz(spell,action)
  1077. if spell.type ~= 'Waltz' then
  1078. return
  1079. end
  1080.  
  1081. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" then
  1082. return
  1083. end
  1084.  
  1085. local newWaltz = spell.english
  1086. local waltzID
  1087.  
  1088. local missingHP
  1089.  
  1090. if spell.target.type == "SELF" then
  1091. missingHP = player.max_hp - player.hp
  1092. elseif spell.target.isallymember then
  1093. local target = find_player_in_alliance(spell.target.name)
  1094. local est_max_hp = target.hp / (target.hpp/100)
  1095. missingHP = math.floor(est_max_hp - target.hp)
  1096. end
  1097.  
  1098. if missingHP ~= nil then
  1099. if player.sub_job == 'DNC' then
  1100. if missingHP < 40 and spell.target.name == player.name then
  1101. add_to_chat(123,'Full HP!')
  1102. cancel_spell()
  1103. return
  1104. elseif missingHP < 150 then
  1105. newWaltz = 'Curing Waltz'
  1106. waltzID = 190
  1107. elseif missingHP < 300 then
  1108. newWaltz = 'Curing Waltz II'
  1109. waltzID = 191
  1110. else
  1111. newWaltz = 'Curing Waltz III'
  1112. waltzID = 192
  1113. end
  1114. else
  1115. return
  1116. end
  1117. end
  1118.  
  1119. local waltzTPCost = {['Curing Waltz'] = 200, ['Curing Waltz II'] = 350, ['Curing Waltz III'] = 500}
  1120. local tpCost = waltzTPCost[newWaltz]
  1121.  
  1122. local downgrade
  1123.  
  1124. if player.tp < tpCost then
  1125.  
  1126. if player.tp < 200 then
  1127. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  1128. cancel_spell()
  1129. return
  1130. elseif player.tp < 350 then
  1131. newWaltz = 'Curing Waltz'
  1132. elseif player.tp < 500 then
  1133. newWaltz = 'Curing Waltz II'
  1134. end
  1135.  
  1136. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  1137. end
  1138.  
  1139. if newWaltz ~= spell.english then
  1140. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  1141. if downgrade then
  1142. add_to_chat(8, downgrade)
  1143. end
  1144. cancel_spell()
  1145. return
  1146. end
  1147.  
  1148. if missingHP > 0 then
  1149. add_to_chat(8,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  1150. end
  1151. end
  1152.  
  1153. function find_player_in_alliance(name)
  1154. for i,v in ipairs(alliance) do
  1155. for k,p in ipairs(v) do
  1156. if p.name == name then
  1157. return p
  1158. end
  1159. end
  1160. end
  1161. end
  1162.  
  1163. function sub_job_change(newSubjob, oldSubjob)
  1164. select_default_macro_book()
  1165. end
  1166.  
  1167. function set_macro_page(set,book)
  1168. if not tonumber(set) then
  1169. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  1170. return
  1171. end
  1172. if set < 1 or set > 10 then
  1173. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  1174. return
  1175. end
  1176.  
  1177. if book then
  1178. if not tonumber(book) then
  1179. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  1180. return
  1181. end
  1182. if book < 1 or book > 20 then
  1183. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  1184. return
  1185. end
  1186. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  1187. else
  1188. send_command('@input /macro set '..tostring(set))
  1189. end
  1190. end
  1191.  
  1192. function select_default_macro_book()
  1193. -- Default macro set/book
  1194. if player.sub_job == 'WAR' then
  1195. set_macro_page(4, 18)
  1196. elseif player.sub_job == 'DRK' then
  1197. set_macro_page(4, 18)
  1198. elseif player.sub_job == 'NIN' then
  1199. set_macro_page(4, 18)
  1200. elseif player.sub_job == 'BLU' then
  1201. set_macro_page(4, 18)
  1202. elseif player.sub_job == 'DNC' then
  1203. set_macro_page(4, 18)
  1204. elseif player.sub_job == 'RDM' then
  1205. set_macro_page(4, 18)
  1206. elseif player.sub_job == 'WHM' then
  1207. set_macro_page(4, 18)
  1208. else
  1209. set_macro_page(1, 9)
  1210. end
  1211. end
Advertisement
Add Comment
Please, Sign In to add comment