Advertisement
Guest User

Untitled

a guest
Jun 26th, 2014
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.35 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Motenten's Macro Book Function ** --
  3. -- Last Updated: 05/05/14 12:00 AM *Fixed Magic Sets* --
  4. function get_sets()
  5. move_block = false
  6. fixed_pos = ''
  7.  
  8. windower.register_event('prerender',function()
  9. if not midaction() then
  10. move_block = false
  11. gearswap.cued_packet = nil
  12. end
  13. end)
  14.  
  15. windower.register_event('zone change',function()
  16. move_block = false
  17. end)
  18.  
  19. windower.register_event('outgoing chunk',function(id,original,modified,injected,blocked)
  20. if not blocked then
  21. if id == 0x15 then
  22. if (gearswap.cued_packet or move_block) and fixed_pos ~= '' then
  23. if gearswap.cued_packet then move_block = true end
  24. return original:sub(1,4)..fixed_pos..original:sub(17)
  25. else
  26. fixed_pos = original:sub(5,16)
  27. end
  28. end
  29. end
  30. end)
  31. AccIndex = 1
  32. AccArray = {"LowACC","MidACC","HighACC"} -- 3 Levels Of Accuracy Sets For Magic. Default ACC Set Is LowACC. Add More ACC Sets If Needed Then Create Your New ACC Below --
  33. IdleIndex = 1
  34. IdleArray = {"Movement","Refresh"} -- Default Idle Set Is Movement --
  35. Armor = 'None'
  36. StunIndex = 0
  37. Obi = 'ON' -- Turn Default Obi ON or OFF Here --
  38. target_distance = 5 -- Set Default Distance Here --
  39. select_default_macro_book() -- Change Default Macro Book At The End --
  40.  
  41. Non_Obi_Spells = S{
  42. 'Burn','Choke','Drown','Frost','Rasp','Shock','Impact','Anemohelix','Cryohelix',
  43. 'Geohelix','Hydrohelix','Ionohelix','Luminohelix','Noctohelix','Pyrohelix'}
  44.  
  45. Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  46. Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation --
  47. sc_map = {SC1 = "Stun", SC2 = "ThunderV", SC3 = "BlizzardV"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  48.  
  49. -- Idle Sets --
  50. sets.Idle = {}
  51. sets.Idle.Refresh = {
  52. main="Laevateinn",
  53. ammo="Brigantia Pebble",
  54. head="Spurrina Coif",
  55. neck="Twilight Torque",
  56. ear1="Black Earring",
  57. ear2="Darkness Earring",
  58. body="Hagondes Coat +1",
  59. hands="Serpentes Cuffs",
  60. ring1="Dark Ring",
  61. ring2="Dark Ring",
  62. back="Umbra Cape",
  63. waist="Fucho-no-Obi",
  64. legs="Nares Trews",
  65. feet="Serpentes Sabots"}
  66. sets.Idle.Movement = set_combine(sets.Idle.Refresh,{
  67. neck="Twilight Torque"})
  68. sets.Resting = set_combine(sets.Idle.Movement,{})
  69.  
  70. -- PDT Set --
  71. sets.PDT = {
  72. ammo="Brigantia Pebble",
  73. head="Hagondes Hat",
  74. neck="Twilight Torque",
  75. ear1="Black Earring",
  76. ear2="Darkness Earring",
  77. body="Hagondes Coat +1",
  78. hands="Hagondes Cuffs",
  79. ring1="Dark Ring",
  80. ring2="Dark Ring",
  81. back="Umbra Cape",
  82. waist="Slipor Sash",
  83. legs="Hagondes Pants +1",
  84. feet="Hagondes Sabots"}
  85.  
  86. sets.Sublimation = {
  87. ammo="Brigantia Pebble",
  88. head="Spurrina Coif",
  89. neck="Twilight Torque",
  90. ear1="Black Earring",
  91. ear2="Loquac. Earring",
  92. body="Hagondes Coat +1",
  93. hands="Serpentes Cuffs",
  94. ring1="Dark Ring",
  95. ring2="Dark Ring",
  96. back="Umbra Cape",
  97. waist="Fucho-no-Obi",
  98. legs="Nares Trews",
  99. feet="Serpentes Sabots"}
  100.  
  101. sets.Precast = {}
  102.  
  103. -- Fastcast Set --
  104. sets.Precast.FastCast = {
  105. ammo="Impatiens",
  106. head="Nahtirah Hat",
  107. neck="Orunmila's Torque",
  108. ear1="Loquac. Earring",
  109. body="Anhur Robe",
  110. hands={ name="Hagondes Cuffs", augments={'"Fast Cast" +4', "Phys. dmg. taken -3%"}},
  111. ring1="Prolix Ring",
  112. ring2="Veneficium Ring",
  113. back="Swith Cape +1",
  114. waist="Witful Belt",
  115. legs="Artsieq Hose",
  116. feet="Chelona Boots +1"}
  117.  
  118. sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash"})
  119. sets.Precast['Stoneskin'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash"}, {head="Umuthi Hat"}, {hands="Carapacho Cuffs"})
  120. sets.Precast['Elemental Magic'] = set_combine(sets.Precast.FastCast,{head="Goetia Petasos +2"}, {body="Dalmatica +1"}, {back="Ogapepo Cape"})
  121. sets.Precast['Freeze II'] = set_combine(sets.Precast.FastCast,{head="Goetia Petasos +2"}, {hands="Arch. Gloves +1"}, {body="Dalmatica +1"}, {back="Ogapepo Cape"})
  122. sets.Precast['Flare II'] = set_combine(sets.Precast.FastCast,{head="Goetia Petasos +2"}, {hands="Arch. Gloves +1"}, {body="Dalmatica +1"}, {back="Ogapepo Cape"})
  123. sets.Precast['Quake II'] = set_combine(sets.Precast.FastCast,{head="Goetia Petasos +2"}, {hands="Arch. Gloves +1"}, {body="Dalmatica +1"}, {back="Ogapepo Cape"})
  124. sets.Precast['Burst II'] = set_combine(sets.Precast.FastCast,{head="Goetia Petasos +2"}, {hands="Arch. Gloves +1"}, {body="Dalmatica +1"}, {back="Ogapepo Cape"})
  125.  
  126. -- Precast Cure Set --
  127. sets.Precast.Cure = {
  128. ammo="Impatiens",
  129. head="Nahtirah Hat",
  130. neck="Orunmila's Torque",
  131. ear1="Loquac. Earring",
  132. body="Heka's Kalasiris",
  133. hands={ name="Hagondes Cuffs", augments={'"Fast Cast" +4', "Phys. dmg. taken -3%"}},
  134. ring1="Prolix Ring",
  135. ring2="Veneficium Ring",
  136. back="Swith Cape +1",
  137. waist="Witful Belt";
  138. legs="Artsieq Hose",
  139. feet="Chelona Boots +1"}
  140.  
  141. -- Midcast Base Set --
  142. sets.Midcast = {}
  143.  
  144. -- Haste Set --
  145. sets.Midcast.Haste = {
  146.  
  147. ammo="Impatiens",
  148. head="Nahtirah Hat",
  149. neck="Orunmila's Torque",
  150. ear2="Loquac. Earring",
  151. body="Hedera Cotehardie",
  152. hands="Hagondes Cuffs",
  153. ring1="Prolix Ring",
  154. ring2="Veneficium Ring",
  155. back="Swith Cape +1",
  156. waist="Witful Belt",
  157. legs="Artsieq Hose",
  158. feet="Umbani Boots"}
  159.  
  160. -- Cure Set --
  161. sets.Midcast.Cure = {
  162. ammo="Mana Ampulla",
  163. head="Nahtirah Hat",
  164. neck="Phalaina Locket",
  165. body="Heka's Kalasiris",
  166. hands="Bokwus Gloves",
  167. ring1="Sirona's Ring",
  168. ring2="Haoma's Ring",
  169. waist="Ninurta's Sash",
  170. legs="Artsieq Hose",
  171. ear1="Roundel Earring",
  172. ear2="Novia Earring",
  173. back="Tempered Cape",
  174. feet="Umbani Boots"}
  175.  
  176. -- Curaga Set --
  177. sets.Midcast.Curaga = {
  178. ammo="Mana Ampulla",
  179. head="Nahtirah Hat",
  180. neck="Colossus's Torque",
  181. body="Heka's Kalasiris",
  182. hands="Bokwus Gloves",
  183. ring1="Prolix Ring",
  184. ring2="Haoma's Ring",
  185. waist="Demonry Sash",
  186. legs="Artsieq Hose",
  187. feet="Chelona Boots +1"}
  188.  
  189. -- Enhancing Magic Set --
  190. sets.Midcast['Enhancing Magic'] = {
  191. head="Umuthi Hat",
  192. neck="Colossus's Torque",
  193. body="Manasa Chasuble",
  194. hands="Ayao's Gages",
  195. ring1="Prolix Ring",
  196. ring2="Veneficium Ring",
  197. back="Merciful Cape",
  198. waist="Olympus Sash",
  199. legs="Shedir Seraweels",
  200. feet="Rubeus Boots"}
  201.  
  202. -- Stoneskin Set --
  203. sets.Midcast.Stoneskin = set_combine(sets.Midcast['Enhancing Magic'],{
  204. neck="Stone Gorget",
  205. ear1="Earthcry Earring"})
  206. -- Cursna Set --
  207. sets.Midcast.Cursna = set_combine(sets.Midcast.Haste,{
  208. ring1="Haoma's Ring",
  209. ring2="Sirona's Ring",
  210. hands="Hieros Mittens"})
  211. -- Stun Sets --
  212. sets.Midcast.Stun = {
  213. ammo="Hasty Pinion",
  214. head="Nahtirah Hat",
  215. neck="Orunmila's Torque",
  216. ear1="Gwati Earring",
  217. ear2="Loquac. Earring",
  218. body="Vanir Cotehardie",
  219. hands={ name="Hagondes Cuffs", augments={'"Fast Cast" +4', "Phys. dmg. taken -3%"}},
  220. ring1="Sangoma Ring",
  221. ring2="Prolix Ring",
  222. back="Swith Cape +1",
  223. waist="Witful Belt",
  224. legs="Artsieq Hose",
  225. feet="Umbani Boots"}
  226. sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{})
  227. sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{})
  228.  
  229. -- Dark Magic Sets --
  230. sets.Midcast['Dark Magic'] = set_combine(sets.Midcast.Stun,{
  231. ammo="Ombre Tathlum",
  232. head="Striga Crown",
  233. neck="Aesir Torque",
  234. ear1="Lifestorm Earring",
  235. ear2="Psystorm Earring",
  236. body="Vanir Cotehardie",
  237. hands="Arch. Gloves +1",
  238. ring1="Icesoul Ring",
  239. ring2="Icesoul Ring",
  240. back="Merciful Cape",
  241. waist="Casso Sash",
  242. legs="Spae. Tonban +1",
  243. feet="Goetia Sabots +2"})
  244. sets.Midcast['Dark Magic'].MidACC = set_combine(sets.Midcast['Dark Magic'],{
  245. ammo="Ombre Tathlum",
  246. head="Striga Crown",
  247. neck="Aesir Torque",
  248. ear1="Lifestorm Earring",
  249. ear2="Psystorm Earring",
  250. body="Vanir Cotehardie",
  251. hands="Arch. Gloves +1",
  252. ring1="Icesoul Ring",
  253. ring2="Icesoul Ring",
  254. back="Merciful Cape",
  255. waist="Casso Sash",
  256. legs="Spae. Tonban +1",
  257. feet="Goetia Sabots +2"})
  258. sets.Midcast['Dark Magic'].HighACC = set_combine(sets.Midcast['Dark Magic'].MidACC,{
  259. ammo="Ombre Tathlum",
  260. head="Striga Crown",
  261. neck="Aesir Torque",
  262. ear1="Lifestorm Earring",
  263. ear2="Psystorm Earring",
  264. body="Vanir Cotehardie",
  265. hands="Arch. Gloves +1",
  266. ring1="Icesoul Ring",
  267. ring2="Icesoul Ring",
  268. back="Merciful Cape",
  269. waist="Casso Sash",
  270. legs="Spae. Tonban +1",
  271. feet="Goetia Sabots +2"})
  272. sets.Midcast.Drain = {
  273. ammo="Ombre Tathlum",
  274. head="Striga Crown",
  275. neck="Aesir Torque",
  276. ear1="Hirudinea Earring",
  277. ear2="Gwati Earring",
  278. body="Vanir Cotehardie",
  279. hands="Arch. Gloves +1",
  280. ring1="Sangoma Ring",
  281. ring2="Excelsis Ring",
  282. back="Merciful Cape",
  283. waist="Fucho-no-obi",
  284. legs="Spae. Tonban +1",
  285. feet="Goetia Sabots +2"}
  286. sets.Midcast.Aspir = {
  287. ammo="Ombre Tathlum",
  288. head="Striga Crown",
  289. neck="Aesir Torque",
  290. ear1="Hirudinea Earring",
  291. ear2="Gwati Earring",
  292. body="Vanir Cotehardie",
  293. hands="Arch. Gloves +1",
  294. ring1="Sangoma Ring",
  295. ring2="Excelsis Ring",
  296. back="Merciful Cape",
  297. waist="Fucho-no-obi",
  298. legs="Spae. Tonban +1",
  299. feet="Goetia Sabots +2"}
  300.  
  301. -- Elemental Sets --
  302. sets.Midcast['Elemental Magic'] = {
  303. main="Laevateinn",
  304. sub="Zuuxowu Grip",
  305. ammo="Dosis Tathlum",
  306. head="Hagondes Hat",
  307. neck="Eddy Necklace",
  308. ear1="Friomisi Earring",
  309. ear2="Crematio Earring",
  310. body="Hagondes Coat +1",
  311. hands={ name="Hagondes Cuffs", augments={'"Mag.Atk.Bns." +25', "Phys. dmg. taken -3%"}},
  312. ring1="Strendu Ring",
  313. ring2="Acumen Ring",
  314. back="Toro Cape",
  315. waist="Sekhmet Corset",
  316. legs={ name="Hagondes Pants +1", augments={'"Mag.Atk.Bns." +27', "Phys. dmg. taken -3%"}},
  317. feet="Umbani Boots"}
  318. sets.Midcast['Elemental Magic'].MidACC = set_combine(sets.Midcast['Elemental Magic'],{
  319. main="Laevateinn",
  320. sub="Zuuxowu Grip",
  321. ammo="Dosis Tathlum",
  322. head="Hagondes Hat",
  323. neck="Eddy Necklace",
  324. ear1="Friomisi Earring",
  325. ear2="Crematio Earring",
  326. body="Spae. Coat +1",
  327. hands={ name="Hagondes Cuffs", augments={'"Mag.Atk.Bns." +25', "Phys. dmg. taken -3%"}},
  328. ring1="Strendu Ring",
  329. ring2="Acumen Ring",
  330. back="Toro Cape",
  331. waist="Sekhmet Corset",
  332. legs={ name="Hagondes Pants +1", augments={'"Mag.Atk.Bns." +27', "Phys. dmg. taken -3%"}},
  333. feet="Umbani Boots"})
  334. sets.Midcast['Elemental Magic'].HighACC = set_combine(sets.Midcast['Elemental Magic'].MidACC,{
  335. main="Laevateinn",
  336. head="Arch. Petasos +1",
  337. neck="Imbodla Necklace",
  338. ear1="Lifestorm Earring",
  339. ear2="Psystorm Earring",
  340. body="Vanir Cotehardie",
  341. hands="Spae. Gloves +1",
  342. ring1="Icesoul Ring",
  343. ring2="Icesoul Ring",
  344. back="Bane Cape",
  345. waist="Sekhmet Corset",
  346. legs={ name="Hagondes Pants +1", augments={'Mag. Acc.+27', "Phys. dmg. taken -3%"}},
  347. feet="Arch. Sabots +1"})
  348. sets.SorcRing = {ring1="Sorcerer's Ring"}
  349.  
  350. -- Enfeebling Sets --
  351. sets.Midcast['Enfeebling Magic'] = {
  352. head="Artsieq Hat",
  353. neck="Imbodla Necklace",
  354. ear1="Lifestorm Earring",
  355. ear2="Psystorm Earring",
  356. body="Ischemia Chasu.",
  357. hands="Lurid Mitts",
  358. ring1="Sangoma Ring",
  359. ring2="Perception Ring",
  360. back="Bane Cape",
  361. waist="Wanion Belt",
  362. legs={ name="Hagondes Pants +1", augments={'Mag. Acc.+27', "Phys. dmg. taken -3%"}},
  363. feet="Spaekona's Sabots"}
  364. sets.Midcast['Enfeebling Magic'].MidACC = set_combine(sets.Midcast['Enfeebling Magic'],{
  365. head="Artsieq Hat",
  366. neck="Imbodla Necklace",
  367. ear1="Lifestorm Earring",
  368. ear2="Psystorm Earring",
  369. body="Ischemia Chasu.",
  370. hands="Lurid Mitts",
  371. ring1="Sangoma Ring",
  372. ring2="Perception Ring",
  373. back="Bane Cape",
  374. waist="Wanion Belt",
  375. legs={ name="Hagondes Pants +1", augments={'Mag. Acc.+27', "Phys. dmg. taken -3%"}},
  376. feet="Spaekona's Sabots"})
  377. sets.Midcast['Enfeebling Magic'].HighACC = set_combine(sets.Midcast['Enfeebling Magic'].MidACC,{
  378. head="Artsieq Hat",
  379. neck="Imbodla Necklace",
  380. ear1="Lifestorm Earring",
  381. ear2="Psystorm Earring",
  382. body="Ischemia Chasu.",
  383. hands="Lurid Mitts",
  384. ring1="Sangoma Ring",
  385. ring2="Perception Ring",
  386. back="Bane Cape",
  387. waist="Wanion Belt",
  388. legs={ name="Hagondes Pants +1", augments={'Mag. Acc.+27', "Phys. dmg. taken -3%"}},
  389. feet="Spaekona's Sabots"})
  390.  
  391. -- Impact Set --
  392. sets.Midcast.Impact = {
  393. main="Laevateinn",
  394. neck="Eddy Necklace",
  395. ear1="Lifestorm Earring",
  396. ear2="Psystorm Earring",
  397. body="Twilight Cloak",
  398. hands={ name="Hagondes Cuffs", augments={'"Mag.Atk.Bns." +25', "Phys. dmg. taken -3%"}},
  399. ring1="Icesoul Ring",
  400. ring2="Icesoul Ring",
  401. back="Bane Cape",
  402. waist="Wanion Belt",
  403. legs={ name="Hagondes Pants +1", augments={'Mag. Acc.+27', "Phys. dmg. taken -3%"}},
  404. feet="Umbani Boots"}
  405.  
  406. -- Meteor Set --
  407. sets.Midcast.Meteor = set_combine(sets.Midcast['Elemental Magic'],{
  408. ammo="Dosis Tathlum",
  409. head="Hagondes Hat",
  410. neck="Eddy Necklace",
  411. ear1="Friomisi Earring",
  412. ear2="Novio Earring",
  413. body="Hagondes Coat +1",
  414. hands={ name="Hagondes Cuffs", augments={'"Mag.Atk.Bns." +25', "Phys. dmg. taken -3%"}},
  415. ring1="Strendu Ring",
  416. ring2="Acumen Ring",
  417. back="Toro Cape",
  418. waist="Othila Sash",
  419. legs={ name="Hagondes Pants +1", augments={'"Mag.Atk.Bns." +27', "Phys. dmg. taken -3%"}},
  420. feet="Umbani Boots"})
  421.  
  422. -- Elemental Obi/Twilight Cape --
  423. sets.Obi = {}
  424. sets.Obi.Thunder = {back="Twilight Cape",waist='Rairin Obi'}
  425. sets.Obi.Water = {back="Twilight Cape",waist='Suirin Obi'}
  426. sets.Obi.Fire = {back="Twilight Cape",waist='Karin Obi'}
  427. sets.Obi.Ice = {back="Twilight Cape",waist='Hyorin Obi'}
  428. sets.Obi.Wind = {back="Twilight Cape",waist='Furin Obi'}
  429. sets.Obi.Earth = {back="Twilight Cape",waist='Dorin Obi'}
  430. sets.Obi.Light = {back="Twilight Cape",waist='Korin Obi'}
  431. sets.Obi.Dark = {back="Twilight Cape",waist='Anrin Obi'}
  432.  
  433. -- JA Sets --
  434. sets.JA = {}
  435. sets.JA.Manafont = {body="Arch. Coat +1"}
  436. sets.JA['Enmity Douse'] = {}
  437. sets.JA['Mana Wall'] = {}
  438.  
  439. -- Melee Set --
  440. sets.Melee = set_combine(sets.Midcast.Haste,{
  441. ammo="Jukukik Feather",
  442. head="Kaabanax Hat",
  443. neck="Ancient Torque",
  444. ear1="Bladeborn Earring",
  445. ear2="Steelflash Earring",
  446. body="Ischemia Chasu.",
  447. hands="Hagondes Cuffs",
  448. ring1="Aife's Annulet",
  449. ring2="Beeline Ring",
  450. back="Blithe Mantle",
  451. waist="Ninurta's Sash",
  452. legs="Hagondes Pants +1",
  453. feet="Battlecast Gaiters"})
  454.  
  455. -- WS Base Set --
  456. sets.WS = {}
  457. sets.WS.Shattersoul = {
  458. ammo="Ombre Tathlum",
  459. head="Spaekona's Petasos +1",
  460. neck="Imbodla Necklace",
  461. ear1="Steelflash Earring",
  462. ear2="Bladeborn Earring",
  463. body="Archmage's Coat +1",
  464. hands="Spaekona's Gloves +1",
  465. ring1="Aife's Annulet",
  466. ring2="Icesoul Ring",
  467. back="Toro Cape",
  468. waist="Wanion Belt",
  469. legs="Archmage's Tonban +1",
  470. feet="Battlecast Gaiters"}
  471. sets.WS.Myrkr = {
  472. ammo="Dosis Tathlum",
  473. head="Kaabanax Hat",
  474. neck="Dualism Collar",
  475. ear1="Moonshade Earring",
  476. ear2="Loquac. Earring",
  477. body="Artsieq Jubbah",
  478. hands="Otomi Gloves",
  479. ring1="Sangoma Ring",
  480. ring2="Fountain Ring",
  481. back="Bane Cape",
  482. waist="Mujin obi",
  483. legs="Spae. Tonban +1",
  484. feet="Spurrina Nails"}
  485. sets.WS.Vidohunir = {
  486. main="Laevateinn",
  487. sub="Zuuxowu Grip",
  488. ammo="Erlene's Notebook",
  489. head="Hagondes Hat",
  490. neck="Thunder Gorget",
  491. ear1="Moonshade Earring",
  492. ear2="Friomisi Earring",
  493. body="Hagondes Coat +1",
  494. hands={ name="Hagondes Cuffs", augments={'"Mag.Atk.Bns." +25', "Phys. dmg. taken -3%"}},
  495. ring1="Strendu Ring",
  496. ring2="Acumen Ring",
  497. back="Toro Cape",
  498. waist="Thunder Belt",
  499. legs={ name="Hagondes Pants +1", augments={'"Mag.Atk.Bns." +27', "Phys. dmg. taken -3%"}},
  500. feet="Umbani Boots"}
  501. sets.WS["Gate of Tartarus"] = {}
  502. end
  503.  
  504. function pretarget(spell,action)
  505. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  506. cancel_spell()
  507. send_command('input /item "Echo Drops" <me>')
  508. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  509. degrade_spell(spell,Cure_Spells)
  510. elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
  511. degrade_spell(spell,Curaga_Spells)
  512. elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  513. if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  514. cancel_spell()
  515. send_command('input /ja Addendum: White <me>')
  516. elseif spell.english == "Manifestation" then
  517. cancel_spell()
  518. send_command('input /ja Accession <me>')
  519. elseif spell.english == "Alacrity" then
  520. cancel_spell()
  521. send_command('input /ja Celerity <me>')
  522. elseif spell.english == "Parsimony" then
  523. cancel_spell()
  524. send_command('input /ja Penury <me>')
  525. end
  526. elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  527. if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  528. cancel_spell()
  529. send_command('input /ja Addendum: Black <me>')
  530. elseif spell.english == "Accession" then
  531. cancel_spell()
  532. send_command('input /ja Manifestation <me>')
  533. elseif spell.english == "Celerity" then
  534. cancel_spell()
  535. send_command('input /ja Alacrity <me>')
  536. elseif spell.english == "Penury" then
  537. cancel_spell()
  538. send_command('input /ja Parsimony <me>')
  539. end
  540. end
  541. end
  542.  
  543. function precast(spell,action)
  544. if spell.type:endswith('Magic') or spell.type == "Ninjutsu" then
  545. if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  546. cancel_spell()
  547. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  548. return
  549. else
  550. if string.find(spell.english,'Cur') and spell.english ~= "Cursna" then
  551. equip(sets.Precast.Cure)
  552. elseif spell.english == "Impact" then
  553. equip(set_combine(sets.Precast.FastCast,{body="Twilight Cloak"}))
  554. elseif string.find(spell.english,'Utsusemi') then
  555. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4)'] then
  556. cancel_spell()
  557. add_to_chat(123, spell.english .. ' Canceled: [3+ Images]')
  558. return
  559. else
  560. equip(sets.Precast.FastCast)
  561. end
  562. elseif sets.Precast[spell.english] then
  563. equip(sets.Precast[spell.english])
  564. elseif sets.Precast[spell.skill] then
  565. equip(sets.Precast[spell.skill])
  566. else
  567. equip(sets.Precast.FastCast)
  568. end
  569. end
  570. elseif spell.type == "WeaponSkill" then
  571. if sets.WS[spell.english] then
  572. equip(sets.WS[spell.english])
  573. end
  574.  
  575. elseif spell.type == "JobAbility" then
  576. if sets.JA[spell.english] then
  577. equip(sets.JA[spell.english])
  578. end
  579. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  580. cast_delay(0.2)
  581. send_command('cancel Sneak')
  582. end
  583. if sets.Precast[spell.element] then
  584. equip(sets.Precast[spell.element])
  585. end
  586. if StunIndex == 1 then
  587. equip(sets.Midcast.Stun)
  588. end
  589. end
  590.  
  591. function midcast(spell,action)
  592. equipSet = {}
  593. if spell.type:endswith('Magic') or spell.type == 'Ninjutsu' or spell.type == 'BardSong' then
  594. equipSet = sets.Midcast
  595. if string.find(spell.english,'Cure') then
  596. equipSet = equipSet.Cure
  597. elseif string.find(spell.english,'Cura') then
  598. equipSet = equipSet.Curaga
  599. elseif string.find(spell.english,'Banish') then
  600. equipSet = set_combine(equipSet.Haste,{ring1="Fenian Ring"})
  601. elseif spell.english == "Stoneskin" then
  602. if buffactive.Stoneskin then
  603. send_command('cancel stoneskin')
  604. end
  605. equipSet = equipSet.Stoneskin
  606. elseif spell.english == "Sneak" then
  607. if spell.target.name == player.name and buffactive['Sneak'] then
  608. send_command('cancel sneak')
  609. end
  610. equipSet = equipSet.Haste
  611. elseif string.find(spell.english,'Utsusemi') then
  612. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
  613. send_command('@wait 1.7;cancel Copy Image*')
  614. end
  615. equipSet = equipSet.Haste
  616. elseif spell.english == 'Monomi: Ichi' then
  617. if buffactive['Sneak'] then
  618. send_command('@wait 1.7;cancel sneak')
  619. end
  620. equipSet = equipSet.Haste
  621. else
  622. if equipSet[spell.english] then
  623. equipSet = equipSet[spell.english]
  624. end
  625. if equipSet[spell.skill] then
  626. equipSet = equipSet[spell.skill]
  627. end
  628. if equipSet[AccArray[AccIndex]] then
  629. equipSet = equipSet[AccArray[AccIndex]]
  630. end
  631. if equipSet[spell.type] then
  632. equipSet = equipSet[spell.type]
  633. end
  634. if (spell.skill == '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 --
  635. equipSet = set_combine(equipSet,sets.Obi[spell.element])
  636. end
  637. if spell.skill == 'Elemental Magic' and player.hp < 1160 then
  638. equip(sets.SorcRing)
  639. end
  640. end
  641. elseif equipSet[spell.english] then
  642. equipSet = equipSet[spell.english]
  643. end
  644. equip(equipSet)
  645. if StunIndex == 1 then
  646. equip(sets.Midcast.Stun)
  647. end
  648. end
  649.  
  650. function aftercast(spell,action)
  651. if not spell.interrupted then
  652. if spell.english == 'Mana Wall' and player.equipment.feet == "Goetia Sabots +2" then
  653. disable('feet')
  654. elseif spell.english == "Sleep II" or spell.english == "Sleepga II" then -- Sleep II & Sleepga II Countdown --
  655. send_command('wait 60;input /echo Sleep Effect: [WEARING OFF IN 30 SEC.];wait 15;input /echo Sleep Effect: [WEARING OFF IN 15 SEC.];wait 10;input /echo Sleep Effect: [WEARING OFF IN 5 SEC.]')
  656. elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
  657. send_command('wait 30;input /echo Sleep Effect: [WEARING OFF IN 30 SEC.];wait 15;input /echo Sleep Effect: [WEARING OFF IN 15 SEC.];wait 10;input /echo Sleep Effect: [WEARING OFF IN 5 SEC.]')
  658. elseif spell.english == "Banish II" then -- Banish II Countdown --
  659. send_command('wait 20;input /echo Banish Effect: [WEARING OFF IN 10 SEC.]')
  660. end
  661. end
  662. status_change(player.status)
  663. end
  664.  
  665. function status_change(new,old)
  666. if Armor == 'PDT' then
  667. equip(sets.PDT)
  668. elseif buffactive["Sublimation: Activated"] then
  669. equip(sets.Sublimation)
  670. elseif new=='Engaged' then
  671. equip(sets.Melee)
  672. elseif new == 'Idle' then
  673. equip(sets.Idle[IdleArray[IdleIndex]])
  674. elseif new == 'Resting' then
  675. equip(sets.Resting)
  676. end
  677. if StunIndex == 1 then
  678. equip(sets.Midcast.Stun)
  679. end
  680. end
  681.  
  682. function buff_change(buff,gain)
  683. buff = string.lower(buff)
  684. if buff == "mana wall" and not gain then
  685. enable('feet')
  686. elseif buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  687. if gain then
  688. 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.]')
  689. else
  690. send_command('timers delete "Aftermath: Lv.3"')
  691. add_to_chat(123,'AM3: [OFF]')
  692. end
  693. elseif buff == "aftermath: lv.2" then -- AM2 Timer/Countdown --
  694. if gain then
  695. send_command('timers create "Aftermath: Lv.2" 270 down;wait 210;input /echo Aftermath: Lv.2 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.2 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.2 [WEARING OFF IN 10 SEC.]')
  696. else
  697. send_command('timers delete "Aftermath: Lv.2"')
  698. add_to_chat(123,'AM2: [OFF]')
  699. end
  700. elseif buff == 'weakness' then -- Weakness Timer --
  701. if gain then
  702. send_command('timers create "Weakness" 300 up')
  703. else
  704. send_command('timers delete "Weakness"')
  705. end
  706. end
  707. if not midaction() then
  708. status_change(player.status)
  709. end
  710. end
  711.  
  712. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  713. function self_command(command)
  714. if command == 'C1' then -- Magic Accuracy Toggle --
  715. AccIndex = (AccIndex % #AccArray) + 1
  716. add_to_chat(158,'Magic Accuracy Level: ' .. AccArray[AccIndex])
  717. status_change(player.status)
  718. elseif command == 'C5' then -- Auto Update Gear Toggle --
  719. status_change(player.status)
  720. add_to_chat(158,'Auto Update Gear')
  721. elseif command == 'C2' then -- Stun Toggle --
  722. if StunIndex == 1 then
  723. StunIndex = 0
  724. add_to_chat(123,'Stun Set: [Unlocked]')
  725. else
  726. StunIndex = 1
  727. add_to_chat(158,'Stun Set: [Locked]')
  728. end
  729. status_change(player.status)
  730. elseif command == 'C3' then -- Obi Toggle --
  731. if Obi == 'ON' then
  732. Obi = 'OFF'
  733. add_to_chat(123,'Obi: [OFF]')
  734. else
  735. Obi = 'ON'
  736. add_to_chat(158,'Obi: [ON]')
  737. end
  738. status_change(player.status)
  739. elseif command == 'C7' then -- PDT Toggle --
  740. if Armor == 'PDT' then
  741. Armor = 'None'
  742. add_to_chat(123,'PDT Set: [Unlocked]')
  743. else
  744. Armor = 'PDT'
  745. add_to_chat(158,'PDT Set: [Locked]')
  746. end
  747. status_change(player.status)
  748. elseif command == 'C8' then -- Distance Toggle --
  749. if player.target.distance then
  750. target_distance = math.floor(player.target.distance*10)/10
  751. add_to_chat(158,'Distance: '..target_distance)
  752. else
  753. add_to_chat(123,'No Target Selected')
  754. end
  755. elseif command == 'C6' then -- Idle Toggle --
  756. IdleIndex = (IdleIndex % #IdleArray) + 1
  757. add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
  758. status_change(player.status)
  759. elseif command:match('^SC%d$') then
  760. send_command('//' .. sc_map[command])
  761. end
  762. end
  763.  
  764. function actualCost(originalCost)
  765. if buffactive["Penury"] then
  766. return originalCost*.5
  767. elseif buffactive["Light Arts"] then
  768. return originalCost*.9
  769. else
  770. return originalCost
  771. end
  772. end
  773.  
  774. function degrade_spell(spell,degrade_array)
  775. spell_index = table.find(degrade_array,spell.name)
  776. if spell_index > 1 then
  777. new_spell = degrade_array[spell_index - 1]
  778. change_spell(new_spell,spell.target.raw)
  779. add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  780. end
  781. end
  782.  
  783. function change_spell(spell_name,target)
  784. cancel_spell()
  785. send_command('//'..spell_name..' '..target)
  786. end
  787.  
  788. function sub_job_change(newSubjob, oldSubjob)
  789. select_default_macro_book()
  790. end
  791.  
  792. function set_macro_page(set,book)
  793. if not tonumber(set) then
  794. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  795. return
  796. end
  797. if set < 1 or set > 10 then
  798. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  799. return
  800. end
  801.  
  802. if book then
  803. if not tonumber(book) then
  804. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  805. return
  806. end
  807. if book < 1 or book > 20 then
  808. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  809. return
  810. end
  811. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  812. else
  813. send_command('@input /macro set '..tostring(set))
  814. end
  815. end
  816.  
  817. function select_default_macro_book()
  818. -- Default macro set/book
  819. if player.sub_job == 'WHM' then
  820. set_macro_page(1, 1)
  821. elseif player.sub_job == 'RDM' then
  822. set_macro_page(1, 1)
  823. elseif player.sub_job == 'SCH' then
  824. set_macro_page(1, 1)
  825. elseif player.sub_job == 'DNC' then
  826. set_macro_page(1, 1)
  827. elseif player.sub_job == 'NIN' then
  828. set_macro_page(1, 1)
  829. elseif player.sub_job == 'SAM' then
  830. set_macro_page(1, 1)
  831. else
  832. set_macro_page(1, 2)
  833. end
  834. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement