Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.04 KB | None | 0 0
  1. function get_sets()
  2.  
  3.  
  4.  
  5. send_command('bind f9 gs c toggle TP set')
  6.  
  7. send_command('bind !f10 gs c toggle Weaponskill sets')
  8. send_command('bind f10 gs c toggle Idle set')
  9.  
  10. function file_unload()
  11.  
  12. send_command('unbind !f10')
  13.  
  14. send_command('unbind f9')
  15. send_command('unbind f10')
  16.  
  17.  
  18.  
  19. end
  20.  
  21.  
  22. -- TP/Engaged sets --
  23. sets.TP = {}
  24. sets.TP.index = {'Fodder', 'HAcc', 'PDT'}
  25. TP_index = 1
  26.  
  27. sets.TP.Fodder = {ammo="Black Tathlum",
  28. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  29. body="Taeon Tabard",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  30. back="Atheling Mantle",waist="Windbuffet Belt",legs="Taeon Tights",feet="Taeon Boots"}
  31.  
  32. sets.TP.HAcc = {ammo="Jukukik Feather",
  33. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  34. body="Acro Surcoat",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  35. back="Updraft Mantle",waist="Anguinus Belt",legs="Taeon Tights",feet="Taeon Boots"}
  36.  
  37. sets.TP.PDT = {ammo="Black Tathlum",
  38. head="Taeon Chapeau",neck="Twilight Torque",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  39. body="Terminal Plate",hands="Taeon Gloves",ring1="Defending Ring",ring2="Cacoethic Ring",
  40. back="Updraft Mantle",waist="Flume Belt",legs="Taeon Tights",feet="Taeon Boots"}
  41.  
  42.  
  43.  
  44. -- Idle Sets --
  45. sets.Idle = {}
  46. sets.Idle.index = {'Refresh','Regen'}
  47. Idle_index = 1
  48.  
  49.  
  50. sets.Idle.Regen = {ammo="Bibiki Seashell",
  51. head="Crimson Mask",neck="Orochi Nodowa",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  52. body="Barone Corazza",hands="Taeon Gloves",ring1="Sheltered Ring",ring2="Cacoethic Ring",
  53. back="Boxer's Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Taeon Boots"}
  54.  
  55. sets.Idle.Refresh = {ammo="Bibiki Seashell",
  56. head="Wivre Hairpin",neck="Orochi Nodowa",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  57. body="Terminal Plate",hands="Taeon Gloves",ring1="Sheltered Ring",ring2="Cacoethic Ring",
  58. back="Boxer's Mantle",waist="Flume Belt",legs="Crimson Cuisses",feet="Taeon Boots"}
  59.  
  60. -- Precast Spell sets --
  61. sets.precast = {}
  62. sets.precast.FC = {}
  63.  
  64. sets.precast.FC.base = {ear1="Loquacious Earring", body="Taeon Tabard", legs="Homam Cosciales"}
  65. sets.precast.FC.Utsu = set_combine(sets.precast.FC.base,{neck="Magoraga Beads"})
  66.  
  67. --Midcast for faster Recast--
  68. sets.midcast = {}
  69.  
  70. sets.midcast.FastRecast = set_combine(sets.TP.Reg,{ear1="Loquacious Earring", legs="Homam Cosciales"})
  71. sets.midcast.ProShell = set_combine(sets.midcast.Enhancing,{ring1="Sheltered Ring"})
  72.  
  73. --Phalanx Utility--
  74. sets.Utility = {}
  75.  
  76. --WS Sets --
  77.  
  78. sets.WS = {}
  79.  
  80. sets.WS = {ammo="Thew Bomblet",
  81. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  82. body="Taeon Tabard",hands="Taeon Gloves",ring1="Flame Ring",ring2="Cacoethic Ring",
  83. back="Updraft Mantle",waist="Fotia Belt",legs="Taeon Tights",feet="Taeon Boots"}
  84.  
  85. -- Wyvern and healing related sets
  86.  
  87. sets.HB = {ammo="Bibiki Seashell",
  88. head="Taeon Chapeau",neck="Chanoix's Gorget",ear2="Ethereal Earring",
  89. body="Taeon Tabard",hands="Taeon Gloves",
  90. back="Updraft Mantle",waist="Glassblower's Belt",legs="Taeon Tights",feet="Taeon Boots"}
  91. sets.HB.Pre = {head="Drachen Armet"}
  92. sets.HB.Mid = {ammo="Bibiki Seashell",
  93. head="Wyrm Armet +2",neck="Lancer's Torque",ear1="Lancer's Earring",
  94. body="Wyvern Mail",hands="Ostreger Mitts",
  95. back="Updraft Mantle",waist="Glassblower's Belt",legs="Drachen Brais +1",feet="Wyrm Greaves +2"}
  96.  
  97. sets.Pet = {}
  98. -- Wyvern +HP Set --
  99. sets.Pet.WyvernHP = {
  100. body="Wyvern Mail",neck="Chanoix's Gorget",hands="Ostreger Mitts",
  101. back="Updraft Mantle",legs="Drachen Brais +1",feet="Wyrm Greaves +2"}
  102.  
  103. sets.Pet["Steady Wing"] = set_combine(sets.Pet.WyvernHP)
  104.  
  105. sets.Pet["Smiting Breath"] = {
  106. head="Wyrm Armet +2",
  107. neck="Lancer's Torque",
  108. ear1="Dragoon's Earring",
  109. waist="Glassblower's Belt",
  110. back="Updraft Mantle"}
  111. -- Waltz set (chr and vit)
  112. sets.precast.Waltz = {ammo="Bibiki Seashell",
  113. head="Taeon Chapeau",
  114. body="Taeon Tabard",hands="Taeon Gloves",
  115. waist="Wyrm Belt",legs="Taeon Tights",feet="Taeon Boots"}
  116.  
  117. -- Don't need any special gear for Healing Waltz.
  118. sets.precast.Waltz['Healing Waltz'] = {}
  119.  
  120. sets.midcast.Breath =
  121. set_combine(
  122. sets.midcast.FastRecast,
  123. { head="Wyrm Armet +2" })
  124.  
  125. -- JA Sets for Precast Function --
  126. sets.JA = {}
  127.  
  128. sets.JA.Angon = {ammo="Angon",ear1="Dragoon's Earring"}
  129. sets.JA.Jump = {ammo="Astrolabe",
  130. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  131. body="Acro Surcoat",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  132. back="Atheling Mantle",waist="Windbuffet Belt",legs="Taeon Tights",feet="Taeon Boots"}
  133. sets.JA['Ancient Circle'] = {legs="Drachen Brais +1"}
  134. sets.JA['High Jump'] = {ammo="Astrolabe",
  135. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  136. body="Acro Surcoat",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  137. back="Atheling Mantle",waist="Windbuffet Belt",legs="Taeon Tights",feet="Taeon Boots"}
  138. sets.JA['Soul Jump'] = {ammo="Astrolabe",
  139. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  140. body="Acro Surcoat",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  141. back="Atheling Mantle",waist="Windbuffet Belt",legs="Lancer's Cuissots +2",feet="Taeon Boots"}
  142. sets.JA['Spirit Jump'] = {ammo="Astrolabe",
  143. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  144. body="Acro Surcoat",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  145. back="Atheling Mantle",waist="Windbuffet Belt",legs="Lancer's Cuissots +2",feet="Lncr. Schynbld. +2"}
  146. sets.JA['Super Jump'] = {ammo="Astrolabe",
  147. head="Taeon Chapeau",neck="Shifting Neck. +1",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  148. body="Acro Surcoat",hands="Taeon Gloves",ring1="Enlivened Ring",ring2="Cacoethic Ring",
  149. back="Atheling Mantle",waist="Windbuffet Belt",legs="Lancer's Cuissots +2",feet="Taeon Boots"}
  150. sets.JA['Spirit Link'] = {hands="Lncr. Vmbrc. +2"}
  151. sets.JA['Call Wyvern'] = {body="Wyrm Mail +1"}
  152. sets.JA['Deep Breathing'] = {}
  153. sets.JA['Spirit Surge'] = {}
  154.  
  155. --Copy and pasted set from Snprphnx_SCH example--
  156. --Obis--
  157. sets.Obi = {}
  158. sets.Obi.Fire = {waist='Karin Obi',ring2='Zodiac Ring'}
  159. sets.Obi.Earth = {waist='Dorin Obi',ring2='Zodiac Ring'}
  160. sets.Obi.Water = {waist='Suirin Obi',ring2='Zodiac Ring'}
  161. sets.Obi.Wind = {waist='Furin Obi',ring2='Zodiac Ring'}
  162. sets.Obi.Ice = {waist='Hyorin Obi',ring2='Zodiac Ring'}
  163. sets.Obi.Thunder = {waist='Rairin Obi',ring2='Zodiac Ring'}
  164. sets.Obi.Light = {waist='Korin Obi',ring2='Zodiac Ring'}
  165. sets.Obi.Dark = {waist='Anrin Obi',ring2='Zodiac Ring'}
  166.  
  167. -----Tengu
  168. --sets.tengu = {}
  169.  
  170. end
  171.  
  172.  
  173. --Precast Actions--
  174.  
  175. function pretarget(spell,action)
  176. if midaction() or pet_midaction() then
  177. cancel_spell()
  178. return
  179. elseif spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
  180. cancel_spell()
  181. send_command('input /item "Echo Drops" <me>')
  182. elseif spell.english == "Spirit Jump" and not pet.isvalid then -- Change Spirit Jump To Jump If Wyvern Is Not Present --
  183. cancel_spell()
  184. send_command('Jump')
  185. elseif spell.english == "Soul Jump" and not pet.isvalid then -- Change Soul Jump To High Jump If Wyvern Is Not Present --
  186. cancel_spell()
  187. send_command('HighJump')
  188. elseif spell.english == "Dismiss" and pet.hpp < 100 then -- Cancel Dismiss If Wyvern's HP Is Under 100% --
  189. cancel_spell()
  190. add_to_chat(123, spell.english .. ' Canceled: [' .. pet.hpp .. ']')
  191. return
  192. elseif spell.english == "Call Wyvern" and pet.isvalid then -- Change Call Wyvern To Dismiss If Wyvern Is Present --
  193. cancel_spell()
  194. send_command('Dismiss')
  195. elseif spell.english == "Berserk" and buffactive.Berserk then -- Change Berserk To Aggressor If Berserk Is On --
  196. cancel_spell()
  197. send_command('Aggressor')
  198. elseif spell.english == "Seigan" and buffactive.Seigan then -- Change Seigan To Third Eye If Seigan Is On --
  199. cancel_spell()
  200. send_command('ThirdEye')
  201. elseif spell.english == "Meditate" and player.tp > 2500 then -- Cancel Meditate If TP Is Above 2500 --
  202. cancel_spell()
  203. add_to_chat(123, spell.name .. ' Canceled: ['..player.tp..' TP]')
  204. elseif spell.type == "WeaponSkill" and target_distance > 3
  205. and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
  206. cancel_spell()
  207. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  208. return
  209. elseif spell.english:ifind("Cure") and player.mp<actualCost(spell.mp_cost) then
  210. degrade_spell(spell,Cure_Spells)
  211. elseif spell.english:ifind("Curaga") and player.mp<actualCost(spell.mp_cost) then
  212. degrade_spell(spell,Curaga_Spells)
  213. end
  214. end
  215.  
  216.  
  217. function precast(spell,action)
  218. if midaction() or pet_midaction() then
  219. cancel_spell()
  220. return
  221. elseif spell.type == "WeaponSkill" then
  222. if player.status ~= 'Engaged' then -- Cancel WS If You Are Not Engaged. Can Delete It If You Don't Need It --
  223. cancel_spell()
  224. add_to_chat(123,'Unable To Use WeaponSkill: [Disengaged]')
  225. return
  226. else
  227. equipSet = sets.WS
  228. if equipSet[spell.english] then
  229. equipSet = equipSet[spell.english]
  230. end
  231. equip(equipSet)
  232. end
  233. elseif spell.type == "JobAbility" then
  234. equipSet = sets.JA
  235. if equipSet[spell.english] then
  236. equipSet = equipSet[spell.english]
  237. end
  238. equip(equipSet)
  239. elseif spell.action_type == 'Magic' then
  240. if buffactive.silence or spell.target.distance > 21 then
  241. cancel_spell()
  242. add_to_chat(123, spell.name..' Canceled: [Silenced or Out of Casting Range]')
  243. return
  244. else
  245. if spell.english == 'Utsusemi: Ni' then
  246. if buffactive['Copy Image (3)'] then
  247. cancel_spell()
  248. add_to_chat(123, spell.name .. ' Canceled: [3 Images]')
  249. return
  250. else
  251. equip(sets.Precast.FastCast)
  252. end
  253. end
  254. end
  255. elseif spell.type == "Waltz" then
  256. refine_waltz(spell,action)
  257. equip(sets.Waltz)
  258. elseif spell.english == 'Spectral Jig' and buffactive.Sneak then
  259. cast_delay(0.2)
  260. send_command('cancel Sneak')
  261. elseif spell.type == "PetCommand" then
  262. equip(sets.Pet[spell.english])
  263. end
  264. end
  265.  
  266. --Midcast functions for spells--
  267.  
  268. function midcast(spell,action)
  269. if pet_midaction() then
  270. return
  271. elseif spell.action_type == 'Magic' then
  272. if spell.english == "Stoneskin" then
  273. if buffactive.Stoneskin then
  274. send_command('@wait 2.8;cancel stoneskin')
  275. end
  276. equip(sets.Midcast.Stoneskin)
  277. elseif spell.english:startswith('Protect') or spell.english:startswith('Shell') then
  278. if spell.target.name == player.name then
  279. equipSet = set_combine(equipSet,{ring1="Sheltered Ring"})
  280. end
  281. elseif spell.english == "Sneak" then
  282. if spell.target.name == player.name and buffactive['Sneak'] then
  283. send_command('cancel sneak')
  284. end
  285. equip(sets.midcast.FastRecast)
  286. elseif spell.english:startswith('Utsusemi') then
  287. if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)'] or buffactive['Copy Image (3)']) then
  288. send_command('@wait 1.7;cancel Copy Image*')
  289. end
  290. equip(sets.Midcast.Haste)
  291. elseif spell.english == 'Monomi: Ichi' then
  292. if buffactive['Sneak'] then
  293. send_command('@wait 1.7;cancel sneak')
  294. end
  295. equip(sets.Midcast.Haste)
  296. elseif Healer_Type_Wyvern:contains(player.sub_job) and player.hpp < 51 and pet.isvalid then
  297. equip(sets.PreHB)
  298. elseif Hybrid_Type_Wyvern:contains(player.sub_job) and player.hpp < 34 and pet.isvalid then
  299. equip(sets.PreHB)
  300. else
  301. equip(sets.midcast.FastRecast)
  302. end
  303. end
  304. end
  305.  
  306. function aftercast(spell,action)
  307. if pet_midaction() then
  308. return
  309. elseif not spell.interrupted then
  310. if spell.type == "WeaponSkill" then
  311. send_command('wait 0.2;gs equip TP')
  312. elseif spell.english == "Angon" then -- Angon Timer/Countdown --
  313. timer_angon()
  314. send_command('wait 80;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;timers delete "Angon";input /echo '..spell.name..': [OFF]')
  315. elseif spell.english == "Ancient Circle" then -- Ancient Circle Countdown --
  316. send_command('wait 260;input /echo '..spell.name..': [WEARING OFF IN 10 SEC.];wait 10;input /echo '..spell.name..': [OFF]')
  317. end
  318. elseif not spell.type == "PetCommand" then
  319. status_change(player.status)
  320. end
  321. end
  322.  
  323.  
  324. function status_change(new,old)
  325. if new == 'Engaged' then
  326. equipSet = (sets.TP[sets.TP.index[engaged_ind]])
  327. else
  328. equipSet = (sets.Idle[sets.Idle.index[Idle_ind]])
  329. end
  330. equip(equipSet)
  331. end
  332.  
  333. function buff_change(buff,gain)
  334. buff = string.lower(buff)
  335. --if buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  336. -- if gain then
  337. -- 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.]')
  338. -- else
  339. -- send_command('timers delete "Aftermath: Lv.3"')
  340. -- add_to_chat(123,'AM3: [OFF]')
  341. -- end
  342. if buff == 'weakness' then -- Weakness Timer --
  343. if gain then
  344. send_command('timers create "Weakness" 300 up')
  345. else
  346. send_command('timers delete "Weakness"')
  347. end
  348. end
  349. if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then -- Equip Berserker's Torque When You Are Asleep & Have 200+ HP --
  350. equip({neck="Berserker's Torque"})
  351. else
  352. if not midaction() and not pet_midaction() then
  353. status_change(player.status)
  354. end
  355. end
  356. end
  357.  
  358. function pet_midcast(spell,action)
  359. if spell.english:startswith('Healing') then
  360. equip(sets.Healing_Breath)
  361. elseif spell.target.type == 'MONSTER' then
  362. equip(sets.Elemental_Breath)
  363. end
  364. end
  365.  
  366. function pet_aftercast(spell,action)
  367. status_change(player.status)
  368. end
  369.  
  370. function pet_change(pet,gain)
  371. status_change(player.status)
  372. end
  373.  
  374.  
  375.  
  376. --Toggle Command functions--
  377. --Gearswap direct command = //gs c toggle 'x' set
  378. --Macro line = console gs c toggle x set
  379. --ex: console gs c toggle TP set
  380. -- Index is set to 1 or 'Reg', press button once to switch to 'Acc', and so on.
  381.  
  382. function self_command(command)
  383. if command == 'toggle TP set' then
  384. if TP_index < #sets.TP.index then
  385. TP_index = TP_index +1
  386. else TP_index = 1 end
  387. send_command('@ input /echo >>> TP set changed to '..sets.TP.index[TP_index]..' ')
  388. equip(sets.TP[sets.TP.index[TP_index]])
  389.  
  390. elseif command == 'toggle Idle set' then
  391. Idle_index = Idle_index +1
  392. if Idle_index > #sets.Idle.index then Idle_index = 1 end
  393. send_command('@ input /echo >>> Idle set changed to '..sets.Idle.index[Idle_index]..' ')
  394. equip(sets.Idle[sets.Idle.index[Idle_index]])
  395.  
  396. end
  397.  
  398. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement