Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.93 KB | None | 0 0
  1. include('organizer-lib')
  2. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  3. -- ** I Use Some of Motenten's Functions ** --
  4. -- Last Updated: 05/02/14 10:00 PM *Advanced Version* --
  5.  
  6. function get_sets()
  7. AccIndex = 1
  8. AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For TP/WS/Hybrid. Default ACC Set Is LowACC. The First TP Set Of Your Main Weapon Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
  9. WeaponIndex = 1
  10. WeaponArray = {"Taming","Sandung","Octant",} -- Default Sub Weapon Is Sandung. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
  11. IdleIndex = 1
  12. IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement --
  13. SA = false
  14. TA = false
  15. TH = 'OFF' -- Set Default Full TH ON or OFF Here --
  16. Rancor = 'OFF' -- Set Default Rancor 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. sc_map = {SC1="Exenterator",SC2="Ranged"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  21.  
  22. organizer_items = {
  23. Dup="Duplus Grip",
  24. For="Pitchfork +1",
  25. Asyte="Ark Scythe",
  26. Twikniv="Twilight Knife",
  27. ISwod="Iron Sword",
  28. Watastaff="Water Staff",
  29. Tkniv="Thief's Knife",
  30. QuatreVingt="Kraken Club",
  31. Wring="Warp Ring",
  32. Xbo="Octant",
  33. Yla="Yetshila",}
  34.  
  35. -- Idle/Town Sets --
  36. sets.Idle = {}
  37. sets.Idle.Regen = {
  38. range="Octant",
  39. head="Turms Cap",
  40. neck="Loricate Torque +1",
  41. ear1="Black Earring",
  42. ear2="Reraise Earring",
  43. body="Iuitl Vest +1",
  44. hands="plunderer's armlets +1",
  45. ring1="Dark Ring",
  46. ring2="Defending Ring",
  47. back="Solemnity Cape",
  48. waist="Flume belt",
  49. legs="Mummu Kecks +1",
  50. feet="Jute Boots +1"}
  51. sets.Idle.Regen.Taming = set_combine(sets.Idle.Regen,{
  52. main="Taming Sari",
  53. sub="Sandung",
  54. range="Octant"})
  55. sets.Idle.Regen.Sandung = set_combine(sets.Idle.Regen,{
  56. main="Taming Sari",
  57. sub="Sandung",
  58. range="Octant"})
  59.  
  60. sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  61. head="Turms Cap",
  62. neck="Loricate Torque +1",
  63. ear1="Black Earring",
  64. eart2="Reraise Earring",
  65. ring1="Dark Ring",
  66. ring2="Defending Ring",
  67. back="Solemnity Cape"})
  68. sets.Idle.Movement.Taming = set_combine(sets.Idle.Movement,{
  69. main="Taming Sari",
  70. sub="Sandung",
  71. range="Octant"})
  72. sets.Idle.Movement.Sandung = set_combine(sets.Idle.Movement,{
  73. main="Taming Sari",
  74. sub="Sandung",
  75. range="Octant"})
  76.  
  77. -- Preshot --
  78. sets.Preshot = {
  79. head="Taeon Chapeau",
  80. neck="Loricate Torque +1",
  81. ear1="Dedition Earring",
  82. ear2="Suppanomimi",
  83. body="Taeon Tabard",
  84. hands="Taeon Gloves",
  85. ring1="Moonbeam Ring",
  86. ring2="Moonbeam Ring",
  87. back="Lupine Cape",
  88. waist="Goading Belt",
  89. legs="Nahtirah Trousers",
  90. feet="Adhemar Gamashes"}
  91.  
  92. -- Shooting Base Set --
  93. sets.Midshot = {
  94. head="Taeon Chapeau",
  95. neck="Loricate Torque +1",
  96. ear1="Volley Earring",
  97. ear2="Enervating Earring",
  98. body="Taeon Tabard",
  99. hands="Taeon Gloves",
  100. ring1="Moonbeam Ring",
  101. ring2="Moonbeam Ring",
  102. back="Lupine Cape",
  103. waist="Goading Belt",
  104. legs="Nahtirah Trousers",
  105. feet="Adhemar Gamashes"}
  106.  
  107. -- Normal TP Sets --
  108. sets.TP = {
  109. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  110. neck="Asperity necklace",
  111. ear1="Brutal Earring",
  112. ear2="Suppanomimi",
  113. body="Rawhide Vest",
  114. hands="Adhemar Wristbands",
  115. ring1="Rajas Ring",
  116. ring2="Epona's Ring",
  117. back="Canny cape",
  118. waist="Shetal stone",
  119. legs="Mummu Kecks +1",
  120. feet="Herculean Boots",
  121. main="Taming Sari",
  122. sub="Sandung",
  123. range="Octant"}
  124. sets.TP.MidACC = set_combine(sets.TP,{
  125. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  126. neck="Loricate Torque +1",
  127. ear1="Tripudio Earring",
  128. ear2="Suppanomimi",
  129. body="Adhemar Jacket",
  130. hands="Floral Gauntlets",
  131. ring1="Moonbeam Ring",
  132. ring2="Moonbeam Ring",
  133. back={ name="Toutatis's Cape", augments={'DEX+10','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  134. waist="Shetal Stone",
  135. legs="Sombra Tights +1",
  136. feet="Taeon Boots",
  137. main="Taming Sari",
  138. sub="Sandung",
  139. range="Octant"})
  140. sets.TP.HighACC = set_combine(sets.TP.MidACC,{
  141. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  142. neck="Ej Necklace",
  143. ear1="Zennaroi Earring",
  144. ear2="Suppanomimi",
  145. body="Rawhide Vest",
  146. hands="Adhemar Wristbands",
  147. ring1="Cacoethic ring",
  148. ring2="Cacoethic ring +1",
  149. back="Canny cape",
  150. waist="Shetal stone",
  151. legs="Mummu Kecks +1",
  152. feet="Herculean Boots",
  153. main="Taming Sari",
  154. sub="Sandung",
  155. range="Octant"})
  156.  
  157. -- March x2 + Haste --
  158. sets.TP.MidHaste = set_combine(sets.TP,{
  159. head="Skormoth Mask",
  160. neck="Asperity necklace",
  161. ear1="Brutal Earring",
  162. ear2="Suppanomimi",
  163. body="Rawhide Vest",
  164. hands="Adhemar Wristbands",
  165. ring1="Rajas Ring",
  166. ring2="Epona's Ring",
  167. back="Canny cape",
  168. waist="Shetal stone",
  169. legs="Mummu Kecks +1",
  170. feet="Herculean Boots",
  171. main="Taming Sari",
  172. sub="Sandung",
  173. range="Octant"})
  174. sets.TP.MidACC.MidHaste = set_combine(sets.TP.MidHaste,{
  175. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  176. neck="Loricate Torque +1",
  177. ear1="Dedition Earring",
  178. ear2="Suppanomimi",
  179. body="Herculean Vest",
  180. hands="Adhemar Wristbands",
  181. ring1="Rajas Ring",
  182. ring2="Defending Ring",
  183. back={ name="Canny Cape", augments={'DEX+3','AGI+1','"Dual Wield"+1',}},
  184. waist="Windbuffet Belt +1",
  185. legs={ name="Herculean Trousers", augments={'"Store TP"+6','Accuracy+15','Attack+1',}},
  186. feet="Skulker's Poulaines +1",
  187. main="Taming Sari",
  188. sub="Sandung",
  189. range="Octant"})
  190. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{
  191. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  192. neck="Ej Necklace",
  193. ear1="Zennaroi Earring",
  194. ear2="Suppanomimi",
  195. body="Rawhide Vest",
  196. hands="Adhemar Wristbands",
  197. ring1="Cacoethic ring",
  198. ring2="Cacoethic ring +1",
  199. back="Canny cape",
  200. waist="Shetal stone",
  201. legs="Mummu Kecks +1",
  202. feet="Herculean Boots",
  203. main="Taming Sari",
  204. sub="Sandung",
  205. range="Octant"})
  206.  
  207. -- March x2 + Haste + Samba --
  208. sets.TP.HighHaste = set_combine(sets.TP.MidHaste,{
  209. head="Skormoth Mask",
  210. neck="Asperity necklace",
  211. ear1="Brutal Earring",
  212. ear2="Suppanomimi",
  213. body="Rawhide Vest",
  214. hands="Adhemar Wristbands",
  215. ring1="Rajas Ring",
  216. ring2="Epona's Ring",
  217. back="Canny cape",
  218. waist="Shetal stone",
  219. legs="Mummu Kecks +1",
  220. feet="Herculean Boots",
  221. main="Taming Sari",
  222. sub="Sandung",
  223. range="Octant"})
  224. sets.TP.MidACC.HighHaste = set_combine(sets.TP.HighHaste,{
  225. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  226. neck="Loricate Torque +1",
  227. ear1="Dedition Earring",
  228. ear2="Suppanomimi",
  229. body="Herculean Vest",
  230. hands="Adhemar Wristbands",
  231. ring1="Rajas Ring",
  232. ring2="Defending Ring",
  233. back={ name="Canny Cape", augments={'DEX+3','AGI+1','"Dual Wield"+1',}},
  234. waist="Windbuffet Belt +1",
  235. legs={ name="Herculean Trousers", augments={'"Store TP"+6','Accuracy+15','Attack+1',}},
  236. feet="Skulker's Poulaines +1",
  237. main="Taming Sari",
  238. sub="Sandung",
  239. range="Octant"})
  240. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{
  241. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  242. neck="Ej Necklace",
  243. ear1="Zennaroi Earring",
  244. ear2="Suppanomimi",
  245. body="Rawhide Vest",
  246. hands="Adhemar Wristbands",
  247. ring1="Cacoethic ring",
  248. ring2="Cacoethic ring +1",
  249. back="Canny cape",
  250. waist="Shetal stone",
  251. legs="Mummu Kecks +1",
  252. feet="Herculean Boots",
  253. main="Taming Sari",
  254. sub="Sandung",
  255. range="Octant"})
  256.  
  257. -- Full TH TP Set --
  258. sets.TP.TH = {
  259. range="Octant",
  260. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  261. neck="Loricate Torque +1",
  262. ear1="Dedition Earring",
  263. ear2="Suppanomimi",
  264. body="Adhemar Jacket",
  265. hands="Floral Gauntlets",
  266. ring1="Moonbeam Ring",
  267. ring2="Moonbeam Ring",
  268. back={ name="Toutatis's Cape", augments={'DEX+10','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  269. waist="Shetal Stone",
  270. legs="Sombra Tights +1",
  271. feet="Taeon Boots"}
  272.  
  273. -- TP Rancor ON Neck --
  274. sets.TP.Rancor = {neck="Rancor Collar"}
  275.  
  276. -- PDT/MDT Sets --
  277. sets.PDT = {
  278. head="Meghanada Visor +1",
  279. neck="Loricate Torque +1",
  280. ear1="Black Earring",
  281. body="Meghanada Cuirie +1",
  282. hands="Meghanada Gloves +1",
  283. back="Mubvumbamiri Mantle",
  284. waist="Flume Belt",
  285. legs="Meghanada Chausses +1",
  286. feet="Meghanada Jambeaux +1"}
  287.  
  288. sets.MDT = set_combine(sets.PDT,{})
  289.  
  290. -- Hybrid/Evasion Sets --
  291. sets.TP.Hybrid = set_combine(sets.PDT,{})
  292. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  293. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  294.  
  295. sets.Evasion = set_combine(sets.PDT,{})
  296.  
  297. -- WS Base Set --
  298. sets.WS = {}
  299.  
  300. -- WS Sets --
  301. sets.WS["Mercy Stroke"] = {
  302. head="Lustratio Cap",
  303. neck="Fotia gorget",
  304. ear1="Steelflash Earring",
  305. ear2="Bladeborn Earring",
  306. body="Taeon Tabard",
  307. hands="Meghanada Gloves +1",
  308. ring1="Rajas Ring",
  309. ring2="Begrudging Ring",
  310. back="Bleating Mantle",
  311. waist="Fotia Belt",
  312. legs="Lustratio Subligar",
  313. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  314. sets.WS["Mercy Stroke"].SA = {
  315. head="Lustratio Cap",
  316. neck="Fotia gorget",
  317. ear1="Steelflash Earring",
  318. ear2="Bladeborn Earring",
  319. body="Taeon Tabard",
  320. hands="Meghanada Gloves +1",
  321. ring1="Rajas Ring",
  322. ring2="Begrudging Ring",
  323. back="Bleating Mantle",
  324. waist="Fotia Belt",
  325. legs="Lustratio Subligar",
  326. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  327. sets.WS["Mercy Stroke"].TA = {
  328. head="Lustratio Cap",
  329. neck="Fotia gorget",
  330. ear1="Steelflash Earring",
  331. ear2="Bladeborn Earring",
  332. body="Taeon Tabard",
  333. hands="Meghanada Gloves +1",
  334. ring1="Rajas Ring",
  335. ring2="Begrudging Ring",
  336. back="Bleating Mantle",
  337. waist="Fotia Belt",
  338. legs="Lustratio Subligar",
  339. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  340.  
  341. sets.WS.Exenterator = {
  342. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  343. neck="Ej Necklace",
  344. ear1="Brutal Earring",
  345. ear2="Suppanomimi",
  346. body="Taeon Tabard",
  347. hands="Adhemar Wristbands",
  348. ring1="Cacoethic ring",
  349. ring2="Cacoethic ring +1",
  350. back="Bleating Mantle",
  351. waist="Shetal stone",
  352. legs="Mummu Kecks +1",
  353. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  354. sets.WS.Exenterator.SA = set_combine(sets.WS.Exenterator,{})
  355. sets.WS.Exenterator.TA = set_combine(sets.WS.Exenterator,{})
  356.  
  357. sets.WS.Evisceration = {
  358. range="Octant",
  359. head="Sukeroku Hachimaki",
  360. neck="Fotia gorget",
  361. ear1="Raider's Earring",
  362. ear2="Tati Earring",
  363. body="Rawhide Vest",
  364. hands={ name="Herculean Gloves", augments={'Accuracy+30','Weapon skill damage +4%','DEX+7','Attack+6',}},
  365. ring1="Mujin Band",
  366. ring2="Epona's Ring",
  367. back="Bleating Mantle",
  368. waist="Shadow Belt",
  369. legs="Taeon Tights",
  370. feet="Plunderer's Poulaines +1"}
  371. sets.WS.Evisceration.SA = set_combine(sets.WS.Evisceration,{})
  372. sets.WS.Evisceration.TA = set_combine(sets.WS.Evisceration,{})
  373.  
  374. sets.WS["Rudra's Storm"] = {
  375. range="Octant",
  376. head="Sukeroku Hachimaki",
  377. neck="Fotia Gorget",
  378. ear1="Ishvara Earring",
  379. ear2="Moonshade earring",
  380. body="Herculean Vest",
  381. hands="Skulker's Armlets +1",
  382. ring1="Mujin Band",
  383. ring2="Ramuh Ring",
  384. back={ name="Toutatis's Cape", augments={'DEX+10','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  385. waist="Shadow Belt",
  386. legs={ name="Herculean Trousers", augments={'Sklchn.dmg.+5%','Rng.Atk.+5',}},
  387. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  388. sets.WS["Rudra's Storm"].SA = set_combine(sets.WS["Rudra's Storm"],{hands="Skulker's Armlets +1"})
  389. sets.WS["Rudra's Storm"].TA = set_combine(sets.WS["Rudra's Storm"],{})
  390.  
  391. sets.WS["Aeolian Edge"] = {
  392. head="Taeon Chapeau",
  393. neck="Fotia gorget",
  394. ear1="Ishvara Earring",
  395. ear2="Friomisi earring",
  396. body="Taeon Tabard",
  397. hands={ name="Herculean Gloves", augments={'Accuracy+30','Weapon skill damage +4%','DEX+7','Attack+6',}},
  398. ring1="Shiva Ring +1",
  399. ring2="Ramuh Ring",
  400. back="Toro Cape",
  401. waist="Fotia Belt",
  402. legs="Taeon Tights",
  403. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  404.  
  405. sets.WS["Mandalic Stab"] = {
  406. head="Sukeroku Hachimaki",
  407. neck="Fotia Gorget",
  408. ear1="Ishvara Earring",
  409. ear2="Moonshade earring",
  410. body="Abnoba Kaftan",
  411. hands="Skulker's Armlets +1",
  412. ring1="Mujin Band",
  413. ring2="Ramuh Ring",
  414. waist="Fotia Belt",
  415. legs="Taeon Tights",
  416. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  417.  
  418. sets.WS["Last Stand"] = {
  419. head="Taeon Chapeau",
  420. neck="Fotia gorget",
  421. ear1="Ishvara Earring",
  422. ear2="Enervating Earring",
  423. body="Taeon Tabard",
  424. hands={ name="Herculean Gloves", augments={'Accuracy+30','Weapon skill damage +4%','DEX+7','Attack+6',}},
  425. ring1="Garuda Ring +1",
  426. back="Libeccio mantle",
  427. waist="Fotia Belt",
  428. legs="Taeon Tights",
  429. feet={ name="Herculean Boots", augments={'Accuracy+19','Weapon skill damage +5%',}}}
  430.  
  431. -- JA Sets --
  432. sets.JA = {}
  433. TH_Gear = {
  434. range="Octant",
  435. head={ name="Herculean Helm", augments={'Pet: Mag. Acc.+3 Pet: "Mag.Atk.Bns."+3','Accuracy+22 Attack+22','"Store TP"+5',}},
  436. neck="Loricate Torque +1",
  437. ear1="Dedition Earring",
  438. ear2="Suppanomimi",
  439. body="Adhemar Jacket",
  440. hands="Floral Gauntlets",
  441. ring1="Moonbeam Ring",
  442. ring2="Moonbeam Ring",
  443. back={ name="Toutatis's Cape", augments={'DEX+10','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  444. waist="Shetal Stone",
  445. legs="Sombra Tights +1",
  446. feet="Taeon Boots"}
  447. sets.JA.Feint = {legs="Plunderer's Culottes +1"}
  448. sets.JA.Conspirator = {body="Skulker's Vest"}
  449. sets.JA.Accomplice = {head="Skulker's Bonnet"}
  450. sets.JA.Collaborator = {head="Skulker's Bonnet"}
  451. sets.JA["Perfect Dodge"] = {hands="Plun. Armlets +1"}
  452. sets.JA.Steal = {head="Plunderer's Bonnet",feet="Pillager's Poulaines"}
  453. sets.JA.Flee = {feet="Pillager's Poulaines"}
  454. sets.JA.Despoil = {legs="Skulker's Culottes",feet="Skulker's Poulaines +1"}
  455. sets.JA.Mug = {head="Plunderer's Bonnet"}
  456. sets.JA.Hide = {body="Pillager's Vest +1"}
  457. sets.JA["Assassin's Charge"] = {feet="Plunderer's Poulaines +1"}
  458. sets.JA.Provoke = TH_Gear
  459. sets.JA["Sneak Attack"] = {back="Toutatis's Cape"}
  460. sets.JA["Trick Attack"] = set_combine(sets.JA["Sneak Attack"],{back="Toutatis's Cape"})
  461.  
  462. -- Step Set --
  463. sets.Step = set_combine({},TH_Gear)
  464.  
  465. -- Flourish Set --
  466. sets.Flourish = set_combine({},TH_Gear)
  467.  
  468. -- Waltz Set --
  469. sets.Waltz = {ring1="Dark Ring",}
  470.  
  471. sets.Precast = {}
  472. -- Fastcast Set --
  473. sets.Precast.FastCast = {
  474. head="Haruspex Hat +1",
  475. neck="Orunmila's Torque",
  476. ear1="Loquac. Earring",
  477. ring1="Prolix Ring",
  478. legs="Enif Cosciales"}
  479. -- Utsusemi Precast Set --
  480. sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{neck="Magoraga Beads"})
  481.  
  482. sets.Midcast = {}
  483. -- Magic Haste Set --
  484. sets.Midcast.Haste = set_combine(sets.PDT,{})
  485. end
  486.  
  487. function pretarget(spell,action)
  488. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  489. cancel_spell()
  490. send_command('input /item "Echo Drops" <me>')
  491. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  492. cancel_spell()
  493. send_command('Aggressor')
  494. return
  495. end
  496. end
  497.  
  498. function precast(spell,action)
  499. if spell.action_type == 'Ranged Attack' then
  500. equip(sets.Preshot)
  501. end
  502. if spell.type == "WeaponSkill" then
  503. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  504. cancel_spell()
  505. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  506. return
  507. else
  508. equipSet = sets.WS
  509. if equipSet[spell.english] then
  510. equipSet = equipSet[spell.english]
  511. end
  512. if SA and equipSet["SA"] then
  513. equipSet = equipSet["SA"]
  514. end
  515. if TA and equipSet["TA"] then
  516. equipSet = equipSet["TA"]
  517. end
  518. equip(equipSet)
  519. end
  520. elseif spell.type=="JobAbility" then
  521. if sets.JA[spell.english] then
  522. equip(sets.JA[spell.english])
  523. end
  524. if spell.english=="Sneak Attack" then
  525. SA = true
  526. end
  527. if spell.english=="Trick Attack" then
  528. TA = true
  529. end
  530. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  531. if string.find(spell.english,'Utsusemi') then
  532. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  533. cancel_spell()
  534. add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  535. return
  536. else
  537. equip(sets.Precast.Utsusemi)
  538. end
  539. else
  540. equip(sets.Precast.FastCast)
  541. end
  542. elseif spell.type == 'Step' then
  543. equip(sets.Step)
  544. elseif string.find(spell.type,'Flourish') then
  545. equip(sets.Flourish)
  546. elseif string.find(spell.type,'Waltz') then
  547. equip(sets.Waltz)
  548. end
  549. end
  550.  
  551. function midcast(spell,action)
  552. if spell.action_type == 'Ranged Attack' then
  553. equip(sets.Midshot)
  554. end
  555. if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  556. if string.find(spell.english,'Utsusemi') then
  557. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  558. send_command('@wait 1.7;cancel Copy Image*')
  559. end
  560. equip(sets.Midcast.Haste)
  561. elseif spell.english == 'Monomi: Ichi' then
  562. if buffactive['Sneak'] then
  563. send_command('@wait 1.7;cancel sneak')
  564. end
  565. equip(sets.Midcast.Haste)
  566. else
  567. equip(sets.Midcast.Haste)
  568. end
  569. end
  570. end
  571.  
  572. function aftercast(spell,action)
  573. if spell.type == "WeaponSkill" and not spell.interrupted then
  574. send_command('wait 0.2;gs c TP')
  575. end
  576. status_change(player.status)
  577. end
  578.  
  579. function status_change(new,old)
  580. if player.equipment.range ~= 'empty' then
  581. disable('range','ammo')
  582. else
  583. enable('range','ammo')
  584. end
  585. if Armor == 'PDT' then
  586. equip(sets.PDT)
  587. elseif Armor == 'MDT' then
  588. equip(sets.MDT)
  589. elseif Armor == 'EVA' then
  590. equip(sets.Evasion)
  591. elseif new == 'Engaged' then
  592. equipSet = sets.TP
  593. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  594. equipSet = equipSet["Hybrid"]
  595. end
  596. if equipSet[AccArray[AccIndex]] then
  597. equipSet = equipSet[AccArray[AccIndex]]
  598. end
  599. if buffactive.March == 2 and buffactive.Haste and equipSet["HighHaste"] then
  600. equipSet = equipSet["HighHaste"]
  601. end
  602. if buffactive.March == 1 and buffactive.Haste and equipSet["MidHaste"] then
  603. equipSet = equipSet["MidHaste"]
  604. end
  605. if SA then
  606. equipSet = set_combine(equipSet,sets.JA["Sneak Attack"])
  607. end
  608. if TA then
  609. equipSet = set_combine(equipSet,sets.JA["Trick Attack"])
  610. end
  611. if Rancor == 'ON' then -- Use Rancor Toggle For Rancor Collar --
  612. equipSet = set_combine(equipSet,sets.TP.Rancor)
  613. end
  614. if TH == 'ON' then -- Use TH Toggle To Lock Full TH Set --
  615. equipSet = set_combine(equipSet,sets.TP.TH)
  616. end
  617. equip(equipSet)
  618. else
  619. equipSet = sets.Idle
  620. if equipSet[IdleArray[IdleIndex]] then
  621. equipSet = equipSet[IdleArray[IdleIndex]]
  622. end
  623. if equipSet[WeaponArray[WeaponIndex]] then
  624. equipSet = equipSet[WeaponArray[WeaponIndex]]
  625. end
  626. equip(equipSet)
  627. end
  628. end
  629.  
  630. function buff_change(buff,gain)
  631. buff = string.lower(buff)
  632. if buff == "sneak attack" then
  633. SA = gain
  634. elseif buff == "trick attack" then
  635. TA = gain
  636. elseif buff == 'weakness' then -- Weakness Timer --
  637. if gain then
  638. send_command('timers create "Weakness" 300 up')
  639. else
  640. send_command('timers delete "Weakness"')
  641. end
  642. end
  643. if not midaction() then
  644. status_change(player.status)
  645. end
  646. end
  647.  
  648. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  649. function self_command(command)
  650. if command == 'C1' then -- Accuracy Level Toggle --
  651. AccIndex = (AccIndex % #AccArray) + 1
  652. status_change(player.status)
  653. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  654. elseif command == 'C17' then -- Main Weapon Toggle --
  655. WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  656. add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
  657. status_change(player.status)
  658. elseif command == 'C5' then -- Auto Update Gear Toggle --
  659. status_change(player.status)
  660. add_to_chat(158,'Auto Update Gear')
  661. elseif command == 'C2' then -- Hybrid Toggle --
  662. if Armor == 'Hybrid' then
  663. Armor = 'None'
  664. add_to_chat(123,'Hybrid Set: [Unlocked]')
  665. else
  666. Armor = 'Hybrid'
  667. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  668. end
  669. status_change(player.status)
  670. elseif command == 'C9' then -- Full TH Set Toggle --
  671. if TH == 'ON' then
  672. TH = 'OFF'
  673. add_to_chat(123,'Full TH Set: [Unlocked]')
  674. else
  675. TH = 'ON'
  676. add_to_chat(158,'Full TH Set: [Locked]')
  677. end
  678. status_change(player.status)
  679. elseif command == 'C7' then -- PDT Toggle --
  680. if Armor == 'PDT' then
  681. Armor = 'None'
  682. add_to_chat(123,'PDT Set: [Unlocked]')
  683. else
  684. Armor = 'PDT'
  685. add_to_chat(158,'PDT Set: [Locked]')
  686. end
  687. status_change(player.status)
  688. elseif command == 'C15' then -- MDT Toggle --
  689. if Armor == 'MDT' then
  690. Armor = 'None'
  691. add_to_chat(123,'MDT Set: [Unlocked]')
  692. else
  693. Armor = 'MDT'
  694. add_to_chat(158,'MDT Set: [Locked]')
  695. end
  696. status_change(player.status)
  697. elseif command == 'C3' then -- Evasion Toggle --
  698. if Armor == 'EVA' then
  699. Armor = 'None'
  700. add_to_chat(123,'Evasion Set: [Unlocked]')
  701. else
  702. Armor = 'EVA'
  703. add_to_chat(158,'Evasion Set: [Locked]')
  704. end
  705. status_change(player.status)
  706. elseif command == 'C16' then -- Rancor Toggle --
  707. if Rancor == 'ON' then
  708. Rancor = 'OFF'
  709. add_to_chat(123,'Rancor: [OFF]')
  710. else
  711. Rancor = 'ON'
  712. add_to_chat(158,'Rancor: [ON]')
  713. end
  714. status_change(player.status)
  715. elseif command == 'C8' then -- Distance Toggle --
  716. if player.target.distance then
  717. target_distance = math.floor(player.target.distance*10)/10
  718. add_to_chat(158,'Distance: '..target_distance)
  719. else
  720. add_to_chat(123,'No Target Selected')
  721. end
  722. elseif command == 'C6' then -- Idle Toggle --
  723. IdleIndex = (IdleIndex % #IdleArray) + 1
  724. status_change(player.status)
  725. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  726. elseif command == 'TP' then
  727. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  728. elseif command:match('^SC%d$') then
  729. send_command('//' .. sc_map[command])
  730. end
  731. end
  732.  
  733. function refine_waltz(spell,action)
  734. if spell.type ~= 'Waltz' then
  735. return
  736. end
  737.  
  738. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  739. return
  740. end
  741.  
  742. local newWaltz = spell.english
  743. local waltzID
  744.  
  745. local missingHP
  746.  
  747. if spell.target.type == "SELF" then
  748. missingHP = player.max_hp - player.hp
  749. elseif spell.target.isallymember then
  750. local target = find_player_in_alliance(spell.target.name)
  751. local est_max_hp = target.hp / (target.hpp/100)
  752. missingHP = math.floor(est_max_hp - target.hp)
  753. end
  754.  
  755. if missingHP ~= nil then
  756. if player.sub_job == 'DNC' then
  757. if missingHP < 40 and spell.target.name == player.name then
  758. add_to_chat(123,'Full HP!')
  759. cancel_spell()
  760. return
  761. elseif missingHP < 150 then
  762. newWaltz = 'Curing Waltz'
  763. waltzID = 190
  764. elseif missingHP < 300 then
  765. newWaltz = 'Curing Waltz II'
  766. waltzID = 191
  767. else
  768. newWaltz = 'Curing Waltz III'
  769. waltzID = 192
  770. end
  771. else
  772. return
  773. end
  774. end
  775.  
  776. local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50, ['Curing Waltz IV'] = 65, ['Curing Waltz V'] = 80}
  777. local tpCost = waltzTPCost[newWaltz]
  778.  
  779. local downgrade
  780.  
  781. if player.tp < tpCost and not buffactive.trance then
  782.  
  783. if player.tp < 20 then
  784. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  785. cancel_spell()
  786. return
  787. elseif player.tp < 35 then
  788. newWaltz = 'Curing Waltz'
  789. elseif player.tp < 50 then
  790. newWaltz = 'Curing Waltz II'
  791. elseif player.tp < 65 then
  792. newWaltz = 'Curing Waltz III'
  793. elseif player.tp < 80 then
  794. newWaltz = 'Curing Waltz IV'
  795. end
  796.  
  797. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  798. end
  799.  
  800. if newWaltz ~= spell.english then
  801. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  802. if downgrade then
  803. add_to_chat(158, downgrade)
  804. end
  805. cancel_spell()
  806. return
  807. end
  808.  
  809. if missingHP > 0 then
  810. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  811. end
  812. end
  813.  
  814. function find_player_in_alliance(name)
  815. for i,v in ipairs(alliance) do
  816. for k,p in ipairs(v) do
  817. if p.name == name then
  818. return p
  819. end
  820. end
  821. end
  822. end
  823.  
  824. function sub_job_change(newSubjob, oldSubjob)
  825. select_default_macro_book()
  826. end
  827.  
  828. function set_macro_page(set,book)
  829. if not tonumber(set) then
  830. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  831. return
  832. end
  833. if set < 1 or set > 10 then
  834. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  835. return
  836. end
  837.  
  838. if book then
  839. if not tonumber(book) then
  840. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  841. return
  842. end
  843. if book < 1 or book > 20 then
  844. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  845. return
  846. end
  847. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  848. else
  849. send_command('@input /macro set '..tostring(set))
  850. end
  851. end
  852.  
  853. function select_default_macro_book()
  854. -- Default macro set/book
  855. if player.sub_job == 'WAR' then
  856. set_macro_page(1, 11)
  857. elseif player.sub_job == 'DNC' then
  858. set_macro_page(1, 11)
  859. elseif player.sub_job == 'NIN' then
  860. set_macro_page(7, 11)
  861. else
  862. set_macro_page(1, 11)
  863. end
  864. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement