Code
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
include('Mote-Include.lua')
end
-- //gs debugmode
-- //gs showswaps
function binds_on_load()
-- F9-F12
send_command('bind f9 gs c cycle OffenseMode')
send_command('bind f10 gs c cycle HybridMode')
send_command('bind f11 gs c cycle CastingMode')
send_command('bind f12 gs c update user')
-- CTRL F9-F12
send_command('bind ^q gs c mainweapon')
send_command('bind ^f9 gs c cycle WeaponskillMode')
-- ALT F9-12
send_command('bind !f9 gs c cycle IdleMode')
send_command('bind !f10 gs c cycle RangedMode')
send_command('bind !f12 gs c cycle Kiting')
end
function job_setup()
state.mainweapon = M{['description'] = 'Main Weapon'}
--state.mainweapon:options('Ragnarok','Reikiko')
state.mainweapon:options('Ragnarok','Naegling','Chango','Shine','Club')
end
function user_setup()
-- Options: Override default values
state.OffenseMode:options('Normal', 'LowAcc', 'MidAcc', 'HighAcc')
state.WeaponskillMode:options('Normal', 'Acc')
state.HybridMode:options('Normal', 'PDT')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal','PDT')
state.PhysicalDefenseMode:options('PDT', 'MDT')
Ukon_weapons = S{'Ragnarok'}
Shield_weapons = S{'Blurred Shield +1'}
Chango_weapons = S{'Chango'}
Shine_weapons = S{'Shining One'}
Club_weapons = S{'Beryllium Mace +1'}
update_combat_form()
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function file_unload()
if binds_on_unload then
binds_on_unload()
end
end
sets.mainweapon = {}
sets.mainweapon.Ragnarok = {
main="Ragnarok",
sub="Utu Grip"
}
sets.mainweapon.Naegling = {
main="Naegling",
sub="Blurred Shield +1"
}
sets.mainweapon.Chango = {
main="Chango",
sub="Utu Grip"
}
sets.mainweapon.Shine = {
main="Shining One",
sub="Utu Grip"
}
sets.mainweapon.Club = {
main="Loxotic mace +1",
sub="Blurred Shield +1"}
-- Define sets and vars used by this job file.
function init_gear_sets()
-- Precast sets
sets.precast.JA['Berserk'] = {body="Pumm. Lorica +3",feet="Agoge Calligae +3"}
sets.precast.JA['Warcry'] = {head="Agoge Mask +3"}
sets.precast.JA['Aggressor'] = {head="Pummeler's Mask +2",body="Agoge Lorica +3"}
sets.precast.JA['Blood Rage'] = {body="Boii Lorica +1"}
sets.precast.JA['Retaliation'] = {feet="Boii Calligae +1",hands="Pummeler's Mufflers +1"}
sets.precast.JA['Restraint'] = {hands="Boii Mufflers +1"}
sets.precast.JA['Mighty Strikes'] = {hands="Agoge Mufflers +3"}
sets.precast.JA['Defender'] = {hands="Agoge Mufflers +3"}
sets.precast.JA["Warrior's Charge"] = {legs="Agoge Cuisses +3"}
sets.precast.JA['Provoke'] = {
ammo="Sapience orb",
head="Pummeler's Mask +2",
body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Souveran Schuhs", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Unmoving Collar +1",
waist="Trance Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Begrudging ring",
right_ring="Supershear Ring",
back={ name="Cichol's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Enmity+10','Damage taken-5%',}},
}
-- Fast cast sets for spells
sets.precast.FC = {
ammo="Impatiens",
head="Sakpata's helm",
body="",
ear1="Loquacious Earring",
hands="",
ring1="Rahab ring",
ring2="Prolix Ring",
legs="",
feet=""}
-- Midcast Sets
sets.midcast.FastRecast = {
ammo="Staunch Tathlum",
head="Hjarrandi Helm",
body="Hjarrandi Breast.",
hands="Volte Moufles",
legs="Souv. Diechlings +1",
feet="Hermes' Sandals",
neck="War. Beads +2",
waist="Flume Belt +1",
left_ear="Odnowa earring +1",
right_ear="Moonshade earring",
left_ring="Moonbeam Ring",
right_ring="Defending Ring",
back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
sets.midcast.Flash = {
ammo="Aqreqaq Bomblet",
head="Pummeler's Mask +3",
body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Souveran Schuhs", augments={'HP+80','Enmity+7','Potency of "Cure" effect received +10%',}},
neck="Unmoving Collar +1",
waist="Trance Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Eihwaz Ring",
right_ring="Supershear Ring",
back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
-- Resting sets
sets.resting = {
ammo="Staunch Tathlum",
head="Sakpata's Helm",
body="Sakpata's Plate",
hands="Sakpata's Gauntlets",
legs="Sakpata's Cuisses",
feet="Sulevia's leggings +2",
neck="War. Beads +2",
waist="Flume Belt +1",
left_ear="Odnowa earring +1",
right_ear="Moonshade earring",
left_ring="Defending Ring",
right_ring="Karieyh Ring +1",
back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
-- Idle sets
sets.idle = {
ammo="Staunch Tathlum +1",
head="Hjarrandi Helm",
body="Hjarrandi breastplate",
hands="Sakpata's Gauntlets",
legs="Sakpata's Cuisses",
feet="Flam. Gambieras +2",
neck={ name="War. Beads +2", augments={'Path: A',}},
waist="Sailfi Belt +1",
left_ear="Odnowa earring +1",
right_ear="Moonshade earring",
left_ring="Defending Ring",
right_ring="Karieyh Ring +1",
back="Moonlight cape"
}
sets.idle.PDT = {
ammo="Staunch Tathlum +1",
head="Hjarrandi Helm",
body="Hjarrandi breastplate",
hands="Sakpata's Gauntlets",
legs="Sakpata's Cuisses",
feet="Flam. Gambieras +2",
neck={ name="War. Beads +2", augments={'Path: A',}},
waist="Sailfi Belt +1",
left_ear="Odnowa earring +1",
right_ear="Moonshade earring",
left_ring="Defending Ring",
right_ring="Niqmaddu Ring",
back="Moonlight cape"
}
sets.idle.Town = {
ammo="Staunch Tathlum +1",
head="Hjarrandi Helm",
body="Hjarrandi breastplate",
hands="Sakpata's Gauntlets",
legs="Sakpata's Cuisses",
feet="Flam. Gambieras +2",
neck={ name="War. Beads +2", augments={'Path: A',}},
waist="Sailfi Belt +1",
left_ear="Odnowa earring +1",
right_ear="Moonshade earring",
left_ring="Defending Ring",
right_ring="Niqmaddu Ring",
back="Moonlight cape"
}
sets.engaged = {
ammo="Coiste bodhar",
head="Hjarrandi Helm",
neck="Warrior's Bead Necklace +2",
ear1="Cessance Earring",
ear2="Telos Earring",
body="Sakpata's Plate",
hands="Sakpata's Gauntlets",
left_ring="Chirich Ring +1",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Ioskeha Belt +1",
legs="Tatenashi haidate +1",
feet="Flamma Gambieras +2"
}
sets.engaged.Blurred = {
ammo="Ginsen",
head="Hjarrandi Helm",
neck="Warrior's Bead Necklace +2",
ear1="Cessance Earring",
ear2="Telos Earring",
body="Sakpata's Plate",
hands="Sakpata's Gauntlets",
left_ring="Chirich Ring +1",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Ioskeha Belt +1",
legs="Tatenashi haidate +1",
feet="Flamma Gambieras +2"
}
sets.engaged.Blurred.PDT = {
ammo="Ginsen",
head="Hjarrandi Helm",
neck="Warrior's Bead Necklace +2",
ear1="Cessance Earring",
ear2="Telos Earring",
body="Sakpata's Plate",
hands="Sakpata's Gauntlets",
left_ring="Chirich Ring +1",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
waist="Ioskeha Belt +1",
legs="Tatenashi haidate +1",
feet="Flamma Gambieras +2"
}
-- Weaponskill sets
sets.precast.WS = {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands={ name="Odyssean Gauntlets", augments={'Accuracy+11 Attack+11','Weapon skill damage +3%','Accuracy+15','Attack+11',}},
legs="Nyame flanchard",
feet="Sulev. Leggings +2",
left_ear="Ishvara Earring",
neck="Warrior's bead necklace +2",
waist={ name="Sailfi Belt +1", augments={'Path: A',}},
right_ear="Moonshade earring",
left_ring="Epaminondas's ring",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
sets.precast.WS.Acc = set_combine(sets.precast.WS, {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands={ name="Valorous Mitts", augments={'Accuracy+20','Weapon skill damage +4%','STR+12',}},
legs="Sulev. Cuisses +2",
feet="Sulev. Leggings +2",
left_ear="Ishvara Earring",
neck={ name="War. Beads +2", augments={'Path: A',}},
waist={ name="Sailfi Belt +1", augments={'Path: A',}},
right_ear="Thrud earring",
left_ring="Epaminondas's ring",
right_ring="Karieyh Ring +1",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
})
sets.precast.WS["Ukko's Fury"] = {
ammo="Yetshila +1",
head="Hjarrandi Helm",
body="Hjarrandi Breast.",
hands="Flam. Manopolas +2",
legs="Jokushu haidate",
feet="Boii calligae +1",
neck="Warrior's bead necklace +2",
waist="Sailfi belt +1",
ear1="Brutal Earring",
ear2="Moonshade Earring",
left_ring="Epaminondas's ring",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Upheaval"] = {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands="Nyame Gauntlets",
legs="Nyame flanchard",
feet="Sulev. Leggings +2",
neck={ name="War. Beads +2", augments={'Path: A',}},
waist={ name="Sailfi Belt +1", augments={'Path: A',}},
left_ear="Ishvara Earring",
right_ear="Thrud earring",
left_ring="Epaminondas's ring",
right_ring="Karieyh Ring +1",
back={ name="Cichol's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Savage Blade"] = {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands="Sakpata's gauntlets",
legs="Nyame flanchard",
feet="Sulev. Leggings +2",
left_ear="Ishvara Earring",
neck="Warrior's bead necklace +2",
waist={ name="Sailfi Belt +1", augments={'Path: A',}},
right_ear="Thrud earring",
left_ring="Epaminondas's ring",
right_ring="Karieyh Ring +1",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Metatron Torment"] = {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands="Nyame Gauntlets",
legs="Nyame flanchard",
feet="Sulev. Leggings +2",
neck="Warrior's bead necklace +2",
waist="Sailfi belt +1",
ear1="Ishvara Earring",
ear2="Moonshade earring",
left_ring="Epaminondas's ring",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Full Break"] = {
ammo="Pemphredo Tathlum",
head="Hjarrandi Helm",
body="Sakpata's Plate",
hands="Flam. Manopolas +2",
legs="Flamma Dirs +2",
feet="Flam. Gambieras +2",
neck="Sanctity Necklace",
waist="Eschan Stone",
left_ear="Digni. Earring",
right_ear="Telos Earring",
left_ring="Stikini Ring +1",
right_ring="Stikini Ring +1",
back={ name="Cichol's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Impulse Drive"] = {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands="Nyame Gauntlets",
legs="Nyame flanchard",
feet="Sulev. Leggings +2",
neck="Warrior's bead necklace +2",
waist="Sailfi belt +1",
left_ear="Ishvara Earring",
right_ear="Moonshade earring",
left_ring="Epaminondas's ring",
right_ring="Karieyh Ring +1",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Hexa Strike"] = {
ammo="Yetshila +1",
head="Hjarrandi Helm",
body="Hjarrandi Breast.",
hands="Flam. Manopolas +2",
legs="Jokushu haidate",
feet="Boii calligae +1",
neck="Warrior's bead necklace +2",
waist="Sailfi belt +1",
left_ear="Brutal Earring",
right_ear="Moonshade Earring",
left_ring="Epaminondas's ring",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','STR+10','Weapon skill damage +10%',}},
}
sets.precast.WS["Judgement"] = {
ammo="Knobkierrie",
head={ name="Agoge Mask +3", augments={'Enhances "Savagery" effect',}},
body="Pumm. Lorica +3",
hands="Nyame Gauntlets",
legs="Nyame flanchard",
feet="Sulev. Leggings +2",
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Ishvara Earring",
right_ear="Moonshade earring",
left_ring="Epaminondas's ring",
right_ring="Niqmaddu Ring",
back={ name="Cichol's Mantle", augments={'STR+20','Accuracy+20 Attack+20','Accuracy+10','STR+10','Weapon skill damage +10%',}},
}
-- Mighty Strikes WS Set --
sets.MS_WS = {ammo="Yetshila +1", feet="Boii Calligae +1"}
end
-- Job-specific hooks for standard casting events.
function job_midcast(spell, action, spellMap, eventArgs)
end
-- Called when the player's status changes.
function job_state_change(field, new_value, old_value)
end
function update_combat_form()
-- Check Weapontype
if Ukon_weapons:contains(player.equipment.main) then
state.CombatForm:set('Ragnarok')
elseif
Shield_weapons:contains(player.equipment.sub) then
state.CombatForm:set('Blurred')
elseif
Chango_weapons:contains(player.equipment.sub) then
state.CombatForm:set('Chango')
elseif
Shine_weapons:contains(player.equipment.sub) then
state.CombatForm:set('Shine')
elseif
Club_weapons:contains(player.equipment.sub) then
state.CombatForm:set('Club')
else
state.CombatForm:reset()
end
end
function job_self_command(cmdParams, eventArgs)
command = cmdParams[1]:lower()
if command=='mainweapon' then
enable('main','sub')
mainswap=1
send_command('gs c cycle mainweapon')
end
end
function job_update(cmdParams, eventArgs)
update_combat_form()
end
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
update_combat_form()
end
-- eventArgs is the same one used in job_precast, in case information needs to be persisted.
moonshade_WS = S{"Resolution", "Torcleaver", "Savage Blade"}
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
if world.time >= (17*60) or world.time <= (7*60) then
equip({ear1="",ear2=""})
end
if moonshade_WS:contains(spell.english) and player.tp<2950 then
equip({ear2=""})
end
if buffactive['Mighty Strikes'] then
if sets.precast.WS[spell] then
equipSet = sets.precast.WS[spell]
equipSet = set_combine(equipSet,sets.MS_WS)
equip(equipSet)
else
equipSet = sets.precast.WS
equipSet = set_combine(equipSet,sets.MS_WS)
equip(equipSet)
end
end
end
end
function customize_idle_set(idleSet)
if mainswap then
mainswap=0
enable('main','sub')
equip(sets.mainweapon[state.mainweapon.value])
disable('main','sub')
end
if player.mpp < 51 then
return set_combine(idleSet, sets.latent_refresh)
end
if state.Buff.Doom or state.Buff.Curse then
return set_combine(idleSet, sets.Doom)
else
return idleSet
end
end
function customize_melee_set(meleeSet)
if mainswap then
mainswap=0
enable('main','sub')
equip(sets.mainweapon[state.mainweapon.value])
disable('main','sub')
end
if state.Buff.Aftermath then
return set_combine(meleeSet, sets.Aftermath)
end
if state.Buff.Doom then
return set_combine(meleeSet, sets.Doom)
end
if state.Buff.Curse then
return set_combine(meleeSet, sets.Curse)
else
return meleeSet
end
end
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
if spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
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 == 'SAM' then
set_macro_page(1,9 )
elseif player.sub_job == 'NIN' then
set_macro_page(1, 9)
elseif player.sub_job == 'RDM' then
set_macro_page(1, 9)
elseif player.sub_job == 'THF' then
set_macro_page(1, 9)
else
set_macro_page(1, 9)
end
end