Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.64 KB | None | 0 0
  1. function get_sets()
  2. include('organizer-lib.lua')
  3. AccIndex = 1
  4. 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 --
  5. IdleIndex = 1
  6. IdleArray = {"Movement","Defense"} -- Default Idle Set Is Movement --
  7. CapRingLock = 0 -- Capacity Ring Lock On/Off --
  8. SA = false
  9. TA = false
  10. TH = 'OFF' -- Set Default Full TH ON or OFF Here --
  11. Rancor = 'OFF' -- Set Default Rancor ON or OFF Here --
  12. target_distance = 5 -- Set Default Distance Here --
  13. send_command('input /macro book 2;wait .1;input /macro set 1') -- Change Default Macro Book Here --
  14. -- Idle/Town Sets --
  15. sets.Idle = { ammo="Staunch Tathlum",
  16. head={ name="Herculean Helm", augments={'Mag. Acc.+22','MND+3','"Refresh"+2','Mag. Acc.+13 "Mag.Atk.Bns."+13',}},
  17. body="Mekosu. Harness",
  18. hands={ name="Plun. Armlets +1", augments={'Enhances "Perfect Dodge" effect',}},
  19. legs="Meg. Chausses +2",
  20. feet="Skulk. Poulaines +1",
  21. neck="Loricate Torque +1",
  22. waist="Flume Belt +1",
  23. left_ear="Ethereal Earring",
  24. right_ear="Genmei Earring",
  25. left_ring="Defending Ring",
  26. right_ring="Woltaris Ring +1",
  27. back="Moonbeam Cape"}
  28. sets.Idle.Movement = set_combine(sets.Idle,{})
  29. sets.Idle.Defense = set_combine(sets.Idle,{})
  30.  
  31. sets.CapRingLock ={}
  32.  
  33. -- Normal TP Sets --
  34. sets.TP = {ammo="Yamarang",
  35. head="Dampening Tam",
  36. body="Adhemar Jacket +1",
  37. hands="Adhemar Wristbands +1",
  38. legs="Samnuha Tights",
  39. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  40. neck="Erudition Necklace",
  41. waist="Windbuffet Belt +1",
  42. left_ear="Sherida Earring",
  43. right_ear="Telos Earring",
  44. left_ring="Hetairoi Ring",
  45. right_ring="Epona's Ring",
  46. back={ name="Toutatis's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10',}}}
  47. sets.TP.MidACC = set_combine(sets.TP,{})
  48.  
  49. sets.TP.HighACC = set_combine(sets.TP.MidACC,{})
  50.  
  51. -- March x2 + Haste --
  52. sets.TP.MidHaste = set_combine(sets.TP,{ body="Adhemar Jacket +1"})
  53. sets.TP.MidACC.MidHaste = set_combine(sets.TP.MidHaste,{})
  54. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{})
  55.  
  56. -- March x2 + Haste + Samba --
  57. sets.TP.HighHaste = set_combine(sets.TP.MidHaste,{ body="Adhemar Jacket +1"})
  58. sets.TP.MidACC.HighHaste = set_combine(sets.TP.HighHaste,{})
  59. sets.TP.HighACC.MidHaste = set_combine(sets.TP.MidACC.MidHaste,{})
  60.  
  61. -- Full TH TP Set --
  62. sets.TP.TH = {legs="Pillager's Culottes +3",
  63. hands="Plun. Armlets +1",
  64. body="Meghanada Cuirie +2",
  65. waist="Chaac Belt",
  66. feet="Skulker's Poulaines +1"}
  67.  
  68. -- TP Rancor ON Neck --
  69. sets.TP.Rancor = {neck="Rancor Collar"}
  70.  
  71. -- PDT/MDT Sets --
  72. sets.PDT = {ammo="Ginsen",
  73. head="Skulker's Bonnet +1",
  74. body="Meghanada Cuirie +2",
  75. hands="Meghanada Gloves +2",
  76. legs="Pill. Culottes +1",
  77. feet="Fajin Boots",
  78. neck="Twilight Torque",
  79. waist="Flume Belt",
  80. left_ear="Sanare Earring",
  81. right_ear="Etiolation Earring",
  82. left_ring="Defending Ring",
  83. right_ring="Patricius Ring",
  84. back="Canny Cape"}
  85.  
  86. sets.MDT = set_combine(sets.PDT,{})
  87.  
  88. -- Hybrid/Evasion Sets --
  89. sets.TP.Hybrid = set_combine(sets.PDT,{})
  90. sets.TP.Hybrid.MidACC = set_combine(sets.TP.Hybrid,{})
  91. sets.TP.Hybrid.HighACC = set_combine(sets.TP.Hybrid.MidACC,{})
  92.  
  93. sets.Evasion = set_combine(sets.PDT,{})
  94.  
  95. -- WS Base Set --
  96. sets.WS = {}
  97.  
  98. -- WS Sets --
  99. sets.WS["Mercy Stroke"] = {
  100. ammo="Yetshila +1",
  101. head="Felistris mask",
  102. neck="Asperity necklace",
  103. ear1="Dudgeon Earring",
  104. ear2="Heartseeker Earring",
  105. body="Meghanada Cuirie +2",
  106. hands="Meghanada Gloves +2",
  107. ring1="Epona's Ring",
  108. ring2="Petrov Ring",
  109. back={ name="Toutatis's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  110. waist="Cetl Belt",
  111. feet={ name="Herculean Boots", augments={'Accuracy+4 Attack+4','Weapon skill damage +5%','DEX+8','Accuracy+12','Attack+13',}},
  112. legs="Pillager's Culottes +3"}
  113. sets.WS["Mercy Stroke"].SA = {}
  114. sets.WS["Mercy Stroke"].TA = {}
  115.  
  116. sets.WS.Exenterator = {
  117. ammo="Ginsen",
  118. head="Adhemar Bonnet +1",
  119. neck="Fotia Gorget",
  120. ear2="Telos Earring",
  121. ear1="Sherida Earring",
  122. body="Meghanada Cuirie +2",
  123. hands={ name="Herculean Gloves", augments={'Accuracy+23 Attack+23','Crit. hit damage +4%','STR+10','Accuracy+10','Attack+1',}},
  124. ring1="Epona's Ring",
  125. ring2="Ilabrat Ring",
  126. back={ name="Toutatis's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  127. waist="Fotia Belt",
  128. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  129. legs="Pillager's Culottes +3"}
  130. sets.WS.Exenterator.SA = set_combine(sets.WS.Exenterator,{})
  131. sets.WS.Exenterator.TA = set_combine(sets.WS.Exenterator,{})
  132.  
  133. sets.WS.Evisceration = {
  134. ammo="Yetshila +1",
  135. head="Adhemar Bonnet +1",
  136. neck="Fotia Gorget",
  137. ear2="Telos Earring",
  138. ear1="Sherida Earring",
  139. body="Abnoba Kaftan",
  140. hands={ name="Herculean Gloves", augments={'Accuracy+23 Attack+23','Crit. hit damage +4%','STR+10','Accuracy+10','Attack+1',}},
  141. ring1="Begrudging Ring",
  142. ring2="Ilabrat Ring",
  143. back={ name="Toutatis's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  144. waist="Fotia Belt",
  145. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  146. legs="Pillager's Culottes +3"}
  147. sets.WS.Evisceration.SA = set_combine(sets.WS.Evisceration,{})
  148. sets.WS.Evisceration.TA = set_combine(sets.WS.Evisceration,{})
  149.  
  150. sets.WS["Rudra's Storm"] = {
  151. ammo="Seething Bomblet +1",
  152. head="Pillager's Bonnet +3",
  153. body="Meghanada Cuirie +2",
  154. hands="Meghanada Gloves +2",
  155. legs="Lusratio Subligar +1",
  156. feet={ name="Herculean Boots", augments={'Accuracy+4 Attack+4','Weapon skill damage +5%','DEX+8','Accuracy+12','Attack+13',}},
  157. neck="Fotia Gorget",
  158. waist="Fotia Belt",
  159. left_ear="Ishvara Earring",
  160. right_ear="Moonshade Earring",
  161. left_ring="Ramuh Ring +1",
  162. right_ring="Ilabrat Ring",
  163. back={ name="Toutatis's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}}}
  164. sets.WS["Rudra's Storm"].SA = set_combine(sets.WS["Rudra's Storm"],{ammo="Yetshila +1", head="Pillager's Bonnet +3",
  165. body="Meghanada Cuirie +2", legs= "Pillager's Culottes +3", hands="Meghanada Gloves +2"})
  166. sets.WS["Rudra's Storm"].TA = set_combine(sets.WS["Rudra's Storm"],{ammo="Yetshila +1", head="Pillager's Bonnet +3",
  167. body="Meghanada Cuirie +2", legs= "Pillager's Culottes +3", hands="Meghanada Gloves +2"})
  168.  
  169. sets.WS["Aeolian Edge"] = {}
  170.  
  171. sets.WS["Mandalic Stab"] = {ammo="Seething Bomblet +1",
  172. head="Pillager's Bonnet +3",
  173. body="Meghanada Cuirie +2",
  174. hands="Meghanada Gloves +2",
  175. legs="Pillager's Culottes +3",
  176. feet={ name="Herculean Boots", augments={'Accuracy+4 Attack+4','Weapon skill damage +5%','DEX+8','Accuracy+12','Attack+13',}},
  177. neck="Fotia Gorget",
  178. waist="Fotia Belt",
  179. left_ear="Ishvara Earring",
  180. right_ear="Moonshade Earring",
  181. left_ring="Ramuh Ring +1",
  182. right_ring="Ilabrat Ring",
  183. back={ name="Toutatis's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}}}
  184. organizer_items = {}
  185.  
  186. -- JA Sets --
  187. sets.JA = {}
  188. TH_Gear = {body="Meghanada Cuirie +2", legs="Pillager's Culottes +3", ammo="Yetshila +1", hands="Plun. Armlets +1", waist="Chaac belt", feet="Skulker's Poulaines +1"}
  189. sets.JA.Conspirator = {body="Skulker's Vest +1"}
  190. sets.JA.Accomplice = {head="Skulker's Bonnet +1"}
  191. sets.JA.Collaborator = {head="Skulker's Bonnet +1"}
  192. sets.JA["Perfect Dodge"] = {hands="Plun. Armlets +1"}
  193. sets.JA.Steal = {Hands= "Pill. Armlets +1", feet="Pill. Poulaines"}
  194. sets.JA.Flee = {feet="Pill. Poulaines"}
  195. sets.JA.Despoil = {feet="Skulker's Poulaines +1"}
  196. sets.JA.Mug = {}
  197. sets.JA.Hide = {body= "Pillager's vest +1"}
  198. sets.JA.Feint = {}
  199. sets.JA.Provoke = TH_Gear
  200. sets.JA["Sneak Attack"] = {}
  201. sets.JA["Trick Attack"] = set_combine(sets.JA["Sneak Attack"])
  202.  
  203. -- Step Set --
  204. sets.Step = set_combine({},TH_Gear)
  205.  
  206. -- Flourish Set --
  207. sets.Flourish = set_combine({},TH_Gear)
  208.  
  209. -- Waltz Set --
  210. sets.Waltz = set_combine(sets.PDT,{
  211. ammo="Yamarang",
  212. head="Pill. Bonnet +1",
  213. body="Pillager's Vest +1",
  214. hands={ name="Plun. Armlets +1", augments={'Enhances "Perfect Dodge" effect',}},
  215. legs="Desultor Tassets",
  216. feet="Skulk. Poulaines +1",
  217. neck="Twilight Torque",
  218. waist="Chaac Belt",
  219. left_ear="Sanare Earring",
  220. right_ear="Etiolation Earring",
  221. left_ring="Defending Ring",
  222. right_ring="Patricius Ring"})
  223.  
  224. sets.Precast = {}
  225. -- Fastcast Set --
  226. sets.Precast.FastCast = {ammo="Impatiens",
  227. head={ name="Herculean Helm", augments={'"Fast Cast"+6','STR+7',}},
  228. body={ name="Taeon Tabard", augments={'"Fast Cast"+4',}},
  229. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  230. legs={ name="Herculean Trousers", augments={'Accuracy+6','"Fast Cast"+4','VIT+5','Mag. Acc.+14','"Mag.Atk.Bns."+9',}},
  231. neck="Orunmila's Torque",
  232. waist="Flume Belt",
  233. left_ear="Loquac. Earring",
  234. right_ear="Etiolation Earring",
  235. left_ring="Kishar Ring",
  236. right_ring="Prolix Ring"}
  237. -- Utsusemi Precast Set --
  238. sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{})
  239.  
  240. sets.Midcast = {}
  241. -- Magic Haste Set --
  242. sets.Midcast.Haste = set_combine(sets.PDT,{})
  243.  
  244. sets.Midcast.Gearcollector = {}
  245. end
  246.  
  247. function pretarget(spell,action)
  248. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  249. cancel_spell()
  250. send_command('input /item "Echo Drops" <me>')
  251. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  252. cancel_spell()
  253. send_command('Aggressor')
  254. end
  255. end
  256.  
  257. function precast(spell,action)
  258. if spell.type == "WeaponSkill" then
  259. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  260. cancel_spell()
  261. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  262. status_change(player.status)
  263. return
  264. else
  265. equipSet = sets.WS
  266. if equipSet[spell.english] then
  267. equipSet = equipSet[spell.english]
  268. end
  269. if SA and equipSet["SA"] then
  270. equipSet = equipSet["SA"]
  271. end
  272. if TA and equipSet["TA"] then
  273. equipSet = equipSet["TA"]
  274. end
  275. if spell.english == "Evisceration" and player.tp > 299 then -- Use non Moonshade earring When You Have 300 TP --
  276. equipSet = set_combine(equipSet,{})
  277. end
  278. equip(equipSet)
  279. end
  280. elseif spell.type=="JobAbility" then
  281. if sets.JA[spell.english] then
  282. equip(sets.JA[spell.english])
  283. end
  284. if spell.english=="Sneak Attack" then
  285. SA = true
  286. end
  287. if spell.english=="Trick Attack" then
  288. TA = true
  289. end
  290. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  291. if string.find(spell.english,'Utsusemi') then
  292. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  293. cancel_spell()
  294. add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  295. return
  296. else
  297. equip(sets.Precast.Utsusemi)
  298. end
  299. else
  300. equip(sets.Precast.FastCast)
  301. end
  302. elseif spell.type == 'Step' then
  303. equip(sets.Step)
  304. elseif string.find(spell.type,'Flourish') then
  305. equip(sets.Flourish)
  306. elseif spell.type == "Waltz" then
  307. refine_waltz(spell,action)
  308. equip(sets.Waltz)
  309. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  310. cast_delay(0.2)
  311. send_command('cancel Sneak')
  312. end
  313. end
  314.  
  315. function midcast(spell,action)
  316. if spell.english == 'Ranged' then
  317. equip(TH_Gear)
  318. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  319. if string.find(spell.english,'Utsusemi') then
  320. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  321. send_command('@wait 1.7;cancel Copy Image*')
  322. end
  323. equip(sets.Midcast.Haste)
  324. elseif spell.english == 'Monomi: Ichi' then
  325. if buffactive['Sneak'] then
  326. send_command('@wait 1.7;cancel sneak')
  327. end
  328. equip(sets.Midcast.Haste)
  329. else
  330. equip(sets.Midcast.Haste)
  331. end
  332. end
  333. end
  334.  
  335. function aftercast(spell,action)
  336. if spell.type == "WeaponSkill" and not spell.interrupted then
  337. send_command('wait 0.2;gs c TP')
  338. end
  339. status_change(player.status)
  340. end
  341.  
  342. function status_change(new,old)
  343. if CapRingLock == 1 then
  344. equip(sets.CapRingLock)
  345. end
  346. if CapRingLock == 1 then -- Capacity Ring Lock On/Off--
  347. disable('ring1','ring2')
  348. else
  349. enable('ring1','ring2')
  350. end
  351. if player.equipment.range ~= 'empty' then
  352. disable('range','ammo')
  353. else
  354. enable('range','ammo')
  355. end
  356. if Armor == 'PDT' then
  357. equip(sets.PDT)
  358. elseif Armor == 'MDT' then
  359. equip(sets.MDT)
  360. elseif Armor == 'EVA' then
  361. equip(sets.Evasion)
  362. elseif new == 'Engaged' then
  363. equipSet = sets.TP
  364. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  365. equipSet = equipSet["Hybrid"]
  366. end
  367. if equipSet[AccArray[AccIndex]] then
  368. equipSet = equipSet[AccArray[AccIndex]]
  369. end
  370. if (buffactive.Embrava and (buffactive.Haste or buffactive.March) and buffactive['Haste Samba']) or (buffactive.March == 2 and buffactive.Haste and buffactive['Haste Samba']) and equipSet["HighHaste"] then
  371. equipSet = equipSet["HighHaste"]
  372. end
  373. if (buffactive.Embrava and (buffactive.Haste or buffactive.March or buffactive['Haste Samba'])) or (buffactive.March == 1 and buffactive.Haste and buffactive['Haste Samba'] and equipSet["MidHaste"]) or (buffactive.March == 2 and (buffactive.Haste or buffactive['Haste Samba'])) and equipSet["MidHaste"] then
  374. equipSet = equipSet["MidHaste"]
  375. end
  376. if SA then
  377. equipSet = set_combine(equipSet,sets.JA["Sneak Attack"])
  378. end
  379. if TA then
  380. equipSet = set_combine(equipSet,sets.JA["Trick Attack"])
  381. end
  382. if Rancor == 'ON' then -- Use Rancor Toggle For Rancor Collar --
  383. equipSet = set_combine(equipSet,sets.TP.Rancor)
  384. end
  385. if TH == 'ON' then -- Use TH Toggle To Lock Full TH Set --
  386. equipSet = set_combine(equipSet,sets.TP.TH)
  387. end
  388. if buffactive.Feint or buffactive["Trick Attack"] or buffactive["Sneak Attack"] then
  389. equipSet = set_combine(equipset,set,{hands="Plun. Armlets +1", waist="Chaac Belt", feet="Skulk. Poulaines +1"})
  390. end
  391. equip(equipSet)
  392. elseif new == 'Idle' then
  393. equip(sets.Idle[IdleArray[IdleIndex]])
  394. end
  395. end
  396.  
  397. function buff_change(buff,gain)
  398. buff = string.lower(buff)
  399. if buff == "sneak attack" then
  400. SA = gain
  401. elseif buff == "trick attack" then
  402. TA = gain
  403. elseif buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  404. if gain then
  405. 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.]')
  406. else
  407. send_command('timers delete "Aftermath: Lv.3"')
  408. add_to_chat(123,'AM3: [OFF]')
  409. end
  410. elseif buff == 'weakness' then -- Weakness Timer --
  411. if gain then
  412. send_command('timers create "Weakness" 300 up')
  413. else
  414. send_command('timers delete "Weakness"')
  415. end
  416. end
  417. if not midaction() then
  418. status_change(player.status)
  419. end
  420. end
  421.  
  422. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  423. function self_command(command)
  424. if command == 'C1' then -- Accuracy Level Toggle --
  425. AccIndex = (AccIndex % #AccArray) + 1
  426. status_change(player.status)
  427. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  428. elseif command == 'C5' then -- Auto Update Gear Toggle --
  429. status_change(player.status)
  430. add_to_chat(158,'Auto Update Gear')
  431. elseif command == 'C2' then -- Hybrid Toggle --
  432. if Armor == 'Hybrid' then
  433. Armor = 'None'
  434. add_to_chat(123,'Hybrid Set: [Unlocked]')
  435. else
  436. Armor = 'Hybrid'
  437. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  438. end
  439. status_change(player.status)
  440. elseif command == 'TH' then -- Full TH Set Toggle --
  441. if TH == 'ON' then
  442. TH = 'OFF'
  443. add_to_chat(123,'Full TH Set: [Unlocked]')
  444. else
  445. TH = 'ON'
  446. add_to_chat(158,'Full TH Set: [Locked]')
  447. end
  448. status_change(player.status)
  449. elseif command == 'C7' then -- PDT Toggle --
  450. if Armor == 'PDT' then
  451. Armor = 'None'
  452. add_to_chat(123,'PDT Set: [Unlocked]')
  453. else
  454. Armor = 'PDT'
  455. add_to_chat(158,'PDT Set: [Locked]')
  456. end
  457. status_change(player.status)
  458. elseif command == 'C15' then -- MDT Toggle --
  459. if Armor == 'MDT' then
  460. Armor = 'None'
  461. add_to_chat(123,'MDT Set: [Unlocked]')
  462. else
  463. Armor = 'MDT'
  464. add_to_chat(158,'MDT Set: [Locked]')
  465. end
  466. status_change(player.status)
  467. elseif command == 'C11' then -- Lock Capacity Ring On/Off --
  468. if CapRingLock == 1 then
  469. CapRingLock = 0
  470. add_to_chat(123,'Capacity Ring Unlocked: [Unlocked]')
  471. else
  472. CapRingLock = 1
  473. add_to_chat(158,'Capacity Ring Locked: [locked]')
  474. end
  475. status_change(player.status)
  476. elseif command == 'C3' then -- Evasion Toggle --
  477. if Armor == 'EVA' then
  478. Armor = 'None'
  479. add_to_chat(123,'Evasion Set: [Unlocked]')
  480. else
  481. Armor = 'EVA'
  482. add_to_chat(158,'Evasion Set: [Locked]')
  483. end
  484. status_change(player.status)
  485. elseif command == 'C16' then -- Rancor Toggle --
  486. if Rancor == 'ON' then
  487. Rancor = 'OFF'
  488. add_to_chat(123,'Rancor: [OFF]')
  489. else
  490. Rancor = 'ON'
  491. add_to_chat(158,'Rancor: [ON]')
  492. end
  493. status_change(player.status)
  494. elseif command == 'C8' then -- Distance Toggle --
  495. if player.target.distance then
  496. target_distance = math.floor(player.target.distance*10)/10
  497. add_to_chat(158,'Distance: '..target_distance)
  498. else
  499. add_to_chat(123,'No Target Selected')
  500. end
  501. elseif command == 'C6' then -- Idle Toggle --
  502. IdleIndex = (IdleIndex % #IdleArray) + 1
  503. status_change(player.status)
  504. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  505. elseif command == 'TP' then
  506. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  507. elseif command:match('^SC%d$') then
  508. send_command('//' .. sc_map[command])
  509. end
  510. end
  511.  
  512. function refine_waltz(spell,action)
  513. if spell.type ~= 'Waltz' then
  514. return
  515. end
  516.  
  517. if spell.name == "Healing Waltz" or spell.name == "Divine Waltz" or spell.name == "Divine Waltz II" then
  518. return
  519. end
  520.  
  521. local newWaltz = spell.english
  522. local waltzID
  523.  
  524. local missingHP
  525.  
  526. if spell.target.type == "SELF" then
  527. missingHP = player.max_hp - player.hp
  528. elseif spell.target.isallymember then
  529. local target = find_player_in_alliance(spell.target.name)
  530. local est_max_hp = target.hp / (target.hpp/100)
  531. missingHP = math.floor(est_max_hp - target.hp)
  532. end
  533.  
  534. if missingHP ~= nil then
  535. if missingHP < 40 and spell.target.name == player.name then
  536. add_to_chat(123,'Full HP!')
  537. cancel_spell()
  538. return
  539. elseif missingHP < 150 then
  540. newWaltz = 'Curing Waltz'
  541. waltzID = 190
  542. elseif missingHP < 300 then
  543. newWaltz = 'Curing Waltz II'
  544. waltzID = 191
  545. else
  546. newWaltz = 'Curing Waltz III'
  547. waltzID = 192
  548. end
  549. else
  550. return
  551. end
  552.  
  553. local waltzTPCost = {['Curing Waltz'] = 20, ['Curing Waltz II'] = 35, ['Curing Waltz III'] = 50}
  554. local tpCost = waltzTPCost[newWaltz]
  555.  
  556. local downgrade
  557.  
  558. if player.tp < tpCost and not buffactive.trance then
  559.  
  560. if player.tp < 20 then
  561. add_to_chat(123, 'Insufficient TP ['..tostring(player.tp)..']. Cancelling.')
  562. cancel_spell()
  563. return
  564. elseif player.tp < 35 then
  565. newWaltz = 'Curing Waltz'
  566. elseif player.tp < 50 then
  567. newWaltz = 'Curing Waltz II'
  568. end
  569.  
  570. downgrade = 'Insufficient TP ['..tostring(player.tp)..']. Downgrading to '..newWaltz..'.'
  571. end
  572.  
  573. if newWaltz ~= spell.english then
  574. send_command('@input /ja "'..newWaltz..'" '..tostring(spell.target.raw))
  575. if downgrade then
  576. add_to_chat(158, downgrade)
  577. end
  578. cancel_spell()
  579. return
  580. end
  581.  
  582. if missingHP > 0 then
  583. add_to_chat(158,'Trying to cure '..tostring(missingHP)..' HP using '..newWaltz..'.')
  584. end
  585. end
  586. function select_default_macro_book()
  587. -- Default macro set/book
  588. if player.sub_job == 'THF' then
  589. set_macro_page(1, 2)
  590. elseif player.sub_job == 'WAR' then
  591. set_macro_page(1, 2)
  592. elseif player.sub_job == 'DNC' then
  593. set_macro_page(1, 2)
  594. else
  595. set_macro_page(1, 2)
  596. end
  597. end
  598.  
  599. function find_player_in_alliance(name)
  600. for i,v in ipairs(alliance) do
  601. for k,p in ipairs(v) do
  602. if p.name == name then
  603. return p
  604. end
  605. end
  606. end
  607. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement