Advertisement
Guest User

Untitled

a guest
Oct 9th, 2015
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 50.85 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. --[[
  6. Custom commands:
  7.  
  8. gs c cycle treasuremode (set on ctrl-= by default): Cycles through the available treasure hunter modes.
  9.  
  10. Treasure hunter modes:
  11. None - Will never equip TH gear
  12. Tag - Will equip TH gear sufficient for initial contact with a mob (either melee, ranged hit, or Aeolian Edge AOE)
  13. SATA - Will equip TH gear sufficient for initial contact with a mob, and when using SATA
  14. Fulltime - Will keep TH gear equipped fulltime
  15.  
  16. --]]
  17. send_command('exec verda/verda_thf.txt');
  18. hastetype=1
  19. function deepcopy(orig)
  20. local orig_type = type(orig)
  21. local copy
  22. if orig_type == 'table' then
  23. copy = {}
  24. for orig_key, orig_value in next, orig, nil do
  25. copy[deepcopy(orig_key)] = deepcopy(orig_value)
  26. end
  27. setmetatable(copy, deepcopy(getmetatable(orig)))
  28. else -- number, string, boolean, etc
  29. copy = orig
  30. end
  31. return copy
  32. end
  33. function copy_set(obj, seen)
  34. if type(obj) ~= 'table' then return obj end
  35. if seen and seen[obj] then return seen[obj] end
  36. local s = seen or {}
  37. local res = setmetatable({}, getmetatable(obj))
  38. s[obj] = res
  39. for k, v in pairs(obj) do res[copy_set(k, s)] = copy_set(v, s) end
  40. return res
  41. end
  42.  
  43.  
  44. -- Initialization function for this job file.
  45. function get_sets()
  46. mote_include_version = 2
  47.  
  48. -- Load and initialize the include file.
  49. include('Mote-Include.lua')
  50. include('organizer-lib')
  51. end
  52.  
  53. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  54. function job_setup()
  55. state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
  56. state.Buff['Trick Attack'] = buffactive['trick attack'] or false
  57. state.Buff['Feint'] = buffactive['feint'] or false
  58.  
  59. include('Mote-TreasureHunter')
  60.  
  61. -- For th_action_check():
  62. -- JA IDs for actions that always have TH: Provoke, Animated Flourish
  63. info.default_ja_ids = S{35, 204}
  64. -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
  65. info.default_u_ja_ids = S{201, 202, 203, 205, 207}
  66. end
  67.  
  68. -------------------------------------------------------------------------------------------------------------------
  69. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  70. -------------------------------------------------------------------------------------------------------------------
  71.  
  72. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  73. function user_setup()
  74. state.OffenseMode:options('Normal', 'Acc', 'AccExtreme')
  75. --state.HybridMode:options('Normal', 'Evasion', 'PDT')
  76. --state.RangedMode:options('Normal', 'Acc')
  77. --state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
  78. --state.accuracy = M{['description']="Accuracy Level",'Normal','Light', 'All Out'}
  79. state.damagetaken = M{['description']="Damage Taken",'None','DTLight', 'DT', 'MagicEvasion'}
  80. state.hastemode = M{['description'] = 'Haste Mode'}
  81. state.hastemode:options('NoHaste','HasteI','HasteII','Capped')
  82. state.rangetype = M{['description'] = 'Ranged Type'}
  83. state.rangetype:options('None','Throwing','Throwing2','Crossbow')
  84. state.cpmode = M(false, 'CP Mode')
  85. state.runaway = M(false, 'Run Away!')
  86. state.runaway2 = M(false, 'Run Away! (Jute Boot Version)')
  87. state.idlemode = M{['description']="Idle Mode",'Normal','Regen'}
  88. state.runaway = M(false, 'Run Away!')
  89. state.hasteknife = M(false, 'Blurred Dagger')
  90. state.aoedagger = M(false, 'Levante Dagger')
  91.  
  92.  
  93. gear.default.weaponskill_neck = "Asperity Necklace"
  94. --gear.default.weaponskill_waist = "Caudata Belt"
  95. --gear.AugQuiahuiz = {name="Quiahuiz Trousers", augments={'Haste+2','"Snapshot"+2','STR+8'}}
  96.  
  97. -- Additional local binds
  98. send_command('bind ^` input /ja "Flee" <me>')
  99. send_command('bind ^= gs c cycle treasuremode')
  100.  
  101. send_command('bind ^q gs c hastetype')
  102. send_command('bind !q gs c rangetype')
  103. send_command('bind f10 gs c cycle idlemode')
  104. send_command('bind f11 gs c cycle damagetaken')
  105. send_command('alias stp_m6 gs c toggle hasteknife')
  106. send_command('alias stp_m7 gs c toggle aoedagger')
  107. send_command('bind ^[ gs c toggle cpmode')
  108.  
  109. -- send_command('bind !- gs c cycle targetmode')
  110. --send_command('bind !\ gs c maxth')
  111. --send_command('bind f11 gs c magicevasion')
  112. --- send_command('bind f11 gs c damagetaken')
  113. -- send_command('bind f10 gs c ranged')
  114. -- send_command('bind f9 gs c accmode')
  115. -- send_command('bind ^q gs c dw')
  116.  
  117. --send_command('alias stp_m6 gs c maxth')
  118. --send_command('alias stp_m7 gs c hastemode')
  119. --send_command('bind f12 gs equip idle')
  120. send_command('bind ^/ gs c cycle runaway')
  121. send_command('bind !/ gs c cycle runaway2')
  122. send_command('alias stp_m10 input /ma "Monomi: Ichi" <me>')
  123. send_command('alias stp_m13 input /ws "Evisceration" <t>')
  124. send_command('bind %numpad1 setkey f8 down;wait .1;setkey f8 up;input /attack <t>')
  125. send_command('bind %numpad3 input /ws "Evisceration" <t>')
  126.  
  127. --send_command('bind ^f11 gs c magicevasion')
  128.  
  129. select_default_macro_book()
  130. end
  131.  
  132. -- Called when this job file is unloaded (eg: job change)
  133. function user_unload()
  134. send_command('unbind ^`')
  135. send_command('unbind !-')
  136. send_command('unbind %numpad1')
  137. send_command('unbind %numpad3')
  138. end
  139.  
  140. -- Define sets and vars used by this job file.
  141. function init_gear_sets()
  142. --------------------------------------
  143. -- Special sets (required by rules)
  144. --------------------------------------
  145. usehasteknife=0;
  146. maxth=0;
  147.  
  148. --sets.ExtraRegen = {ring1="Paguroidea Ring"}
  149. sets.Kiting = {feet="Trotter's Boots"}
  150. --sets.Haste = {main="Blurred Knife"}
  151. --sets.SilenceDagger = {main="Levante dagger"}
  152. --sets.Offhand = {sub="Shijo"}
  153. --sets.Mainhand = {main="Taming Sari"}
  154. sets.TreasureHunter = {head="Skulker's Bonnet +1",hands="Plun. Armlets +1",waist="Chaac Belt",feet="Skulker's Poulaines +1"}
  155. sets.noknifeTH = {hands="Plun. Armlets +1",waist="Chaac Belt",feet="Skulker's Poulaines +1"}
  156. sets.TH = {main="Sandung"}
  157. sets.THsub = {sub="Thief's Knife"}
  158. sets.THset = {main="Sandung",sub="Thief's Knife",waist="Chaac Belt",hands="Plun. Armlets +1",feet="Skulker's Poulaines +1"}
  159. sets.cpmode = {back="Mecisto. Mantle"}
  160. sets.TaeonSTRDEX = {
  161. --head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+3 DEX+3',}},
  162. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7',}},
  163. --hands={ name="Taeon Gloves", augments={'Accuracy+15 Attack+15','"Triple Atk."+2','STR+3 DEX+3',}},
  164. --legs={ name="Taeon Tights", augments={'Accuracy+18 Attack+18','"Triple Atk."+2','STR+6 DEX+6',}},
  165. --feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','STR+4 DEX+4',}},
  166. feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+6',}},
  167. }
  168. --Max: acc 100 att 100 STR 35 DEX 35
  169. --At: acc: 90 att 90 STR 16 DEX 23
  170. --Missing: acc 11 att 11 STR 19 DEX 12
  171. sets.TaeonDW = {
  172. head={ name="Taeon Chapeau", augments={'Accuracy+15 Attack+15','"Dual Wield"+5','STR+4',}},
  173. --body={ name="Taeon Tabard", augments={'Accuracy+15 Attack+15','"Dual Wield"+5','STR+4 AGI+4',}},
  174. --hands={ name="Taeon Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+4','STR+8',}},
  175. legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Dual Wield"+4','STR+2 DEX+2',}},
  176. feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','STR+4 DEX+4',}},
  177. }
  178. --Max: acc 100 att 100 STR 35 DEX 35
  179. --At: acc 82 att 82 STR 18 DEX 10
  180. --Missing: acc 18 att 18 STR 17 DEX 25
  181.  
  182. --sets.buff['Sneak Attack'] = set_combine(sets.engaged, {hands="Raider's Armlets +1"})
  183. -- {ammo="Qirmiz Tathlum",
  184. -- head="Pillager's Bonnet +1",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  185. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
  186. -- back="Atheling Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
  187.  
  188. -- sets.buff['Trick Attack'] = {ammo="Qirmiz Tathlum",
  189. -- head="Pillager's Bonnet +1",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  190. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Stormsoul Ring",ring2="Epona's Ring",
  191. -- back="Atheling Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
  192.  
  193. -- Actions we want to use to tag TH.
  194. sets.precast.Step = sets.TreasureHunter
  195. sets.precast.Flourish1 = sets.TreasureHunter
  196. sets.precast.JA.Provoke = sets.TreasureHunter
  197. sets.keep = {
  198. left_ring="Warp Ring",
  199. right_ring="Capacity Ring",
  200. }
  201. sets.keep2 = {
  202. left_ring="Echad Ring",
  203. right_ring="Trizek Ring",
  204. }
  205. sets.keep3= {
  206. ammo="Toolbag (Shihe)",
  207. left_ring="Shihei",
  208. right_ring="Shinobi-Tabi",
  209. head="Sanjaku-Tenugui",
  210. body="Squid Sushi",
  211. legs="Holy Water",
  212. feet="Sole Sushi",
  213. hands="Sole Sushi +1",
  214. neck="Squid Sushi +1",
  215. left_ear="Red Curry Bun",
  216. right_ear="Red Curry Bun +1",
  217. main="Remedy",
  218. sub="Echo Drops"
  219. }
  220.  
  221.  
  222. --------------------------------------
  223. -- Precast sets
  224. --------------------------------------
  225.  
  226. -- Precast sets to enhance JAs
  227. sets.precast.JA['Collaborator'] = {head="Skulker's Bonnet +1"}
  228. sets.precast.JA['Accomplice'] = {head="Skulker's Bonnet +1"}
  229. sets.precast.JA['Flee'] = {feet="Pillager's Poulaines"}
  230. sets.precast.JA['Hide'] = {body="Pillager's Vest"}
  231. sets.precast.JA['Conspirator'] = {body="Skulker's Vest"}
  232. --sets.precast.JA['Steal'] = {head="Pillager's Bonnet",hands="Rogues's Armlets",legs="Rogues's Culottes",feet="Rogues's Poulaines",neck="Pentalagus Charm"}
  233. sets.precast.JA['Steal'] = {
  234. --head="Pillager's Bonnet",
  235. neck="Pentalagus Charm",
  236. --hands="Pill. Armlets +1",
  237. legs="Pill. Culottes +1",
  238. feet="Pillager's Poulaines"
  239. }
  240. sets.precast.JA['Despoil'] = {legs="Skulker's Culottes",feet="Skulker's Poulaines +1"}
  241. sets.precast.JA['Perfect Dodge'] = {hands="Plun. Armlets +1"}
  242. --sets.precast.JA['Feint'] = {} -- {legs="Assassin's Culottes +2"}
  243.  
  244. sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
  245. sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
  246. sets.slashing = {main="Pukulatmuj",sub="Deliverance"}
  247. sets.blunt = {main="Pukulatmuj"}
  248.  
  249.  
  250. -- Waltz set (chr and vit)
  251. --sets.precast.Waltz = {ammo="Sonia's Plectrum",
  252. -- head="Whirlpool Mask",
  253. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Asklepian Ring",
  254. -- back="Iximulew Cape",waist="Caudata Belt",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
  255.  
  256. -- Don't need any special gear for Healing Waltz.
  257. -- sets.precast.Waltz['Healing Waltz'] = {}
  258.  
  259.  
  260. -- Fast cast sets for spells
  261. --sets.precast.FC = {head="Haruspex Hat",ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring",legs="Enif Cosciales"}
  262. sets.precast.FC = {head="Haruspex Hat",body="Samnuha Coat",hands="Leyline Gloves",left_ring="Prolix Ring",legs="Limbo Trousers"}
  263.  
  264. --sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  265.  
  266.  
  267. -- Ranged snapshot gear
  268. --sets.precast.RA = {head="Aurore Beret",hands="Iuitl Wristbands",legs="Nahtirah Trousers",feet="Wurrukatte Boots"}
  269.  
  270.  
  271. -- Weaponskill sets
  272.  
  273. -- Default set for any weaponskill that isn't any more specifically defined
  274. --sets.precast.WS = {ammo="Thew Bomblet",
  275. -- head="Whirlpool Mask",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
  276. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
  277. -- back="Atheling Mantle",waist="Caudata Belt",legs="Manibozho Brais",feet="Iuitl Gaiters +1"}
  278. --sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Honed Tathlum", back="Letalis Mantle"})
  279. --sets.precast.WS.Acc = set_combine(sets.precast.WS, {neck="Ej Necklace"})
  280. sets.precast.WS = {
  281. --hands="Pill. Armlets +1",
  282. --legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
  283. --legs="Pillager's Culottes +1",
  284. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  285. neck="Love Torque",
  286. ammo="Qirmiz Tathlum",
  287. --neck="Pentalagus Charm",
  288. --neck="Asperity Necklace",
  289. --neck="Ej Necklace",
  290. --neck="Moepapa Mantle",
  291. --waist="Patentia Sash",
  292. body="Rawhide Vest",
  293. --hands="Adhemar Wristbands",
  294. hands="Adhemar Wristbands",
  295. waist="Prosilio Belt +1",
  296. feet="Lustratio Leggings",
  297. left_ear="Jupiter's pearl",
  298. right_ear="Jupiter's pearl",
  299. --right_ear="Bladeborn Earring",
  300. --left_ring="Tyrant's Ring",
  301. --ring1="Epona's Ring",
  302. --ring2="Oneiros Ring",
  303. left_ring="Ramuh Ring",
  304. right_ring="Ramuh Ring",
  305. back="Canny Cape",
  306. --back="Mecisto. Mantle",
  307. }
  308. sets.precast.WS = set_combine(sets.TaeonSTRDEX,sets.precast.WS)
  309. sets.CP = {
  310. back="Mecisto. Mantle",
  311. }
  312. --sets.precast.WS['Aeolian Edge'] = set_combine(sets.precast.WS, {ring1="Stormsoul Ring",legs="Nahtirah Trousers"})
  313. sets.precast.WS['Evisceration'] = {
  314. --hands="Pill. Armlets +1",
  315. --legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
  316. --legs="Pillager's Culottes +1",
  317. neck="Love Torque",
  318. ammo="Qirmiz Tathlum",
  319. --neck="Pentalagus Charm",
  320. --neck="Asperity Necklace",
  321. --neck="Ej Necklace",
  322. --neck="Moepapa Mantle",
  323. --waist="Patentia Sash",
  324. body="Rawhide Vest",
  325. hands="Adhemar Wristbands",
  326. waist="Shadow Belt",
  327. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  328. feet="Lustratio Leggings",
  329. left_ear="Steelflash Earring",
  330. right_ear="Bladeborn Earring",
  331. --right_ear="Bladeborn Earring",
  332. --left_ring="Tyrant's Ring",
  333. ring1="Epona's Ring",
  334. ring2="Oneiros Ring",
  335. back="Canny Cape",
  336. --back="Mecisto. Mantle",
  337. }
  338. sets.precast.WS['Evisceration'] = set_combine(sets.TaeonSTRDEX,sets.precast.WS['Evisceration'])
  339. sets.precast.WS['Aeolian Edge'] = {
  340. --ammo="Jukukik Feather",
  341. --range="Wingcutter +1",
  342. --head="Highwing Helm",
  343. --neck="Stoicheion Medal",
  344. neck="Satlada Necklace",
  345. ear1="Friomisi Earring",
  346. --ear2="Moonshade Earring",
  347. --body="Lapidary tunic",
  348. hands="Leyline Gloves",
  349. body="Samnuha Coat",
  350. --ring1="Acumen Ring",
  351. --ring2="Demon's Ring",
  352. feet="Lustratio Leggings",
  353. back="Toro Cape",
  354. ammo="Grenade Core",
  355. --waist=gear.ElementalBelt,
  356. --legs="Shneddick Tights +1",
  357. --feet="Wayfarer Clogs"
  358. }
  359. sets.precast.WS['Aeolian Edge'] = set_combine(sets.TaeonSTRDEX,sets.precast.WS['Aeolian Edge'])
  360. -- sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
  361.  
  362. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  363. --sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {ring1="Stormsoul Ring",legs="Nahtirah Trousers"})
  364. --sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  365. --sets.precast.WS['Exenterator'].Mod = set_combine(sets.precast.WS['Exenterator'], {head="Felistris Mask",waist=gear.ElementalBelt})
  366. --sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
  367. --sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
  368. --sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
  369.  
  370. -- sets.precast.WS['Dancing Edge'] = set_combine(sets.precast.WS, {})
  371. -- sets.precast.WS['Dancing Edge'].Acc = set_combine(sets.precast.WS['Dancing Edge'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  372. -- sets.precast.WS['Dancing Edge'].Mod = set_combine(sets.precast.WS['Dancing Edge'], {waist=gear.ElementalBelt})
  373. -- sets.precast.WS['Dancing Edge'].SA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Qirmiz Tathlum"})
  374. -- sets.precast.WS['Dancing Edge'].TA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Qirmiz Tathlum"})
  375. -- sets.precast.WS['Dancing Edge'].SATA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Qirmiz Tathlum"})
  376.  
  377. -- sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {ammo="Qirmiz Tathlum",
  378. -- head="Uk'uxkaj Cap",neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
  379. -- sets.precast.WS['Evisceration'].Acc = set_combine(sets.precast.WS['Evisceration'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  380. -- sets.precast.WS['Evisceration'].Mod = set_combine(sets.precast.WS['Evisceration'], {back="Kayapa Cape",waist=gear.ElementalBelt})
  381. -- sets.precast.WS['Evisceration'].SA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
  382. -- sets.precast.WS['Evisceration'].TA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
  383. -- sets.precast.WS['Evisceration'].SATA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
  384. --sets.precast.WS['Evisceration'] = set_combine(sets.engaged,{waist="Shadow Belt"})
  385. --
  386. -- sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
  387. -- sets.precast.WS["Rudra's Storm"].Acc = set_combine(sets.precast.WS["Rudra's Storm"], {ammo="Honed Tathlum", back="Letalis Mantle"})
  388. -- sets.precast.WS["Rudra's Storm"].Mod = set_combine(sets.precast.WS["Rudra's Storm"], {back="Kayapa Cape",waist=gear.ElementalBelt})
  389. -- sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
  390. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  391. -- sets.precast.WS["Rudra's Storm"].TA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
  392. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  393. -- sets.precast.WS["Rudra's Storm"].SATA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
  394. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  395. --
  396. -- sets.precast.WS["Shark Bite"] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
  397. -- sets.precast.WS['Shark Bite'].Acc = set_combine(sets.precast.WS['Shark Bite'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  398. -- sets.precast.WS['Shark Bite'].Mod = set_combine(sets.precast.WS['Shark Bite'], {back="Kayapa Cape",waist=gear.ElementalBelt})
  399. -- sets.precast.WS['Shark Bite'].SA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Qirmiz Tathlum",
  400. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  401. -- sets.precast.WS['Shark Bite'].TA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Qirmiz Tathlum",
  402. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  403. -- sets.precast.WS['Shark Bite'].SATA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Qirmiz Tathlum",
  404. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  405. --
  406. -- sets.precast.WS['Mandalic Stab'] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
  407. -- sets.precast.WS['Mandalic Stab'].Acc = set_combine(sets.precast.WS['Mandalic Stab'], {ammo="Honed Tathlum", back="Letalis Mantle"})
  408. -- sets.precast.WS['Mandalic Stab'].Mod = set_combine(sets.precast.WS['Mandalic Stab'], {back="Kayapa Cape",waist=gear.ElementalBelt})
  409. -- sets.precast.WS['Mandalic Stab'].SA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Qirmiz Tathlum",
  410. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  411. -- sets.precast.WS['Mandalic Stab'].TA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Qirmiz Tathlum",
  412. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  413. -- sets.precast.WS['Mandalic Stab'].SATA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Qirmiz Tathlum",
  414. -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
  415. --
  416. -- sets.precast.WS['Aeolian Edge'] = {ammo="Jukukik Feather",
  417. -- head="Wayfarer Circlet",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Moonshade Earring",
  418. -- body="Wayfarer Robe",hands="Pillager's Armlets +1",ring1="Acumen Ring",ring2="Demon's Ring",
  419. -- back="Toro Cape",waist=gear.ElementalBelt,legs="Shneddick Tights +1",feet="Wayfarer Clogs"}
  420. --
  421. -- sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
  422.  
  423.  
  424. --------------------------------------
  425. -- Midcast sets
  426. --------------------------------------
  427.  
  428. -- sets.midcast.FastRecast = {
  429. -- head="Whirlpool Mask",ear2="Loquacious Earring",
  430. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",
  431. -- back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
  432.  
  433. -- Specific spells
  434. -- sets.midcast.Utsusemi = {
  435. -- head="Whirlpool Mask",neck="Ej Necklace",ear2="Loquacious Earring",
  436. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",
  437. -- back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
  438.  
  439. -- Ranged gear
  440. -- sets.midcast.RA = {
  441. -- head="Whirlpool Mask",neck="Ej Necklace",ear1="Clearview Earring",ear2="Volley Earring",
  442. -- body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Beeline Ring",ring2="Hajduk Ring",
  443. -- back="Libeccio Mantle",waist="Aquiline Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"}
  444.  
  445. -- sets.midcast.RA.Acc = {
  446. -- head="Pillager's Bonnet +1",neck="Ej Necklace",ear1="Clearview Earring",ear2="Volley Earring",
  447. -- body="Iuitl Vest",hands="Buremte Gloves",ring1="Beeline Ring",ring2="Hajduk Ring",
  448. -- back="Libeccio Mantle",waist="Aquiline Belt",legs="Thurandaut Tights +1",feet="Pillager's Poulaines +1"}
  449.  
  450.  
  451. --------------------------------------
  452. -- Idle/resting/defense sets
  453. --------------------------------------
  454.  
  455. -- Resting sets
  456. -- sets.resting = {head="Ocelomeh Headpiece",neck="Wiglen Gorget",
  457. -- ring1="Sheltered Ring",ring2="Paguroidea Ring"}
  458. -- sets.resting = set_combine(sets.idle, sets.ExtraRegen)
  459. sets.rangetype = {}
  460. sets.rangetype.None = {
  461. --range="",
  462. --ammo="Ginsen",
  463. }
  464. sets.rangetype.Throwing = {
  465. range="Wingcutter +1",
  466. ammo=""
  467. }
  468. sets.rangetype.Throwing2 = {
  469. range="Albin Bane",
  470. ammo=""
  471. }
  472. sets.rangetype.Crossbow = {
  473. range="One-eyed",
  474. ammo="Bloody Bolt",
  475. }
  476. sets.resting={
  477. -- main="Shijo",
  478. -- sub="Jugo Kurki +1",
  479. -- range="Snakeeye",
  480. head="Oce. Headpiece +1",
  481. -- body="Taeon tabard",
  482. -- hands="Taeon Gloves",
  483. -- legs="Taeon tights",
  484. feet="Jute Boots +1",
  485. neck="Wiglen Gorget",
  486. waist="Windbuffet Belt +1",
  487. left_ear="Steelflash Earring",
  488. right_ear="Bladeborn Earring",
  489. left_ring="Sheltered Ring",
  490. right_ring="Paguroidea Ring",
  491. back="Repulse Mantle"
  492. --back="Engulfer Cape +1"
  493. --back="Canny Cape",
  494. --back="Mecistopins mantle",
  495. }
  496.  
  497. -- sets.resting ={
  498. -- main="Sandung",
  499. -- sub="Eminent Dagger",
  500. -- range="Snakeeye",
  501. -- head="Ocelo. Headpiece",
  502. -- body="Taeon tabard",
  503. -- hands="Taeon Gloves",
  504. -- legs="Taeon tights",
  505. -- feet="Jute Boots +1",
  506. -- neck="Orochi Nodowa",
  507. -- waist="Patentia Sash",
  508. -- left_ear="Volley earring",
  509. -- right_ear="Kemas Earring",
  510. -- left_ring="Epona's Ring",
  511. -- right_ring="Warp Ring",
  512. -- back="Canny Cape",
  513. -- }
  514.  
  515. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  516.  
  517. -- sets.idle = {ammo="Thew Bomblet",
  518. -- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  519. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  520. -- back="Shadow Mantle",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Skadi's Jambeaux +1"}
  521. sets.idle ={
  522. --main="Taming Sari",
  523. --sub="Jugo Kukri +1",
  524. --sub="Nibiru Knife",
  525. --sub="Shijo",
  526. main={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
  527. sub={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
  528. ammo="Ginsen",
  529. --range="Raider's Bmrng.",
  530. --head="Oce. Headpiece +1",
  531. head="Skulker's Bonnet +1",
  532. hands="Adhemar Wristbands",
  533. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  534. feet="Jute Boots +1",
  535. neck="Wiglen Gorget",
  536. --waist="Windbuffet Belt +1",
  537. waist="Flume Belt +1",
  538. left_ear="Allegro Earring",
  539. right_ear="Infused Earring",
  540. --left_ring="Sheltered Ring",
  541. left_ring="Defending Ring",
  542. right_ring="Paguroidea Ring",
  543. back="Repulse Mantle"
  544. --back="Engulfer Cape +1"
  545. --back="Canny Cape",
  546. --back="Mecistopins mantle",
  547. }
  548. sets.idle = set_combine(sets.TaeonSTRDEX,sets.idle)
  549. sets.idle.Regen = {
  550. left_ring="Sheltered Ring",
  551. right_ring="Paguroidea Ring",
  552. right_ear="Infused Earring",
  553. head="Oce. Headpiece +1",
  554. neck="Wiglen Gorget",
  555. }
  556. sets.idlesave = copy_set(sets.idle)
  557. -- {
  558. -- main="Shijo",
  559. -- sub="Jugo Kukri +1",
  560. -- --range="Raider's Bmrng.",
  561. -- head="Oce. Headpiece +1",
  562. -- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7',}},
  563. -- hands={ name="Taeon Gloves", augments={'Accuracy+25','"Triple Atk."+2','STR+3 DEX+3',}},
  564. -- legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
  565. -- feet="Jute Boots +1",
  566. -- neck="Wiglen Gorget",
  567. -- waist="Windbuffet Belt +1",
  568. -- left_ear="Steelflash Earring",
  569. -- right_ear="Bladeborn Earring",
  570. -- left_ring="Sheltered Ring",
  571. -- right_ring="Paguroidea Ring",
  572. -- back="Canny Cape",
  573. -- --back="Mecistopins mantle",
  574. -- }
  575.  
  576. -- sets.idle.Town = {main="Izhiikoh", sub="Sabebus",ammo="Thew Bomblet",
  577. -- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  578. -- body="Pillager's Vest +1",hands="Pill. Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  579. -- back="Shadow Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Skadi's Jambeaux +1"}
  580.  
  581. -- sets.idle.Weak = {ammo="Thew Bomblet",
  582. -- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  583. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  584. -- back="Shadow Mantle",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Skadi's Jambeaux +1"}
  585.  
  586.  
  587. -- Defense sets
  588.  
  589. -- sets.defense.Evasion = {
  590. -- head="Pillager's Bonnet +1",neck="Ej Necklace",
  591. -- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Beeline Ring",
  592. -- back="Canny Cape",waist="Flume Belt",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
  593. --
  594. -- sets.defense.PDT = {ammo="Iron Gobbet",
  595. -- head="Pillager's Bonnet +1",neck="Twilight Torque",
  596. -- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  597. -- back="Iximulew Cape",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Iuitl Gaiters +1"}
  598. --
  599. -- sets.defense.MDT = {ammo="Demonry Stone",
  600. -- head="Pillager's Bonnet +1",neck="Twilight Torque",
  601. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Shadow Ring",
  602. -- back="Engulfer Cape",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Iuitl Gaiters +1"}
  603. --
  604. sets.runaway = {
  605. main="",
  606. sub="Deliverance",--4
  607. neck="Inq. Bead Necklace",
  608. right_ear="Infused Earring",
  609. right_ring="Gelatinous Ring",--6
  610. left_ring="Defending Ring",--10
  611. waist="Flume Belt +1",--4
  612. --feet="Areion Boots",
  613. back="Repulse Mantle"
  614. }
  615. sets.runaway2 = {
  616. main="",
  617. sub="Deliverance",--4
  618. --neck="Inq. Bead Necklace",
  619. neck="Wiglen Gorget",
  620. right_ear="Infused Earring",
  621. right_ring="Gelatinous Ring +1",--6
  622. left_ring="Defending Ring",--10
  623. waist="Flume Belt +1",--4
  624. feet="Jute Boots +1",
  625. back="Repulse Mantle"
  626. }
  627. sets.damagetaken = {}
  628. sets.damagetaken.None = {
  629. }
  630. sets.damagetaken.DTLight = {
  631. --right_ring="Gelatinous Ring",
  632. left_ring="Defending Ring",
  633. --waist="Flume Belt +1",
  634. --back="Repulse Mantle"
  635. back="Mollusca Mantle"
  636. }
  637. sets.damagetaken.DT = {
  638. right_ring="Gelatinous Ring +1",--6
  639. left_ring="Defending Ring",--10
  640. --neck="Inq. Bead Necklace",
  641. --neck="Wiglen Gorget",--6
  642. waist="Flume Belt +1",--4
  643. back="Mollusca Mantle"--5
  644. --back="Engulfer Cape +1"
  645. }
  646. sets.damagetaken.PDT = {
  647. }
  648. sets.damagetaken.MDT = {
  649. }
  650. sets.damagetaken.MagicEvasion = {
  651. neck="Inq. Bead Necklace",
  652. waist="Flume Belt +1",
  653. feet="Jute Boots +1",
  654. left_ring="Defending Ring",
  655. right_ring="Vengeful Ring",
  656. --back="Mollusca Mantle"
  657. back="Engulfer Cape +1"
  658. }
  659.  
  660.  
  661. --------------------------------------
  662. -- Melee sets
  663. --------------------------------------
  664. --Kroyipi
  665. -- Normal melee group
  666. --sets.engaged= sets.TaeonSTRDEX
  667. --Caphaste: dw5
  668. --Cape 4
  669. --feet 4 + 5
  670. sets.engaged={
  671. --main="Shijo",
  672. main={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
  673. sub={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
  674. --sub="Jugo Kukri +1",
  675. --sub="Nibiru Knife",
  676. --sub="Shijo",
  677. ammo="Ginsen",
  678. -- range="Raider's Bmrng.",
  679. --range="",
  680. --ammo="Qirmiz Tathlum",
  681. --ammo="Ginsen",
  682. hands="Adhemar Wristbands",
  683. head="Skulker's Bonnet +1",
  684. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  685. neck="Asperity Necklace",
  686. --neck="Ej Necklace",
  687. waist="Windbuffet Belt +1",
  688. --waist="Patentia Sash",
  689. left_ear="Steelflash Earring",
  690. right_ear="Bladeborn Earring",
  691. --left_ring="Tyrant's Ring",
  692. left_ring="Epona's Ring",
  693. right_ring="Rajas Ring",
  694. back="Lupine Cape",
  695. --back="Mecisto. Mantle",
  696. }
  697. sets.engaged = set_combine(sets.TaeonSTRDEX,sets.engaged)
  698. sets.base= copy_set(sets.engaged)
  699. sets.evasion = {
  700. --head="Imp. Wing Hairpin", --69 agi 33
  701. right_ear="Infused Earring", --10 agi 4
  702. left_ear="Allegro Earring", --10 agi 4
  703. --rings 16
  704. right_ring="Vengeful Ring", --9
  705. neck="Ej necklace",--neck 15
  706. --waist="Svelt. Gouriz +1", --10 agi 10
  707. back="Canny Cape", --15 agi 6
  708. --body="karmesin vest", --62 agi 29
  709. --
  710. }
  711. sets.evasion = set_combine(sets.base,sets.evasion)
  712. --sets.base= sets.engaged
  713. -- { main="Shijo",
  714. -- sub="Jugo Kukri +1",
  715. ---- range="Raider's Bmrng.",
  716. -- range="",
  717. -- ammo="Qirmiz Tathlum",
  718. ---- head="Taeon chapeau",
  719. ---- body="Taeon tabard",
  720. ---- hands="Taeon Gloves",
  721. ---- legs="Taeon tights",
  722. ---- feet="Taeon Boots",
  723. -- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+3 DEX+3',}},
  724. -- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7',}},
  725. -- hands={ name="Taeon Gloves", augments={'Accuracy+25','"Triple Atk."+2','STR+3 DEX+3',}},
  726. -- legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
  727. -- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','STR+4 DEX+4',}},
  728. -- neck="Asperity Necklace",
  729. -- --neck="Ej Necklace",
  730. -- waist="Windbuffet Belt +1",
  731. -- --waist="Patentia Sash",
  732. -- left_ear="Steelflash Earring",
  733. -- right_ear="Bladeborn Earring",
  734. -- --left_ring="Tyrant's Ring",
  735. -- ring2="Epona's Ring",
  736. -- ring1="Rajas Ring",
  737. -- back="Canny Cape",
  738. -- --back="Mecisto. Mantle",
  739. -- }
  740.  
  741. -- earrings 7
  742. -- taeon 23 + 4 = 27
  743. -- cape 4 --38
  744. -- sash 5 --43
  745. -- missing 5
  746. -- raiders 3 XOff
  747. -- blurred 6 XOff
  748.  
  749. --Dw4:
  750. --No haste magic: dw43
  751. --Haste samba: dw39
  752. --Haste1: dw37
  753. --Haste2: dw26
  754. --Caphaste: dw5
  755. --Taeon 27
  756. --Sash 5
  757. --Earrings 7
  758. --Cape 4
  759.  
  760. sets.hastemode = {}
  761. sets.hastemode.NoHaste={ -- need 43, at 41
  762. --main="Blurred Knife",
  763. --range="Raider's Bmrng.",
  764. waist="Patentia Sash", --5
  765. --waist="Windbuffet Belt +1",
  766. hands="Floral Gauntlets", --5
  767. body="Samnuha Coat",--5
  768. left_ear="Dudgeon Earring", --7
  769. right_ear="Heartseeker Earring",
  770. back="Canny Cape", --1
  771. --taeon: 18
  772. }
  773. sets.hastemode.HasteI={ -- need 37, at 36
  774. --main="Blurred Knife",
  775. --range="Raider's Bmrng.",
  776. --waist="Patentia Sash",
  777. body="Samnuha Coat",
  778. hands="Floral Gauntlets",
  779. waist="Windbuffet Belt +1",
  780. left_ear="Dudgeon Earring",
  781. right_ear="Heartseeker Earring",
  782. back="Canny Cape",
  783. }
  784. sets.hastemode.HasteII={ -- need 26, at 26
  785. --main="Blurred Knife",
  786. --range="Raider's Bmrng.",
  787. --ammo="",
  788. --ammo="Ginsen",
  789. --neck="Asperity Necklace",
  790. --neck="Ej Necklace",
  791. --waist="Patentia Sash",
  792. hands="Floral Gauntlets",
  793. --hands="Adhemar Wristbands",
  794. body="Samnuha Coat",
  795. head="Skulker's Bonnet +1",
  796. waist="Windbuffet Belt +1",
  797. legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
  798. left_ear="Dudgeon Earring",
  799. right_ear="Heartseeker Earring",
  800. --back="Canny Cape",
  801. back="Lupine Cape",
  802. --18
  803. }
  804. sets.hastemode.NoHaste=set_combine(sets.TaeonDW,sets.hastemode.NoHaste)
  805. sets.hastemode.HasteI=set_combine(sets.TaeonDW,sets.hastemode.HasteI)
  806. sets.hastemode.HasteII=set_combine(sets.TaeonDW,sets.hastemode.HasteII)
  807. sets.hastemode.Capped=set_combine(sets.engaged,{})
  808. -- sets.hasteknife={
  809. -- main="Blurred Knife",
  810. -- }
  811. -- sets.aoedagger={
  812. -- main="Levante Dagger",
  813. -- }
  814.  
  815. sets.engaged.Acc={
  816. range="",
  817. ammo="Honed Tathlum",
  818. head="Skulker's Bonnet +1",
  819. neck="Ej Necklace",
  820. left_ring="Epona's Ring",
  821. right_ring="Rajas Ring",
  822. waist="Olseni Belt",
  823. back="Lupine Cape",
  824. }
  825. sets.engaged.Acc=set_combine(sets.TaeonSTRDEX,sets.engaged.Acc)
  826. sets.engaged.AccExtreme={
  827. range="",
  828. ammo="Honed Tathlum",
  829. head="Skulker's Bonnet +1",
  830. neck="Ej Necklace",
  831. waist="Olseni Belt",
  832. left_ear="Steelflash Earring",
  833. right_ear="Zennaroi Earring",
  834. left_ring="Ramuh Ring",
  835. right_ring="Ramuh Ring",
  836. hands="Floral Gauntlets",
  837. back="Lupine Cape",
  838. feet="Rawhide Boots"
  839. }
  840. sets.engaged.AccExtreme=set_combine(sets.TaeonSTRDEX,sets.engaged.AccExtreme)
  841. -- sets.engaged.Acc = {ammo="Honed Tathlum",
  842. -- head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  843. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
  844. -- back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Qaaxo Leggings"}
  845.  
  846. -- Mod set for trivial mobs (Skadi+1)
  847. -- sets.engaged.Mod = {ammo="Thew Bomblet",
  848. -- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  849. -- body="Skadi's Cuirie +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
  850. -- back="Atheling Mantle",waist="Patentia Sash",legs=gear.AugQuiahuiz,feet="Plunderer's Poulaines +1"}
  851.  
  852. -- Mod set for trivial mobs (Thaumas)
  853. -- sets.engaged.Mod2 = {ammo="Thew Bomblet",
  854. -- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  855. -- body="Thaumas Coat",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
  856. -- back="Atheling Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
  857. --
  858. -- sets.engaged.Evasion = {ammo="Thew Bomblet",
  859. -- head="Felistris Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  860. -- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
  861. -- back="Canny Cape",waist="Patentia Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
  862. -- sets.engaged.Acc.Evasion = {ammo="Honed Tathlum",
  863. -- head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  864. -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
  865. -- back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
  866. --
  867. -- sets.engaged.PDT = {ammo="Thew Bomblet",
  868. -- head="Felistris Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  869. -- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
  870. -- back="Iximulew Cape",waist="Patentia Sash",legs="Iuitl Tights",feet="Qaaxo Leggings"}
  871. -- sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
  872. -- head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  873. -- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
  874. -- back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet="Qaaxo Leggings"}
  875.  
  876. end
  877.  
  878.  
  879. -------------------------------------------------------------------------------------------------------------------
  880. -- Job-specific hooks for standard casting events.
  881. -------------------------------------------------------------------------------------------------------------------
  882.  
  883. -- Run after the general precast() is done.
  884. function job_post_precast(spell, action, spellMap, eventArgs)
  885. if spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
  886. equip(sets.TreasureHunter)
  887. elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
  888. if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  889. equip(sets.TreasureHunter)
  890. end
  891. end
  892. end
  893.  
  894. -- Run after the general midcast() set is constructed.
  895. function job_post_midcast(spell, action, spellMap, eventArgs)
  896. if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
  897. equip(sets.TreasureHunter)
  898. end
  899. end
  900.  
  901. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  902. function job_aftercast(spell, action, spellMap, eventArgs)
  903. -- Weaponskills wipe SATA/Feint. Turn those state vars off before default gearing is attempted.
  904. if spell.type == 'WeaponSkill' and not spell.interrupted then
  905. state.Buff['Sneak Attack'] = false
  906. state.Buff['Trick Attack'] = false
  907. state.Buff['Feint'] = false
  908. end
  909. end
  910.  
  911. -- Called after the default aftercast handling is complete.
  912. function job_post_aftercast(spell, action, spellMap, eventArgs)
  913. -- If Feint is active, put that gear set on on top of regular gear.
  914. -- This includes overlaying SATA gear.
  915. check_buff('Feint', eventArgs)
  916. end
  917.  
  918. -------------------------------------------------------------------------------------------------------------------
  919. -- Job-specific hooks for non-casting events.
  920. -------------------------------------------------------------------------------------------------------------------
  921.  
  922. -- Called when a player gains or loses a buff.
  923. -- buff == buff gained or lost
  924. -- gain == true if the buff was gained, false if it was lost.
  925. function job_buff_change(buff, gain)
  926. if state.Buff[buff] ~= nil then
  927. if S{'haste','march','geo-haste','indi-haste','embrava','haste samba','aftermath'}:contains(buff:lower()) then
  928. check_haste_level()
  929. --handle_equipping_gear(player.status)
  930. end
  931. if not midaction() then
  932.  
  933. handle_equipping_gear(player.status)
  934. end
  935. end
  936. end
  937.  
  938.  
  939. -------------------------------------------------------------------------------------------------------------------
  940. -- User code that supplements standard library decisions.
  941. -------------------------------------------------------------------------------------------------------------------
  942.  
  943. function get_custom_wsmode(spell, spellMap, defaut_wsmode)
  944. local wsmode
  945.  
  946. if state.Buff['Sneak Attack'] then
  947. wsmode = 'SA'
  948. end
  949. if state.Buff['Trick Attack'] then
  950. wsmode = (wsmode or '') .. 'TA'
  951. end
  952. return wsmode
  953. end
  954.  
  955.  
  956. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  957. function job_handle_equipping_gear(playerStatus, eventArgs)
  958. -- Check that ranged slot is locked, if necessary
  959. check_range_lock()
  960.  
  961. -- Check for SATA when equipping gear. If either is active, equip
  962. -- that gear specifically, and block equipping default gear.
  963. check_buff('Sneak Attack', eventArgs)
  964. check_buff('Trick Attack', eventArgs)
  965. check_buff('Haste', eventArgs)
  966. end
  967.  
  968. function print_r (t, name, indent)
  969. local tableList = {}
  970. function table_r (t, name, indent, full)
  971. local id = not full and name
  972. or type(name)~="number" and tostring(name) or '['..name..']'
  973. local tag = indent .. id .. ' = '
  974. local out = {} -- result
  975. if type(t) == "table" then
  976. if tableList[t] ~= nil then table.insert(out, tag .. '{} -- ' .. tableList[t] .. ' (self reference)')
  977. else
  978. tableList[t]= full and (full .. '.' .. id) or id
  979. if next(t) then -- Table not empty
  980. table.insert(out, tag .. '{')
  981. for key,value in pairs(t) do
  982. table.insert(out,table_r(value,key,indent .. '| ',tableList[t]))
  983. end
  984. table.insert(out,indent .. '}')
  985. else table.insert(out,tag .. '{}') end
  986. end
  987. else
  988. local val = type(t)~="number" and type(t)~="boolean" and '"'..tostring(t)..'"' or tostring(t)
  989. table.insert(out, tag .. val)
  990. end
  991. return table.concat(out, '\n')
  992. end
  993. return table_r(t,name or 'Value',indent or '')
  994. end
  995.  
  996. function pr (t, name)
  997. print(print_r(t,name))
  998. end
  999.  
  1000. function check_haste_level()
  1001. --pr(buffactive)
  1002. --33 is haste 1 and haste 2 580 is indi and geo haste
  1003. hastelevel = 0
  1004. if buffactive[33] and hastetype==1 then
  1005. hastelevel=hastelevel+15
  1006. elseif buffactive[33] and hastetype==2 then
  1007. hastelevel=hastelevel+30
  1008. end
  1009. if buffactive.march ==2 then --assuming song +3 at least
  1010. hastelevel=hastelevel+25
  1011. elseif buffactive.march ==1 then
  1012. hastelevel=hastelevel+15
  1013. end
  1014. if buffactive[580] then --assuming non idris, indi/geo haste
  1015. hastelevel=hastelevel+33
  1016. end
  1017. if buffactive[579] then --mighty guard
  1018. hastelevel=hastelevel+15
  1019. end
  1020. --add_to_chat(122,'Haste number '..hastelevel)
  1021.  
  1022. if hastelevel == 0 then
  1023. add_to_chat(122,'Haste level set to NoHaste')
  1024. state.hastemode:set('NoHaste')
  1025. elseif hastelevel >= 40 then
  1026. add_to_chat(122,'Haste level set to Capped')
  1027. state.hastemode:set('Capped')
  1028. elseif hastelevel >= 25 then
  1029. add_to_chat(122,'Haste level set to HasteII')
  1030. state.hastemode:set('HasteII')
  1031. elseif hastelevel >= 15 then
  1032. add_to_chat(122,'Haste level set to HasteI')
  1033. state.hastemode:set('HasteI')
  1034. end
  1035. end
  1036.  
  1037. function customize_idle_set(idleSet)
  1038. if player.hpp < 80 then
  1039. idleSet = set_combine(idleSet, sets.ExtraRegen)
  1040. end
  1041. --add_to_chat(122,'Idle Set ')
  1042.  
  1043. if state.rangetype.value ~= "None" then idleSet = set_combine(idleSet,sets.rangetype[state.rangetype.value]) end
  1044. if state.idlemode.value ~= "Normal" then idleSet = set_combine(idleSet,sets.idle[state.idlemode.value]) end
  1045. if state.TreasureMode.value == 'Fulltime' then
  1046. idleSet = set_combine(idleSet, sets.TreasureHunter)
  1047. end
  1048. if state.damagetaken.value ~= "None" then idleSet = set_combine(idleSet,sets.damagetaken[state.damagetaken.value]) end
  1049. if state.runaway.current == 'on' then idleSet = set_combine(idleSet,sets.runaway) end
  1050. if state.runaway2.current == 'on' then idleSet = set_combine(idleSet,sets.runaway2) end
  1051. if state.hasteknife.current == 'on' then idleSet = set_combine(idleSet,sets.hasteknife) end
  1052. if state.aoedagger.current == 'on' then idleSet = set_combine(idleSet,sets.aoedagger) end
  1053. if state.cpmode.current == 'on' then idleSet = set_combine(idleSet,sets.cpmode) end
  1054.  
  1055. return idleSet
  1056. end
  1057.  
  1058. function customize_melee_set(meleeSet)
  1059. meleeSet = set_combine(meleeSet,sets.hastemode[state.hastemode.value])
  1060. if state.rangetype.value ~= "None" then meleeSet = set_combine(meleeSet,sets.rangetype[state.rangetype.value]) end
  1061. if rangeswap then
  1062. rangeswap=0
  1063. equip(sets.rangetype[state.rangetype.value])
  1064. if state.rangetype.value == "None" then
  1065. enable('ranged','ammo')
  1066. else
  1067. disable('ranged','ammo')
  1068. end
  1069. end
  1070. if state.OffenseMode.current ~= 'Normal' then meleeSet = set_combine(meleeSet,sets.engaged[state.OffenseMode.current]) end
  1071. if state.TreasureMode.value == 'Fulltime' then
  1072. meleeSet = set_combine(meleeSet, sets.TreasureHunter)
  1073. end
  1074. if state.damagetaken.value ~= "None" then meleeSet = set_combine(meleeSet,sets.damagetaken[state.damagetaken.value]) end
  1075. if state.runaway.current == 'on' then meleeSet = set_combine(meleeSet,sets.runaway) end
  1076. if state.runaway2.current == 'on' then meleeSet = set_combine(meleeSet,sets.runaway2) end
  1077. if state.hasteknife.current == 'on' then meleeSet = set_combine(meleeSet,sets.hasteknife) end
  1078. if state.aoedagger.current == 'on' then meleeSet = set_combine(meleeSet,sets.aoedagger) end
  1079. if state.cpmode.current == 'on' then meleeSet = set_combine(meleeSet,sets.cpmode) end
  1080. --check_range_lock()
  1081.  
  1082. return meleeSet
  1083. end
  1084. function customize_resting_set(restingSet)
  1085. if state.cpmode.current == 'on' then restingSet = set_combine(restingSet,sets.cpmode) end
  1086. return restingSet
  1087. end
  1088.  
  1089.  
  1090. -- Called by the 'update' self-command.
  1091. function job_update(cmdParams, eventArgs)
  1092. th_update(cmdParams, eventArgs)
  1093. end
  1094. dw = 0;
  1095. dtmode = 0;
  1096. accmode = 0;
  1097. runaway = 0;
  1098. rangeswap = 0;
  1099. function job_self_command(cmdParams, eventArgs)
  1100. command = cmdParams[1]:lower()
  1101. if command=='hastetype' then
  1102. if hastetype == 1 then hastetype=2
  1103. else hastetype = 1 end
  1104. add_to_chat(122,'Haste '..hastetype)
  1105. check_haste_level()
  1106. handle_equipping_gear(player.status)
  1107. elseif command=='rangetype' then
  1108. enable('range','ammo')
  1109. rangeswap=1
  1110. send_command('gs c cycle rangetype')
  1111. end
  1112. end
  1113.  
  1114. -- Function to display the current relevant user state when doing an update.
  1115. -- Return true if display was handled, and you don't want the default info shown.
  1116. function display_current_job_state(eventArgs)
  1117. local msg = 'Melee'
  1118.  
  1119. if state.CombatForm.has_value then
  1120. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  1121. end
  1122.  
  1123. msg = msg .. ': '
  1124.  
  1125. msg = msg .. state.OffenseMode.value
  1126. if state.HybridMode.value ~= 'Normal' then
  1127. msg = msg .. '/' .. state.HybridMode.value
  1128. end
  1129. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  1130.  
  1131. if state.DefenseMode.value ~= 'None' then
  1132. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  1133. end
  1134.  
  1135. if state.Kiting.value == true then
  1136. msg = msg .. ', Kiting'
  1137. end
  1138.  
  1139. if state.PCTargetMode.value ~= 'default' then
  1140. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  1141. end
  1142.  
  1143. if state.SelectNPCTargets.value == true then
  1144. msg = msg .. ', Target NPCs'
  1145. end
  1146.  
  1147. msg = msg .. ', TH: ' .. state.TreasureMode.value
  1148.  
  1149. add_to_chat(122, msg)
  1150.  
  1151. eventArgs.handled = true
  1152. end
  1153.  
  1154. -------------------------------------------------------------------------------------------------------------------
  1155. -- Utility functions specific to this job.
  1156. -------------------------------------------------------------------------------------------------------------------
  1157.  
  1158. -- State buff checks that will equip buff gear and mark the event as handled.
  1159. function check_buff(buff_name, eventArgs)
  1160. if state.Buff[buff_name] then
  1161. equip(sets.buff[buff_name] or {})
  1162. if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  1163. equip(sets.TreasureHunter)
  1164. end
  1165. eventArgs.handled = true
  1166. end
  1167.  
  1168. -- if buffactive['Haste'] and player.tp < 200 and usehasteknife == 1 then
  1169. -- sets.engaged = set_combine(sets.engaged,sets.Mainhand)
  1170. -- sets.idle = set_combine(sets.idle,sets.Mainhand)
  1171. -- elseif player.tp < 200 and usehasteknife == 1 then
  1172. -- sets.engaged = set_combine(sets.engaged,sets.Haste)
  1173. -- sets.idle = set_combine(sets.idle,sets.Haste)
  1174. -- end
  1175. end
  1176.  
  1177.  
  1178. -- Check for various actions that we've specified in user code as being used with TH gear.
  1179. -- This will only ever be called if TreasureMode is not 'None'.
  1180. -- Category and Param are as specified in the action event packet.
  1181. function th_action_check(category, param)
  1182. if category == 2 or -- any ranged attack
  1183. --category == 4 or -- any magic action
  1184. (category == 3 and param == 30) or -- Aeolian Edge
  1185. (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
  1186. (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
  1187. then return true
  1188. end
  1189. end
  1190.  
  1191.  
  1192. -- Function to lock the ranged slot if we have a ranged weapon equipped.
  1193. function check_range_lock()
  1194. --enable('range','ammo')
  1195. -- if rangeswap then
  1196. -- disable('range','ammo')
  1197. -- rangeswap=0
  1198. -- end
  1199. -- if player.equipment.range ~= 'empty' then
  1200. -- disable('range', 'ammo')
  1201. -- else
  1202. -- enable('range', 'ammo')
  1203. -- end
  1204. end
  1205.  
  1206.  
  1207. -- Select default macro book on initial load or subjob change.
  1208. function select_default_macro_book()
  1209. -- Default macro set/book
  1210. if player.sub_job == 'DNC' then
  1211. set_macro_page(1, 5)
  1212. -- elseif player.sub_job == 'WAR' then
  1213. -- set_macro_page(3, 5)
  1214. elseif player.sub_job == 'NIN' then
  1215. set_macro_page(1, 6)
  1216. -- else
  1217. -- set_macro_page(2, 5)
  1218. end
  1219. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement