Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.47 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I use Motenten's define_roll_values function ** --
  3. -- Last Updated: 03/08/14 2:30 PM *Changed JA Names* --
  4.  
  5. function get_sets()
  6. AccIndex = 1
  7. AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For Shooting/QD/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 --
  8. IdleIndex = 1
  9. IdleArray = {'Movement', 'Regen'} -- Default Idle Set Is Movement --
  10. autoRAmode = 0
  11. Armor = 'None'
  12. define_roll_values()
  13. Obi = 'ON' -- Turn Default Obi ON or OFF Here --
  14. target_distance = 7 -- Set Default Distance Here --
  15.  
  16. ranged_ws = S{
  17. "Hot Shot","Split Shot","Sniper Shot","Slug Shot","Detonator","Numbing Shot",
  18. "Last Stand","Leaden Salute","Wildfire"}
  19.  
  20. ACC_Shots = S{"Light Shot","Dark Shot"}
  21.  
  22. sc_map = {SC1="CoursersRoll", SC2="DiaII", SC3="LightShot"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  23.  
  24. -- Idle/Town Sets --
  25. sets.Idle = {ammo="Chrono Bullet", head="Dampening Tam",
  26. body="Mekosu. Harness",
  27. hands="Meghanada Gloves +2",
  28. legs="Carmine Cuisses +1",
  29. feet="Lanun Bottes +1",
  30. neck="Loricate Torque +1",
  31. waist="Flume Belt +1",
  32. left_ear="Sanare Earring",
  33. right_ear="Genmei Earring",
  34. left_ring="Roller's Ring",
  35. right_ring="Defending Ring",
  36. back="Moonbeam Cape"}
  37. sets.Idle.Regen = {
  38. ammo="Chrono Bullet", head="Dampening Tam",
  39. body="Mekosu. Harness",
  40. hands="Meghanada Gloves +2",
  41. legs="Carmine Cuisses +1",
  42. feet="Lanun Bottes +1",
  43. neck="Loricate Torque +1",
  44. waist="Flume Belt +1",
  45. left_ear="Sanare Earring",
  46. right_ear="Genmei Earring",
  47. left_ring="Roller's Ring",
  48. right_ring="Defending Ring",
  49. back="Moonbeam Cape"}
  50. sets.Idle.Movement = set_combine(sets.Idle.Regen,{legs="Carmine Cuisses +1"})
  51. -- QD Sets --
  52. sets.QD = {
  53. ammo="Animikii Bullet", head="Herculean Helm",
  54. body={ name="Mirke Wardecors", augments={'"Quick Draw" ability delay -5','"Store TP"+4 "Subtle Blow"+4',}},
  55. hands="Pursuer's Cuffs",
  56. 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',}},
  57. feet="Chass. Bottes +1",
  58. neck="Marked Gorget",
  59. waist="Eschan Belt",
  60. left_ear="Enervating Earring",
  61. right_ear="Telos Earring",
  62. left_ring="Petrov Ring",
  63. right_ring="Rajas Ring",
  64. back={ name="Gunslinger's Cape", augments={'Enmity-2','"Mag.Atk.Bns."+1','Weapon skill damage +5%',}},}
  65. sets.QD.MidACC = set_combine(sets.QD,{})
  66. sets.QD.HighACC = set_combine(sets.QD.MidACC,{ammo="Animikii Bullet", head="Lak. Hat +1",
  67. body={ name="Mirke Wardecors", augments={'"Quick Draw" ability delay -5','"Store TP"+4 "Subtle Blow"+4',}},
  68. hands="Umuthi Gloves",
  69. 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',}},
  70. feet="Chass. Bottes +1",
  71. neck="Stoicheion Medal",
  72. waist="Eschan Stone",
  73. left_ear="Psystorm Earring",
  74. right_ear="Lifestorm Earring",
  75. left_ring="Haverton Ring",
  76. right_ring="Hajduk Ring",
  77. back={ name="Gunslinger's Cape", augments={'Enmity-2','"Mag.Atk.Bns."+1','Weapon skill damage +5%',}},})
  78.  
  79. -- PDT/MDT Sets --
  80. sets.PDT = {ammo="Chrono Bullet", head="Dampening Tam",
  81. body="Mekosu. Harness",
  82. hands="Meghanada Gloves +2",
  83. legs="Feast Hose",
  84. feet="Lanun Bottes +1",
  85. neck="Twilight Torque",
  86. waist="Flume Belt",
  87. left_ear="Sanare Earring",
  88. right_ear="Etiolation Earring",
  89. left_ring="Roller's Ring",
  90. right_ring="Defending Ring",
  91. back="Moonbeam Cape"}
  92.  
  93. sets.MDT = set_combine(sets.PDT,{})
  94.  
  95. -- Roll Set --
  96. sets.Rolls = set_combine(sets.PDT,{ back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}}, ammo="Chrono Bullet",
  97. head="Lanun Tricorne +1",
  98. legs="Desultor Tassets",
  99. neck="Regal Necklace",
  100. hands="Chasseur's Gants +1",
  101. ring1="Luzaf's Ring"})
  102.  
  103. -- Preshot --
  104. sets.Preshot = {ammo="Chrono Bullet", head="Aurore Beret +1",
  105. body="Skopos Jerkin",
  106. hands={ name="Lanun Gants +1", augments={'Enhances "Fold" effect',}},
  107. legs="Nahtirah Trousers",
  108. feet="Meghanada Jambeaux +2",
  109. neck="Ocachi Gorget",
  110. waist="Impulse Belt",
  111. left_ear="Enervating Earring",
  112. right_ear="Volley Earring",
  113. left_ring="Hajduk Ring +1",
  114. right_ring="Cacoethic Ring +1",
  115. back={ name="Camulus's Mantle", augments={'"Snapshot"+10',}}}
  116.  
  117. -- Shooting Base Set --
  118. sets.Midshot = {ammo="Chrono Bullet"}
  119.  
  120. -- Death Penalty Sets --
  121. sets.Midshot['Death Penalty'] = {
  122. head="Lanun Tricorne +1",
  123. neck="Ocachi Gorget",
  124. ear1="Volley Earring",
  125. ear2="Clearview Earring",
  126. body="Lak. Frac +1",
  127. hands="Manibozho Gloves",
  128. ring1="Haverton Ring",
  129. ring2="Arvina Ringlet +1",
  130. back="Gunslinger's Cape",
  131. waist="Eschan Stone",
  132. legs="Nahtirah Trousers",
  133. feet="Vanir Boots"}
  134. sets.Midshot['Death Penalty'].MidACC = set_combine(sets.Midshot['Death Penalty'],{
  135. head="Umbani Cap",
  136. neck="Gaudryi Necklace",
  137. body="Mekosuchinae Harness",
  138. hands="Sigyn's Bazubands",
  139. ring2="Paqichikaji Ring",
  140. legs="Lanun Culottes +1"})
  141. sets.Midshot['Death Penalty'].HighACC = set_combine(sets.Midshot['Death Penalty'].MidACC,{
  142. waist="Flax Sash",
  143. legs="Thurandaut Tights +1"})
  144.  
  145. -- Doomsday Sets --
  146. sets.Midshot['Doomsday'] = {ammo="Chrono Bullet", head="Meghanada Visor +2",
  147. body="Laksamana's Frac +3",
  148. hands="Adhemar Wristbands",
  149. legs="Adhemar Kecks",
  150. feet="Meghanada Jambeaux +2",
  151. neck="Iskur Gorget",
  152. waist="Eschan Stone",
  153. left_ear="Enervating Earring",
  154. right_ear="Telos Earring",
  155. left_ring="Haverton Ring",
  156. back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},
  157. right_ring="Cacoethic Ring +1"}
  158. sets.Midshot['Doomsday'].MidACC = set_combine(sets.Midshot['Doomsday'],{})
  159. sets.Midshot['Doomsday'].HighACC = set_combine(sets.Midshot['Doomsday'].MidACC,{})
  160.  
  161. -- Fomalhaut Sets --
  162. sets.Midshot['Fomalhaut'] = {ammo="Chrono Bullet", head="Meghanada Visor +2",
  163. body="Laksamana's Frac +3",
  164. hands="Adhemar Wristbands",
  165. legs="Adhemar Kecks",
  166. feet="Meghanada Jambeaux +2",
  167. neck="Iskur Gorget",
  168. waist="Eschan Stone",
  169. left_ear="Enervating Earring",
  170. right_ear="Telos Earring",
  171. left_ring="Hajduk Ring +1",
  172. back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Store TP"+10',}},
  173. right_ring="Cacoethic Ring +1"}
  174.  
  175. -- Melee Sets --
  176. sets.Melee = {ammo="Chrono Bullet",
  177. head="Dampening Tam",
  178. body="Adhemar Jacket +1",
  179. hands="Adhemar Wristbands +1",
  180. legs="Samnuha Tights",
  181. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}},
  182. neck="Clotharius Torque",
  183. waist="Windbuffet Belt +1",
  184. left_ear="Suppanomimi",
  185. right_ear="Telos Earring",
  186. back={ name="Camulus's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},
  187. left_ring="Hetairoi Ring",
  188. right_ring="Epona's Ring"}
  189. sets.Melee.MidACC = set_combine(sets.Melee,{})
  190. sets.Melee.HighACC = set_combine(sets.Melee.MidACC,{})
  191.  
  192. -- WS Base Set --
  193. sets.WS = { ammo="Chrono Bullet"
  194. }
  195.  
  196. -- WS Sets --
  197. sets.WS["Last Stand"] = { ammo="Chrono Bullet", head="Meghanada Visor +2",
  198. body="Laksamana's Frac +3",
  199. hands="Meghanada Gloves +2",
  200. legs="Meghanada Chausses +2",
  201. feet="Meghanada Jambeaux +2",
  202. neck="Fotia Gorget",
  203. waist="Fotia Belt",
  204. left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +25',}},
  205. right_ear="Telos Earring",
  206. left_ring="Dingir Ring",
  207. back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},
  208. right_ring="Regal Ring"}
  209. sets.WS["Last Stand"].MidACC = set_combine(sets.WS["Last Stand"],{})
  210. sets.WS["Last Stand"].HighACC = set_combine(sets.WS["Last Stand"].MidACC,{
  211. ring2="Paqichikaji Ring"})
  212.  
  213. sets.WS.Wildfire = {
  214. ammo="Chrono Bullet",
  215. body="Samnuha Coat",
  216. hands="Leyline Gloves",
  217. head={ name="Herculean Helm", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Weapon skill damage +4%','STR+4','"Mag.Atk.Bns."+11',}},
  218. 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',}},
  219. 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',}},
  220. neck="Fotia Gorget",
  221. waist="Fotia Belt",
  222. left_ear="Friomisi Earring",
  223. right_ear="Crematio Earring",
  224. left_ring="Dingir Ring",
  225. back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},
  226. right_ring="Regal Ring"}
  227. sets.WS.Wildfire.MidACC = set_combine(sets.WS.Wildfire,{})
  228. sets.WS.Wildfire.HighACC = set_combine(sets.WS.Wildfire.MidACC,{})
  229.  
  230. -- Leaden Salute Sets --
  231. sets.WS['Leaden Salute'] = {ammo="Chrono Bullet",
  232.  
  233. body="Samnuha Coat",
  234. hands="Leyline Gloves",
  235. head="Pixie Hairpin +1",
  236. 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',}},
  237. 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',}},
  238. neck="Fotia Gorget",
  239. waist="Fotia Belt",
  240. left_ear="Friomisi Earring",
  241. right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +25',}},
  242. left_ring="Dingir Ring",
  243. back={ name="Camulus's Mantle", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%',}},
  244. right_ring="Archon Ring"}
  245. sets.WS['Leaden Salute'].MidACC = set_combine(sets.WS['Leaden Salute'],{})
  246. sets.WS['Leaden Salute'].HighACC = set_combine(sets.WS['Leaden Salute'].MidACC,{})
  247.  
  248. -- Evisceration Sets --
  249. sets.WS.Evisceration = {ammo="Yetshila +1",
  250. head="Adhemar Bonnet +1",
  251. neck="Fotia Gorget",
  252. ear2="Telos Earring",
  253. ear1="Moonshade Earring",
  254. body="Abnoba Kaftan",
  255. hands={ name="Herculean Gloves", augments={'Accuracy+23 Attack+23','Crit. hit damage +4%','STR+10','Accuracy+10','Attack+1',}},
  256. ring2="Epona's Ring",
  257. ring1="Begrudging Ring",
  258. back={ name="Andartia's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Fast Cast"+10',}},
  259. waist="Fotia belt",
  260. legs="Samnuha tights",
  261. feet={ name="Herculean Boots", augments={'Accuracy+30','"Triple Atk."+4',}}}
  262. sets.WS.Evisceration.MidACC = set_combine(sets.WS.Evisceration,{})
  263. sets.WS.Evisceration.HighACC = set_combine(sets.WS.Evisceration.MidACC,{})
  264.  
  265. -- Savage Blade Sets --
  266. sets.WS['Savage Blade'] = {
  267. head="Lilitu Headpiece",
  268. neck="Caro Necklace",
  269. ear1="Moonshade Earring",
  270. ear2="Ishvara Earring",
  271. body="Laksamana's Frac +3",
  272. hands="Meghanada Gloves +2",
  273. ring1="Rufescent Ring",
  274. ring2="Regal Ring",
  275. back={ name="Camulus's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
  276. waist="Prosilio Belt +1",
  277. legs="Meghanada Chausses +2",
  278. feet="Meghanada Jambeaux +2"}
  279. sets.WS['Savage Blade'].MidACC = set_combine(sets.WS['Savage Blade'],{})
  280. sets.WS['Savage Blade'].HighACC = set_combine(sets.WS['Savage Blade'].MidACC,{})
  281.  
  282.  
  283.  
  284. -- Elemental Obi --
  285. sets.Obi = {}
  286. sets.Obi.Thunder = {waist='Hachirin-no-Obi'}
  287. sets.Obi.Water = {waist='Hachirin-no-Obi'}
  288. sets.Obi.Fire = {waist='Hachirin-no-Obi'}
  289. sets.Obi.Ice = {waist='Hachirin-no-Obi'}
  290. sets.Obi.Wind = {waist='Hachirin-no-Obi'}
  291. sets.Obi.Earth = {waist='Hachirin-no-Obi'}
  292. sets.Obi.Light = {waist='Hachirin-no-Obi'}
  293. sets.Obi.Dark = {waist='Hachirin-no-Obi'}
  294.  
  295. -- JA Sets --
  296. sets.JA = {}
  297. sets.JA["Random Deal"] = {body="Lanun Frac +1"}
  298. sets.JA.Fold = {}
  299. sets.JA["Snake Eye"] = {legs="Lanun Culottes"}
  300. sets.JA["Wild Card"] = {feet="Lanun Bottes +1"}
  301. sets.JA["Double-Up"] = {ammo="Chrono Bullet",
  302. head="Lanun Tricorne +1",
  303. neck="Regal Necklace",
  304. hands="Chasseur's Gants +1",
  305. ring1="Luzaf's Ring"}
  306.  
  307. -- Waltz Set --
  308. sets.Waltz = { head="Chass. Tricorne +1",
  309. body="Mekosu. Harness",
  310. hands="Umuthi Gloves",
  311. legs={ name="Desultor Tassets", augments={'"Waltz" TP cost -5','Movement speed +8%+2',}},
  312. feet={ name="Lanun Bottes +1", augments={'Enhances "Wild Card" effect',}},
  313. neck="Twilight Torque",
  314. waist="Flume Belt",
  315. left_ear="Sanare Earring",
  316. right_ear="Etiolation Earring",
  317. left_ring="Roller's Ring",
  318. right_ring="Defending Ring",
  319. back={ name="Gunslinger's Cape", augments={'Enmity-2','"Mag.Atk.Bns."+1','Weapon skill damage +5%',}},}
  320.  
  321. sets.Precast = {}
  322. --Fastcast Set --
  323. sets.Precast.FastCast = {
  324. head={ name="Herculean Helm", augments={'"Fast Cast"+6','STR+7',}},
  325. body={ name="Taeon Tabard", augments={'"Fast Cast"+4',}},
  326. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  327. legs={ name="Herculean Trousers", augments={'Accuracy+6','"Fast Cast"+4','VIT+5','Mag. Acc.+14','"Mag.Atk.Bns."+9',}},
  328. feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}},
  329. neck="Orunmila's Torque",
  330. waist="Flume Belt",
  331. left_ear="Loquac. Earring",
  332. right_ear="Etiolation Earring",
  333. left_ring="Kishar Ring",
  334. right_ring="Prolix Ring"}
  335.  
  336. sets.Midcast = {}
  337. -- Magic Haste Set --
  338. sets.Midcast.Haste = set_combine(sets.PDT,{
  339. neck="Orunmila's Torque",
  340. ear1="Loquac. Earring",
  341. body="Taeon Tabard",
  342. ring1="Prolix Ring",
  343. ring2="Veneficium Ring"})
  344. end
  345.  
  346. function pretarget(spell,action)
  347. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  348. cancel_spell()
  349. send_command('input /item "Echo Drops" <me>')
  350. elseif spell.type == "CorsairRoll" and buffactive[spell.english] then -- Change Any Rolls To Double-Up When You Have A Roll Up --
  351. cancel_spell()
  352. send_command('doubleup')
  353. elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  354. cancel_spell()
  355. send_command('ThirdEye')
  356. elseif spell.english == "Meditate" and player.tp > 2900 then -- Cancel Meditate If TP Is Above 2900 --
  357. cancel_spell()
  358. add_to_chat(123, spell.name .. ' Canceled: ' .. player.tp)
  359. 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 --
  360. cancel_spell()
  361. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  362. return
  363. end
  364. end
  365.  
  366. function precast(spell,action)
  367. if spell.english == 'Ranged' or spell.type == "WeaponSkill" then
  368. if player.equipment.ammo == "Animikii Bullet" then -- Cancel Ranged Attack or WS If You Have Animikii Bullet Equipped --
  369. cancel_spell()
  370. add_to_chat(123, spell.name .. ' Canceled: [Animikii Bullet Equipped!]')
  371. return
  372. elseif spell.english=='Ranged' then
  373. equip(sets.Preshot)
  374. elseif spell.type == "WeaponSkill" then
  375. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  376. cancel_spell()
  377. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  378. return
  379. else
  380. equipSet = sets.WS
  381. if equipSet[spell.english] then
  382. equipSet = equipSet[spell.english]
  383. end
  384. if equipSet[AccArray[AccIndex]] then
  385. equipSet = equipSet[AccArray[AccIndex]]
  386. end
  387. if spell.english == "Last Stand" and (player.tp > 2900 or buffactive.Sekkanoki) then -- Equip Altdorf's Earring and Wilhelm's Earring When You Have 300 TP or Sekkanoki For Last Stand --
  388. equipSet = set_combine(equipSet,{ear1="Altdorf's Earring",ear2="Wilhelm's Earring"})
  389. end
  390. if spell.english == "Leaden Salute" and (player.tp > 2900 or buffactive.Sekkanoki) then -- Equip Altdorf's Earring and Wilhelm's Earring When You Have 300 TP or Sekkanoki For Last Stand --
  391. equipSet = set_combine(equipSet,{ear1="Crematio Earring",ear2="Friomisi Earring"})
  392. end
  393. equip(equipSet)
  394. end
  395. end
  396. elseif spell.type == "JobAbility" then
  397. if sets.JA[spell.english] then
  398. equip(sets.JA[spell.english])
  399. if spell.english == "Snake Eye" then -- Auto Double-Up After You Use Snake Eye --
  400. send_command('@wait 1;input /ja Double-Up <me>')
  401. end
  402. end
  403. elseif spell.type == "CorsairRoll" or spell.english == "Double-Up" then
  404. equip(sets.Rolls)
  405. if spell.english == "Tactician's Roll" then
  406. equip({body="Chasseur's Frac +1"})
  407. elseif spell.english == "Caster's Roll" then
  408. equip({legs="Nvrch. Culottes +2"})
  409. elseif spell.english == "Courser's Roll" then
  410. equip({feet="Nvrch. Bottes +2"})
  411. end
  412. elseif spell.type == "CorsairShot" then
  413. equipSet = sets.QD
  414. if ACC_Shots:contains(spell.english) then
  415. equipSet = sets.QD.HighACC
  416. else
  417. if equipSet[AccArray[AccIndex]] then
  418. equipSet = equipSet[AccArray[AccIndex]]
  419. end
  420. if not ACC_Shots:contains(spell.english) and (world.day_element == spell.element or world.weather_element == spell.element) and sets.Obi[spell.element] and Obi == 'ON' then -- Use Obi Toggle To Unlock Elemental Obi --
  421. equipSet = set_combine(equipSet,sets.Obi[spell.element])
  422. end
  423. end
  424. equip(equipSet)
  425. elseif spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  426. if string.find(spell.english,'Utsusemi') then
  427. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  428. cancel_spell()
  429. add_to_chat(123, spell.name .. ' Canceled: [3+ Images]')
  430. return
  431. else
  432. equip(sets.Precast.FastCast)
  433. end
  434. else
  435. equip(sets.Precast.FastCast)
  436. end
  437. elseif spell.type == "Waltz" then
  438. equip(sets.Waltz)
  439. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  440. cast_delay(0.2)
  441. send_command('cancel Sneak')
  442. end
  443. end
  444.  
  445. function midcast(spell,action)
  446. if spell.english=='Ranged' then
  447. equipSet = sets.Midshot
  448. if equipSet[player.equipment.range] then
  449. equipSet = equipSet[player.equipment.range]
  450. end
  451. if equipSet[AccArray[AccIndex]] then
  452. equipSet = equipSet[AccArray[AccIndex]]
  453. end
  454. equip(equipSet)
  455. elseif spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  456. if string.find(spell.english,'Utsusemi') then
  457. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  458. send_command('@wait 1.7;cancel Copy Image*')
  459. end
  460. equip(sets.Midcast.Haste)
  461. elseif spell.english == 'Monomi: Ichi' then
  462. if buffactive['Sneak'] then
  463. send_command('@wait 1.7;cancel sneak')
  464. end
  465. equip(sets.Midcast.Haste)
  466. else
  467. equip(sets.Midcast.Haste)
  468. end
  469. end
  470. end
  471.  
  472. function aftercast(spell,action)
  473. if spell.english == 'Ranged' and autoRAmode==1 then
  474. autoRA()
  475. elseif spell.type == "WeaponSkill" and not spell.interrupted then
  476. send_command('wait 0.2;gs c TP')
  477. elseif spell.type == 'CorsairRoll' and not spell.interrupted then
  478. display_roll_info(spell)
  479. elseif spell.english == 'Light Shot' and not spell.interrupted then -- Sleep Countdown --
  480. send_command('wait 50;input /echo '..spell.name..' Effect: [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..' Effect: [OFF]')
  481. else
  482. status_change(player.status)
  483. end
  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 new == 'Engaged' then
  492. equipSet = sets.Melee
  493. if equipSet[AccArray[AccIndex]] then
  494. equipSet = equipSet[AccArray[AccIndex]]
  495. end
  496. equip(equipSet)
  497. elseif new == 'Idle' then
  498. equip(sets.Idle[IdleArray[IdleIndex]])
  499. elseif new == 'Resting' then
  500. equip(sets.Resting)
  501. end
  502. end
  503.  
  504. function buff_change(buff,gain)
  505. buff = string.lower(buff)
  506. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  507. if gain then
  508. 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.]')
  509. else
  510. send_command('timers delete "Aftermath: Lv.3"')
  511. add_to_chat(123,'AM3: [OFF]')
  512. end
  513. elseif buff == 'weakness' then -- Weakness Timer --
  514. if gain then
  515. send_command('timers create "Weakness" 300 up')
  516. else
  517. send_command('timers delete "Weakness"')
  518. end
  519. end
  520. if not midaction() then
  521. status_change(player.status)
  522. end
  523. end
  524.  
  525. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  526. function self_command(command)
  527. if command == 'C1' then -- Accuracy Level Toggle --
  528. AccIndex = (AccIndex % #AccArray) + 1
  529. status_change(player.status)
  530. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  531. elseif command == 'C5' then -- Auto Update Gear Toggle --
  532. status_change(player.status)
  533. add_to_chat(158,'Auto Update Gear')
  534. elseif command == 'C3' then -- Obi Toggle --
  535. if Obi == 'ON' then
  536. Obi = 'OFF'
  537. add_to_chat(123,'Obi: [OFF]')
  538. else
  539. Obi = 'ON'
  540. add_to_chat(158,'Obi: [ON]')
  541. end
  542. status_change(player.status)
  543. elseif command == 'C7' then -- PDT Toggle --
  544. if Armor == 'PDT' then
  545. Armor = 'None'
  546. add_to_chat(123,'PDT Set: [Unlocked]')
  547. else
  548. Armor = 'PDT'
  549. add_to_chat(158,'PDT Set: [Locked]')
  550. end
  551. status_change(player.status)
  552. elseif command == 'C15' then -- MDT Toggle --
  553. if Armor == 'MDT' then
  554. Armor = 'None'
  555. add_to_chat(123,'MDT Set: [Unlocked]')
  556. else
  557. Armor = 'MDT'
  558. add_to_chat(158,'MDT Set: [Locked]')
  559. end
  560. status_change(player.status)
  561. elseif command == 'C8' then -- Distance Toggle --
  562. if player.target.distance then
  563. target_distance = math.floor(player.target.distance*10)/10
  564. add_to_chat(158,'Distance: '..target_distance)
  565. else
  566. add_to_chat(123,'No Target Selected')
  567. end
  568. elseif command == 'C6' then -- Idle Toggle --
  569. IdleIndex = (IdleIndex % #IdleArray) + 1
  570. status_change(player.status)
  571. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  572. 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* --
  573. if autoRAmode == 0 then
  574. autoRAmode = 1
  575. add_to_chat(158,'AutoRA Mode: [ON]')
  576. else
  577. autoRAmode = 0
  578. add_to_chat(123,'AutoRA Mode: [OFF]')
  579. end
  580. elseif command == 'TP' then
  581. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  582. elseif command:match('^SC%d$') then
  583. send_command('//' .. sc_map[command])
  584. end
  585. end
  586.  
  587. function autoRA()
  588. send_command('@wait 2.7; input /ra <t>')
  589. end
  590.  
  591. function define_roll_values()
  592. rolls = {
  593. CorsairsRoll = {lucky=5, unlucky=9, bonus="Experience Points"},
  594. NinjaRoll = {lucky=4, unlucky=8, bonus="Evasion"},
  595. HuntersRoll = {lucky=4, unlucky=8, bonus="Accuracy"},
  596. ChaosRoll = {lucky=4, unlucky=8, bonus="Attack"},
  597. MagussRoll = {lucky=2, unlucky=6, bonus="Magic Defense"},
  598. HealersRoll = {lucky=3, unlucky=7, bonus="Cure Potency Received"},
  599. PuppetRoll = {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
  600. ChoralRoll = {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
  601. MonksRoll = {lucky=3, unlucky=7, bonus="Subtle Blow"},
  602. BeastRoll = {lucky=4, unlucky=8, bonus="Pet Attack"},
  603. SamuraiRoll = {lucky=2, unlucky=6, bonus="Store TP"},
  604. EvokersRoll = {lucky=5, unlucky=9, bonus="Refresh"},
  605. RoguesRoll = {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
  606. WarlocksRoll = {lucky=4, unlucky=8, bonus="Magic Accuracy"},
  607. FightersRoll = {lucky=5, unlucky=9, bonus="Double Attack Rate"},
  608. DrachenRoll = {lucky=3, unlucky=7, bonus="Pet Accuracy"},
  609. GallantsRoll = {lucky=3, unlucky=7, bonus="Defense"},
  610. WizardsRoll = {lucky=5, unlucky=9, bonus="Magic Attack"},
  611. DancersRoll = {lucky=3, unlucky=7, bonus="Regen"},
  612. ScholarsRoll = {lucky=2, unlucky=6, bonus="Conserve MP"},
  613. BoltersRoll = {lucky=3, unlucky=9, bonus="Movement Speed"},
  614. CastersRoll = {lucky=2, unlucky=7, bonus="Fast Cast"},
  615. CoursersRoll = {lucky=3, unlucky=9, bonus="Snapshot"},
  616. BlitzersRoll = {lucky=4, unlucky=9, bonus="Attack Delay"},
  617. TacticiansRoll = {lucky=5, unlucky=8, bonus="Regain"},
  618. AlliessRoll = {lucky=3, unlucky=10, bonus="Skillchain Damage"},
  619. MisersRoll = {lucky=5, unlucky=7, bonus="Save TP"},
  620. CompanionsRoll = {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
  621. AvengersRoll = {lucky=4, unlucky=8, bonus="Counter Rate"}
  622. }
  623. end
  624.  
  625. function display_roll_info(spell)
  626. rollinfo = rolls[(string.gsub((string.gsub(spell.english, "%'+", "")), "%s+", ""))]
  627. if rollinfo then
  628. add_to_chat(158, spell.english..' = '..rollinfo.bonus..'. Lucky Roll is '..
  629. tostring(rollinfo.lucky)..', Unlucky Roll is '..tostring(rollinfo.unlucky)..'.')
  630. end
  631. end
  632.  
  633. function select_default_macro_book()
  634. -- Default macro set/book
  635. if player.sub_job == 'SAM' then
  636. set_macro_page(1, 5)
  637. elseif player.sub_job == 'WHM' then
  638. set_macro_page(2, 5)
  639. elseif player.sub_job == 'DNC' then
  640. set_macro_page(3, 5)
  641. elseif player.sub_job == 'NIN' then
  642. set_macro_page(1, 5)
  643. elseif player.sub_job == 'RDM' then
  644. set_macro_page(8, 5)
  645. elseif player.sub_job == 'WAR' then
  646. set_macro_page(1, 5)
  647. elseif player.sub_job == 'DRG' then
  648. set_macro_page(10, 5)
  649. else
  650. set_macro_page(1, 5)
  651. end
  652. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement