Advertisement
motox11jmc

SAM 011118

Jan 11th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.96 KB | None | 0 0
  1. --[[ Info
  2. Commands
  3. //gs debugmode
  4. //gs showswaps
  5. //gs validate - looks for gear in your sets that isnt in inventory.
  6. --]]
  7.  
  8. -- Initialization function for this job file.
  9. function get_sets()
  10. mote_include_version = 2
  11. -- Load and initialize the include file.
  12. include('Mote-Include.lua')
  13. end
  14.  
  15. -- Binds
  16. function binds_on_load()
  17. -- F9-F12
  18. send_command('bind f9 gs c cycle OffenseMode')
  19. send_command('bind f10 gs c cycle HybridMode')
  20. send_command('bind f11 gs c cycle CastingMode')
  21. send_command('bind f12 gs c cycle IdleMode')
  22. -- ALT F9-12
  23. send_command('bind !f9 gs c update user')
  24. send_command('bind !f10 gs c cycle RangedMode')
  25. send_command('bind !f11 gs c cycle WeaponskillMode')
  26. send_command('bind !f12 gs c cycle Kiting')
  27. end
  28.  
  29. -- Called when this job file is unloaded (eg: job change)
  30. function file_unload()
  31. if binds_on_unload then
  32. binds_on_unload()
  33. end
  34. end
  35.  
  36. -- Setup vars that are user-independent.
  37. function job_setup()
  38. state.Buff.Hasso = buffactive.Hasso or false
  39. state.Buff.Seigan = buffactive.Seigan or false
  40. state.Buff.Sekkanoki = buffactive.Sekkanoki or false
  41. state.Buff.Sengikori = buffactive.Sengikori or false
  42. state.Buff['Meikyo Shisui'] = buffactive['Meikyo Shisui'] or false
  43. end
  44.  
  45. -- Setup vars that are user-dependent.
  46. function user_setup()
  47. state.OffenseMode:options('Normal', 'LowAcc', 'Acc')
  48. state.HybridMode:options('Normal', 'DamageTaken')
  49. state.IdleMode:options('Normal', 'DamageTaken')
  50. state.WeaponskillMode:options('Normal', 'Acc')
  51.  
  52. update_combat_form()
  53.  
  54. select_default_macro_book()
  55. end
  56.  
  57. -- Define sets and vars used by this job file.
  58. function init_gear_sets()
  59. -- Precast Sets
  60. sets.precast.JA.Meditate = {head="Wakido Kabuto +1", hands="Sakonji Kote", back="Takaha Mantle"}
  61. sets.precast.JA['Blade Bash'] = {hands="Sakonji Kote"}
  62. sets.precast.JA['Warding Circle'] = {head="Wakido Kabuto +1"}
  63. sets.precast.JA['Provoke'] = {
  64. ammo="Sapience Orb",
  65. body="Emet Harness +1",
  66. back="Reiki Cloak", neck="Unmoving Collar +1",
  67. hands="Kurys Gloves",
  68. ring1="Pernicious Ring", ring2="Eihwaz Ring",
  69. ear1="Trux Earring", ear2="Cryptic Earring"}
  70.  
  71. -- Waltz set (chr and vit)
  72. sets.precast.Waltz = {}
  73.  
  74. -- Fast cast sets for spells
  75. sets.precast.FC = {
  76. ammo="Impatiens",
  77. body="Nuevo Coselete", neck="Orunmila's Torque",
  78. hands="Leyline Gloves", waist="Tempus Fugit",
  79. ring1="Lebeche Ring", ring2="Prolix Ring",
  80. ear1="Enchanter Earring +1", ear2="Loquacious Earring"}
  81.  
  82. -- Midcast Sets
  83. sets.midcast.FastRecast = {
  84. ammo="Impatiens",
  85. body="Nuevo Coselete", neck="Orunmila's Torque",
  86. hands="Leyline Gloves", waist="Tempus Fugit",
  87. ring1="Lebeche Ring", ring2="Prolix Ring",
  88. ear1="Enchanter Earring +1", ear2="Loquacious Earring"}
  89.  
  90. -- Resting sets
  91. sets.resting = {
  92. ammo="Ginsen",
  93. head=Val_WSdmg_head, body="Hizamaru Haramaki +2",
  94. back="Moonbeam Cape", neck="Sanctity Necklace",
  95. hands="Founder's Gauntlets", waist="Flume Belt +1",
  96. legs="Ryuo Hakama +1", feet="Danzo Sune-ate",
  97. ring1="Sheltered Ring", ring2="Paguroidea Ring",
  98. ear1="Odnowa Earring +1", ear2="Infused Earring"}
  99.  
  100. -- Idle sets
  101. sets.idle = {
  102. ammo="Ginsen",
  103. head=Val_WSdmg_head, body="Hizamaru Haramaki +2",
  104. back="Moonbeam Cape", neck="Sanctity Necklace",
  105. hands="Founder's Gauntlets", waist="Flume Belt +1",
  106. legs="Ryuo Hakama +1", feet="Danzo Sune-ate",
  107. ring1="Sheltered Ring", ring2="Paguroidea Ring",
  108. ear1="Odnowa Earring +1", ear2="Infused Earring"}
  109.  
  110. sets.idle.DamageTaken = {
  111. ammo="Ginsen",
  112. head="Loess Barbuta +1", body="Wakido Domaru +2",
  113. back="Moonbeam Cape", neck="Loricate Torque +1",
  114. hands="Founder's Gauntlets", waist="Flume Belt +1",
  115. legs="Ryuo Hakama +1", feet="Amm Greaves",
  116. ring1="Defending Ring", ring2="Patricius Ring",
  117. ear1="Odnowa Earring +1", ear2="Odnowa Earring"}
  118.  
  119. sets.idle.Town = {
  120. ammo="Ginsen",
  121. head=Val_WSdmg_head, body="Ryuo Domaru +1",
  122. back=Sme_WSdmg, neck="Moonlight Nodowa",
  123. hands="Wakido Kote +2", waist="Fotia Belt",
  124. legs="Ryuo Hakama +1", feet="Ryuo Sune-ate +1",
  125. ring1="Niqmaddu Ring", ring2="Regal Ring",
  126. ear1="Telos Earring", ear2="Cessance Earring"}
  127.  
  128. sets.idle.Weak = {
  129. ammo="Ginsen",
  130. head="Twilight Helm", body="Twilight Mail",
  131. back="Moonbeam Cape", neck="Loricate Torque +1",
  132. hands="Founder's Gauntlets", waist="Flume Belt +1",
  133. legs="Ryuo Hakama +1", feet="Amm Greaves",
  134. ring1="Defending Ring", ring2="Patricius Ring",
  135. ear1="Odnowa Earring +1", ear2="Odnowa Earring"}
  136.  
  137. sets.Kiting = {feet="Danzo Sune-ate"}
  138.  
  139. sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  140.  
  141. sets.buff.Sekkanoki = {hands="Kasuga Kote"}
  142. sets.buff.Sengikori = {feet="Kasuga Sune-ate"}
  143. sets.buff['Meikyo Shisui'] = {feet="Sakonji Sune-ate +1"}
  144. sets.buff['Hasso']= {hands="Wakido Kote +2"}
  145. sets.buff['Seigan'] = {head="Sakonji Kabuto +1", legs="Sakonji Haidate"}
  146.  
  147. -- Engaged sets
  148. -- 42stp with 11roll(neck). -- 66STP with 7roll+ (3 hit)
  149. -- So 57-66 seems like a good range
  150. -- 57stp with no roll at 450 delay . (4 hit)
  151. -- 26stp in WS set = 220 tp - then need 62stp in TP set for 4 hit
  152. -- Always add 8 STP to calc for JPx8
  153.  
  154. --59stp
  155. sets.engaged = {
  156. ammo="Ginsen",
  157. head="Flamma Zucchetto +2", body=Val_QA_body,
  158. back=Sme_DA_TP, neck="Moonlight Nodowa",
  159. hands="Wakido Kote +2", waist="Ioskeha Belt",
  160. legs="Ryuo Hakama +1", feet="Flamma Gambieras +2",
  161. ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  162. ear1="Brutal Earring", ear2="Cessance Earring"}
  163.  
  164. sets.engaged.LowAcc = {
  165. ammo="Ginsen",
  166. head="Flamma Zucchetto +2", body=Val_DA_body,
  167. back=Sme_DA_TP, neck="Moonlight Nodowa",
  168. hands="Ryuo Tekko", waist="Ioskeha Belt",
  169. legs="Ryuo Hakama +1", feet=Val_STP_feet,
  170. ring1="Niqmaddu Ring", ring2="Regal Ring",
  171. ear1="Telos Earring", ear2="Cessance Earring"}
  172.  
  173. sets.engaged.Acc = {
  174. ammo="Ginsen",
  175. head="Flamma Zucchetto +2", body=Val_DA_body,
  176. back=Sme_DA_TP, neck="Moonlight Nodowa",
  177. hands="Ryuo Tekko", waist="Olseni Belt",
  178. legs="Ryuo Hakama +1", feet=Val_STP_feet,
  179. ring1="Ramuh Ring +1", ring2="Regal Ring",
  180. ear1="Telos Earring", ear2="Dignitary's Earring"}
  181.  
  182. --Hybrid Sets
  183. sets.engaged.DamageTaken = set_combine(sets.engaged, {
  184. head="Loess Barbuta +1", body="Wakido Domaru +2",
  185. back="Moonbeam Cape", neck="Loricate Torque +1",
  186. hands="Founder's Gauntlets", waist="Flume Belt +1",
  187. legs="Ryuo Hakama +1", feet="Amm Greaves",
  188. ring1="Defending Ring", ring2="Regal Ring",
  189. ear1="Telos Earring", ear2="Mache Earring"})
  190. sets.engaged.LowAcc.DamageTaken = set_combine(sets.engaged.DamageTaken, {
  191. neck="Moonlight Nodowa",back=Sme_DA_TP})
  192. sets.engaged.Acc.DamageTaken = set_combine(sets.engaged.DamageTaken, {
  193. neck="Moonlight Nodowa",back=Sme_DA_TP})
  194.  
  195. -- Weapon Skill Sets
  196. sets.precast.WS = {
  197. ammo="Knobkierrie",
  198. head=Val_WSdmg_head, body=Val_QA_body,
  199. back=Sme_WSdmg, neck="Fotia Gorget",
  200. hands=Val_WSdmg_hands, waist="Fotia Belt",
  201. legs="Wakido Haidate +2", feet="Ryuo Sune-ate +1",
  202. ring1="Niqmaddu Ring", ring2="Regal Ring",
  203. ear1="Brutal Earring", ear2="Moonshade Earring"}
  204. sets.precast.WS.Acc = set_combine(sets.precast.WS, {hands=Val_STR_hands})
  205.  
  206. -- STR80% deals double damage, damage varies with tp. Use STR/WSD
  207. sets.precast.WS['Tachi: Fudo'] = {
  208. ammo="Knobkierrie",
  209. head=Val_WSdmg_head, body=Val_WSdmg_body,
  210. back=Sme_WSdmg, neck="Fotia Gorget",
  211. hands=Val_WSdmg_hands, waist="Fotia Belt",
  212. legs="Wakido Haidate +2", feet=Val_WSdmg_feet,
  213. ring1="Niqmaddu Ring", ring2="Regal Ring",
  214. ear1="Ishvara Earring", ear2="Moonshade Earring"}
  215. sets.precast.WS['Tachi: Fudo'].Acc = set_combine(sets.precast.WS['Tachi: Fudo'], {
  216. hands=Val_STR_hands})
  217.  
  218. -- STR 85%
  219. sets.precast.WS['Tachi: Shoha'] = {
  220. ammo="Knobkierrie",
  221. head=Val_WSdmg_head, body=Val_WSdmg_body,
  222. back=Sme_WSdmg, neck="Fotia Gorget",
  223. hands=Val_WSdmg_hands, waist="Fotia Belt",
  224. legs="Wakido Haidate +2", feet=Val_WSdmg_feet,
  225. ring1="Niqmaddu Ring", ring2="Regal Ring",
  226. ear1="Ishvara Earring", ear2="Moonshade Earring"}
  227. sets.precast.WS['Tachi: Shoha'].Acc = set_combine(sets.precast.WS['Tachi: Shoha'], {
  228. hands=Val_STR_hands})
  229.  
  230. --STR 50% 3 hit - multi hit
  231. sets.precast.WS['Tachi: Rana'] ={
  232. head="Flamma Zucchetto +2", body=Val_QA_body,
  233. back=Sme_WSdmg, neck="Fotia Gorget",
  234. hands="Founder's Gauntlets", waist="Fotia Belt",
  235. legs="Ryuo Hakama +1", feet="Flamma Gambieras +2",
  236. ring1="Niqmaddu Ring", ring2="Regal Ring",
  237. ear1="Brutal Earring", ear2="Moonshade Earring"}
  238. sets.precast.WS['Tachi: Rana'].Acc = set_combine(sets.precast.WS['Tachi: Rana'], {
  239. hands=Val_STR_hands})
  240.  
  241. --STR 75%
  242. sets.precast.WS['Tachi: Kasha'] = set_combine(sets.precast.WS, {})
  243. sets.precast.WS['Tachi: Kasha'].Acc = set_combine(sets.precast.WS.Acc, {})
  244.  
  245. --STR 50%
  246. sets.precast.WS['Tachi: Jinpu'] = {
  247. head=Val_WSdmg_head, body="Founder's Breastplate",
  248. back="Izdubar Mantle", neck="Baetyl Pendant",
  249. hands="Founder's Gauntlets", waist="Eschan Stone",
  250. legs="Ryuo Hakama +1", feet="Founder's Greaves",
  251. ring1="Niqmaddu Ring", ring2="Regal Ring",
  252. ear1="Friomisi Earring", ear2="Moonshade Earring"}
  253. sets.precast.WS['Tachi: Jinpu'].Acc = {}
  254.  
  255. -- AGI 73-85%
  256. sets.precast.WS['Apex Arrow'] = {
  257. head="Sakonji Kabuto +1", body="Kyujutsugi",
  258. back="Takaha Mantle", neck="Fotia Gorget",
  259. hands="Kasuga Kote", waist="Fotia Belt",
  260. legs="Ryuo Hakama +1", feet="Ryuo Sune-ate +1",
  261. ring1="Niqmaddu Ring", ring2="Regal Ring",
  262. ear1="Enervating Earring", ear2="Moonshade Earring"}
  263. end
  264.  
  265. -- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
  266. function job_pretarget(spell, action, spellMap, eventArgs)
  267. if spell.type == 'WeaponSkill' then
  268. -- Change any GK weaponskills to polearm weaponskill if we're using a polearm.
  269. if player.equipment.main=='Quint Spear' or player.equipment.main=='Quint Spear' then
  270. if spell.english:startswith("Tachi:") then
  271. send_command('@input /ws "Penta Thrust" '..spell.target.raw)
  272. eventArgs.cancel = true
  273. end
  274. end
  275. end
  276. end
  277.  
  278. -- Run after the default precast() is done.
  279. -- eventArgs is the same one used in job_precast, in case information needs to be persisted.
  280. function job_post_precast(spell, action, spellMap, eventArgs)
  281. if spell.type:lower() == 'weaponskill' then
  282. if state.Buff.Sekkanoki then
  283. equip(sets.buff.Sekkanoki)
  284. end
  285. if state.Buff.Sengikori then
  286. equip(sets.buff.Sengikori)
  287. end
  288. if state.Buff['Meikyo Shisui'] then
  289. equip(sets.buff['Meikyo Shisui'])
  290. end
  291. if state.Buff['Hasso'] then
  292. equip(sets.buff['Hasso'])
  293. end
  294. if state.Buff['Seigan'] then
  295. equip(sets.buff['Seigan'])
  296. end
  297. end
  298. end
  299.  
  300. -- Run after the default midcast() is done.
  301. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  302. function job_post_midcast(spell, action, spellMap, eventArgs)
  303. -- Effectively lock these items in place.
  304. if state.HybridMode.value == 'Reraise' or
  305. (state.DefenseMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then
  306. equip(sets.Reraise)
  307. end
  308. end
  309.  
  310. -- Called when a player gains or loses a buff.
  311. -- buff == buff gained or lost
  312. -- gain == true if the buff was gained, false if it was lost.
  313. function job_buff_change(buff, gain)
  314. if state.Buff[buff] ~= nil then
  315. handle_equipping_gear(player.status)
  316. end
  317. if buff == "Doom" or buff == "Curse" then
  318. if gain then
  319. equip(sets.Doom)
  320. send_command('@input /p Doomed.')
  321. disable('ring1','ring2','waist')
  322. else
  323. enable('ring1','ring2','waist')
  324. handle_equipping_gear(player.status)
  325. end
  326. end
  327. end
  328.  
  329. ---------------------------------------------------------------------------------
  330. -- User code that supplements standard library decisions.
  331. ---------------------------------------------------------------------------------
  332.  
  333. -- Called by the 'update' self-command, for common needs.
  334. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  335. function job_update(cmdParams, eventArgs)
  336. update_combat_form()
  337. end
  338.  
  339. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  340. function display_current_job_state(eventArgs)
  341.  
  342. end
  343.  
  344. --------------------------------------------------------
  345. -- Utility functions specific to this job.
  346. --------------------------------------------------------
  347. function update_combat_form()
  348. if areas.Adoulin:contains(world.area) and buffactive.ionis then
  349. state.CombatForm:set('Adoulin')
  350. else
  351. state.CombatForm:reset()
  352. end
  353. end
  354.  
  355. -- Select default macro book on initial load or subjob change.
  356. function select_default_macro_book()
  357. -- Default macro set/book
  358. if player.sub_job == 'DNC' then
  359. set_macro_page(1, 6)
  360. elseif player.sub_job == 'NIN' then
  361. set_macro_page(1, 6)
  362. else
  363. set_macro_page(1, 6)
  364. end
  365. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement