Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.45 KB | None | 0 0
  1. -- *** Credit goes to Flippant for helping me with Gearswap *** --
  2. -- ** I Use Motenten's Macro Book Function ** --
  3.  
  4. function get_sets()
  5. include('poshack.lua')
  6. AccIndex = 1
  7. 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 --
  8. IdleIndex = 1
  9. IdleArray = {"Refresh","Movement","MP"} -- Default Idle Set Is Refresh --
  10. Armor = 'None'
  11. StunIndex = 0
  12. Obi = 'ON' -- Turn Default Obi ON or OFF Here --
  13. LowNuke = 'OFF' -- Set Default Low Tier Nuke ON or OFF Here --
  14. MB = 'OFF' -- Set Default MB ON or OFF Here --
  15. Main = 'OFF' -- Set Default Main Weapon ON or OFF Here --
  16. Elemental_Staff = 'OFF' -- Set Default Precast Elemental Staff ON or OFF Here --
  17. target_distance = 5 -- Set Default Distance Here --
  18. select_default_macro_book() -- Change Default Macro Book At The End --
  19.  
  20. Low_Tier_Spells = S{
  21. 'Fire','Aero','Water','Blizzard','Stone','Thunder','Fire II','Aero II','Water II',
  22. 'Blizzard II','Stone II','Thunder II'}
  23.  
  24. Non_Obi_Spells = S{
  25. 'Burn','Choke','Drown','Frost','Rasp','Shock','Impact','Anemohelix','Cryohelix',
  26. 'Geohelix','Hydrohelix','Ionohelix','Luminohelix','Noctohelix','Pyrohelix'}
  27.  
  28. Cure_Spells = {"Cure","Cure II","Cure III","Cure IV"} -- Cure Degradation --
  29. Curaga_Spells = {"Curaga","Curaga II"} -- Curaga Degradation --
  30. sc_map = {SC1 = "Stun", SC2 = "ThunderVI", SC3 = "BlizzardVI"} -- 3 Additional Binds. Can Change Whatever JA/WS/Spells You Like Here. Remember Not To Use Spaces. --
  31.  
  32. sets.Idle = {}
  33. -- Idle Sets --
  34. sets.Idle.Refresh = {
  35. main="Bolelabunga",
  36. sub="Genmei Shield",
  37. ammo="Pemphredo Tathlum",
  38. head="Hagondes Hat +1",
  39. body="Jhakri Robe +1",
  40. hands="Hagondes Cuffs +1",
  41. legs="Assiduity Pants +1",
  42. feet="Herald's Gaiters",
  43. neck="Loricate Torque +1",
  44. waist="Fucho-no-obi",
  45. left_ear="Moonshade Earring",
  46. right_ear="Ethereal Earring",
  47. left_ring="Woltaris Ring",
  48. right_ring="Defending Ring",
  49. back="Repulse Mantle"}
  50. sets.Idle.MP = {
  51. main="Bolelabunga",
  52. sub="Genmei Shield",
  53. ammo="Pemphredo Tathlum",
  54. head="Hagondes Hat +1",
  55. body="Jhakri Robe +1",
  56. hands="Hagondes Cuffs +1",
  57. legs="Assiduity Pants +1",
  58. feet="Herald's Gaiters",
  59. neck="Loricate Torque +1",
  60. waist="Fucho-no-obi",
  61. left_ear="Moonshade Earring",
  62. right_ear="Ethereal Earring",
  63. left_ring="Woltaris Ring",
  64. right_ring="Defending Ring",
  65. back="Repulse Mantle"}
  66. sets.Idle.Movement = set_combine(sets.Idle.Refresh,{
  67. legs="Artsieq Hose",
  68. feet="Herald's Gaiters"})
  69. sets.Resting = set_combine(sets.Idle.Movement,{})
  70.  
  71. -- PDT Set --
  72. sets.PDT = set_combine(sets.Idle.Movement,{})
  73.  
  74. -- Sublimation Set --
  75. sets.Sublimation = {}
  76.  
  77. sets.Precast = {}
  78.  
  79. -- Fastcast Set (empty = To Fix Club/Staff Issue) --
  80. sets.Precast.FastCast = {
  81. ammo="Sapience Orb",
  82. head="Nahtirah Hat",
  83. neck="Voltsurge Torque",
  84. ear1="Loquac. Earring",
  85. ear2="Enchanter Earring +1",
  86. body="Anhur Robe",
  87. hands="Hagondes Cuffs +1",
  88. ring1="Prolix Ring",
  89. ring2="Defending Ring",
  90. back="Swith Cape +1",
  91. waist="Witful Belt",
  92. legs="Psycloth Lappas",
  93. feet="Regal Pumps +1"}
  94.  
  95. -- Elemental Staves --
  96. sets.Precast.Lightning = {main='Apamajas I'}
  97. sets.Precast.Water = {main='Haoma I'}
  98. sets.Precast.Fire = {main='Atar I'}
  99. sets.Precast.Ice = {main='Vourukasha I'}
  100. sets.Precast.Wind = {main='Vayuvata I'}
  101. sets.Precast.Earth = {main='Vishrava I'}
  102. sets.Precast.Light = {main='Arka I'}
  103. sets.Precast.Dark = {main='Xsaeta I'}
  104.  
  105. -- Precast Stoneskin
  106. sets.Precast.Stoneskin = set_combine(sets.Precast.FastCast,{head="Umuthi Hat",waist="Siegel Sash"})
  107.  
  108. -- Precast Enhancing Magic
  109. sets.Precast['Enhancing Magic'] = set_combine(sets.Precast.FastCast,{waist="Siegel Sash"})
  110.  
  111. -- Precast Elemental Magic
  112. sets.Precast['Elemental Magic'] = set_combine(sets.Precast.FastCast,{})
  113.  
  114. -- Precast Cure Set --
  115. sets.Precast.Cure = set_combine(sets.Precast.FastCast, {
  116. body="Heka's Kalasiris",
  117. back="Pahtli Cape"})
  118.  
  119. -- Midcast Base Set --
  120. sets.Midcast = {}
  121.  
  122. -- Haste Set --
  123. sets.Midcast.Haste = {}
  124.  
  125. -- Cure Set --
  126. sets.Midcast.Cure = {
  127. head={ name="Vanya Hood", augments={'Healing magic skill +20','System: 2 ID: 123 Val: 6','Magic dmg. taken -3',}},
  128. body="Heka's Kalasiris",
  129. hands="Telchine Gloves",
  130. legs="Assid. Pants +1",
  131. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','System: 2 ID: 123 Val: 6','Magic dmg. taken -3',}},
  132. neck="Nodens Gorget",
  133. waist="Bishop's Sash",
  134. left_ear="Loquac. Earring",
  135. right_ear="Novia Earring",
  136. left_ring="Sirona's Ring",
  137. right_ring="Haoma's Ring",
  138. back="Tempered Cape +1"}
  139.  
  140. -- Curaga Set --
  141. sets.Midcast.Curaga = {
  142. head={ name="Vanya Hood", augments={'Healing magic skill +20','System: 2 ID: 123 Val: 6','Magic dmg. taken -3',}},
  143. body="Heka's Kalasiris",
  144. hands="Telchine Gloves",
  145. legs="Assid. Pants +1",
  146. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','System: 2 ID: 123 Val: 6','Magic dmg. taken -3',}},
  147. neck="Nodens Gorget",
  148. waist="Bishop's Sash",
  149. left_ear="Loquac. Earring",
  150. right_ear="Novia Earring",
  151. left_ring="Sirona's Ring",
  152. right_ring="Haoma's Ring",
  153. back="Tempered Cape +1"}
  154.  
  155. -- Enhancing Magic Set --
  156. sets.Midcast['Enhancing Magic'] = {
  157. head="Umuthi Hat",
  158. body="Telchine Chas.",
  159. hands="Telchine Gloves",
  160. legs="Telchine Braconi",
  161. feet="Telchine Pigaches",
  162. neck="Colossus's Torque",
  163. waist="Olympus Sash"}
  164.  
  165. -- Stoneskin Set --
  166. sets.Midcast.Stoneskin = set_combine(sets.Midcast['Enhancing Magic'],{
  167. neck="Nodens Gorget",
  168. ear2="Earthcry Earring"})
  169.  
  170. -- Cursna Set --
  171. sets.Midcast.Cursna = set_combine(sets.Midcast.Haste,{})
  172.  
  173. -- Stun Sets --
  174. sets.Midcast.Stun = {}
  175. sets.Midcast.Stun.MidACC = set_combine(sets.Midcast.Stun,{})
  176. sets.Midcast.Stun.HighACC = set_combine(sets.Midcast.Stun.MidACC,{})
  177.  
  178. -- Dark Magic Sets --
  179. sets.Midcast['Dark Magic'] = {
  180. main={ name="Grioavolr", augments={'Mag. crit. hit dmg. +7%','INT+14','Mag. Acc.+21','"Mag.Atk.Bns."+27','Magic Damage +4',}},
  181. sub="Mephitis Grip",
  182. ammo="Pemphredo Tathlum",
  183. head="Merlinic Hood",
  184. body="Merlinic Jubbah",
  185. hands="Amalric Gages",
  186. legs="Azimuth Tights +1",
  187. feet="Merlinic Crackows",
  188. neck="Sanctity Necklace",
  189. waist="Luminary Sash",
  190. left_ear="Barkarole Earring",
  191. right_ear="Digni. Earring",
  192. left_ring="Sangoma Ring",
  193. right_ring="Evanescence Ring",
  194. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  195. sets.Midcast['Dark Magic'].MidACC = set_combine(sets.Midcast['Dark Magic'],{})
  196. sets.Midcast['Dark Magic'].HighACC = set_combine(sets.Midcast['Dark Magic'].MidACC,{})
  197.  
  198. -- Aspir Set --
  199. sets.Midcast.Aspir = {
  200. waist="Fucho-no-obi",
  201. feet="Merlinic Crackows"}
  202.  
  203. -- Drain Set --
  204. sets.Midcast.Drain = {
  205. waist="Fucho-no-obi",
  206. feet="Merlinic Crackows"}
  207.  
  208. -- Low Tier Set --
  209. sets.LowNuke = {
  210. main="Lathi",
  211. sub="Mephitis Grip",
  212. ammo="Pemphredo Tathlum",
  213. head="Merlinic Hood",
  214. body="Merlinic Jubbah",
  215. hands="Amalric Gages",
  216. legs="Merlinic Shalwar",
  217. feet="Merlinic Crackows",
  218. neck="Sanctity Necklace",
  219. waist="Refoccilation Stone",
  220. left_ear="Friomisi Earring",
  221. right_ear="Barkarole Earring",
  222. left_ring="Shiva Ring",
  223. right_ring="Acumen Ring",
  224. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  225.  
  226. -- MB Set --
  227. sets.MB = {
  228. main="Lathi",
  229. sub="Mephitis Grip",
  230. ammo="Pemphredo Tathlum",
  231. head="Merlinic Hood",
  232. body="Spaekona's Coat +1",
  233. hands="Amalric Gages",
  234. legs="Merlinic Shalwar",
  235. feet="Jhakri Pigaches +1",
  236. neck="Mizukage-no-Kubikazari",
  237. waist="Refoccilation Stone",
  238. left_ear="Friomisi Earring",
  239. right_ear="Barkarole Earring",
  240. left_ring="Locus Ring",
  241. right_ring="Mujin Band",
  242. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  243.  
  244. -- Elemental Sets --
  245. sets.Midcast['Elemental Magic'] = {
  246. main="Lathi",
  247. sub="Mephitis Grip",
  248. ammo="Pemphredo Tathlum",
  249. head="Merlinic Hood",
  250. body="Spaekona's Coat +1",
  251. hands="Amalric Gages",
  252. legs="Merlinic Shalwar",
  253. feet="Merlinic Crackows",
  254. neck="Sanctity Necklace",
  255. waist="Refoccilation Stone",
  256. left_ear="Friomisi Earring",
  257. right_ear="Barkarole Earring",
  258. left_ring="Shiva Ring",
  259. right_ring="Acumen Ring",
  260. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  261. sets.Midcast['Elemental Magic'].MidACC = set_combine(sets.Midcast['Elemental Magic'],{})
  262. sets.Midcast['Elemental Magic'].HighACC = set_combine(sets.Midcast['Elemental Magic'].MidACC,{})
  263.  
  264. -- Enfeebling Sets --
  265. sets.Midcast['Enfeebling Magic'] = {
  266. main={ name="Grioavolr", augments={'Mag. crit. hit dmg. +7%','INT+14','Mag. Acc.+21','"Mag.Atk.Bns."+27','Magic Damage +4',}},
  267. sub="Mephitis Grip",
  268. ammo="Pemphredo Tathlum",
  269. head="Merlinic Hood",
  270. body="Vanya Robe",
  271. hands="Jhakri Cuff +1",
  272. legs={ name="Psycloth Lappas", augments={'MP+80','Mag. Acc.+15','"Fast Cast"+7',}},
  273. feet="Merlinic Crackows",
  274. neck="Voltsurge Torque",
  275. waist="Luminary Sash",
  276. left_ear="Barkarole Earring",
  277. right_ear="Digni. Earring",
  278. left_ring="Sangoma Ring",
  279. right_ring="Vertigo Ring",
  280. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  281. sets.Midcast['Enfeebling Magic'].MidACC = set_combine(sets.Midcast['Enfeebling Magic'],{})
  282. sets.Midcast['Enfeebling Magic'].HighACC = set_combine(sets.Midcast['Enfeebling Magic'].MidACC,{})
  283.  
  284. -- Impact Set --
  285. sets.Midcast.Impact = {
  286. body="Twilight Cloak"}
  287.  
  288. -- Meteor Set --
  289. sets.Midcast.Meteor = {}
  290.  
  291. -- Elemental Obi/Twilight Cape --
  292. sets.Obi = {}
  293. sets.Obi.Lightning = {waist='Hachirin-no-Obi'}
  294. sets.Obi.Water = {waist='Hachirin-no-Obi'}
  295. sets.Obi.Fire = {waist='Hachirin-no-Obi'}
  296. sets.Obi.Ice = {waist='Hachirin-no-Obi'}
  297. sets.Obi.Wind = {waist='Hachirin-no-Obi'}
  298. sets.Obi.Earth = {waist='Hachirin-no-Obi'}
  299. sets.Obi.Light = {waist='Hachirin-no-Obi'}
  300. sets.Obi.Dark = {waist='Hachirin-no-Obi'}
  301.  
  302. sets.JA = {}
  303. -- JA Sets --
  304. sets.JA.Manafont = {body="Arch. Coat +1"}
  305. sets.JA['Mana Wall'] = {
  306. feet="Wicce Sabots +1",
  307. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  308.  
  309. -- Melee Set --
  310. sets.Melee = set_combine(sets.Midcast.Haste,{
  311. head={ name="Hagondes Hat +1", augments={'Phys. dmg. taken -4%','Magic burst mdg.+6%',}},
  312. body={ name="Hagondes Coat +1", augments={'Phys. dmg. taken -4%','Magic dmg. taken -4%',}},
  313. hands={ name="Hagondes Cuffs +1", augments={'Phys. dmg. taken -4%','"Fast Cast"+5',}},
  314. legs="Assid. Pants +1",
  315. feet={ name="Merlinic Crackows", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Mag. Acc.+14','"Mag.Atk.Bns."+6',}},
  316. neck="Loricate Torque +1",
  317. waist="Witful Belt",
  318. left_ear={ name="Moonshade Earring", augments={'Mag. Acc.+4','Latent effect: "Refresh"+1',}},
  319. right_ear="Ethereal Earring",
  320. left_ring="Woltaris Ring",
  321. right_ring="Defending Ring",
  322. back="Repulse Mantle"})
  323.  
  324. -- Lock Main Weapon --
  325. sets.MainWeapon = {
  326. main={ name="Grioavolr", augments={'Magic burst mdg.+6%','MP+47','Mag. Acc.+11','"Mag.Atk.Bns."+27',}},
  327. sub="Mephitis Grip"}
  328.  
  329. -- WS Base Set --
  330. sets.WS = {}
  331.  
  332. sets.WS.Shattersoul = {}
  333. sets.WS.Myrkr = {}
  334. sets.WS.Vidohunir = {}
  335. sets.WS["Gate of Tartarus"] = {}
  336. sets.WS["Aeolian Edge"] = {
  337. ammo="Pemphredo Tathlum",
  338. head="Merlinic Hood",
  339. body="Merlinic Jubbah",
  340. hands="Amalric Gages",
  341. legs="Merlinic Shalwar",
  342. feet="Merlinic Crackows",
  343. neck="Sanctity Necklace",
  344. waist="Refoccilation Stone",
  345. left_ear="Friomisi Earring",
  346. right_ear="Barkarole Earring",
  347. left_ring="Shiva Ring",
  348. right_ring="Acumen Ring",
  349. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}}
  350.  
  351. -- Idle Reive Set --
  352. sets.Reive = {neck="Arciela's Grace +1"}
  353. end
  354.  
  355. function pretarget(spell,action)
  356. if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  357. cancel_spell()
  358. send_command('input /item "Echo Drops" <me>')
  359. elseif spell.type == 'WeaponSkill' and player.status == 'Engaged' then
  360. if not spell.english == 'Myrkr' and spell.target.distance > target_distance then -- Cancel WS If You Are Out Of Range --
  361. cancel_spell()
  362. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  363. return
  364. end
  365. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  366. degrade_spell(spell,Cure_Spells)
  367. elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
  368. degrade_spell(spell,Curaga_Spells)
  369. elseif spell.english == "Meteor" and not buffactive['Elemental Seal'] then -- Auto Elemental Seal When You Use Meteor --
  370. cancel_spell()
  371. send_command('input /ja "Elemental Seal" <me>;wait 1.5;input /ma "Meteor" <t>')
  372. elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  373. if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  374. cancel_spell()
  375. send_command('input /ja Addendum: White <me>')
  376. elseif spell.english == "Manifestation" then
  377. cancel_spell()
  378. send_command('input /ja Accession <me>')
  379. elseif spell.english == "Alacrity" then
  380. cancel_spell()
  381. send_command('input /ja Celerity <me>')
  382. elseif spell.english == "Parsimony" then
  383. cancel_spell()
  384. send_command('input /ja Penury <me>')
  385. end
  386. elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  387. if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  388. cancel_spell()
  389. send_command('input /ja Addendum: Black <me>')
  390. elseif spell.english == "Accession" then
  391. cancel_spell()
  392. send_command('input /ja Manifestation <me>')
  393. elseif spell.english == "Celerity" then
  394. cancel_spell()
  395. send_command('input /ja Alacrity <me>')
  396. elseif spell.english == "Penury" then
  397. cancel_spell()
  398. send_command('input /ja Parsimony <me>')
  399. end
  400. end
  401. end
  402.  
  403. function precast(spell,action)
  404. if spell.action_type == 'Magic' then
  405. if buffactive.silence or spell.target.distance > 16+target_distance then -- Cancel Magic or Ninjutsu If You Are Silenced or Out of Range --
  406. cancel_spell()
  407. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  408. return
  409. else
  410. if spell.english:startswith('Cur') and spell.english ~= "Cursna" then
  411. equip(sets.Precast.Cure)
  412. elseif spell.english == "Stoneskin" then
  413. equip(sets.Precast[spell.english])
  414. elseif spell.english == "Impact" then
  415. equip(set_combine(sets.Precast.FastCast,{body="Twilight Cloak"}))
  416. elseif spell.english == 'Utsusemi: Ni' then
  417. if buffactive['Copy Image (3)'] then
  418. cancel_spell()
  419. add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  420. return
  421. else
  422. equip(sets.Precast.FastCast)
  423. end
  424. elseif sets.Precast[spell.skill] then
  425. equip(sets.Precast[spell.skill])
  426. else
  427. equip(sets.Precast.FastCast)
  428. end
  429. end
  430. elseif spell.type == "WeaponSkill" then
  431. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  432. cancel_spell()
  433. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  434. return
  435. else
  436. if sets.WS[spell.english] then
  437. equip(sets.WS[spell.english])
  438. end
  439. end
  440. elseif spell.type == "JobAbility" then
  441. if sets.JA[spell.english] then
  442. equip(sets.JA[spell.english])
  443. end
  444. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  445. cast_delay(0.2)
  446. send_command('cancel Sneak')
  447. end
  448. if sets.Precast[spell.element] and Elemental_Staff == 'ON' then
  449. equip(sets.Precast[spell.element])
  450. end
  451. if StunIndex == 1 then
  452. equip(sets.Midcast.Stun)
  453. end
  454. if Main == 'ON' then
  455. equip(sets.MainWeapon)
  456. end
  457. end
  458.  
  459. function midcast(spell,action)
  460. equipSet = {}
  461. if spell.action_type == 'Magic' then
  462. equipSet = sets.Midcast
  463. if spell.english:startswith('Cur') and spell.english ~= "Cursna" then
  464. if spell.english:startswith('Cure') then
  465. equipSet = equipSet.Cure
  466. elseif spell.english:startswith('Cura') then
  467. equipSet = equipSet.Curaga
  468. end
  469. if world.day_element == spell.element or world.weather_element == spell.element then
  470. equipSet = set_combine(equipSet,{back="Twilight Cape",waist="Hachirin-no-Obi"})
  471. end
  472. elseif spell.english:startswith('Banish') then
  473. equipSet = set_combine(equipSet.Haste,{ring1="Fenian Ring"})
  474. elseif spell.english == "Stoneskin" then
  475. if buffactive.Stoneskin then
  476. send_command('@wait 1;cancel stoneskin')
  477. end
  478. equipSet = equipSet.Stoneskin
  479. elseif spell.english == "Sneak" then
  480. if spell.target.name == player.name and buffactive['Sneak'] then
  481. send_command('cancel sneak')
  482. end
  483. equipSet = equipSet.Haste
  484. elseif Low_Tier_Spells:contains(spell.english) and LowNuke == 'ON' then
  485. equipSet = set_combine(equipSet,sets.LowNuke)
  486. elseif spell.skill == 'Elemental Magic' and MB == 'ON' then
  487. equipSet = set_combine(equipSet,sets.MB)
  488. elseif spell.english:startswith('Utsusemi') then
  489. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then
  490. send_command('@wait 1.7;cancel Copy Image*')
  491. end
  492. equipSet = equipSet.Haste
  493. elseif spell.english == 'Monomi: Ichi' then
  494. if buffactive['Sneak'] then
  495. send_command('@wait 1.7;cancel sneak')
  496. end
  497. equipSet = equipSet.Haste
  498. elseif spell.english:startswith('Aspir') then
  499. equipSet = equipSet.Aspir
  500. elseif spell.english == "Drain" then
  501. equipSet = equipSet.Drain
  502. else
  503. if equipSet[spell.english] then
  504. equipSet = equipSet[spell.english]
  505. end
  506. if equipSet[spell.skill] then
  507. equipSet = equipSet[spell.skill]
  508. end
  509. if equipSet[AccArray[AccIndex]] then
  510. equipSet = equipSet[AccArray[AccIndex]]
  511. end
  512. if equipSet[spell.type] then
  513. equipSet = equipSet[spell.type]
  514. end
  515. if (spell.skill == 'Elemental Magic' or spell.english:startswith('Cur') or spell.english:startswith('Bio') or spell.english:startswith('Dia') or spell.english:startswith('Aspir') or spell.english == 'Drain') 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' and spell.english ~= "Cursna" then -- Use Obi Toggle To Equip Normal Waist Gear --
  516. equipSet = set_combine(equipSet,sets.Obi[spell.element])
  517. end
  518. end
  519. elseif equipSet[spell.english] then
  520. equipSet = equipSet[spell.english]
  521. end
  522. equip(equipSet)
  523. if StunIndex == 1 then
  524. equip(sets.Midcast.Stun)
  525. end
  526. if Main == 'ON' then
  527. equip(sets.MainWeapon)
  528. end
  529. end
  530.  
  531. function aftercast(spell,action)
  532. if not spell.interrupted then
  533. if spell.english == 'Mana Wall' and player.equipment.feet == "Wicce Sabots +1" then
  534. disable('feet')
  535. disable('back')
  536. elseif spell.english == "Sleep II" or spell.english == "Sleepga II" then -- Sleep II & Sleepga II Countdown --
  537. 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.]')
  538. elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
  539. 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.]')
  540. elseif spell.english == "Banish II" then -- Banish II Countdown --
  541. send_command('wait 20;input /echo Banish Effect: [WEARING OFF IN 10 SEC.]')
  542. end
  543. end
  544. status_change(player.status)
  545. end
  546.  
  547. function status_change(new,old)
  548. if Armor == 'PDT' then
  549. equip(sets.PDT)
  550. elseif buffactive["Sublimation: Activated"] then
  551. equip(sets.Sublimation)
  552. elseif new == 'Engaged' then
  553. equip(sets.Melee)
  554. elseif new == 'Idle' then
  555. equipSet = sets.Idle
  556. if equipSet[IdleArray[IdleIndex]] then
  557. equipSet = equipSet[IdleArray[IdleIndex]]
  558. end
  559. if buffactive['Reive Mark'] then -- Equip Arciela's Grace +1 During Reive --
  560. equipSet = set_combine(equipSet,sets.Reive)
  561. end
  562. equip(equipSet)
  563. elseif new == 'Resting' then
  564. equip(sets.Resting)
  565. end
  566. if StunIndex == 1 then
  567. equip(sets.Midcast.Stun)
  568. end
  569. if Main == 'ON' then
  570. equip(sets.MainWeapon)
  571. end
  572. end
  573.  
  574. function buff_change(buff,gain)
  575. buff = string.lower(buff)
  576. if buff == "mana wall" and not gain then
  577. enable('feet')
  578. enable('back')
  579. elseif buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  580. if gain then
  581. send_command('timers create "Aftermath: Lv.3" 180 down;wait 150;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 15;input /echo Aftermath: Lv.3 [WEARING OFF IN 15 SEC.];wait 5;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  582. else
  583. send_command('timers delete "Aftermath: Lv.3"')
  584. add_to_chat(123,'AM3: [OFF]')
  585. end
  586. elseif buff == 'weakness' then -- Weakness Timer --
  587. if gain then
  588. send_command('timers create "Weakness" 300 up')
  589. else
  590. send_command('timers delete "Weakness"')
  591. end
  592. end
  593. if not midaction() then
  594. status_change(player.status)
  595. end
  596. end
  597.  
  598. -- In Game: //gs c (command), Macro: /console gs c (command), Bind: gs c (command) --
  599. function self_command(command)
  600. if command == 'C1' then -- Magic Accuracy Toggle --
  601. AccIndex = (AccIndex % #AccArray) + 1
  602. add_to_chat(158,'Magic Accuracy Level: ' .. AccArray[AccIndex])
  603. status_change(player.status)
  604. elseif command == 'C5' then -- Auto Update Gear Toggle --
  605. status_change(player.status)
  606. add_to_chat(158,'Auto Update Gear')
  607. elseif command == 'C2' then -- Stun Toggle --
  608. if StunIndex == 1 then
  609. StunIndex = 0
  610. add_to_chat(123,'Stun Set: [Unlocked]')
  611. else
  612. StunIndex = 1
  613. add_to_chat(158,'Stun Set: [Locked]')
  614. end
  615. status_change(player.status)
  616. elseif command == 'C3' then -- Obi Toggle --
  617. if Obi == 'ON' then
  618. Obi = 'OFF'
  619. add_to_chat(123,'Obi: [OFF]')
  620. else
  621. Obi = 'ON'
  622. add_to_chat(158,'Obi: [ON]')
  623. end
  624. status_change(player.status)
  625. elseif command == 'C7' then -- PDT Toggle --
  626. if Armor == 'PDT' then
  627. Armor = 'None'
  628. add_to_chat(123,'PDT Set: [Unlocked]')
  629. else
  630. Armor = 'PDT'
  631. add_to_chat(158,'PDT Set: [Locked]')
  632. end
  633. status_change(player.status)
  634. elseif command == 'C15' then -- LowNuke Toggle --
  635. if LowNuke == 'ON' then
  636. LowNuke = 'OFF'
  637. add_to_chat(123,'Low Nuke: [OFF]')
  638. else
  639. LowNuke = 'ON'
  640. add_to_chat(158,'Low Nuke: [ON]')
  641. end
  642. status_change(player.status)
  643. elseif command == 'C9' then -- MB Toggle --
  644. if MB == 'ON' then
  645. MB = 'OFF'
  646. add_to_chat(123,'MB: [OFF]')
  647. else
  648. MB = 'ON'
  649. add_to_chat(158,'MB: [ON]')
  650. end
  651. status_change(player.status)
  652. elseif command == 'C17' then -- Main Weapon Toggle --
  653. if Main == 'ON' then
  654. Main = 'OFF'
  655. add_to_chat(123,'Main Weapon: [Unlocked]')
  656. else
  657. Main = 'ON'
  658. add_to_chat(158,'Main Weapon: [Locked]')
  659. end
  660. status_change(player.status)
  661. elseif command == 'C8' then -- Distance Toggle --
  662. if player.target.distance then
  663. target_distance = math.floor(player.target.distance*10)/10
  664. add_to_chat(158,'Distance: '..target_distance)
  665. else
  666. add_to_chat(123,'No Target Selected')
  667. end
  668. elseif command == 'C6' then -- Idle Toggle --
  669. IdleIndex = (IdleIndex % #IdleArray) + 1
  670. add_to_chat(158,'Idle Set: '..IdleArray[IdleIndex])
  671. status_change(player.status)
  672. elseif command:match('^SC%d$') then
  673. send_command('//' .. sc_map[command])
  674. end
  675. end
  676.  
  677. function actualCost(originalCost)
  678. if buffactive["Penury"] then
  679. return originalCost*.5
  680. elseif buffactive["Light Arts"] then
  681. return originalCost*.9
  682. else
  683. return originalCost
  684. end
  685. end
  686.  
  687. function degrade_spell(spell,degrade_array)
  688. spell_index = table.find(degrade_array,spell.name)
  689. if spell_index > 1 then
  690. new_spell = degrade_array[spell_index - 1]
  691. change_spell(new_spell,spell.target.raw)
  692. add_to_chat(8,spell.name..' Canceled: ['..player.mp..'/'..player.max_mp..'MP::'..player.mpp..'%] Casting '..new_spell..' instead.')
  693. end
  694. end
  695.  
  696. function change_spell(spell_name,target)
  697. cancel_spell()
  698. send_command('//'..spell_name..' '..target)
  699. end
  700.  
  701. function sub_job_change(newSubjob, oldSubjob)
  702. select_default_macro_book()
  703. end
  704.  
  705. function set_macro_page(set,book)
  706. if not tonumber(set) then
  707. add_to_chat(123,'Error setting macro page: Set is not a valid number ('..tostring(set)..').')
  708. return
  709. end
  710. if set < 1 or set > 10 then
  711. add_to_chat(123,'Error setting macro page: Macro set ('..tostring(set)..') must be between 1 and 10.')
  712. return
  713. end
  714.  
  715. if book then
  716. if not tonumber(book) then
  717. add_to_chat(123,'Error setting macro page: book is not a valid number ('..tostring(book)..').')
  718. return
  719. end
  720. if book < 1 or book > 20 then
  721. add_to_chat(123,'Error setting macro page: Macro book ('..tostring(book)..') must be between 1 and 20.')
  722. return
  723. end
  724. send_command('@input /macro book '..tostring(book)..';wait .1;input /macro set '..tostring(set))
  725. else
  726. send_command('@input /macro set '..tostring(set))
  727. end
  728. end
  729.  
  730. function select_default_macro_book()
  731. -- Default macro set/book
  732. if player.sub_job == 'WHM' then
  733. set_macro_page(1, 6)
  734. elseif player.sub_job == 'RDM' then
  735. set_macro_page(1, 6)
  736. elseif player.sub_job == 'SCH' then
  737. set_macro_page(1, 6)
  738. elseif player.sub_job == 'DNC' then
  739. set_macro_page(1, 6)
  740. elseif player.sub_job == 'NIN' then
  741. set_macro_page(1, 6)
  742. else
  743. set_macro_page(1, 6)
  744. end
  745. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement