Advertisement
bongarippa

GEO

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