Advertisement
Guest User

Untitled

a guest
Feb 8th, 2018
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.77 KB | None | 0 0
  1. function get_sets()
  2. AccIndex = 1
  3. AccArray = {"LowACC","MidACC","HighACC","MaxACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid/Jump. 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. --
  4. AttIndex = 1
  5. AttArray = {"LowATT","HighATT","LowContent"} -- LowATT Is The Same As LowACC Set. MidACC, HighACC & MaxACC Take Priority Over These 2 Sets(HighATT & LowContent). --
  6. IdleIndex = 1
  7. IdleArray = {"Movement","Regen","Refresh"} -- Default Idle Set Is Movement --
  8. WeaponIndex = 1
  9. WeaponArray = {"Trishula","Ryunohige","Gungnir","Rhongomiant"} -- Default TP Set Is Dojikiri. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
  10. Armor = 'None'
  11. Twilight = 'None'
  12. Rancor = 'OFF' -- Set Default Rancor ON or OFF Here --
  13. Brais = 'OFF' -- Set Default High Jump Enmity Legs ON or OFF Here --
  14. Samurai_Roll = 'OFF' -- Set Default SAM Roll 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. -- Gavialis Helm --
  19. elements = {}
  20. elements.equip = {head="Gavialis Helm"}
  21. elements.Stardiver = S{"Light","Dark","Earth"}
  22.  
  23. Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  24. Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation --
  25.  
  26. Healer_Type_Wyvern = S{"WHM","RDM","BLM","BLU","SCH","GEO","SMN"} -- 50% Healing Breath Trigger SubJob --
  27. Hybrid_Type_Wyvern = S{"PLD","DRK","BRD","NIN","RUN"} -- 33% Healing Breath Trigger SubJob --
  28.  
  29. 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. --
  30.  
  31. sets.Idle = {}
  32. -- Idle/Town Sets --
  33. sets.Idle.Regen = {
  34. head={ name="Valorous Mask", augments={'Accuracy+14 Attack+14','"Store TP"+5','Attack+6',}},
  35. ammo="Staunch tathlum",
  36. body="Sulevia's Plate. +2",
  37. hands="Sulev. Gauntlets +2",
  38. legs="Sulevia's Cuisses +2",
  39. feet="Sulevia's leggings +2",
  40. ear1="Etiolation Earring",
  41. ear2="Infused Earring",
  42. neck="Bathy Choker +1",
  43. back="Moonbeam Cape",
  44. waist="Flume Belt",
  45. ring1="Sheltered Ring",
  46. ring2="Shneddick Ring +1"}
  47. sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  48. head={ name="Valorous Mask", augments={'Accuracy+14 Attack+14','"Store TP"+5','Attack+6',}},
  49. ammo="Staunch tathlum",
  50. body="Sulevia's Plate. +2",
  51. hands="Sulev. Gauntlets +2",
  52. legs="Sulevia's Cuisses +2",
  53. feet="Sulevia's leggings +2",
  54. ear1="Etiolation Earring",
  55. ear2="Infused Earring",
  56. neck="Bathy Choker +1",
  57. back="Moonbeam Cape",
  58. waist="Flume Belt",
  59. ring1="Sheltered Ring",
  60. ring2="Shneddick Ring +1"})
  61. sets.Idle.Refresh = set_combine(sets.Idle.Regen,{
  62. head={ name="Valorous Mask", augments={'Accuracy+14 Attack+14','"Store TP"+5','Attack+6',}},
  63. ammo="Staunch tathlum",
  64. body="Sulevia's Plate. +2",
  65. hands="Sulev. Gauntlets +2",
  66. legs="Sulevia's Cuisses +2",
  67. feet="Sulevia's leggings +2",
  68. ear1="Etiolation Earring",
  69. ear2="Infused Earring",
  70. neck="Bathy Choker +1",
  71. back="Moonbeam Cape",
  72. waist="Flume Belt",
  73. ring1="Sheltered Ring",
  74. ring2="Shneddick Ring +1"})
  75.  
  76. -- Twilight Set --
  77. sets.Twilight = {head="Twilight Helm",body="Twilight Mail"}
  78.  
  79. -- TP Base Set --
  80. sets.TP = {}
  81.  
  82. sets.TP.TH = {
  83. head="Wh. Rarab Cap +1",
  84. waist="Chaac Belt"}
  85.  
  86. -- Ryunohige(AM3 Down) TP Sets --
  87. sets.TP.Ryunohige = {}
  88. sets.TP.Ryunohige.MidACC = set_combine(sets.TP.Ryunohige,{})
  89. sets.TP.Ryunohige.HighACC = set_combine(sets.TP.Ryunohige.MidACC,{})
  90. sets.TP.Ryunohige.MaxACC = set_combine(sets.TP.Ryunohige.HighACC,{})
  91.  
  92. -- Ryunohige(AM3 Up) TP Sets --
  93. sets.TP.Ryunohige.AM3 = set_combine(sets.TP.Ryunohige,{})
  94. sets.TP.Ryunohige.MidACC.AM3 = set_combine(sets.TP.Ryunohige.AM3,{})
  95. sets.TP.Ryunohige.HighACC.AM3 = set_combine(sets.TP.Ryunohige.MidACC.AM3,{})
  96. sets.TP.Ryunohige.MaxACC.AM3 = set_combine(sets.TP.Ryunohige.HighACC.AM3,{})
  97.  
  98. -- Ryunohige(AM3 Down: Ionis) TP Sets --
  99. sets.TP.Ryunohige.Ionis = set_combine(sets.TP.Ryunohige,{})
  100. sets.TP.Ryunohige.MidACC.Ionis = set_combine(sets.TP.Ryunohige.MidACC,{})
  101. sets.TP.Ryunohige.HighACC.Ionis = set_combine(sets.TP.Ryunohige.HighACC,{})
  102. sets.TP.Ryunohige.MaxACC.Ionis = set_combine(sets.TP.Ryunohige.MaxACC,{})
  103.  
  104. -- Ryunohige(AM3 Up: Ionis) TP Sets --
  105. sets.TP.Ryunohige.AM3.Ionis = set_combine(sets.TP.Ryunohige.AM3,{})
  106. sets.TP.Ryunohige.MidACC.AM3.Ionis = set_combine(sets.TP.Ryunohige.MidACC.AM3,{})
  107. sets.TP.Ryunohige.HighACC.AM3.Ionis = set_combine(sets.TP.Ryunohige.HighACC.AM3,{})
  108. sets.TP.Ryunohige.MaxACC.AM3.Ionis = set_combine(sets.TP.Ryunohige.MaxACC.AM3,{})
  109.  
  110. -- Ryunohige(AM3 Down: SAM Roll) TP Sets --
  111. sets.TP.Ryunohige.STP = set_combine(sets.TP.Ryunohige,{})
  112. sets.TP.Ryunohige.MidACC.STP = set_combine(sets.TP.Ryunohige.MidACC,{})
  113. sets.TP.Ryunohige.HighACC.STP = set_combine(sets.TP.Ryunohige.HighACC,{})
  114. sets.TP.Ryunohige.MaxACC.STP = set_combine(sets.TP.Ryunohige.MaxACC,{})
  115.  
  116. -- Ryunohige(AM3 Up: SAM Roll) TP Sets --
  117. sets.TP.Ryunohige.AM3.STP = set_combine(sets.TP.Ryunohige.AM3,{})
  118. sets.TP.Ryunohige.MidACC.AM3.STP = set_combine(sets.TP.Ryunohige.MidACC.AM3,{})
  119. sets.TP.Ryunohige.HighACC.AM3.STP = set_combine(sets.TP.Ryunohige.HighACC.AM3,{})
  120. sets.TP.Ryunohige.MaxACC.AM3.STP = set_combine(sets.TP.Ryunohige.MaxACC.AM3,{})
  121.  
  122. -- Ryunohige(AM3 Down: Ionis + SAM Roll) TP Sets --
  123. sets.TP.Ryunohige.Ionis.STP = set_combine(sets.TP.Ryunohige,{})
  124. sets.TP.Ryunohige.MidACC.Ionis.STP = set_combine(sets.TP.Ryunohige.MidACC,{})
  125. sets.TP.Ryunohige.HighACC.Ionis.STP = set_combine(sets.TP.Ryunohige.HighACC,{})
  126. sets.TP.Ryunohige.MaxACC.Ionis.STP = set_combine(sets.TP.Ryunohige.MaxACC,{})
  127.  
  128. -- Ryunohige(AM3 Up: Ionis + SAM Roll) TP Sets --
  129. sets.TP.Ryunohige.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.AM3,{})
  130. sets.TP.Ryunohige.MidACC.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.MidACC.AM3,{})
  131. sets.TP.Ryunohige.HighACC.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.HighACC.AM3,{})
  132. sets.TP.Ryunohige.MaxACC.AM3.Ionis.STP = set_combine(sets.TP.Ryunohige.MaxACC.AM3,{})
  133.  
  134. -- Gungnir TP Sets --
  135. sets.TP.Gungnir = {}
  136. sets.TP.Gungnir.MidACC = set_combine(sets.TP.Gungnir,{})
  137. sets.TP.Gungnir.HighACC = set_combine(sets.TP.Gungnir.MidACC,{})
  138. sets.TP.Gungnir.MaxACC = set_combine(sets.TP.Gungnir.HighACC,{})
  139.  
  140. -- Gungnir(Ionis) TP Sets --
  141. sets.TP.Gungnir.Ionis = set_combine(sets.TP.Gungnir,{})
  142. sets.TP.Gungnir.MidACC.Ionis = set_combine(sets.TP.Gungnir.MidACC,{})
  143. sets.TP.Gungnir.HighACC.Ionis = set_combine(sets.TP.Gungnir.HighACC,{})
  144. sets.TP.Gungnir.MaxACC.Ionis = set_combine(sets.TP.Gungnir.MaxACC,{})
  145.  
  146. -- Gungnir(SAM Roll) TP Sets --
  147. sets.TP.Gungnir.STP = set_combine(sets.TP.Gungnir,{})
  148. sets.TP.Gungnir.MidACC.STP = set_combine(sets.TP.Gungnir.MidACC,{})
  149. sets.TP.Gungnir.HighACC.STP = set_combine(sets.TP.Gungnir.HighACC,{})
  150. sets.TP.Gungnir.MaxACC.STP = set_combine(sets.TP.Gungnir.MaxACC,{})
  151.  
  152. -- Gungnir(Ionis + SAM Roll) TP Sets --
  153. sets.TP.Gungnir.Ionis.STP = set_combine(sets.TP.Gungnir,{})
  154. sets.TP.Gungnir.MidACC.Ionis.STP = set_combine(sets.TP.Gungnir.MidACC,{})
  155. sets.TP.Gungnir.HighACC.Ionis.STP = set_combine(sets.TP.Gungnir.HighACC,{})
  156. sets.TP.Gungnir.MaxACC.Ionis.STP = set_combine(sets.TP.Gungnir.MaxACC,{})
  157.  
  158. -- Rhongomiant TP Sets --
  159. sets.TP.Rhongomiant = {}
  160. sets.TP.Rhongomiant.MidACC = set_combine(sets.TP.Rhongomiant,{})
  161. sets.TP.Rhongomiant.HighACC = set_combine(sets.TP.Rhongomiant.MidACC,{})
  162. sets.TP.Rhongomiant.MaxACC = set_combine(sets.TP.Rhongomiant.HighACC,{})
  163.  
  164. -- Rhongomiant(Ionis) TP Sets --
  165. sets.TP.Rhongomiant.Ionis = set_combine(sets.TP.Rhongomiant,{})
  166. sets.TP.Rhongomiant.MidACC.Ionis = set_combine(sets.TP.Rhongomiant.MidACC,{})
  167. sets.TP.Rhongomiant.HighACC.Ionis = set_combine(sets.TP.Rhongomiant.HighACC,{})
  168. sets.TP.Rhongomiant.MaxACC.Ionis = set_combine(sets.TP.Rhongomiant.MaxACC,{})
  169.  
  170. -- Rhongomiant(SAM Roll) TP Sets --
  171. sets.TP.Rhongomiant.STP = set_combine(sets.TP.Rhongomiant,{})
  172. sets.TP.Rhongomiant.MidACC.STP = set_combine(sets.TP.Rhongomiant.MidACC,{})
  173. sets.TP.Rhongomiant.HighACC.STP = set_combine(sets.TP.Rhongomiant.HighACC,{})
  174. sets.TP.Rhongomiant.MaxACC.STP = set_combine(sets.TP.Rhongomiant.MaxACC,{})
  175.  
  176. -- Rhongomiant(Ionis + SAM Roll) TP Sets --
  177. sets.TP.Rhongomiant.Ionis.STP = set_combine(sets.TP.Rhongomiant,{})
  178. sets.TP.Rhongomiant.MidACC.Ionis.STP = set_combine(sets.TP.Rhongomiant.MidACC,{})
  179. sets.TP.Rhongomiant.HighACC.Ionis.STP = set_combine(sets.TP.Rhongomiant.HighACC,{})
  180. sets.TP.Rhongomiant.MaxACC.Ionis.STP = set_combine(sets.TP.Rhongomiant.MaxACC,{})
  181.  
  182. -- Trishula TP Sets --
  183. sets.TP.Trishula = {
  184. main="Trishula",
  185. sub="Utu Grip",
  186. ammo="Ginsen",
  187. head="Flam. Zucchetto +2",
  188. neck="Ganesha's Mala",
  189. ear1="Brutal Earring",
  190. ear2="Sherida Earring",
  191. body={ name="Valorous Mail", augments={'Attack+30','"Store TP"+6','VIT+8','Accuracy+15',}},
  192. hands="Sulev. Gauntlets +2",
  193. ring1="Niqmaddu Ring",
  194. ring2="Petrov Ring",
  195. back="Brigantia's Mantle",
  196. waist="Ioskeha Belt",
  197. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  198. feet="Flam. Gambieras +2"}
  199. sets.TP.Trishula.MidACC = set_combine(sets.TP.Trishula,{
  200. ear1="Cessance Earring",
  201. neck="Combatant's Torque",
  202. ring2="Flamma Ring"})
  203. sets.TP.Trishula.HighACC = set_combine(sets.TP.Trishula.MidACC,{
  204. legs="Flamma Dirs +2",
  205. neck="Shulmanu Collar",
  206. ear1="Telos Earring"})
  207. sets.TP.Trishula.MaxACC = set_combine(sets.TP.Trishula.HighACC,{
  208. head="Flam. Zucchetto +2",
  209. body="Flamma Korazin +2",
  210. hands="Flam. Manopolas +2",
  211. legs="Flamma Dirs +2",
  212. feet="Flam. Gambieras +2"})
  213.  
  214. -- Trishula(Ionis) TP Sets --
  215. sets.TP.Trishula.Ionis = set_combine(sets.TP.Trishula,{
  216. main="Trishula",
  217. sub="Utu Grip",
  218. ammo="Ginsen",
  219. head="Flam. Zucchetto +2",
  220. neck="Ganesha's Mala",
  221. ear1="Brutal Earring",
  222. ear2="Sherida Earring",
  223. body={ name="Valorous Mail", augments={'Attack+30','"Store TP"+6','VIT+8','Accuracy+15',}},
  224. hands="Sulev. Gauntlets +2",
  225. ring1="Niqmaddu Ring",
  226. ring2="Petrov Ring",
  227. back="Brigantia's Mantle",
  228. waist="Ioskeha Belt",
  229. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  230. feet="Flam. Gambieras +2"})
  231. sets.TP.Trishula.MidACC.Ionis = set_combine(sets.TP.Trishula.MidACC,{
  232. ear1="Cessance Earring",
  233. neck="Combatant's Torque",
  234. ring2="Flamma Ring"})
  235. sets.TP.Trishula.HighACC.Ionis = set_combine(sets.TP.Trishula.HighACC,{
  236. legs="Flamma Dirs +2",
  237. neck="Shulmanu Collar",
  238. ear1="Telos Earring"})
  239. sets.TP.Trishula.MaxACC.Ionis = set_combine(sets.TP.Trishula.MaxACC,{
  240. head="Flam. Zucchetto +2",
  241. body="Flamma Korazin +2",
  242. hands="Flam. Manopolas +2",
  243. legs="Flamma Dirs +2",
  244. feet="Flam. Gambieras +2"})
  245.  
  246. -- Trishula(SAM Roll) TP Sets --
  247. sets.TP.Trishula.STP = set_combine(sets.TP.Trishula,{
  248. main="Trishula",
  249. sub="Utu Grip",
  250. ammo="Ginsen",
  251. head="Flam. Zucchetto +2",
  252. neck="Ganesha's Mala",
  253. ear1="Brutal Earring",
  254. ear2="Sherida Earring",
  255. body={ name="Valorous Mail", augments={'Attack+30','"Store TP"+6','VIT+8','Accuracy+15',}},
  256. hands="Sulev. Gauntlets +2",
  257. ring1="Niqmaddu Ring",
  258. ring2="Petrov Ring",
  259. back="Brigantia's Mantle",
  260. waist="Ioskeha Belt",
  261. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  262. feet="Flam. Gambieras +2"})
  263. sets.TP.Trishula.MidACC.STP = set_combine(sets.TP.Trishula.MidACC,{
  264. ear1="Cessance Earring",
  265. neck="Combatant's Torque",
  266. ring2="Flamma Ring"})
  267. sets.TP.Trishula.HighACC.STP = set_combine(sets.TP.Trishula.HighACC,{
  268. legs="Flamma Dirs +2",
  269. neck="Shulmanu Collar",
  270. ear1="Telos Earring"})
  271. sets.TP.Trishula.MaxACC.STP = set_combine(sets.TP.Trishula.MaxACC,{
  272. head="Flam. Zucchetto +2",
  273. body="Flamma Korazin +2",
  274. hands="Flam. Manopolas +2",
  275. legs="Flamma Dirs +2",
  276. feet="Flam. Gambieras +2"})
  277.  
  278. -- Trishula(Ionis + SAM Roll) TP Sets --
  279. sets.TP.Trishula.Ionis.STP = set_combine(sets.TP.Trishula,{
  280. main="Trishula",
  281. sub="Utu Grip",
  282. ammo="Ginsen",
  283. head="Flam. Zucchetto +2",
  284. neck="Ganesha's Mala",
  285. ear1="Brutal Earring",
  286. ear2="Sherida Earring",
  287. body={ name="Valorous Mail", augments={'Attack+30','"Store TP"+6','VIT+8','Accuracy+15',}},
  288. hands="Sulev. Gauntlets +2",
  289. ring1="Niqmaddu Ring",
  290. ring2="Petrov Ring",
  291. back="Brigantia's Mantle",
  292. waist="Ioskeha Belt",
  293. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  294. feet="Flam. Gambieras +2"})
  295. sets.TP.Trishula.MidACC.Ionis.STP = set_combine(sets.TP.Trishula.MidACC,{
  296. ear1="Cessance Earring",
  297. neck="Combatant's Torque",
  298. ring2="Flamma Ring"})
  299. sets.TP.Trishula.HighACC.Ionis.STP = set_combine(sets.TP.Trishula.HighACC,{
  300. legs="Flamma Dirs +2",
  301. neck="Shulmanu Collar",
  302. ear1="Telos Earring"})
  303. sets.TP.Trishula.MaxACC.Ionis.STP = set_combine(sets.TP.Trishula.MaxACC,{
  304. head="Flam. Zucchetto +2",
  305. body="Flamma Korazin +2",
  306. hands="Flam. Manopolas +2",
  307. legs="Flamma Dirs +2",
  308. feet="Flam. Gambieras +2"})
  309.  
  310. -- AM3 Rancor ON Mantle --
  311. sets.TP.Rancor = {back="Rancorous Mantle"}
  312.  
  313. -- PDT/MDT Sets --
  314. sets.PDT = {
  315. ammo="Staunch Tathlum",
  316. head="Sulevia's Mask +2",
  317. neck="Loricate Torque +1",
  318. ear1="Genmei Earring",
  319. ear2="Sherida Earring",
  320. body="Sulevia's Plate. +2",
  321. hands="Sulev. Gauntlets +2",
  322. ring1="Niqmaddu Ring",
  323. ring2="Defending Ring",
  324. back="Brigantia's Mantle",
  325. waist="Ioskeha Belt",
  326. legs="Sulevia's Cuisses +2",
  327. feet="Sulevia's leggings +2"}
  328.  
  329. sets.MDT = set_combine(sets.PDT,{})
  330.  
  331. -- Hybrid Sets --
  332. sets.TP.Hybrid = set_combine(sets.PDT,{})
  333. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  334. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  335. sets.TP.Hybrid.MaxACC = set_combine(sets.TP.Hybrid.HighACC,{})
  336.  
  337. -- WS Base Set --
  338. sets.WS = {
  339. ammo="Knobkierrie",
  340. head="Flam. Zucchetto +2",
  341. neck="Fotio Gorget",
  342. ear1="Moonshade Earring",
  343. ear2="Sherida Earring",
  344. body="Dagon Breast.",
  345. hands="Sulev. Gauntlets +2",
  346. ring1="Niqmaddu Ring",
  347. ring2="Regal Ring",
  348. back="Brigantia's Mantle",
  349. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  350. feet="Flam. Gambieras +2"}
  351.  
  352. -- Drakesbane Sets --
  353. sets.WS.Drakesbane = {
  354. ammo="Knobkierrie",
  355. head="Flam. Zucchetto +2",
  356. neck="Fotia Gorget",
  357. ear1="Moonshade Earring",
  358. ear2="Sherida Earring",
  359. body="Dagon Breast.",
  360. waist="Fotia Belt",
  361. hands="Sulev. Gauntlets +2",
  362. ring1="Niqmaddu Ring",
  363. ring2="Regal Ring",
  364. back="Brigantia's Mantle",
  365. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  366. feet="Flam. Gambieras +2"}
  367. sets.WS.Drakesbane.MidACC = set_combine(sets.WS.Drakesbane,{})
  368. sets.WS.Drakesbane.HighACC = set_combine(sets.WS.Drakesbane.MidACC,{})
  369. sets.WS.Drakesbane.MaxACC = set_combine(sets.WS.Drakesbane.HighACC,{})
  370.  
  371. -- Drakesbane(Low Level Content) Set --
  372. sets.WS.Drakesbane.LowContent = set_combine(sets.WS.Drakesbane,{
  373. neck="Ganesha's Mala",
  374. body="Phorcys Korazin",
  375. waist="Windbuffet Belt +1"})
  376.  
  377. -- Drakesbane(High Attack) Set --
  378. sets.WS.Drakesbane.HighATT = set_combine(sets.WS.Drakesbane,{})
  379.  
  380. -- Stardiver Sets --
  381. sets.WS.Stardiver = {
  382. ammo="Knobkierrie",
  383. head="Flam. Zucchetto +2",
  384. neck="Fotia Gorget",
  385. ear1="Moonshade Earring",
  386. ear2="Sherida Earring",
  387. body="Dagon Breast.",
  388. waist="Fotia Belt",
  389. hands="Sulev. Gauntlets +2",
  390. ring1="Niqmaddu Ring",
  391. ring2="Regal Ring",
  392. back="Brigantia's Mantle",
  393. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  394. feet="Flam. Gambieras +2"}
  395. sets.WS.Stardiver.MidACC = set_combine(sets.WS.Stardiver,{})
  396. sets.WS.Stardiver.HighACC = set_combine(sets.WS.Stardiver.MidACC,{})
  397. sets.WS.Stardiver.MaxACC = set_combine(sets.WS.Stardiver.HighACC,{})
  398.  
  399. -- Geirskogul Set --
  400. sets.WS.Geirskogul = {}
  401.  
  402.  
  403.  
  404. -- Camlann's Torment Set --
  405. sets.WS["Camlann's Torment"] = {
  406. ammo="Knobkierrie",
  407. head={ name="Valorous Mask", augments={'Accuracy+30','Weapon skill damage +3%','STR+6','Attack+11',}},
  408. body={ name="Valorous Mail", augments={'Accuracy+15 Attack+15','Weapon skill damage +4%','DEX+2','Attack+11',}},
  409. hands={ name="Valorous Mitts", augments={'Attack+24','Weapon skill damage +4%','DEX+5','Accuracy+13',}},
  410. legs="Sulev. Cuisses +2",
  411. feet="Sulevia's leggings +2",
  412. ear1="Ishvara Earring",
  413. ear2="Sherida Earring",
  414. neck="Fotia Gorget",
  415. waist="Fotia Belt",
  416. ring1="Niqmaddu Ring",
  417. ring2="Regal Ring"}
  418.  
  419. -- Sonic Thrust Set --
  420. sets.WS["Sonic Thrust"] = {
  421. ammo="Knobkierrie",
  422. head={ name="Valorous Mask", augments={'Accuracy+30','Weapon skill damage +3%','STR+6','Attack+11',}},
  423. body={ name="Valorous Mail", augments={'Accuracy+15 Attack+15','Weapon skill damage +4%','DEX+2','Attack+11',}},
  424. hands={ name="Valorous Mitts", augments={'Attack+24','Weapon skill damage +4%','DEX+5','Accuracy+13',}},
  425. legs="Sulev. Cuisses +2",
  426. feet="Sulevia's leggings +2",
  427. ear1="Ishvara Earring",
  428. ear2="Sherida Earring",
  429. neck="Fotia Gorget",
  430. waist="Fotia Belt",
  431. ring1="Niqmaddu Ring",
  432. ring2="Regal Ring"}
  433.  
  434. -- Camlann's Torment Set --
  435. sets.WS["Leg Sweep"] = {
  436. ammo="Pemphredo Tathlum",
  437. head="Flam. Zucchetto +2",
  438. body="Flamma Korazin +2",
  439. hands="Flam. Manopolas +2",
  440. legs="Flamma Dirs +2",
  441. feet="Flam. Gambieras +2",
  442. neck="Fotia Gorget",
  443. back="Brigantia's Mantle",
  444. waist="Fotia Belt",
  445. left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +25',}},
  446. right_ear="Digni. Earring",
  447. left_ring="Niqmaddu Ring",
  448. right_ring="Etana Ring"}
  449.  
  450. sets.JA = {}
  451. -- Jump Sets --
  452. sets.JA.Jump = {
  453. ammo="Ginsen",
  454. head="Flam. Zucchetto +2",
  455. neck="Ganesha's Mala",
  456. ear1="Brutal Earring",
  457. ear2="Sherida Earring",
  458. body={ name="Valorous Mail", augments={'Attack+30','"Store TP"+6','VIT+8','Accuracy+15',}},
  459. hands="Sulev. Gauntlets +2",
  460. ring1="Niqmaddu Ring",
  461. ring2="Petrov Ring",
  462. back="Brigantia's Mantle",
  463. waist="Ioskeha Belt",
  464. legs={ name="Valor. Hose", augments={'Attack+14','Quadruple Attack +3','Accuracy+10 Attack+10',}},
  465. feet="Flam. Gambieras +2"}
  466. sets.JA.Jump.MidACC = set_combine(sets.JA.Jump,{})
  467. sets.JA.Jump.HighACC = set_combine(sets.JA.Jump.MidACC,{})
  468. sets.JA.Jump.MaxACC = set_combine(sets.JA.Jump.HighACC,{})
  469.  
  470. -- High Jump Sets --
  471. sets.JA["High Jump"] = set_combine(sets.JA.Jump,{})
  472. sets.JA["High Jump"].MidACC = set_combine(sets.JA.Jump.MidACC,{})
  473. sets.JA["High Jump"].HighACC = set_combine(sets.JA.Jump.HighACC,{})
  474. sets.JA["High Jump"].MaxACC = set_combine(sets.JA.Jump.MaxACC,{})
  475.  
  476. -- Spirit Jump Sets --
  477. sets.JA["Spirit Jump"] = set_combine(sets.JA.Jump,{
  478. feet="Pelt. Schyn. +1"})
  479. sets.JA["Spirit Jump"].MidACC = set_combine(sets.JA["Spirit Jump"],{})
  480. sets.JA["Spirit Jump"].HighACC = set_combine(sets.JA["Spirit Jump"].MidACC,{})
  481. sets.JA["Spirit Jump"].MaxACC = set_combine(sets.JA["Spirit Jump"].HighACC,{})
  482.  
  483. -- Soul Jump Sets --
  484. sets.JA["Soul Jump"] = set_combine(sets.JA.Jump,{
  485. feet="Pelt. Schyn. +1"})
  486. sets.JA["Soul Jump"].MidACC = set_combine(sets.JA.Jump.MidACC,{})
  487. sets.JA["Soul Jump"].HighACC = set_combine(sets.JA.Jump.HighACC,{})
  488. sets.JA["Soul Jump"].MaxACC = set_combine(sets.JA.Jump.MaxACC,{})
  489.  
  490. -- Angon Set --
  491. sets.JA.Angon = {ammo="Angon",ear1="Dragoon's Earring",hands="Ptero. Fin. G. +1"}
  492.  
  493. sets.JA["Ancient Circle"] = {legs="Vishap Brais +1"}
  494. sets.JA['Call Wyvern'] = {body="Ptero. Mail +1"}
  495. sets.JA['Deep Breathing'] = {head="Ptero. Armet +1"}
  496.  
  497. sets.Pet = {}
  498. -- Wyvern +HP Set --
  499. sets.Pet.WyvernHP = {
  500. body="Emicho Haubert",
  501. back="Updraft Mantle",
  502. legs="Vishap Brais +1",
  503. feet="Ptero. Greaves +1"}
  504.  
  505. sets.JA["Spirit Link"] = set_combine(sets.Pet.WyvernHP,{head="Vishap Armet +1",ear1="Pratik Earring",feet="Ptero. Greaves +1",hands="Pel. Vambraces +1"})
  506.  
  507. sets.Pet["Steady Wing"] = set_combine(sets.Pet.WyvernHP)
  508.  
  509. sets.Pet["Smiting Breath"] = {
  510. head="Ptero. Armet +1",
  511. neck="Lancer's Torque",
  512. ear1="Dragoon's Earring",
  513. belt="Glassblower's Belt"}
  514.  
  515. -- Healing Breath Trigger: +HP Gear --
  516. sets.Healing_Breath_Trigger = {
  517. head="Ptero. Armet +1"}
  518.  
  519. -- Healing Breath Set --
  520. sets.Healing_Breath = set_combine(sets.Pet.WyvernHP,{
  521. head="Ptero. Armet +1",
  522. neck="Lancer's Torque",
  523. belt="Glassblower's Belt"})
  524.  
  525. -- Elemental Breath Set
  526. sets.Elemental_Breath = {head="Ptero. Armet +1"}
  527.  
  528. -- Waltz Set --
  529. sets.Waltz = {}
  530.  
  531. sets.Precast = {}
  532. -- Fastcast Set --
  533. sets.Precast.FastCast = {
  534. ammo="Sapience Orb",
  535. head="Carmine Mask +1",
  536. neck="Orunmila's Torque",
  537. ear1="Enchntr. Earring +1",
  538. ear2="Loquac. Earring",
  539. body={ name="Taeon Tabard", augments={'Pet: "Mag.Atk.Bns."+21','"Fast Cast"+5','STR+6 DEX+6',}},
  540. hands="Leyline Gloves",
  541. ring1="Prolix Ring",
  542. ring2="Lebeche Ring",
  543. feet="Carmine Greaves +1"}
  544.  
  545. sets.Midcast = {}
  546. -- Magic Haste Set --
  547. sets.Midcast.Haste = set_combine(sets.PDT,{})
  548.  
  549. -- Stoneskin Set --
  550. sets.Midcast.Stoneskin = {}
  551.  
  552. -- Cure Set --
  553. sets.Midcast.Cure = {
  554. neck="Phalaina Locket",
  555. ear1="Oneiros Earring",
  556. ear2="Roundel Earring",
  557. hands="Buremte Gloves",
  558. ring1="Asklepian Ring",
  559. ring2="Kunaji Ring",
  560. belt="Chuq'aba Belt"}
  561. end
  562.  
  563. function pretarget(spell,action)
  564.  
  565. if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  566. cancel_spell()
  567. send_command('input /item "Echo Drops" <me>')
  568. elseif spell.english == "Spirit Jump" and not pet.isvalid then -- Change Spirit Jump To Jump If Wyvern Is Not Present --
  569. cancel_spell()
  570. send_command('Jump')
  571. elseif spell.english == "Soul Jump" and not pet.isvalid then -- Change Soul Jump To High Jump If Wyvern Is Not Present --
  572. cancel_spell()
  573. send_command('HighJump')
  574. elseif spell.english == "Dismiss" and pet.hpp < 100 then -- Cancel Dismiss If Wyvern's HP Is Under 100% --
  575. cancel_spell()
  576. add_to_chat(123, spell.english .. ' Canceled: [' .. pet.hpp .. ']')
  577. return
  578. elseif spell.english == "Call Wyvern" and pet.isvalid then -- Change Call Wyvern To Dismiss If Wyvern Is Present --
  579. cancel_spell()
  580. send_command('Dismiss')
  581. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  582. cancel_spell()
  583. send_command('Aggressor')
  584. elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  585. cancel_spell()
  586. send_command('ThirdEye')
  587. elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  588. cancel_spell()
  589. add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  590. elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  591. cancel_spell()
  592. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  593. return
  594. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  595. degrade_spell(spell,Cure_Spells)
  596. elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
  597. degrade_spell(spell,Curaga_Spells)
  598. end
  599. end
  600.  
  601. function precast(spell,action)
  602. if midaction() or pet_midaction() then
  603. cancel_spell()
  604. return
  605. elseif spell.action_type == 'Ranged Attack' then
  606. equip({ammo="Pebble"})
  607. elseif spell.type == "WeaponSkill" then
  608. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  609. cancel_spell()
  610. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  611. return
  612. else
  613. equipSet = sets.WS
  614. if equipSet[spell.english] then
  615. equipSet = equipSet[spell.english]
  616. end
  617. if equipSet[AccArray[AccIndex]] then
  618. equipSet = equipSet[AccArray[AccIndex]]
  619. end
  620. if equipSet[AttArray[AttIndex]] then
  621. equipSet = equipSet[AttArray[AttIndex]]
  622. end
  623. if elements[spell.name] and elements[spell.name]:contains(world.day_element) then
  624. equipSet = set_combine(equipSet,elements.equip)
  625. end
  626. if player.tp > 2990 or buffactive.Sekkanoki then -- Equip Kokou's Earring When You Have 3000 TP or Sekkanoki --
  627. equipSet = set_combine(equipSet,{ear1="Kokou's Earring"})
  628. end
  629. if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  630. equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  631. end
  632. equip(equipSet)
  633. end
  634. elseif spell.type == "JobAbility" then
  635. equipSet = sets.JA
  636. if equipSet[spell.english] then
  637. equipSet = equipSet[spell.english]
  638. end
  639. if equipSet[AccArray[AccIndex]] then
  640. equipSet = equipSet[AccArray[AccIndex]]
  641. end
  642. if spell.english == "High Jump" and Brais == 'ON' then -- Use High Jump Enmity Toggle To Equip Vishap Brais +1 For High Jump --
  643. equipSet = set_combine(equipSet,{legs="Vishap Brais +1"})
  644. end
  645. equip(equipSet)
  646. elseif spell.action_type == 'Magic' then
  647. if buffactive.silence or spell.target.distance > 16+target_distance then
  648. cancel_spell()
  649. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  650. return
  651. else
  652. if spell.english == 'Utsusemi: Ni' then
  653. if buffactive['Copy Image (3)'] then
  654. cancel_spell()
  655. add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  656. return
  657. else
  658. equip(sets.Precast.FastCast)
  659. end
  660. else
  661. equip(sets.Precast.FastCast)
  662. end
  663. end
  664. elseif spell.type == "Waltz" then
  665. refine_waltz(spell,action)
  666. equip(sets.Waltz)
  667. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  668. cast_delay(0.2)
  669. send_command('cancel Sneak')
  670. elseif spell.type == "PetCommand" then
  671. equip(sets.Pet[spell.english])
  672. end
  673. if Twilight == 'Twilight' then
  674. equip(sets.Twilight)
  675. end
  676. end
  677.  
  678. function midcast(spell,action)
  679. if pet_midaction() then
  680. return
  681. elseif spell.action_type == 'Ranged Attack' then
  682. equip({ammo="Pebble"})
  683. elseif spell.action_type == 'Magic' then
  684. if (spell.english:startswith('Cur') or spell.english == "Wild Carrot" or spell.english == "Healing Breeze") and spell.english ~= "Cursna" then
  685. equip(sets.Midcast.Cure)
  686. elseif spell.english == "Stoneskin" then
  687. if buffactive.Stoneskin then
  688. send_command('@wait 2.8;cancel stoneskin')
  689. end
  690. equip(sets.Midcast.Stoneskin)
  691. elseif spell.english:startswith('Protect') or spell.english:startswith('Shell') then
  692. if spell.target.name == player.name then
  693. equipSet = set_combine(equipSet,{ring2="Sheltered Ring"})
  694. end
  695. elseif spell.english == "Sneak" then
  696. if spell.target.name == player.name and buffactive['Sneak'] then
  697. send_command('cancel sneak')
  698. end
  699. equip(sets.Midcast.Haste)
  700. elseif spell.english:startswith('Utsusemi') then
  701. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then
  702. send_command('@wait 1.7;cancel Copy Image*')
  703. end
  704. equip(sets.Midcast.Haste)
  705. elseif spell.english == 'Monomi: Ichi' then
  706. if buffactive['Sneak'] then
  707. send_command('@wait 1.7;cancel sneak')
  708. end
  709. equip(sets.Midcast.Haste)
  710. elseif Healer_Type_Wyvern:contains(player.sub_job) and player.hpp < 51 and pet.isvalid then
  711. equip(sets.Healing_Breath_Trigger)
  712. elseif Hybrid_Type_Wyvern:contains(player.sub_job) and player.hpp < 34 and pet.isvalid then
  713. equip(sets.Healing_Breath_Trigger)
  714. else
  715. equip(sets.Midcast.Haste)
  716. end
  717. end
  718. end
  719.  
  720. function aftercast(spell,action)
  721. if not spell.interrupted then
  722. if spell.type == "WeaponSkill" then
  723. send_command('wait 0.2;gs c TP')
  724. elseif spell.english == "Angon" then -- Angon Timer/Countdown --
  725. timer_angon()
  726. send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Angon";input /echo '..spell.name..': [OFF]')
  727. elseif spell.english == "Ancient Circle" then -- Ancient Circle Countdown --
  728. send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  729. end
  730. elseif not spell.type == "PetCommand" then
  731. status_change(player.status)
  732. end
  733. end
  734.  
  735. function status_change(new,old)
  736. check_equip_lock()
  737. if Armor == 'PDT' then
  738. equip(sets.PDT)
  739. elseif Armor == 'MDT' then
  740. equip(sets.MDT)
  741. elseif new == 'Engaged' then
  742. equipSet = sets.TP
  743. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  744. equipSet = equipSet["Hybrid"]
  745. end
  746. if equipSet[WeaponArray[WeaponIndex]] then
  747. equipSet = equipSet[WeaponArray[WeaponIndex]]
  748. end
  749. if equipSet[AccArray[AccIndex]] then
  750. equipSet = equipSet[AccArray[AccIndex]]
  751. end
  752. if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  753. if Rancor == 'ON' then -- Default Rancor Toggle Is Rancorous Mantle --
  754. equipSet = set_combine(equipSet["AM3"],sets.TP.Rancor)
  755. else -- Use Rancor Toggle For Atheling Mantle --
  756. equipSet = equipSet["AM3"]
  757. end
  758. end
  759. if buffactive.Ionis and equipSet["Ionis"] then
  760. equipSet = equipSet["Ionis"]
  761. end
  762. if buffactive["Samurai Roll"] and equipSet["STP"] and Samurai_Roll == 'ON' then
  763. equipSet = equipSet["STP"]
  764. end
  765. equip(equipSet)
  766.  
  767. if TH == 'ON' then -- Use TH Toggle To Lock Full TH Set --
  768. equipSet = set_combine(equipSet,sets.TP.TH)
  769. end
  770. equip(equipSet)
  771. else
  772. equipSet = sets.Idle
  773. if equipSet[IdleArray[IdleIndex]] then
  774. equipSet = equipSet[IdleArray[IdleIndex]]
  775. end
  776. if equipSet[WeaponArray[WeaponIndex]] then
  777. equipSet = equipSet[WeaponArray[WeaponIndex]]
  778. end
  779. if buffactive['Reive Mark'] then -- Equip Ygnas's Resolve +1 During Reive --
  780. equipSet = set_combine(equipSet,{neck="Ygnas's Resolve +1"})
  781. end
  782. if world.time >= (7*60) and world.time <= (17*60) then -- Equip Lycopodium Sash From Dusk To Dawn --
  783. equipSet = set_combine(equipSet,{waist="Lycopodium Sash"})
  784. end
  785. if world.area:endswith('Adoulin') then
  786. equipSet = set_combine(equipSet,{body="Councilor's Garb"})
  787. end
  788. equip(equipSet)
  789. end
  790. if Twilight == 'Twilight' then
  791. equip(sets.Twilight)
  792. end
  793. end
  794.  
  795. function buff_change(buff,gain)
  796. buff = string.lower(buff)
  797. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  798. if gain then
  799. 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.]')
  800. else
  801. send_command('timers delete "Aftermath: Lv.3"')
  802. add_to_chat(123,'AM3: [OFF]')
  803. end
  804. elseif buff == 'weakness' then -- Weakness Timer --
  805. if gain then
  806. send_command('timers create "Weakness" 300 up')
  807. else
  808. send_command('timers delete "Weakness"')
  809. end
  810. end
  811. 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 --
  812. equip({neck="Vim Torque"})
  813. else
  814. if not midaction() and not pet_midaction() then
  815. status_change(player.status)
  816. end
  817. end
  818. end
  819.  
  820. function pet_midcast(spell,action)
  821. if spell.english:startswith('Healing') then
  822. equip(sets.Healing_Breath)
  823. elseif spell.target.type == 'MONSTER' then
  824. equip(sets.Elemental_Breath)
  825. end
  826. end
  827.  
  828. function pet_aftercast(spell,action)
  829. status_change(player.status)
  830. end
  831.  
  832. function pet_change(pet,gain)
  833. status_change(player.status)
  834. end
  835.  
  836. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  837. function self_command(command)
  838. if command == 'C1' then -- Accuracy Level Toggle --
  839. AccIndex = (AccIndex % #AccArray) + 1
  840. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  841. status_change(player.status)
  842. elseif command == 'C9' then -- Full TH Set Toggle --
  843. if TH == 'ON' then
  844. TH = 'OFF'
  845. add_to_chat(123,'Full TH Set: [Unlocked]')
  846. else
  847. TH = 'ON'
  848. add_to_chat(158,'Full TH Set: [Locked]')
  849. end
  850. status_change(player.status)
  851. elseif command == 'C5' then -- Auto Update Gear Toggle --
  852. status_change(player.status)
  853. add_to_chat(158,'Auto Update Gear')
  854. elseif command == 'C2' then -- Hybrid Toggle --
  855. if Armor == 'Hybrid' then
  856. Armor = 'None'
  857. add_to_chat(123,'Hybrid Set: [Unlocked]')
  858. else
  859. Armor = 'Hybrid'
  860. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  861. end
  862. status_change(player.status)
  863. elseif command == 'C7' then -- PDT Toggle --
  864. if Armor == 'PDT' then
  865. Armor = 'None'
  866. add_to_chat(123,'PDT Set: [Unlocked]')
  867. else
  868. Armor = 'PDT'
  869. add_to_chat(158,'PDT Set: [Locked]')
  870. end
  871. status_change(player.status)
  872. elseif command == 'C15' then -- MDT Toggle --
  873. if Armor == 'MDT' then
  874. Armor = 'None'
  875. add_to_chat(123,'MDT Set: [Unlocked]')
  876. else
  877. Armor = 'MDT'
  878. add_to_chat(158,'MDT Set: [Locked]')
  879. end
  880. status_change(player.status)
  881. elseif command == 'C17' then -- Main Weapon Toggle --
  882. WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  883. add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
  884. status_change(player.status)
  885. elseif command == 'C10' then -- High Jump Enmity Toggle --
  886. if Brais == 'ON' then
  887. Brais = 'OFF'
  888. add_to_chat(123,'High Jump Enmity: [OFF]')
  889. else
  890. Brais = 'ON'
  891. add_to_chat(158,'High Jump Enmity: [ON]')
  892. end
  893. status_change(player.status)
  894. elseif command == 'C16' then -- SAM Roll Toggle --
  895. if Samurai_Roll == 'ON' then
  896. Samurai_Roll = 'OFF'
  897. add_to_chat(123,'SAM Roll: [OFF]')
  898. else
  899. Samurai_Roll = 'ON'
  900. add_to_chat(158,'SAM Roll: [ON]')
  901. end
  902. status_change(player.status)
  903. elseif command == 'C3' then -- Twilight Toggle --
  904. if Twilight == 'Twilight' then
  905. Twilight = 'None'
  906. add_to_chat(123,'Twilight Set: [Unlocked]')
  907. else
  908. Twilight = 'Twilight'
  909. add_to_chat(158,'Twilight Set: [locked]')
  910. end
  911. status_change(player.status)
  912. elseif command == 'C8' then -- Distance Toggle --
  913. if player.target.distance then
  914. target_distance = math.floor(player.target.distance*10)/10
  915. add_to_chat(158,'Distance: '..target_distance)
  916. else
  917. add_to_chat(123,'No Target Selected')
  918. end
  919. elseif command == 'C6' then -- Idle Toggle --
  920. IdleIndex = (IdleIndex % #IdleArray) + 1
  921. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  922. status_change(player.status)
  923. elseif command == 'TP' then
  924. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  925. elseif command:match('^SC%d$') then
  926. send_command('//' .. sc_map[command])
  927. end
  928. end
  929.  
  930. function check_equip_lock() -- Lock Equipment Here --
  931.  
  932. end
  933.  
  934. function timer_angon()
  935. local duration = 90
  936. send_command('timers create "Angon" '..tostring(duration)..' down')
  937. end
  938.  
  939. function actualCost(originalCost)
  940. if buffactive["Penury"] then
  941. return originalCost*.5
  942. elseif buffactive["Light Arts"] or buffactive["Addendum: White"] then
  943. return originalCost*.9
  944. elseif buffactive["Dark Arts"] or buffactive["Addendum: Black"] then
  945. return originalCost*1.1
  946. else
  947. return originalCost
  948. end
  949. end
  950.  
  951. function degrade_spell(spell,degrade_array)
  952. spell_index = table.find(degrade_array,spell.name)
  953. if spell_index > 1 then
  954. new_spell = degrade_array[spell_index - 1]
  955. change_spell(new_spell,spell.target.raw)
  956. add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  957. end
  958. end
  959.  
  960. function change_spell(spell_name,target)
  961. cancel_spell()
  962. send_command('//'..spell_name..' '..target)
  963. end
  964.  
  965. function refine_waltz(spell,action)
  966. if spell.type ~= 'Waltz' then
  967. return
  968. end
  969.  
  970. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  971. return
  972. end
  973.  
  974. local newWaltz = spell.english
  975. local waltzID
  976.  
  977. local missingHP
  978.  
  979. if spell.target.type == "SELF" then
  980. missingHP = player.max_hp - player.hp
  981. elseif spell.target.isallymember then
  982. local target = find_player_in_alliance(spell.target.name)
  983. local est_max_hp = target.hp / (target.hpp/100)
  984. missingHP = math.floor(est_max_hp - target.hp)
  985. end
  986.  
  987. if missingHP ~= nil then
  988. if player.sub_job == 'DNC' then
  989. if missingHP < 40 and spell.target.name == player.name then
  990. add_to_chat(123,'Full HP!')
  991. cancel_spell()
  992. return
  993. elseif missingHP < 150 then
  994. newWaltz = 'Curing Waltz'
  995. waltzID = 190
  996. elseif missingHP < 300 then
  997. newWaltz = 'Curing Waltz II'
  998. waltzID = 191
  999. else
  1000. newWaltz = 'Curing Waltz III'
  1001. waltzID = 192
  1002. end
  1003. else
  1004. return
  1005. end
  1006. end
  1007.  
  1008. local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50, ['Curing Waltz IV'] = 65, ['Curing Waltz V'] = 80}
  1009. local tpCost = waltzTPCost[newWaltz]
  1010.  
  1011. local downgrade
  1012.  
  1013. if player.tp < tpCost and not buffactive.trance then
  1014.  
  1015. if player.tp < 20 then
  1016. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  1017. cancel_spell()
  1018. return
  1019. elseif player.tp < 35 then
  1020. newWaltz = 'Curing Waltz'
  1021. elseif player.tp < 50 then
  1022. newWaltz = 'Curing Waltz II'
  1023. elseif player.tp < 65 then
  1024. newWaltz = 'Curing Waltz III'
  1025. elseif player.tp < 80 then
  1026. newWaltz = 'Curing Waltz IV'
  1027. end
  1028.  
  1029. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  1030. end
  1031.  
  1032. if newWaltz ~= spell.english then
  1033. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  1034. if downgrade then
  1035. add_to_chat(158, downgrade)
  1036. end
  1037. cancel_spell()
  1038. return
  1039. end
  1040.  
  1041. if missingHP > 0 then
  1042. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  1043. end
  1044. end
  1045.  
  1046. function find_player_in_alliance(name)
  1047. for i,v in ipairs(alliance) do
  1048. for k,p in ipairs(v) do
  1049. if p.name == name then
  1050. return p
  1051. end
  1052. end
  1053. end
  1054. end
  1055.  
  1056. function sub_job_change(newSubjob, oldSubjob)
  1057. select_default_macro_book()
  1058. end
  1059.  
  1060. function set_macro_page(set,book)
  1061. if not tonumber(set) then
  1062. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  1063. return
  1064. end
  1065. if set < 1 or set > 10 then
  1066. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  1067. return
  1068. end
  1069.  
  1070. if book then
  1071. if not tonumber(book) then
  1072. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  1073. return
  1074. end
  1075. if book < 1 or book > 20 then
  1076. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  1077. return
  1078. end
  1079. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  1080. else
  1081. send_command('@input /macro set '..tostring(set))
  1082. end
  1083. end
  1084.  
  1085. function select_default_macro_book()
  1086. -- Default macro set/book
  1087. if player.sub_job == 'SAM' then
  1088. set_macro_page(6, 1)
  1089. elseif player.sub_job == 'DNC' then
  1090. set_macro_page(6, 1)
  1091. elseif player.sub_job == 'WAR' then
  1092. set_macro_page(6, 1)
  1093. elseif player.sub_job == 'WHM' then
  1094. set_macro_page(6, 1)
  1095. elseif player.sub_job == 'NIN' then
  1096. set_macro_page(6, 1)
  1097. else
  1098. set_macro_page(6, 1)
  1099. end
  1100. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement