Guest User

Untitled

a guest
Jan 28th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.37 KB | None | 0 0
  1.  
  2.  
  3. function get_sets()
  4. AccIndex = 1
  5. 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 --
  6. WeaponIndex = 1
  7. WeaponArray = {"Izhiikoh","Sandung"} -- Default Sub Weapon Is Izhiikoh. Can Delete Any Weapons/Sets That You Don't Need Or Replace/Add The New Weapons That You Want To Use. --
  8. IdleIndex = 1
  9. IdleArray = {"Movement","Regen"} -- Default Idle Set Is Movement --
  10. SA = false
  11. TA = false
  12. TH = 'OFF' -- Set Default Full TH ON or OFF Here --
  13. Rancor = 'OFF' -- Set Default Rancor ON or OFF Here --
  14. target_distance = 6 -- Set Default Distance Here --
  15. select_default_macro_book() -- Change Default Macro Book At The End --
  16.  
  17. sc_map = {SC1="Exenterator", SC2="HasteSamba", SC3="Ranged"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  18.  
  19. -- Idle/Town Sets --
  20. sets.Idle = {}
  21. sets.Idle.Regen = {
  22. ammo="Vanir Battery",
  23. head="Oce. Headpiece +1",
  24. neck="Wiglen Gorget",
  25. ear1="Colossus's Earring",
  26. ear2="Sanare Earring",
  27. body="Kheper Jacket",
  28. hands="Iuitl Wristbands",
  29. ring1="Paguroidea Ring",
  30. ring2="Sheltered Ring",
  31. back="Shadow Mantle",
  32. waist="Flume Belt",
  33. legs="Iuitl tights",
  34. feet="Skd. Jambeaux +1"}
  35. sets.Idle.Regen.Izhiikoh = set_combine(sets.Idle.Regen,{
  36. main="Izhiikoh",
  37. sub="Sandung"})
  38. sets.Idle.Regen.Sandung = set_combine(sets.Idle.Regen,{
  39. main="Izhiikoh",
  40. sub="Sandung"})
  41.  
  42. sets.Idle.Movement = set_combine(sets.Idle.Regen,{
  43. ammo="Vanir Battery",
  44. head="Oce. Headpiece +1",
  45. neck="Wiglen Gorget",
  46. ear1="Colossus's Earring",
  47. ear2="Sanare Earring",
  48. body="Kheper Jacket",
  49. hands="Iuitl Wristbands",
  50. ring1="Paguroidea Ring",
  51. ring2="Sheltered Ring",
  52. back="Shadow Mantle",
  53. waist="Flume Belt",
  54. legs="Iuitl tights",
  55. feet="Skd. Jambeaux +1"})
  56. sets.Idle.Movement.Izhiikoh = set_combine(sets.Idle.Movement,{
  57. main="Izhiikoh",
  58. sub="Sandung"})
  59. sets.Idle.Movement.Sandung = set_combine(sets.Idle.Movement,{
  60. main="Izhiikoh",
  61. sub="Sandung"})
  62.  
  63. -- Normal TP Sets --
  64. sets.TP = {
  65. ammo="Yetshila",
  66. head="Felistris Mask",
  67. neck="Asperity Necklace",
  68. ear1="Dudgeon Earring",
  69. ear2="Heartseeker Earring",
  70. body="Thaumas Coat",
  71. hands="Pill. Armlets +1",
  72. ring1="Epona's Ring",
  73. ring2="Rajas Ring",
  74. back="Canny Cape",
  75. waist="Shetal Stone",
  76. legs="Iuitl Tights",
  77. feet="Plun. Poulaines +1"}
  78. sets.TP.MidACC = set_combine(sets.TP,{
  79. neck="Iqabi Necklace",
  80. body="Qaaxo Harness",
  81. ring2="Ramuh Ring +1",
  82. hands="Buremte Gloves",
  83. back="Letalis Mantle",
  84. feet="Manibozho Boots"})
  85. sets.TP.HighACC = set_combine(sets.TP.MidACC,{
  86. head="Whirlpool Mask",
  87. ammo="Honed Tathlum"})
  88.  
  89.  
  90. -- March x2 + Haste --
  91. sets.TP.MidHaste = set_combine(sets.TP,{
  92. ear1="Suppanomimi",
  93. ear2="Brutal Earring",
  94. back="Bleating Mantle",
  95. waist="Windbuffet Belt +1",
  96. body="Qaaxo Harness"})
  97. sets.TP.MidACC.MidHaste = set_combine(sets.TP.MidHaste,{
  98. neck="Iqabi Necklace",
  99. ear1="Suppanomimi",
  100. ring2="Ramuh Ring +1",
  101. ear2="Brutal Earring",
  102. body="Qaaxo Harness",
  103. back="Letalis Mantle"})
  104. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{
  105. head="Whirlpool Mask",
  106. ammo="Honed Tathlum",
  107. waist="Olseni Belt"})
  108.  
  109. -- March x2 + Haste + Samba --
  110. sets.TP.HighHaste = set_combine(sets.TP.MidHaste,{
  111. ear1="Suppanomimi",
  112. back="Bleating Mantle",
  113. body="Qaaxo Harness",
  114. ear2="Brutal Earring",
  115. waist="Windbuffet Belt +1"})
  116. sets.TP.MidACC.HighHaste = set_combine(sets.TP.HighHaste,{
  117. neck="Iqabi Necklace",
  118. ear1="Suppanomimi",
  119. ring2="Ramuh Ring +1",
  120. ear2="Brutal Earring",
  121. body="Qaaxo Harness",
  122. back="Letalis Mantle"})
  123.  
  124. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{
  125. head="Whirlpool Mask",
  126. body="Qaaxo Harness",
  127. ammo="Honed Tathlum"})
  128.  
  129. -- Full TH TP Set --
  130. sets.TP.TH = {
  131. hands="Plun. Armlets +1",
  132. waist="Chaac Belt"}
  133.  
  134. sets.TP.RangedTH = {
  135. head="Umbani Cap",
  136. neck="Iqabi Necklace",
  137. body="Mekosu. Harness",
  138. ear1="Volley Earring",
  139. feet="Scopuli Nails +1",
  140. ear2="Clearview Earring",
  141. ring1="Hajduk Ring",
  142. ring2="Paqichikaji Ring",
  143. back="Thall Mantle",
  144. legs="Thur. Tights +1",
  145. hands="Plun. Armlets +1",
  146. waist="Chaac Belt"}
  147.  
  148. sets.TP.StepsTH = {
  149. head="Whirlpool Mask",
  150. neck="Iqabi Necklace",
  151. body="Qaaxo Harness",
  152. ear1="Heartseaker earring",
  153. ear2="Zennaroi Earring",
  154. ammo="Honed Tathlum",
  155. feet="Raid. Poulaines +2",
  156. ring1="Ramuh Ring +1",
  157. ring2="Gorney Ring",
  158. back="Letalis Mantle",
  159. legs="Manibozho Brais",
  160. hands="Plun. Armlets +1",
  161. waist="Chaac Belt"}
  162.  
  163.  
  164. -- TP Rancor ON Neck --
  165. sets.TP.Rancor = {neck="Rancor Collar"}
  166.  
  167. -- PDT/MDT Sets --
  168. sets.PDT = {
  169. head="Iuitl Headgear +1",
  170. neck="Twilight Torque",
  171. ear1="Heartseeker Earring",
  172. ear2="Dudgeon Earring",
  173. body="Qaaxo Harness",
  174. hands="Iuitl Wristbands",
  175. ring1="Dark Ring",
  176. ring2="Defending Ring",
  177. back="Mollusca Mantle",
  178. waist="Windbuffet Belt +1",
  179. legs="Iuitl Tights",
  180. feet="Iuitl Gaiters"}
  181.  
  182. sets.MDT = set_combine(sets.PDT,{
  183. ear1="Merman's Earring",
  184. ear2="Sanare Earring",
  185. ring1="Shadow Ring",
  186. back="Engulfer Cape",
  187. waist="Resolute Belt"})
  188.  
  189. -- Hybrid/Evasion Sets --
  190. sets.TP.Hybrid = set_combine(sets.PDT,{
  191. head="Iuitl Headgear +1",
  192. neck="Twilight Torque",
  193. ear1="Heartseeker Earring",
  194. ear2="Dudgeon Earring",
  195. body="Iuitl Vest +1",
  196. hands="Iuitl Wristbands",
  197. ring1="Dark Ring",
  198. ring2="Defending Ring",
  199. back="Mollusca Mantle",
  200. waist="Hurch'lan sash",
  201. legs="Iuitl Tights",
  202. feet="Iuitl Gaiters"})
  203. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  204. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  205.  
  206. sets.Evasion = set_combine(sets.PDT,{})
  207.  
  208. -- WS Base Set --
  209. sets.WS = {}
  210.  
  211. -- WS Sets --
  212. sets.WS["Mercy Stroke"] = {
  213. head="Whirlpool Mask",
  214. neck="Justiciar's Torque",
  215. ear1="Steelflash Earring",
  216. ear2="Bladeborn Earring",
  217. body="Khepri Jacket",
  218. hands="Pill. Armlets +1",
  219. ring1="Epona's Ring",
  220. ring2="Pyrosoul Ring",
  221. back="Buquwik Cape",
  222. waist="Chiner Belt +1",
  223. legs="Nahtirah Trousers",
  224. feet="Plun. Poulaines +1"}
  225. sets.WS["Mercy Stroke"].SA = {
  226. head="Pill. Bonnet +1",
  227. neck="Soil Gorget",
  228. ear1="Vulcan's Pearl",
  229. ear2="Vulcan's Pearl",
  230. body="Pillager's Vest +1",
  231. hands="Raider's Armlets +2",
  232. ring1="Pyrosoul Ring",
  233. ring2="Rajas Ring",
  234. back="Buquwik Cape",
  235. waist="Chiner Belt +1",
  236. legs="Pill. Culottes +1",
  237. feet="Plun. Poulaines +1"}
  238. sets.WS["Mercy Stroke"].TA = {
  239. head="Pill. Bonnet +1",
  240. neck="Soil Gorget",
  241. ear1="Vulcan's Pearl",
  242. ear2="Vulcan's Pearl",
  243. body="Pillager's Vest +1",
  244. hands="Pill. Armlets +1",
  245. ring1="Pyrosoul Ring",
  246. ring2="Rajas Ring",
  247. back="Buquwik Cape",
  248. waist="Soil Belt",
  249. legs="Pill. Culottes +1",
  250. feet="Plun. Poulaines +1"}
  251.  
  252. sets.WS.Exenterator = {
  253. head="Felistris Mask",
  254. neck="Justiciar's Torque",
  255. ear1="Steelflash Earring",
  256. ear2="Bladeborn Earring",
  257. body="Pillager's Vest +1",
  258. hands="Pill. Armlets +1",
  259. ring1="Stormsoul Ring",
  260. ring2="Epona's Ring",
  261. back="Canny Cape",
  262. waist="Elanid Belt",
  263. legs="Nahtirah Trousers",
  264. feet="Plun. Poulaines +1"}
  265. sets.WS.Exenterator.SA = set_combine(sets.WS.Exenterator,{head="Pill. Bonnet +1",legs="Pill. Culottes +1"})
  266. sets.WS.Exenterator.TA = set_combine(sets.WS.Exenterator,{head="Pill. Bonnet +1",legs="Pill. Culottes +1"})
  267.  
  268. sets.WS.Evisceration = {
  269. head="Whirlpool Mask",
  270. ammo="Yetshila",
  271. neck="Soil Gorget",
  272. ear1="Moonshade Earring",
  273. ear2="Brutal Earring",
  274. body="Plunderer's Vest +1",
  275. hands="Pill. Armlets +1",
  276. ring1="Epona's Ring",
  277. ring2="Ramuh Ring +1",
  278. back="Rancorous Mantle",
  279. waist="Chiner Belt +1",
  280. legs="Pill. Culottes +1",
  281. feet="Plun. Poulaines +1"}
  282. sets.WS.Evisceration.SA = set_combine(sets.WS.Evisceration,{hands="Pill. Armlets +1", head="Uk'uxkaj Cap"})
  283. sets.WS.Evisceration.TA = set_combine(sets.WS.Evisceration,{head="Uk'uxkaj Cap"})
  284.  
  285. sets.WS["Rudra's Storm"] = {
  286. head="Pill. Bonnet +1",
  287. neck="Snow Gorget",
  288. ear1="Moonshade Earring",
  289. ammo="Yetshila",
  290. ear2="Jupiter's Pearl",
  291. body="Plunderer's Vest +1",
  292. hands="Pill. Armlets +1",
  293. ring1="Epona's Ring",
  294. ring2="Ramuh Ring +1",
  295. back="Canny Cape",
  296. waist="Chiner Belt +1",
  297. legs="Pill. Culottes +1",
  298. feet="Plun. Poulaines +1"}
  299. sets.WS["Rudra's Storm"].SA = set_combine(sets.WS["Rudra's Storm"],{hands="Pill. Armlets +1"})
  300. sets.WS["Rudra's Storm"].TA = set_combine(sets.WS["Rudra's Storm"],{})
  301.  
  302. sets.WS["Aeolian Edge"] = {
  303. back="Toro cape",
  304. ammo="Dosis Tathlum",
  305. waist="Aquiline Belt",
  306. legs="Iuitl Tights",
  307. ear1="Friomisi Earring",
  308. ear2="Crematio Earring",
  309. neck="Stoicheion Medal",
  310. ring1="Shiva ring +1",
  311. ring2="Shiva ring +1",
  312. body="Mekosu. Harness",
  313. feet="Qaaxo Leggings",
  314. hands="Khepri Wristbands",
  315. head="Highwing Helm"}
  316.  
  317. sets.WS["Mandalic Stab"] = {
  318. head="Pill. Bonnet +1",
  319. neck="Flame Gorget",
  320. ammo="Yetshila",
  321. ear1="Moonshade Earring",
  322. ear2="Jupiter's Pearl",
  323. body="Plunderer's Vest +1",
  324. hands="Pill. Armlets +1",
  325. ring1="Epona's Ring",
  326. ring2="Ramuh Ring +1",
  327. back="Canny Cape",
  328. waist="Chiner Belt +1",
  329. legs="Pill. Culottes +1",
  330. feet="Plun. Poulaines +1"}
  331.  
  332. -- JA Sets --
  333. sets.JA = {}
  334. TH_Gear = {hands="Plun. Armlets +1",feet="Raid. Poulaines +2"}
  335. sets.JA.Conspirator = {body="Raider's Vest +2"}
  336. sets.JA.Accomplice = {head="Raid. Bonnet +2"}
  337. sets.JA.Collaborator = {head="Raid. Bonnet +2"}
  338. sets.JA["Perfect Dodge"] = {hands="Plun. Armlets +1"}
  339. sets.JA.Steal = {hands="Pill. Armlets +1",legs="Pill. Culottes +1",feet="Pill. Poulaines +1",ring2="Gorney Ring"}
  340. sets.JA.Flee = {feet="Pill. Poulaines +1"}
  341. sets.JA.Despoil = {legs="Raid. Culottes +2",feet="Raid. Poulaines +2"}
  342. sets.JA.Mug = {head="Plun. Bonnet +1"}
  343. sets.JA.Hide = {body="Pillager's Vest +1"}
  344. sets.JA.Provoke = TH_Gear
  345. sets.JA["Sneak Attack"] = {
  346. head="Pill. Bonnet +1",
  347. body="Plunderer's Vest +1",
  348. hands="Pill. Armlets +1",
  349. legs="Pill. Culottes +1",
  350. feet="Plun. Poulaines +1"}
  351. sets.JA["Trick Attack"] = set_combine(sets.JA["Sneak Attack"],{hands="Pill. Armlets +1"})
  352.  
  353. -- Step Set --
  354. sets.Step = set_combine({},sets.TP.StepsTH)
  355.  
  356. -- Flourish Set --
  357. sets.Flourish = set_combine({},sets.TP.StepsTH)
  358.  
  359. -- Waltz Set --
  360. sets.Waltz = {
  361. head="Khepri Bonnet"}
  362.  
  363. sets.Precast = {}
  364. -- Fastcast Set --
  365. sets.Precast.FastCast = {
  366. head="Haruspex Hat +1",
  367. neck="Orunmila's Torque",
  368. ear1="Loquac. Earring",
  369. ear2="Enchantr. Earring +1",
  370. hands="Thaumas Gloves",
  371. ring1="Prolix Ring",
  372. ring2="Veneficium Ring",
  373. legs="Enif Cosciales"}
  374. -- Utsusemi Precast Set --
  375. sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{neck="Magoraga Beads"})
  376.  
  377. sets.Midcast = {}
  378. -- Magic Haste Set --
  379. sets.Midcast.Haste = set_combine(sets.PDT,{})
  380. end
  381.  
  382. function pretarget(spell,action)
  383. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  384. cancel_spell()
  385. send_command('input /item "Echo Drops" <me>')
  386. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  387. cancel_spell()
  388. send_command('Aggressor')
  389. elseif (spell.english == 'Ranged' and spell.target.distance > 24.9) or (spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged') then -- Cancel Ranged Attack or WS If You Are Out Of Range --
  390. cancel_spell()
  391. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  392. return
  393. end
  394. end
  395.  
  396. function precast(spell,action)
  397. if spell.type == "WeaponSkill" then
  398. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  399. cancel_spell()
  400. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  401. return
  402. else
  403. equipSet = sets.WS
  404. if equipSet[spell.english] then
  405. equipSet = equipSet[spell.english]
  406. end
  407. if SA and equipSet["SA"] then
  408. equipSet = equipSet["SA"]
  409. end
  410. if TA and equipSet["TA"] then
  411. equipSet = equipSet["TA"]
  412. end
  413. if spell.english == "Evisceration" and player.tp > 2999 then -- Equip Jupiter's Pearl When You Have 300 TP --
  414. equipSet = set_combine(equipSet,{ear1="Jupiter's Pearl"})
  415. end
  416. equip(equipSet)
  417. end
  418. elseif spell.type=="JobAbility" then
  419. if sets.JA[spell.english] then
  420. equip(sets.JA[spell.english])
  421. end
  422. if spell.english=="Sneak Attack" then
  423. SA = true
  424. end
  425. if spell.english=="Trick Attack" then
  426. TA = true
  427. end
  428. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  429. if string.find(spell.english,'Utsusemi') then
  430. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  431. cancel_spell()
  432. add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  433. return
  434. else
  435. equip(sets.Precast.Utsusemi)
  436. end
  437. else
  438. equip(sets.Precast.FastCast)
  439. end
  440. elseif spell.type == 'Step' then
  441. equip(sets.Step)
  442. elseif string.find(spell.type,'Flourish') then
  443. equip(sets.Flourish)
  444. elseif spell.type == "Waltz" then
  445. refine_waltz(spell,action)
  446. equip(sets.Waltz)
  447. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  448. cast_delay(0.2)
  449. send_command('cancel Sneak')
  450. end
  451. end
  452.  
  453. function midcast(spell,action)
  454. if spell.english == 'Ranged' then
  455. equip(sets.TP.RangedTH)
  456. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  457. if string.find(spell.english,'Utsusemi') then
  458. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  459. send_command('@wait 1.7;cancel Copy Image*')
  460. end
  461. equip(sets.Midcast.Haste)
  462. elseif spell.english == 'Monomi: Ichi' then
  463. if buffactive['Sneak'] then
  464. send_command('@wait 1.7;cancel sneak')
  465. end
  466. equip(sets.Midcast.Haste)
  467. else
  468. equip(sets.Midcast.Haste)
  469. end
  470. end
  471. end
  472.  
  473. function aftercast(spell,action)
  474. if spell.type == "WeaponSkill" and not spell.interrupted then
  475. send_command('wait 0.2;gs c TP')
  476. end
  477. status_change(player.status)
  478. end
  479.  
  480. function status_change(new,old)
  481. if player.equipment.range ~= 'empty' then
  482. disable('range','ammo')
  483. else
  484. enable('range','ammo')
  485. end
  486. if Armor == 'PDT' then
  487. equip(sets.PDT)
  488. elseif Armor == 'MDT' then
  489. equip(sets.MDT)
  490. elseif Armor == 'EVA' then
  491. equip(sets.Evasion)
  492. elseif new == 'Engaged' then
  493. equipSet = sets.TP
  494. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  495. equipSet = equipSet["Hybrid"]
  496. end
  497. if equipSet[AccArray[AccIndex]] then
  498. equipSet = equipSet[AccArray[AccIndex]]
  499. end
  500. if buffactive.March == 2 or buffactive.March == 1 and (buffactive.Embrava or buffactive.Haste) and equipSet["HighHaste"] then
  501. equipSet = equipSet["HighHaste"]
  502. end
  503.  
  504. if SA then
  505. equipSet = set_combine(equipSet,sets.JA["Sneak Attack"])
  506. end
  507.  
  508. if buffactive['Reive Mark'] and player.hpp <= 50 then
  509. equip({neck="Adoulin's Refuge"})
  510. end
  511. if TA then
  512. equipSet = set_combine(equipSet,sets.JA["Trick Attack"])
  513. end
  514. if Rancor == 'ON' then -- Use Rancor Toggle For Rancor Collar --
  515. equipSet = set_combine(equipSet,sets.TP.Rancor)
  516. end
  517. if TH == 'ON' then -- Use TH Toggle To Lock Full TH Set --
  518. equipSet = set_combine(equipSet,sets.TP.TH)
  519. end
  520. equip(equipSet)
  521. else
  522. equipSet = sets.Idle
  523. if equipSet[IdleArray[IdleIndex]] then
  524. equipSet = equipSet[IdleArray[IdleIndex]]
  525. end
  526. if equipSet[WeaponArray[WeaponIndex]] then
  527. equipSet = equipSet[WeaponArray[WeaponIndex]]
  528. end
  529. equip(equipSet)
  530. end
  531. end
  532.  
  533. function buff_change(buff,gain)
  534. buff = string.lower(buff)
  535. if buff == "sneak attack" then
  536. SA = gain
  537. elseif buff == "trick attack" then
  538. TA = gain
  539. elseif buff == 'weakness' then -- Weakness Timer --
  540. if gain then
  541. send_command('timers create "Weakness" 300 up')
  542. else
  543. send_command('timers delete "Weakness"')
  544. end
  545. end
  546. if not midaction() then
  547. status_change(player.status)
  548. end
  549. end
  550.  
  551. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  552. function self_command(command)
  553. if command == 'C1' then -- Accuracy Level Toggle --
  554. AccIndex = (AccIndex % #AccArray) + 1
  555. status_change(player.status)
  556. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  557. elseif command == 'C17' then -- Main Weapon Toggle --
  558. WeaponIndex = (WeaponIndex % #WeaponArray) + 1
  559. add_to_chat(158,'Main Weapon: '..WeaponArray[WeaponIndex])
  560. status_change(player.status)
  561. elseif command == 'C5' then -- Auto Update Gear Toggle --
  562. status_change(player.status)
  563. add_to_chat(158,'Auto Update Gear')
  564. elseif command == 'C2' then -- Hybrid Toggle --
  565. if Armor == 'Hybrid' then
  566. Armor = 'None'
  567. add_to_chat(123,'Hybrid Set: [Unlocked]')
  568. else
  569. Armor = 'Hybrid'
  570. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  571. end
  572. status_change(player.status)
  573. elseif command == 'C9' then -- Full TH Set Toggle --
  574. if TH == 'ON' then
  575. TH = 'OFF'
  576. add_to_chat(123,'Full TH Set: [Unlocked]')
  577. else
  578. TH = 'ON'
  579. add_to_chat(158,'Full TH Set: [Locked]')
  580. end
  581. status_change(player.status)
  582. elseif command == 'C7' then -- PDT Toggle --
  583. if Armor == 'PDT' then
  584. Armor = 'None'
  585. add_to_chat(123,'PDT Set: [Unlocked]')
  586. else
  587. Armor = 'PDT'
  588. add_to_chat(158,'PDT Set: [Locked]')
  589. end
  590. status_change(player.status)
  591. elseif command == 'C15' then -- MDT Toggle --
  592. if Armor == 'MDT' then
  593. Armor = 'None'
  594. add_to_chat(123,'MDT Set: [Unlocked]')
  595. else
  596. Armor = 'MDT'
  597. add_to_chat(158,'MDT Set: [Locked]')
  598. end
  599. status_change(player.status)
  600. elseif command == 'C3' then -- Evasion Toggle --
  601. if Armor == 'EVA' then
  602. Armor = 'None'
  603. add_to_chat(123,'Evasion Set: [Unlocked]')
  604. else
  605. Armor = 'EVA'
  606. add_to_chat(158,'Evasion Set: [Locked]')
  607. end
  608. status_change(player.status)
  609. elseif command == 'C16' then -- Rancor Toggle --
  610. if Rancor == 'ON' then
  611. Rancor = 'OFF'
  612. add_to_chat(123,'Rancor: [OFF]')
  613. else
  614. Rancor = 'ON'
  615. add_to_chat(158,'Rancor: [ON]')
  616. end
  617. status_change(player.status)
  618. elseif command == 'C8' then -- Distance Toggle --
  619. if player.target.distance then
  620. target_distance = math.floor(player.target.distance*10)/10
  621. add_to_chat(158,'Distance: '..target_distance)
  622. else
  623. add_to_chat(123,'No Target Selected')
  624. end
  625. elseif command == 'C6' then -- Idle Toggle --
  626. IdleIndex = (IdleIndex % #IdleArray) + 1
  627. status_change(player.status)
  628. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  629. elseif command == 'TP' then
  630. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  631. elseif command:match('^SC%d$') then
  632. send_command('//' .. sc_map[command])
  633. end
  634. end
  635.  
  636. function refine_waltz(spell,action)
  637. if spell.type ~= 'Waltz' then
  638. return
  639. end
  640.  
  641. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  642. return
  643. end
  644.  
  645. local newWaltz = spell.english
  646. local waltzID
  647.  
  648. local missingHP
  649.  
  650. if spell.target.type == "SELF" then
  651. missingHP = player.max_hp - player.hp
  652. elseif spell.target.isallymember then
  653. local target = find_player_in_alliance(spell.target.name)
  654. local est_max_hp = target.hp / (target.hpp/100)
  655. missingHP = math.floor(est_max_hp - target.hp)
  656. end
  657.  
  658. if missingHP ~= nil then
  659. if player.sub_job == 'DNC' then
  660. if missingHP < 40 and spell.target.name == player.name then
  661. add_to_chat(123,'Full HP!')
  662. cancel_spell()
  663. return
  664. elseif missingHP < 150 then
  665. newWaltz = 'Curing Waltz'
  666. waltzID = 190
  667. elseif missingHP < 300 then
  668. newWaltz = 'Curing Waltz II'
  669. waltzID = 191
  670. else
  671. newWaltz = 'Curing Waltz III'
  672. waltzID = 192
  673. end
  674. else
  675. return
  676. end
  677. end
  678.  
  679. local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50, ['Curing Waltz IV'] = 65, ['Curing Waltz V'] = 80}
  680. local tpCost = waltzTPCost[newWaltz]
  681.  
  682. local downgrade
  683.  
  684. if player.tp < tpCost and not buffactive.trance then
  685.  
  686. if player.tp < 200 then
  687. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  688. cancel_spell()
  689. return
  690. elseif player.tp < 350 then
  691. newWaltz = 'Curing Waltz'
  692. elseif player.tp < 500 then
  693. newWaltz = 'Curing Waltz II'
  694. elseif player.tp < 650 then
  695. newWaltz = 'Curing Waltz III'
  696. elseif player.tp < 800 then
  697. newWaltz = 'Curing Waltz IV'
  698. end
  699.  
  700. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  701. end
  702.  
  703. if newWaltz ~= spell.english then
  704. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  705. if downgrade then
  706. add_to_chat(158, downgrade)
  707. end
  708. cancel_spell()
  709. return
  710. end
  711.  
  712. if missingHP > 0 then
  713. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  714. end
  715. end
  716.  
  717. function find_player_in_alliance(name)
  718. for i,v in ipairs(alliance) do
  719. for k,p in ipairs(v) do
  720. if p.name == name then
  721. return p
  722. end
  723. end
  724. end
  725. end
  726.  
  727. function sub_job_change(newSubjob, oldSubjob)
  728. select_default_macro_book()
  729. end
  730.  
  731. function set_macro_page(set,book)
  732. if not tonumber(set) then
  733. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  734. return
  735. end
  736. if set < 1 or set > 10 then
  737. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  738. return
  739. end
  740.  
  741. if book then
  742. if not tonumber(book) then
  743. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  744. return
  745. end
  746. if book < 1 or book > 20 then
  747. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  748. return
  749. end
  750. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  751. else
  752. send_command('@input /macro set '..tostring(set))
  753. end
  754. end
  755.  
  756. function select_default_macro_book()
  757. -- Default macro set/book
  758. if player.sub_job == 'WAR' then
  759. set_macro_page(1, 12)
  760. elseif player.sub_job == 'DNC' then
  761. set_macro_page(1, 12)
  762. elseif player.sub_job == 'NIN' then
  763. set_macro_page(1, 12)
  764. else
  765. set_macro_page(1, 12)
  766. end
  767. end
Advertisement
Add Comment
Please, Sign In to add comment