Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2016
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.20 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7. mote_include_version = 2
  8.  
  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. state.Buff.Barrage = buffactive.Barrage or false
  17. state.Buff.Camouflage = buffactive.Camouflage or false
  18. state.Buff['Unlimited Shot'] = buffactive['Unlimited Shot'] or false
  19. end
  20.  
  21. -------------------------------------------------------------------------------------------------------------------
  22. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  23. -------------------------------------------------------------------------------------------------------------------
  24.  
  25. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  26. function user_setup()
  27. state.RangedMode:options('Normal', 'Acc')
  28. state.WeaponskillMode:options('Normal', 'Acc')
  29. state.flurrymode = M{['description'] = 'Flurry Mode'}
  30. state.flurrymode:options('NoFlurry','Flurry','FlurryII')
  31.  
  32. gear.default.weaponskill_neck = "Ocachi Gorget"
  33. gear.default.weaponskill_waist = "Elanid Belt"
  34.  
  35. DefaultAmmo = {['Yoichinoyumi'] = "Achiyalabopa arrow", ['Annihilator'] = "Achiyalabopa bullet"}
  36. U_Shot_Ammo = {['Yoichinoyumi'] = "Achiyalabopa arrow", ['Annihilator'] = "Achiyalabopa bullet"}
  37.  
  38. select_default_macro_book()
  39.  
  40. send_command('bind f9 gs c cycle RangedMode')
  41. send_command('bind ^f9 gs c cycle OffenseMode')
  42. send_command('bind ^q gs c flurrymode')
  43. end
  44.  
  45.  
  46. -- Called when this job file is unloaded (eg: job change)
  47. function user_unload()
  48. send_command('unbind f9')
  49. send_command('unbind ^f9')
  50. end
  51.  
  52.  
  53. -- Set up all gear sets.
  54. function init_gear_sets()
  55. gear.DDFeet= {name="Herculean Boots", augments={'Accuracy+24','"Triple Atk."+3','DEX+8',}}
  56. gear.MABHead= {name="Herculean Helm", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Weapon skill damage +2%','INT+8','"Mag.Atk.Bns."+5',}}
  57. gear.MABLegs= {name="Herculean Trousers", augments={'Mag. Acc.+14 "Mag.Atk.Bns."+14','Weapon skill damage +4%','INT+1','Mag. Acc.+14','"Mag.Atk.Bns."+15',}}
  58. gear.MABFeet= {name="Herculean Boots", augments={'"Mag.Atk.Bns."+21','Weapon skill damage +5%','STR+10','Mag. Acc.+2',}}
  59. gear.RAHands= {name="Herculean Gloves", augments={'Rng.Acc.+20 Rng.Atk.+20','Crit.hit rate+4','AGI+1','Rng.Acc.+1','Rng.Atk.+7',}}
  60. gear.RALegs= {name="Herculean Trousers", augments={'Rng.Acc.+24 Rng.Atk.+24','Crit.hit rate+1','MND+6','Rng.Acc.+6','Rng.Atk.+5',}}
  61. gear.RAFeet= {name="Herculean Boots", augments={'Rng.Acc.+25 Rng.Atk.+25','"Subtle Blow"+11','DEX+6','Rng.Acc.+13','Rng.Atk.+2',}}
  62. gear.STRWSHead= {name="Herculean Helm", augments={'Rng.Acc.+24 Rng.Atk.+24','Weapon skill damage +1%','STR+9','Rng.Acc.+10',}}
  63. gear.WSBody= {name="Herculean Vest", augments={'Rng.Acc.+24 Rng.Atk.+24','Weapon skill damage +4%','Rng.Acc.+3',}}
  64. gear.STRWSLegs= {name="Herculean Trousers", augments={'Rng.Acc.+19','Weapon skill damage +5%','STR+6',}}
  65. gear.STRWSFeet= {name="Herculean Boots", augments={'"Mag.Atk.Bns."+21','Weapon skill damage +5%','STR+10','Mag. Acc.+2',}}
  66. gear.AGIWSHead= {name="Herculean Helm", augments={'Rng.Acc.+23','Weapon skill damage +3%','AGI+10',}}
  67. gear.AGIWSLegs= {name="Herculean Trousers", augments={'Weapon skill damage +4%','AGI+8','Rng.Acc.+13','Rng.Atk.+12',}}
  68. gear.AGIWSFeet= {name="Herculean Boots", augments={'Rng.Acc.+18 Rng.Atk.+18','Weapon skill damage +3%','AGI+1','Rng.Acc.+13',}}
  69. gear.AGIWSCape= {name="Belenus's Cape", augments={'AGI+20','Mag. Acc+20 /Mag. Dmg.+20','Weapon skill damage +10%',}}
  70. gear.STRWSCape= {name="Belenus's Cape", augments={'STR+20','Rng.Acc.+20 Rng.Atk.+20','Weapon skill damage +10%',}}
  71. gear.STPCape= {name="Belenus's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','"Store TP"+10',}}
  72. gear.THBody= {name="Herculean Vest", augments={'DEX+9','AGI+14','"Treasure Hunter"+1','Accuracy+18 Attack+18','Mag. Acc.+4 "Mag.Atk.Bns."+4',}}
  73. gear.FCLegs = {name="Herculean Trousers", augments={'"Fast Cast"+4','CHR+5'}}
  74.  
  75. --------------------------------------
  76. -- Precast sets
  77. --------------------------------------
  78.  
  79. -- Precast sets to enhance JAs
  80. sets.precast.JA['Bounty Shot'] = {hands="Amini Glovelettes +1",waist="Chaac Belt",body=gear.THBody}
  81. sets.precast.JA['Camouflage'] = {body="Orion Jerkin +1"}
  82. sets.precast.JA['Scavenge'] = {feet="Orion Socks +1"}
  83. sets.precast.JA['Shadowbind'] = {hands="Orion Bracers +1"}
  84. sets.precast.JA['Sharpshot'] = {legs="Orion Braccae +1"}
  85. sets.precast.JA['Double Shot'] = {legs="Amini Gapette +1"}
  86. sets.precast.JA['Eagle Eye Shot'] = {head="Uk'uxkaj Cap",body=gear.WSBody,back=gear.STRWSCape,
  87. neck="Rancor Collar",hands=gear.RAHands,waist="Yemaya Belt",ear1="Vulcan's Earring",ear2="Telos Earring",
  88. ring1="Ifrit Ring +1",ring2="Ifrit Ring +1",legs="Arcadian Braccae +1",feet=gear.RAFeet,}
  89.  
  90.  
  91. -- Fast cast sets for spells
  92.  
  93. sets.precast.FC = {
  94. head="Carmine Mask +1",neck="Orunmila's Torque",ear1="Enchanter Earring +1",ear2="Loquacious Earring",
  95. body="Dread Jupon",hands="Leyline Gloves",ring1="Weather. Ring",ring2="Prolix Ring",
  96. back="Lutian Cape",waist="Flume Belt +1",legs="Herculean Trousers",feet="Carmine Greaves +1",}
  97.  
  98. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {body="Passion Jacket",neck="Magoraga Beads"})
  99.  
  100.  
  101. -- Ranged sets (snapshot)
  102. sets.precast.RA.noFlurry = { -- No Flurry --
  103. head="Orion Beret +1",
  104. body="Amini Caban +1",hands="Carmine Fin. Ga. +1",back=gear.STPCape,
  105. waist="Impulse Belt",legs="Adhemar Kecks",feet="Meghanada Jambeaux +1"}
  106.  
  107. sets.precast.RA = { -- Flurry 1 --
  108. head="Orion Beret +1",
  109. body="Amini Caban +1",hands="Carmine Fin. Ga. +1",back=gear.STPCape,
  110. waist="Yemaya Belt",legs="Adhemar Kecks",feet="Pursuer's Gaiters"}
  111.  
  112. sets.precast.RA.Rapid = { -- Flurry 2 --
  113. head="Orion Beret +1",
  114. body="Arcadian Jerkin +1",hands="Carmine Fin. Ga. +1",back=gear.STPCape,
  115. waist="Yemaya Belt",legs="Adhemar Kecks",feet="Pursuer's Gaiters"}
  116.  
  117. -- Weaponskill sets
  118. -- Default set for any weaponskill that isn't any more specifically defined
  119. sets.precast.WS = {
  120. head="Arcadian Beret +1",neck=gear.ElementalGorget,ear1="Ishvara Earring",ear2="Vulcan's Earring",
  121. body="Meg. Cuirie +1",hands="Meg. Gloves +1",ring1="Rajas Ring",ring2="Apate Ring",
  122. back=gear.AGIWSCape,waist=gear.ElementalBelt,legs="Meg. Chausses +1",feet=gear.STRWSFeet,}
  123.  
  124. sets.precast.WS.Acc = set_combine(sets.precast.WS, {body="Kyujutsugi",ring1="Hajduk Ring +1",
  125. back="Lutian Cape",legs="Orion Braccae +1"})
  126.  
  127. sets.precast.WS['Wildfire'] = {
  128. head=gear.MABHead,neck="Baetyl Pendant",ear1="Friomisi Earring",ear2="Ishvara Earring",
  129. body="Gyve Doublet",hands="Carmine Fin. Ga. +1",ring1="Shiva Ring +1",ring2="Arvina Ringlet +1",
  130. back=gear.AGIWSCape,waist="Eschan Stone",legs=gear.MABLegs,feet=gear.MABFeet}
  131.  
  132. sets.precast.WS['Trueflight'] = set_combine(sets.precast.WS['Wildfire'],
  133. {ring1="Weather. Ring"})
  134.  
  135. sets.precast.WS['Coronach'] = {
  136. head=gear.STRWSHead,neck=gear.ElementalGorget,ear1="Ishvara Earring",ear2="Moonshade Earring",
  137. body=gear.WSBody,hands="Meg. Gloves +1",ring1="Ifrit Ring +1",ring2="Apate Ring",
  138. back=gear.STRWSCape,waist=gear.ElementalBelt,legs=gear.STRWSLegs,feet=gear.STRWSFeet,}
  139.  
  140. sets.precast.WS['Last Stand'] = {
  141. head=gear.AGIWSHead,neck=gear.ElementalGorget,ear1="Ishvara Earring",ear2="Moonshade Earring",
  142. body=gear.WSBody,hands="Meg. Gloves +1",ring1="Rajas Ring",ring2="Apate Ring",
  143. back=gear.AGIWSCape,waist=gear.ElementalBelt,legs=gear.AGIWSLegs,feet=gear.AGIWSFeet,}
  144.  
  145. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  146.  
  147.  
  148. --------------------------------------
  149. -- Midcast sets
  150. --------------------------------------
  151.  
  152. -- Fast recast for spells
  153.  
  154. sets.midcast.FastRecast = sets.precast.FC
  155.  
  156. sets.midcast.Utsusemi = {sets.precast.FC}
  157.  
  158. -- Ranged sets
  159.  
  160. sets.midcast.RA = {
  161. head="Arcadian Beret +1",neck="Combatant's Torque",ear1="Enervating Earring",ear2="Telos Earring",
  162. body="Amini Caban +1",hands=gear.RAHands,ring1="Rajas Ring",ring2="Apate Ring",
  163. back=gear.STPCape,waist="Yemaya Belt",legs=gear.RALegs,feet=gear.RAFeet}
  164.  
  165. sets.midcast.RA.Acc = set_combine(sets.midcast.RA,
  166. {ring1="Cacoethic Ring +1",ring2="Cacoethic Ring",})
  167.  
  168. sets.midcast.RA.Annihilator = set_combine(sets.midcast.RA)
  169.  
  170. sets.midcast.RA.Annihilator.Acc = set_combine(sets.midcast.RA.Acc)
  171.  
  172. sets.midcast.RA.Yoichinoyumi = set_combine(sets.midcast.RA, {ear2="Clearview Earring",ring2="Rajas Ring",
  173. back="Sylvan Chlamys"})
  174.  
  175. sets.midcast.RA.Yoichinoyumi.Acc = set_combine(sets.midcast.RA.Acc, {ear2="Clearview Earring"})
  176.  
  177. --------------------------------------
  178. -- Idle/resting/defense/etc sets
  179. --------------------------------------
  180.  
  181. -- Sets to return to when not performing an action.
  182.  
  183. -- Idle sets
  184. sets.idle = {
  185. head="Adhemar Bonnet",neck="Combatant's Torque",ear1="Brutal Earring",ear2="Telos Earring",
  186. body="Adhemar Jacket", hands="Adhemar Wristbands", ring1="Rajas Ring",ring2="Epona's Ring",
  187. back=gear.STPCape,waist="Kentarch Belt +1",legs="Carmine Cuisses +1",feet=gear.DDFeet}
  188.  
  189. -- Defense sets
  190. sets.defense.PDT = {
  191. head="Meghanada Visor +1",neck="Loricate Torque +1",ear1="Genmei Earring",ear2="Etiolation Earring",
  192. body="Meg. Cuirie +1",hands="Kurys Gloves",ring1="Defending Ring",ring2="Dark Ring",
  193. back="Reiki Cloak",waist="Flume Belt +1",legs="Meg. Chausses +1",feet=gear.DDFeet}
  194.  
  195. sets.defense.MDT = {
  196. head="Orion Beret +1",neck="Twilight Torque",
  197. body="Orion Jerkin +1",hands="Orion Bracers +1",ring1="Defending Ring",ring2="Shadow Ring",
  198. back="Mollusca Cape",waist="Flume Belt",legs="Nahtirah Trousers",feet="Orion Socks +1"}
  199.  
  200. sets.Kiting = {legs="Carmine Cuisses +1"}
  201.  
  202.  
  203. --------------------------------------
  204. --sets
  205. --------------------------------------
  206.  
  207. sets.engaged = {
  208. head="Adhemar Bonnet",neck="Combatant's Torque",ear1="Brutal Earring",ear2="Telos Earring",
  209. body="Adhemar Jacket", hands="Adhemar Wristbands", ring1="Rajas Ring",ring2="Epona's Ring",
  210. back=gear.STPCape,waist="Kentarch Belt +1",legs="Carmine Cuisses +1",feet=gear.DDFeet}
  211.  
  212. sets.Overkill = {
  213. body="Arcadian Jerkin +1"}
  214. sets.Overkill.Preshot = set_combine(sets.precast.RA, sets.Overkill)
  215.  
  216. --------------------------------------
  217. -- Custom buff sets
  218. --------------------------------------
  219.  
  220. sets.buff.Barrage = set_combine(sets.midcast.RA, {head="Meghanada Visor +1",ring1="Cacoethic Ring +1",ring2="Cacoethic Ring",
  221. body="Meghanada Cuirie +1",hands="Orion Bracers +1",legs="Desultor Tassets",})
  222.  
  223. end
  224.  
  225. -------------------------------------------------------------------------------------------------------------------
  226. -- Job-specific hooks for standard casting events.
  227. -------------------------------------------------------------------------------------------------------------------
  228.  
  229. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  230. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  231. function job_precast(spell, action, spellMap, eventArgs)
  232. if spell.action_type == 'Ranged Attack' or
  233. (spell.type == 'WeaponSkill' and (spell.skill == 'Marksmanship' or spell.skill == 'Archery')) then
  234. check_ammo(spell, action, spellMap, eventArgs)
  235. end
  236. end
  237.  
  238.  
  239. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  240. function job_midcast(spell, action, spellMap, eventArgs)
  241. if spell.action_type == 'Ranged Attack' and state.Buff.Barrage then
  242. equip(sets.buff.Barrage)
  243. eventArgs.handled = true
  244. end
  245. end
  246. function job_post_precast(spell, action, spellMap, eventArgs)
  247. if state.Buff.Camouflage then
  248. equip(sets.buff.Camouflage)
  249. elseif state.Buff.Overkill then
  250. equip(sets.Overkill.Preshot)
  251. end
  252. if spell.action_type=="Ranged Attack" then
  253. if not midshot_real then
  254. if buffactive['Flurry'] then
  255. equip(sets.precast.RA)
  256. --add_to_chat(122,"Flurry found")
  257. else
  258. equip(sets.precast.RA.noFlurry)
  259. --add_to_chat(122,"No flurry")
  260. end
  261. end
  262. end
  263. if spell.english == "Trueflight" and (buffactive['Aurorastorm'] or buffactive['Aurorastorm II']) then
  264. --print('weather mode')
  265. equip({waist="Hachirin-no-Obi"})
  266. end
  267. end
  268. -------------------------------------------------------------------------------------------------------------------
  269. -- Job-specific hooks for non-casting events.
  270. -------------------------------------------------------------------------------------------------------------------
  271.  
  272. -- Called when a player gains or loses a buff.
  273. -- buff == buff gained or lost
  274. -- gain == true if the buff was gained, false if it was lost.
  275. function job_buff_change(buff, gain)
  276. if buff == "Camouflage" then
  277. if gain then
  278. equip(sets.buff.Camouflage)
  279. disable('body')
  280. else
  281. enable('body')
  282. end
  283. end
  284. end
  285.  
  286. -------------------------------------------------------------------------------------------------------------------
  287. -- User code that supplements standard library decisions.
  288. -------------------------------------------------------------------------------------------------------------------
  289.  
  290. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  291. function display_current_job_state(eventArgs)
  292.  
  293. end
  294. function check_flurry_level()
  295. if buffactive['Flurry'] then
  296. add_to_chat(122,'Flurry Detected')
  297. state.flurrymode:set('Flurry')
  298. else
  299. state.flurrymode:set('NoFlurry')
  300. end
  301. end
  302. -------------------------------------------------------------------------------------------------------------------
  303. -- Utility functions specific to this job.
  304. -------------------------------------------------------------------------------------------------------------------
  305.  
  306. -- Check for proper ammo when shooting or weaponskilling
  307. function check_ammo(spell, action, spellMap, eventArgs)
  308.  
  309. end
  310.  
  311.  
  312.  
  313. -- Select default macro book on initial load or subjob change.
  314. function select_default_macro_book()
  315. set_macro_page(1, 6)
  316. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement