Guest User

Untitled

a guest
Jun 16th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.88 KB | None | 0 0
  1. function get_sets()
  2. include('organizer-lib')
  3. IdleIndex = 1
  4. IdleArray = {"Refresh","Pet","Town"} -- Default Idle Set Is Movement --
  5. Armor = 'None'
  6. define_geomancy_values()
  7. Obi = 'ON' -- Turn Default Obi ON or OFF Here --
  8. target_distance = 5 -- Set Default Distance Here --
  9.  
  10. Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  11. Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation --
  12. sc_map = {SC1 = "GeoTorpor", SC2 = "GeoLanguor", SC3 = "IndiFocus"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  13.  
  14. Non_Obi_Spells = S{
  15. 'Burn','Choke','Drown','Frost','Rasp','Shock','Impact','Anemohelix','Cryohelix',
  16. 'Geohelix','Hydrohelix','Ionohelix','Luminohelix','Noctohelix','Pyrohelix'}
  17.  
  18. Cities = S{
  19. "Ru'lude Gardens","Upper Jeuno","Lower Jeuno","Port Jeuno",
  20. "Port Windurst","Windurst Waters","Windurst Woods","Windurst Walls","Heavens Tower",
  21. "Port San d'Oria","Northern San d'Oria","Southern San d'Oria",
  22. "Port Bastok","Bastok Markets","Bastok Mines","Metalworks",
  23. "Aht Urhgan Whitegate","Nashmau","Tavanazian Safehold",
  24. "Selbina","Mhaura","Norg","Eastern Adoulin","Western Adoulin","Kazham"}
  25.  
  26. -- Idle Sets --
  27. sets.Idle = {}
  28. sets.Idle.Refresh = {
  29. main="Terra's Staff",
  30. sub="Oneiros Grip",
  31. range="Dunna",
  32. head="Hagondes Hat +1",
  33. neck="Twilight Torque",
  34. ear1="Ethereal Earring",
  35. ear2="Sanare Earring",
  36. body="Amalric Doublet",
  37. hands="Bagua Mitaines",
  38. ring1="Dark Ring",
  39. ring2="Renaye Ring",
  40. back="Shadow Mantle",
  41. waist="Fucho-no-obi",
  42. legs="Nares Trews",
  43. feet="Geomancy Sandals",
  44. ammo=empty}
  45.  
  46. sets.Idle.Town = {main="Terra's Staff",
  47. sub="Oneiros Grip",
  48. range="Dunna",
  49. head="Hagondes Hat +1",
  50. neck="Twilight Torque",
  51. ear1="Ethereal Earring",
  52. ear2="Sanare Earring",
  53. body="Amalric Doublet",
  54. hands="Geomancy Mitaines",
  55. ring1="Dark Ring",
  56. ring2="Renaye Ring",
  57. back="Shadow Mantle",
  58. waist="Fucho-no-obi",
  59. legs="Nares Trews",
  60. feet="Geomancy Sandals",
  61. ammo=empty}
  62.  
  63. sets.Resting = set_combine(sets.Idle.Refresh,{})
  64.  
  65. -- .Pet sets are for when Luopan is present. --
  66.  
  67. sets.Idle.Pet = {main="Terra's Staff",sub="Oneiros Grip",range="Dunna",ammo=empty,
  68. head="Hagondes Hat +1",neck="Twilight Torque",ear1="Ethereal Earring",ear2="Sanare Earring",
  69. body="Hagondes Coat +1",hands="Geomancy Mitaines +1",ring1="Dark Ring",ring2="Dark Ring",
  70. back="Lifestream Cape",waist="Slipor Sash",legs="Hagondes Pants +1",feet="Bagua Sandals +1"}
  71.  
  72. -- PDT Set --
  73. sets.PDT = {
  74. main="Earth Staff",
  75. sub="Oneiros Grip",
  76. head="Hagondes Hat +1",
  77. neck="Twilight Torque",
  78. body="Hagondes Coat +1",
  79. hands="Geomancy Mitaines +1",
  80. ring1="Dark Ring",
  81. ring2="Dark Ring",
  82. back="Lifestream Cape",
  83. ear1="Ethereal Earring",
  84. ear2="Sanare Earring",
  85. waist="Slipor Sash",
  86. legs="Hagondes Pants +1",
  87. feet="Bagua Sandals +1",
  88. range="Dunna",
  89. ammo=empty}
  90.  
  91. sets.Sublimation = {
  92. main="Bolelabunga",
  93. sub="Genbu's Shield",
  94. ammo="Oreiad's Tathlum",
  95. head="Spurrina Coif",
  96. neck="Dualism Collar",
  97. ear1="Bloodgem Earring",
  98. ear2="Loquac. Earring",
  99. body="Hagondes Coat +1",
  100. hands="Serpentes Cuffs",
  101. ring1="K'ayres Ring",
  102. ring2="Meridian Ring",
  103. back="Gigant Mantle",
  104. waist="Forest Sash",
  105. legs="Nares Trews",
  106. feet="Hagondes Sabots +1"}
  107.  
  108. sets.Precast = {}
  109. -- FastCast Sets --
  110. sets.Precast.FastCast = {
  111. main="Marin Staff",
  112. ammo="Impatiens",
  113. sub="Clerisy Strap",
  114. head="Nahtirah Hat",
  115. neck="Orunmila's Torque",
  116. ear1="Enchanter Earring +1",
  117. ear2="Loquac. Earring",
  118. body="Dalmatica",
  119. hands="Bagua Mitaines",
  120. ring1="Prolix Ring",
  121. ring2="Veneficium Ring",
  122. back="Lifestream Cape",
  123. waist="Witful Belt";
  124. legs="Geo. Pants +1",
  125. feet="Amalric Nails"}
  126.  
  127. -- Geomancy Sets --
  128. sets.Precast.GeoCast = set_combine(sets.Precast.FastCast,{
  129. main="Marin Staff",
  130. sub="Clarisy Strap",
  131. range="Dunna",
  132. ammo=empty,
  133. body="Bagua Tunic +1",
  134. hands="Geomancy Mitaines +1",
  135. back="Lifestream Cape",
  136. ear1="Gifted Earring",
  137. legs="Bagua Pants",
  138. feet="Umbani Boots"})
  139.  
  140. -- Elemental Staves --
  141. sets.Precast.Thunder = {main='Blurred Staff'}
  142. sets.Precast.Water = {main='Blurred Staff'}
  143. sets.Precast.Fire = {main='Blurred Staff'}
  144. sets.Precast.Ice = {main='Blurred Staff'}
  145. sets.Precast.Wind = {main='Blurred Staff'}
  146. sets.Precast.Earth = {main='Blurred Staff'}
  147. sets.Precast.Light = {main='Blurred Staff'}
  148. sets.Precast.Dark = {main='Blurred Staff'}
  149.  
  150. sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash",head="Umuthi Hat"})
  151.  
  152. -- Precast Cure Set --
  153. sets.Precast.Cure = {
  154. main="Tamaxchi",
  155. sub="Genbu's Shield",
  156. head="Nahtirah Hat",
  157. neck="Orunmila's Torque",
  158. ear2="Loquac. Earring",
  159. body="Heka's Kalasiris",
  160. hands="Hagondes Cuffs",
  161. ring1="Prolix Ring",
  162. ring2="Veneficium Ring",
  163. back="Pahtli Cape",
  164. waist="Witful Belt";
  165. legs="Geomancy Pants +1",
  166. feet="Chelona Boots +1"}
  167.  
  168. -- Midcast Base Set --
  169. sets.Midcast = {}
  170.  
  171. -- Cure Set --
  172. sets.Midcast.Cure = {
  173. main="Tamaxchi",
  174. sub="Genbu's Shield",
  175. ammo="Oreiad's Tathlum",
  176. head="Kaabnax Hat",
  177. neck="Phalaina Locket",
  178. ear1="Lifestorm Earring",
  179. ear2="Beatific Earring",
  180. body="Heka's Kalasiris",
  181. hands="Bagua Mitaines +1",
  182. ring1="Leviathan Ring +1",
  183. ring2="Haoma's Ring",
  184. back="Pahtli Cape",
  185. waist="Bishop's Sash",
  186. legs="Nares Trews",
  187. feet="Hagondes Sabots +1"}
  188.  
  189. -- Curaga Set --
  190. sets.Midcast.Curaga = {
  191. main="Tamaxchi",
  192. sub="Genbu's Shield",
  193. ammo="Oreiad's Tathlum",
  194. head="Kaabnax Hat",
  195. neck="Phalaina Locket",
  196. ear1="Lifestorm Earring",
  197. ear2="Loquac. Earring",
  198. body="Heka's Kalasiris",
  199. hands="Bagua Mitaines +1",
  200. ring1="Leviathan Ring +1",
  201. ring2="Karka Ring",
  202. back="Pahtli Cape",
  203. waist="Bishop's Sash",
  204. legs="Nares Trews",
  205. feet="Hagondes Sabots +1"}
  206.  
  207. -- Haste Set --
  208. sets.Midcast.Haste = {
  209. ammo="Impatiens",
  210. head="Nahtirah Hat",
  211. neck="Orunmila's Torque",
  212. ear2="Loquac. Earring",
  213. body="Anhur Robe",
  214. hands="Geomancy Mitaines +1",
  215. ring1="Prolix Ring",
  216. ring2="Veneficium Ring",
  217. back="Lifestream Cape",
  218. waist="Ninurta's Sash",
  219. legs="Geomancy Pants +1",
  220. feet="Umbani Boots"}
  221.  
  222. sets.Midcast['Enhancing Magic'] = {
  223. main="Kirin's Pole",
  224. sub="Fulcio Grip",
  225. head="Umuthi Hat",
  226. neck="Colossus's Torque",
  227. body="Anhur Robe",
  228. hands="Ayao's Gages",
  229. ring1="Prolix Ring",
  230. ring2="Veneficium Ring",
  231. waist="Cascade Belt",
  232. legs="Portent Pants",
  233. feet="Umbani Boots"}
  234.  
  235. sets.Midcast.Stoneskin = set_combine(sets.Midcast['Enhancing Magic'],{
  236. head="Umuthi Hat",
  237. waist="Siegel Sash"})
  238.  
  239. sets.Midcast.Cursna = set_combine(sets.Midcast.Haste,{
  240. head="Nahtirah Hat",
  241. neck="Colossus's Torque",
  242. ear2="Beatific Earring",
  243. body="Anhur Robe",
  244. hands="Bokwus Gloves",
  245. ring1="Haoma's Ring",
  246. ring2="Haoma's Ring",
  247. back="Altruistic Cape",
  248. waist="Witful Belt",
  249. legs="Bokwus Slops",
  250. feet="Geomancy Sandals"})
  251.  
  252. sets.Midcast.Stun = {
  253. main="Venabulum",
  254. sub="Mephitis Grip",
  255. range="Aureole",
  256. head="Nahtirah Hat",
  257. neck="Orunmila's Torque",
  258. ear1="Loquac. Earring",
  259. ear2="Enchanter Earring +1",
  260. body="Vanir Cotehardie",
  261. hands="Hagondes Cuffs",
  262. ring1="Prolix Ring",
  263. ring2="Sangoma Ring",
  264. back="Lifestream Cape",
  265. waist="Ninurta's Sash",
  266. legs="Geomancy Pants +1",
  267. feet="Hagondes Sabots +1"}
  268. sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{})
  269. sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{})
  270.  
  271. -- Elemental Sets --
  272. sets.Midcast['Elemental Magic'] = {
  273. main="Blurred Staff",
  274. sub="Clerisy Strap",
  275. ammo="Witchstone",
  276. head="Helios Band",
  277. neck="Eddy Necklace",
  278. ear1="Novio Earring",
  279. ear2="Friomisi Earring",
  280. body="Amalric Doublet",
  281. hands="Amalric Gages",
  282. ring1="Shiva Ring",
  283. ring2="Acumen Ring",
  284. back="Toro Cape",
  285. waist="Aswang Sash",
  286. legs="Helios Spats",
  287. feet="Amalric Nails"}
  288.  
  289. sets.Midcast['Elemental Magic'].MidACC = set_combine(sets.Midcast['Elemental Magic'],{
  290. head="Hagondes Hat +1",
  291. body="Hagondes Coat +1"})
  292. sets.Midcast['Elemental Magic'].HighACC = set_combine(sets.Midcast['Elemental Magic'].MidACC,{})
  293.  
  294. -- Dark Magic Sets --
  295. sets.Midcast['Dark Magic'] = set_combine(sets.Midcast['Elemental Magic'],{
  296. ear1="Psystorm Earring",
  297. ear2="Lifestorm Earring",
  298. body="Geomancy Tunic +1",
  299. head="Buremte Hat",
  300. hands="Hagondes Cuffs",
  301. legs="Helios Spats",
  302. back="Refraction Cape",
  303. ring1="Archon Ring",
  304. ring2="Shiva Ring"})
  305.  
  306. sets.Midcast['Dark Magic'].MidACC = set_combine(sets.Midcast['Dark Magic'],{})
  307. sets.Midcast['Dark Magic'].HighACC = set_combine(sets.Midcast['Dark Magic'].MidACC,{})
  308.  
  309. sets.Midcast.Aspir = set_combine(sets.Midcast['Dark Magic'],{
  310. ring2="Excelsis Ring",
  311. head="Bagua Galero",
  312. waist="Fucho-no-obi"})
  313.  
  314. sets.Midcast.Drain = set_combine(sets.Midcast.Aspir)
  315.  
  316.  
  317. -- Enfeebling Sets --
  318. sets.Midcast['Enfeebling Magic'] = {
  319. main="Venabulum",
  320. sub="Mephitis Grip",
  321. range=empty,
  322. ammo="Kalboron Stone",
  323. head="Kaabnax Hat",
  324. neck="Imbodla Necklace",
  325. ear1="Lifestorm Earring",
  326. ear2="Psystorm Earring",
  327. body="Ischemia Chasuble",
  328. hands="Hagondes Cuffs",
  329. waist="Yamabuki-No-Obi",
  330. back="Refraction Cape",
  331. legs="Hagondes Pants +1",
  332. ring1="Sangoma Ring",
  333. ring2="Leviathan Ring +1",
  334. feet="Bagua Sandals +1"}
  335. sets.Midcast['Enfeebling Magic'].MidACC = set_combine(sets.Midcast['Enfeebling Magic'],{})
  336. sets.Midcast['Enfeebling Magic'].HighACC = set_combine(sets.Midcast['Enfeebling Magic'].MidACC,{})
  337.  
  338. sets.Midcast.Impact = {
  339. main="Venabulum",
  340. sub="Mephitis grip",
  341. neck="Imbodla necklace",
  342. head=empty,
  343. ear1="Lifestorm Earring",
  344. ear2="Psystorm Earring",
  345. body="Twilight Cloak",
  346. hands="Hagondes Cuffs",
  347. ring1="Archon Ring",
  348. ring2="Sangoma Ring",
  349. back="Refraction Cape",
  350. waist="Yamabuki-No-Obi",
  351. legs="Hagondes pants +1",
  352. feet="Bagua Sandals +1"}
  353.  
  354. -- Para/Slow Set --
  355. sets.Midcast.paralyze = set_combine(sets.Midcast['Enfeebling Magic'],{
  356. feet="Uk'uxkaj boots"})
  357.  
  358. sets.Midcast.slow = set_combine(sets.Midcast['Enfeebling Magic'],{
  359. feet="Uk'uxkaj boots"})
  360.  
  361. -- Geomancy Midcast --
  362. sets.Midcast.GeoCast = set_combine(sets.Precast.GeoCast,{
  363. main="Marin Staff",
  364. sub="Clerisy Strap",
  365. range="Dunna",
  366. ammo=empty,
  367. body="Bagua Tunic +1",
  368. hands="Geomancy Mitaines +1",
  369. waist="Austerity Belt",
  370. back="Lifestream Cape",
  371. ear1="Gifted Earring",
  372. ear2="Gwati Earring",
  373. legs="Bagua Pants +1",
  374. feet="Umbani Boots"})
  375.  
  376.  
  377. -- Elemental Obi/Twilight Cape --
  378. sets.Obi = {}
  379. sets.Obi.Thunder = {back="Twilight Cape",waist='Rairin Obi'}
  380. sets.Obi.Water = {back="Twilight Cape",waist='Suirin Obi'}
  381. sets.Obi.Fire = {back="Twilight Cape",waist='Karin Obi'}
  382. sets.Obi.Ice = {back="Twilight Cape",waist='Hyorin Obi'}
  383. sets.Obi.Wind = {back="Twilight Cape",waist='Furin Obi'}
  384. sets.Obi.Earth = {back="Twilight Cape",waist='Dorin Obi'}
  385. sets.Obi.Light = {back="Twilight Cape",waist='Korin Obi'}
  386. sets.Obi.Dark = {back="Twilight Cape",waist='Anrin Obi'}
  387.  
  388. -- JA Sets --
  389. sets.JA = {}
  390. sets.JA['Life Cycle'] = {body="Geomancy Tunic +1"}
  391. sets.JA.Bolster = {body="Bagua Tunic +1"}
  392. sets.JA['Radial Arcana'] = {feet="Bagua Sandals"}
  393. sets.JA['Mending Halation'] = {legs="Bagua Pants +1"}
  394.  
  395.  
  396. -- Melee Set --
  397. sets.Melee = {
  398. range="Dunna",
  399. ammo=empty,
  400. head="Telchine Cap",
  401. neck="Asperity Necklace",
  402. ear1="Dudgeon Earring",
  403. ear2="Heartseeker Earring",
  404. body="Helios Jacket",
  405. hands="almaric Gages",
  406. ring1="K'ayres Ring",
  407. ring2="Rajas Ring",
  408. back="Rancorous Mantle",
  409. waist="Cetl Belt",
  410. legs="Telchine Braconi",
  411. feet="Battlecast Gaiters"}
  412.  
  413. -- WS Base Set --
  414. sets.WS = set_combine(sets.Melee,{})
  415. sets.WS["Hexa Strike"] = {
  416. range="Dunna",
  417. ammo=empty,
  418. head="Buremte Hat",
  419. neck="Shifting Neck. +1",
  420. ear1="Moonshade Earring",
  421. ear2="Lifestorm Earring",
  422. body="Telchine Chasuble",
  423. hands="Otomi Gloves",
  424. ring1="Rajas Ring",
  425. ring2="Ifrit Ring",
  426. back="Rancorous Mantle",
  427. waist="Wanion Belt",
  428. legs="Telchine Braconi",
  429. feet="Telchine Pigaches"}
  430. sets.WS.Realmrazer = {}
  431. sets.WS.Shattersoul = {}
  432. sets.WS["Flash Nova"] = {
  433. range="Dunna",
  434. ammo=empty,
  435. head="Hagondes Hat +1",
  436. neck="Eddy Necklace",
  437. ear1="Novio Earring",
  438. ear2="Friomisi Earring",
  439. body="Hagondes Coat +1",
  440. hands="Yaoyotl Gloves",
  441. ring1="Shiva Ring +1",
  442. ring2="Shiva Ring +1",
  443. back="Toro Cape",
  444. waist="Yamabuki-No-Obi",
  445. legs="Hagondes Pants +1",
  446. feet="Umbani Boots"}
  447.  
  448. -- Latent Idle Set --
  449. sets.latent_refresh = {waist="Fucho-no-obi"}
  450.  
  451. -- Lock Main Weapon --
  452. sets.MainWeapon = {
  453. main="Bolelabunga",
  454. sub="Genbu's Shield"}
  455. end
  456.  
  457. function pretarget(spell,action)
  458. if (string.find(spell.type,'Magic') or spell.type == "Ninjutsu" or spell.type == "Geomancy") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  459. cancel_spell()
  460. send_command('input /item "Echo Drops" <me>')
  461. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  462. degrade_spell(spell,Cure_Spells)
  463. elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
  464. degrade_spell(spell,Curaga_Spells)
  465. elseif string.find(spell.english,'Geo') and pet.isvalid then -- Change Any Geo Spells To Full Circle If You Have A Luopan Active --
  466. cancel_spell()
  467. send_command('input /ja "Full Circle" <me>')
  468. elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  469. if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  470. cancel_spell()
  471. send_command('input /ja Addendum: White <me>')
  472. elseif spell.english == "Manifestation" then
  473. cancel_spell()
  474. send_command('input /ja Accession <me>')
  475. elseif spell.english == "Alacrity" then
  476. cancel_spell()
  477. send_command('input /ja Celerity <me>')
  478. elseif spell.english == "Parsimony" then
  479. cancel_spell()
  480. send_command('input /ja Penury <me>')
  481. end
  482. elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  483. if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  484. cancel_spell()
  485. send_command('input /ja Addendum: Black <me>')
  486. elseif spell.english == "Accession" then
  487. cancel_spell()
  488. send_command('input /ja Manifestation <me>')
  489. elseif spell.english == "Celerity" then
  490. cancel_spell()
  491. send_command('input /ja Alacrity <me>')
  492. elseif spell.english == "Penury" then
  493. cancel_spell()
  494. send_command('input /ja Parsimony <me>')
  495. end
  496. end
  497. end
  498.  
  499. function precast(spell,action)
  500. if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  501. if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  502. cancel_spell()
  503. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  504. return
  505. else
  506. if string.find(spell.english,'Cur') or spell.english == "Cursna" then
  507. equip(sets.Precast.Cure)
  508. elseif spell.type == "Geomancy" then
  509. equip(sets.Precast.GeoCast)
  510. elseif string.find(spell.english,'Fir') or string.find(spell.english,'Bliz') or string.find(spell.english,'Thund') or string.find(spell.english,'Aer') or string.find(spell.english,'Wat') or string.find(spell.english,'Stone') then
  511. equip(set_combine(sets.Precast.FastCast,{hands="Bagua Mitaines"}))
  512. elseif spell.english == "Impact" then
  513. equip(set_combine(sets.Precast.FastCast,{head=empty,body="Twilight Cloak"}))
  514. elseif spell.english == "Dia" then
  515. equip(set_combine(sets.Midcast['Enfeebling Magic'],{waist="Chaac Belt"}))
  516. elseif string.find(spell.english,'Utsusemi') then
  517. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  518. cancel_spell()
  519. add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
  520. return
  521. else
  522. equip(sets.Precast.FastCast)
  523. end
  524. elseif sets.Precast[spell.skill] then
  525. equip(sets.Precast[spell.skill])
  526. else
  527. equip(sets.Precast.FastCast)
  528. end
  529. end
  530. elseif spell.type == "WeaponSkill" then
  531. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  532. cancel_spell()
  533. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  534. return
  535. elseif sets.WS[spell.english] then
  536. equip(sets.WS[spell.english])
  537. end
  538. elseif spell.type == "JobAbility" then
  539. if sets.JA[spell.english] then
  540. equip(sets.JA[spell.english])
  541. end
  542. elseif spell.type == "Geomancy" then
  543. if Cities:contains(world.area) then
  544. cancel_spell()
  545. add_to_chat(123,'Unable To Use Geomancy In Town')
  546. return
  547. else
  548. if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Geomancy If You Are Silenced or Out of Range --
  549. cancel_spell()
  550. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  551. return
  552. else
  553. display_geomancy_info(spell)
  554. equip(sets.Precast.GeoCast)
  555. end
  556. end
  557. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  558. cast_delay(0.2)
  559. send_command('cancel Sneak')
  560. end
  561. if sets.Precast[spell.element] then
  562. equip(sets.Precast[spell.element])
  563. end
  564. if StunIndex == 1 then
  565. equip(sets.Midcast.Stun)
  566. end
  567. if spell.english == 'Paralyze' then
  568. equip(sets.Midcast.paralyze)
  569. end
  570. if spell.english == 'Slow' then
  571. equip(sets.Midcast.slow)
  572. end
  573. if Main == 'ON' then
  574. equip(sets.MainWeapon)
  575. end
  576. end
  577.  
  578. function midcast(spell,action)
  579. equipSet = {}
  580. if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' then
  581. equipSet = sets.Midcast
  582. if string.find(spell.english,'Cure') then
  583. equipSet = equipSet.Cure
  584. elseif string.find(spell.english,'Cura') then
  585. equipSet = equipSet.Curaga
  586. elseif string.find(spell.english,'Banish') then
  587. equipSet = set_combine(equipSet.Haste,{ring1="Fenian Ring"})
  588. elseif spell.type == "Geomancy" then
  589. equipSet = sets.Midcast.GeoCast
  590. elseif spell.english == "Stoneskin" then
  591. if buffactive.Stoneskin then
  592. send_command('@wait 2.8;cancel stoneskin')
  593. end
  594. equipSet = equipSet.Stoneskin
  595. elseif spell.english == "Sneak" then
  596. if spell.target.name == player.name and buffactive['Sneak'] then
  597. send_command('cancel sneak')
  598. end
  599. equipSet = equipSet.Haste
  600. elseif string.find(spell.english,'Utsusemi') then
  601. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  602. send_command('@wait 1.7;cancel Copy Image*')
  603. end
  604. equipSet = equipSet.Haste
  605. elseif spell.english == 'Monomi: Ichi' then
  606. if buffactive['Sneak'] then
  607. send_command('@wait 1.7;cancel sneak')
  608. end
  609. equipSet = equipSet.Haste
  610. else
  611. if equipSet[spell.english] then
  612. equipSet = equipSet[spell.english]
  613. end
  614. if equipSet[spell.skill] then
  615. equipSet = equipSet[spell.skill]
  616. end
  617. if equipSet[spell.type] then
  618. equipSet = equipSet[spell.type]
  619. end
  620. if (spell.type == 'Elemental Magic' or string.find(spell.english,'Cur') or string.find(spell.english,'Bio') or string.find(spell.english,'Dia')) and not Non_Obi_Spells: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 Equip Normal Waist Gear --
  621. equipSet = set_combine(equipSet,sets.Obi[spell.element])
  622. end
  623. end
  624. elseif equipSet[spell.english] then
  625. equipSet = equipSet[spell.english]
  626. end
  627. equip(equipSet)
  628. if StunIndex == 1 then
  629. equip(sets.Midcast.Stun)
  630. end
  631. if Main == 'ON' then
  632. equip(sets.MainWeapon)
  633. end
  634. end
  635.  
  636. function aftercast(spell,action)
  637. if player.status == 'Engaged' then
  638. equip(sets.Melee)
  639. else
  640. equip(sets.Idle[IdleArray[IdleIndex]])
  641. end
  642. end
  643.  
  644. function status_change(new,old)
  645. if Armor == 'PDT' then
  646. equip(sets.PDT)
  647. elseif buffactive["Sublimation: Activated"] then
  648. equip(sets.Sublimation)
  649. elseif new == 'Engaged' then
  650. equip(sets.Melee)
  651. elseif new == 'Idle' then
  652. equip(sets.Idle[IdleArray[IdleIndex]])
  653. elseif new == 'Resting' then
  654. equip(sets.Resting)
  655. end
  656. if StunIndex == 1 then
  657. equip(sets.Midcast.Stun)
  658. end
  659. if Main == 'ON' then
  660. equip(sets.MainWeapon)
  661. end
  662. end
  663.  
  664. function buff_change(buff,gain)
  665. buff = string.lower(buff)
  666. if buff == 'Weakness' then -- Weakness Timer --
  667. if gain then
  668. send_command('timers create "Weakness" 300 up')
  669. else
  670. send_command('timers delete "Weakness"')
  671. end
  672. end
  673. if not midaction() then
  674. status_change(player.status)
  675. end
  676. end
  677.  
  678. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  679. function self_command(command)
  680. if command == 'C1' then -- Stun Toggle --
  681. if StunIndex == 1 then
  682. StunIndex = 0
  683. add_to_chat(123,'Stun Set: [Unlocked]')
  684. else
  685. StunIndex = 1
  686. add_to_chat(158,'Stun Set: [Locked]')
  687. end
  688. status_change(player.status)
  689. elseif command == 'C5' then -- Auto Update Gear Toggle --
  690. status_change(player.status)
  691. add_to_chat(158,'Auto Update Gear')
  692. elseif command == 'C3' then -- Obi Toggle --
  693. if Obi == 'ON' then
  694. Obi = 'OFF'
  695. add_to_chat(123,'Obi: [OFF]')
  696. else
  697. Obi = 'ON'
  698. add_to_chat(158,'Obi: [ON]')
  699. end
  700. status_change(player.status)
  701. elseif command == 'C7' then -- PDT Toggle --
  702. if Armor == 'PDT' then
  703. Armor = 'None'
  704. add_to_chat(123,'PDT Set: [Unlocked]')
  705. else
  706. Armor = 'PDT'
  707. add_to_chat(158,'PDT Set: [Locked]')
  708. end
  709. status_change(player.status)
  710. elseif command == 'w' then -- Main Weapon Toggle --
  711. if Main == 'ON' then
  712. Main = 'OFF'
  713. add_to_chat(123,'Main Weapon: [Unlocked]')
  714. else
  715. Main = 'ON'
  716. add_to_chat(158,'Main Weapon: [Locked]')
  717. end
  718. status_change(player.status)
  719. elseif command == 'C8' then -- Distance Toggle --
  720. if player.target.distance then
  721. target_distance = math.floor(player.target.distance*10)/10
  722. add_to_chat(158,'Distance: '..target_distance)
  723. else
  724. add_to_chat(123,'No Target Selected')
  725. end
  726. elseif command == 'C6' then -- Idle Toggle --
  727. IdleIndex = (IdleIndex % #IdleArray) + 1
  728. add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
  729. status_change(player.status)
  730. elseif command:match('^SC%d$') then
  731. send_command('//' .. sc_map[command])
  732. end
  733. end
  734.  
  735. function actualCost(originalCost)
  736. if buffactive["Penury"] then
  737. return originalCost*.5
  738. elseif buffactive["Light Arts"] then
  739. return originalCost*.9
  740. else
  741. return originalCost
  742. end
  743. end
  744.  
  745. function degrade_spell(spell,degrade_array)
  746. spell_index = table.find(degrade_array,spell.name)
  747. if spell_index > 1 then
  748. new_spell = degrade_array[spell_index - 1]
  749. change_spell(new_spell,spell.target.raw)
  750. add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  751. end
  752. end
  753.  
  754. function change_spell(spell_name,target)
  755. cancel_spell()
  756. send_command('//'..spell_name..' '..target)
  757. end
  758.  
  759. function customize_idle_set(idleSet)
  760. if player.mpp < 51 then
  761. idleSet = set_combine(idleSet, sets.latent_refresh)
  762. end
  763. return idleSet
  764. end
  765.  
  766. function define_geomancy_values()
  767. geomancy = {
  768. Frailty = {bonus="Defense Down"},
  769. Torpor = {bonus="Evasion Down"},
  770. Languor = {bonus="Magic Evasion Down"},
  771. Focus = {bonus="Magic Accuracy"},
  772. Malaise = {bonus="Magic Defense Down"},
  773. Precision = {bonus="Accuracy"},
  774. Refresh = {bonus="Refresh"},
  775. Fade = {bonus="Magic Attack Down"},
  776. Wilt = {bonus="Attack Down"},
  777. Vex = {bonus="Magic Accuracy Down"},
  778. Slip = {bonus="Accuracy Down"},
  779. Acumen = {bonus="Magic Attack"},
  780. Fend = {bonus="Magic Defense"},
  781. Fury = {bonus="Attack"},
  782. Attunement = {bonus="Magic Evasion"},
  783. Voidance = {bonus="Evasion"},
  784. Barrier = {bonus="Defense"},
  785. Haste = {bonus="Haste"}
  786. }
  787. end
  788.  
  789. function display_geomancy_info(spell)
  790. geoType=nil
  791. string.gsub(spell.english.."-","-(.-)-",function(geo) geoType=geo end)
  792. geoInfo = geomancy[geoType]
  793. if geoInfo then
  794. add_to_chat(158, spell.english..' = '..tostring(geoInfo.bonus))
  795. end
  796. end
Add Comment
Please, Sign In to add comment