However, I see it fluctuating all over the place:
Curing for 637, 637, 637, 715, 737, then randomly 875
None of these Cures took the player to 100% hp and their player was not swapping gear.
Any help would be greatly appreciated. Here's my lua:
Code
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- ELEMENTAL PROPERTIES OF MONSTER ENFEEBLES --
-- Enfeeble Element
-- Addle Fire
-- Amnesia Fire
-- Bind Ice
-- Blind Dark
-- Curse Dark
-- Gravity Wind
-- Paralysis Ice
-- Plague Fire
-- Petrification Earth
-- Poison Water
-- Silence Wind
-- Sleep Dark
-- Slow Earth
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Mappings.lua')
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['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
Cures = S{'Cure','Cure II','Cure III','Cure IV','Cure V','Cure VI'}
Curagas = S{'Curaga','Curaga II','Curaga III','Curaga IV','Curaga V','Cura','Cura II','Cura III'}
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('None', 'Normal')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT')
select_default_macro_book()
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Fast cast sets for spells
sets.precast.FC = {
sub="Vivid Strap",
main="Marin Staff",
ammo="Impatiens",
head="Nahtirah Hat",
neck="Orison Locket",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Rosette Jaseran",
hands="Gendewitha gages +1",
ring1="Prolix Ring",
ring2="Weatherspoon Ring",
back="Alaunus's Cape",
waist="Witful Belt",
legs="Lengo Pants",
feet="Regal Pumps"}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
sets.precast.FC.Stoneskin = set_combine(sets.precast.FC['Enhancing Magic'], {head="Umuthi Hat", legs="Haven hose"})
sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, { legs="Ebers Pant. +1",
back="Disperser's Cape"})
sets.precast.FC.StatusRemoval = sets.precast.FC['Healing Magic']
sets.precast.FC.Cure = set_combine(sets.precast.FC['Healing Magic'], {
main="Ababinili +1",
sub="Dominie's Grip",
ammo="Impatiens",
hands="Gendewitha gages +1",
head="Kaykaus Mitra",
feet="Hygieia Clogs",
ear1="Enchanter Earring +1",
ear2="Mendi. Earring",
legs="Ebers Pant. +1",
back="Disperser's Cape",
body="Heka's Kalasiris"})
sets.precast.FC.Curaga = sets.precast.FC.Cure
sets.precast.FC.CureSolace = sets.precast.FC.Cure
-- CureMelee spell map should default back to Healing Magic.
-- Precast sets to enhance JAs
sets.precast.JA.Benediction = {body="Piety Briault"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {
head="Nahtirah Hat",
ear1="Roundel Earring",
body="Vanir Cotehardie",
hands="Yaoyotl Gloves",
back="Refraction Cape",
legs="Gendewitha Spats",
feet="Gende. Galosh. +1"}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
gear.default.weaponskill_neck = "Asperity Necklace"
gear.default.weaponskill_waist = ""
sets.precast.WS = {
head="Nahtirah Hat",
neck="Fotia Gorget",
ear1="Bladeborn Earring",
ear2="Steelflash Earring",
body="Vanir Cotehardie",
hands="Yaoyotl Gloves",
ring1="Rajas Ring",
ring2="K'ayres Ring",
back="Refraction Cape",
waist=gear.ElementalBelt,
legs="Gendewitha Spats",
feet="Gende. Galosh. +1"}
sets.precast.WS['Flash Nova'] = {
head="Nahtirah Hat",
neck="Fotia Gorget",
ear1="Friomisi Earring",
ear2="Hecate's Earring",
body="Vanir Cotehardie",
hands="Yaoyotl Gloves",
ring1="Rajas Ring",
ring2="Strendu Ring",
back="Toro Cape",
waist="Thunder Belt",
legs="Gendewitha Spats",
feet="Gende. Galosh. +1"}
-- Midcast Sets
sets.midcast.FastRecast = {
head="Nahtirah Hat",
ear1="Enchanter earring +1",
ear2="Loquacious Earring",
body="Rosette Jaseran",
hands="Gendewitha Gages +1",
ring1="Prolix Ring",
ring2="Weatherspoon Ring",
back="Alaunus's Cape",
waist="Witful belt",
legs="Artsieq hose",
feet="Regal Pumps"}
-- Cure sets
sets.midcast.CureSolace = {
main="Queller Rod",
sub="Sors Shield",
ammo="Esper Stone +1",
head="Kaykaus Mitra",
neck="Imbodla Necklace",
ear1="Glorious Earring",
ear2="Nourishing Earring +1",
body="Ebers Bliaud +1",
hands="Kaykaus Cuffs",
ring1="Sirona's Ring",
ring2="Haoma's Ring",
back="Alaunus's Cape",
waist="Bishop's Sash",
legs="Ebers Pant. +1",
feet="Vanya Clogs"}
sets.midcast.Cure = {
main="Queller Rod",
sub="Sors Shield",
ammo="Esper Stone +1",
head="Kaykaus Mitra",
neck="Imbodla Necklace",
ear1="Glorious Earring",
ear2="Lifestorm Earring",
body="Heka's kalasiris",
hands="Kaykaus Cuffs",
ring1="Sirona's Ring",
ring2="Haoma's Ring",
back="Mending Cape",
waist="Bishop's Sash",
legs="Ebers Pant. +1",
feet="Vanya Clogs"}
sets.midcast.Curaga = {
main="Ababinili +1",
sub="Achaq Grip",
ammo="Esper Stone +1",
head="Kaykaus Mitra",
neck="Imbodla Necklace",
ear1="Glorious Earring",
ear2="Mendi. Earring",
body="Heka's kalasiris",
hands="Gendewitha Gages +1",
ring1="Sirona's Ring",
ring2="Haoma's Ring",
back="Mending Cape",
waist="Pythia Sash +1",
legs="Ebers Pant. +1",
feet="Vanya Clogs"}
sets.midcast.CureWeather = { main="Chatoyant Staff",
sub="Achaq Grip",
ammo="Esper Stone +1",
head="Kaykaus Mitra",
neck="Imbodla Necklace",
ear1="Glorious Earring",
ear2="Nourishing Earring +1",
body="Ebers Bliaud +1",
hands="Bokwus Gloves",
ring1="Sirona's Ring",
ring2="Haoma's Ring",
back="Twilight Cape",
waist="Hachirin-no-Obi",
legs="Ebers Pant. +1",
feet="Vanya Clogs"}
sets.midcast.CureMelee = { ammo="Esper Stone +1",
head="Kaykaus Mitra",
neck="Orison Locket",
ear1="Lifestorm Earring",
ear2="Mendi. Earring",
body="Vanir Cotehardie",
hands="Bokwus Gloves",
ring1="Prolix Ring",
ring2="Sirona's Ring",
back="Tuilha Cape",
waist="Bishop's Sash",
legs="Ebers Pant. +1",
feet="Vanya Clogs"}
sets.midcast.Cursna = { main="Beneficus",
sub="Thuellaic Ecu +1",
head="Orison Cap +2",
neck="Malison Medallion",
body="Ebers Bliaud +1",
hands="Fanatic Gloves",
ear2="Enchanter earring +1",
ring1="Haoma's ring",
ring2="Haoma's ring",
back="Alaunus's Cape",
waist="Bishop's Sash",
legs="Theophany Pantaloons +1",
feet="Gende. Galosh. +1"}
sets.midcast.StatusRemoval = { body="Rosette Jaseran",
waist="Witful Belt",
hands="Inyanga dastanas +1",
head="Ebers Cap +1",
legs="Ebers Pant. +1",
back="Alaunus's Cape"}
-- 110 total Enhancing Magic Skill; caps even without Light Arts
sets.midcast['Enhancing Magic'] = {
main="Beneficus",
sub="Thuellaic Ecu +1",
ammo="Incantor stone",
head="Befouled Crown",
neck="Colossus's Torque",
body="Hyksos Robe",
hands="Dynasty mitts",
back="Mending Cape",
waist="Olympus Sash",
legs="Artsieq hose",
feet="Piety Duckbills +1"}
sets.midcast.Stoneskin = {
head="Umuthi Hat",
neck="Orison Locket",
ear1="Lifestorm earring",
ear2="Loquacious Earring",
body="Hyksos Robe",
hands="Dynasty Mitts",
back="Mending Cape",
waist="Siegel Sash",
legs="Haven hose",
feet="Piety Duckbills +1"}
sets.midcast.Aquaveil = {
head="Umuthi Hat",
neck="Orison Locket",
ear1="Lifestorm earring",
ear2="Loquacious Earring",
body="Hyksos Robe",
hands="Dynasty Mitts",
back="Mending Cape",
waist="Emphatikos Rope",
legs="Haven hose",
feet="Piety Duckbills +1"}
sets.midcast.Auspice = {hands="Dynasty Mitts",feet="Orison Duckbills +2"}
sets.midcast.BarElement = {
main="Beneficus",
sub="Thuellaic Ecu +1",
head="Ebers Cap +1",
neck="Colossus's Torque",
body="Ebers Bliaud +1",
hands="Inyanga dastanas +1",
back="Mending Cape",
waist="Olympus Sash",
legs="Piety Pantaloons +1",
feet="Gende. Galosh. +1"}
sets.midcast.Regen = {
main="Bolelabunga",
sub="Thuellaic Ecu +1",
body="Telchine Chasuble",
head="Telchine Cap",
back="Mending Cape",
hands="Orison Mitts +2",
legs="Theo. Pantaloons +1"}
sets.midcast.Protectra = {ring1="Sheltered Ring",feet="Piety Duckbills +1"}
sets.midcast.Shellra = {ring1="Sheltered Ring",legs="Piety Pantaloons +1"}
sets.midcast['Divine Magic'] = {main="Divinity",
sub="Thuellaic Ecu +1",
head="Telchine Cap",
neck="Colossus's Torque",
ear1="Psystorm Earring",
ear2="Lifestorm Earring",
body="Vanir Cotehardie",
hands="Inyanga dastanas +1",
ring2="Sangoma Ring",
back="Mending Cape",
waist=gear.ElementalObi,
legs="Theo. Pantaloons +1",
feet="Gende. Galosh. +1"}
sets.midcast['Dark Magic'] = { main="Rubicundity",
sub="Thuellaic Ecu +1",
head="Telchine Cap",
neck="Aesir Torque",
ear1="Psystorm Earring",
ear2="Lifestorm Earring",
body="Vanir Cotehardie",
hands="Inyanga dastanas +1",
ring1="Strendu Ring",
ring2="Sangoma Ring",
back="Alaunus's Cape",
waist="Demonry Sash",
legs="Artsieq Hose",
feet="Piety Duckbills +1"}
-- Custom spell classes
sets.midcast.MndEnfeebles = {main="Serenity",
sub="Mephitis Grip",
head="Befouled Crown",
neck="Imbodla necklace",
ear1="Psystorm Earring",
ear2="Lifestorm Earring",
body="Ischemia Chasuble",
hands="Inyanga dastanas +1",
ring1="Globidonta Ring",
ring2="Sangoma Ring",
back="Alaunus's Cape",
waist="Demonry Sash",
legs="Bokwus Slops",
feet="Piety Duckbills +1"}
sets.midcast.IntEnfeebles = { main="Serenity",
sub="Mephitis Grip",
head="Befouled Crown",
neck="Imbodla necklace",
ear1="Psystorm Earring",
ear2="Lifestorm Earring",
body="Ischemia Chasuble",
hands="Inyanga dastanas +1",
ring1="Globidonta Ring",
ring2="Sangoma Ring",
back="Refraction Cape",
waist="Demonry Sash",
legs="Bokwus Slops",
feet="Piety Duckbills +1"}
sets.midcast['Elemental Magic'] = { main="Serenity",
sub="Willpower Grip",
ammo="Dosis Tathlum",
head="Hagondes Hat +1",
neck="Eddy Necklace",
ear1="Barkaro. Earring",
ear2="Friomisi Earring",
body="Wicce Coat",
hands="Inyanga dastanas +1",
ring1="Strendu ring",
ring2="Acumen Ring",
back="Bane Cape",
waist="Yamabuki-no-obi",
legs="Lengo Pants +1",
feet="Helios Boots"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {
main="Queller Rod",
head="Gendewitha Caubeen +1",
body="Artsieq Jubbah",
hands="Serpentes Cuffs",
waist="Austerity Belt",
legs="Gendewitha Spats",
back="Repulse Mantle",
feet="Gende. Galosh. +1"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle = {
main="Queller Rod",
sub="Genbu's Shield",
ammo="Incantor Stone",
head="Befouled Crown",
neck="Twilight Torque",
ear1="Glorious Earring",
ear2="Infused Earring",
body="Ebers Bliaud +1",
hands="Serpentes Cuffs",
ring1="Dark Ring",
ring2="Dark ring",
back="Repulse Mantle",
waist="Fucho-no-obi",
legs="Assiduity Pants +1",
feet="Serpentes Sabots"}
sets.idle.PDT = {
main="Queller Rod",
sub="Genbu's Shield",
ammo="Incantor Stone",
head="Gendewitha caubeen +1",
neck="Twilight Torque",
ear1="Bloodgem Earring",
ear2="Loquacious Earring",
body="Ebers Bliaud +1",
hands="Gendewitha Gages",
ring1="Dark ring",
ring2="Dark ring",
back="Repulse Mantle",
waist="Fucho-no-obi",
legs="Gendewitha Spats",
feet="Herald's Gaiters"}
sets.idle.Town = {
main="Queller Rod",
sub="Sors Shield",
ammo="Incantor Stone",
head="Ebers Cap +1",
neck="Twilight Torque",
ear1="Enchanter Earring +1",
ear2="Glorious Earring",
body="Councilor's garb",
hands="Inyanga dastanas +1",
ring1="Globidonta Ring",
ring2="Weatherspoon Ring",
back="Alaunus's Cape",
waist="Fucho-no-obi",
legs="Ebers Pant. +1",
feet="Vanya Clogs"}
sets.idle.Weak = {
main="Queller Rod",
sub="Genbu's Shield",
ammo="Incantor Stone",
head="Befouled Crown",
neck="Twilight Torque",
ear1="Glorious Earring",
ear2="Infused Earring",
body="Ebers Bliaud +1",
hands="Serpentes Cuffs",
ring1="Dark Ring",
ring2="Dark ring",
back="Repulse Mantle",
waist="Fucho-no-obi",
legs="Assiduity Pants +1",
feet="Serpentes Sabots"}
-- Defense sets
sets.defense.PDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Gendewitha Caubeen",neck="Twilight Torque",
body="Arsieq Jubbah",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Umbra Cape",legs="Gendewitha Spats",feet="Gende. Galosh. +1 +1"}
sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Nahtirah Hat",neck="Twilight Torque",
body="Arsieq Jubbah",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Tuilha Cape",legs="Bokwus Slops",feet="Gende. Galosh. +1"}
sets.Kiting = {feet="Herald's Gaiters"}
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
-- Basic set for if no TP weapon is defined.
sets.engaged = {
main="Divinity",
sub="Genbu's Shield",
head="Gendewitha Caubeen +1",
neck="Iqabi Necklace",
ear1="Dudgeon Earring",
ear2="Heartseeker Earring",
body="Ischemia Chasuble",
hands="Gendewitha Gages +1",
ring1="Rajas Ring",
ring2="K'ayres Ring",
back="Umbra Cape",
waist="Windbuffet Belt +1",
legs="Gendewitha Spats",
feet="Gende. Galosh. +1"}
-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
sets.buff['Divine Caress'] = {hands="Orison Mitts +2",back="Mending Cape"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- 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)
if spell.english == "Paralyna" and buffactive.Paralyzed then
-- no gear swaps if we're paralyzed, to avoid blinking while trying to remove it.
eventArgs.handled = true
end
end
--[[function job_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Healing Magic' then
if Cures:contains(spell.name) then
if world.day == 'Lightsday' or world.weather_element == 'Light' or buffactive == 'Aurorastorm' then
equip(sets.midcast.CureWeather)
elseif buffactive['Afflatus Solace'] then
equip(sets.midcast.CureSolace)
end
end
if Curagas:contains(spell.name) then
if world.day == 'Lightsday' or world.weather_element == 'Light' or buffactive == 'Aurorastorm' then
equip(sets.midcast.CureWithLightWeather)
else
equip(sets.midcast.Curaga)
end
end
end
end]]
function job_post_midcast(spell, action, spellMap, eventArgs)
-- Apply Divine Caress boosting items as highest priority over other gear, if applicable.
if spellMap == 'StatusRemoval' and buffactive['Divine Caress'] then
equip(sets.buff['Divine Caress'])
end
if spell.skill == 'Healing Magic' then
if spell.english:startswith('Cure') or spell.english:startswith('Cura') then
if world.day == 'Lightsday' or world.weather_element == 'Light' then
equip(sets.midcast.CureWeather)
elseif buffactive['Afflatus Solace'] then
equip(sets.midcast.CureSolace)
end
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Handle notifications of general user state change.
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.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
if spell.action_type == 'Magic' then
if (default_spell_map == 'Cure' or default_spell_map == 'Curaga') and (world.day == 'Lightsday' or world.weather_element == 'Light' or buffactive == 'Aurorastorm') then
return "CureWeather"
elseif (default_spell_map == 'Cure' or default_spell_map == 'Curaga') and player.status == 'Engaged' then
return "CureMelee"
elseif default_spell_map == 'Cure' and state.Buff['Afflatus Solace'] then
return "CureSolace"
elseif spell.skill == "Enfeebling Magic" then
if spell.type == "WhiteMagic" then
return "MndEnfeebles"
else
return "IntEnfeebles"
end
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)
if cmdParams[1] == 'user' and not areas.Cities:contains(world.area) then
local needsArts =
player.sub_job:lower() == 'sch' and
not buffactive['Light Arts'] and
not buffactive['Addendum: White'] and
not buffactive['Dark Arts'] and
not buffactive['Addendum: Black']
if not buffactive['Afflatus Solace'] and not buffactive['Afflatus Misery'] then
if needsArts then
send_command('@input /ja "Afflatus Solace" <me>;wait 1.2;input /ja "Light Arts" <me>')
else
send_command('@input /ja "Afflatus Solace" <me>')
end
end
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
organizer_items = {
"Shihei",
"Echo Drops",
"Marin Staff",
item="Coalition Ether",
"Coalition Ether",
"Sole Sushi",
"Sole Sushi +1",
"Mecisto. Mantle",
"Coalition Ether",
"Coalition Ether",
"Capacity Ring",
"Trizek Ring",
"Reraise Earring"}
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'SCH' then
set_macro_page(2, 5)
elseif player.sub_job == 'RDM' then
set_macro_page(2, 6)
elseif player.sub_job == 'NIN' then
set_macro_page(2, 7)
else
set_macro_page(2, 5)
end
end