Sie sind auf Seite 1von 8

--------------------------------------------------------------------------------

-----------------------------------
-- Setup functions for this job. Generally should not be modified.
--------------------------------------------------------------------------------
-----------------------------------
-- 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()
indi_timer = ''
indi_duration = 180
end
--------------------------------------------------------------------------------
-----------------------------------
-- User setup functions for this job. Recommend that these be overridden in a s
idecar file.
--------------------------------------------------------------------------------
-----------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar
file.
function user_setup()
state.OffenseMode:options('None', 'Normal')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT')
gear.default.weaponskill_waist = "Windbuffet Belt"
-- Additional Binds
send_command('bind ^F1 input /ja "Collimated Fervor" <me>')
send_command('bind ^F2 input /ja "Theurgic Focus" <me>')
send_command('bind ^F3 input /ja "Widened Compass" <me>')
send_command('bind ^F4 input /ja "Concentric Pulse" <t>')
send_command('bind ^F5 input /ja "Dematerialize" <me>')
send_command('bind ^F6 input /ja "Ecliptic Attrition" <me>')
send_command('bind ^F7 input /ja "Blaze of Glory" <me>')
send_command('bind ^F8 input /ja "Bolster" <me>')
send_command('bind ^F9 input /ja "Entrust" <me>')
send_command('bind ^F10 input /ja "Lasting Emanation" <me>')
send_command('bind ^F11 input /ja "Life Cycle" <me>')
send_command('bind ^F12 input /ja "Radial Arcana" <me>')
send_command('bind !F1 input /ma "Refresh" <me>')
send_command('bind !F2 input /ma "Regen" <stpc>')
send_command('bind !F3 input /ma "Haste" <stpc>')
send_command('bind !F4 input /ma "Erase" <stpc>')
send_command('bind !F5 input /ma "Phalanx" <me>')
send_command('bind !F6 input /ma "Stoneskin" <me>')
send_command('bind !F7 input /ma "Blink" <me>')
send_command('bind !F8 input /ma "Aquaveil" <me>')
send_command('bind !F9 input /ja "Haste Samba" <me>')
send_command('bind !F10 input /ja "Drain Samba II" <me>')
send_command('bind !F11 input /ja "Aspir Samba" <me>')
send_command('bind !F12 input /ja "Convert" <me>')
send_command('bind @F1 input /ma "Thunder V" <t>')
send_command('bind @F2 input /ma "Blizzard V" <t>')
send_command('bind @F3 input /ma "Fire V" <t>')
send_command('bind @F4 input /ma "Aero V" <t>')
send_command('bind @F5 input /ma "Water V" <t>')
send_command('bind @F6 input /ma "Stone V" <t>')
send_command('bind @F9 input /ma "sleep" <stnpc>')
send_command('bind @F10 input /ma "sleep II" <stnpc>')
send_command('bind @F11 input /ma "Drain" <t>')
send_command('bind @F12 input /ma "Aspir II" <stnpc>')
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 @`')
end

-- Define sets and vars used by this job file.


function init_gear_sets()
--------------------------------------
-- Precast sets
--------------------------------------
-- Precast sets to enhance JAs
sets.precast.JA.Bolster = {body="Bagua Tunic"}
sets.precast.JA['Life cycle'] = {body="Geomancy Tunic", back="Nantosuelta's
cape"}
sets.precast.JA['Full circle'] = {head="Azimuth Hood +1",hands="Bagua Mi
taines"}
sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals"}
--lasting emanation
--ecliptic attrition
--collimated fervor
--blaze of glory
--dematerialize
--theurgic focus
--concentric pulse
--widened compass
--entrust

-- Fast cast sets for spells


sets.precast.FC = {ammo="Sapience Orb",
head="Haruspex Hat",ear2="Loquacious Earring",
body="Helios Jacket",
back="Lifestream Cape",legs="Geomancy pants",feet="Regal Pumps"}
sets.precast.FC.Cure = set_combine(sets.precast.FC, {back="Pahtli Cape"})
-- tamaxchi
-- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="S
toicheion Medal"})

-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
head="Jhakri Coronal +1",neck="Fotia Gorget",ear1="Bladeborn Earring",ea
r2="Steelflash Earring",
body="Jhakri Robe +1",hands="Jhakri Cuffs +1",ring1="Rajas Ring",ring2="
Karieyh Ring",
back="Pahtli Cape",waist="Fotia Belt",legs="Jhakri Slops +1",feet="Jhakr
i Pigaches +1"}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod ver
sion isn't found.
--Flash Nova (50% STR / 50% MND + MAB)
sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS, {--ammo="Seraph
ic Ampulla",
ear1="Friomisi Earring",ear2="Hecate's Earring"})
--Hexa Strike (30% STR / 30% MND)
sets.precast.WS['Hexa Strike'] = sets.precast.WS
-- Black Halo (70% MND / 30% STR)
sets.precast.WS['Black Halo'] = sets.precast.WS
-- Exudation (50% INT / 50% MND)
sets.precast.WS['Exudation'] = set_combine(sets.precast.WS, {--ammo="Ser
aphic Ampulla",
ring1="Diamond Ring",
back="Toro Cape"
})
-- Cataclysm (30% INT / 30% STR)
sets.precast.WS['Cataclysm'] = set_combine(sets.precast.WS, {
ring1="Diamond Ring",
back="Toro Cape"
})
-- Spirit Taker (50% INT / 50% MND)
sets.precast.WS['Spirit Taker'] = sets.precast.WS['Exudation']
-- Full Swing (50% STR)
sets.precast.WS['Full Swing'] = sets.precast.WS

--------------------------------------
-- Midcast sets
--------------------------------------
-- Base fast recast for spells
sets.midcast.FastRecast = set_combine(sets.precast.FC,{
ear2="Loquacious Earring",
back="Lifestream Cape"})
sets.midcast.Cure = {
ear1="Medicant's earring",ear2="Loquacious Earring",
body="Jhakri Robe +1",hands="Telchine Gloves",ring1="Leviathan R
ing",ring2="Lebeche Ring",
back="Solemnity Cape",legs="Psycloth Lappas",feet="Regal Pumps"}
sets.precast.Stoneskin = set_combine(sets.precast.FC.Cure, {
waist="Siegel Sash"
})
sets.midcast.Curaga = sets.midcast.Cure
-- sets.midcast.Protectra = {ring1="Sheltered Ring"}
-- sets.midcast.Shellra = {ring1="Sheltered Ring"}
sets.precast.Geomancy = set_combine(sets.precast.FC, {
range="Dunna",
head="Azimuth Hood +1",neck="Sanctity Necklace",ear1="Hecate's E
arring",ear2="Loquacious Earring",
body="Bagua Tunic",hands="Geomancy mitaines",left_ring="Acumen R
ing", right_ring="diamond Ring",
back="Lifestream Cape", waist="Acuity Belt", legs="Bagua Pants",
feet="Azimuth Gaiters"
})
sets.precast.Elemental = {--ammo="Seraphic Ampulla",
head="Geomancy Galero", neck="Sanctity Necklace", left_ear="Frio
misi Earring", right_ear="Hecate's Earring",
body="Azimuth Coat", hands="Jhakri Cuffs +1", left_ring="Acumen
Ring", right_ring="diamond Ring",
back="Toro Cape", waist="Acuity Belt", legs="Jhakri Slops +1", f
eet="Jhakri Pigaches +1"
}
sets.precast.Enfeebling = {--ammo="Clarus Stone",
head="Jhakri Coronal +1",neck="Imbodla Necklace",left_ear="Enfee
bling Earring",right_ear="Loquacious Earring",
body="Jhakri robe +1",hands="Azimuth Gloves",left_ring="Diamond
ring",right_ring="Snow Ring",
back="Lifestream Cape",waist="Acuity Belt",legs="Psycloth Lappas
",feet="Bagua Sandals"
}
sets.precast.Dark = {
head="Jhakri coronal +1",neck="Sanctity Necklace",left_ear="Gift
ed Earring",right_ear="Loquacious Earring",
body="Jhakri robe +1",hands="Jhakri Cuffs +1",left_ring="Diamond
ring",right_ring="Snow Ring",
back="Toro Cape",waist="Acuity Belt", legs="Jhakri Slops +1", fe
et="Jhakri Pigaches +1"
}
sets.precast.Aspir = set_combine(sets.precast.Dark, {
head="Bagua Galero",left_ear="Hirudinea Earring"
})
sets.precast.Drain = set_combine(sets.precast.Dark, {
head="Bagua Galero",left_ear="Hirudinea Earring"
})
-- sets.precast.new = {ammo="",
-- head="",neck="",left_ear="",right_ear="",
-- body="",hands="",left_ring="",right_ring="",
-- back="",waist="",legs="",feet=""
-- }
sets.precast.Geomancy.Indi = set_combine(sets.precast.Geomancy, {legs="Bagua
Pants",feet="Azimuth gaiters",back="Lifestream cape"})

--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------
-- Resting sets
sets.resting = {main="Pluto's staff",
body="Errant houppelande", ear1="Antivenom earring",
waist="Hierarch Belt"}

-- Idle sets
--bolebunga
sets.idle = {main="Solstice",sub="Culminus",range="Dunna",
head="Imperial Wing Hairpin +1",neck="Twilight torque",ear1="Gifted Earr
ing",ear2="Loquacious Earring",
body="Amalric Doublet",hands="Jhakri Cuffs +1",ring1="Rajas Ring",ring2=
"Gelatinous Ring",
back="Cheviot Cape",waist="Penitent's Rope",legs="Tatsumaki sitagoromo",
feet="Geomancy Sandals"}
sets.idle.PDT = set_combine(sets.idle, {
neck="Twilight Torque",ear1="Ethereal Earring",ear2="Phawaylla Earring",
ring1="Jelly Ring",ring2="Gelatinous Ring",
back="Cheviot Cape",legs="Tatsumaki sitagoromo"})
-- .Pet sets are for when Luopan is present.
sets.idle.Pet = set_combine(sets.idle.PDT, {
hands="Geomancy mitaines",legs="Psycloth Lappas"})
sets.idle.PDT.Pet = set_combine(sets.idle.Pet, {back="Lifestream Cape"})
-- .Indi sets are for when an Indi-spell is active.
sets.idle.Indi = set_combine(sets.idle, {legs="Bagua Pants"})
sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {legs="Bagua Pants"})
sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {legs="Bagua Pants"})
sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {legs="Bagua Pants"})
sets.idle.Town = set_combine(sets.idle, {head="Geomancy Galero",back="Lifest
ream Cape"})
sets.idle.Weak = sets.idle.PDT
-- Defense sets
sets.defense.PDT = sets.idle.PDT
-- sets.defense.MDT = {
-- head="Haruspex Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="
Loquacious Earring",
-- body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",
ring2="Shadow Ring",
-- back="Umbra Cape",waist="Goading Belt",legs="Bokwus Slops",feet="Hagon
des Sabots"}
sets.Kiting = {legs="Tatsumaki sitagoromo",feet="Geomancy Sandals"}
-- sets.latent_refresh = {waist="Fucho-no-obi"}

--------------------------------------
-- Engaged sets
--------------------------------------
-- Variations for TP weapon and (optional) offense/defense modes. Code will
fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode
should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = {
head="Jhakri Coronal +1",neck="Sanctity Necklace",ear1="Bladeborn Earrin
g",ear2="Steelflash Earring",
body="Jhakri Robe +1",hands="Jhakri Cuffs +1",ring1="Rajas Ring",ring2="
Ulthalam's Ring",
back="Cheviot Cape",waist="Windbuffet Belt +1",legs="Jhakri Slops +1",fe
et="Jhakri Pigaches +1"}
--------------------------------------
-- Custom buff sets
--------------------------------------
end
--------------------------------------------------------------------------------
-----------------------------------
-- Job-specific hooks for standard casting events.
--------------------------------------------------------------------------------
-----------------------------------
function job_aftercast(spell, action, spellMap, eventArgs)
if not spell.interrupted then
if spell.english:startswith('Indi') then
if not classes.CustomIdleGroups:contains('Indi') then
classes.CustomIdleGroups:append('Indi')
end
send_command('@timers d "'..indi_timer..'"')
indi_timer = spell.english
send_command('@timers c "'..indi_timer..'" '..indi_duration..' down
spells/00136.png')
elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
send_command('@timers c "'..spell.english..' ['..spell.target.name..
']" 60 down spells/00220.png')
elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
send_command('@timers c "'..spell.english..' ['..spell.target.name..
']" 90 down spells/00220.png')
end
elseif not player.indi then
classes.CustomIdleGroups:clear()
end
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 player.indi and not classes.CustomIdleGroups:contains('Indi')then
classes.CustomIdleGroups:append('Indi')
handle_equipping_gear(player.status)
elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
classes.CustomIdleGroups:clear()
handle_equipping_gear(player.status)
end
end
function job_state_change(stateField, newValue, oldValue)
if stateField == 'Offense Mode' then
if newValue == 'Normal' then
disable('main','sub','range')
else
enable('main','sub','range')
end
end
end
--------------------------------------------------------------------------------
-----------------------------------
-- User code that supplements standard library decisions.
--------------------------------------------------------------------------------
-----------------------------------
function job_get_spell_map(spell, default_spell_map)
if spell.action_type == 'Magic' then
if spell.english:startswith('Aspir') then
equip(sets.precast.Aspir)
elseif spell.english:startswith('Drain') then
equip(sets.precast.Drain)
elseif spell.english:startswith('Stoneskin') then
equip(sets.precast.Stoneskin)
elseif spell.skill == 'Dark Magic' then
equip(sets.precast.Dark)
elseif spell.skill == 'Elemental Magic' then
equip(sets.precast.Elemental)
elseif spell.skill == 'Enfeebling Magic' then
equip(sets.precast.Enfeebling)
elseif spell.english:startswith('Indi') then
return 'Indi'
end
elseif spell.skill == 'Geomancy' then
equip(sets.precast.Geomancy)
end
end
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type:lower() == 'action' then
if action.english:startswith('Bolster') then
equip(sets.precast.JA.Bolster)
elseif action.english:startswith('Life cycle') then
equip(sets.precast.JA['Life cycle'])
elseif action.english:startswith('Full circle') then
equip(sets.precast.JA['Full circle'])
elseif action.english:startswith('Radial Arcana') then
equip(sets.precast.JA['Radial Arcana'])
end
end
end
function customize_idle_set(idleSet)
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
classes.CustomIdleGroups:clear()
if player.indi then
classes.CustomIdleGroups:append('Indi')
end
end
-- Function to display the current relevant user state when doing an update.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end
--------------------------------------------------------------------------------
-----------------------------------
-- Utility functions specific to this job.
--------------------------------------------------------------------------------
-----------------------------------
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 5)
end

Das könnte Ihnen auch gefallen