Guest User

Untitled

a guest
May 26th, 2014
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.12 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- Last Updated: 03/08/14 2:30 PM *Changed JA Names* --
  3.  
  4. function get_sets()
  5. AccIndex = 1
  6. AccArray = {"LowACC","MidACC","HighACC","AtkCap"} -- 3 Levels Of Accuracy Sets For Shooting/TP/WS. 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 --
  7. IdleIndex = 1
  8. IdleArray = {'Movement', 'Regen'} -- Default Idle Set Is Movement --
  9. Armor = 'None'
  10. autoRAmode = 0
  11. target_distance = 5 -- Set Default Distance Here --
  12. send_command('input /macro book 8;wait .1;input /macro set 10') -- Change Default Macro Book Here --
  13.  
  14. ranged_ws = S{
  15. "Hot Shot","Split Shot","Sniper Shot","Slug Shot","Blast Shot","Heavy Shot","Detonator",
  16. "Numbing Shot","Last Stand","Coronach","Trueflight","Wildfire","Flaming Arrow",
  17. "Piercing Arrow","Dulling Arrow","Sidewinder","Blast Arrow","Arching Arrow",
  18. "Empyreal Arrow","Refulgent Arrow","Apex Arrow","Namas Arrow","Jishnu's Radiance"}
  19.  
  20. sc_map = {SC1="DoubleShot", SC2="Coronach", SC3="Ranged"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  21.  
  22. -- Idle/Town Sets --
  23. sets.Idle = {}
  24. sets.Idle.Regen = set_combine(sets.Idle.Movement,{})
  25. sets.Idle.Movement = {
  26. head="Umbani Cap",neck="Ej Necklace",
  27. ear1="Clearview Earring",ear2="Volley Earring",
  28. body="Kyujutsugi",hands="Buremte Gloves",
  29. ring1="Pyrosoul Ring",ring2="Rajas Ring",
  30. back="Sylvan Chlamys",waist="Elanid Belt",
  31. legs="Orion Braccae +1",feet="Skd. Jambeaux +1"}
  32.  
  33. -- Preshot --
  34. sets.Preshot = {
  35. head="Orion Beret +1",neck="Ej Necklace",
  36. body="Sylvan Caban +2",hands="Iuitl Wristbands +1",
  37. ring1="Hajduk Ring",ring2="Hajduk Ring",
  38. back="Libeccio Mantle",waist="Impulse Belt",
  39. legs="Nahtirah Trousers",feet="Wurrukatte Boots"}
  40.  
  41. -- Shooting Base Set --
  42. sets.Midshot = {}
  43.  
  44. -- Annihilator Sets --
  45. sets.Midshot.Annihilator = {
  46. range="Annihilator",
  47. head="Arcadian Beret +1",neck="Ocachi Gorget",
  48. ear1="Clearview Earring",ear2="Volley Earring",
  49. body="Kyujutsugi",hands="Sigyn's Bazubands",
  50. ring1="Hajduk Ring",ring2="Rajas Ring",
  51. back="Libeccio Mantle",waist="Elanid Belt",
  52. legs="Nahtirah Trousers",feet="Orion Socks +1"}
  53. sets.Midshot.Annihilator.MidACC = set_combine(sets.Midshot.Annihilator,{
  54. ear1="Clearview Earring",
  55. back="Lutian Cape",
  56. legs="Orion Braccae +1",
  57. feet="Orion Socks +1"})
  58. sets.Midshot.Annihilator.HighACC = set_combine(sets.Midshot.Annihilator.MidACC,{
  59. neck="Ej Necklace",
  60. head="Umbani Cap",
  61. hands="Sigyn's Bazubands",
  62. ring2="Hajduk Ring"})
  63. sets.Midshot.Annihilator.AtkCap = set_combine(sets.Midshot.Annihilator.HighAcc,{
  64. neck="Ocachi Gorget",
  65. hands="Arc. Bracers +1"})
  66.  
  67. -- Barrage Base Set --
  68. Barrage = set_combine(sets.Midshot.Annihilator,{
  69. head="Orion Beret +1",
  70. hands="Orion Bracers +1",
  71. ring2="Hajduk Ring",
  72. neck="Ej Necklace",
  73. legs="Desultor Tassets"})
  74.  
  75. -- Annihilator Barrage Sets --
  76. sets.Midshot.Annihilator.Barrage = set_combine(sets.Midshot.Annihilator,{},Barrage)
  77. sets.Midshot.Annihilator.MidACC.Barrage = set_combine(sets.Midshot.Annihilator.MidACC,{},Barrage)
  78. sets.Midshot.Annihilator.HighACC.Barrage = set_combine(sets.Midshot.Annihilator.HighACC,{},Barrage)
  79.  
  80. -- PDT/MDT Sets --
  81. sets.PDT = {
  82. head="Iuitl Headgear +1",
  83. neck="Twilight Torque",
  84. ear1="Black Earring",
  85. ear2="Darkness Earring",
  86. body="Iuitl Vest +1",
  87. hands="Iuitl Wristbands +1",
  88. ring1="Dark Ring",
  89. ring2="Defending Ring",
  90. back="Shadow Mantle",
  91. waist="Flume Belt",
  92. legs="Iuitl Tights +1",
  93. feet="Iuitl Gaiters +1"}
  94.  
  95. sets.MDT = set_combine(sets.PDT,{
  96. ear1="Merman's Earring",
  97. ear2="Sanare Earring",
  98. ring1="Shadow Ring",
  99. back="Engulfer Cape",
  100. waist="Resolute Belt"})
  101.  
  102. -- Melee Sets --
  103. sets.Melee = {}
  104. sets.Melee.MidACC = set_combine(sets.Melee,{})
  105. sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{})
  106.  
  107. -- WS Base Set --
  108. sets.WS = {}
  109.  
  110. -- WS Sets --
  111. sets.WS.Coronach = {
  112. head="Arcadian Beret +1",
  113. neck="Breeze Gorget",
  114. ear1="Flame Pearl",
  115. ear2="Flame Pearl",
  116. body="Kyujutsugi",
  117. hands="Arc. Bracers +1",
  118. ring1="Pyrosoul Ring",
  119. ring2="Rajas Ring",
  120. back="Buquwik Cape",
  121. waist="Breeze Belt",
  122. legs="Nahtirah Trousers",
  123. feet="Orion Socks +1"}
  124. sets.WS.Coronach.MidACC = set_combine(sets.WS.Coronach,{
  125. back="Lutian Cape",
  126. feet="Orion Socks +1"})
  127. sets.WS.Coronach.HighACC = set_combine(sets.WS.Coronach.MidACC,{
  128. hands="Sigyn's Bazubands",
  129. ring1="Hajduk Ring",
  130. ring2="Hajduk Ring",
  131. legs="Orion Braccae +1"})
  132.  
  133. sets.WS["Last Stand"] = {
  134. head="Orion Beret +1",
  135. neck="Ocachi Gorget",
  136. ear1="Moonshade Earring",
  137. ear2="Sylvan Earring",
  138. body="Orion Jerkin +1",
  139. hands="Orion Bracers +1",
  140. ring1="Stormsoul Ring",
  141. ring2="Stormsoul Ring",
  142. back="Buquwik Cape",
  143. waist="Light Belt",
  144. legs="Nahtirah Trousers",
  145. feet="Orion Socks +1"}
  146. sets.WS["Last Stand"].MidACC = set_combine(sets.WS["Last Stand"],{
  147. feet="Orion Socks +1"})
  148. sets.WS["Last Stand"].HighACC = set_combine(sets.WS["Last Stand"].MidACC,{
  149. hands="Sigyn's Bazubands",
  150. ring1="Hajduk Ring",
  151. ring2="Hajduk Ring",
  152. legs="Orion Braccae +1"})
  153.  
  154. sets.WS["Namas Arrow"] = {}
  155. sets.WS["Namas Arrow"].MidACC = set_combine(sets.WS["Namas Arrow"],{})
  156. sets.WS["Namas Arrow"].HighACC = set_combine(sets.WS["Namas Arrow"].MidACC,{})
  157.  
  158. sets.WS["Jishnu's Radiance"] = {}
  159. sets.WS["Jishnu's Radiance"].MidACC = set_combine(sets.WS["Jishnu's Radiance"],{})
  160. sets.WS["Jishnu's Radiance"].HighACC = set_combine(sets.WS["Jishnu's Radiance"].MidACC,{})
  161.  
  162. sets.WS["Apex Arrow"] = {}
  163. sets.WS["Apex Arrow"].MidACC = set_combine(sets.WS["Apex Arrow"],{})
  164. sets.WS["Apex Arrow"].HighACC = set_combine(sets.WS["Apex Arrow"].MidACC,{})
  165.  
  166. sets.WS.Evisceration = {
  167. head="Uk'uxkaj Cap",neck="Light Gorget",
  168. body="Orion Jerkin +1",hands="Iuitl Wristbands +1",
  169. ring1="Stormsoul Ring",ring2="Stormsoul Ring",
  170. back="Thall Mantle",waist="Light Belt",
  171. legs="Nahtirah Trousers",feet="Iuitl Gaiters"}
  172.  
  173. -- JA Sets --
  174. sets.JA = {}
  175. sets.JA.Shadowbind = {
  176. head="Sylvan Gapette +2",
  177. neck="Ej Necklace",
  178. ear1="Clearview Earring",
  179. ear2="Volley Earring",
  180. body="Kyujutsugi",
  181. hands="Orion Bracers +1",
  182. ring1="Hajduk Ring",
  183. ring2="Hajduk Ring",
  184. back="Lutian Cape",
  185. waist="Scouts Belt",
  186. legs="Orion Braccae +1",
  187. feet="Orion Socks +1"}
  188.  
  189. sets.JA.Scavenge = {feet="Orion Socks +1"}
  190. sets.JA.Camouflage = {body="Orion Jerkin +1"}
  191. sets.JA.Sharpshot = {legs="Orion Braccae +1"}
  192. sets.JA["Velocity Shot"] = {body="Sylvan Caban +2"}
  193. sets.JA["Double Shot"] = {head="Sylvan Gapette +2"}
  194. sets.JA["Bounty Shot"] = {hands="Syl. Glvltte. +2"}
  195. sets.JA["Unlimited Shot"] = {hands="Sylvan Bottln. +2"}
  196. sets.JA["Eagle Eye Shot"] = {
  197. head="Orion Beret +1",
  198. neck="Ej Necklace",
  199. ear1="Clearview Earring",
  200. ear2="Volley Earring",
  201. body="Orion Jerkin +1",
  202. hands="Iuitl Wristbands +1",
  203. ring1="Hajduk Ring",
  204. ring2="Hajduk Ring",
  205. back="Lutian Mantle",
  206. waist="Scouts Belt",
  207. legs="Orion Braccae +1",
  208. feet="Orion Socks +1"}
  209.  
  210. -- Waltz Set --
  211. sets.Waltz = {}
  212.  
  213. sets.Precast = {}
  214. -- Fastcast Set --
  215. sets.Precast.FastCast = {}
  216. -- Utsusemi Precast Set --
  217. sets.Precast.Utsusemi = set_combine(sets.Precast.FastCast,{})
  218.  
  219. sets.Midcast = {}
  220. -- Magic Haste Set --
  221. sets.Midcast.Haste = set_combine(sets.PDT,{})
  222. end
  223.  
  224. function pretarget(spell,action)
  225. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  226. cancel_spell()
  227. send_command('input /item "Echo Drops" <me>')
  228. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  229. cancel_spell()
  230. send_command('Aggressor')
  231. elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  232. cancel_spell()
  233. send_command('ThirdEye')
  234. elseif spell.english == "Meditate" and player.tp > 290 then -- Cancel Meditate If TP Is Above 290 --
  235. cancel_spell()
  236. add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  237. elseif (spell.english == 'Ranged' and spell.target.distance > 24.9) or (player.status == 'Engaged' and ((ranged_ws:contains(spell.english) and spell.target.distance > 16+target_distance) or (spell.type == "WeaponSkill" and not ranged_ws:contains(spell.english) and spell.target.distance > target_distance))) then -- Cancel Ranged Attack or WS If You Are Out Of Range --
  238. cancel_spell()
  239. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  240. return
  241. end
  242. end
  243.  
  244. function precast(spell,action)
  245. if spell.english == 'Ranged' then
  246. equip(sets.Preshot)
  247. elseif spell.type == "WeaponSkill" then
  248. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  249. cancel_spell()
  250. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  251. return
  252. else
  253. equipSet = sets.WS
  254. if equipSet[spell.english] then
  255. equipSet = equipSet[spell.english]
  256. end
  257. if equipSet[AccArray[AccIndex]] then
  258. equipSet = equipSet[AccArray[AccIndex]]
  259. end
  260. if player.tp > 299 or buffactive.Sekkanoki then
  261. if spell.english == "Last Stand" then -- Equip Altdorf's Earring and Wilhelm's Earring When You Have 300 TP or Sekkanoki For Last Stand --
  262. equipSet = set_combine(equipSet,{ear1="Altdorf's Earring",ear2="Wilhelm's Earring"})
  263. elseif spell.english == "Jishnu's Radiance" then -- Equip Jupiter's Pearl When You Have 300 TP or Sekkanoki For Jishnu's Radiance --
  264. equipSet = set_combine(equipSet,{ear1="Jupiter's Pearl"})
  265. end
  266. end
  267. equip(equipSet)
  268. end
  269. elseif spell.type=="JobAbility" then
  270. if sets.JA[spell.english] then
  271. equip(sets.JA[spell.english])
  272. end
  273. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  274. if string.find(spell.english,'Utsusemi') then
  275. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  276. cancel_spell()
  277. add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  278. return
  279. else
  280. equip(sets.Precast.Utsusemi)
  281. end
  282. else
  283. equip(sets.Precast.FastCast)
  284. end
  285. elseif spell.type == "Waltz" then
  286. equip(sets.Waltz)
  287. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  288. cast_delay(0.2)
  289. send_command('cancel Sneak')
  290. end
  291. end
  292.  
  293. function midcast(spell,action)
  294. if spell.english == 'Ranged' then
  295. equipSet = sets.Midshot
  296. if equipSet[player.equipment.range] then
  297. equipSet = equipSet[player.equipment.range]
  298. end
  299. if equipSet[AccArray[AccIndex]] then
  300. equipSet = equipSet[AccArray[AccIndex]]
  301. end
  302. if buffactive.Barrage and equipSet["Barrage"] then
  303. equipSet = equipSet["Barrage"]
  304. end
  305. equip(equipSet)
  306. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  307. if string.find(spell.english,'Utsusemi') then
  308. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  309. send_command('@wait 1.7;cancel Copy Image*')
  310. end
  311. equip(sets.Midcast.Haste)
  312. elseif spell.english == 'Monomi: Ichi' then
  313. if buffactive['Sneak'] then
  314. send_command('@wait 1.7;cancel sneak')
  315. end
  316. equip(sets.Midcast.Haste)
  317. else
  318. equip(sets.Midcast.Haste)
  319. end
  320. end
  321. end
  322.  
  323. function aftercast(spell,action)
  324. if spell.english == 'Ranged' and autoRAmode==1 then
  325. autoRA()
  326. elseif spell.type == "WeaponSkill" and not spell.interrupted then
  327. send_command('wait 0.2;gs c TP')
  328. else
  329. status_change(player.status)
  330. end
  331. end
  332.  
  333. function status_change(new,old)
  334. if Armor == 'PDT' then
  335. equip(sets.PDT)
  336. elseif Armor == 'MDT' then
  337. equip(sets.MDT)
  338. elseif new == 'Engaged' then
  339. equipSet = sets.Melee
  340. if equipSet[AccArray[AccIndex]] then
  341. equipSet = equipSet[AccArray[AccIndex]]
  342. end
  343. equip(equipSet)
  344. else
  345. equip(sets.Idle[IdleArray[IdleIndex]])
  346. end
  347. end
  348.  
  349. function buff_change(buff,gain)
  350. buff = string.lower(buff)
  351. if buff == 'weakness' then -- Weakness Timer --
  352. if gain then
  353. send_command('timers create "Weakness" 300 up')
  354. else
  355. send_command('timers delete "Weakness"')
  356. end
  357. end
  358. if not midaction() then
  359. status_change(player.status)
  360. end
  361. end
  362.  
  363. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  364. function self_command(command)
  365. if command == 'C1' then -- Accuracy Level Toggle --
  366. AccIndex = (AccIndex % #AccArray) + 1
  367. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  368. status_change(player.status)
  369. elseif command == 'C5' then -- Auto Update Gear Toggle --
  370. status_change(player.status)
  371. add_to_chat(158,'Auto Update Gear')
  372. elseif command == 'C7' then -- PDT Toggle --
  373. if Armor == 'PDT' then
  374. Armor = 'None'
  375. add_to_chat(123,'PDT Set: [Unlocked]')
  376. else
  377. Armor = 'PDT'
  378. add_to_chat(158,'PDT Set: [Locked]')
  379. end
  380. status_change(player.status)
  381. elseif command == 'C15' then -- MDT Toggle --
  382. if Armor == 'MDT' then
  383. Armor = 'None'
  384. add_to_chat(123,'MDT Set: [Unlocked]')
  385. else
  386. Armor = 'MDT'
  387. add_to_chat(158,'MDT Set: [Locked]')
  388. end
  389. status_change(player.status)
  390. elseif command == 'C8' then -- Distance Toggle --
  391. if player.target.distance then
  392. target_distance = math.floor(player.target.distance*10)/10
  393. add_to_chat(158,'Distance: '..target_distance)
  394. else
  395. add_to_chat(123,'No Target Selected')
  396. end
  397. elseif command == 'C6' then -- Idle Toggle --
  398. IdleIndex = (IdleIndex % #IdleArray) + 1
  399. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  400. status_change(player.status)
  401. elseif command == 'C2' then -- Auto Ranged Attack Toggle. *Don't Rely On This. It Isn't As Fast As Shooting Manually. It Is Mainly For AFK or When You Dualbox* --
  402. if autoRAmode == 0 then
  403. autoRAmode = 1
  404. add_to_chat(158,'AutoRA Mode: [ON]')
  405. else
  406. autoRAmode = 0
  407. add_to_chat(123,'AutoRA Mode: [OFF]')
  408. end
  409. elseif command == 'TP' then
  410. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  411. elseif command:match('^SC%d$') then
  412. send_command('//' .. sc_map[command])
  413. end
  414. end
  415.  
  416. function autoRA()
  417. send_command('@wait 2.7; input /ra <t>')
  418. end
Advertisement
Add Comment
Please, Sign In to add comment