an "community contribution editing file"
i have steal Motenten PLD.Lua and edited it.
Code
-------------------------------------------------------------------------------------------------------------------
-- Initialization function that defines sets and variables to be used.
-------------------------------------------------------------------------------------------------------------------
-- IMPORTANT: Make sure to also get the Mote-Include.lua file to go with this.
-- Initialization function for this job file.
function get_sets()
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent.
function job_setup()
state.Buff.Sentinel = buffactive.sentinel or false
state.Buff.Cover = buffactive.cover or false
state.Buff.Doomed = buffactive.doomed or false
end
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
-- Options: Override default values
options.OffenseModes = {'Normal', 'Acc'}
options.WeaponskillModes = {'Normal', 'Acc'}
options.CastingModes = {'Normal'}
options.IdleModes = {'Normal'}
options.RestingModes = {'Normal'}
options.PhysicalDefenseModes = {'PDT', 'Aegis',}
options.MagicalDefenseModes = {'MDT'}
options.HybridDefenseModes = {'None', 'Repulse', 'Reraise', 'RepulseReraise'}
state.Defense.PhysicalMode = 'PDT'
state.HybridDefenseMode = 'None'
send_command('bind !f11 gs c cycle HybridDefenseMode')
select_default_macro_book()
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Precast sets
--------------------------------------
-- Precast sets to enhance JAs
sets.precast.JA['Invincible'] = {ammo="Iron Gobbet",
head="Cab. Coronet +1",neck="Invidia Torque",ear2="Trux Earring",
body="Cab. Surcoat +1",hands="Cab. Gauntlets +1",ring1="Vexer Ring",
back="Fierabras's Mantle",waist="Creed baudrier",legs="Caballarius Breeches +1",feet="Creed Sabatons +2"}
sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"}
sets.precast.JA['Shield Bash'] = {ammo="Iron Gobbet",head="Cab. Coronet +1",neck="Invidia Torque",ear1="Knightly Earring",
ear2="Trux Earring",body="Cab. Surcoat +1",hands="Caballarius Gauntlets +1",ring1="Guardian's ring",ring2="Fenian Ring",
back="Fierabras's Mantle",waist="Creed baudrier",legs="Cab. Breeches +1"}
sets.precast.JA['Sentinel'] = {ammo="Iron Gobbet",head="Cab. Coronet +1",neck="Invidia Torque",ear1="Knightly Earring",
ear2="Trux Earring",body="Cab. Surcoat +1",hands="Caballarius Gauntlets +1",ring1="Guardian's ring",ring2="Fenian Ring",
back="Fierabras's Mantle",waist="Creed baudrier",feet="Caballarius Leggings +1"}
sets.precast.JA['Rampart'] = {head="Caballarius Coronet +1",body="Cab. Surcoat +1",hands="Cab. gauntlets +1",
neck="Tjukurrpa Medal",ear1="Terra's Pearl",ear2="Terra's Pearl",ring1="Terrasoul Ring",ring2="Terrasoul Ring",
back="Iximulew Cape",waist="Caudata Belt",legs="Cab. breeches +1",feet="Rev. Leggings +1"}
sets.precast.JA['Fealty'] = {body="Caballarius Surcoat +1"}
sets.precast.JA['Divine Emblem'] = {feet="Creed Sabatons +2"}
sets.precast.JA['Cover'] = {head="Reverence Coronet +1",body="Caballarius Surcoat +1",hands="Cab. gauntlets +1",
neck="Tjukurrpa Medal",ear1="Terra's Pearl",ear2="Terra's Pearl",ring1="Terrasoul Ring",ring2="Terrasoul Ring",
back="Iximulew Cape",waist="Caudata Belt",legs="Cab. breeches +1",feet="Rev. Leggings +1"}
-- add mnd for Chivalry
sets.precast.JA['Chivalry'] = {ammo="Iron Gobbet",
head="Reverence Coronet +1",neck="Morgana's Choker",ear1="Andoaa earring",ear2="Loquac. Pearl",
body="Karmesin Vest",hands="Cab. Gauntlets +1",ring1="Aquasoul Ring",ring2="Vivian Ring",
back="Weard Mantle",waist="Fucho-no-obi",legs="Cab. Breeches +1",feet="Whirpool greaves"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Yaoyotl Helm",
body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",
head="Lithelimb cap",neck="Tjukurrpa Medal",ear1="Terra's Pearl",
ear2="Terra's Pearl",ring1="Valseur's Ring",ring2="Asklepian Ring",
back="Iximulew Cape",waist="Caudata Belt",legs="Reverence Breeches +1",
feet="Reverence Leggings"}
-- Special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
sets.precast.Step = {waist="Chaac Belt"}
sets.precast.Flourish1 = {waist="Chaac Belt"}
-- Fast cast sets for spells
sets.precast.FC = {ammo="Incantor stone",
head="Creed armet +2",neck="Orunmila's Torque",ear2="Loquacious Earring",hands="Buremte gloves",
body="Nuevo coselete",ring1="Prolix Ring",ring2="Veneficium Ring",legs="Enif Cosciales"}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
sets.precast.FC.Cure = set_combine(sets.precast.FC,
{ammo="Incantor stone",
head="Creed armet +2",neck="Orunmila's Torque",ear2="Loquacious Earring",hands="Buremte gloves",
body="Nuevo coselete",ring1="Prolix Ring",legs="Enif Cosciales"})
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS =
{head="Yaoyotl Helm",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Karieyh Haubert +1",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Atheling Mantle",waist=gear.ElementalBelt,legs="Cizin Breeches",feet="Cizin Greaves"}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Requiescat'] =
{head="Lithelimb Cap",neck="Soil gorget",ear1="Steelflash Earring",ear2="Bladeborn earring",
body="Karmesin Vest",hands="Cizin Mufflers",ring1="Rajas ring",ring2="Aquasoul Ring",
back="Letalis mantle",waist="Soil belt",legs="Cizin breeches",feet="Whirlpool greaves"}
sets.precast.WS['Sanguine Blade'] =
{head="Yaoyotl Helm",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
body="Reverence Surcoat +1",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Toro Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Reverence Leggings"}
sets.precast.WS['Atonement'] =
{neck="Light Gorget",body="Phorcys Korazin",waist="Light Belt",legs="Ogier's Breeches"}
sets.precast.WS['Chant du Cygne'] =
{head="Lithelimb Cap",neck="Light gorget",ear1="Steelflash Earring",ear2="Bladeborn earring",
body="Karmesin Vest",hands="Cizin Mufflers",ring1="Rajas ring",ring2="Unyielding Ring",
back="Letalis mantle",waist="Light belt",legs="Cizin breeches",feet="Whirlpool greaves"}
--------------------------------------
-- Midcast sets
--------------------------------------
sets.midcast.FastRecast = {
head="Yaoyotl Helm",
body="Reverence Surcoat +1",hands="Buremte Gloves",
waist="Chuq'aba Belt",legs="Enif Cosciales",feet="Reverence Leggings +1"}
sets.midcast.Enmity = {ammo="Iron Gobbet",
head="Cab. Coronet +1",neck="Invidia Torque",ear2="Trux Earring",
body="Cab. Surcoat +1",hands="Cab. Gauntlets +1",ring1="Vexer Ring",
back="Fierabras's Mantle",waist="Creed baudrier",legs="Cab. Breeches +1",feet="Creed Sabatons +2"}
sets.midcast.Flash = sets.midcast.Enmity
sets.midcast.Stun = sets.midcast.Flash
sets.midcast.Cure = {ammo="Iron Gobbet",
head="Rev. Coronet +1",neck="Phalaina Locket",ear1="Hospitaler Earring",ear2="Oneiros Earring",
body="Savas jawshan",hands="Buremte Gloves",ring1="Kunaji Ring",ring2="Asklepian Ring",
back="Fierabras's Mantle",waist="Chuq'aba belt",legs="Reverence Breeches +1",feet="Reverence Leggings"}
-- 37 dmg Phalanx
sets.midcast['Enhancing Magic'] = {back="Merciful cape",neck="Colossus's Torque",ear1="Augment. Earring",ear2="Andoaa Earring",waist="Olympus Sash",legs="Reverence Breeches +1"}
sets.midcast.Crusade = {back="Merciful cape",neck="Colossus's Torque",ear1="Augment. Earring",ear2="Andoaa Earring",waist="Olympus Sash",legs="Reverence Breeches +1"}
sets.midcast.Protect = {ring1="Sheltered Ring"}
sets.midcast.Shell = {ring1="Sheltered Ring"}
--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------
sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
sets.resting = {head="Twilight Helm",neck="Creed Collar",
body="Twilight Mail",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Fucho-no-obi"}
-- Idle sets
sets.idle = {ammo="Iron Gobbet",
head="Twilight helm",neck="Creed Collar",ear1="Knight's Earring",ear2="Ethereal Earring",
body="Twilight mail",hands="Reverence Gauntlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Weard Mantle",waist="Fucho-no-obi",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
sets.idle.Town = {main="Burtgang",ammo="Vanir battery",
head="Reverence Coronet +1",neck="Creed Collar",ear1="Knight's Earring",ear2="Ethereal Earring",
body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Weard Mantle",waist="Fucho-no-obi",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
sets.idle.Weak = {ammo="Iron Gobbet",
head="Twilight helm",neck="Creed Collar",ear1="Knight's Earring",ear2="Ethereal Earring",
body="Twilight mail",hands="Reverence Gauntlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Weard Mantle",waist="Fucho-no-obi",legs="Crimson Cuisses",feet="Reverence Leggings +1"}
sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
-- Physical
-- PDT
-- Aegis
-- Defense sets
-- Magical
-- MDT
-- Hybrid (on top of either physical or magical)
-- Repulse
-- Reraise
-- RepulseReraise
-- Custom
sets.Repulse = {back="Repulse Mantle"}
sets.defense.PDT = {ammo="Angha Gem",main="Burtgang",sub="Ochain",
head="Reverence Coronet +1",neck="Twilight Torque",ear1="Knight's Earring",ear2="Ethereal Earring",
body="Cab. Surcoat +1",hands="Reverence gauntlets +1",ring1="dark ring",ring2="Defending ring",
back="Weard Mantle",waist="Flume Belt",legs="Cab. breeches +1",feet="Rev. Leggings +1"}
sets.defense.Aegis = {ammo="Angha Gem",main="Burtgang",sub="aegis",
head="Reverence Coronet +1",neck="Twilight Torque",ear1="Knight's Earring",ear2="Ethereal Earring",
body="Cab. Surcoat +1",hands="Reverence gauntlets +1",ring1="dark ring",ring2="Defending ring",
back="Weard Mantle",waist="Flume Belt",legs="Cab. breeches +1",feet="Rev. Leggings +1"}
-- To cap MDT with Shell IV (52/256), need 76/256 in gear. Current gear set is ??/256.
-- Shellra V can provide 75/256.
sets.defense.MDT = {main="Burtgang",ammo="Vanir battery",
head="Reverence Coronet +1",neck="Twilight Torque",ear1="Sanare Earring",ear2="Flashward Earring",
body="Cab. Surcoat +1",hands="Reverence Gauntlets +1",ring1="Shadow Ring",ring2="Defending ring",
back="Weard mantle",waist="Creed Baudrier",legs="Mes'yohi Slacks",feet="Cab. Leggings +1"}
sets.defense.PDT.Repulse = set_combine(sets.defense.PDT, sets.Repulse)
sets.defense.Aegis.Repulse = set_combine(sets.defense.Aegis, sets.Repulse)
sets.defense.MDT.Repulse = set_combine(sets.defense.MDT, sets.Repulse)
sets.defense.PDT.Reraise = set_combine(sets.defense.PDT, sets.Reraise)
sets.defense.Aegis.Reraise = set_combine(sets.defense.Aegis, sets.Reraise)
sets.defense.MDT.Reraise = set_combine(sets.defense.MDT, sets.Reraise)
sets.defense.PDT.RepulseReraise = set_combine(sets.defense.PDT, sets.Reraise, sets.Repulse)
sets.defense.Aegis.RepulseReraise = set_combine(sets.defense.PDT, sets.Reraise, sets.Repulse)
sets.defense.MDT.RepulseReraise = set_combine(sets.defense.PDT, sets.Reraise, sets.Repulse)
sets.Kiting = {legs="Crimson Cuisses"}
sets.latent_refresh = {waist="Fucho-no-obi"}
--------------------------------------
-- Engaged sets
--------------------------------------
sets.engaged = {ammo="Vanir battery",
head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Karmesin vest",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Atheling Mantle",waist="Chuq'aba Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
sets.engaged.MP = {ammo="Ginsen",
head="Otomi Helm",neck="Creed Collar",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Karmesin vest",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Atheling Mantle",waist="Fucho-no-obi",legs="Cizin Breeches",feet="Whirlpool Greaves"}
sets.engaged.Acc = {ammo="Ginsen",
head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Karmesin vest",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Chuq'aba Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
sets.engaged.DW = {ammo="Vanir battery",
head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
body="Karmesin vest",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Atheling Mantle",waist="Chuq'aba Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
sets.engaged.DW.MP = {ammo="JVanir battery",
head="Otomi Helm",neck="Creed Collar",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
body="Karmesin vest",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Atheling Mantle",waist="Chuq'aba Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
sets.engaged.DW.Acc = {ammo="Ginsen",
head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
body="Karmesin vest",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Chuq'aba Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
--------------------------------------
-- Custom buff sets
--------------------------------------
sets.buff.Doomed = {ring1="Eshmun's Ring",ring2="Saida Ring",head="Twilight Helm", body="Twilight Mail",legs="Shabti cuisses +1"}
sets.buff.Cover = {head="Reverence Coronet +1", body="Caballarius Surcoat +1"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks that are called to process player actions at specific points in time.
-------------------------------------------------------------------------------------------------------------------
--Doom
function job_post_midcast(spell, action, spellMap, eventArgs)
if state.Buff.Doomed then
equip(sets.buff.Doomed)
end
end
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if state.Buff.Doomed then
idleSet = set_combine(idleSet, sets.buff.Doomed)
send_command('input /p DOOM please Cursna')
end
return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(engaged)
if state.Buff.Doomed then
sets.engaged = set_combine(sets.buff.Doomed)
end
return sets.engaged
end
--Doom
function job_post_midcast(spell, action, spellMap, eventArgs)
if buffactive['Doom'] then
equip(sets.buff.Doomed)
send_command('input /p DOOM please Cursna')
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
-- Don't gearswap for weaponskills when Defense is on.
if spell.type == 'WeaponSkill' and state.Defense.Active then
eventArgs.handled = true
end
if state.Buff[spell.english] ~= nil then
state.Buff[spell.english] = true
end
end
-- Run after the default precast() is done.
-- eventArgs is the same one used in job_precast, in case information needs to be persisted.
function job_post_precast(spell, action, spellMap, eventArgs)
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
function job_midcast(spell, action, spellMap, eventArgs)
end
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
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)
if state.Buff[spell.english] ~= nil then
state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
end
end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
return meleeSet
end
-------------------------------------------------------------------------------------------------------------------
-- General hooks for change events.
-------------------------------------------------------------------------------------------------------------------
-- Called when the player's status changes.
function job_state_change(field, new_value, old_value)
if field == 'HybridDefenseMode' then
classes.CustomDefenseGroups:clear()
classes.CustomDefenseGroups:append(new_value)
end
end
-- 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
state.Buff[buff] = gain
end
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_defense_mode()
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function update_defense_mode()
if player.equipment.main == 'Bustgang' and not classes.CustomDefenseGroups:contains('Burtgang') then
classes.CustomDefenseGroups:append('Burtgang')
end
if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
if player.equipment.sub and not player.equipment.sub:endswith('Shield') and
player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
state.CombatForm = 'DW'
else
state.CombatForm = nil
end
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(10, 7)
elseif player.sub_job == 'NIN' then
set_macro_page(1, 7)
elseif player.sub_job == 'RDM' then
set_macro_page(9, 7)
elseif player.sub_job == 'RUN' then
set_macro_page(8, 7)
else
set_macro_page(1, 7)
end
endactually fonctional for major thing, exept doom and /run gestion
