Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- --[[
- Custom commands:
- gs c cycle treasuremode (set on ctrl-= by default): Cycles through the available treasure hunter modes.
- Treasure hunter modes:
- None - Will never equip TH gear
- Tag - Will equip TH gear sufficient for initial contact with a mob (either melee, ranged hit, or Aeolian Edge AOE)
- SATA - Will equip TH gear sufficient for initial contact with a mob, and when using SATA
- Fulltime - Will keep TH gear equipped fulltime
- --]]
- send_command('exec verda/verda_thf.txt');
- hastetype=1
- function deepcopy(orig)
- local orig_type = type(orig)
- local copy
- if orig_type == 'table' then
- copy = {}
- for orig_key, orig_value in next, orig, nil do
- copy[deepcopy(orig_key)] = deepcopy(orig_value)
- end
- setmetatable(copy, deepcopy(getmetatable(orig)))
- else -- number, string, boolean, etc
- copy = orig
- end
- return copy
- end
- function copy_set(obj, seen)
- if type(obj) ~= 'table' then return obj end
- if seen and seen[obj] then return seen[obj] end
- local s = seen or {}
- local res = setmetatable({}, getmetatable(obj))
- s[obj] = res
- for k, v in pairs(obj) do res[copy_set(k, s)] = copy_set(v, s) end
- return res
- end
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- include('organizer-lib')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- state.Buff['Sneak Attack'] = buffactive['sneak attack'] or false
- state.Buff['Trick Attack'] = buffactive['trick attack'] or false
- state.Buff['Feint'] = buffactive['feint'] or false
- include('Mote-TreasureHunter')
- -- For th_action_check():
- -- JA IDs for actions that always have TH: Provoke, Animated Flourish
- info.default_ja_ids = S{35, 204}
- -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
- info.default_u_ja_ids = S{201, 202, 203, 205, 207}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- state.OffenseMode:options('Normal', 'Acc', 'AccExtreme')
- --state.HybridMode:options('Normal', 'Evasion', 'PDT')
- --state.RangedMode:options('Normal', 'Acc')
- --state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
- --state.accuracy = M{['description']="Accuracy Level",'Normal','Light', 'All Out'}
- state.damagetaken = M{['description']="Damage Taken",'None','DTLight', 'DT', 'MagicEvasion'}
- state.hastemode = M{['description'] = 'Haste Mode'}
- state.hastemode:options('NoHaste','HasteI','HasteII','Capped')
- state.rangetype = M{['description'] = 'Ranged Type'}
- state.rangetype:options('None','Throwing','Throwing2','Crossbow')
- state.cpmode = M(false, 'CP Mode')
- state.runaway = M(false, 'Run Away!')
- state.runaway2 = M(false, 'Run Away! (Jute Boot Version)')
- state.idlemode = M{['description']="Idle Mode",'Normal','Regen'}
- state.runaway = M(false, 'Run Away!')
- state.hasteknife = M(false, 'Blurred Dagger')
- state.aoedagger = M(false, 'Levante Dagger')
- gear.default.weaponskill_neck = "Asperity Necklace"
- --gear.default.weaponskill_waist = "Caudata Belt"
- --gear.AugQuiahuiz = {name="Quiahuiz Trousers", augments={'Haste+2','"Snapshot"+2','STR+8'}}
- -- Additional local binds
- send_command('bind ^` input /ja "Flee" <me>')
- send_command('bind ^= gs c cycle treasuremode')
- send_command('bind ^q gs c hastetype')
- send_command('bind !q gs c rangetype')
- send_command('bind f10 gs c cycle idlemode')
- send_command('bind f11 gs c cycle damagetaken')
- send_command('alias stp_m6 gs c toggle hasteknife')
- send_command('alias stp_m7 gs c toggle aoedagger')
- send_command('bind ^[ gs c toggle cpmode')
- -- send_command('bind !- gs c cycle targetmode')
- --send_command('bind !\ gs c maxth')
- --send_command('bind f11 gs c magicevasion')
- --- send_command('bind f11 gs c damagetaken')
- -- send_command('bind f10 gs c ranged')
- -- send_command('bind f9 gs c accmode')
- -- send_command('bind ^q gs c dw')
- --send_command('alias stp_m6 gs c maxth')
- --send_command('alias stp_m7 gs c hastemode')
- --send_command('bind f12 gs equip idle')
- send_command('bind ^/ gs c cycle runaway')
- send_command('bind !/ gs c cycle runaway2')
- send_command('alias stp_m10 input /ma "Monomi: Ichi" <me>')
- send_command('alias stp_m13 input /ws "Evisceration" <t>')
- send_command('bind %numpad1 setkey f8 down;wait .1;setkey f8 up;input /attack <t>')
- send_command('bind %numpad3 input /ws "Evisceration" <t>')
- --send_command('bind ^f11 gs c magicevasion')
- select_default_macro_book()
- end
- -- Called when this job file is unloaded (eg: job change)
- function user_unload()
- send_command('unbind ^`')
- send_command('unbind !-')
- send_command('unbind %numpad1')
- send_command('unbind %numpad3')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Special sets (required by rules)
- --------------------------------------
- usehasteknife=0;
- maxth=0;
- --sets.ExtraRegen = {ring1="Paguroidea Ring"}
- sets.Kiting = {feet="Trotter's Boots"}
- --sets.Haste = {main="Blurred Knife"}
- --sets.SilenceDagger = {main="Levante dagger"}
- --sets.Offhand = {sub="Shijo"}
- --sets.Mainhand = {main="Taming Sari"}
- sets.TreasureHunter = {head="Skulker's Bonnet +1",hands="Plun. Armlets +1",waist="Chaac Belt",feet="Skulker's Poulaines +1"}
- sets.noknifeTH = {hands="Plun. Armlets +1",waist="Chaac Belt",feet="Skulker's Poulaines +1"}
- sets.TH = {main="Sandung"}
- sets.THsub = {sub="Thief's Knife"}
- sets.THset = {main="Sandung",sub="Thief's Knife",waist="Chaac Belt",hands="Plun. Armlets +1",feet="Skulker's Poulaines +1"}
- sets.cpmode = {back="Mecisto. Mantle"}
- sets.TaeonSTRDEX = {
- --head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+3 DEX+3',}},
- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7',}},
- --hands={ name="Taeon Gloves", augments={'Accuracy+15 Attack+15','"Triple Atk."+2','STR+3 DEX+3',}},
- --legs={ name="Taeon Tights", augments={'Accuracy+18 Attack+18','"Triple Atk."+2','STR+6 DEX+6',}},
- --feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','STR+4 DEX+4',}},
- feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+6',}},
- }
- --Max: acc 100 att 100 STR 35 DEX 35
- --At: acc: 90 att 90 STR 16 DEX 23
- --Missing: acc 11 att 11 STR 19 DEX 12
- sets.TaeonDW = {
- head={ name="Taeon Chapeau", augments={'Accuracy+15 Attack+15','"Dual Wield"+5','STR+4',}},
- --body={ name="Taeon Tabard", augments={'Accuracy+15 Attack+15','"Dual Wield"+5','STR+4 AGI+4',}},
- --hands={ name="Taeon Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+4','STR+8',}},
- legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Dual Wield"+4','STR+2 DEX+2',}},
- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','STR+4 DEX+4',}},
- }
- --Max: acc 100 att 100 STR 35 DEX 35
- --At: acc 82 att 82 STR 18 DEX 10
- --Missing: acc 18 att 18 STR 17 DEX 25
- --sets.buff['Sneak Attack'] = set_combine(sets.engaged, {hands="Raider's Armlets +1"})
- -- {ammo="Qirmiz Tathlum",
- -- head="Pillager's Bonnet +1",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- -- back="Atheling Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- -- sets.buff['Trick Attack'] = {ammo="Qirmiz Tathlum",
- -- head="Pillager's Bonnet +1",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Stormsoul Ring",ring2="Epona's Ring",
- -- back="Atheling Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- -- Actions we want to use to tag TH.
- sets.precast.Step = sets.TreasureHunter
- sets.precast.Flourish1 = sets.TreasureHunter
- sets.precast.JA.Provoke = sets.TreasureHunter
- sets.keep = {
- left_ring="Warp Ring",
- right_ring="Capacity Ring",
- }
- sets.keep2 = {
- left_ring="Echad Ring",
- right_ring="Trizek Ring",
- }
- sets.keep3= {
- ammo="Toolbag (Shihe)",
- left_ring="Shihei",
- right_ring="Shinobi-Tabi",
- head="Sanjaku-Tenugui",
- body="Squid Sushi",
- legs="Holy Water",
- feet="Sole Sushi",
- hands="Sole Sushi +1",
- neck="Squid Sushi +1",
- left_ear="Red Curry Bun",
- right_ear="Red Curry Bun +1",
- main="Remedy",
- sub="Echo Drops"
- }
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs
- sets.precast.JA['Collaborator'] = {head="Skulker's Bonnet +1"}
- sets.precast.JA['Accomplice'] = {head="Skulker's Bonnet +1"}
- sets.precast.JA['Flee'] = {feet="Pillager's Poulaines"}
- sets.precast.JA['Hide'] = {body="Pillager's Vest"}
- sets.precast.JA['Conspirator'] = {body="Skulker's Vest"}
- --sets.precast.JA['Steal'] = {head="Pillager's Bonnet",hands="Rogues's Armlets",legs="Rogues's Culottes",feet="Rogues's Poulaines",neck="Pentalagus Charm"}
- sets.precast.JA['Steal'] = {
- --head="Pillager's Bonnet",
- neck="Pentalagus Charm",
- --hands="Pill. Armlets +1",
- legs="Pill. Culottes +1",
- feet="Pillager's Poulaines"
- }
- sets.precast.JA['Despoil'] = {legs="Skulker's Culottes",feet="Skulker's Poulaines +1"}
- sets.precast.JA['Perfect Dodge'] = {hands="Plun. Armlets +1"}
- --sets.precast.JA['Feint'] = {} -- {legs="Assassin's Culottes +2"}
- sets.precast.JA['Sneak Attack'] = sets.buff['Sneak Attack']
- sets.precast.JA['Trick Attack'] = sets.buff['Trick Attack']
- sets.slashing = {main="Pukulatmuj",sub="Deliverance"}
- sets.blunt = {main="Pukulatmuj"}
- -- Waltz set (chr and vit)
- --sets.precast.Waltz = {ammo="Sonia's Plectrum",
- -- head="Whirlpool Mask",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Asklepian Ring",
- -- back="Iximulew Cape",waist="Caudata Belt",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- -- Don't need any special gear for Healing Waltz.
- -- sets.precast.Waltz['Healing Waltz'] = {}
- -- Fast cast sets for spells
- --sets.precast.FC = {head="Haruspex Hat",ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring",legs="Enif Cosciales"}
- sets.precast.FC = {head="Haruspex Hat",body="Samnuha Coat",hands="Leyline Gloves",left_ring="Prolix Ring",legs="Limbo Trousers"}
- --sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
- -- Ranged snapshot gear
- --sets.precast.RA = {head="Aurore Beret",hands="Iuitl Wristbands",legs="Nahtirah Trousers",feet="Wurrukatte Boots"}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- --sets.precast.WS = {ammo="Thew Bomblet",
- -- head="Whirlpool Mask",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- -- back="Atheling Mantle",waist="Caudata Belt",legs="Manibozho Brais",feet="Iuitl Gaiters +1"}
- --sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Honed Tathlum", back="Letalis Mantle"})
- --sets.precast.WS.Acc = set_combine(sets.precast.WS, {neck="Ej Necklace"})
- sets.precast.WS = {
- --hands="Pill. Armlets +1",
- --legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
- --legs="Pillager's Culottes +1",
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- neck="Love Torque",
- ammo="Qirmiz Tathlum",
- --neck="Pentalagus Charm",
- --neck="Asperity Necklace",
- --neck="Ej Necklace",
- --neck="Moepapa Mantle",
- --waist="Patentia Sash",
- body="Rawhide Vest",
- --hands="Adhemar Wristbands",
- hands="Adhemar Wristbands",
- waist="Prosilio Belt +1",
- feet="Lustratio Leggings",
- left_ear="Jupiter's pearl",
- right_ear="Jupiter's pearl",
- --right_ear="Bladeborn Earring",
- --left_ring="Tyrant's Ring",
- --ring1="Epona's Ring",
- --ring2="Oneiros Ring",
- left_ring="Ramuh Ring",
- right_ring="Ramuh Ring",
- back="Canny Cape",
- --back="Mecisto. Mantle",
- }
- sets.precast.WS = set_combine(sets.TaeonSTRDEX,sets.precast.WS)
- sets.CP = {
- back="Mecisto. Mantle",
- }
- --sets.precast.WS['Aeolian Edge'] = set_combine(sets.precast.WS, {ring1="Stormsoul Ring",legs="Nahtirah Trousers"})
- sets.precast.WS['Evisceration'] = {
- --hands="Pill. Armlets +1",
- --legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
- --legs="Pillager's Culottes +1",
- neck="Love Torque",
- ammo="Qirmiz Tathlum",
- --neck="Pentalagus Charm",
- --neck="Asperity Necklace",
- --neck="Ej Necklace",
- --neck="Moepapa Mantle",
- --waist="Patentia Sash",
- body="Rawhide Vest",
- hands="Adhemar Wristbands",
- waist="Shadow Belt",
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- feet="Lustratio Leggings",
- left_ear="Steelflash Earring",
- right_ear="Bladeborn Earring",
- --right_ear="Bladeborn Earring",
- --left_ring="Tyrant's Ring",
- ring1="Epona's Ring",
- ring2="Oneiros Ring",
- back="Canny Cape",
- --back="Mecisto. Mantle",
- }
- sets.precast.WS['Evisceration'] = set_combine(sets.TaeonSTRDEX,sets.precast.WS['Evisceration'])
- sets.precast.WS['Aeolian Edge'] = {
- --ammo="Jukukik Feather",
- --range="Wingcutter +1",
- --head="Highwing Helm",
- --neck="Stoicheion Medal",
- neck="Satlada Necklace",
- ear1="Friomisi Earring",
- --ear2="Moonshade Earring",
- --body="Lapidary tunic",
- hands="Leyline Gloves",
- body="Samnuha Coat",
- --ring1="Acumen Ring",
- --ring2="Demon's Ring",
- feet="Lustratio Leggings",
- back="Toro Cape",
- ammo="Grenade Core",
- --waist=gear.ElementalBelt,
- --legs="Shneddick Tights +1",
- --feet="Wayfarer Clogs"
- }
- sets.precast.WS['Aeolian Edge'] = set_combine(sets.TaeonSTRDEX,sets.precast.WS['Aeolian Edge'])
- -- sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- --sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {ring1="Stormsoul Ring",legs="Nahtirah Trousers"})
- --sets.precast.WS['Exenterator'].Acc = set_combine(sets.precast.WS['Exenterator'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- --sets.precast.WS['Exenterator'].Mod = set_combine(sets.precast.WS['Exenterator'], {head="Felistris Mask",waist=gear.ElementalBelt})
- --sets.precast.WS['Exenterator'].SA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
- --sets.precast.WS['Exenterator'].TA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
- --sets.precast.WS['Exenterator'].SATA = set_combine(sets.precast.WS['Exenterator'].Mod, {ammo="Qirmiz Tathlum"})
- -- sets.precast.WS['Dancing Edge'] = set_combine(sets.precast.WS, {})
- -- sets.precast.WS['Dancing Edge'].Acc = set_combine(sets.precast.WS['Dancing Edge'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- -- sets.precast.WS['Dancing Edge'].Mod = set_combine(sets.precast.WS['Dancing Edge'], {waist=gear.ElementalBelt})
- -- sets.precast.WS['Dancing Edge'].SA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Qirmiz Tathlum"})
- -- sets.precast.WS['Dancing Edge'].TA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Qirmiz Tathlum"})
- -- sets.precast.WS['Dancing Edge'].SATA = set_combine(sets.precast.WS['Dancing Edge'].Mod, {ammo="Qirmiz Tathlum"})
- -- sets.precast.WS['Evisceration'] = set_combine(sets.precast.WS, {ammo="Qirmiz Tathlum",
- -- head="Uk'uxkaj Cap",neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
- -- sets.precast.WS['Evisceration'].Acc = set_combine(sets.precast.WS['Evisceration'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- -- sets.precast.WS['Evisceration'].Mod = set_combine(sets.precast.WS['Evisceration'], {back="Kayapa Cape",waist=gear.ElementalBelt})
- -- sets.precast.WS['Evisceration'].SA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
- -- sets.precast.WS['Evisceration'].TA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
- -- sets.precast.WS['Evisceration'].SATA = set_combine(sets.precast.WS['Evisceration'].Mod, {})
- --sets.precast.WS['Evisceration'] = set_combine(sets.engaged,{waist="Shadow Belt"})
- --
- -- sets.precast.WS["Rudra's Storm"] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
- -- sets.precast.WS["Rudra's Storm"].Acc = set_combine(sets.precast.WS["Rudra's Storm"], {ammo="Honed Tathlum", back="Letalis Mantle"})
- -- sets.precast.WS["Rudra's Storm"].Mod = set_combine(sets.precast.WS["Rudra's Storm"], {back="Kayapa Cape",waist=gear.ElementalBelt})
- -- sets.precast.WS["Rudra's Storm"].SA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- -- sets.precast.WS["Rudra's Storm"].TA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- -- sets.precast.WS["Rudra's Storm"].SATA = set_combine(sets.precast.WS["Rudra's Storm"].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- --
- -- sets.precast.WS["Shark Bite"] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
- -- sets.precast.WS['Shark Bite'].Acc = set_combine(sets.precast.WS['Shark Bite'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- -- sets.precast.WS['Shark Bite'].Mod = set_combine(sets.precast.WS['Shark Bite'], {back="Kayapa Cape",waist=gear.ElementalBelt})
- -- sets.precast.WS['Shark Bite'].SA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- -- sets.precast.WS['Shark Bite'].TA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- -- sets.precast.WS['Shark Bite'].SATA = set_combine(sets.precast.WS['Shark Bite'].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- --
- -- sets.precast.WS['Mandalic Stab'] = set_combine(sets.precast.WS, {head="Pillager's Bonnet +1",ear1="Brutal Earring",ear2="Moonshade Earring"})
- -- sets.precast.WS['Mandalic Stab'].Acc = set_combine(sets.precast.WS['Mandalic Stab'], {ammo="Honed Tathlum", back="Letalis Mantle"})
- -- sets.precast.WS['Mandalic Stab'].Mod = set_combine(sets.precast.WS['Mandalic Stab'], {back="Kayapa Cape",waist=gear.ElementalBelt})
- -- sets.precast.WS['Mandalic Stab'].SA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- -- sets.precast.WS['Mandalic Stab'].TA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- -- sets.precast.WS['Mandalic Stab'].SATA = set_combine(sets.precast.WS['Mandalic Stab'].Mod, {ammo="Qirmiz Tathlum",
- -- body="Pillager's Vest +1",legs="Pillager's Culottes +1"})
- --
- -- sets.precast.WS['Aeolian Edge'] = {ammo="Jukukik Feather",
- -- head="Wayfarer Circlet",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Moonshade Earring",
- -- body="Wayfarer Robe",hands="Pillager's Armlets +1",ring1="Acumen Ring",ring2="Demon's Ring",
- -- back="Toro Cape",waist=gear.ElementalBelt,legs="Shneddick Tights +1",feet="Wayfarer Clogs"}
- --
- -- sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], sets.TreasureHunter)
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- -- sets.midcast.FastRecast = {
- -- head="Whirlpool Mask",ear2="Loquacious Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",
- -- back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
- -- Specific spells
- -- sets.midcast.Utsusemi = {
- -- head="Whirlpool Mask",neck="Ej Necklace",ear2="Loquacious Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",
- -- back="Canny Cape",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
- -- Ranged gear
- -- sets.midcast.RA = {
- -- head="Whirlpool Mask",neck="Ej Necklace",ear1="Clearview Earring",ear2="Volley Earring",
- -- body="Iuitl Vest",hands="Iuitl Wristbands",ring1="Beeline Ring",ring2="Hajduk Ring",
- -- back="Libeccio Mantle",waist="Aquiline Belt",legs="Nahtirah Trousers",feet="Iuitl Gaiters +1"}
- -- sets.midcast.RA.Acc = {
- -- head="Pillager's Bonnet +1",neck="Ej Necklace",ear1="Clearview Earring",ear2="Volley Earring",
- -- body="Iuitl Vest",hands="Buremte Gloves",ring1="Beeline Ring",ring2="Hajduk Ring",
- -- back="Libeccio Mantle",waist="Aquiline Belt",legs="Thurandaut Tights +1",feet="Pillager's Poulaines +1"}
- --------------------------------------
- -- Idle/resting/defense sets
- --------------------------------------
- -- Resting sets
- -- sets.resting = {head="Ocelomeh Headpiece",neck="Wiglen Gorget",
- -- ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- -- sets.resting = set_combine(sets.idle, sets.ExtraRegen)
- sets.rangetype = {}
- sets.rangetype.None = {
- --range="",
- --ammo="Ginsen",
- }
- sets.rangetype.Throwing = {
- range="Wingcutter +1",
- ammo=""
- }
- sets.rangetype.Throwing2 = {
- range="Albin Bane",
- ammo=""
- }
- sets.rangetype.Crossbow = {
- range="One-eyed",
- ammo="Bloody Bolt",
- }
- sets.resting={
- -- main="Shijo",
- -- sub="Jugo Kurki +1",
- -- range="Snakeeye",
- head="Oce. Headpiece +1",
- -- body="Taeon tabard",
- -- hands="Taeon Gloves",
- -- legs="Taeon tights",
- feet="Jute Boots +1",
- neck="Wiglen Gorget",
- waist="Windbuffet Belt +1",
- left_ear="Steelflash Earring",
- right_ear="Bladeborn Earring",
- left_ring="Sheltered Ring",
- right_ring="Paguroidea Ring",
- back="Repulse Mantle"
- --back="Engulfer Cape +1"
- --back="Canny Cape",
- --back="Mecistopins mantle",
- }
- -- sets.resting ={
- -- main="Sandung",
- -- sub="Eminent Dagger",
- -- range="Snakeeye",
- -- head="Ocelo. Headpiece",
- -- body="Taeon tabard",
- -- hands="Taeon Gloves",
- -- legs="Taeon tights",
- -- feet="Jute Boots +1",
- -- neck="Orochi Nodowa",
- -- waist="Patentia Sash",
- -- left_ear="Volley earring",
- -- right_ear="Kemas Earring",
- -- left_ring="Epona's Ring",
- -- right_ring="Warp Ring",
- -- back="Canny Cape",
- -- }
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- -- sets.idle = {ammo="Thew Bomblet",
- -- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- -- back="Shadow Mantle",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Skadi's Jambeaux +1"}
- sets.idle ={
- --main="Taming Sari",
- --sub="Jugo Kukri +1",
- --sub="Nibiru Knife",
- --sub="Shijo",
- main={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
- sub={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
- ammo="Ginsen",
- --range="Raider's Bmrng.",
- --head="Oce. Headpiece +1",
- head="Skulker's Bonnet +1",
- hands="Adhemar Wristbands",
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- feet="Jute Boots +1",
- neck="Wiglen Gorget",
- --waist="Windbuffet Belt +1",
- waist="Flume Belt +1",
- left_ear="Allegro Earring",
- right_ear="Infused Earring",
- --left_ring="Sheltered Ring",
- left_ring="Defending Ring",
- right_ring="Paguroidea Ring",
- back="Repulse Mantle"
- --back="Engulfer Cape +1"
- --back="Canny Cape",
- --back="Mecistopins mantle",
- }
- sets.idle = set_combine(sets.TaeonSTRDEX,sets.idle)
- sets.idle.Regen = {
- left_ring="Sheltered Ring",
- right_ring="Paguroidea Ring",
- right_ear="Infused Earring",
- head="Oce. Headpiece +1",
- neck="Wiglen Gorget",
- }
- sets.idlesave = copy_set(sets.idle)
- -- {
- -- main="Shijo",
- -- sub="Jugo Kukri +1",
- -- --range="Raider's Bmrng.",
- -- head="Oce. Headpiece +1",
- -- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7',}},
- -- hands={ name="Taeon Gloves", augments={'Accuracy+25','"Triple Atk."+2','STR+3 DEX+3',}},
- -- legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
- -- feet="Jute Boots +1",
- -- neck="Wiglen Gorget",
- -- waist="Windbuffet Belt +1",
- -- left_ear="Steelflash Earring",
- -- right_ear="Bladeborn Earring",
- -- left_ring="Sheltered Ring",
- -- right_ring="Paguroidea Ring",
- -- back="Canny Cape",
- -- --back="Mecistopins mantle",
- -- }
- -- sets.idle.Town = {main="Izhiikoh", sub="Sabebus",ammo="Thew Bomblet",
- -- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pill. Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- -- back="Shadow Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Skadi's Jambeaux +1"}
- -- sets.idle.Weak = {ammo="Thew Bomblet",
- -- head="Pillager's Bonnet +1",neck="Wiglen Gorget",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- -- back="Shadow Mantle",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Skadi's Jambeaux +1"}
- -- Defense sets
- -- sets.defense.Evasion = {
- -- head="Pillager's Bonnet +1",neck="Ej Necklace",
- -- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Beeline Ring",
- -- back="Canny Cape",waist="Flume Belt",legs="Kaabnax Trousers",feet="Iuitl Gaiters +1"}
- --
- -- sets.defense.PDT = {ammo="Iron Gobbet",
- -- head="Pillager's Bonnet +1",neck="Twilight Torque",
- -- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
- -- back="Iximulew Cape",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Iuitl Gaiters +1"}
- --
- -- sets.defense.MDT = {ammo="Demonry Stone",
- -- head="Pillager's Bonnet +1",neck="Twilight Torque",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Shadow Ring",
- -- back="Engulfer Cape",waist="Flume Belt",legs="Pillager's Culottes +1",feet="Iuitl Gaiters +1"}
- --
- sets.runaway = {
- main="",
- sub="Deliverance",--4
- neck="Inq. Bead Necklace",
- right_ear="Infused Earring",
- right_ring="Gelatinous Ring",--6
- left_ring="Defending Ring",--10
- waist="Flume Belt +1",--4
- --feet="Areion Boots",
- back="Repulse Mantle"
- }
- sets.runaway2 = {
- main="",
- sub="Deliverance",--4
- --neck="Inq. Bead Necklace",
- neck="Wiglen Gorget",
- right_ear="Infused Earring",
- right_ring="Gelatinous Ring +1",--6
- left_ring="Defending Ring",--10
- waist="Flume Belt +1",--4
- feet="Jute Boots +1",
- back="Repulse Mantle"
- }
- sets.damagetaken = {}
- sets.damagetaken.None = {
- }
- sets.damagetaken.DTLight = {
- --right_ring="Gelatinous Ring",
- left_ring="Defending Ring",
- --waist="Flume Belt +1",
- --back="Repulse Mantle"
- back="Mollusca Mantle"
- }
- sets.damagetaken.DT = {
- right_ring="Gelatinous Ring +1",--6
- left_ring="Defending Ring",--10
- --neck="Inq. Bead Necklace",
- --neck="Wiglen Gorget",--6
- waist="Flume Belt +1",--4
- back="Mollusca Mantle"--5
- --back="Engulfer Cape +1"
- }
- sets.damagetaken.PDT = {
- }
- sets.damagetaken.MDT = {
- }
- sets.damagetaken.MagicEvasion = {
- neck="Inq. Bead Necklace",
- waist="Flume Belt +1",
- feet="Jute Boots +1",
- left_ring="Defending Ring",
- right_ring="Vengeful Ring",
- --back="Mollusca Mantle"
- back="Engulfer Cape +1"
- }
- --------------------------------------
- -- Melee sets
- --------------------------------------
- --Kroyipi
- -- Normal melee group
- --sets.engaged= sets.TaeonSTRDEX
- --Caphaste: dw5
- --Cape 4
- --feet 4 + 5
- sets.engaged={
- --main="Shijo",
- main={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
- sub={ name="Taming Sari", augments={'STR+5','DEX+8','DMG:+8',}},
- --sub="Jugo Kukri +1",
- --sub="Nibiru Knife",
- --sub="Shijo",
- ammo="Ginsen",
- -- range="Raider's Bmrng.",
- --range="",
- --ammo="Qirmiz Tathlum",
- --ammo="Ginsen",
- hands="Adhemar Wristbands",
- head="Skulker's Bonnet +1",
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- neck="Asperity Necklace",
- --neck="Ej Necklace",
- waist="Windbuffet Belt +1",
- --waist="Patentia Sash",
- left_ear="Steelflash Earring",
- right_ear="Bladeborn Earring",
- --left_ring="Tyrant's Ring",
- left_ring="Epona's Ring",
- right_ring="Rajas Ring",
- back="Lupine Cape",
- --back="Mecisto. Mantle",
- }
- sets.engaged = set_combine(sets.TaeonSTRDEX,sets.engaged)
- sets.base= copy_set(sets.engaged)
- sets.evasion = {
- --head="Imp. Wing Hairpin", --69 agi 33
- right_ear="Infused Earring", --10 agi 4
- left_ear="Allegro Earring", --10 agi 4
- --rings 16
- right_ring="Vengeful Ring", --9
- neck="Ej necklace",--neck 15
- --waist="Svelt. Gouriz +1", --10 agi 10
- back="Canny Cape", --15 agi 6
- --body="karmesin vest", --62 agi 29
- --
- }
- sets.evasion = set_combine(sets.base,sets.evasion)
- --sets.base= sets.engaged
- -- { main="Shijo",
- -- sub="Jugo Kukri +1",
- ---- range="Raider's Bmrng.",
- -- range="",
- -- ammo="Qirmiz Tathlum",
- ---- head="Taeon chapeau",
- ---- body="Taeon tabard",
- ---- hands="Taeon Gloves",
- ---- legs="Taeon tights",
- ---- feet="Taeon Boots",
- -- head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+3 DEX+3',}},
- -- body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+7',}},
- -- hands={ name="Taeon Gloves", augments={'Accuracy+25','"Triple Atk."+2','STR+3 DEX+3',}},
- -- legs={ name="Taeon Tights", augments={'Accuracy+25','"Triple Atk."+2','STR+6 DEX+6',}},
- -- feet={ name="Taeon Boots", augments={'Accuracy+17 Attack+17','"Dual Wield"+5','STR+4 DEX+4',}},
- -- neck="Asperity Necklace",
- -- --neck="Ej Necklace",
- -- waist="Windbuffet Belt +1",
- -- --waist="Patentia Sash",
- -- left_ear="Steelflash Earring",
- -- right_ear="Bladeborn Earring",
- -- --left_ring="Tyrant's Ring",
- -- ring2="Epona's Ring",
- -- ring1="Rajas Ring",
- -- back="Canny Cape",
- -- --back="Mecisto. Mantle",
- -- }
- -- earrings 7
- -- taeon 23 + 4 = 27
- -- cape 4 --38
- -- sash 5 --43
- -- missing 5
- -- raiders 3 XOff
- -- blurred 6 XOff
- --Dw4:
- --No haste magic: dw43
- --Haste samba: dw39
- --Haste1: dw37
- --Haste2: dw26
- --Caphaste: dw5
- --Taeon 27
- --Sash 5
- --Earrings 7
- --Cape 4
- sets.hastemode = {}
- sets.hastemode.NoHaste={ -- need 43, at 41
- --main="Blurred Knife",
- --range="Raider's Bmrng.",
- waist="Patentia Sash", --5
- --waist="Windbuffet Belt +1",
- hands="Floral Gauntlets", --5
- body="Samnuha Coat",--5
- left_ear="Dudgeon Earring", --7
- right_ear="Heartseeker Earring",
- back="Canny Cape", --1
- --taeon: 18
- }
- sets.hastemode.HasteI={ -- need 37, at 36
- --main="Blurred Knife",
- --range="Raider's Bmrng.",
- --waist="Patentia Sash",
- body="Samnuha Coat",
- hands="Floral Gauntlets",
- waist="Windbuffet Belt +1",
- left_ear="Dudgeon Earring",
- right_ear="Heartseeker Earring",
- back="Canny Cape",
- }
- sets.hastemode.HasteII={ -- need 26, at 26
- --main="Blurred Knife",
- --range="Raider's Bmrng.",
- --ammo="",
- --ammo="Ginsen",
- --neck="Asperity Necklace",
- --neck="Ej Necklace",
- --waist="Patentia Sash",
- hands="Floral Gauntlets",
- --hands="Adhemar Wristbands",
- body="Samnuha Coat",
- head="Skulker's Bonnet +1",
- waist="Windbuffet Belt +1",
- legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
- left_ear="Dudgeon Earring",
- right_ear="Heartseeker Earring",
- --back="Canny Cape",
- back="Lupine Cape",
- --18
- }
- sets.hastemode.NoHaste=set_combine(sets.TaeonDW,sets.hastemode.NoHaste)
- sets.hastemode.HasteI=set_combine(sets.TaeonDW,sets.hastemode.HasteI)
- sets.hastemode.HasteII=set_combine(sets.TaeonDW,sets.hastemode.HasteII)
- sets.hastemode.Capped=set_combine(sets.engaged,{})
- -- sets.hasteknife={
- -- main="Blurred Knife",
- -- }
- -- sets.aoedagger={
- -- main="Levante Dagger",
- -- }
- sets.engaged.Acc={
- range="",
- ammo="Honed Tathlum",
- head="Skulker's Bonnet +1",
- neck="Ej Necklace",
- left_ring="Epona's Ring",
- right_ring="Rajas Ring",
- waist="Olseni Belt",
- back="Lupine Cape",
- }
- sets.engaged.Acc=set_combine(sets.TaeonSTRDEX,sets.engaged.Acc)
- sets.engaged.AccExtreme={
- range="",
- ammo="Honed Tathlum",
- head="Skulker's Bonnet +1",
- neck="Ej Necklace",
- waist="Olseni Belt",
- left_ear="Steelflash Earring",
- right_ear="Zennaroi Earring",
- left_ring="Ramuh Ring",
- right_ring="Ramuh Ring",
- hands="Floral Gauntlets",
- back="Lupine Cape",
- feet="Rawhide Boots"
- }
- sets.engaged.AccExtreme=set_combine(sets.TaeonSTRDEX,sets.engaged.AccExtreme)
- -- sets.engaged.Acc = {ammo="Honed Tathlum",
- -- head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- -- back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Qaaxo Leggings"}
- -- Mod set for trivial mobs (Skadi+1)
- -- sets.engaged.Mod = {ammo="Thew Bomblet",
- -- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Skadi's Cuirie +1",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- -- back="Atheling Mantle",waist="Patentia Sash",legs=gear.AugQuiahuiz,feet="Plunderer's Poulaines +1"}
- -- Mod set for trivial mobs (Thaumas)
- -- sets.engaged.Mod2 = {ammo="Thew Bomblet",
- -- head="Felistris Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Thaumas Coat",hands="Pillager's Armlets +1",ring1="Rajas Ring",ring2="Epona's Ring",
- -- back="Atheling Mantle",waist="Patentia Sash",legs="Pillager's Culottes +1",feet="Plunderer's Poulaines +1"}
- --
- -- sets.engaged.Evasion = {ammo="Thew Bomblet",
- -- head="Felistris Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Qaaxo Harness",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- -- back="Canny Cape",waist="Patentia Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
- -- sets.engaged.Acc.Evasion = {ammo="Honed Tathlum",
- -- head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Pillager's Vest +1",hands="Pillager's Armlets +1",ring1="Beeline Ring",ring2="Epona's Ring",
- -- back="Canny Cape",waist="Hurch'lan Sash",legs="Kaabnax Trousers",feet="Qaaxo Leggings"}
- --
- -- sets.engaged.PDT = {ammo="Thew Bomblet",
- -- head="Felistris Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- -- back="Iximulew Cape",waist="Patentia Sash",legs="Iuitl Tights",feet="Qaaxo Leggings"}
- -- sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
- -- head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- -- body="Iuitl Vest",hands="Pillager's Armlets +1",ring1="Defending Ring",ring2="Epona's Ring",
- -- back="Canny Cape",waist="Hurch'lan Sash",legs="Iuitl Tights",feet="Qaaxo Leggings"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Run after the general precast() is done.
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.english == 'Aeolian Edge' and state.TreasureMode.value ~= 'None' then
- equip(sets.TreasureHunter)
- elseif spell.english=='Sneak Attack' or spell.english=='Trick Attack' or spell.type == 'WeaponSkill' then
- if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- end
- end
- -- Run after the general midcast() set is constructed.
- function job_post_midcast(spell, action, spellMap, eventArgs)
- if state.TreasureMode.value ~= 'None' and spell.action_type == 'Ranged Attack' then
- equip(sets.TreasureHunter)
- end
- end
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_aftercast(spell, action, spellMap, eventArgs)
- -- Weaponskills wipe SATA/Feint. Turn those state vars off before default gearing is attempted.
- if spell.type == 'WeaponSkill' and not spell.interrupted then
- state.Buff['Sneak Attack'] = false
- state.Buff['Trick Attack'] = false
- state.Buff['Feint'] = false
- end
- end
- -- Called after the default aftercast handling is complete.
- function job_post_aftercast(spell, action, spellMap, eventArgs)
- -- If Feint is active, put that gear set on on top of regular gear.
- -- This includes overlaying SATA gear.
- check_buff('Feint', eventArgs)
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when a player gains or loses a buff.
- -- buff == buff gained or lost
- -- gain == true if the buff was gained, false if it was lost.
- function job_buff_change(buff, gain)
- if state.Buff[buff] ~= nil then
- if S{'haste','march','geo-haste','indi-haste','embrava','haste samba','aftermath'}:contains(buff:lower()) then
- check_haste_level()
- --handle_equipping_gear(player.status)
- end
- if not midaction() then
- handle_equipping_gear(player.status)
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- function get_custom_wsmode(spell, spellMap, defaut_wsmode)
- local wsmode
- if state.Buff['Sneak Attack'] then
- wsmode = 'SA'
- end
- if state.Buff['Trick Attack'] then
- wsmode = (wsmode or '') .. 'TA'
- end
- return wsmode
- end
- -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
- function job_handle_equipping_gear(playerStatus, eventArgs)
- -- Check that ranged slot is locked, if necessary
- check_range_lock()
- -- Check for SATA when equipping gear. If either is active, equip
- -- that gear specifically, and block equipping default gear.
- check_buff('Sneak Attack', eventArgs)
- check_buff('Trick Attack', eventArgs)
- check_buff('Haste', eventArgs)
- end
- function print_r (t, name, indent)
- local tableList = {}
- function table_r (t, name, indent, full)
- local id = not full and name
- or type(name)~="number" and tostring(name) or '['..name..']'
- local tag = indent .. id .. ' = '
- local out = {} -- result
- if type(t) == "table" then
- if tableList[t] ~= nil then table.insert(out, tag .. '{} -- ' .. tableList[t] .. ' (self reference)')
- else
- tableList[t]= full and (full .. '.' .. id) or id
- if next(t) then -- Table not empty
- table.insert(out, tag .. '{')
- for key,value in pairs(t) do
- table.insert(out,table_r(value,key,indent .. '| ',tableList[t]))
- end
- table.insert(out,indent .. '}')
- else table.insert(out,tag .. '{}') end
- end
- else
- local val = type(t)~="number" and type(t)~="boolean" and '"'..tostring(t)..'"' or tostring(t)
- table.insert(out, tag .. val)
- end
- return table.concat(out, '\n')
- end
- return table_r(t,name or 'Value',indent or '')
- end
- function pr (t, name)
- print(print_r(t,name))
- end
- function check_haste_level()
- --pr(buffactive)
- --33 is haste 1 and haste 2 580 is indi and geo haste
- hastelevel = 0
- if buffactive[33] and hastetype==1 then
- hastelevel=hastelevel+15
- elseif buffactive[33] and hastetype==2 then
- hastelevel=hastelevel+30
- end
- if buffactive.march ==2 then --assuming song +3 at least
- hastelevel=hastelevel+25
- elseif buffactive.march ==1 then
- hastelevel=hastelevel+15
- end
- if buffactive[580] then --assuming non idris, indi/geo haste
- hastelevel=hastelevel+33
- end
- if buffactive[579] then --mighty guard
- hastelevel=hastelevel+15
- end
- --add_to_chat(122,'Haste number '..hastelevel)
- if hastelevel == 0 then
- add_to_chat(122,'Haste level set to NoHaste')
- state.hastemode:set('NoHaste')
- elseif hastelevel >= 40 then
- add_to_chat(122,'Haste level set to Capped')
- state.hastemode:set('Capped')
- elseif hastelevel >= 25 then
- add_to_chat(122,'Haste level set to HasteII')
- state.hastemode:set('HasteII')
- elseif hastelevel >= 15 then
- add_to_chat(122,'Haste level set to HasteI')
- state.hastemode:set('HasteI')
- end
- end
- function customize_idle_set(idleSet)
- if player.hpp < 80 then
- idleSet = set_combine(idleSet, sets.ExtraRegen)
- end
- --add_to_chat(122,'Idle Set ')
- if state.rangetype.value ~= "None" then idleSet = set_combine(idleSet,sets.rangetype[state.rangetype.value]) end
- if state.idlemode.value ~= "Normal" then idleSet = set_combine(idleSet,sets.idle[state.idlemode.value]) end
- if state.TreasureMode.value == 'Fulltime' then
- idleSet = set_combine(idleSet, sets.TreasureHunter)
- end
- if state.damagetaken.value ~= "None" then idleSet = set_combine(idleSet,sets.damagetaken[state.damagetaken.value]) end
- if state.runaway.current == 'on' then idleSet = set_combine(idleSet,sets.runaway) end
- if state.runaway2.current == 'on' then idleSet = set_combine(idleSet,sets.runaway2) end
- if state.hasteknife.current == 'on' then idleSet = set_combine(idleSet,sets.hasteknife) end
- if state.aoedagger.current == 'on' then idleSet = set_combine(idleSet,sets.aoedagger) end
- if state.cpmode.current == 'on' then idleSet = set_combine(idleSet,sets.cpmode) end
- return idleSet
- end
- function customize_melee_set(meleeSet)
- meleeSet = set_combine(meleeSet,sets.hastemode[state.hastemode.value])
- if state.rangetype.value ~= "None" then meleeSet = set_combine(meleeSet,sets.rangetype[state.rangetype.value]) end
- if rangeswap then
- rangeswap=0
- equip(sets.rangetype[state.rangetype.value])
- if state.rangetype.value == "None" then
- enable('ranged','ammo')
- else
- disable('ranged','ammo')
- end
- end
- if state.OffenseMode.current ~= 'Normal' then meleeSet = set_combine(meleeSet,sets.engaged[state.OffenseMode.current]) end
- if state.TreasureMode.value == 'Fulltime' then
- meleeSet = set_combine(meleeSet, sets.TreasureHunter)
- end
- if state.damagetaken.value ~= "None" then meleeSet = set_combine(meleeSet,sets.damagetaken[state.damagetaken.value]) end
- if state.runaway.current == 'on' then meleeSet = set_combine(meleeSet,sets.runaway) end
- if state.runaway2.current == 'on' then meleeSet = set_combine(meleeSet,sets.runaway2) end
- if state.hasteknife.current == 'on' then meleeSet = set_combine(meleeSet,sets.hasteknife) end
- if state.aoedagger.current == 'on' then meleeSet = set_combine(meleeSet,sets.aoedagger) end
- if state.cpmode.current == 'on' then meleeSet = set_combine(meleeSet,sets.cpmode) end
- --check_range_lock()
- return meleeSet
- end
- function customize_resting_set(restingSet)
- if state.cpmode.current == 'on' then restingSet = set_combine(restingSet,sets.cpmode) end
- return restingSet
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- th_update(cmdParams, eventArgs)
- end
- dw = 0;
- dtmode = 0;
- accmode = 0;
- runaway = 0;
- rangeswap = 0;
- function job_self_command(cmdParams, eventArgs)
- command = cmdParams[1]:lower()
- if command=='hastetype' then
- if hastetype == 1 then hastetype=2
- else hastetype = 1 end
- add_to_chat(122,'Haste '..hastetype)
- check_haste_level()
- handle_equipping_gear(player.status)
- elseif command=='rangetype' then
- enable('range','ammo')
- rangeswap=1
- send_command('gs c cycle rangetype')
- end
- end
- -- Function to display the current relevant user state when doing an update.
- -- Return true if display was handled, and you don't want the default info shown.
- function display_current_job_state(eventArgs)
- local msg = 'Melee'
- if state.CombatForm.has_value then
- msg = msg .. ' (' .. state.CombatForm.value .. ')'
- end
- msg = msg .. ': '
- msg = msg .. state.OffenseMode.value
- if state.HybridMode.value ~= 'Normal' then
- msg = msg .. '/' .. state.HybridMode.value
- end
- msg = msg .. ', WS: ' .. state.WeaponskillMode.value
- if state.DefenseMode.value ~= 'None' then
- msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
- end
- if state.Kiting.value == true then
- msg = msg .. ', Kiting'
- end
- if state.PCTargetMode.value ~= 'default' then
- msg = msg .. ', Target PC: '..state.PCTargetMode.value
- end
- if state.SelectNPCTargets.value == true then
- msg = msg .. ', Target NPCs'
- end
- msg = msg .. ', TH: ' .. state.TreasureMode.value
- add_to_chat(122, msg)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- State buff checks that will equip buff gear and mark the event as handled.
- function check_buff(buff_name, eventArgs)
- if state.Buff[buff_name] then
- equip(sets.buff[buff_name] or {})
- if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
- equip(sets.TreasureHunter)
- end
- eventArgs.handled = true
- end
- -- if buffactive['Haste'] and player.tp < 200 and usehasteknife == 1 then
- -- sets.engaged = set_combine(sets.engaged,sets.Mainhand)
- -- sets.idle = set_combine(sets.idle,sets.Mainhand)
- -- elseif player.tp < 200 and usehasteknife == 1 then
- -- sets.engaged = set_combine(sets.engaged,sets.Haste)
- -- sets.idle = set_combine(sets.idle,sets.Haste)
- -- end
- end
- -- Check for various actions that we've specified in user code as being used with TH gear.
- -- This will only ever be called if TreasureMode is not 'None'.
- -- Category and Param are as specified in the action event packet.
- function th_action_check(category, param)
- if category == 2 or -- any ranged attack
- --category == 4 or -- any magic action
- (category == 3 and param == 30) or -- Aeolian Edge
- (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
- (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
- then return true
- end
- end
- -- Function to lock the ranged slot if we have a ranged weapon equipped.
- function check_range_lock()
- --enable('range','ammo')
- -- if rangeswap then
- -- disable('range','ammo')
- -- rangeswap=0
- -- end
- -- if player.equipment.range ~= 'empty' then
- -- disable('range', 'ammo')
- -- else
- -- enable('range', 'ammo')
- -- end
- end
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book
- if player.sub_job == 'DNC' then
- set_macro_page(1, 5)
- -- elseif player.sub_job == 'WAR' then
- -- set_macro_page(3, 5)
- elseif player.sub_job == 'NIN' then
- set_macro_page(1, 6)
- -- else
- -- set_macro_page(2, 5)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement