Advertisement
Guest User

WAR_LUA

a guest
Jan 17th, 2018
568
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.40 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Some of Motenten's Functions ** --
  3. -- All Credit goes to Bokura and her Credit notes, I Simply altered a few things to make it work for me and simplify it slightly--
  4.  
  5. function get_sets()
  6. include('organizer-lib')
  7.  
  8. --KeyBinds
  9. send_command('bind ^f1 gs c C7')
  10. send_command('bind ^f2 gs c C15')
  11. send_command('bind ^f3 gs c C16')
  12. send_command('bind !f1 gs c C2')
  13. send_command('bind !f2 gs c C10')
  14. send_command('bind !f3 gs c C5')
  15.  
  16. AccIndex = 1
  17. AccArray = {"LowACC","MidACC","HighACC","MaxACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid. First Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below. Most of These Sets Are Empty So You Need To Edit Them On Your Own. Remember To Check What The Combined Set Is For Each Sets. --
  18. WeaponIndex = 1
  19. WeaponArray = {"Chango","Ukonvasara","Ragnarok","Bravura","Quint","Generic"} -- Default Main Weapon Is Ukonvasara. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
  20. IdleIndex = 1
  21. IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement --
  22. Armor = 'None'
  23. Twilight = 'None'
  24. Attack = 'OFF' -- Set Default WS Attack Set ON or OFF Here --
  25. Retaliation = 'OFF' -- Set Default Retaliation ON or OFF Here --
  26. select_default_macro_book() -- Change Default Macro Book At The End --
  27.  
  28. -- Gavialis Helm --
  29. elements = {}
  30. elements.equip = {head="Gavialis Helm"}
  31. elements["Ukko's Fury"] = S{"Light","Lightning","Wind"}
  32. elements.Resolution = S{"Lightning","Wind","Earth"}
  33.  
  34. sets.Idle = {}
  35. -- Idle/Town Sets --
  36. sets.Idle.Regen = {
  37. ammo="Staunch Tathlum",
  38. head="Sulevia's Mask +1",
  39. body="Sulevia's Plate. +2",
  40. hands="Sulev. Gauntlets +2",
  41. legs="Sulev. Cuisses +1",
  42. feet="Sulev. Leggings +2",
  43. neck="Loricate Torque +1",
  44. waist="Ioskeha Belt",
  45. left_ear="Telos Earring",
  46. right_ear="Cessance Earring",
  47. left_ring="Defending Ring",
  48. right_ring="Vocane Ring",
  49. back="Agema Cape",
  50. }
  51. sets.Idle.Regen.Chango = set_combine(sets.Idle.Regen,{
  52. main="Chango",
  53. sub="Bloodrain Strap"})
  54. sets.Idle.Regen.Ukonvasara = set_combine(sets.Idle.Regen,{
  55. main="Ukonvasara",
  56. sub="Bloodrain Strap"})
  57. sets.Idle.Regen.Ragnarok = set_combine(sets.Idle.Regen,{
  58. main="Ragnarok",
  59. sub="Bloodrain Strap"})
  60. sets.Idle.Regen.Bravura = set_combine(sets.Idle.Regen,{
  61. main="Bravura",
  62. sub="Bloodrain Strap"})
  63. sets.Idle.Regen.Quint = set_combine(sets.Idle.Regen,{
  64. main="Quint Spear",
  65. sub="Bloodrain Strap"})
  66. sets.Idle.Regen.Generic = set_combine(sets.Idle.Regen,{})
  67. -- These 2 sets are here if you want them. Simply add "DW" and/or "Fencer" in the weaponarray after Generic.
  68. --sets.Idle.Regen.DW = set_combine(sets.Idle.Regen,{})
  69. --sets.Idle.Regen.Fencer = set_combine(sets.Idle.Regen,{})
  70.  
  71. sets.Idle.Movement = set_combine(sets.Idle.Regen,{})
  72. sets.Idle.Movement.Ukonvasara = set_combine(sets.Idle.Movement,{
  73. main="Ukonvasara",
  74. sub="Bloodrain Strap"})
  75. sets.Idle.Movement.Chango = set_combine(sets.Idle.Movement,{
  76. main="Chango",
  77. sub="Bloodrain Strap"})
  78. sets.Idle.Movement.Ragnarok = set_combine(sets.Idle.Movement,{
  79. main="Ragnarok",
  80. sub="Bloodrain Strap"})
  81. sets.Idle.Movement.Bravura = set_combine(sets.Idle.Movement,{
  82. main="Bravura",
  83. sub="Bloodrain Strap"})
  84. sets.Idle.Movement.Quint = set_combine(sets.Idle.Movement,{
  85. main="Quint Spear",
  86. sub="Bloodrain Strap"})
  87. sets.Idle.Movement.Generic = set_combine(sets.Idle.Movement,{})
  88. --sets.Idle.Movement.DW = set_combine(sets.Idle.Movement,{})
  89. --sets.Idle.Movement.Fencer = set_combine(sets.Idle.Movement,{})
  90.  
  91. sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  92.  
  93. -- TP Base Set --
  94. sets.TP = {}
  95.  
  96. -- Chango TP Sets --
  97. sets.TP.Chango = {
  98. ammo="Ginsen",
  99. head="Flam. Zucchetto +2",
  100. body="Valorous Mail",
  101. hands="Sulev. Gauntlets +2",
  102. legs="Pumm. Cuisses +2",
  103. feet="Pumm. Calligae +2",
  104. neck="Ainia Collar",
  105. waist="Ioskeha Belt",
  106. left_ear="Brutal Earring",
  107. right_ear="Cessance Earring",
  108. left_ring="Petrov Ring",
  109. right_ring="Chirich Ring",
  110. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
  111.  
  112. sets.TP.Chango.MidACC = set_combine(sets.TP.Chango,{})
  113. sets.TP.Chango.HighACC = set_combine(sets.TP.Chango.MidACC,{})
  114. sets.TP.Chango.MaxACC = set_combine(sets.TP.Chango.HighACC,{})
  115.  
  116. -- Ukonvasara TP Sets --
  117. sets.TP.Ukonvasara = {
  118. ammo="Ginsen",
  119. head="Flam. Zucchetto +2",
  120. body="Valorous Mail",
  121. hands="Sulev. Gauntlets +2",
  122. legs="Pumm. Cuisses +2",
  123. feet="Pumm. Calligae +2",
  124. neck="Ainia Collar",
  125. waist="Ioskeha Belt",
  126. left_ear="Brutal Earring",
  127. right_ear="Cessance Earring",
  128. left_ring="Petrov Ring",
  129. right_ring="Chirich Ring",
  130. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
  131.  
  132. sets.TP.Ukonvasara.MidACC = set_combine(sets.TP.Ukonvasara,{})
  133. sets.TP.Ukonvasara.HighACC = set_combine(sets.TP.Ukonvasara.MidACC,{})
  134. sets.TP.Ukonvasara.MaxACC = set_combine(sets.TP.Ukonvasara.HighACC,{})
  135.  
  136. -- Ragnarok TP Sets --
  137. sets.TP.Ragnarok = {
  138. ammo="Ginsen",
  139. head="Flam. Zucchetto +2",
  140. body="Flamma Korazin +2",
  141. hands="Sulev. Gauntlets +2",
  142. legs="Pumm. Cuisses +2",
  143. feet="Valorous Greaves",
  144. neck="Ainia Collar",
  145. waist="Ioskeha Belt",
  146. left_ear="Brutal Earring",
  147. right_ear="Cessance Earring",
  148. left_ring="Petrov Ring",
  149. right_ring="Chirich Ring",
  150. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  151. }
  152. sets.TP.Ragnarok.MidACC = set_combine(sets.TP.Ragnarok,{})
  153. sets.TP.Ragnarok.HighACC = set_combine(sets.TP.Ragnarok.MidACC,{})
  154. sets.TP.Ragnarok.MaxACC = set_combine(sets.TP.Ragnarok.HighACC,{})
  155.  
  156.  
  157. -- Bravura TP Sets --
  158. sets.TP.Bravura = {
  159. ammo="Ginsen",
  160. head="Flam. Zucchetto +2",
  161. body="Valorous Mail",
  162. hands="Sulev. Gauntlets +2",
  163. legs="Pumm. Cuisses +2",
  164. feet="Pumm. Calligae +2",
  165. neck="Ainia Collar",
  166. waist="Ioskeha Belt",
  167. left_ear="Brutal Earring",
  168. right_ear="Cessance Earring",
  169. left_ring="Petrov Ring",
  170. right_ring="Chirich Ring",
  171. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
  172.  
  173. sets.TP.Bravura.MidACC = set_combine(sets.TP.Bravura,{})
  174. sets.TP.Bravura.HighACC = set_combine(sets.TP.Bravura.MidACC,{})
  175. sets.TP.Bravura.MaxACC = set_combine(sets.TP.Bravura.HighACC,{})
  176.  
  177. -- Quint Spear (Omen) TP Sets --
  178. sets.TP.Quint = {
  179. ammo="Ginsen",
  180. head="Flam. Zucchetto +2",
  181. body="Flamma Korazin +2",
  182. hands="Sulev. Gauntlets +2",
  183. legs="Pumm. Cuisses +2",
  184. feet="Pumm. Calligae +2",
  185. neck="Ainia Collar",
  186. waist="Ioskeha Belt",
  187. left_ear="Telos Earring",
  188. right_ear="Cessance Earring",
  189. left_ring="Petrov Ring",
  190. right_ring="Chirich Ring",
  191. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  192. }
  193. sets.TP.Quint.MidACC = set_combine(sets.TP.Quint,{
  194. })
  195. sets.TP.Quint.HighACC = set_combine(sets.TP.Quint.MidACC,{
  196. })
  197. sets.TP.Quint.MaxACC = set_combine(sets.TP.Quint.HighACC,{})
  198.  
  199. --Duel Wield Set
  200. sets.TP.DW = {
  201. }
  202. sets.TP.DW.MidACC = set_combine(sets.TP.DW,{
  203. })
  204. sets.TP.DW.HighACC = set_combine(sets.TP.DW.MidACC,{
  205. })
  206. sets.TP.DW.MaxACC = set_combine(sets.TP.DW.HighACC,{})
  207.  
  208. --Fencer Set
  209. sets.TP.Fencer = {
  210. }
  211. sets.TP.Fencer.MidACC = set_combine(sets.TP.Fencer,{
  212. })
  213. sets.TP.Fencer.HighACC = set_combine(sets.TP.Fencer.MidACC,{
  214. })
  215. sets.TP.Fencer.MaxACC = set_combine(sets.TP.Fencer.HighACC,{})
  216.  
  217. --Generic Set
  218. sets.TP.Generic = {
  219. }
  220. sets.TP.Generic.MidACC = set_combine(sets.TP.Generic,{
  221. })
  222. sets.TP.Generic.HighACC = set_combine(sets.TP.Generic.MidACC,{
  223. })
  224. sets.TP.Generic.MaxACC = set_combine(sets.TP.Generic.HighACC,{})
  225.  
  226. -- Mighty Strikes TP Set --
  227. sets.TP.MS = {}
  228.  
  229. -- Retaliation Set --
  230. sets.TP.Retaliation = {hands="Pumm. Mufflers +2",feet="Boii Calligae +1"}
  231.  
  232. -- AM3 Rancor ON Mantle --
  233. sets.TP.Rancor = {back=""}
  234.  
  235. -- PDT/MDT Sets --
  236. sets.PDT = {
  237. ammo="Staunch Tathlum",
  238. head="Sulev. Mask +1",
  239. body="Sulev. Plate. +2",
  240. hands="Sulev. Gauntlets +2",
  241. legs="Sulev. Cuisses +1",
  242. feet="Sulev. Leggings +2",
  243. neck="Loricate Torque +1",
  244. waist="Ioskeha Belt",
  245. left_ear="Telos Earring",
  246. right_ear="Cessance Earring",
  247. left_ring="Defending Ring",
  248. right_ring="Vocane Ring",
  249. back="Agema Cape"}
  250.  
  251. sets.MDT = set_combine(sets.PDT,{})
  252.  
  253. -- Hybrid/Kiting Sets for me personally this is my Bravura AM set when expecting to take dmg --
  254. sets.TP.Hybrid = {
  255. ammo="Staunch Tathlum",
  256. head="Sulevia's Mask +1",
  257. body="Emicho Haubert",
  258. hands="Pumm. Mufflers +2",
  259. legs="Pumm. Cuisses +2",
  260. feet="Pumm. Calligae +2",
  261. neck="Loricate Torque +1",
  262. waist="Ioskeha Belt",
  263. left_ear="Telos Earring",
  264. right_ear="Zennaroi Earring",
  265. left_ring="Defending Ring",
  266. right_ring="Vocane Ring",
  267. back="Agema cape"},
  268.  
  269. }
  270. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  271. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  272. sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{})
  273.  
  274. sets.Kiting = set_combine(sets.PDT,{feet="Hermes' Sandals"})
  275.  
  276. -- CP Mantle --
  277. sets.CP = {back="Mecisto. Mantle"}
  278.  
  279. -- WS Base Set --
  280. sets.WS = {
  281. ammo="Seething Bomblet +1",
  282. head="Sulev. Mask +1",
  283. body="Sulev. Plate. +2",
  284. hands="Sulev. Gauntlets +2",
  285. legs="Sulev. Cuisses +1",
  286. feet="Sulev. Leggings +2",
  287. neck="Fotia Gorget",
  288. waist="Fotia Belt",
  289. left_ear="Telos Earring",
  290. right_ear="Moonshade Earring",
  291. left_ring="Ifrit Ring",
  292. right_ring="Ifrit Ring",
  293. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  294. }
  295.  
  296. -- Upheaval Sets --
  297. sets.WS.Upheaval = {
  298. ammo="Knobkierrie",
  299. head={ name="Odyssean Helm", augments={'Accuracy+28','Weapon skill damage +3%','STR+11','Attack+4',}},
  300. body="Valorous mail",
  301. hands="Sulev. Gauntlets +2",
  302. legs={ name="Odyssean Cuisses", augments={'Accuracy+21 Attack+21','Weapon skill damage +4%','Accuracy+15','Attack+11',}},
  303. feet="Sulev. Leggings +2",
  304. neck="Fotia Gorget",
  305. waist="Fotia Belt",
  306. left_ear="Telos Earring",
  307. right_ear="Moonshade Earring",
  308. left_ring="Ifrit Ring",
  309. right_ring="Ifrit Ring",
  310. back={ name="Cichol's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},}
  311.  
  312. sets.WS.Upheaval.MidACC = set_combine(sets.WS.Upheaval,{
  313. right_ear="Cessance Earring",
  314. left_ring="Cacoethic Ring +1",
  315. right_ring="Chirich Ring"})
  316. sets.WS.Upheaval.HighACC = set_combine(sets.WS.Upheaval.MidACC,{})
  317. sets.WS.Upheaval.MaxACC = set_combine(sets.WS.Upheaval.HighACC,{})
  318.  
  319. -- Upheaval(Attack) Set --
  320. sets.WS.Upheaval.ATT = set_combine(sets.WS.Upheaval,{})
  321.  
  322. -- Ukko's Fury Sets --
  323. sets.WS["Ukko's Fury"] = {
  324. ammo="Yetshila",
  325. head="Argosy Celata",
  326. body="Argosy Hauberk",
  327. hands="Argosy Mufflers",
  328. legs="Argosy Breeches",
  329. feet="Boii Calligae +1",
  330. neck="Fotia Gorget",
  331. waist="Fotia Belt",
  332. left_ear="Brutal Earring",
  333. right_ear="Moonshade Earring",
  334. left_ring="ifrit Ring",
  335. right_ring="Ifrit Ring",
  336. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
  337.  
  338. sets.WS["Ukko's Fury"].MidACC = set_combine(sets.WS["Ukko's Fury"],{
  339.  
  340. })
  341. sets.WS["Ukko's Fury"].HighACC = set_combine(sets.WS["Ukko's Fury"].MidACC,{})
  342. sets.WS["Ukko's Fury"].MaxACC = set_combine(sets.WS["Ukko's Fury"].HighACC,{})
  343.  
  344. -- Ukko's Fury(Attack) Set --
  345. sets.WS["Ukko's Fury"].ATT = set_combine(sets.WS["Ukko's Fury"],{})
  346.  
  347. -- King's Justice Sets --
  348. sets.WS["King's Justice"] = {
  349. ammo="Seething Bomblet +1",
  350. head="Argosy Celata",
  351. body="Argosy Hauberk",
  352. hands="Argosy Mufflers",
  353. legs="Argosy Breeches",
  354. feet="Argosy Sollerets +1",
  355. neck="Fotia Gorget",
  356. waist="Fotia Belt",
  357. left_ear="Moonshade Earring",
  358. right_ear="Cessance Earring",
  359. left_ring="Ifrit Ring",
  360. right_ring="Ifrit Ring",
  361. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}}}
  362.  
  363. sets.WS["King's Justice"].MidACC = set_combine(sets.WS["King's Justice"],{
  364. left_ear="Telos Earring",
  365. left_ring="Cacoethic Ring +1",
  366. right_ring="Chirich Ring"
  367. })
  368. sets.WS["King's Justice"].HighACC = set_combine(sets.WS["King's Justice"].MidACC,{})
  369. sets.WS["King's Justice"].MaxACC = set_combine(sets.WS["King's Justice"].HighACC,{})
  370.  
  371. -- Metatron Torment Sets --
  372. sets.WS["Metatron Torment"] = {
  373. ammo="Seething Bomblet +1",
  374. head="Sulev. Mask +1",
  375. body="Sulev. Plate. +2",
  376. hands="Sulev. Gauntlets +2",
  377. legs="Sulev. Cuisses +1",
  378. feet="Sulev. Leggings +2",
  379. neck="Fotia Gorget",
  380. waist="Fotia Belt",
  381. left_ear="Telos Earring",
  382. right_ear="Moonshade Earring",
  383. left_ring="Ifrit Ring",
  384. right_ring="Ifrit Ring",
  385. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
  386.  
  387. sets.WS["Metatron Torment"].MidACC = set_combine(sets.WS["Metatron Torment"],{
  388. })
  389. sets.WS["Metatron Torment"].HighACC = set_combine(sets.WS["Metatron Torment"].MidACC,{})
  390. sets.WS["Metatron Torment"].MaxACC = set_combine(sets.WS["Metatron Torment"].HighACC,{})
  391.  
  392. -- Fell Cleave Set --
  393. sets.WS["Fell Cleave"] = {
  394. ammo="Seething Bomblet +1",
  395. head="Sulev. Mask +1",
  396. body="Sulev. Plate. +2",
  397. hands="Sulev. Gauntlets +2",
  398. legs="Sulev. Cuisses +1",
  399. feet="Sulev. Leggings +2",
  400. neck="Fotia Gorget",
  401. waist="Fotia Belt",
  402. left_ear="Telos Earring",
  403. right_ear="Moonshade Earring",
  404. left_ring="Ifrit Ring",
  405. right_ring="Ifrit Ring",
  406. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},}
  407.  
  408. -- Resolution --
  409. sets.WS.Resolution = {
  410. ammo="Seeth. Bomblet +1",
  411. head="Argosy Celata",
  412. body="Argosy Hauberk",
  413. hands="Argosy Mufflers",
  414. legs="Argosy Breeches",
  415. feet="Argosy Sollerets +1",
  416. neck="Fotia Gorget",
  417. waist="Fotia Belt",
  418. left_ear="Telos Earring",
  419. right_ear="Moonshade Earring",
  420. left_ring="Ifrit Ring",
  421. right_ring="Ifrit Ring",
  422. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},}
  423.  
  424. sets.WS.Resolution.MidACC = set_combine(sets.WS.Resolution,{})
  425.  
  426. sets.WS.Resolution.HighACC = set_combine(sets.WS.Resolution.MidACC,{})
  427. sets.WS.Resolution.MaxACC = set_combine(sets.WS.Resolution.HighACC,{})
  428.  
  429. -- Scourge --
  430. sets.WS.Scourge = {
  431. ammo="Seething Bomblet +1",
  432. head="Sulevia's Mask +1",
  433. body="Sulevia's Plate. +2",
  434. hands="Sulev. Gauntlets +2",
  435. legs="Argosy Breeches",
  436. feet="Sulev. Leggings +2",
  437. neck="Fotia Gorget",
  438. waist="Grunfeld Rope",
  439. left_ear="Brutal Earring",
  440. right_ear="Moonshade Earring",
  441. left_ring="Ifrit Ring",
  442. right_ring="Ifrit Ring",
  443. back={ name="Cichol's Mantle", augments={'STR+30','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}}}
  444.  
  445. sets.WS.Scourge.MidACC = set_combine(sets.WS.Scourge,{
  446. left_ear="Telos Earring",
  447. left_ring="Cacoethic Ring +1",
  448. right_ring="Chirich Ring"
  449. })
  450. sets.WS.Scourge.HighACC = set_combine(sets.WS.Scourge.MidACC,{})
  451. sets.WS.Scourge.MaxACC = set_combine(sets.WS.Scourge.HighACC,{})
  452.  
  453. -- Magic Based WS --
  454. sets.WS.Cloudsplitter = {
  455. ammo="Seething Bomblet +1",
  456. head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst dmg.+10%','"Refresh"+1',}},
  457. body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
  458. hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
  459. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  460. feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
  461. neck="Sanctity Necklace",
  462. waist="Eschan Stone",
  463. left_ear="Friomisi Earring",
  464. right_ear="Hecate's Earring",
  465. left_ring="Shiva Ring",
  466. right_ring="Rufescent Ring",
  467. back="Toro Cape"}
  468.  
  469. sets.WS['Sanguine Blade'] = {
  470. ammo="Seething Bomblet +1",
  471. head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst dmg.+10%','"Refresh"+1',}},
  472. body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
  473. hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
  474. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  475. feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
  476. neck="Sanctity Necklace",
  477. waist="Eschan Stone",
  478. left_ear="Friomisi Earring",
  479. right_ear="Hecate's Earring",
  480. left_ring="Shiva Ring",
  481. right_ring="Rufescent Ring",
  482. back="Toro Cape"}
  483.  
  484. -- Mighty Strikes WS Set --
  485. sets.MS_WS = {ammo="Yetshila", feet="Boii Calligae +1"}
  486.  
  487. -- JA Sets --
  488. sets.JA = {}
  489. sets.JA.Berserk = {feet="Agoge Calligae +1", body="Pumm. Lorica +2", back="Cichol's Mantle"}
  490. sets.JA.Aggressor = {head="Pummeler's mask +2",body="Agoge Lorica +1"}
  491. sets.JA.Blood Rage = {body="Boii Lorica +1"}
  492. sets.JA.Warcry = {head="Agoge Mask +1"}
  493. sets.JA.Tomahawk = {ammo="Thr. Tomahawk",feet="Agoge Calligae +1"}
  494. sets.JA.Mighty Strikes = {hands="Agoge Mufflers +1"}
  495. sets.JA.Retaliation = {hands="Pummeler's Mufflers +2",feet="Boii Calligae +1"}
  496. sets.JA.Warrior's Charge = {legs="Agoge Cuisses +1"}
  497. sets.JA.Restraint = {hands="Boii Mufflers +1"}
  498.  
  499. -- Waltz Set --
  500. sets.Waltz = {}
  501.  
  502. sets.Precast = {}
  503. -- Fastcast Set --
  504. sets.Precast.FastCast = {
  505. ammo="Sapience Orb",
  506. body="Odyss. Chestplate",
  507. hands="Leyline Gloves",
  508. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  509. feet={ name="Odyssean Greaves", augments={'Accuracy+28','"Fast Cast"+1','Attack+13',}},
  510. neck="Baetyl Pendant",
  511. left_ear="Loquac. Earring",
  512. right_ear="Etiolation Earring",
  513. left_ring="Veneficium Ring"}
  514.  
  515. sets.Midcast = {}
  516. -- Magic Haste Set --
  517. sets.Midcast.Haste = set_combine(sets.PDT,{})
  518.  
  519. sets.organizer = {
  520.  
  521. sushi1="sublime Sushi +1",
  522. sushi="sublime Sushi",
  523. Bsushi1="Bream Sushi +1",
  524. Bsushi="Bream Sushi",
  525. DeepF="Deep Fried Shrimp",
  526. Red1="Red Curry Bun +1",
  527. Red="Red Curry Bun",
  528. Cut="Cutlet Sandwich",
  529. Soy="Soy Ramen",
  530. Rem="Remedy",
  531. Pan="Panacea"
  532.  
  533.  
  534. }
  535. end
  536.  
  537. function pretarget(spell,action)
  538. if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  539. cancel_spell()
  540. send_command('input /item "Echo Drops" <me>')
  541. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  542. cancel_spell()
  543. send_command('Aggressor')
  544. elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  545. cancel_spell()
  546. send_command('ThirdEye')
  547. elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  548. cancel_spell()
  549. add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  550. elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
  551. if spell.english ~= 'Bora Axe' and spell.name ~= 'Mistral Axe' and spell.target.distance > target_distance then -- Cancel WS If You Are Out Of Range --
  552. cancel_spell()
  553. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  554. return
  555. end
  556. end
  557. end
  558.  
  559. function precast(spell,action)
  560. if spell.type == "WeaponSkill" then
  561. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  562. cancel_spell()
  563. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  564. return
  565. else
  566. equipSet = sets.WS
  567. if equipSet[spell.english] then
  568. equipSet = equipSet[spell.english]
  569. end
  570. if Attack == 'ON' then
  571. equipSet = equipSet["ATT"]
  572. end
  573. if equipSet[AccArray[AccIndex]] then
  574. equipSet = equipSet[AccArray[AccIndex]]
  575. end
  576. if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
  577. equipSet = set_combine(equipSet,elements.equip)
  578. end
  579. if buffactive["Mighty Strikes"] then -- Equip MS_WS Set When You Have Mighty Strikes On --
  580. equipSet = set_combine(equipSet,sets.MS_WS)
  581. end
  582. if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  583. equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  584. end
  585. if (spell.english == "Ukko's Fury" or spell.english == "King's Justice") then
  586. if world.time <= (7*60) or world.time >= (17*60) then -- Equip Lugra Earring +1 From Dusk To Dawn --
  587. equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
  588. end
  589. end
  590. if spell.english == "Upheaval" then
  591. if world.time <= (7*60) or world.time >= (17*60) then -- Equip Lugra Earring +1 From Dusk To Dawn --
  592. equipSet = set_combine(equipSet,{ear1="Lugra Earring +1"})
  593. end
  594. end
  595. end
  596. equip(equipSet)
  597. elseif spell.type == "JobAbility" then
  598. if sets.JA[spell.english] then
  599. equip(sets.JA[spell.english])
  600. end
  601. elseif spell.action_type == 'Magic' then
  602. if spell.english == 'Utsusemi: Ni' then
  603. if buffactive['Copy Image (3)'] then
  604. cancel_spell()
  605. add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  606. return
  607. else
  608. equip(sets.Precast.FastCast)
  609. end
  610. else
  611. equip(sets.Precast.FastCast)
  612. end
  613. elseif spell.type == "Waltz" then
  614. refine_waltz(spell,action)
  615. equip(sets.Waltz)
  616. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  617. cast_delay(0.2)
  618. send_command('cancel Sneak')
  619. end
  620. if Twilight == 'Twilight' then
  621. equip(sets.Twilight)
  622. end
  623. end
  624.  
  625. function midcast(spell,action)
  626. if spell.action_type == 'Magic' then
  627. if spell.english:startswith('Utsusemi') then
  628. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then -- Cancel Copy Image 1, 2 & 3 For Utsusemi: Ichi --
  629. send_command('@wait 1.7;cancel Copy Image*')
  630. end
  631. equip(sets.Midcast.Haste)
  632. elseif spell.english == 'Monomi: Ichi' then -- Cancel Sneak --
  633. if buffactive['Sneak'] then
  634. send_command('@wait 1.7;cancel sneak')
  635. end
  636. equip(sets.Midcast.Haste)
  637. else
  638. equip(sets.Midcast.Haste)
  639. end
  640. end
  641. end
  642.  
  643. function aftercast(spell,action)
  644. if not spell.interrupted then
  645. if spell.type == "WeaponSkill" then
  646. send_command('wait 0.2;gs c TP')
  647. elseif spell.english == "Blood Rage" then -- Blood Rage Timer/Countdown --
  648. timer_blood_rage()
  649. send_command('wait 50;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  650. elseif spell.english == "Tomahawk" then -- Tomahawk Timer/Countdown --
  651. timer_tomahawk()
  652. send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Tomahawk";input /echo '..spell.name..': [OFF]')
  653. end
  654. end
  655. status_change(player.status)
  656. end
  657.  
  658. function status_change(new,old)
  659. check_equip_lock()
  660. if Armor == 'PDT' then
  661. equip(sets.PDT)
  662. elseif Armor == 'MDT' then
  663. equip(sets.MDT)
  664. elseif Armor == 'Kiting' then
  665. equip(sets.Kiting)
  666. --[[ elseif Armor == 'CP' then
  667. send_command('gs disable back')]]--
  668. elseif new == 'Engaged' then
  669. equipSet = sets.TP
  670. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  671. equipSet = equipSet["Hybrid"]
  672. end
  673. if equipSet[WeaponArray[WeaponIndex]] then
  674. equipSet = equipSet[WeaponArray[WeaponIndex]]
  675. end
  676. if equipSet[AccArray[AccIndex]] then
  677. equipSet = equipSet[AccArray[AccIndex]]
  678. end
  679. if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  680. if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
  681. equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
  682. else -- Use Rancor Toggle For Atheling Mantle --
  683. equipSet = equipSet["AM3"]
  684. end
  685. end
  686. if buffactive.Aftermath and equipSet["AM"] then
  687. equipSet = equipSet["AM"]
  688. end
  689. if buffactive["Mighty Strikes"] then -- Mighty Strikes TP Set --
  690. equipSet = set_combine(equipSet,sets.TP.MS)
  691. end
  692. if buffactive.Retaliation and Retaliation == 'ON' then -- Use Retaliation Toggle For Retaliation TP Set --
  693. equipSet = set_combine(equipSet,sets.TP.Retaliation)
  694. end
  695. equip(equipSet)
  696. else
  697. equipSet = sets.Idle
  698. if equipSet[IdleArray[IdleIndex]] then
  699. equipSet = equipSet[IdleArray[IdleIndex]]
  700. end
  701. if equipSet[WeaponArray[WeaponIndex]] then
  702. equipSet = equipSet[WeaponArray[WeaponIndex]]
  703. end
  704. if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  705. equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  706. end
  707. equip(equipSet)
  708. end
  709. if Twilight == 'Twilight' then
  710. equip(sets.Twilight)
  711. end
  712. end
  713.  
  714. function buff_change(buff,gain)
  715. buff = string.lower(buff)
  716. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  717. if gain then
  718. send_command('timers create "Aftermath: Lv.3" 180 down;wait 150;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 15;input /echo Aftermath: Lv.3 [WEARING OFF IN 15 SEC.];wait 5;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  719. else
  720. send_command('timers delete "Aftermath: Lv.3"')
  721. add_to_chat(123,'AM3: [OFF]')
  722. end
  723. elseif buff == "blood rage" and not gain then
  724. send_command('timers delete "Blood Rage"')
  725. elseif buff == 'weakness' then -- Weakness Timer --
  726. if gain then
  727. send_command('timers create "Weakness" 300 up')
  728. else
  729. send_command('timers delete "Weakness"')
  730. end
  731. end
  732. 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 --
  733. equip({neck="Berserker's Torque"})
  734. else
  735. if not midaction() then
  736. status_change(player.status)
  737. end
  738. end
  739. end
  740.  
  741. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  742. function self_command(command)
  743. if command == 'C1' then -- Accuracy Toggle --
  744. AccIndex = (AccIndex % #AccArray) + 1
  745. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  746. status_change(player.status)
  747. elseif command == 'C2' then -- Main Weapon Toggle --
  748. WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  749. add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
  750. status_change(player.status)
  751. elseif command == 'C5' then -- Auto Update Gear Toggle --
  752. status_change(player.status)
  753. add_to_chat(158,'Auto Update Gear')
  754. elseif command == 'C16' then -- Hybrid Toggle --
  755. if Armor == 'Hybrid' then
  756. Armor = 'None'
  757. add_to_chat(123,'Hybrid Set: [Unlocked]')
  758. else
  759. Armor = 'Hybrid'
  760. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  761. end
  762. status_change(player.status)
  763. elseif command == 'C7' then -- PDT Toggle --
  764. if Armor == 'PDT' then
  765. Armor = 'None'
  766. add_to_chat(123,'PDT Set: [Unlocked]')
  767. else
  768. Armor = 'PDT'
  769. add_to_chat(158,'PDT Set: [Locked]')
  770. end
  771. status_change(player.status)
  772. elseif command == 'C15' then -- MDT Toggle --
  773. if Armor == 'MDT' then
  774. Armor = 'None'
  775. add_to_chat(123,'MDT Set: [Unlocked]')
  776. else
  777. Armor = 'MDT'
  778. add_to_chat(158,'MDT Set: [Locked]')
  779. end
  780. status_change(player.status)
  781. elseif command == 'C12' then -- Kiting Toggle --
  782. if Armor == 'Kiting' then
  783. Armor = 'None'
  784. add_to_chat(123,'Kiting Set: [Unlocked]')
  785. else
  786. Armor = 'Kiting'
  787. add_to_chat(158,'Kiting Set: [Locked]')
  788. end
  789. status_change(player.status)
  790. --[[elseif command == 'C17' then -- CP Back Toggle --
  791. if Armor == 'CP' then
  792. Armor = 'None'
  793. add_to_chat(123,'CP Back Set: [Unlocked]')
  794. send_command('gs enable back')
  795. else
  796. Armor = 'CP'
  797. equipSet = set_combine(equipSet,{back="Mecisto. Mantle"})
  798. add_to_chat(158,'CP Back Set: [Locked]')
  799. end
  800. status_change(player.status)]]--
  801. elseif command == 'C10' then -- Retaliation Toggle --
  802. if Retaliation == 'ON' then
  803. Retaliation = 'OFF'
  804. add_to_chat(123,'Retaliation Set: [Unlocked]')
  805. else
  806. Retaliation = 'ON'
  807. add_to_chat(158,'Retaliation Set: [Locked]')
  808. end
  809. status_change(player.status)
  810. elseif command == 'C9' then -- Attack Toggle --
  811. if Attack == 'ON' then
  812. Attack = 'OFF'
  813. add_to_chat(123,'Attack: [OFF]')
  814. else
  815. Attack = 'ON'
  816. add_to_chat(158,'Attack: [ON]')
  817. end
  818. status_change(player.status)
  819. elseif command == 'C3' then -- Twilight Toggle --
  820. if Twilight == 'Twilight' then
  821. Twilight = 'None'
  822. add_to_chat(123,'Twilight Set: [Unlocked]')
  823. else
  824. Twilight = 'Twilight'
  825. add_to_chat(158,'Twilight Set: [locked]')
  826. end
  827. status_change(player.status)
  828. elseif command == 'C6' then -- Idle Toggle --
  829. IdleIndex = (IdleIndex % #IdleArray) + 1
  830. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  831. status_change(player.status)
  832. elseif command == 'TP' then
  833. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  834. elseif command:match('^SC%d$') then
  835. send_command('//' .. sc_map[command])
  836. end
  837. end
  838.  
  839.  
  840. function check_equip_lock() -- Lock Equipment Here --
  841. if player.equipment.left_ring == "Warp Ring" or player.equipment.left_ring == "Capacity Ring" or player.equipment.right_ring == "Warp Ring" or player.equipment.right_ring == "Capacity Ring" then
  842. disable('ring1','ring2')
  843. elseif player.equipment.back == "Mecisto. Mantle" or player.equipment.back == "Aptitude Mantle +1" or player.equipment.back == "Aptitude Mantle" then
  844. disable('back')
  845. else
  846. enable('ring1','ring2','back')
  847. end
  848. end
  849.  
  850.  
  851. function timer_blood_rage()
  852. local duration = 60
  853. send_command('timers create "Blood Rage" '..tostring(duration)..' down')
  854. end
  855.  
  856. function timer_tomahawk()
  857. local duration = 90
  858. send_command('timers create "Tomahawk" '..tostring(duration)..' down')
  859. end
  860.  
  861. function refine_waltz(spell,action)
  862. if spell.type ~= 'Waltz' then
  863. return
  864. end
  865.  
  866. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  867. return
  868. end
  869.  
  870. local newWaltz = spell.english
  871. local waltzID
  872.  
  873. local missingHP
  874.  
  875. if spell.target.type == "SELF" then
  876. missingHP = player.max_hp - player.hp
  877. elseif spell.target.isallymember then
  878. local target = find_player_in_alliance(spell.target.name)
  879. local est_max_hp = target.hp / (target.hpp/100)
  880. missingHP = math.floor(est_max_hp - target.hp)
  881. end
  882.  
  883. if missingHP ~= nil then
  884. if player.sub_job == 'DNC' then
  885. if missingHP < 40 and spell.target.name == player.name then
  886. add_to_chat(8,'Full HP!')
  887. cancel_spell()
  888. return
  889. elseif missingHP < 150 then
  890. newWaltz = 'Curing Waltz'
  891. waltzID = 190
  892. elseif missingHP < 300 then
  893. newWaltz = 'Curing Waltz II'
  894. waltzID = 191
  895. else
  896. newWaltz = 'Curing Waltz III'
  897. waltzID = 192
  898. end
  899. else
  900. return
  901. end
  902. end
  903.  
  904. local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
  905. local tpCost = waltzTPCost[newWaltz]
  906.  
  907. local downgrade
  908.  
  909. if player.tp < tpCost and not buffactive.trance then
  910.  
  911. if player.tp < 20 then
  912. add_to_chat(8, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  913. cancel_spell()
  914. return
  915. elseif player.tp < 35 then
  916. newWaltz = 'Curing Waltz'
  917. elseif player.tp < 50 then
  918. newWaltz = 'Curing Waltz II'
  919. end
  920.  
  921. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  922. end
  923.  
  924. if newWaltz ~= spell.english then
  925. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  926. if downgrade then
  927. add_to_chat(158, downgrade)
  928. end
  929. cancel_spell()
  930. return
  931. end
  932.  
  933. if missingHP > 0 then
  934. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  935. end
  936. end
  937.  
  938. function find_player_in_alliance(name)
  939. for i,v in ipairs(alliance) do
  940. for k,p in ipairs(v) do
  941. if p.name == name then
  942. return p
  943. end
  944. end
  945. end
  946. end
  947.  
  948. function sub_job_change(newSubjob, oldSubjob)
  949. select_default_macro_book()
  950. end
  951.  
  952. function set_macro_page(set,book)
  953. if not tonumber(set) then
  954. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  955. return
  956. end
  957. if set < 1 or set > 10 then
  958. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  959. return
  960. end
  961.  
  962. if book then
  963. if not tonumber(book) then
  964. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  965. return
  966. end
  967. if book < 1 or book > 20 then
  968. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  969. return
  970. end
  971. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  972. else
  973. send_command('@input /macro set '..tostring(set))
  974. end
  975. end
  976.  
  977. function select_default_macro_book()
  978. -- Default macro set/book
  979. if player.sub_job == 'SAM' then
  980. set_macro_page(1, 5)
  981. elseif player.sub_job == 'NIN' then
  982. set_macro_page(2, 5)
  983. elseif player.sub_job == 'BLU' then
  984. set_macro_page(3, 5)
  985. elseif player.sub_job == 'DNC' then
  986. set_macro_page(4, 5)
  987. else
  988. set_macro_page(5, 5)
  989. end
  990. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement