bongarippa

SAM

Mar 29th, 2017 (edited)
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.23 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. include('organizer-lib')
  8. mote_include_version = 2
  9.  
  10. -- Load and initialize the include file.
  11. include('Mote-Include.lua')
  12. end
  13.  
  14.  
  15. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  16. function job_setup()
  17. state.Buff.Hasso = buffactive.Hasso or false
  18. state.Buff.Seigan = buffactive.Seigan or false
  19. state.Buff.Sekkanoki = buffactive.Sekkanoki or false
  20. state.Buff.Sengikori = buffactive.Sengikori or false
  21. state.Buff['Meikyo Shisui'] = buffactive['Meikyo Shisui'] or false
  22. end
  23.  
  24. -------------------------------------------------------------------------------------------------------------------
  25. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  26. -------------------------------------------------------------------------------------------------------------------
  27.  
  28. -- Setup vars that are user-dependent.
  29. function user_setup()
  30. state.OffenseMode:options('Normal', 'Acc')
  31. state.HybridMode:options('Normal', 'PDT', 'Reraise')
  32. state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
  33. state.PhysicalDefenseMode:options('PDT', 'Reraise')
  34.  
  35. update_combat_form()
  36.  
  37. -- Additional local binds
  38. send_command('bind ^` input /ja "Hasso" <me>')
  39. send_command('bind !` input /ja "Seigan" <me>')
  40.  
  41. select_default_macro_book()
  42. end
  43.  
  44.  
  45. -- Called when this job file is unloaded (eg: job change)
  46. function user_unload()
  47. send_command('unbind ^`')
  48. send_command('unbind !-')
  49. end
  50.  
  51.  
  52. -- Define sets and vars used by this job file.
  53. function init_gear_sets()
  54. --------------------------------------
  55. -- Start defining the sets
  56. --------------------------------------
  57.  
  58. -- Precast Sets
  59. -- Precast sets to enhance JAs
  60. sets.precast.JA.Meditate = {head="Wakido Kabuto",hands="Sao. Kote +2",back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}}}
  61. sets.precast.JA['Warding Circle'] = {head="Wakido Kabuto"}
  62. sets.precast.JA['Blade Bash'] = {hands="Sakonji Kote"}
  63. sets.precast.JA['Meikyo Shisui'] = {feet="Sak. Sune-Ate +1"}
  64. -- Waltz set (chr and vit)
  65. sets.precast.Waltz = {}
  66.  
  67. -- Don't need any special gear for Healing Waltz.
  68. sets.precast.Waltz['Healing Waltz'] = {}
  69.  
  70.  
  71. -- Weaponskill sets
  72. -- Default set for any weaponskill that isn't any more specifically defined
  73. sets.precast.WS = {ammo="Knobkierrie",
  74. head={ name="Valorous Mask", augments={'Attack+27','Weapon skill damage +4%','STR+6','Accuracy+6',}},
  75. body={ name="Sakonji Domaru +3", augments={'Enhances "Overwhelm" effect',}},
  76. hands={ name="Valorous Mitts", augments={'Weapon skill damage +5%','MND+1','Attack+15',}},
  77. legs="Wakido Haidate +3",
  78. feet={ name="Valorous Greaves", augments={'Attack+14','Weapon skill damage +4%','STR+4',}},
  79. neck="Fotia Gorget",
  80. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  81. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  82. right_ear="Thrud Earring",
  83. left_ring="Niqmaddu Ring",
  84. right_ring="Regal Ring",
  85. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},}
  86.  
  87. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  88. sets.precast.WS['Tachi: Fudo'] = set_combine(sets.precast.WS, {})
  89. sets.precast.WS['Tachi: Fudo'].Acc = set_combine(sets.precast.WS.Acc, {})
  90. sets.precast.WS['Tachi: Fudo'].Mod = set_combine(sets.precast.WS['Tachi: Fudo'], {})
  91.  
  92. sets.precast.WS['Tachi: Shoha'] = set_combine(sets.precast.WS, {})
  93. sets.precast.WS['Tachi: Shoha'].Acc = set_combine(sets.precast.WS.Acc, {})
  94. sets.precast.WS['Tachi: Shoha'].Mod = set_combine(sets.precast.WS['Tachi: Shoha'], {})
  95.  
  96. sets.precast.WS['Tachi: Rana'] = set_combine(sets.precast.WS, {})
  97. sets.precast.WS['Tachi: Rana'].Acc = set_combine(sets.precast.WS.Acc, {})
  98. sets.precast.WS['Tachi: Rana'].Mod = set_combine(sets.precast.WS['Tachi: Rana'], {})
  99.  
  100. sets.precast.WS['Tachi: Kasha'] = set_combine(sets.precast.WS, {})
  101.  
  102. sets.precast.WS['Tachi: Gekko'] = set_combine(sets.precast.WS, {})
  103.  
  104. sets.precast.WS['Tachi: Yukikaze'] = set_combine(sets.precast.WS, {})
  105.  
  106. sets.precast.WS['Tachi: Ageha'] = set_combine(sets.precast.WS, {})
  107.  
  108. sets.precast.WS['Tachi: Jinpu'] = set_combine(sets.precast.WS, {hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  109. neck="Sanctity Necklace",
  110. waist="Eschan Stone",
  111. left_ear="Novio Earring",
  112. right_ear="Friomisi Earring"})
  113.  
  114.  
  115. -- Midcast Sets
  116. sets.midcast.FastRecast = {
  117. head="Yaoyotl Helm",
  118. body="Otronif Harness +1",hands="Otronif Gloves",
  119. legs="Phorcys Dirs",feet="Otronif Boots +1"}
  120.  
  121.  
  122. -- Sets to return to when not performing an action.
  123.  
  124. -- Resting sets
  125. sets.resting = {neck="Wiglen Gorget",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
  126.  
  127.  
  128. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  129. sets.idle.Town = {ammo="Knobkierrie",
  130. head="Glory Crown",
  131. body="Hachiryu Haramaki",
  132. hands="Wakido Kote +3",
  133. legs={ name="Ryuo Hakama", augments={'Accuracy+20','"Store TP"+4','Phys. dmg. taken -3',}},
  134. feet="Danzo Sune-Ate",
  135. neck="Moonlight Nodowa",
  136. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  137. left_ear="Infused Earring",
  138. right_ear="Genmei Earring",
  139. left_ring="Defending Ring",
  140. right_ring="Paguroidea Ring",
  141. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  142.  
  143. sets.idle.Field = {ammo="Staunch Tathlum +1",
  144. head="Genmei Kabuto",
  145. body="Hiza. Haramaki +2",
  146. hands="Kurys Gloves",
  147. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','"Store TP"+3','STR+10','Attack+14',}},
  148. feet="Danzo Sune-Ate",
  149. neck="Sanctity Necklace",
  150. waist="Flume Belt +1",
  151. left_ear="Infused Earring",
  152. right_ear="Genmei Earring",
  153. left_ring="Defending Ring",
  154. right_ring="Paguroidea Ring",
  155. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  156.  
  157. sets.idle.Weak = {ammo="Staunch Tathlum +1",
  158. head="Rabid Visor",
  159. body="Hiza. Haramaki +1",
  160. hands="Kurys Gloves",
  161. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','"Store TP"+3','STR+10','Attack+14',}},
  162. feet="Danzo Sune-Ate",
  163. neck="Sanctity Necklace",
  164. waist="Flume Belt +1",
  165. left_ear="Infused Earring",
  166. right_ear="Genmei Earring",
  167. left_ring="Defending Ring",
  168. right_ring="Paguroidea Ring",
  169. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  170.  
  171. -- Defense sets
  172. sets.defense.PDT = { ammo="Staunch Tathlum +1",
  173. head="Genmei Kabuto",
  174. body={ name="Valorous Mail", augments={'Attack+28','"Dbl.Atk."+4','DEX+4','Accuracy+12',}},
  175. hands="Wakido Kote +3",
  176. legs={ name="Ryuo Hakama", augments={'Accuracy+20','"Store TP"+4','Phys. dmg. taken -3',}},
  177. feet={ name="Valorous Greaves", augments={'Accuracy+30','"Store TP"+6','STR+5','Attack+12',}},
  178. neck="Loricate Torque +1",
  179. waist="Flume Belt +1",
  180. left_ear="Telos Earring",
  181. right_ear="Genmei Earring",
  182. left_ring="Defending Ring",
  183. right_ring="Patricius Ring",
  184. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  185.  
  186. sets.defense.Reraise = {
  187. head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  188. body="Twilight Mail",hands="Buremte Gloves",ring1="Defending Ring",ring2="Paguroidea Ring",
  189. back="Shadow Mantle",waist="Flume Belt +1",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
  190.  
  191. sets.defense.MDT = {ammo="Demonry Stone",
  192. head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  193. body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Shadow Ring",
  194. back="Engulfer Cape",waist="Flume Belt +1",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
  195.  
  196. sets.Kiting = {feet="Danzo Sune-ate"}
  197.  
  198. sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
  199.  
  200. -- Engaged sets
  201.  
  202. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  203. -- sets if more refined versions aren't defined.
  204. -- If you create a set with both offense and defense modes, the offense mode should be first.
  205. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  206.  
  207. -- Normal melee group
  208. -- Delay 450 GK, 25 Save TP => 65 Store TP for a 5-hit (25 Store TP in gear)
  209. sets.engaged = {ammo="Aurgelmir Orb",
  210. head="Flam. Zucchetto +2",
  211. body="Ken. Samue +1",
  212. hands="Wakido Kote +3",
  213. legs="Ke. Hakama +1",
  214. feet="Flam. Gambieras +2",
  215. neck="Moonlight Nodowa",
  216. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  217. left_ear="Cessance Earring",
  218. right_ear="Telos Earring",
  219. left_ring="Niqmaddu Ring",
  220. right_ring="Flamma Ring",
  221. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  222.  
  223. sets.engaged.Acc = set_combine(sets.engaged, {ammo="Ginsen",
  224. waist="Ioskeha Belt"})
  225.  
  226. sets.engaged.PDT = { ammo="Staunch Tathlum +1",
  227. head="Genmei Kabuto",
  228. body={ name="Valorous Mail", augments={'Attack+28','"Dbl.Atk."+4','DEX+4','Accuracy+12',}},
  229. hands="Wakido Kote +3",
  230. legs={ name="Ryuo Hakama", augments={'Accuracy+20','"Store TP"+4','Phys. dmg. taken -3',}},
  231. feet={ name="Valorous Greaves", augments={'Accuracy+30','"Store TP"+6','STR+5','Attack+12',}},
  232. neck="Loricate Torque +1",
  233. waist="Flume Belt +1",
  234. left_ear="Telos Earring",
  235. right_ear="Genmei Earring",
  236. left_ring="Defending Ring",
  237. right_ring="Patricius Ring",
  238. back={ name="Smertrios's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  239. sets.engaged.Acc.PDT = {}
  240. sets.engaged.Reraise = {}
  241.  
  242.  
  243.  
  244.  
  245. sets.buff.Sekkanoki = {hands="Unkai Kote +2"}
  246. sets.buff.Sengikori = {feet="Unkai Sune-ate +2"}
  247. sets.buff['Meikyo Shisui'] = {feet="Sakonji Sune-ate"}
  248. end
  249.  
  250.  
  251. -------------------------------------------------------------------------------------------------------------------
  252. -- Job-specific hooks for standard casting events.
  253. -------------------------------------------------------------------------------------------------------------------
  254.  
  255. -- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
  256. function job_pretarget(spell, action, spellMap, eventArgs)
  257. if spell.type == 'WeaponSkill' then
  258. -- Change any GK weaponskills to polearm weaponskill if we're using a polearm.
  259. if player.equipment.main=='Quint Spear' or player.equipment.main=='Quint Spear' then
  260. if spell.english:startswith("Tachi:") then
  261. send_command('@input /ws "Penta Thrust" '..spell.target.raw)
  262. eventArgs.cancel = true
  263. end
  264. end
  265. end
  266. end
  267.  
  268. -- Run after the default precast() is done.
  269. -- eventArgs is the same one used in job_precast, in case information needs to be persisted.
  270. function job_post_precast(spell, action, spellMap, eventArgs)
  271. if spell.type:lower() == 'weaponskill' then
  272. if state.Buff.Sekkanoki then
  273. equip(sets.buff.Sekkanoki)
  274. end
  275. if state.Buff.Sengikori then
  276. equip(sets.buff.Sengikori)
  277. end
  278. if state.Buff['Meikyo Shisui'] then
  279. equip(sets.buff['Meikyo Shisui'])
  280. end
  281. end
  282. end
  283.  
  284.  
  285. -- Run after the default midcast() is done.
  286. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  287. function job_post_midcast(spell, action, spellMap, eventArgs)
  288. -- Effectively lock these items in place.
  289. if state.HybridMode.value == 'Reraise' or
  290. (state.DefenseMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then
  291. equip(sets.Reraise)
  292. end
  293. end
  294.  
  295. -------------------------------------------------------------------------------------------------------------------
  296. -- User code that supplements standard library decisions.
  297. -------------------------------------------------------------------------------------------------------------------
  298.  
  299. -- Called by the 'update' self-command, for common needs.
  300. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  301. function job_update(cmdParams, eventArgs)
  302. update_combat_form()
  303. end
  304.  
  305. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  306. function display_current_job_state(eventArgs)
  307.  
  308. end
  309.  
  310. -------------------------------------------------------------------------------------------------------------------
  311. -- Utility functions specific to this job.
  312. -------------------------------------------------------------------------------------------------------------------
  313.  
  314. function update_combat_form()
  315. if areas.Adoulin:contains(world.area) and buffactive.ionis then
  316. state.CombatForm:set('Adoulin')
  317. else
  318. state.CombatForm:reset()
  319. end
  320. end
  321.  
  322. -- Select default macro book on initial load or subjob change.
  323. function select_default_macro_book()
  324. -- Default macro set/book
  325. if player.sub_job == 'WAR' then
  326. set_macro_page(1, 2)
  327. elseif player.sub_job == 'DNC' then
  328. set_macro_page(2, 2)
  329. elseif player.sub_job == 'THF' then
  330. set_macro_page(3, 2)
  331. elseif player.sub_job == 'NIN' then
  332. set_macro_page(4, 2)
  333. else
  334. set_macro_page(1, 2)
  335. end
  336. end
  337.  
Add Comment
Please, Sign In to add comment