detlef11

philemon_drg

Jan 17th, 2015
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.95 KB | None | 0 0
  1. -- *** Credit goes to Flippant & Martel for helping me with this Gearswap *** --
  2. -- ** I Use Some of Motenten's Functions ** --
  3. -- Last Updated: 05/03/14 7:30 AM *Changed HB Rule* --
  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. 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. --
  8. AttIndex = 1
  9. AttArray = {"LowATT","HighATT","LowContent"} -- LowATT Is The Same As LowACC Set. MidACC & HighACC Take Priority Over These 2 Sets(HighATT & LowContent). --
  10. IdleIndex = 1
  11. IdleArray = {"Movement","Regen","Refresh"} -- Default Idle Set Is Movement --
  12. Armor = 'None'
  13. Twilight = 'None'
  14. Rancor = 'ON' -- Set Default Rancor ON or OFF Here --
  15. Brais = 'ON' -- Set Default Brais ON or OFF Here --
  16. Samurai_Roll = 'ON' -- Set Default SAM Roll ON or OFF Here --
  17. target_distance = 5 -- Set Default Distance Here --
  18. select_default_macro_book() -- Change Default Macro Book At The End --
  19.  
  20. NM_For_Brais = S{} -- Add More NM Here For High Jump --
  21.  
  22. HB_Mage_SubJob = S{"WHM","RDM","BLM","BLU","SCH"} -- 50% Healing Breath Trigger SubJob --
  23. HB_DD_SubJob = S{"PLD","DRK","BRD","NIN"} -- 33% Healing Breath Trigger SubJob --
  24. sc_map = {SC1="Drakesbane", SC2="SpiritJump", SC3="SoulJump"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  25.  
  26. sets.Idle = {}
  27. -- Idle/Town Sets --
  28. sets.Idle.Regen = {ammo="Ginsen",
  29. head="Twilight Helm",neck="Wiglen Gorget",ear1="Tripudio Earring",ear2="Brutal Earring",
  30. body="Kumarbi's Akar",hands="Cizin Mufflers +1",ring1="Paguroidea Ring",ring2="Defending Ring",
  31. back="Repulse Mantle",waist="Nierenschutz",legs="Crimson Cuisses",feet="Whirlpool Greaves"}
  32. sets.Idle.Movement = set_combine(sets.Idle.Regen,{ammo="Ginsen",
  33. head="Twilight Helm",neck="Wiglen Gorget",ear1="Tripudio Earring",ear2="Brutal Earring",
  34. body="Kumarbi's Akar",hands="Cizin Mufflers +1",ring1="Paguroidea Ring",ring2="Defending Ring",
  35. back="Repulse Mantle",waist="Nierenschutz",legs="Crimson Cuisses",feet="Whirlpool Greaves"})
  36. sets.Idle.Refresh = set_combine(sets.Idle.Regen,{
  37. head="Wivre Hairpin",
  38. body="Twilight Mail",hands="Ogier's Gauntlets",
  39. feet="Ogier's Leggings"})
  40.  
  41. sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  42.  
  43. -- TP Base Set --
  44. sets.TP = {}
  45.  
  46. -- Ryunohige(AM3 Down) TP Sets --
  47. sets.TP.Ryunohige = {main="Ryunohige",sub="Bloodrain Strap",ammo="Ginsen",
  48. head="Yaoyotl Helm",neck="Iqabi Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  49. body="Lncr. Plackart +2",hands="Buremte Gloves",ring1="Rajas Ring",ring2="Patricius Ring",
  50. back="Letalis Mantle",waist="Zoran's Belt",legs="Xaddi Cuisses",feet="Mikinaak Greaves"}
  51. sets.TP.Ryunohige.MidACC = set_combine(sets.TP.Ryunohige,{
  52. head="Yaoyotl Helm",neck="Iqabi Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  53. body="Xaddi Mail",hands="Buremte Gloves",ring2="Patricius Ring",
  54. back="Letalis Mantle",waist="Zoran's Belt",legs="Xaddi Cuisses"})
  55. sets.TP.Ryunohige.HighACC = set_combine(sets.TP.Ryunohige.MidACC,{
  56. waist="Dynamic Belt +1",feet="Xaddi Boots"})
  57.  
  58. -- Ryunohige(AM3 Up) TP Sets --
  59. sets.TP.Ryunohige.AM3 = set_combine(sets.TP.Ryunohige,{
  60. head="Yaoyotl Helm",
  61. waist="Zoran's Belt"})
  62. sets.TP.Ryunohige.MidACC.AM3 = set_combine(sets.TP.Ryunohige.AM3,{
  63. neck="Iqabi Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  64. body="Xaddi Mail",hands="Xaddi Gauntlets",
  65. back="Letalis Mantle",legs="Xaddi Cuisses",feet="Mikinaak Greaves"})
  66. sets.TP.Ryunohige.HighACC.AM3 = set_combine(sets.TP.Ryunohige.MidACC.AM3,{
  67. waist="Dynamic Belt +1",feet="Xaddi Boots"})
  68.  
  69. -- Ryunohige(AM3 Down: Ionis) TP Sets --
  70. sets.TP.Ryunohige.Ionis = set_combine(sets.TP.Ryunohige,{})
  71. sets.TP.Ryunohige.MidACC.Ionis = set_combine(sets.TP.Ryunohige.Ionis,{})
  72. sets.TP.Ryunohige.HighACC.Ionis = set_combine(sets.TP.Ryunohige.MidACC.Ionis,{})
  73.  
  74. -- Ryunohige(AM3 Up: Ionis) TP Sets --
  75. sets.TP.Ryunohige.AM3.Ionis = set_combine(sets.TP.Ryunohige.AM3,{})
  76. sets.TP.Ryunohige.MidACC.AM3.Ionis = set_combine(sets.TP.Ryunohige.AM3.Ionis,{})
  77. sets.TP.Ryunohige.HighACC.AM3.Ionis = set_combine(sets.TP.Ryunohige.MidACC.AM3.Ionis,{})
  78.  
  79. -- Ryunohige(AM3 Down: SAM Roll) TP Sets --
  80. sets.TP.Ryunohige.STP = set_combine(sets.TP.Ryunohige,{})
  81. sets.TP.Ryunohige.MidACC.STP = set_combine(sets.TP.Ryunohige.STP,{})
  82. sets.TP.Ryunohige.HighACC.STP = set_combine(sets.TP.Ryunohige.MidACC.STP,{})
  83.  
  84. -- Ryunohige(AM3 Up: SAM Roll) TP Sets --
  85. sets.TP.Ryunohige.AM3.STP = set_combine(sets.TP.Ryunohige.AM3,{})
  86. sets.TP.Ryunohige.MidACC.AM3.STP = set_combine(sets.TP.Ryunohige.AM3.STP,{})
  87. sets.TP.Ryunohige.HighACC.AM3.STP = set_combine(sets.TP.Ryunohige.MidACC.AM3.STP,{})
  88.  
  89. -- Ryunohige(AM3 Down: Ionis + SAM Roll) TP Sets --
  90. sets.TP.Ryunohige.Ionis.STP = set_combine(sets.TP.Ryunohige.Ionis,{})
  91. sets.TP.Ryunohige.MidACC.Ionis.STP = set_combine(sets.TP.Ryunohige.Ionis.STP,{})
  92. sets.TP.Ryunohige.HighACC.Ionis.STP = set_combine(sets.TP.Ryunohige.MidACC.Ionis.STP,{})
  93.  
  94. -- Ryunohige(AM3 Up: Ionis + SAM Roll) TP Sets --
  95. sets.TP.Ryunohige.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.AM3.Ionis,{})
  96. sets.TP.Ryunohige.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.AM3.Ionis.STP,{})
  97. sets.TP.Ryunohige.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.MidACC.AM3.Ionis.STP,{})
  98.  
  99. -- Gungnir TP Sets --
  100. sets.TP.Gungnir = {}
  101. sets.TP.Gungnir.MidACC = set_combine(sets.TP.Gungnir,{})
  102. sets.TP.Gungnir.HighACC = set_combine(sets.TP.Gungnir.MidACC,{})
  103.  
  104. -- Gungnir(Ionis) TP Sets --
  105. sets.TP.Gungnir.Ionis = set_combine(sets.TP.Gungnir,{})
  106. sets.TP.Gungnir.MidACC.Ionis = set_combine(sets.TP.Gungnir.Ionis,{})
  107. sets.TP.Gungnir.HighACC.Ionis = set_combine(sets.TP.Gungnir.MidACC.Ionis,{})
  108.  
  109. -- Gungnir(SAM Roll) TP Sets --
  110. sets.TP.Gungnir.STP = set_combine(sets.TP.Gungnir,{})
  111. sets.TP.Gungnir.MidACC.STP = set_combine(sets.TP.Gungnir.MidACC,{})
  112. sets.TP.Gungnir.HighACC.STP = set_combine(sets.TP.Gungnir.HighACC,{})
  113.  
  114. -- Gungnir(Ionis + SAM Roll) TP Sets --
  115. sets.TP.Gungnir.Ionis.STP = set_combine(sets.TP.Gungnir.Ionis,{})
  116. sets.TP.Gungnir.MidACC.Ionis.STP = set_combine(sets.TP.Gungnir.Ionis.STP,{})
  117. sets.TP.Gungnir.HighACC.Ionis.STP = set_combine(sets.TP.Gungnir.MidACC.Ionis.STP,{})
  118.  
  119. -- Rhongomiant TP Sets --
  120. sets.TP.Rhongomiant = {}
  121. sets.TP.Rhongomiant.MidACC = set_combine(sets.TP.Rhongomiant,{})
  122. sets.TP.Rhongomiant.HighACC = set_combine(sets.TP.Rhongomiant.MidACC,{})
  123.  
  124. -- Rhongomiant(Ionis) TP Sets --
  125. sets.TP.Rhongomiant.Ionis = set_combine(sets.TP.Rhongomiant,{})
  126. sets.TP.Rhongomiant.MidACC.Ionis = set_combine(sets.TP.Rhongomiant.Ionis,{})
  127. sets.TP.Rhongomiant.HighACC.Ionis = set_combine(sets.TP.Rhongomiant.MidACC.Ionis,{})
  128.  
  129. -- Rhongomiant(SAM Roll) TP Sets --
  130. sets.TP.Rhongomiant.STP = set_combine(sets.TP.Rhongomiant,{})
  131. sets.TP.Rhongomiant.MidACC.STP = set_combine(sets.TP.Rhongomiant.MidACC,{})
  132. sets.TP.Rhongomiant.HighACC.STP = set_combine(sets.TP.Rhongomiant.HighACC,{})
  133.  
  134. -- Rhongomiant(Ionis + SAM Roll) TP Sets --
  135. sets.TP.Rhongomiant.Ionis.STP = set_combine(sets.TP.Rhongomiant.Ionis,{})
  136. sets.TP.Rhongomiant.MidACC.Ionis.STP = set_combine(sets.TP.Rhongomiant.Ionis.STP,{})
  137. sets.TP.Rhongomiant.HighACC.Ionis.STP = set_combine(sets.TP.Rhongomiant.MidACC.Ionis.STP,{})
  138.  
  139. -- Upukirex TP Sets --
  140. sets.TP.Upukirex = {}
  141. sets.TP.Upukirex.MidACC = set_combine(sets.TP.Upukirex,{})
  142. sets.TP.Upukirex.HighACC = set_combine(sets.TP.Upukirex.MidACC,{})
  143.  
  144. -- Upukirex(Ionis) TP Sets --
  145. sets.TP.Upukirex.Ionis = set_combine(sets.TP.Upukirex,{})
  146. sets.TP.Upukirex.MidACC.Ionis = set_combine(sets.TP.Upukirex.Ionis,{})
  147. sets.TP.Upukirex.HighACC.Ionis = set_combine(sets.TP.Upukirex.MidACC.Ionis,{})
  148.  
  149. -- Upukirex(SAM Roll) TP Sets --
  150. sets.TP.Upukirex.STP = set_combine(sets.TP.Upukirex,{})
  151. sets.TP.Upukirex.MidACC.STP = set_combine(sets.TP.Upukirex.MidACC,{})
  152. sets.TP.Upukirex.HighACC.STP = set_combine(sets.TP.Upukirex.HighACC,{})
  153.  
  154. -- Upukirex(Ionis + SAM Roll) TP Sets --
  155. sets.TP.Upukirex.Ionis.STP = set_combine(sets.TP.Upukirex.Ionis,{})
  156. sets.TP.Upukirex.MidACC.Ionis.STP = set_combine(sets.TP.Upukirex.Ionis.STP,{})
  157. sets.TP.Upukirex.HighACC.Ionis.STP = set_combine(sets.TP.Upukirex.MidACC.Ionis.STP,{})
  158.  
  159. -- AM3 Rancor ON Mantle --
  160. sets.TP.Rancor = {back="Rancorous Mantle"}
  161.  
  162. -- PDT/MDT Sets --
  163. sets.PDT = {ammo="Ginsen",
  164. head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  165. body="Emet Harness +1",hands="Cizin Mufflers +1",ring1="Dark Ring",ring2="Defending Ring",
  166. back="Repulse Mantle",waist="Nierenschutz",legs="Cizin Breeches",feet="Cizin Greaves"}
  167.  
  168. sets.MDT = set_combine(sets.PDT,{ammo="Demonry Stone",
  169. head="Ogier's Helm",
  170. body="Nocturnus Mail"})
  171.  
  172. -- Hybrid Sets --
  173. sets.TP.Hybrid = set_combine(sets.PDT,{ammo="Ginsen",
  174. ear1="Steelflash Earring",ear2="Bladeborn Earring",
  175. body="Emet Harness +1",hands="Xaddi Gauntlets",ring1="Patricius Ring",
  176. waist="Goading Belt",feet="Whirlpool Greaves"})
  177. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  178. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  179.  
  180.  
  181. -- WS Base Set --
  182. sets.WS = {}
  183.  
  184.  
  185.  
  186. -- WS Sets --
  187. sets.WS.Drakesbane = {ammo="Potestas Bomblet",
  188. head="Otomi Helm",neck="Justiciar's Torque",ear1="Moonshade Earring",ear2="Brutal Earring",
  189. body="Vishap Mail +1",hands="Miki. Gauntlets",ring1="Rajas Ring",ring2="Strigoi Ring",
  190. back="Rancorous Mantle",waist="Prosilio Belt +1",legs="Lncr. Cuissots +2",feet="Huginn Gambieras"}
  191. sets.WS.Drakesbane.MidACC = set_combine(sets.WS.Drakesbane,{ammo="Ginsen",
  192. head="Yaoyotl Helm",neck="Rancor Collar",
  193. back="Letalis Mantle"})
  194. sets.WS.Drakesbane.HighACC = set_combine(sets.WS.Drakesbane.MidACC,{
  195. feet="Xaddi Boots"})
  196.  
  197. -- Drakesbane(Low Level Content) Set --
  198. sets.WS.Drakesbane.LowContent = set_combine(sets.WS.Drakesbane,{
  199. neck="Ganesha's Mala",
  200. body="Phorcys Korazin",
  201. waist="Windbuffet Belt +1"})
  202. -- Drakesbane(High Attack) Set --
  203. sets.WS.Drakesbane.HighATT = set_combine(sets.WS.Drakesbane,{ammo="Ginsen",
  204. head="Yaoyotl Helm",neck="Justiciar's Torque",
  205. body="Miki. Breastplate",
  206. waist="Prosilio Belt +1"})
  207.  
  208. sets.WS.Stardiver = {ammo="Potestas Bomblet",
  209. head="Otomi Helm",neck="Light Gorget",ear1="Moonshade Earring",ear2="Brutal Earring",
  210. body="Vishap Mail +1",hands="Miki. Gauntlets",ring1="Rajas Ring",ring2="Strigoi Ring",
  211. back="Buquwik Cape",waist="Light Belt",legs="Scuff. Cosciales",feet="Whirlpool Greaves"}
  212. sets.WS.Stardiver.MidACC = set_combine(sets.WS.Stardiver,{ammo="Ginsen",
  213. head="Yaoyotl Helm",
  214. body="Miki. Breastplate",
  215. back="Letalis Mantle",legs="Xaddi Cuisses",feet="Xaddi Boots"})
  216. sets.WS.Stardiver.HighACC = set_combine(sets.WS.Stardiver.MidACC,{
  217. legs="Miki. Cuisses"})
  218.  
  219. -- Stardiver(High Attack) Set --
  220. sets.WS.Stardiver.HighATT = set_combine(sets.WS.Stardiver,{ammo="Potestas Bomblet",
  221. body="Miki. Breastplate"})
  222.  
  223. sets.WS["Camlann's Torment"] = {ammo="Potestas Bomblet",
  224. head="Otomi Helm",neck="Light Gorget",ear1="Moonshade Earring",ear2="Brutal Earring",
  225. body="Vishap Mail +1",hands="Miki. Gauntlets",ring1="Spiral Ring",ring2="Strigoi Ring",
  226. back="Buquwik Cape",waist="Light Belt",legs="Scuff. Cosciales",feet="Whirlpool Greaves"}
  227. sets.WS["Camlann's Torment"].MidACC = set_combine(sets.WS.Stardiver,{ammo="Ginsen",
  228. head="Yaoyotl Helm",
  229. body="Miki. Breastplate",
  230. back="Letalis Mantle",legs="Xaddi Cuisses",feet="Xaddi Boots"})
  231. sets.WS["Camlann's Torment"].HighACC = set_combine(sets.WS.Stardiver.MidACC,{
  232. legs="Miki. Cuisses"})
  233.  
  234. sets.WS["Sonic Thrust"] = {ammo="Potestas Bomblet",
  235. head="Otomi Helm",neck="Light Gorget",ear1="Moonshade Earring",ear2="Brutal Earring",
  236. body="Vishap Mail +1",hands="Miki. Gauntlets",ring1="Rajas Ring",ring2="Strigoi Ring",
  237. back="Buquwik Cape",waist="Light Belt",legs="Scuff. Cosciales",feet="Whirlpool Greaves"}
  238. sets.WS["Sonic Thrust"].MidACC = set_combine(sets.WS.Stardiver,{ammo="Ginsen",
  239. head="Yaoyotl Helm",
  240. body="Miki. Breastplate",
  241. back="Letalis Mantle",legs="Xaddi Cuisses",feet="Xaddi Boots"})
  242. sets.WS["Sonic Thrust"].HighACC = set_combine(sets.WS.Stardiver.MidACC,{
  243. legs="Miki. Cuisses"})
  244.  
  245. -- JA Sets --
  246. sets.JA = {}
  247. sets.JA.Jump = {ammo="Ginsen",
  248. head="Otomi Helm",neck="Ganesha's Mala",ear1="Tripudio Earring",ear2="Brutal Earring",
  249. body="Lncr. Plackart +2",hands="Ogier's Gauntlets",ring1="Rajas Ring",ring2="K'ayres Ring",
  250. back="Letalis Mantle",waist="Windbuffet Belt +1",legs="Lncr. Cuissots +2",feet="Huginn Gambieras"}
  251. sets.JA.Jump.MidACC = set_combine(sets.JA.Jump,{
  252. head="Yaoyotl Helm",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  253. hands="Xaddi Gauntlets",
  254. back="Letalis Mantle",waist="Anguinus Belt",legs="Xaddi Cuisses",feet="Xaddi Boots"})
  255. sets.JA.Jump.HighACC = set_combine(sets.JA.Jump.MidACC,{
  256. neck="Iqabi Necklace",
  257. ring1="Mars's Ring"})
  258.  
  259. sets.JA["High Jump"] = set_combine(sets.JA.Jump,{legs="Vishap Brais +1"})
  260. sets.JA["High Jump"].MidACC = set_combine(sets.JA.Jump.MidACC,{legs="Vishap Brais +1"})
  261. sets.JA["High Jump"].HighACC = set_combine(sets.JA.Jump.HighACC,{legs="Vishap Brais +1"})
  262.  
  263. sets.JA["Spirit Jump"] = set_combine(sets.JA.Jump,{
  264. feet="Lncr. Schynbld. +2"})
  265. sets.JA["Spirit Jump"].MidACC = set_combine(sets.JA["Spirit Jump"],{
  266. head="Yaoyotl Helm",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  267. hands="Xaddi Gauntlets",
  268. back="Letalis Mantle",waist="Anguinus Belt",legs="Xaddi Cuisses"})
  269. sets.JA["Spirit Jump"].HighACC = set_combine(sets.JA["Spirit Jump"].MidACC,{
  270. neck="Iqabi Necklace",
  271. ring1="Mars's Ring"})
  272.  
  273. sets.JA["Soul Jump"] = set_combine(sets.JA.Jump,{})
  274. sets.JA["Soul Jump"].MidACC = set_combine(sets.JA.Jump.MidACC,{})
  275. sets.JA["Soul Jump"].HighACC = set_combine(sets.JA.Jump.HighACC,{})
  276.  
  277. sets.JA.Angon = {ammo="Angon",ear1="Dragoon's Earring",hands="Ptero. Fin. Gaunt."}
  278. sets.JA["Ancient Circle"] = {"Vishap Brais +1"}
  279. sets.JA['Call Wyvern'] = {body="Vishap Mail +1"}
  280.  
  281. sets.Pet = {}
  282. sets.Pet.WyvernHP = {
  283. head="Wym. Armet +2",neck="Lancer's Torque",ear1="Pratik Earring",
  284. body="Wyvern Mail",ring1="Dark Ring",ring2="Defending Ring",
  285. back="Updraft Mantle",waist="Glassblower's Belt",legs="Vishap Brais +1",feet="Ptero. Greaves"}
  286.  
  287. sets.JA["Spirit Link"] = set_combine(sets.Pet.WyvernHP,{head="Vishap Armet +1",hands="Lncr. Vmbrc. +2"})
  288. sets.Pet["Restoring Breath"] = set_combine(sets.Pet.WyvernHP)
  289. sets.Pet["Smiting Breath"] = set_combine(sets.Pet.WyvernHP)
  290. sets.Pet["Steady Wing"] = set_combine(sets.Pet.WyvernHP)
  291.  
  292. -- Healing Breath Trigger --
  293. sets.HealingBreathTrigger = set_combine(sets.Pet.WyvernHP,{
  294. head="Vishap Armet +1",
  295. body="Vishap Mail +1",hands="Ares' Gauntlets +1",ring1="Meridian Ring",ring2="K'ayres Ring",
  296. back="Strendu Mantle",legs="Osmium Cuisses",feet="Ejekamal Boots"})
  297.  
  298. -- Waltz Set --
  299. sets.Waltz = {}
  300.  
  301. sets.Precast = {}
  302. -- Fastcast Set --
  303. sets.Precast.FastCast = {ammo="Impatiens",
  304. head="Cizin Helm +1",neck="Orunmila's Torque",ear1="Enchntr. Earring +1",ear2="Loquac. Earring",
  305. ring1="Prolix Ring",ring2="Veneficium Ring"}
  306.  
  307. sets.Midcast = {}
  308. -- Magic Haste Set --
  309. sets.Midcast.Haste = set_combine(sets.PDT,{
  310. head="Otomi Helm",
  311. hands="Cizin Mufflers +1",
  312. waist="Goading Belt",feet="Huginn Gambieras"})
  313. end
  314.  
  315. function pretarget(spell,action)
  316. if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  317. cancel_spell()
  318. send_command('input /item "Echo Drops" <me>')
  319. elseif spell.english == "Spirit Jump" and not pet.isvalid then -- Change Spirit Jump To Jump If Wyvern Is Not Present --
  320. cancel_spell()
  321. send_command('Jump')
  322. elseif spell.english == "Soul Jump" and not pet.isvalid then -- Change Soul Jump To High Jump If Wyvern Is Not Present --
  323. cancel_spell()
  324. send_command('HighJump')
  325. elseif spell.english == "Dismiss" and pet.hpp < 100 then -- Cancel Dismiss If Wyvern's HP Is Under 100% --
  326. cancel_spell()
  327. add_to_chat(123, spell.english .. ' Canceled: [' .. pet.hpp .. ']')
  328. return
  329. elseif spell.english == "Call Wyvern" and pet.isvalid then -- Change Call Wyvern To Dismiss If Wyvern Is Present --
  330. cancel_spell()
  331. send_command('Dismiss')
  332. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  333. cancel_spell()
  334. send_command('Aggressor')
  335. elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  336. cancel_spell()
  337. send_command('ThirdEye')
  338. elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  339. cancel_spell()
  340. add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  341. elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  342. cancel_spell()
  343. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  344. return
  345. end
  346. end
  347.  
  348. function precast(spell,action)
  349. if spell.english == 'Ranged' then
  350. equip({ammo="Pebble"})
  351. elseif spell.type == "WeaponSkill" then
  352. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  353. cancel_spell()
  354. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  355. return
  356. else
  357. equipSet = sets.WS
  358. if equipSet[spell.english] then
  359. equipSet = equipSet[spell.english]
  360. end
  361. if equipSet[AccArray[AccIndex]] then
  362. equipSet = equipSet[AccArray[AccIndex]]
  363. end
  364. if equipSet[AttArray[AttIndex]] then
  365. equipSet = equipSet[AttArray[AttIndex]]
  366. end
  367. if player.tp > 299 or buffactive.Sekkanoki then -- Equip Kokou's Earring When You Have 300 TP or Sekkanoki --
  368. equipSet = set_combine(equipSet,{ear1="Kokou's Earring"})
  369. end
  370. if spell.english == "Drakesbane" and string.find(spell.target.name,'Dynamis Lord') then -- Equip Phorcys Korazin When You Use Drakesbane On DL & ADL --
  371. equipSet = set_combine(equipSet,{body="Phorcys Korazin"})
  372. end
  373. equip(equipSet)
  374. end
  375. elseif spell.type == "JobAbility" then
  376. equipSet = sets.JA
  377. if equipSet[spell.english] then
  378. equipSet = equipSet[spell.english]
  379. end
  380. if equipSet[AccArray[AccIndex]] then
  381. equipSet = equipSet[AccArray[AccIndex]]
  382. end
  383. if spell.english == "High Jump" and NM_For_Brais:contains(spell.target.name) and Brais == 'ON' then -- Use Vishap Brais +1 Toggle To Equip Vishap Brais +1 For High Jump --
  384. equipSet = set_combine(equipSet,{legs="Vishap Brais +1"})
  385. end
  386. equip(equipSet)
  387. elseif spell.action_type == 'Magic' then
  388. if buffactive.silence or spell.target.distance > 16+target_distance then
  389. cancel_spell()
  390. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  391. return
  392. else
  393. if string.find(spell.english,'Utsusemi') then
  394. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  395. cancel_spell()
  396. add_to_chat(123,'Utsusemi Canceled: [3+ Images]')
  397. return
  398. else
  399. equip(sets.Precast.FastCast)
  400. end
  401. else
  402. equip(sets.Precast.FastCast)
  403. end
  404. end
  405. elseif spell.type == "Waltz" then
  406. refine_waltz(spell,action)
  407. equip(sets.Waltz)
  408. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  409. cast_delay(0.2)
  410. send_command('cancel Sneak')
  411. elseif spell.type == "PetCommand" then
  412. equip(sets.Pet[spell.english])
  413. end
  414. if Twilight == 'Twilight' then
  415. equip(sets.Twilight)
  416. end
  417. end
  418.  
  419. function midcast(spell,action)
  420. if spell.english == 'Ranged' then
  421. equip({ammo="Pebble"})
  422. elseif spell.action_type == 'Magic' then
  423. if string.find(spell.english,'Utsusemi') then
  424. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  425. send_command('@wait 1.7;cancel Copy Image*')
  426. end
  427. equip(sets.Midcast.Haste)
  428. elseif spell.english == 'Monomi: Ichi' then
  429. if buffactive['Sneak'] then
  430. send_command('@wait 1.7;cancel sneak')
  431. end
  432. equip(sets.Midcast.Haste)
  433. elseif HB_Mage_SubJob:contains(player.sub_job) and player.hpp < 51 and pet.isvalid then
  434. equip(sets.HealingBreathTrigger)
  435. elseif HB_DD_SubJob:contains(player.sub_job) and player.hpp < 34 and pet.isvalid then
  436. equip(sets.HealingBreathTrigger)
  437. else
  438. equip(sets.Midcast.Haste)
  439. end
  440. end
  441. end
  442.  
  443. function aftercast(spell,action)
  444. if not string.find(spell.english,'Breath') then
  445. status_change(player.status)
  446. elseif not spell.interrupted then
  447. if spell.type == "WeaponSkill" then
  448. send_command('wait 0.2;gs c TP')
  449. elseif string.find(spell.english,'Jump') then
  450. send_command('wait 0.2;gs c TP')
  451. elseif spell.english == "Angon" then -- Angon Timer/Countdown --
  452. timer_angon()
  453. send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Angon";input /p '..spell.name..': [OFF]')
  454. elseif spell.english == "Ancient Circle" then -- Ancient Circle Countdown --
  455. send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  456. end
  457. end
  458. end
  459.  
  460. function status_change(new,old)
  461. if Armor == 'PDT' then
  462. equip(sets.PDT)
  463. elseif Armor == 'MDT' then
  464. equip(sets.MDT)
  465. elseif new == 'Engaged' then
  466. equipSet = sets.TP
  467. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  468. equipSet = equipSet["Hybrid"]
  469. end
  470. if equipSet[player.equipment.main] then
  471. equipSet = equipSet[player.equipment.main]
  472. end
  473. if equipSet[AccArray[AccIndex]] then
  474. equipSet = equipSet[AccArray[AccIndex]]
  475. end
  476. if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  477. if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
  478. equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
  479. else -- Use Rancor Toggle For Atheling Mantle --
  480. equipSet = equipSet["AM3"]
  481. end
  482. end
  483. if buffactive.Ionis and equipSet["Ionis"] then
  484. equipSet = equipSet["Ionis"]
  485. end
  486. if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  487. equipSet = equipSet["STP"]
  488. end
  489. equip(equipSet)
  490. else
  491. equip(sets.Idle[IdleArray[IdleIndex]])
  492. end
  493. if Twilight == 'Twilight' then
  494. equip(sets.Twilight)
  495. end
  496. end
  497.  
  498. function buff_change(buff,gain)
  499. buff = string.lower(buff)
  500. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  501. if gain then
  502. 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.]')
  503. else
  504. send_command('timers delete "Aftermath: Lv.3"')
  505. add_to_chat(123,'AM3: [OFF]')
  506. end
  507. elseif buff == 'weakness' then -- Weakness Timer --
  508. if gain then
  509. send_command('timers create "Weakness" 300 up')
  510. else
  511. send_command('timers delete "Weakness"')
  512. end
  513. end
  514. 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 --
  515. equip({neck="Berserker's Torque"})
  516. else
  517. if not midaction() and not pet_midaction() then
  518. status_change(player.status)
  519. end
  520. end
  521. end
  522.  
  523. function pet_midcast(spell,action)
  524. if string.find(spell.english,'Breath') then
  525. equip(sets.Pet["Restoring Breath"])
  526. end
  527. end
  528.  
  529. function pet_aftercast(spell,action)
  530. status_change(player.status)
  531. end
  532.  
  533. function pet_change(pet,gain)
  534. status_change(player.status)
  535. end
  536.  
  537. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  538. function self_command(command)
  539. if command == 'C1' then -- Accuracy Level Toggle --
  540. AccIndex = (AccIndex % #AccArray) + 1
  541. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  542. status_change(player.status)
  543. elseif command == 'C9' then -- Attack Toggle --
  544. AttIndex = (AttIndex % #AttArray) + 1
  545. add_to_chat(158,'Attack Level: '..AttArray[AttIndex])
  546. status_change(player.status)
  547. elseif command == 'C5' then -- Auto Update Gear Toggle --
  548. status_change(player.status)
  549. add_to_chat(158,'Auto Update Gear')
  550. elseif command == 'C2' then -- Hybrid Toggle --
  551. if Armor == 'Hybrid' then
  552. Armor = 'None'
  553. add_to_chat(123,'Hybrid Set: [Unlocked]')
  554. else
  555. Armor = 'Hybrid'
  556. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  557. end
  558. status_change(player.status)
  559. elseif command == 'C7' then -- PDT Toggle --
  560. if Armor == 'PDT' then
  561. Armor = 'None'
  562. add_to_chat(123,'PDT Set: [Unlocked]')
  563. else
  564. Armor = 'PDT'
  565. add_to_chat(158,'PDT Set: [Locked]')
  566. end
  567. status_change(player.status)
  568. elseif command == 'C15' then -- MDT Toggle --
  569. if Armor == 'MDT' then
  570. Armor = 'None'
  571. add_to_chat(123,'MDT Set: [Unlocked]')
  572. else
  573. Armor = 'MDT'
  574. add_to_chat(158,'MDT Set: [Locked]')
  575. end
  576. status_change(player.status)
  577. elseif command == 'C16' then -- Rancor Toggle --
  578. if Rancor == 'ON' then
  579. Rancor = 'OFF'
  580. add_to_chat(123,'Rancor: [OFF]')
  581. else
  582. Rancor = 'ON'
  583. add_to_chat(158,'Rancor: [ON]')
  584. end
  585. status_change(player.status)
  586. elseif command == 'C10' then -- Vishap Brais +1 Toggle --
  587. if Brais == 'ON' then
  588. Brais = 'OFF'
  589. add_to_chat(123,'Vishap Brais +1: [OFF]')
  590. else
  591. Brais = 'ON'
  592. add_to_chat(158,'Vishap Brais +1: [ON]')
  593. end
  594. status_change(player.status)
  595. elseif command == 'C17' then -- SAM Roll Toggle --
  596. if Samurai_Roll == 'ON' then
  597. Samurai_Roll = 'OFF'
  598. add_to_chat(123,'SAM Roll: [OFF]')
  599. else
  600. Samurai_Roll = 'ON'
  601. add_to_chat(158,'SAM Roll: [ON]')
  602. end
  603. status_change(player.status)
  604. elseif command == 'C3' then -- Twilight Toggle --
  605. if Twilight == 'Twilight' then
  606. Twilight = 'None'
  607. add_to_chat(123,'Twilight Set: [Unlocked]')
  608. else
  609. Twilight = 'Twilight'
  610. add_to_chat(158,'Twilight Set: [locked]')
  611. end
  612. status_change(player.status)
  613. elseif command == 'C8' then -- Distance Toggle --
  614. if player.target.distance then
  615. target_distance = math.floor(player.target.distance*10)/10
  616. add_to_chat(158,'Distance: '..target_distance)
  617. else
  618. add_to_chat(123,'No Target Selected')
  619. end
  620. elseif command == 'C6' then -- Idle Toggle --
  621. IdleIndex = (IdleIndex % #IdleArray) + 1
  622. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  623. status_change(player.status)
  624. elseif command == 'TP' then
  625. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  626. elseif command:match('^SC%d$') then
  627. send_command('//' .. sc_map[command])
  628. end
  629. end
  630.  
  631. function timer_angon()
  632. local duration = 90
  633. send_command('timers create "Angon" '..tostring(duration)..' down')
  634. end
  635.  
  636. function refine_waltz(spell,action)
  637. if spell.type ~= 'Waltz' then
  638. return
  639. end
  640.  
  641. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  642. return
  643. end
  644.  
  645. local newWaltz = spell.english
  646. local waltzID
  647.  
  648. local missingHP
  649.  
  650. if spell.target.type == "SELF" then
  651. missingHP = player.max_hp - player.hp
  652. elseif spell.target.isallymember then
  653. local target = find_player_in_alliance(spell.target.name)
  654. local est_max_hp = target.hp / (target.hpp/100)
  655. missingHP = math.floor(est_max_hp - target.hp)
  656. end
  657.  
  658. if missingHP ~= nil then
  659. if player.sub_job == 'DNC' then
  660. if missingHP < 40 and spell.target.name == player.name then
  661. add_to_chat(123,'Full HP!')
  662. cancel_spell()
  663. return
  664. elseif missingHP < 150 then
  665. newWaltz = 'Curing Waltz'
  666. waltzID = 190
  667. elseif missingHP < 300 then
  668. newWaltz = 'Curing Waltz II'
  669. waltzID = 191
  670. else
  671. newWaltz = 'Curing Waltz III'
  672. waltzID = 192
  673. end
  674. else
  675. return
  676. end
  677. end
  678.  
  679. local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50, ['Curing Waltz IV'] = 65, ['Curing Waltz V'] = 80}
  680. local tpCost = waltzTPCost[newWaltz]
  681.  
  682. local downgrade
  683.  
  684. if player.tp < tpCost and not buffactive.trance then
  685.  
  686. if player.tp < 20 then
  687. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  688. cancel_spell()
  689. return
  690. elseif player.tp < 35 then
  691. newWaltz = 'Curing Waltz'
  692. elseif player.tp < 50 then
  693. newWaltz = 'Curing Waltz II'
  694. elseif player.tp < 65 then
  695. newWaltz = 'Curing Waltz III'
  696. elseif player.tp < 80 then
  697. newWaltz = 'Curing Waltz IV'
  698. end
  699.  
  700. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  701. end
  702.  
  703. if newWaltz ~= spell.english then
  704. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  705. if downgrade then
  706. add_to_chat(158, downgrade)
  707. end
  708. cancel_spell()
  709. return
  710. end
  711.  
  712. if missingHP > 0 then
  713. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  714. end
  715. end
  716.  
  717. function find_player_in_alliance(name)
  718. for i,v in ipairs(alliance) do
  719. for k,p in ipairs(v) do
  720. if p.name == name then
  721. return p
  722. end
  723. end
  724. end
  725. end
  726.  
  727. function sub_job_change(newSubjob, oldSubjob)
  728. select_default_macro_book()
  729. end
  730.  
  731. function set_macro_page(set,book)
  732. if not tonumber(set) then
  733. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  734. return
  735. end
  736. if set < 1 or set > 10 then
  737. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  738. return
  739. end
  740.  
  741. if book then
  742. if not tonumber(book) then
  743. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  744. return
  745. end
  746. if book < 1 or book > 20 then
  747. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  748. return
  749. end
  750. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  751. else
  752. send_command('@input /macro set '..tostring(set))
  753. end
  754. end
  755.  
  756. function select_default_macro_book()
  757. -- Default macro set/book
  758. if player.sub_job == 'SAM' then
  759. set_macro_page(1, 2)
  760. elseif player.sub_job == 'DNC' then
  761. set_macro_page(5, 2)
  762. elseif player.sub_job == 'WAR' then
  763. set_macro_page(9, 2)
  764. elseif player.sub_job == 'WHM' then
  765. set_macro_page(3, 2)
  766. elseif player.sub_job == 'NIN' then
  767. set_macro_page(10, 2)
  768. else
  769. set_macro_page(1, 2)
  770. end
  771. end
Advertisement
Add Comment
Please, Sign In to add comment