Advertisement
Guest User

Warusha SCH Fastcast Issues

a guest
Aug 5th, 2017
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.11 KB | None | 0 0
  1. include('organizer-lib.lua')
  2. -------------------------------------------------------------------------------------------------------------------
  3. -- Setup functions for this job. Generally should not be modified.
  4. -------------------------------------------------------------------------------------------------------------------
  5.  
  6. -- Initialization function for this job file.
  7. function get_sets()
  8. mote_include_version = 2
  9. -- Load and initialize the include file.
  10. include('Mote-Include.lua')
  11. end
  12.  
  13.  
  14. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  15. function job_setup()
  16.  
  17. end
  18.  
  19. -------------------------------------------------------------------------------------------------------------------
  20. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  21. -------------------------------------------------------------------------------------------------------------------
  22.  
  23. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  24. function user_setup()
  25. state.OffenseMode:options('None', 'Normal', 'Acc')
  26. state.WeaponskillMode:options('Normal', 'Acc')
  27. state.CastingMode:options('Normal', 'Resistant', 'CMP', 'OccultAcumen', 'MagicBurst')
  28. state.IdleMode:options('Normal', 'PDT', 'MDT')
  29.  
  30. MagicBurstIndex = 0
  31. state.MagicBurst = M(false, 'Magic Burst')
  32. state.ConsMP = M(false, 'Seidr Cotehardie')
  33. state.Occult = M(false, 'Occult Mode')
  34.  
  35. send_command('bind ^` gs c toggle MagicBurst')
  36. send_command('bind !` gs c toggle ConsMP')
  37. send_command('bind ^= gs c toggle Occult')
  38.  
  39. select_default_macro_book()
  40. end
  41.  
  42. -- Called when this job file is unloaded (eg: job change)
  43. function user_unload()
  44. send_command('unbind ^`')
  45. send_command('unbind @`')
  46. send_command('unbind !`')
  47. end
  48.  
  49.  
  50. -- Define sets and vars used by this job file.
  51. function init_gear_sets()
  52. --------------------------------------
  53. -- Start defining the sets
  54. --------------------------------------
  55.  
  56. MdmgHead ={name="Merlinic Hood", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','"Conserve MP"+4','INT+14','Mag. Acc.+15','"Mag.Atk.Bns."+12',}}
  57. MaccHead ={name="Merlinic Hood", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','"Conserve MP"+4','INT+14','Mag. Acc.+15','"Mag.Atk.Bns."+12',}}
  58. MaccBody = {name="Merlinic Jubbah", augments={'Mag. Acc.+30','"Drain" and "Aspir" potency +7','INT+12',}}
  59. MaccLegs ={name="Merlinic Shalwar", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','Magic burst dmg.+2%','INT+5','Mag. Acc.+14',}}
  60. MaccFeet = {name="Merlinic Crackows", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Magic burst dmg.+11%','MND+10','Mag. Acc.+9',}}
  61. FCHead = {name="Merlinic Hood", augments={'"Fast Cast"+7'}}
  62. FCBody= {name="Merlinic Jubbah", augments={'"Fast Cast"+7'}}
  63. FCLegs = {name="Kaykaus Tights +1"}
  64. FCFeet = {name="Merlinic Crackows", augments={'"Fast Cast"+7'}}
  65. FCBack = {name="Lugh's Cape", augments={'"Fast Cast"+10'}}
  66.  
  67. -- Precast Sets
  68.  
  69. -- Precast sets to enhance JAs
  70. sets.precast.JA = {}
  71. sets.precast.JA.Enlightenment = {body="Peda. Gown +1"}
  72. sets.precast.JA['Tabula Rasa'] = {legs="Pedagogy Pants +1"}
  73.  
  74. sets.enh = {}
  75. sets.enh.Klimaform = {feet="Arbatel Loafers +1"}
  76. sets.enh.Perpetuance = {hands="Arbatel Bracers +1"}
  77.  
  78. sets.Max_MP = {
  79. main="Hvergelmir",
  80. sub="Niobid Strap",
  81. ammo="Strobilus",
  82. head={ name="Amalric Coif +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
  83. body={ name="Weather. Robe +1", augments={'MP+120',}},
  84. hands={ name="Otomi Gloves", augments={'HP+30','MP+30','MP+30',}},
  85. legs={ name="Amalric Slops +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
  86. feet={ name="Amalric Nails +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
  87. neck="Dualism Collar +1",
  88. waist="Shinjutsu-no-Obi +1",
  89. left_ear="Evans Earring",
  90. right_ear="Etiolation Earring",
  91. left_ring="Mephitas's Ring +1",
  92. right_ring="Mephitas's Ring",
  93. }
  94.  
  95. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
  96.  
  97. sets.precast.FC = {
  98. main="Hvergelmir",
  99. sub="Clerisy Strap +1",
  100. ammo="Impatiens",
  101. head="Amalric Coif +1",
  102. body=FCBody,
  103. hands="Academic's Bracers +3",
  104. legs={ name="Amalric Slops +1", augments={'MP+80','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
  105. feet="Amalric Nails +1",
  106. neck="Orunmila's Torque",
  107. waist="Witful Belt",
  108. right_ear="Evans Earring",
  109. left_ear="Etiolation Earring",
  110. left_ring="Kishar Ring",
  111. right_ring="Lebeche Ring",
  112. back="Perimede Cape",
  113. }
  114.  
  115. sets.precast.FC['Tupsimati'] = {
  116. ammo="Impatiens",
  117. head=FCHead,
  118. body=FCBody,
  119. hands="Academic's Bracers +3",
  120. legs=FCLegs,
  121. feet=FCFeet,
  122. neck="Orunmila's Torque",
  123. waist="Witful Belt",
  124. left_ear="Enchntr. Earring +1",
  125. right_ear="Loquac. Earring",
  126. left_ring="Kishar Ring",
  127. right_ring="Rahab Ring",
  128. back=FCBack,
  129. }
  130. sets.precast.FC['Khatvanga'] = {
  131. ammo="Impatiens",
  132. head=FCHead,
  133. body=FCBody,
  134. hands="Academic's Bracers +3",
  135. legs=FCLegs,
  136. feet=FCFeet,
  137. neck="Orunmila's Torque",
  138. waist="Witful Belt",
  139. left_ear="Enchntr. Earring +1",
  140. right_ear="Loquac. Earring",
  141. left_ring="Kishar Ring",
  142. right_ring="Rahab Ring",
  143. back=FCBack,
  144. }
  145.  
  146. sets.precast.Grimoire = {feet="Acad. Loafers +3"}
  147.  
  148. -- Weaponskill sets
  149. -- Default set for any weaponskill that isn't any more specifically defined
  150. sets.precast.WS = set_combine(sets.engaged,{
  151. ammo="Hasty Pinion +1",
  152. head="Jhakri Coronal +1",
  153. neck="Fotia Gorget",
  154. ear1="Moonshade Earring",
  155. ear2="Telos Earring",
  156. body={name="Telchine Chasuble", augments={'"Store TP" +5'}},
  157. hands="Jhakri Cuffs +2",
  158. ring1="Shiva Ring +1",
  159. ring2="Shiva Ring +1",
  160. back="Lugh's Cape",
  161. waist="Fotia Belt",
  162. legs="Jhakri Slops +2",
  163. feet="Jhakri Pigaches +2"})
  164.  
  165. sets.precast.WS['Myrkr'] = set_combine(sets.Max_MP,{
  166. ear2="Moonshade Earring",
  167. })
  168.  
  169. sets.precast.WS['Omniscience'] = {
  170. ammo="Pemphredo Tathlum",
  171. head="Pixie Hairpin +1",
  172. neck="Saevus Pendant +1",
  173. ear2="Regal Earring",
  174. ear1="Ishvara Earring",
  175. body="Amalric Doublet +1",
  176. hands="Jhakri Cuffs +2",
  177. ring1="Stikini Ring +1",
  178. ring2="Archon Ring",
  179. back={ name="Lugh's Cape", augments={'INT+20','Accuracy+20 Attack+20','INT+10','Weapon skill damage +10%',}},
  180. waist="Eschan Stone",
  181. legs="Amalric Slops +1",
  182. feet="Amalric Nails +1"
  183. }
  184.  
  185. sets.precast.WS['Cataclysm'] = {
  186. ammo="Pemphredo Tathlum",
  187. head="Pixie Hairpin +1",
  188. neck="Fotia Gorget",
  189. ear1="Moonshade Earring",
  190. ear2="Ishvara Earring",
  191. body="Amalric Doublet +1",
  192. hands="Jhakri Cuffs +2",
  193. ring1="Shiva Ring +1",
  194. ring2="Archon Ring",
  195. back={ name="Lugh's Cape", augments={'INT+20','Accuracy+20 Attack+20','INT+10','Weapon skill damage +10%',}},
  196. waist="Fotia Belt",
  197. legs="Amalric Slops +1",
  198. feet="Amalric Nails +1"
  199. }
  200. -- Midcast Sets
  201.  
  202. sets.midcast = {}
  203. sets.midcast['Elemental Magic'] = {
  204. main="Tupsimati",
  205. sub="Enki Strap",
  206. ammo="Pemphredo Tathlum",
  207. head={ name="Merlinic Hood", augments={'Mag. Acc.+23 "Mag.Atk.Bns."+23','"Conserve MP"+4','INT+14','Mag. Acc.+15','"Mag.Atk.Bns."+12',}},
  208. neck="Saevus Pendant +1",
  209. ear1="Barkarole Earring",
  210. ear2="Regal Earring",
  211. body="Amalric Doublet +1",
  212. hands="Amalric Gages +1",
  213. ring1="Shiva Ring +1",
  214. ring2="Shiva Ring +1",
  215. back={ name="Lugh's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
  216. waist="Eschan Stone",
  217. legs="Amalric Slops +1",
  218. feet="Amalric Nails +1",
  219. }
  220. sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
  221. neck="Sanctity Necklace",
  222. body="Academic's Gown +3"
  223. })
  224.  
  225. sets.midcast['Elemental Magic'].CMP = set_combine(sets.midcast['Elemental Magic'], {
  226. body="Seidr Cotehardie",
  227. })
  228. sets.midcast['Elemental Magic'].Occult = set_combine(sets.midcast['Elemental Magic'], {
  229. ammo="Seraphic Ampulla",
  230. head="Mallquis Chapeau +1",
  231. legs="Perdition Slops",
  232. waist="Oneiros Rope"
  233. })
  234.  
  235. sets.midcast['Elemental Magic'].MagicBurst = set_combine(sets.midcast['Elemental Magic'], {
  236. main={ name="Akademos", augments={'INT+15','"Mag.Atk.Bns."+15','Mag. Acc.+15',}},
  237. head={ name="Merlinic Hood", augments={'Mag. Acc.+21 "Mag.Atk.Bns."+21','Magic burst dmg.+5%','INT+7','Mag. Acc.+15','"Mag.Atk.Bns."+14',}},
  238. neck="Mizukage-no-Kubikazari",
  239. lear="Static Earring",
  240. lring="Mujin Band",
  241. feet={name="Merlinic Crackows", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Magic burst dmg.+8%','INT+10','Mag. Acc.+1','"Mag.Atk.Bns."+11',}},
  242. })
  243. sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'].Occult, {head=empty,body="Twilight Cloak",neck="Combatant's Torque"})
  244.  
  245. sets.midcast.Helix = sets.midcast['Elemental Magic']
  246. sets.midcast.Helix.Resistant = sets.midcast['Elemental Magic'].Resistant
  247. sets.midcast.Helix.Occult = sets.midcast['Elemental Magic']
  248. sets.midcast.Helix.MagicBurst = set_combine(sets.midcast['Elemental Magic'].MagicBurst, {
  249. main="Tupsimati",
  250. })
  251. sets.midcast['Dark Magic'] = {
  252. ammo="Strobilus",
  253. head="Pixie Hairpin +1",
  254. body={ name="Helios Jacket", augments={'Mag. Acc.+22','"Drain" and "Aspir" potency +10','MP+21',}},
  255. hands={ name="Helios Gloves", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','"Drain" and "Aspir" potency +10','MP+35',}},
  256. legs="Helios Spats",
  257. feet={ name="Merlinic Crackows", augments={'Mag. Acc.+27','"Drain" and "Aspir" potency +11','INT+4','"Mag.Atk.Bns."+3',}},
  258. neck="Erra Pendant",
  259. waist="Fucho-no-Obi",
  260. ear2="Regal Earring",
  261. ear1="Hirudinea Earring",
  262. left_ring="Archon Ring",
  263. right_ring="Evanescence Ring",
  264. back={ name="Lugh's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
  265. }
  266. sets.midcast.Stun = {
  267. main="Hvergelmir",
  268. sub="Clerisy Strap +1",
  269. ammo="Incantor Stone",
  270. head="Peda. M.Board +1",
  271. feet="Acad. Loafers +3",
  272. main="Hvergelmir",
  273. sub="Clerisy Strap +1",
  274. body="Academic's Gown +3",
  275. hands="Academic's Bracers +3",
  276. legs="Psycloth Lappas",
  277. neck="Erra Pendant",
  278. waist="Luminary Sash",
  279. left_ear="Gwati Earring",
  280. right_ear="Regal Earring",
  281. left_ring="Stikini Ring +1",
  282. right_ring="Stikini Ring +1",
  283. back=FCBack,
  284. }
  285. sets.midcast['Enfeebling Magic'] = {
  286. main="Tupsimati",
  287. sub="Enki Strap",
  288. ammo="Pemphredo Tathlum",
  289. head="Acad. Mortar. +2",
  290. body="Acad. Gown +3",
  291. hands="Acad. Bracers +3",
  292. legs="Acad. Pants +2",
  293. feet="Acad. Loafers +3",
  294. neck="Erra Pendant",
  295. waist="Luminary Sash",
  296. left_ear="Barkaro. Earring",
  297. right_ear="Regal Earring",
  298. left_ring="Stikini Ring +1",
  299. right_ring="Stikini Ring +1",
  300. back={ name="Lugh's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}},
  301. }
  302. sets.midcast['Enfeebling Magic'].Resistant = set_combine(sets.midcast['Enfeebling Magic'], {
  303. })
  304. sets.midcast['Healing Magic'] = {
  305. main="Hvergelmir",
  306. sub="Clerisy Strap +1",
  307. ammo="Hydrocera",
  308. head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
  309. body={ name="Kaykaus Bliaut +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
  310. hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  311. legs={ name="Kaykaus Tights +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
  312. feet={ name="Kaykaus Boots +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
  313. neck="Incanter's Torque",
  314. waist="Bishop's Sash",
  315. left_ear="Beatific Earring",
  316. right_ear="Regal Earring",
  317. left_ring="Lebeche Ring",
  318. right_ring="Janniston Ring +1",
  319. back="Tempered Cape +1",
  320. }
  321. sets.midcast['Enhancing Magic'] = {
  322. main={ name="Gada", augments={'Enh. Mag. eff. dur. +6',}},
  323. sub={name="Ammurapi Shield", priority=7},
  324. ammo="Savant's Treatise",
  325. head={ name="Telchine Cap", augments={'Accuracy+14 Attack+14','"Store TP"+6','Enh. Mag. eff. dur. +10',}},
  326. body={ name="Telchine Chas.", augments={'DEF+16','Enh. Mag. eff. dur. +10',}},
  327. neck="Incanter's Torque",
  328. ear1="Augmenting Earring",
  329. ear2="Andoaa Earring",
  330. hands={name="Telchine Gloves", augments={'Enh. Mag. eff. dur. +10'}},
  331. ring1="Stikini ring +1",
  332. ring2="Stikini Ring +1",
  333. back="Perimede Cape",
  334. waist="Olympus Sash",
  335. legs={name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +10'}},
  336. feet={name="Telchine Pigaches", augments={'Enh. Mag. eff. dur. +10'}}
  337. }
  338. sets.midcast.Embrava = sets.midcast['Enhancing Magic']
  339.  
  340. -- regen defaults to Duration, Can swap to potency
  341. sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {
  342. head="Arbatel Bonnet +1",
  343. back=FCBack,
  344. })
  345. sets.midcast.RegenPotency = set_combine(sets.midcast['Enhancing Magic'], {
  346. main="Bolelabunga",
  347. head="Arbatel Bonnet +1",
  348. back="Bookworm's Cape",
  349. })
  350. sets.midcast.Cure = sets.midcast['Healing Magic']
  351. sets.midcast.CurePotencyRecieved = set_combine(sets.midcast.Cure, {waist="Gishdubar Sash"})
  352. sets.midcast.RefreshRecieved = set_combine(sets.midcast['Enhancing Magic'], {head="Amalric Coif +1",back="Grapevine Cape",waist="Gishdubar Sash",feet="Inspirited Boots"})
  353. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'],{
  354. neck="Nodens Gorget",
  355. legs="Shedir Seraweels",
  356. lear="Earthcry Earring",
  357. waist="Siegel Sash"
  358. })
  359. sets.midcast.Phalanx = set_combine(sets.midcast['Enhancing Magic'],{
  360. hands={ name="Merlinic Dastanas", augments={'"Cure" potency +2%','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Phalanx +5','Mag. Acc.+17 "Mag.Atk.Bns."+17',}},
  361. })
  362. sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'],{
  363. head="Amalric Coif +1",
  364. waist="Emphatikos Rope",
  365. legs="Shedir Seraweels",
  366. })
  367.  
  368. -- Idle sets
  369. sets.idle = {
  370. main={ name="Akademos", augments={'INT+15','"Mag.Atk.Bns."+15','Mag. Acc.+15',}},
  371. sub="Oneiros Grip",
  372. ammo="Homiliary",
  373. head={ name="Spurrina Coif", augments={'"Refresh"+2',}},
  374. body="Jhakri Robe +2",
  375. hands={ name="Chironic Gloves", augments={'Attack+8','DEX+4','"Refresh"+1','Accuracy+11 Attack+11',}},
  376. legs="Assid. Pants +1",
  377. feet="Mallquis Clogs +1",
  378. neck="Loricate Torque +1",
  379. waist="Slipor Sash",
  380. left_ear="Etiolation Earring",
  381. right_ear={ name="Darkness Earring", augments={'Phys. dmg. taken -2%','"Resist Poison"+2',}},
  382. left_ring="Stikini Ring +1",
  383. right_ring="Stikini Ring +1",
  384. back="Moonbeam Cape",
  385. }
  386.  
  387. sets.idle.PDT = set_combine(sets.idle,{
  388. main="Terra's Staff",
  389. sub="Mensch Strap +1",
  390. ammo="Staunch Tathlum +1",
  391. lring="Defending Ring"
  392. })
  393. sets.idle.PDT['Tupsimati'] = set_combine(sets.idle,{
  394. ammo="Staunch Tathlum",
  395. head={ name="Merlinic Hood", augments={'Phys. dmg. taken -5%','"Mag.Atk.Bns."+14',}},
  396. neck="Loricate Torque +1",
  397. ear1="Etiolation Earring",
  398. ear2="Darkness Earring",
  399. body="Hagondes Coat +1",
  400. hands="Hagondes Cuffs +1",
  401. ring1="Dark Ring",
  402. ring2="Defending Ring",
  403. back="Moonbeam Cape",
  404. waist="Slipor Sash",
  405. legs={ name="Artsieq Hose", augments={'"Mag.Atk.Bns." +25', "Mag. Evasion+10", "Phys. dmg. taken -5%"}},
  406. })
  407. sets.idle.PDT['Khatvanga'] = set_combine(sets.idle,{
  408. ammo="Staunch Tathlum",
  409. head={ name="Merlinic Hood", augments={'Phys. dmg. taken -5%','"Mag.Atk.Bns."+14',}},
  410. neck="Loricate Torque +1",
  411. ear1="Etiolation Earring",
  412. ear2="Darkness Earring",
  413. body="Hagondes Coat +1",
  414. hands="Hagondes Cuffs +1",
  415. ring1="Dark Ring",
  416. ring2="Defending Ring",
  417. back="Moonbeam Cape",
  418. waist="Slipor Sash",
  419. legs={ name="Artsieq Hose", augments={'"Mag.Atk.Bns." +25', "Mag. Evasion+10", "Phys. dmg. taken -5%"}},
  420. })
  421. sets.idle.PDT['Akademos'] = set_combine(sets.idle,{
  422. ammo="Staunch Tathlum",
  423. head={ name="Merlinic Hood", augments={'Phys. dmg. taken -5%','"Mag.Atk.Bns."+14',}},
  424. neck="Loricate Torque +1",
  425. ear1="Etiolation Earring",
  426. ear2="Darkness Earring",
  427. body="Hagondes Coat +1",
  428. hands="Hagondes Cuffs +1",
  429. ring1="Dark Ring",
  430. ring2="Defending Ring",
  431. back="Moonbeam Cape",
  432. waist="Slipor Sash",
  433. legs={ name="Artsieq Hose", augments={'"Mag.Atk.Bns." +25', "Mag. Evasion+10", "Phys. dmg. taken -5%"}},
  434. })
  435. sets.idle.PDT['Hvergelmir'] = set_combine(sets.idle,{
  436. ammo="Staunch Tathlum",
  437. head={ name="Merlinic Hood", augments={'Phys. dmg. taken -5%','"Mag.Atk.Bns."+14',}},
  438. neck="Loricate Torque +1",
  439. ear1="Etiolation Earring",
  440. ear2="Darkness Earring",
  441. body="Hagondes Coat +1",
  442. hands="Hagondes Cuffs +1",
  443. ring1="Dark Ring",
  444. ring2="Defending Ring",
  445. back="Moonbeam Cape",
  446. waist="Slipor Sash",
  447. legs={ name="Artsieq Hose", augments={'"Mag.Atk.Bns." +25', "Mag. Evasion+10", "Phys. dmg. taken -5%"}},
  448. })
  449.  
  450. sets.idle.Sublimation = set_combine(sets.idle,{
  451. head="Academic's Mortboard +2",
  452. })
  453.  
  454. sets.Kiting = {feet="Herald's Gaiters"}
  455.  
  456. sets.latent_refresh = {waist="Fucho-no-obi"}
  457.  
  458. sets.Obi = {waist='Hachirin-no-Obi'}
  459.  
  460. -- Engaged sets
  461.  
  462. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  463. -- sets if more refined versions aren't defined.
  464. -- If you create a set with both offense and defense modes, the offense mode should be first.
  465. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  466.  
  467. -- Normal melee group
  468. sets.engaged = {ammo="Yetshila +1",
  469. head={ name="Chironic Hat", augments={'Pet: STR+12','Crit.hit rate+3','Quadruple Attack +2','Accuracy+15 Attack+15',}},
  470. body="Taeon Tabard",neck="Anu Torque",ear1="Suppanomimi",ear2="Eabani Earring",
  471. hands={ name="Chironic Gloves", augments={'Pet: Mag. Acc.+9 Pet: "Mag.Atk.Bns."+9','Attack+25','Quadruple Attack +2','Accuracy+4 Attack+4',}},
  472. ring1="Hetairoi Ring",ring2="Petrov Ring",
  473. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  474. waist="Goading Belt",legs="Taeon Tights",
  475. feet={ name="Chironic Slippers", augments={'"Triple Atk."+3','INT+14','Accuracy+7 Attack+7','Mag. Acc.+9 "Mag.Atk.Bns."+9',}},}
  476.  
  477. sets.engaged.Acc = set_combine(sets.engaged,{
  478. head="Carmine Mask +1",neck="Combatant's Torque",ring2="Ramuh Ring +1"})
  479.  
  480. sets.engaged.HighAcc = set_combine(sets.engaged.Acc,{
  481. ammo="Amar Cluster",ring1="Ramuh Ring +1",legs="Carmine Cuisses +1"})
  482.  
  483. sets.engaged.MaxAcc = set_combine(sets.engaged.HighAcc,{
  484. ammo="Hasty Pinion +1",body="Ayanmo Corazza +1",hands="Aya. Manopolas +1",ring1="Ramuh Ring +1",waist="Reiki Yotai"})
  485.  
  486. sets.engaged.HighHaste = {ammo="Yetshila +1",
  487. head={ name="Chironic Hat", augments={'Pet: STR+12','Crit.hit rate+3','Quadruple Attack +2','Accuracy+15 Attack+15',}},
  488. neck="Anu Torque",ear1="Sherida Earring",ear2="Telos Earring",
  489. body="Taeon Tabard",hands={ name="Chironic Gloves", augments={'Pet: Mag. Acc.+9 Pet: "Mag.Atk.Bns."+9','Attack+25','Quadruple Attack +2','Accuracy+4 Attack+4',}},
  490. ring1="Hetairoi Ring",ring2="Petrov Ring",
  491. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  492. waist="Reiki Yotai",legs="Taeon Tights",
  493. feet={ name="Chironic Slippers", augments={'"Triple Atk."+3','INT+14','Accuracy+7 Attack+7','Mag. Acc.+9 "Mag.Atk.Bns."+9',}},
  494. }
  495.  
  496. sets.engaged.Acc.HighHaste = set_combine(sets.engaged.HighHaste,{
  497. head="Carmine Mask +1",neck="Combatant's Torque"})
  498.  
  499. sets.engaged.HighAcc.HighHaste = set_combine(sets.engaged.Acc.HighHaste,{
  500. ear1="Mache Earring +1",ring2="Ramuh Ring +1",legs="Carmine Cuisses +1"})
  501.  
  502. sets.engaged.MaxAcc.HighHaste = set_combine(sets.engaged.HighAcc.HighHaste,{
  503. ammo="Amar Cluster",body="Ayanmo Corazza +1",hands="Aya. Manopolas +1",ring1="Ramuh Ring +1",waist="Olseni Belt",feet="Aya. Gambieras +1"})
  504.  
  505. end
  506.  
  507. -------------------------------------------------------------------------------------------------------------------
  508. -- Job-specific hooks for standard casting events.
  509. -------------------------------------------------------------------------------------------------------------------
  510.  
  511. function job_precast(spell, action, spellMap, eventArgs)
  512. if spell.name == 'Impact' then
  513. equip({head=empty,body="Twilight Cloak"})
  514. elseif spell.name == 'Stun' then
  515. if not buffactive['Thunderstorm'] then
  516. add_to_chat(8,'--------- Thunderstorm is down ---------')
  517. elseif not buffactive['Klimaform'] then
  518. add_to_chat(8,'----------- Klimaform is down -----------')
  519. end
  520. end
  521. if spell.action_type == 'Magic' then
  522. classes.CustomClass = player.equipment.main
  523. if (buffactive['Dark Arts'] or buffactive['Addendum: Black']) and (spell.skill == "Elemental Magic" or spell.skill == "Dark Magic" or spell.skill == "Enfeebling Magic") then
  524. equip(sets.precast.FC,{head="Pedagogy Mortarboard +1",feet="Academic's Loafers +3"})
  525. elseif (buffactive['Light Arts'] or buffactive['Addendum: White']) and (spell.skill == "Healing Magic" or spell.skill == "Divine Magic" or spell.skill == "Enfeebling Magic" or spell.skill == "Enhancing Magic") then
  526. equip(sets.precast.FC,{head="Pedagogy Mortarboard +1",feet="Academic's Loafers +3"})
  527. end
  528. if (buffactive['Alacrity'] or buffactive['Celerity']) and world.weather_element == spell.element then
  529. equip({feet='Pedagogy Loafers +1'})
  530. end
  531. end
  532. end
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542. function pretarget(spell,action)
  543. if (spell.type:endswith('Magic') or spell.type == "Ninjutsu") and buffactive['Silence'] then -- Auto Use Echo Drops If You Are Silenced --
  544. cancel_spell()
  545. send_command('input /item "Echo Drops" <me>')
  546. elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
  547. if spell.english == "Light Arts" and not buffactive['Addendum: White'] then
  548. cancel_spell()
  549. send_command('input /ja "Addendum: White" <me>')
  550. elseif spell.english == "Manifestation" then
  551. cancel_spell()
  552. send_command('input /ja "Accession" <me>')
  553. elseif spell.english == "Alacrity" then
  554. cancel_spell()
  555. send_command('input /ja "Celerity" <me>')
  556. elseif spell.english == "Parsimony" then
  557. cancel_spell()
  558. send_command('input /ja "Penury" <me>')
  559. elseif spell.english == "Immanence" then
  560. cancel_spell()
  561. send_command('input /ja "Perpetuance" <me>')
  562. elseif spell.english == "Focalization" then
  563. cancel_spell()
  564. send_command('input /ja "Altruism" <me>')
  565. end
  566. elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
  567. if spell.english == "Dark Arts" and not buffactive['Addendum: Black'] then
  568. cancel_spell()
  569. send_command('input /ja "Addendum: Black" <me>')
  570. elseif spell.english == "Accession" then
  571. cancel_spell()
  572. send_command('input /ja "Manifestation" <me>')
  573. elseif spell.english == "Celerity" then
  574. cancel_spell()
  575. send_command('input /ja "Alacrity" <me>')
  576. elseif spell.english == "Penury" then
  577. cancel_spell()
  578. send_command('input /ja "Parsimony" <me>')
  579. elseif spell.english == "Perpetuance" then
  580. cancel_spell()
  581. send_command('input /ja "Immanence" <me>')
  582. elseif spell.english == "Altruism" then
  583. cancel_spell()
  584. send_command('input /ja "Focalization" <me>')
  585. end
  586. end
  587. end
  588.  
  589. function job_post_midcast(spell)
  590. if spell.skill == 'Healing Magic' then
  591. if Cures:contains(spell.name) then
  592. if world.day =='Lightsday' or world.weather_element == 'Light' or buffactive == 'Aurorastorm' then
  593. equip(sets.Obi)
  594. end
  595. end
  596.  
  597. elseif spell.skill == 'Enhancing Magic' then
  598. if spell.english == 'Embrava' then
  599. if not buffactive.perpetuance then
  600. add_to_chat(8,'--------- Perpetuance is down ---------')
  601. end
  602. if not buffactive.accession then
  603. add_to_chat(8,'--------- Accession is down ---------')
  604. end
  605. if not buffactive.penury then
  606. add_to_chat(8,'--------- Penury is down ---------')
  607. end
  608. end
  609. if buffactive['Penury'] then equip(sets.enh.Penury) end
  610. if buffactive['Perpetuance'] then equip(sets.enh.Perpetuance) end
  611. elseif spell.skill == 'Elemental Magic' then
  612. if state.Occult.value then
  613. equip(sets.Occult)
  614. end
  615. if state.MagicBurst.value then
  616. equip(sets.magic_burst)
  617. end
  618. if state.ConsMP.value then
  619. equip(sets.ConsMP)
  620. end
  621. if spell.element == world.day_element or spell.element == world.weather_element then
  622. if string.find(spell.english,'helix') then
  623. equip(sets.midcast.Helix)
  624. else
  625. equip(sets.Obi)
  626. end
  627. end
  628. if buffactive['Klimaform'] then
  629. equip(sets.enh.Klimaform)
  630. end
  631. if spell.english == 'Impact' then
  632. equip(sets.midcast[spell.skill],{head=empty,body="Twilight Cloak"})
  633. end
  634. end
  635. end
  636.  
  637. function self_command(command)
  638. if command == 'StoneMode' then
  639. WeatherIndex = 1
  640. add_to_chat(158, "-----Stone Mode ON-----")
  641. add_to_chat(158,"Aero -> Stone = Scission")
  642. add_to_chat(158,"Aero -> Noctohelix = Gravitation")
  643. end
  644.  
  645. if command == 'WaterMode' then
  646. WeatherIndex = 2
  647. add_to_chat(158, "-----Water Mode ON-----")
  648. add_to_chat(158,"Stone -> Water = Reverberation")
  649. add_to_chat(158,"Luminohelix -> Stone = Distortion")
  650. end
  651.  
  652. if command == 'BlizzardMode' then
  653. WeatherIndex = 3
  654. add_to_chat(158, "-----Blizzard Mode ON-----")
  655. add_to_chat(158,"Water -> Blizzard = Induration")
  656. add_to_chat(158,"Luminohelix -> Stone = Distortion")
  657. end
  658.  
  659. if command == 'AeroMode' then
  660. WeatherIndex = 4
  661. add_to_chat(158, "-----Aero Mode ON-----")
  662. add_to_chat(158,"Stone -> Aero = Detonation")
  663. add_to_chat(158,"Blizzard -> Water = Fragmentation")
  664. end
  665.  
  666. if command == 'FireMode' then
  667. WeatherIndex = 5
  668. add_to_chat(158, "-----Fire Mode ON-----")
  669. add_to_chat(158,"Stone -> Fire = Liquefaction")
  670. add_to_chat(158,"Fire -> Thunder = Fusion")
  671. end
  672.  
  673. if command == 'ThunderMode' then
  674. WeatherIndex = 6
  675. add_to_chat(158, "-----Thunder Mode ON-----")
  676. add_to_chat(158,"Water -> Thunder = Impaction")
  677. add_to_chat(158,"Blizzard -> Water = Fragmentation")
  678. end
  679.  
  680. if command == 'DarkMode' then
  681. WeatherIndex = 7
  682. add_to_chat(158, "-----Dark Mode ON-----")
  683. add_to_chat(158,"Blizzard -> Noctohelix = Compression")
  684. end
  685.  
  686. if command == 'ImmOpening' then
  687. if SkillchainTier == 2 then
  688. if WeatherIndex == STONE_NUM then
  689. send_command("@input /ma 'Aero' <t>")
  690. send_command("@input /p Opening Gravitation, [Stone/Dark MB] Target: <t>")
  691. elseif WeatherIndex == WATER_NUM then
  692. send_command("@input /ma 'Luminohelix' <t>")
  693. send_command("@input /p Opening Distortion, [Water/Blizzard MB] Target: <t>")
  694. elseif WeatherIndex == BLIZZARD_NUM then
  695. send_command("@input /ma 'Luminohelix' <t>")
  696. send_command("@input /p Opening Distortion, [Blizzard/Water MB] Target: <t>")
  697. elseif WeatherIndex == AERO_NUM then
  698. send_command("@input /ma 'Blizzard' <t>")
  699. send_command("@input /p Opening Fragmentation, [Aero/Thunder MB] Target: <t>")
  700. elseif WeatherIndex == FIRE_NUM then
  701. send_command("@input /ma 'Fire' <t>")
  702. send_command("@input /p Opening Fusion, [Fire/Light MB] Target: <t>")
  703. elseif WeatherIndex == THUNDER_NUM then
  704. send_command("@input /ma 'Blizzard' <t>")
  705. send_command("@input /p Opening Fragmentation, [Thunder/Aero MB] Target: <t>")
  706. elseif WeatherIndex == DARK_NUM then
  707. send_command("@input /ma 'Aero' <t>")
  708. send_command("@input /p Opening Gravitation, [Dark/Stone MB] Target: <t>")
  709. end
  710. else
  711. if WeatherIndex == STONE_NUM then
  712. send_command("@input /ma 'Aero' <t>")
  713. send_command("@input /p Opening Scission, [Stone MB] Target: <t>")
  714. elseif WeatherIndex == WATER_NUM then
  715. send_command("@input /ma 'Stone' <t>")
  716. send_command("@input /p Opening Reverberation, [Water MB] Target: <t>")
  717. elseif WeatherIndex == BLIZZARD_NUM then
  718. send_command("@input /ma 'Water' <t>")
  719. send_command("@input /p Opening Induration, [Blizzard MB] Target: <t>")
  720. elseif WeatherIndex == AERO_NUM then
  721. send_command("@input /ma 'Stone' <t>")
  722. send_command("@input /p Opening Detonation, [Aero MB] Target: <t>")
  723. elseif WeatherIndex == FIRE_NUM then
  724. send_command("@input /ma 'Stone' <t>")
  725. send_command("@input /p Opening Liquefaction, [Fire MB] Target: <t>")
  726. elseif WeatherIndex == THUNDER_NUM then
  727. send_command("@input /ma 'Water' <t>")
  728. send_command("@input /p Opening Impaction, [Thunder MB] Target: <t>")
  729. elseif WeatherIndex == DARK_NUM then
  730. send_command("@input /ma 'Blizzard' <t>")
  731. send_command("@input /p Opening Compression, [Dark MB] Target: <t>")
  732. end
  733. end
  734. end
  735.  
  736. if command == 'ImmClosing' then
  737. if SkillchainTier == 2 then
  738. if WeatherIndex == STONE_NUM then
  739. send_command("@input /ma 'Noctohelix' <t>")
  740. send_command("@wait 1;input /p Closing Gravitation, Stone/Dark MB GO! Target: <t>")
  741. elseif WeatherIndex == WATER_NUM then
  742. send_command("@input /ma 'Stone' <t>")
  743. send_command("@input /p Closing Distortion, Water/Blizzard MB GO! Target: <t>")
  744. elseif WeatherIndex == BLIZZARD_NUM then
  745. send_command("@input /ma 'Stone' <t>")
  746. send_command("@input /p Closing Distortion, Blizzard/Water MB GO! Target: <t>")
  747. elseif WeatherIndex == AERO_NUM then
  748. send_command("@input /ma 'Water' <t>")
  749. send_command("@input /p Closing Fragmentation, Aero/Thunder MB GO! Target: <t>")
  750. elseif WeatherIndex == FIRE_NUM then
  751. send_command("@input /ma 'Thunder' <t>")
  752. send_command("@input /p Closing Fusion, Fire/Light MB GO! Target: <t>")
  753. elseif WeatherIndex == THUNDER_NUM then
  754. send_command("@input /ma 'Water' <t>")
  755. send_command("@input /p Closing Fragmentation, Thunder/Aero MB GO! Target: <t>")
  756. elseif WeatherIndex == DARK_NUM then
  757. send_command("@input /ma 'Noctohelix' <t>")
  758. send_command("@wait 1;input /p Closing Gravitation, Dark/Stone MB GO! Target: <t>")
  759. end
  760. else
  761. if WeatherIndex == STONE_NUM then
  762. send_command("@input /ma 'Stone' <t>")
  763. send_command("@input /p Closing Scission, Stone MB GO! Target: <t>")
  764. elseif WeatherIndex == WATER_NUM then
  765. send_command("@input /ma 'Water' <t>")
  766. send_command("@input /p Closing Reverberation, Water MB GO! Target: <t>")
  767. elseif WeatherIndex == BLIZZARD_NUM then
  768. send_command("@input /ma 'Blizzard' <t>")
  769. send_command("@input /p Closing Induration, Blizzard MB GO! Target: <t>")
  770. elseif WeatherIndex == AERO_NUM then
  771. send_command("@input /ma 'Aero' <t>")
  772. send_command("@input /p Closing Detonation, Aero MB GO! Target: <t>")
  773. elseif WeatherIndex == FIRE_NUM then
  774. send_command("@input /ma 'Fire' <t>")
  775. send_command("@input /p Closing Liquefaction, Fire MB GO! Target: <t>")
  776. elseif WeatherIndex == THUNDER_NUM then
  777. send_command("@input /ma 'Thunder' <t>")
  778. send_command("@input /p Closing Impaction, Thunder MB GO! Target: <t>")
  779. elseif WeatherIndex == DARK_NUM then
  780. send_command("@input /ma 'Noctohelix' <t>")
  781. send_command("@wait 1;input /p Closing Compression, Dark MB GO! Target: <t>")
  782. end
  783. end
  784. end
  785.  
  786. if command == 'WeatherSpell' then
  787. if WeatherIndex == STONE_NUM then
  788. send_command("@input /ma 'Sandstorm II' <t>")
  789. elseif WeatherIndex == WATER_NUM then
  790. send_command("@input /ma 'Rainstorm II' <t>")
  791. elseif WeatherIndex == BLIZZARD_NUM then
  792. send_command("@input /ma 'Hailstorm II' <t>")
  793. elseif WeatherIndex == AERO_NUM then
  794. send_command("@input /ma 'Windstorm II' <t>")
  795. elseif WeatherIndex == FIRE_NUM then
  796. send_command("@input /ma 'Firestorm II' <t>")
  797. elseif WeatherIndex == THUNDER_NUM then
  798. send_command("@input /ma 'Thunderstorm II' <t>")
  799. elseif WeatherIndex == DARK_NUM then
  800. send_command("@input /ma 'Voidstorm II' <t>")
  801. end
  802. end
  803.  
  804. if command == "T1" then
  805. send_command("@input /ma '"..WeatherMode[WeatherIndex].."' <t>")
  806. end
  807.  
  808. if command == "T2" then
  809. send_command("@input /ma '"..WeatherMode[WeatherIndex].." II' <t>")
  810. end
  811.  
  812. if command == "T3" then
  813. send_command("@input /ma '"..WeatherMode[WeatherIndex].." III' <t>")
  814. end
  815.  
  816. if command == "T4" then
  817. send_command("@input /ma '"..WeatherMode[WeatherIndex].." IV' <t>")
  818. end
  819.  
  820. if command == "T5" then
  821. send_command("@input /ma '"..WeatherMode[WeatherIndex].." V' <t>")
  822. end
  823.  
  824. if command == 'Helix' then
  825. if WeatherIndex == STONE_NUM then
  826. send_command("@input /ma 'Geohelix II' <t>")
  827. elseif WeatherIndex == WATER_NUM then
  828. send_command("@input /ma 'Hydrohelix II' <t>")
  829. elseif WeatherIndex == BLIZZARD_NUM then
  830. send_command("@input /ma 'Cryohelix II' <t>")
  831. elseif WeatherIndex == AERO_NUM then
  832. send_command("@input /ma 'Anemohelix II' <t>")
  833. elseif WeatherIndex == FIRE_NUM then
  834. send_command("@input /ma 'Pyrohelix II' <t>")
  835. elseif WeatherIndex == THUNDER_NUM then
  836. send_command("@input /ma 'Ionohelix II' <t>")
  837. elseif WeatherIndex == DARK_NUM then
  838. send_command("@input /ma 'Noctohelix II' <t>")
  839. end
  840. end
  841.  
  842.  
  843. if command == 'SkillchainChange' then
  844. if SkillchainTier == 1 then
  845. SkillchainTier = 2
  846. add_to_chat(158, "Tier 2 Skillchains")
  847. else
  848. SkillchainTier = 1
  849. add_to_chat(158, "Tier 1 Skillchains")
  850. end
  851.  
  852. end
  853.  
  854. end
  855.  
  856. -------------------------------------------------------------------------------------------------------------------
  857. -- Job-specific hooks for non-casting events.
  858. -------------------------------------------------------------------------------------------------------------------
  859.  
  860. -- Handle notifications of general user state change.
  861. function job_state_change(stateField, newValue, oldValue)
  862. if stateField == 'Offense Mode' then
  863. if newValue == 'None' then
  864. enable('main','sub','range')
  865. else
  866. disable('main','sub','range')
  867. end
  868. end
  869. end
  870.  
  871. function display_current_job_state(eventArgs)
  872. eventArgs.handled = true
  873. local msg = ''
  874.  
  875. if state.OffenseMode.value ~= 'None' then
  876. msg = msg .. 'Combat ['..state.OffenseMode.value..']'
  877.  
  878. if state.CombatForm.has_value then
  879. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  880. end
  881. msg = msg .. ', '
  882. end
  883. --[[if state.HybridMode.value ~= 'Normal' then
  884. msg = msg .. '/' .. state.HybridMode.value
  885. end]]
  886.  
  887. msg = msg .. 'Casting ['..state.CastingMode.value..'], Idle ['..state.IdleMode.value..']'
  888.  
  889. if state.MagicBurst.value then
  890. msg = msg .. ', MB [ON]'
  891. else
  892. msg = msg .. ', MB [OFF]'
  893. end
  894. if state.ConsMP.value then
  895. msg = msg .. ', AF Body [ON]'
  896. else
  897. msg = msg .. ', AF Body [OFF]'
  898. end
  899. if state.DeatCast.value then
  900. msg = msg .. ', Death Mode [ON]'
  901. else
  902. msg = msg .. ', Death Mode [OFF]'
  903. end
  904. if state.DefenseMode.value ~= 'None' then
  905. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  906. end
  907.  
  908. if state.Kiting.value then
  909. msg = msg .. ', Kiting [ON]'
  910. end
  911.  
  912. if state.PCTargetMode.value ~= 'default' then
  913. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  914. end
  915.  
  916. if state.SelectNPCTargets.value == true then
  917. msg = msg .. ', Target NPCs'
  918. end
  919.  
  920. add_to_chat(122, msg)
  921. end
  922.  
  923. -------------------------------------------------------------------------------------------------------------------
  924. -- User code that supplements standard library decisions.
  925. -------------------------------------------------------------------------------------------------------------------
  926.  
  927. -- Modify the default idle set after it was constructed.
  928. function customize_idle_set(idleSet)
  929. if player.mpp < 51 then
  930. idleSet = set_combine(idleSet, sets.latent_refresh)
  931. end
  932.  
  933. return idleSet
  934. end
  935.  
  936. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  937. function display_current_job_state(eventArgs)
  938. display_current_caster_state()
  939. eventArgs.handled = true
  940. end
  941.  
  942. -------------------------------------------------------------------------------------------------------------------
  943. -- Utility functions specific to this job.
  944. -------------------------------------------------------------------------------------------------------------------
  945.  
  946. -- Select default macro book on initial load or subjob change.
  947. function select_default_macro_book()
  948. -- Default macro set/book
  949. set_macro_page(1, 4)
  950. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement