Advertisement
Guest User

Untitled

a guest
May 27th, 2015
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.30 KB | None | 0 0
  1. include('organizer-lib.lua')
  2. function get_sets()
  3. AccIndex = 1
  4. AccArray = {"NormalACC","LowACC","MidACC","HighACC"} -- 4 Levels Of Accuracy Sets For TP/WS/Hybrid. Default ACC Set Is NormalACC. The First TP Set Of Your Main Weapon Is NormalACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
  5. IdleIndex = 1
  6. IdleArray = {"Movement","Regen","Refresh"} -- Default Idle Set Is Movement --
  7. Armor = 'None'
  8. CapacityMantle = 'None'
  9. RRMode = 'None'
  10. WarpRing= 'None'
  11. target_distance = 6 -- Set Default Distance Here --
  12.  
  13. Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  14. Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation --
  15. select_default_macro_book() -- Change Default Macro Book At The End --
  16.  
  17. sc_map = {SC1="ChantduCygne", SC2="Expiacion"} -- 2 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  18.  
  19. send_command('bind End input /ma "Sudden Lunge" <t>')
  20. send_command('bind PageDown input /ma "Whirl of Rage" <t>')
  21. send_command('bind PageUp input /ma "Subduction" <t>')
  22. function file_unload()
  23.  
  24. send_command('unbind End')
  25. send_command('unbind PageDown')
  26. send_command('unbind PageUp')
  27.  
  28. end
  29.  
  30. PhysicalBlueMagic = S{
  31. 'Asuran Claws','Bludgeon','Body Slam','Feather Storm','Mandibular Bite',
  32. 'Queasyshroom','Power Attack','Ram Charge','Screwdriver','Sickle Slash',
  33. 'Smite of Rage','Spinal Cleave','Spiral Spin','Terror Touch'}
  34.  
  35. PhysicalBlueMagic_STR = S{
  36. 'Battle Dance','Bloodrake','Death Scissors','Dimensional Death','Empty Thrash',
  37. 'Heavy Strike','Quadrastrike','Uppercut','Sinker Drill','Tourbillion','Vertical Cleave',
  38. 'Whirl of Rage','Thrashing Assault'}
  39.  
  40. PhysicalBlueMagic_DEX = S{
  41. 'Amorphic Spikes','Barbed Crescent','Claw Cyclone','Disseverment','Foot Kick',
  42. 'Frenetic Rip','Goblin Rush','Hysteric Barrage','Paralyzing Triad','Seedspray',
  43. 'Vanity Dive'}
  44.  
  45. PhysicalBlueMagic_VIT = S{
  46. 'Cannonball','Delta Thrust','Glutinous Dart','Grand Slam','Quad. Continuum',
  47. 'Sprout Smack'}
  48.  
  49. PhysicalBlueMagic_AGI = S{
  50. 'Benthic Typhoon','Helldive','Hydro Shot','Jet Stream','Pinecone Bomb',
  51. 'Wild Oats'}
  52.  
  53. MagicalBlueMagic = S{
  54. 'Acrid Stream','Dark Orb','Diffusion Ray','Droning Whirlwind','Embalming Earth','Evryone. Grudge',
  55. 'Firespit','Foul Waters','Gates of Hades','Leafstorm','Magic Hammer',
  56. 'Regurgitation','Rending Deluge','Retinal Glare','Subduction','Tem. Upheaval','Thermal Pulse','Water Bomb'}
  57.  
  58. BlueMagic_Accuracy = S{
  59. '1000 Needles','Absolute Terror','Atra. Libations','Auroral Drape','Awful Eye',
  60. 'Blistering Roar','Blood Drain','Blood Saber','Chaotic Eye',
  61. 'Cimicine Discharge','Cold Wave','Cursed Sphere','Digest','Corrosive Ooze','Demoralizing Roar',
  62. 'Enervation','Feather Tickle','Filamented Hold','Frightful Roar',
  63. 'Geist Wall','Hecatomb Wave','Infrasonics','Jettatura','Light of Penance','Lowing',
  64. 'Mind Blast','Mortal Ray','MP Drainkiss','Osmosis','Reaving Wind','Sandspin',
  65. 'Sandspray','Soporific','Sound Blast','Stinking Gas','Sub-zero Smash',
  66. 'Sweeping Gouge','Triumphant Roar','Venom Shell','Voracious Trunk','Yawn'}
  67.  
  68. BlueMagic_Breath = S{
  69. 'Bad Breath','Flying Hip Press','Final Sting','Frost Breath','Heat Breath',
  70. 'Magnetite Cloud','Poison Breath','Radiant Breath','Self Destruct','Thunder Breath',
  71. 'Wind Breath'}
  72.  
  73. BlueMagic_Buff = S{
  74. 'Animating Wail','Barrier Tusk','Battery Charge','Carcharian Verve','Cocoon','Diamondhide','Erratic Flutter','Metallic Body','Magic Barrier',
  75. "Occultation",'Orcish Counterstance','Nat. Meditation','Plasma Charge',
  76. 'Pyric Bulwark','Reactor Cool','Winds of Promy.'}
  77.  
  78. BlueMagic_Diffusion = S{
  79. 'Amplification','Cocoon','Exuviation','Feather Barrier','Harden Shell','Memento Mori',
  80. 'Metallic Body','Plasma Charge','Reactor Cool','Refueling','Saline Coat','Warm-Up',
  81. 'Zephyr Mantle'}
  82.  
  83. BlueMagic_Healing = S{
  84. 'Healing Breeze','Magic Fruit','Plenilune Embrace','Pollen','White Wind',
  85. 'Wild Carrot'}
  86.  
  87. BlueMagic_Stun = S{
  88. 'Blitzstrahl','Frypan','Head Butt','Tail slap','Temporal Shift',
  89. 'Thunderbolt','Whirl of Rage'}
  90.  
  91. BlueMagic_Unbridled = S{
  92. 'Absolute Terror','Bilgestorm','Blistering Roar','Bloodrake','Carcharian Verve',
  93. 'Droning Whirlwind','Gates of Hades','Harden Shell','Pyric Bulwark','Thunderbolt',
  94. 'Tourbillion'}
  95.  
  96. -- Misc items for Organizer addon --
  97. sets.Misc = {
  98. main="Buramenk'ah",
  99. sub="Eminent Scimitar",
  100. head="Uk'uxkaj Cap"}
  101.  
  102. -- Idle/Town Sets --
  103. sets.Idle = {}
  104. sets.Idle.Regen = {main="Bolelabunga",
  105. sub="Genbu's Shield",
  106. ammo="Iron Gobbet",
  107. neck="Twilight Torque",
  108. ear1="Moonshade Earring",
  109. ear2="Magnetic Earring",
  110. body="Respite Cloak",
  111. hands="Serpentes Cuffs",
  112. ring1="Rajas Ring",
  113. ring2="Epona's Ring",
  114. back="Cornflower Cape",
  115. waist="Flume Belt",
  116. legs="Blood Cuisses",
  117. back="Kumbira Cape",
  118. feet="Serpentes Sabots"}
  119.  
  120. sets.PDT = {main="Claidheamh Soluis",
  121. sub="Eminent Scimitar",
  122. ammo="Ginsen",
  123. head="Iuitl Headgear +1",
  124. neck="Twilight Torque",
  125. ear1="Heartseeker Earring",
  126. ear2="Dudgeon Earring",
  127. body="Iuitl Vest",
  128. hands="Iuitl Wristbands", {arti help me}
  129. ring1="Dark Ring",
  130. ring2="Patricius Ring",
  131. back="Mollusca Mantle",
  132. waist="Flume Belt",
  133. legs="Iuitl Tights +1",
  134. feet="Iuitl Gaiters +1"}
  135.  
  136. sets.Idle.Movement = set_combine(sets.Idle.Regen,{})
  137. sets.Idle.Refresh = set_combine(sets.Idle.Regen,{})
  138. sets.Resting = set_combine(sets.Idle.Regen)
  139.  
  140. -- Tizona (AM3 Down) TP Sets --
  141. sets.TP = {main="Claidheamh Soluis",
  142. sub="Eminent Scimitar",
  143. ammo="Ginsen",
  144. head="Uk'uxkaj Cap",
  145. neck="Asperity Necklace",
  146. ear1="Heartseeker Earring",
  147. ear2="Dudgeon Earring",
  148. body="Thaumas Coat",
  149. hands="Taeon Gloves",
  150. ring1="Epona's Ring",
  151. ring2="Rajas Ring",
  152. back="Atheling Mantle",
  153. waist="Windbuffet Belt",
  154. legs="Taeon Tights",
  155. feet={ name="Taeon Boots", augments={'"Dual Wield"+3'}}}
  156.  
  157. -- WS Base Set --
  158. sets.WS = {}
  159.  
  160. -- WS Sets --
  161. sets.WS["Chant du Cygne"] = {
  162. ammo="Ginsen",
  163. head="Uk'uxkaj Cap",
  164. neck="Asperity Necklace",
  165. ear1="Steelflash Earring",
  166. ear2="Bladeborn Earring",
  167. body="Agony Jerkin",
  168. hands="Assimilator's Bazubands +1",
  169. ring1="Epona's Ring",
  170. ring2="Rajas Ring",
  171. back="Atheling Mantle",
  172. waist="Wanion Belt",
  173. legs="Manibozho Brais",
  174. ammo="Cheruski Needle",
  175. feet={ name="Taeon Boots", augments={'Dual Wield +3'}}}
  176.  
  177. sets.WS.Requiescat = {
  178. ammo="Ginsen",
  179. head="Whirlpool Mask",
  180. neck="Asperity Necklace",
  181. ear1="Steelflash Earring",
  182. ear2="Bladeborn Earring",
  183. body="Agony Jerkin",
  184. hands="Taeon Gloves",
  185. ring1="Epona's Ring",
  186. ring2="Leviathan Ring",
  187. back="Atheling Mantle",
  188. waist="Shadow Belt",
  189. legs="Quiahuiz Trousers",
  190. feet="Hashishin Basmak +1"}
  191.  
  192. sets.WS.Expiacion = {
  193. ammo="Ginsen",
  194. head="Uk'uxkaj Cap",
  195. neck="Asperity Necklace",
  196. ear1="Steelflash Earring",
  197. ear2="Bladeborn Earring",
  198. body="Agony Jerkin",
  199. hands="Taeon Gloves",
  200. ring1="Epona's Ring",
  201. ring2="Rajas Ring",
  202. back="Atheling Mantle",
  203. waist="Wanion Belt",
  204. legs="Taeon Tights",
  205. feet={ name="Taeon Boots", augments={'Dual Wield +3'}}}
  206.  
  207. sets.WS["Savage Blade"] = {
  208. ammo="Ginsen",
  209. head="Uk'uxkaj Cap",
  210. neck="Asperity Necklace",
  211. ear1="Steelflash Earring",
  212. ear2="Bladeborn Earring",
  213. body="Agony Jerkin",
  214. hands="Assimilator's Bazubands +1",
  215. ring1="Epona's Ring",
  216. ring2="Rajas Ring",
  217. back="Atheling Mantle",
  218. waist="Prosilio Belt",
  219. legs="Taeon Tights",
  220. feet={ name="Taeon Boots", augments={'Dual Wield +3'}}}
  221.  
  222. sets.WS["Sanguine Blade"] = {
  223. ammo="Erlene's Notebook",
  224. head="Hagondes Hat +1",
  225. neck="Eddy Necklace",
  226. ear1="Hecate's Earring",
  227. ear2="Strophadic Earring",
  228. body="Hagondes Coat +1",
  229. hands="Taeon Gloves",
  230. ring1="Shiva Ring",
  231. ring2="Strendu Ring",
  232. back="Cornflower Cape",
  233. waist="Aswang Sash",
  234. legs="Hagondes Pants +1",
  235. feet="Hashishin Basmak +1"}
  236.  
  237. sets.WS.Realmrazer = {
  238. ammo="Ginsen",
  239. head="Whirlpool Mask",
  240. neck="Asperity Necklace",
  241. ear1="Steelflash Earring",
  242. ear2="Bladeborn Earring",
  243. body="Agony Jerkin",
  244. hands="Taeon Gloves",
  245. ring1="Epona's Ring",
  246. ring2="Leviathan Ring",
  247. back="Atheling Mantle",
  248. waist="Shadow Belt",
  249. legs="Quiahuiz Trousers",
  250. feet="Hashishin Basmak +1"}
  251.  
  252. sets.WS["Flash Nova"] = {
  253. ammo="Erlene's Notebook",
  254. head="Hagondes Hat +1",
  255. neck="Eddy Necklace",
  256. ear1="Hecate's Earring",
  257. ear2="Strophadic Earring",
  258. body="Hagondes Coat +1",
  259. hands="Taeon Gloves",
  260. ring1="Shiva Ring",
  261. ring2="Strendu Ring",
  262. back="Cornflower Cape",
  263. waist="Aswang Sash",
  264. legs="Hagondes Pants +1",
  265. feet="Hashishin Basmak +1"}
  266.  
  267. -- JA Sets --
  268. sets.JA = {}
  269. sets.JA['Azure Lore'] = {hands="Mirage Bazubands +2"}
  270.  
  271. -- Waltz Set --
  272. sets.Waltz = {}
  273.  
  274. sets.Precast = {}
  275. -- Fastcast Set --
  276. sets.Precast.FastCast = {
  277. ammo="Impatiens",
  278. head="Haruspex Hat",
  279. neck="Orunmila's Torque",
  280. ear1="Loquac. Earring",
  281. body="Hashishin Mintan",
  282. hands="Thaumas Gloves",
  283. back="Swith Cape",
  284. legs="Blood Cuisses",
  285. feet="Chelona Boots"}
  286.  
  287. -- Precast Enhancing Magic --
  288. sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{})
  289.  
  290. -- Precast Blue Magic Magic --
  291. sets.Precast['Blue Magic'] = set_combine(sets.Precast.FastCast,{body="Hashishin Mintan"})
  292.  
  293. -- Midcast Base Set --
  294. sets.Midcast = {
  295. ammo="Impatiens",
  296. head="Haruspex Hat",
  297. neck="Orunmila's Torque",
  298. ear1="Loquac. Earring",
  299. body="Mavi Mintan +2",
  300. hands="Thaumas Gloves",
  301. back="Swith Cape",
  302. legs="Blood Cuisses",
  303. feet="Chelona Boots"}
  304.  
  305. -- Magic Haste Set --
  306. sets.Midcast.Haste = set_combine(sets.Midcast,{})
  307.  
  308. -- Enhancing Magic Base Set --
  309. sets.Midcast['Enhancing Magic'] = {}
  310.  
  311. -- Stoneskin Set --
  312. sets.Midcast.Stoneskin = set_combine(sets.Midcast['Enhancing Magic'],{})
  313.  
  314. -- For Cure Spells & The Listed Healing Blue Magic --
  315. sets.Midcast.Cure = {
  316. ammo="Impatiens",
  317. head="Uk'uxkaj Cap",
  318. neck="Twilight Torque",
  319. ear1="Loquac. Earring",
  320. ear2="Lifestorm Earring",
  321. body="Hagondes Coat +1",
  322. hands="Hagondes Cuffs +1",
  323. ring1="Levia. Ring",
  324. ring2="Levia. Ring",
  325. back="Pahtli Cape",
  326. waist="Pythia Sash +1",
  327. legs="Hagondes Pants +1",
  328. feet="Hashishin Basmak +1"}
  329.  
  330. -- For The Listed Physical Type Blue Magic --
  331. sets.Midcast.PhysicalBlueMagic = {main="Claidheamh Soluis",
  332. sub="Eminent Scimitar",
  333. ammo="Cheruski Needle",
  334. head="Uk'uxkaj Cap",
  335. neck="Ire Torque",
  336. ear1="Flame Pearl}",
  337. ear2="Flame Pearl",
  338. body="Assimilator's Jubbah +1",
  339. hands="Taeon Gloves",
  340. ring1="Rajas Ring",
  341. ring2="Ifrit Ring",
  342. back="Cornflower Cape",
  343. waist="Wanion Belt",
  344. legs="Hashishin Tayt +1",
  345. feet={ name="Taeon Boots", augments={'Dual Wield +3'}}}
  346.  
  347. -- Blue Magic STR Set --
  348. sets.Midcast.PhysicalBlueMagic_STR = set_combine(sets.Midcast.PhysicalBlueMagic,{})
  349.  
  350. -- Blue Magic STR/DEX Set --
  351. sets.Midcast.PhysicalBlueMagic_DEX = set_combine(sets.Midcast.PhysicalBlueMagic,{})
  352.  
  353. -- Blue Magic STR/VIT Set --
  354. sets.Midcast.PhysicalBlueMagic_VIT = set_combine(sets.Midcast.PhysicalBlueMagic,{})
  355.  
  356. -- Blue Magic STR/AGI Set --
  357. sets.Midcast.PhysicalBlueMagic_AGI = set_combine(sets.Midcast.PhysicalBlueMagic,{})
  358.  
  359. -- For The Listed Magical Type Blue Magic --
  360. sets.Midcast.MagicalBlueMagic = {main="Gabaxorea",
  361. sub="Bolelabunga",
  362. ammo="Erlene's Notebook",
  363. head="Hagondes Hat +1",
  364. neck="Eddy Necklace",
  365. ear1="Hecate's Earring",
  366. ear2="Strophadic Earring",
  367. body="Hagondes Coat +1",
  368. hands="Helios Gloves",
  369. back="Cornflower Cape",
  370. ring1="Shiva Ring",
  371. ring2="Shiva Ring",
  372. waist="Aswang Sash",
  373. legs="Hagondes Pants +1",
  374. feet="Hashishin basmak +1"}
  375.  
  376. -- Magic Accuracy For The Listed Blue Magic --
  377. sets.Midcast.BlueMagic_Accuracy = {main="Gabaxorea",
  378. sub="Bolelabunga",
  379. ammo="Erlene's Notebook",
  380. head="Hagondes Hat +1",
  381. neck="Eddy Necklace",
  382. ear1="Hecate's Earring",
  383. ear2="Strophadic Earring",
  384. body="Hagondes Coat +1",
  385. hands="Helios Gloves",
  386. back="Cornflower Cape",
  387. waist="Aswang Sash",
  388. legs="Hagondes Pants +1",
  389. feet="Hashishin Baskmak +1"}
  390.  
  391. -- Stun Set For The Listed Blue Magic --
  392. sets.Midcast.BlueMagic_Stun = set_combine(sets.Midcast.BlueMagic_Accuracy,{
  393. waist="Hurch'lan Sash"})
  394.  
  395. -- Buff Set For The Listed Blue Magic --
  396. sets.Midcast.BlueMagic_Buff = {
  397. ammo="Mavi Tathlum",
  398. head="Luh. Keffiyeh +1",
  399. neck="Mavi Scarf",
  400. body="Assimilator's Jubbah +1",
  401. back="Cornflower Cape",
  402. legs="Hashishin Tayt +1",
  403. feet="Luhlaza Charuqs +1"}
  404.  
  405. -- Breath Set For The Listed Blue Magic --
  406. sets.Midcast.BlueMagic_Breath = {}
  407.  
  408. -- BlueMagic Base Set For Any Non Listed Blue Magic --
  409. sets.Midcast['Blue Magic'] = set_combine(sets.Midcast,{
  410. ammo="Cheruski Needle",
  411. head="Uk'uxkaj Cap",
  412. neck="Ire Torque",
  413. ear1="Flame Pearl",
  414. ear2="Flame Pearl",
  415. body="Assimilator's Jubbah +1",
  416. hands="Taeon Gloves",
  417. ring1="Rajas Ring",
  418. ring2="Ifrit Ring",
  419. back="Cornflower Cape",
  420. waist="Wanion Belt",
  421. legs="Hashishin Tayt +1",
  422. feet={ name="Taeon Boots", augments={'Dual Wield +3'}}} )
  423.  
  424. -- Charged Whisker --
  425. sets.Midcast['Charged Whisker'] = set_combine(sets.Midcast.MagicalBlueMagic,{})
  426.  
  427. sets.CapacityMantle = {back="Mecisto. Mantle"}
  428. sets.Reraise = {head="Reraise Hairpin",ear1="Reraise Earring"}
  429. sets.WarpRing = {ring1="Warp Ring"}
  430. end
  431.  
  432. function pretarget(spell,action)
  433. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  434. cancel_spell()
  435. send_command('input /item "Echo Drops" <me>')
  436. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  437. cancel_spell()
  438. send_command('Aggressor')
  439. elseif BlueMagic_Unbridled:contains(spell.english) and not buffactive['Unbridled Learning'] then
  440. if windower.ffxi.get_ability_recasts()[81] < 1 and not buffactive.amnesia and not buffactive.charm then -- Auto Use Unbridled Learning When You Cast One of The Unbridled Spells.
  441. cancel_spell()
  442. send_command('input /ja "Unbridled Learning" <me>;wait 1.5;input /ma "'..spell.english..'" '..spell.target.name)
  443. end
  444. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  445. degrade_spell(spell,Cure_Spells)
  446. elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
  447. degrade_spell(spell,Curaga_Spells)
  448. elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  449. cancel_spell()
  450. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  451. return
  452. end
  453. end
  454.  
  455. function precast(spell,action)
  456. if spell.type == "WeaponSkill" then
  457. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  458. cancel_spell()
  459. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  460. return
  461. elseif spell.type == "WeaponSkill" and player.tp < 1000 then -- Cancel Weapon Skills If TP Is Under 1000 --
  462. cancel_spell()
  463. add_to_chat(123,'Unable To Use WeaponSkill: [Not enough TP]')
  464. return
  465. else
  466. equipSet = sets.WS
  467. if equipSet[spell.english] then
  468. equipSet = equipSet[spell.english]
  469. end
  470. if equipSet[AccArray[AccIndex]] then
  471. equipSet = equipSet[AccArray[AccIndex]]
  472. end
  473. if spell.english == "Chant du Cygne" and player.tp > 2999 then
  474. equipSet = set_combine(equipSet,{ear1="Jupiter's Pearl"})
  475. end
  476. equip(equipSet)
  477. end
  478. elseif spell.type == "JobAbility" then
  479. if sets.JA[spell.english] then
  480. equip(sets.JA[spell.english])
  481. end
  482. elseif spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  483. if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  484. cancel_spell()
  485. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  486. return
  487. else
  488. if string.find(spell.english,'Utsusemi') then
  489. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  490. cancel_spell()
  491. add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
  492. return
  493. else
  494. equip(sets.Precast.Utsusemi)
  495. end
  496. elseif sets.Precast[spell.skill] then
  497. equip(sets.Precast[spell.skill])
  498. else
  499. equip(sets.Precast.FastCast)
  500. end
  501. end
  502. elseif spell.type == "Waltz" then
  503. equip(sets.Waltz)
  504. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  505. cast_delay(0.2)
  506. send_command('cancel Sneak')
  507. end
  508. if CapacityMantle == 'CapacityMantle' then
  509. equip(sets.CapacityMantle)
  510. end
  511. if RRMode == 'RRMode' then
  512. equip(sets.Reraise)
  513. end
  514. if WarpRing == 'WarpRing' then
  515. equip(sets.WarpRing)
  516. end
  517. end
  518.  
  519. function midcast(spell,action)
  520. equipSet = {}
  521. if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  522. equipSet = sets.Midcast
  523. if equipSet[spell.english] then
  524. equipSet = equipSet[spell.english]
  525. elseif (string.find(spell.english,'Cur') or BlueMagic_Healing:contains(spell.english)) and spell.english ~= "Cursna" then
  526. if string.find(spell.english,'Cure') or BlueMagic_Healing:contains(spell.english) then
  527. equipSet = equipSet.Cure
  528. elseif string.find(spell.english,'Cura') then
  529. equipSet = equipSet.Curaga
  530. end
  531. if world.day_element == spell.element or world.weather_element == spell.element then
  532. equipSet = set_combine(equipSet,{back="Twilight Cape",waist='Korin Obi'})
  533. end
  534. elseif PhysicalBlueMagic:contains(spell.english) or PhysicalBlueMagic_STR:contains(spell.english) or PhysicalBlueMagic_DEX:contains(spell.english) or PhysicalBlueMagic_VIT:contains(spell.english) or PhysicalBlueMagic_AGI:contains(spell.english) then
  535. if PhysicalBlueMagic_STR:contains(spell.english) then
  536. equipSet = equipSet.PhysicalBlueMagic_STR
  537. elseif PhysicalBlueMagic_DEX:contains(spell.english) then
  538. equipSet = equipSet.PhysicalBlueMagic_DEX
  539. elseif PhysicalBlueMagic_VIT:contains(spell.english) then
  540. equipSet = equipSet.PhysicalBlueMagic_VIT
  541. elseif PhysicalBlueMagic_AGI:contains(spell.english) then
  542. equipSet = equipSet.PhysicalBlueMagic_AGI
  543. elseif PhysicalBlueMagic:contains(spell.english) then
  544. equipSet = equipSet.PhysicalBlueMagic
  545. end
  546. if buffactive['Chain Affinity'] then
  547. equipSet = set_combine(equipSet,{head="Hashishin Kavuk",feet="Assimilator's Charuqs +1"})
  548. end
  549. if buffactive.Efflux then
  550. equipSet = set_combine(equipSet,{legs="Hashishin Tayt +1"})
  551. end
  552. elseif MagicalBlueMagic:contains(spell.english) or spell.english == "Charged Whisker" then
  553. if MagicalBlueMagic:contains(spell.english) then
  554. equipSet = equipSet.MagicalBlueMagic
  555. elseif spell.english == "Charged Whisker" then
  556. equipSet = equipSet[spell.name]
  557. end
  558. if buffactive['Chain Affinity'] then
  559. equipSet = set_combine(equipSet,{head="Hashishin Kavuk",feet="Assimilator's Charuqs +1"})
  560. end
  561. if buffactive['Burst Affinity'] then
  562. equipSet = set_combine(equipSet,{feet="Hashishin Basmak +1",legs="Assimilator's Shalwar +1"})
  563. end
  564. if buffactive.Convergence then
  565. equipSet = set_combine(equipSet,{head="Luh. Keffiyeh +1"})
  566. end
  567. elseif BlueMagic_Accuracy:contains(spell.english) then
  568. equipSet = equipSet.BlueMagic_Accuracy
  569. elseif BlueMagic_Stun:contains(spell.english) then
  570. equipSet = equipSet.BlueMagic_Stun
  571. elseif BlueMagic_Buff:contains(spell.english) then
  572. equipSet = equipSet.BlueMagic_Buff
  573. elseif BlueMagic_Diffusion:contains(spell.english) and buffactive.Diffusion then
  574. equipSet = set_combine(equipSet,{feet="Luhlaza Charuqs +1"})
  575. elseif BlueMagic_Breath:contains(spell.english) then
  576. equipSet = equipSet.BlueMagic_Breath
  577. elseif spell.english == "Stoneskin" then
  578. if buffactive.Stoneskin then
  579. send_command('@wait 2.8;cancel stoneskin')
  580. end
  581. equipSet = equipSet.Stoneskin
  582. elseif spell.english == "Sneak" then
  583. if spell.target.name == player.name and buffactive['Sneak'] then
  584. send_command('cancel sneak')
  585. end
  586. equipSet = equipSet.Haste
  587. elseif string.find(spell.english,'Utsusemi') then
  588. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  589. send_command('@wait 1.7;cancel Copy Image*')
  590. end
  591. equipSet = equipSet.Haste
  592. elseif spell.english == 'Monomi: Ichi' then
  593. if buffactive['Sneak'] then
  594. send_command('@wait 1.7;cancel sneak')
  595. end
  596. equipSet = equipSet.Haste
  597. elseif equipSet[spell.skill] then
  598. equipSet = equipSet[spell.skill]
  599. end
  600. elseif equipSet[spell.english] then
  601. equipSet = equipSet[spell.english]
  602. end
  603. equip(equipSet)
  604. end
  605.  
  606. function aftercast(spell,action)
  607. if spell.type == "WeaponSkill" and not spell.interrupted then
  608. send_command('wait 0.2;gs c TP')
  609. end
  610. status_change(player.status)
  611. end
  612.  
  613. function status_change(new,old)
  614. if Armor == 'PDT' then
  615. equip(sets.PDT)
  616. elseif Armor == 'MDT' then
  617. equip(sets.MDT)
  618. elseif new == 'Engaged' then
  619. equipSet = sets.TP
  620. if Armor == 'Hybrid' and equipSet["Hybrid"] then
  621. equipSet = equipSet["Hybrid"]
  622. end
  623. if equipSet[AccArray[AccIndex]] then
  624. equipSet = equipSet[AccArray[AccIndex]]
  625. end
  626. if buffactive["Aftermath: Lv.3"] and equipSet["AM3"] then
  627. equipSet = equipSet["AM3"]
  628. end
  629. if buffactive.March == 1 and (buffactive.Embrava or buffactive.Haste) and equipSet["HighHaste"] then
  630. equipSet = equipSet["HighHaste"]
  631. end
  632. if buffactive.March == 2 and (buffactive.Embrava or buffactive.Haste) and equipSet["HighHaste"] then
  633. equipSet = equipSet["HighHaste"]
  634. end
  635. equip(equipSet)
  636. elseif new == 'Idle' then
  637. equip(sets.Idle[IdleArray[IdleIndex]])
  638. elseif new == 'Resting' then
  639. equip(sets.Resting)
  640. end
  641. if CapacityMantle == 'CapacityMantle' then
  642. equip(sets.CapacityMantle)
  643. end
  644. if RRMode == 'RRMode' then
  645. equip(sets.Reraise)
  646. end
  647. if WarpRing == 'WarpRing' then
  648. equip(sets.WarpRing)
  649. end
  650. end
  651.  
  652. function buff_change(buff,gain)
  653. buff = string.lower(buff)
  654. if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  655. if gain then
  656. 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.]')
  657. else
  658. send_command('timers delete "Aftermath: Lv.3"')
  659. add_to_chat(123,'AM3: [OFF]')
  660. end
  661. elseif buff == 'weakness' then -- Weakness Timer --
  662. if gain then
  663. send_command('timers create "Weakness" 300 up')
  664. else
  665. send_command('timers delete "Weakness"')
  666. end
  667. end
  668. if not midaction() then
  669. status_change(player.status)
  670. end
  671. end
  672.  
  673. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  674. function self_command(command)
  675. if command == 'C1' then -- Accuracy Level Toggle --
  676. AccIndex = (AccIndex % #AccArray) + 1
  677. add_to_chat(158,'Accuracy Level: ' .. AccArray[AccIndex])
  678. status_change(player.status)
  679. elseif command == 'C5' then -- Auto Update Gear Toggle --
  680. status_change(player.status)
  681. add_to_chat(158,'Auto Update Gear')
  682. elseif command == 'C2' then -- Hybrid Toggle --
  683. if Armor == 'Hybrid' then
  684. Armor = 'None'
  685. add_to_chat(123,'Hybrid Set: [Unlocked]')
  686. else
  687. Armor = 'Hybrid'
  688. add_to_chat(158,'Hybrid Set: '..AccArray[AccIndex])
  689. end
  690. status_change(player.status)
  691. elseif command == 'C7' then -- PDT Toggle --
  692. if Armor == 'PDT' then
  693. Armor = 'None'
  694. add_to_chat(123,'PDT Set: [Unlocked]')
  695. else
  696. Armor = 'PDT'
  697. add_to_chat(158,'PDT Set: [Locked]')
  698. end
  699. status_change(player.status)
  700. elseif command == 'C15' then -- MDT Toggle --
  701. if Armor == 'MDT' then
  702. Armor = 'None'
  703. add_to_chat(123,'MDT Set: [Unlocked]')
  704. else
  705. Armor = 'MDT'
  706. add_to_chat(158,'MDT Set: [Locked]')
  707. end
  708. status_change(player.status)
  709. elseif command == 'C13' then -- Capacity Mantle Toggle --
  710. if CapacityMantle == 'CapacityMantle' then
  711. CapacityMantle = 'None'
  712. add_to_chat(123,'Capacity Mantle Set: [Unlocked]')
  713. else
  714. CapacityMantle = 'CapacityMantle'
  715. add_to_chat(158,'Capacity Mantle Set: [locked]')
  716. end
  717. status_change(player.status)
  718. elseif command == 'C4' then -- Reraise Toggle --
  719. if RRMode == 'RRMode' then
  720. RRMode = 'None'
  721. add_to_chat(123,'Reraise Set: [Unlocked]')
  722. else
  723. RRMode = 'RRMode'
  724. add_to_chat(158,'Reraise Set: [locked]')
  725. end
  726. status_change(player.status)
  727. elseif command == 'C14' then -- Warp Ring Toggle --
  728. if WarpRing == 'WarpRing' then
  729. WarpRing = 'None'
  730. add_to_chat(123,'Warp Ring : [Unlocked]')
  731. else
  732. WarpRing = 'WarpRing'
  733. add_to_chat(158,'Warp Ring : [locked]')
  734. end
  735. status_change(player.status)
  736. elseif command == 'C8' then -- Distance Toggle --
  737. if player.target.distance then
  738. target_distance = math.floor(player.target.distance*10)/10
  739. add_to_chat(158,'Distance: '..target_distance)
  740. else
  741. add_to_chat(123,'No Target Selected')
  742. end
  743. elseif command == 'C6' then -- Idle Toggle --
  744. IdleIndex = (IdleIndex % #IdleArray) + 1
  745. add_to_chat(158,'Idle Set: ' .. IdleArray[IdleIndex])
  746. status_change(player.status)
  747. elseif command == 'TP' then
  748. add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
  749. elseif command:match('^SC%d$') then
  750. send_command('//' .. sc_map[command])
  751. end
  752. end
  753.  
  754. function actualCost(originalCost)
  755. if buffactive["Penury"] then
  756. return originalCost*.5
  757. elseif buffactive["Light Arts"] then
  758. return originalCost*.9
  759. else
  760. return originalCost
  761. end
  762. end
  763.  
  764. function degrade_spell(spell,degrade_array)
  765. spell_index = table.find(degrade_array,spell.name)
  766. if spell_index > 1 then
  767. new_spell = degrade_array[spell_index - 1]
  768. change_spell(new_spell,spell.target.raw)
  769. add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  770. end
  771. end
  772.  
  773. function change_spell(spell_name,target)
  774. cancel_spell()
  775. send_command('//'..spell_name..' '..target)
  776. end
  777.  
  778. function sub_job_change(newSubjob, oldSubjob)
  779. select_default_macro_book()
  780. end
  781.  
  782. function set_macro_page(set,book)
  783. if not tonumber(set) then
  784. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  785. return
  786. end
  787. if set < 1 or set > 10 then
  788. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  789. return
  790. end
  791.  
  792. if book then
  793. if not tonumber(book) then
  794. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  795. return
  796. end
  797. if book < 1 or book > 20 then
  798. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  799. return
  800. end
  801. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  802. else
  803. send_command('@input /macro set '..tostring(set))
  804. end
  805. end
  806.  
  807. function select_default_macro_book()
  808. -- Default macro set/book
  809. if player.sub_job == 'WAR' then
  810. set_macro_page(1, 3)
  811. elseif player.sub_job == 'RDM' then
  812. set_macro_page(1, 3)
  813. elseif player.sub_job == 'WHM' then
  814. set_macro_page(1, 3)
  815. elseif player.sub_job == 'NIN' then
  816. set_macro_page(1, 3)
  817. elseif player.sub_job == 'DNC' then
  818. set_macro_page(1, 3)
  819. elseif player.sub_job == 'BLM' then
  820. set_macro_page(1, 3)
  821. else
  822. set_macro_page(1, 3)
  823. end
  824. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement