Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.30 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Some of Motenten's Functions ** --
  3. -- Last Updated: 05/02/14 10:00 PM *Fixed Aftercast Issue* --
  4.  
  5. function get_sets()
  6. AccIndex = 1
  7. AccArray = {"LowACC","MidACC","HighACC","MaxACC"} -- 4 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 --
  8. IdleIndex = 1
  9. IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement --
  10. Armor = 'None'
  11. Skillchain = false
  12. include('organizer-lib.lua')
  13. target_distance = 5 -- Set Default Distance Here --
  14. select_default_macro_book() -- Change Default Macro Book At The End --
  15.  
  16. RfCape = {name="Toetapper Mantle",augments={"Store TP +1","Dual Wield +3","Rev. Flourish +30"}}
  17.  
  18. sc_map = {SC1="Exenterator", SC2="FeatherStep", SC3="HasteSamba"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  19.  
  20. -- Idle/Town Sets --
  21. sets.Idle = {ammo="Staunch Tathlum",
  22. head="Turms Cap",
  23. body="Horos Casaque +1",
  24. hands="Meghanada Gloves +2",
  25. legs="Meghanada Chausses +2",
  26. feet="Skadi's Jambeaux +1",
  27. neck="Loricate Torque +1",
  28. waist="Flume Belt +1",
  29. left_ear="Sanare Earring",
  30. right_ear="Genmei Earring",
  31. ring2="Defending Ring",
  32. ring1="Gelatinous Ring +1",
  33. back="Moonbeam Cape"}
  34. sets.Idle.Regen = { ammo="Staunch Tathlum",
  35. head="Turms Cap",
  36. body="Horos Casaque +1",
  37. hands="Meghanada Gloves +2",
  38. legs="Meghanada Chausses +2",
  39. feet="Skadi's Jambeaux +1",
  40. neck="Loricate Torque +1",
  41. waist="Flume Belt +1",
  42. left_ear="Sanare Earring",
  43. right_ear="Genmei Earring",
  44. ring2="Defending Ring",
  45. ring1="Gelatinous Ring +1",
  46. back="Moonbeam Cape"}
  47. sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  48. ammo="Staunch Tathlum",
  49. head="Turms Cap",
  50. body="Horos Casaque +1",
  51. hands="Meghanada Gloves +2",
  52. legs="Meghanada Chausses +2",
  53. feet="Skadi's Jambeaux +1",
  54. neck="Loricate Torque +1",
  55. waist="Flume Belt +1",
  56. left_ear="Sanare Earring",
  57. right_ear="Genmei Earring",
  58. ring2="Defending Ring",
  59. ring1="Gelatinous Ring +1",
  60. back="Moonbeam Cape"})
  61.  
  62. -- Normal TP Sets --
  63. sets.TP = {
  64. ammo="Yamarang",
  65. head="Dampening Tam",
  66. body="Adhemar Jacket +1",
  67. hands="Adhemar Wristbands +1",
  68. legs="Samnuha Tights",
  69. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  70. neck="Clotharius Torque",
  71. waist="Windbuffet Belt +1",
  72. left_ear="Sherida Earring",
  73. right_ear="Telos Earring",
  74. left_ring="Hetairoi Ring",
  75. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  76. right_ring="Epona's Ring"}
  77. sets.TP.MidACC = set_combine(sets.TP,{})
  78. sets.TP.HighACC = set_combine(sets.TP.MidACC,{})
  79. sets.TP.MaxACC = set_combine(sets.TP.HighACC,{})
  80.  
  81. -- Haste --
  82. sets.TP.LowHaste = set_combine(sets.TP,{
  83. ammo="Yamarang",
  84. head="Dampening Tam",
  85. body="Adhemar Jacket +1",
  86. hands="Adhemar Wristbands +1",
  87. legs="Samnuha Tights",
  88. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  89. neck="Clotharius Torque",
  90. waist="Windbuffet Belt +1",
  91. left_ear="Sherida Earring",
  92. right_ear="Telos Earring",
  93. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  94. left_ring="Hetairoi Ring",
  95. right_ring="Epona's Ring"})
  96. sets.TP.MidACC.LowHaste = set_combine(sets.TP.LowHaste,{})
  97. sets.TP.HighACC.LowHaste = set_combine(sets.TP.MidACC.LowHaste,{})
  98. sets.TP.MaxACC.LowHaste = set_combine(sets.TP.HighACC.LowHaste,{})
  99.  
  100. -- March x2 + Haste --
  101. sets.TP.MidHaste = set_combine(sets.TP.LowHaste,{
  102. ammo="Yamarang",
  103. head="Dampening Tam",
  104. body="Herculean Vest",
  105. hands="Adhemar Wristbands +1",
  106. legs="Samnuha Tights",
  107. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  108. neck="Clotharius Torque",
  109. waist="Windbuffet Belt +1",
  110. left_ear="Sherida Earring",
  111. right_ear="Telos Earring",
  112. left_ring="Hetairoi Ring",
  113. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  114. right_ring="Epona's Ring"})
  115. sets.TP.MidACC.MidHaste = set_combine(sets.TP.MidHaste,{})
  116. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{})
  117. sets.TP.MaxACC.MidHaste = set_combine(sets.TP.HighACC.MidHaste,{})
  118.  
  119. -- March x2 + Haste + Samba --
  120. sets.TP.HighHaste = set_combine(sets.TP.MidHaste,{ammo="Yamarang",
  121. head="Dampening Tam",
  122. body="Herculean Vest",
  123. hands="Adhemar Wristbands +1",
  124. legs="Samnuha Tights",
  125. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  126. neck="Clotharius Torque",
  127. waist="Windbuffet Belt +1",
  128. left_ear="Sherida Earring",
  129. right_ear="Telos Earring",
  130. left_ring="Hetairoi Ring",
  131. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  132. right_ring="Epona's Ring"})
  133. sets.TP.MidACC.HighHaste = set_combine(sets.TP.HighHaste,{})
  134. sets.TP.HighACC.HighHaste = set_combine(sets.TP.MidACC.HighHaste,{})
  135. sets.TP.MaxACC.HighHaste = set_combine(sets.TP.HighACC.HighHaste,{})
  136.  
  137. -- Climactic Flourish TP Set --
  138. sets.TP['Climactic Flourish'] = {head="Maculele Tiara +1"}
  139.  
  140. -- PDT/MDT Sets --
  141. sets.PDT = {ammo="Staunch Tathlum",
  142. head="Turms Cap",
  143. body="Horos Casaque +1",
  144. hands="Meghanada Gloves +2",
  145. legs="Meghanada Chausses +2",
  146. feet="Skadi's Jambeaux +1",
  147. neck="Loricate Torque +1",
  148. waist="Flume Belt +1",
  149. left_ear="Sanare Earring",
  150. right_ear="Genmei Earring",
  151. ring2="Defending Ring",
  152. ring1="Gelatinous Ring +1",
  153. back="Moonbeam Cape"}
  154.  
  155. sets.MDT = set_combine(sets.PDT,{})
  156.  
  157. -- Hybrid/Evasion Sets --
  158. sets.TP.Hybrid = set_combine(sets.PDT,{})
  159. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  160. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  161.  
  162. sets.Evasion = set_combine(sets.PDT,{})
  163.  
  164. -- WS Base Set --
  165. sets.WS = {
  166. ammo="Charis Feather",
  167. head="Maculele Tiara +1",
  168. body="Meghanada Cuirie +2",
  169. hands="Meghanada Gloves +2",
  170. legs="Samnuha Tights",
  171. feet={ name="Herculean Boots", augments={'Accuracy+4 Attack+4','Weapon skill damage +5%','DEX+8','Accuracy+12','Attack+13',}},
  172. neck="Fotia Gorget",
  173. waist="Fotia Belt",
  174. left_ear="Ishvara Earring",
  175. right_ear="Moonshade Earring",
  176. left_ring="Regal Ring",
  177. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  178. right_ring="Ilabrat Ring"}
  179.  
  180. -- WS Sets --
  181. sets.WS.Exenterator = {
  182. head="Meghanada Visor +2",
  183. neck="Fotia Gorget",
  184. ear1="Sherida Earring",
  185. ear2="Cessance Earring",
  186. body="Meg. Cuirie +2",
  187. hands="Meg. Gloves +2",
  188. ring1="Epona's Ring",
  189. ring2="Regal Ring",
  190. waist="Fotia Belt",
  191. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  192. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}}, }
  193. sets.WS.Exenterator.MidACC = set_combine(sets.WS.Exenterator,{})
  194. sets.WS.Exenterator.HighACC = set_combine(sets.WS.Exenterator.MidACC,{})
  195.  
  196. sets.WS["Pyrrhic Kleos"] = {
  197. ammo="Charis Feather",
  198. head="Adhemar Bonnet +1",
  199. neck="Fotia Gorget",
  200. ear2="Telos Earring",
  201. ear1="Sherida Earring",
  202. body="Meghanada Cuirie +2",
  203. hands={ name="Herculean Gloves", augments={'Accuracy+23 Attack+23','Crit. hit damage +4%','STR+10','Accuracy+10','Attack+1',}},
  204. ring1="Epona's Ring",
  205. ring2="Ilabrat Ring",
  206. waist="Fotia Belt",
  207. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  208. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  209. legs="Samnuha Tights"}
  210. sets.WS["Pyrrhic Kleos"].MidACC = set_combine(sets.WS["Pyrrhic Kleos"],{})
  211. sets.WS["Pyrrhic Kleos"].HighACC = set_combine(sets.WS["Pyrrhic Kleos"].MidACC,{})
  212. sets.WS["Pyrrhic Kleos"].MaxACC = set_combine(sets.WS["Pyrrhic Kleos"].HighACC,{})
  213.  
  214. sets.WS["Rudra's Storm"] = {
  215. ammo="Charis Feather",
  216. head="Lilitu Headpiece",
  217. body="Meghanada Cuirie +2",
  218. hands="Meghanada Gloves +2",
  219. legs="Lusratio Subligar +1",
  220. feet={ name="Herculean Boots", augments={'Accuracy+4 Attack+4','Weapon skill damage +5%','DEX+8','Accuracy+12','Attack+13',}},
  221. neck="Fotia Gorget",
  222. waist="Fotia Belt",
  223. left_ear="Ishvara Earring",
  224. right_ear="Moonshade Earring",
  225. left_ring="Regal Ring",
  226. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  227. right_ring="Ilabrat Ring"}
  228. sets.WS["Rudra's Storm"].MidACC = set_combine(sets.WS["Rudra's Storm"],{})
  229. sets.WS["Rudra's Storm"].HighACC = set_combine(sets.WS["Rudra's Storm"].MidACC,{})
  230. sets.WS["Rudra's Storm"].MaxACC = set_combine(sets.WS["Rudra's Storm"].HighACC,{})
  231.  
  232. sets.WS.Evisceration = {
  233. ammo="Charis Feather",
  234. head="Adhemar Bonnet +1",
  235. neck="Fotia Gorget",
  236. ear2="Telos Earring",
  237. ear1="Sherida Earring",
  238. body="Abnoba Kaftan",
  239. hands={ name="Herculean Gloves", augments={'Accuracy+23 Attack+23','Crit. hit damage +4%','STR+10','Accuracy+10','Attack+1',}},
  240. ring1="Begrudging Ring",
  241. ring2="Regal Ring",
  242. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  243. waist="Fotia Belt",
  244. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  245. legs="Lusratio Subligar +1"}
  246. sets.WS.Evisceration.MidACC = set_combine(sets.WS.Evisceration,{})
  247. sets.WS.Evisceration.HighACC = set_combine(sets.WS.Evisceration.MidACC,{})
  248. sets.WS.Evisceration.MaxACC = set_combine(sets.WS.Evisceration.HighACC,{})
  249.  
  250. sets.WS["Aeolian Edge"] = {
  251. ammo="Pemphredo Tathlum",
  252. head={ name="Herculean Helm", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Weapon skill damage +4%','STR+4','"Mag.Atk.Bns."+11',}},
  253. body={ name="Samnuha Coat", augments={'Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+5','"Dual Wield"+5',}},
  254. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  255. legs={ name="Herculean Trousers", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Crit. hit damage +4%','INT+3','Mag. Acc.+14','"Mag.Atk.Bns."+14',}},
  256. feet={ name="Herculean Boots", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Crit. hit damage +1%','INT+8','Mag. Acc.+5','"Mag.Atk.Bns."+4',}},
  257. neck="Sanctity Necklace",
  258. waist="Eschan Stone",
  259. left_ear="Friomisi Earring",
  260. right_ear="Crematio Earring",
  261. left_ring="Regal Ring",
  262. right_ring="Shiva Ring +1",
  263. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}}}
  264. sets.WS["Aeolian Edge"].MidACC = set_combine(sets.WS["Aeolian Edge"],{})
  265. sets.WS["Aeolian Edge"].HighACC = set_combine(sets.WS["Aeolian Edge"].MidACC,{})
  266.  
  267. -- JA Sets --
  268. sets.JA = {
  269. neck="Unmoving Collar",
  270. body="Horos Casaque +1",
  271. hands="Macu. Bangles +1",
  272. ring1="Epona's Ring",
  273. ring2="Patricius Ring",
  274. feet="Horos Toe Shoes +1"}
  275. sets.JA.Trance = {head="Horos Tiara +1"}
  276. sets.JA['No Foot Rise'] = {body="Horos Casaque +1"}
  277.  
  278. -- Jig Set --
  279. sets.Jig = {legs="Horos Tights",feet="Maxixi Toeshoes +3"}
  280.  
  281. -- Step Base Set --
  282. sets.Step = {ammo="Yamarang",
  283. head="Maxixi Tiara +2",
  284. body="Maxixi Casaque +3",
  285. hands="Maxixi Bangles +2",
  286. legs="Maxixi Tights +1",
  287. feet="Maxixi Toeshoes +3",
  288. neck="Sanctity Necklace",
  289. waist="Eschan Stone",
  290. left_ear="Dignitary's Earring",
  291. right_ear="Telos Earring",
  292. left_ring="Regal Ring",
  293. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  294. right_ring="Varar Ring +1"}
  295. sets.Step['Feather Step'] = set_combine(sets.Step,{feet="Charis Shoes +2"})
  296.  
  297. -- Samba Set --
  298. sets.Samba = {
  299. head="Maxixi Tiara +2",
  300. back="Senuna's Mantle"}
  301.  
  302. -- Flourish Base Set --
  303. sets.Flourish = {}
  304. sets.Flourish['Reverse Flourish'] = set_combine(sets.Flourish,{hands="Macu. Bangles +1", back="Toetapper mantle"})
  305. sets.Flourish['Climactic Flourish'] = set_combine(sets.Flourish,{head="Maculele Tiara +1"})
  306. sets.Flourish['Striking Flourish'] = set_combine(sets.Flourish,{body="Macu. Casaque +1"})
  307. sets.Flourish['Violent Flourish'] = set_combine(sets.Flourish,{
  308. ammo="Pemphredo Tathlum",
  309. head="Maxixi Tiara +2",
  310. feet="Maxixi Shoes +2",
  311. hands="Maxixi Bangles +2",
  312. legs="Maxixi Tights +1",
  313. neck="Sanctity Necklace",
  314. ear2="Digni. Earring",
  315. body="Horos Casaque +1",
  316. ring1="Regal Ring",
  317. ring2="Sangoma Ring",
  318. back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}},
  319. waist="Eschan Stone"})
  320.  
  321. sets.Flourish['Desperate Flourish'] = set_combine(sets.Flourish)
  322. sets.Flourish['Wild Flourish'] = set_combine(sets.Flourish)
  323.  
  324. sets.Skillchain = {
  325. hands="Macu. Bangles +1"}
  326.  
  327. -- Waltz Set --
  328. sets.Waltz = {head="Anwig Salade",
  329. ammo="Yamarang",
  330. neck="Unmoving Collar +1",
  331. body="Maxixi Casaque +3",
  332. hands="Regal Gloves",
  333. waist="Aristo Belt",
  334. ring1="Carbuncle Ring +1",
  335. ring2="Carbuncle Ring",
  336. legs="Desultor Tassets",
  337. feet="Maxixi Toeshoes +3",
  338. ear1="Roundel Earring",
  339. ear2="Cryptic Earring",
  340. back={ name="Senuna's Mantle", augments={'CHR+20','CHR+10','"Waltz" potency +10%',}}}
  341.  
  342. sets.Precast = {}
  343. -- Fastcast Set --
  344. sets.Precast.FastCast = {
  345. ammo="Impatiens",
  346. head={ name="Herculean Helm", augments={'"Fast Cast"+6','STR+7',}},
  347. body={ name="Taeon Tabard", augments={'"Fast Cast"+4',}},
  348. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  349. feet={ name="Herculean Boots", augments={'"Fast Cast"+5','MND+2','Mag. Acc.+8',}},
  350. neck="Orunmila's Torque",
  351. waist="Flume Belt",
  352. left_ear="Etiolation Earring",
  353. right_ear="Loquac. Earring",
  354. left_ring="Prolix Ring",
  355. right_ring="Lebeche Ring"}
  356. -- Utsusemi Precast Set --
  357. sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{})
  358.  
  359. sets.Midcast = {}
  360. -- Magic Haste Set --
  361. sets.Midcast.Haste = set_combine(sets.PDT,{})
  362. end
  363.  
  364. function pretarget(spell, action)
  365. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then
  366. cancel_spell()
  367. send_command('input /item "Echo Drops" <me>')
  368. elseif spell.english == "Berserk" and buffactive.Berserk then
  369. cancel_spell()
  370. send_command('Aggressor')
  371. elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then
  372. cancel_spell()
  373. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  374. return
  375. end
  376. end
  377.  
  378. function precast(spell, action)
  379. if spell.type == "WeaponSkill" then
  380. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  381. cancel_spell()
  382. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  383. return
  384. else
  385. equipSet = sets.WS
  386. if equipSet[spell.english] then
  387. equipSet = equipSet[spell.english]
  388. end
  389. if equipSet[AccArray[AccIndex]] then
  390. equipSet = equipSet[AccArray[AccIndex]]
  391. end
  392. if Skillchain then
  393. equipSet = set_combine(equipSet,sets.Skillchain)
  394. end
  395. if spell.english == "Rudra's Storm" and player.tp > 2499 then
  396. equipSet = set_combine(equipSet,{ear2="Sherida Earring"})
  397. end
  398. equip(equipSet)
  399. end
  400. elseif spell.type == "JobAbility" then
  401. if sets.JA[spell.english] then
  402. if spell.english == 'Trance' and buffactive['Saber Dance'] then
  403. cast_delay(0.2)
  404. send_command('cancel Saber Dance')
  405. end
  406. equip(sets.JA[spell.english])
  407. end
  408. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  409. if string.find(spell.english,'Utsusemi') then
  410. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  411. cancel_spell()
  412. add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
  413. return
  414. else
  415. equip(sets.Precast.Utsusemi)
  416. end
  417. else
  418. equip(sets.Precast.FastCast)
  419. end
  420. elseif spell.type == "Step" then
  421. if spell.english == 'Feather Step' then
  422. equip(sets.Step['Feather Step'])
  423. else
  424. equip(sets.Step)
  425. end
  426. elseif spell.type == "Waltz" then
  427. if buffactive['Saber Dance'] then
  428. cast_delay(0.2)
  429. send_command('cancel Saber Dance')
  430. end
  431. refine_waltz(spell,action)
  432. equip(sets.Waltz)
  433. elseif spell.type == "Jig" then
  434. if spell.english == 'Spectral Jig' and buffactive.Sneak then
  435. cast_delay(0.2)
  436. send_command('cancel Sneak')
  437. end
  438. equip(sets.Jig)
  439. elseif spell.type == 'Samba' then
  440. if buffactive['Fan Dance'] then
  441. cast_delay(0.2)
  442. send_command('cancel Fan Dance')
  443. end
  444. equip(sets.Samba)
  445. elseif string.find(spell.type,'Flourish') then
  446. if sets.Flourish[spell.english] then
  447. equip(sets.Flourish[spell.english])
  448. end
  449. end
  450. end
  451.  
  452. function midcast(spell, action)
  453. if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  454. if string.find(spell.english,'Utsusemi') then
  455. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  456. send_command('@wait 1.7;cancel Copy Image*')
  457. end
  458. equip(sets.Midcast.Haste)
  459. elseif spell.english == 'Monomi: Ichi' then
  460. if buffactive['Sneak'] then
  461. send_command('@wait 1.7;cancel sneak')
  462. end
  463. equip(sets.Midcast.Haste)
  464. else
  465. equip(sets.Midcast.Haste)
  466. end
  467. end
  468. end
  469.  
  470. function aftercast(spell, action)
  471. if spell.english == "Wild Flourish" and not spell.interrupted then
  472. Skillchain = true
  473. send_command('wait 7;gs c clear Skillchain')
  474. elseif spell.type == "WeaponSkill" and not spell.interrupted then
  475. Skillchain = not Skillchain
  476. send_command('wait 0.2;gs c TP;wait 7;gs c clear Skillchain')
  477. else
  478. status_change(player.status)
  479. end
  480. if spell.english == 'Haste Samba' then
  481. timer_haste_samba()
  482. end
  483. status_change(player.status)
  484. end
  485.  
  486. function status_change(new,old)
  487. if Armor == 'PDT' then
  488. equip(sets.PDT)
  489. elseif Armor == 'MDT' then
  490. equip(sets.MDT)
  491. elseif Armor == 'EVA' then
  492. equip(sets.Evasion)
  493. elseif new == 'Engaged' then
  494. equipSet = sets.TP
  495. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  496. equipSet = equipSet["Hybrid"]
  497. end
  498. if equipSet[AccArray[AccIndex]] then
  499. equipSet = equipSet[AccArray[AccIndex]]
  500. end
  501. if (buffactive.Embrava and (buffactive.Haste or buffactive.March) and buffactive['Haste Samba']) or (buffactive.March and buffactive.Haste and buffactive['Haste Samba']) or (buffactive['Mighty Guard'] and buffactive.Haste) or (buffactive.Haste == 2 and buffactive['Haste Samba']) and equipSet["HighHaste"] then
  502. equipSet = equipSet["HighHaste"]
  503. end
  504. if (buffactive.Embrava and (buffactive.Haste or buffactive.March or buffactive['Haste Samba'])) or (buffactive.March and buffactive.Haste and equipSet["MidHaste"]) or (buffactive.Haste == 2) or (buffactive['Mighty Guard'] and buffactive.March == 2) and equipSet["MidHaste"] then
  505. equipSet = equipSet["MidHaste"]
  506. end
  507. if buffactive.haste ==1 and equipSet["LowHaste"] then
  508. equipSet = equipSet["LowHaste"]
  509. end
  510. if buffactive['Climactic Flourish'] then
  511. equipSet = set_combine(equipSet,sets.TP['Climactic Flourish'])
  512. end
  513. equip(equipSet)
  514. else
  515. equip(sets.Idle[IdleArray[IdleIndex]])
  516. end
  517. end
  518.  
  519. function buff_change(buff,gain)
  520. buff = string.lower(buff)
  521. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  522. if gain then
  523. 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.]')
  524. else
  525. send_command('timers delete "Aftermath: Lv.3"')
  526. add_to_chat(123,'AM3: [OFF]')
  527. end
  528. elseif buff == 'haste samba' and not gain then
  529. send_command('timers delete "Haste Samba"')
  530. elseif buff == 'weakness' then -- Weakness Timer --
  531. if gain then
  532. send_command('timers create "Weakness" 300 up')
  533. else
  534. send_command('timers delete "Weakness"')
  535. end
  536. end
  537. if not midaction() then
  538. status_change(player.status)
  539. end
  540. end
  541.  
  542. function buff_change(buff,gain)
  543. if buff == "Climactic Flourish" then
  544. if gain then
  545. equip({head="Maculele Tiara +1"})
  546. send_command('gs disable head')
  547. else
  548. send_command('gs enable head')
  549. end
  550. end
  551. end
  552.  
  553. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  554. function self_command(command)
  555. if command == 'C1' then -- Accuracy Level Toggle --
  556. AccIndex = (AccIndex % #AccArray) + 1
  557. status_change(player.status)
  558. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  559. elseif command == 'C5' then -- Auto Update Gear Toggle --
  560. status_change(player.status)
  561. add_to_chat(158,'Auto Update Gear')
  562. elseif command == 'C2' then -- Hybrid Toggle --
  563. if Armor == 'Hybrid' then
  564. Armor = 'None'
  565. add_to_chat(123,'Hybrid Set: [Unlocked]')
  566. else
  567. Armor = 'Hybrid'
  568. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  569. end
  570. status_change(player.status)
  571. elseif command == 'C7' then -- PDT Toggle --
  572. if Armor == 'PDT' then
  573. Armor = 'None'
  574. add_to_chat(123,'PDT Set: [Unlocked]')
  575. else
  576. Armor = 'PDT'
  577. add_to_chat(158,'PDT Set: [Locked]')
  578. end
  579. status_change(player.status)
  580. elseif command == 'C15' then -- MDT Toggle --
  581. if Armor == 'MDT' then
  582. Armor = 'None'
  583. add_to_chat(123,'MDT Set: [Unlocked]')
  584. else
  585. Armor = 'MDT'
  586. add_to_chat(158,'MDT Set: [Locked]')
  587. end
  588. status_change(player.status)
  589. elseif command == 'C9' then -- Evasion Toggle --
  590. if Armor == 'EVA' then
  591. Armor = 'None'
  592. add_to_chat(123,'Evasion Set: [Unlocked]')
  593. else
  594. Armor = 'EVA'
  595. add_to_chat(158,'Evasion Set: [Locked]')
  596. end
  597. status_change(player.status)
  598. elseif command == 'C8' then -- Distance Toggle --
  599. if player.target.distance then
  600. target_distance = math.floor(player.target.distance*10)/10
  601. add_to_chat(158,'Distance: '..target_distance)
  602. else
  603. add_to_chat(123,'No Target Selected')
  604. end
  605. elseif command == 'C6' then -- Idle Toggle --
  606. IdleIndex = (IdleIndex % #IdleArray) + 1
  607. status_change(player.status)
  608. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  609. elseif command == 'TP' then
  610. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  611. elseif command:match('^SC%d$') then
  612. send_command('//' .. sc_map[command])
  613. end
  614. end
  615.  
  616. function timer_haste_samba()
  617. local duration = 110
  618.  
  619. if player.main_job == 'DNC' then
  620. if player.equipment.head == "Dancer's Tiara" or player.equipment.head == "Dancer's Tiara +1" then
  621. duration = duration + 30
  622. elseif player.equipment.head == 'Maxixi Tiara' then
  623. duration = duration + 40
  624. elseif player.equipment.head == 'Maxixi Tiara +2' then
  625. duration = duration + 45
  626. end
  627.  
  628. if buffactive['Saber Dance'] then
  629. local merits = player.merits.saber_dance
  630. if merits > 1 then
  631. local extend = (merits - 1) * 5
  632. duration = math.floor(duration + (duration * extend / 100))
  633. end
  634. end
  635. end
  636.  
  637. send_command('timers create "Haste Samba" '..tostring(duration)..' down abilities/00216.png')
  638. end
  639.  
  640. function refine_waltz(spell,action)
  641. if spell.type ~= 'Waltz' then
  642. return
  643. end
  644.  
  645. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  646. return
  647. end
  648.  
  649. local newWaltz = spell.english
  650. local waltzID
  651.  
  652. local missingHP
  653.  
  654. if spell.target.type == "SELF" then
  655. missingHP = player.max_hp - player.hp
  656. elseif spell.target.isallymember then
  657. local target = find_player_in_alliance(spell.target.name)
  658. local est_max_hp = target.hp / (target.hpp/100)
  659. missingHP = math.floor(est_max_hp - target.hp)
  660. end
  661.  
  662. if missingHP ~= nil then
  663. if player.main_job == 'DNC' then
  664. if missingHP < 40 and spell.target.name == player.name then
  665. add_to_chat(123,'Full HP!')
  666. cancel_spell()
  667. return
  668. elseif missingHP < 50 then
  669. newWaltz = 'Curing Waltz'
  670. waltzID = 190
  671. elseif missingHP < 640 then
  672. newWaltz = 'Curing Waltz II'
  673. waltzID = 191
  674. elseif missingHP < 1200 then
  675. newWaltz = 'Curing Waltz III'
  676. waltzID = 192
  677. elseif missingHP < 1900 then
  678. newWaltz = 'Curing Waltz IV'
  679. waltzID = 193
  680. else
  681. newWaltz = 'Curing Waltz V'
  682. waltzID = 311
  683. end
  684. else
  685. return
  686. end
  687. end
  688.  
  689. local waltzTPCost = {['Curing Waltz'] = 200, ['Curing Waltz II'] = 350, ['Curing Waltz III'] = 500, ['Curing Waltz IV'] = 650, ['Curing Waltz V'] = 800}
  690. local tpCost = waltzTPCost[newWaltz]
  691.  
  692. local downgrade
  693.  
  694. if player.tp < tpCost and not buffactive.trance then
  695.  
  696. if player.tp < 200 then
  697. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  698. cancel_spell()
  699. return
  700. elseif player.tp < 350 then
  701. newWaltz = 'Curing Waltz'
  702. elseif player.tp < 500 then
  703. newWaltz = 'Curing Waltz II'
  704. elseif player.tp < 650 then
  705. newWaltz = 'Curing Waltz III'
  706. elseif player.tp < 800 then
  707. newWaltz = 'Curing Waltz IV'
  708. end
  709.  
  710. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  711. end
  712.  
  713. if newWaltz ~= spell.english then
  714. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  715. if downgrade then
  716. add_to_chat(158, downgrade)
  717. end
  718. cancel_spell()
  719. return
  720. end
  721.  
  722. if missingHP > 0 then
  723. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  724. end
  725. end
  726.  
  727. function find_player_in_alliance(name)
  728. for i,v in ipairs(alliance) do
  729. for k,p in ipairs(v) do
  730. if p.name == name then
  731. return p
  732. end
  733. end
  734. end
  735. end
  736.  
  737. function sub_job_change(newSubjob, oldSubjob)
  738. select_default_macro_book()
  739. end
  740.  
  741. function set_macro_page(set,book)
  742. if not tonumber(set) then
  743. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  744. return
  745. end
  746. if set < 1 or set > 10 then
  747. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  748. return
  749. end
  750.  
  751. if book then
  752. if not tonumber(book) then
  753. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  754. return
  755. end
  756. if book < 1 or book > 20 then
  757. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  758. return
  759. end
  760. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  761. else
  762. send_command('@input /macro set '..tostring(set))
  763. end
  764. end
  765.  
  766. function select_default_macro_book()
  767. -- Default macro set/book
  768. if player.sub_job == 'WAR' then
  769. set_macro_page(1, 6)
  770. elseif player.sub_job == 'NIN' then
  771. set_macro_page(1, 6)
  772. elseif player.sub_job == 'SAM' then
  773. set_macro_page(1, 6)
  774. else
  775. set_macro_page(1, 6)
  776. end
  777. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement