|
Gearswap Support Thread
By Selindrile 2016-08-08 08:41:36
@Akivatoo in this case your self_healing is just being called in your post midcast, your self_healing.DT is never actually being told to be used anywhere, try this for your post midcast:
Code function job_post_midcast(spell, action, spellMap, eventArgs)
if spellMap == 'Cure' and spell.target.type == 'SELF' then
if options.CastingModes.value == 'DT' then
equip(sets.self_healing.dt)
else
equip(sets.self_healing)
end
end
You don't need that bit checking if the sets exist, you know they do within this file, that's only if you wanted to make self_healing handled more generically in a global or something.
By Selindrile 2016-08-08 09:30:07
This may not be the place for this question, but it's at least somewhat related, anyone know how to use auto-translate with windower inputs?
Trying to standardize my way of doing sch skillchains with my LS's for the Blms benefit, but our other scholars use a lot of auto translate, whereas I prefer to just be able to type //fusion etc.
I found one guide, but it was way outdated, and didn't seem to work.
By stuntmandan 2016-08-08 10:51:57
I was wondering if there is a way to make a toggle for barspells, barstatus, boosts, and gains like for Rune Fencer's rune enhancements.
Carbuncle.Akivatoo
サーバ: Carbuncle
Game: FFXI
Posts: 263
By Carbuncle.Akivatoo 2016-08-08 12:40:34
function job_post_midcast(spell, action, spellMap, eventArgs)
if spellMap == 'Cure' and spell.target.type == 'SELF' then
if options.CastingModes.value == 'DT' then
equip(sets.self_healing.DT)
else
equip(sets.self_healing)
end
end didn't work, but thanx for try.
any suggestion ?
By Selindrile 2016-08-08 12:56:35
@Akivatoo I'm not sure why that wouldn't work, perhaps post your whole GS?
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-08-08 14:16:30
I was wondering if there is a way to make a toggle for barspells, barstatus, boosts, and gains like for Rune Fencer's rune enhancements.
This is too vague. If you want to request a certain sort of function, I may be able to help you, but I don't understand the reference you seem to be making.
Carbuncle.Akivatoo said: »hello everyone,
that took me few time to manage casting mode pld.
but i still encouter problem on it.
"sets.self_healing.DT" didn't work and idk why.
can anyone have tips to fix it ?
Code
options.CastingModes = {'Normal', 'DT'}
--i think problem is here:
function job_post_midcast(spell, action, spellMap, eventArgs)
if spellMap == 'Cure' and spell.target.type == 'SELF' and sets.self_healing then
equip(sets.self_healing)
end
end
sets.midcast.Cure =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands="Macabre Gaunt. +1",
legs={ name="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Odyssean Greaves", augments={'Potency of "Cure" effect received+6%','MND+2','Mag. Acc.+8','"Mag.Atk.Bns."+3',}},
neck="Incanter's Torque",
waist="Hachirin-no-obi",
left_ear="Nourish. Earring +1",
right_ear="Mendi. Earring",
left_ring="Vocane Ring",
right_ring="Stikini Ring",
back="Solemnity Cape",
}
sets.midcast.Cure.DT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands="Macabre Gaunt. +1",
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear="Nourish. Earring +1",
right_ear="Mendi. Earring",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Solemnity Cape",
}
sets.self_healing = set_combine(sets.midcast.Cure, {waist="Gishdubar Sash", right_ear="Oneiros Earring", neck="Phalaina Locket"})
sets.self_healing.DT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands="Macabre Gaunt. +1",
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Phalaina Locket",
waist="Gishdubar Sash",
left_ear="Nourish. Earring +1",
right_ear="Oneiros Earring",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Solemnity Cape",
}
I haven't worked with Mote's much, but I'm fairly certain that you're not using modes the way they are supposed to be... The options table is for static values. You're just making a table, and I have no idea what you're doing with that table without seeing what else you have.
The modes that Mote provides are the ones you are supposed to use for variables like this. You could conceivably create your own, but I don't see any point off hand to not use the CastingMode state. Code state.CastingMode:options('Normal', 'DT')
state.CastingMode.value would return the current value. But you wouldn't need to bother with that if you utilize custom spell maps.
Code function job_get_spell_map(spell, default_spell_map)
if default_spell_map == 'Cure' and spell.target_type == 'SELF' then
return 'self_healing'
end
end
Then you can get rid of the job_post_midcast function, and rename your sets to sets.midcast.self_healing and sets.midcast.self_healing.DT
By stuntmandan 2016-08-08 17:31:11
My bad what I meant was, if there was a way to make a quick macro for barspells, boosts and gains to be able to cycle through them. For my Rune Fencer I have 2 macros for rune enhancements.
/console gs c cycle Runes
and
/console gs c rune
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-08-09 04:08:20
Sounds like you are using Mote, but I cannot find anything like that in his own RUN example (or any other file), so I don't really know how it is set up. Based on the includes, I think you'd set the variables up like this
Code state.Barspell = M{['description'] = 'Barspell'}
state.Barspell:options('Barfira','Barblizzara','etc')
Then catch whatever command you want to use from in your job_self_command (I wrote it assuming you use shortcuts). Code function job_self_command(commandArgs, eventArgs)
if commandArgs[1]=='barspell' then
send_command(state.Barspell.value)
end
end
And just use the same general template for the other ones you want.
Carbuncle.Akivatoo
サーバ: Carbuncle
Game: FFXI
Posts: 263
By Carbuncle.Akivatoo 2016-08-09 10:11:22
@Akivatoo I'm not sure why that wouldn't work, perhaps post your whole GS?
Code require 'organizer-lib'
---------------------------------------------------------------------------------------------------------------------------------------
-------------------------------- 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
send_command('input //lockstyleset 14')
-- 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.DefenseModes = {'Normal', 'PDT'}
options.WeaponskillModes = {'Normal', 'Acc'}
options.CastingModes = {'Normal', 'DT'}
options.IdleModes = {'Normal'}
options.RestingModes = {'Normal'}
options.PhysicalDefenseModes = {'Aegis', 'Srivatsa', 'Ochain'}
options.MagicalDefenseModes = {'MDT' ,'BDT' }
options.HybridDefenseModes = {'None', 'Reraise',}
options.BreathDefenseModes = {'BDT'}
state.Defense.PhysicalMode = 'None'
state.HybridDefenseMode = 'None'
state.BreathDefenseModes = 'BDT'
send_command('bind f12 gs c cycle MagicalDefense')
send_command('bind ^= gs c activate MDT')
select_default_macro_book()
end
function user_unload()
send_command('unbind `')
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind ^-')
send_command('unbind !-')
send_command('unbind ^=')
send_command('unbind !=')
send_command('unbind delete')
send_command('unbind end')
send_command('unbind home')
end
-- Define sets and vars used by this job file.
function job_setup()
include('caster_buffWatcher.lua')
include('common_info.status.lua')
buffWatcher.watchList =
{
["Enlight II"]="Enlight II",
["Crusade"]="Crusade",
["Phalanx"]="Phalanx",
["Protect"]="Protect V",
["Shell"]="Shell IV",
}
end
--------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------Precast sets-----------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------
function init_gear_sets()
-- Precast sets to enhance JAs
sets.precast.JA['Invincible'] = set_combine(sets.precast.JA['Provoke'], {legs="Cab. Breeches +1"})
sets.precast.JA['Holy Circle'] = set_combine(sets.precast.JA['Provoke'], {feet="Rev. Leggings +1"})
sets.precast.JA['Shield Bash'] = set_combine(sets.precast.JA['Provoke'], {hands="Cab. Gauntlets +1", left_ear="Knightly Earring", left_ring="Guardian's Ring",right_ring="Fenian Ring"})
sets.precast.JA['Intervene'] = sets.precast.JA['Shield Bash']
sets.precast.JA['Sentinel'] = set_combine(sets.precast.JA['Provoke'], {feet="Cab. Leggings +1"})
--The amount of damage absorbed is variable, determined by VIT*2
sets.precast.JA['Rampart'] =
{
ammo="Iron Gobbet",
head={ name="Cab. Coronet +1", augments={'Enhances "Iron Will" effect',}},
body={ name="Souveran Cuirass", augments={'VIT+10','Attack+20','"Refresh"+2',}},
hands="Chev. Gauntlets +1",
legs={ name="Odyssean Cuisses", augments={'Damage taken-2%','VIT+15',}},
feet={ name="Odyssean Greaves", augments={'Accuracy+5 Attack+5','"Dbl.Atk."+4','VIT+15',}},
neck="Unmoving Collar +1",
waist="Latria Sash",
left_ear="Terra's Pearl",
right_ear="Terra's Pearl",
left_ring="Titan Ring +1",
right_ring="Titan Ring +1",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
sets.buff['Rampart'] = sets.precast.JA['Rampart']
sets.precast.JA['Fealty'] = set_combine(sets.precast.JA['Provoke'], {feet="Chev. Sabatons +1",})
sets.precast.JA['Divine Emblem'] = set_combine(sets.precast.JA['Provoke'], {feet="Chev. Sabatons +1"})
--15 + min(max(floor((user VIT + user MND - target VIT*2)/4),0),15)
sets.precast.JA['Cover'] = set_combine(sets.precast.JA['Rampart'], {head="Rev. Coronet +1", body="Cab. Surcoat +1"})
sets.buff['Cover'] = sets.precast.JA['Cover']
-- add MND for Chivalry
sets.precast.JA['Chivalry'] =
{
ammo="Strobilus",
head="Jumalik Helm",
body="Rev. Surcoat +1",
hands={ name="Cab. Gauntlets +1", augments={'Enhances "Chivalry" effect',}},
legs={ name="Cab. Breeches +1", augments={'Enhances "Invincible" effect',}},
feet="Odyssean Greaves",
neck="Dualism Collar +1",
waist="Creed Baudrier",
left_ear="Halasz Earring",
right_ear="Nourish. Earring +1",
left_ring="Levia. Ring +1",
right_ring="Globidonta Ring",
back={ name="Weard Mantle", augments={'VIT+5','DEX+3','Phalanx +5',}}
}
------------------------ Sub WAR ------------------------
sets.precast.JA['Provoke'] = --enmity +121
{
ammo="Iron Gobbet",
head="Loess Barbuta +1",
body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
hands={ name="Yorium Gauntlets", augments={'Enmity+10','Phalanx +3',}},
legs={ name="Odyssean Cuisses", augments={'Attack+24','Enmity+8','Accuracy+10',}},
feet={ name="Eschite Greaves", augments={'HP+80','Enmity+7','Phys. dmg. taken -4',}},
neck="Unmoving Collar +1",
waist="Creed Baudrier",
left_ear="Trux Earring",
right_ear="Cryptic Earring",
left_ring="Apeile Ring",
right_ring="Apeile Ring +1",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
sets.precast.JA['Warcry'] = sets.precast.JA['Provoke']
sets.precast.JA['Defender'] = sets.precast.JA['Provoke']
------------------------ Sub DNC ------------------------
-- Waltz set (chr and vit)
sets.precast.Waltz =
{
ammo="Iron Gobbet",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
hands="Chev. Gauntlets +1",
legs={ name="Cab. Breeches +1", augments={'Enhances "Invincible" effect',}},
feet={ name="Odyssean Greaves", augments={'Accuracy+5 Attack+5','"Dbl.Atk."+4','VIT+15',}},
neck="Unmoving Collar +1",
waist="Latria Sash",
left_ear="Terra's Pearl",
right_ear="Terra's Pearl",
left_ring="Titan Ring +1",
right_ring="Titan Ring +1",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
-- Special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = sets.precast.Waltz
sets.precast.Step = sets.precast.JA['Provoke']
sets.precast.Flourish1 = sets.precast.Step
------------------------ Sub RUN ------------------------
sets.precast.JA['Ignis'] = sets.precast.JA['Provoke']
sets.precast.JA['Gelus'] = sets.precast.JA['Provoke']
sets.precast.JA['Flabra'] = sets.precast.JA['Provoke']
sets.precast.JA['Tellus'] = sets.precast.JA['Provoke']
sets.precast.JA['Sulpor'] = sets.precast.JA['Provoke']
sets.precast.JA['Unda'] = sets.precast.JA['Provoke']
sets.precast.JA['Lux'] = sets.precast.JA['Provoke']
sets.precast.JA['Tenebrae'] = sets.precast.JA['Provoke']
sets.precast.JA['Vallation'] = sets.precast.JA['Provoke']
sets.precast.JA['Pflug'] = sets.precast.JA['Provoke']
-- Fast cast sets for spells 2177HP FC+59/80 //OQC+8/10
sets.precast.FC =
{
ammo="Impatiens",
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Odyss. Chestplate", augments={'Mag. Acc.+15','"Fast Cast"+6',}},
hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
legs="Enif Cosciales",
feet={ name="Odyssean Greaves", augments={'"Mag.Atk.Bns."+10','"Fast Cast"+6',}},
neck="Orunmila's Torque",
waist={name="Creed Baudrier",priority=2},
left_ear={ name="Moonshade Earring", augments={'MP+25','Occ. quickens spellcasting +3%',}},
right_ear="Enchntr. Earring +1",
left_ring="Lebeche Ring",
right_ring="Veneficium Ring",
back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10',}},
}
sets.precast.FC.DT =
{
ammo="Impatiens",
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Odyss. Chestplate", augments={'Mag. Acc.+15','"Fast Cast"+6',}},
hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Odyssean Greaves", augments={'"Mag.Atk.Bns."+10','"Fast Cast"+6',}},
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear={ name="Moonshade Earring", augments={'MP+25','Occ. quickens spellcasting +3%',}},
right_ear="Enchntr. Earring +1",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10',}},
}
sets.precast.FC.Phalanx = set_combine(sets.precast.FC , {waist="Siegel Sash",})
sets.precast.FC.Enlight = sets.precast.FC.Phalanx
sets.precast.FC['Enlight II'] = sets.precast.FC.Enlight
sets.precast.FC.Protect = sets.precast.FC.Phalanx
sets.precast.FC.Shell = sets.precast.FC.Phalanx
sets.precast.FC.Crusade = sets.precast.FC.Phalanx
sets.precast.FC.Cure =
{
ammo="Impatiens",
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
legs="Enif Cosciales",
feet={ name="Odyssean Greaves", augments={'"Mag.Atk.Bns."+10','"Fast Cast"+6',}},
neck="Orunmila's Torque",
waist="Acerbic Sash +1",
left_ear="Nourish. Earring +1",
right_ear="Mendi. Earring",
left_ring="Lebeche Ring",
right_ring="Veneficium Ring",
back={ name="Rudianos's Mantle", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10',}},
}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS =
{
ammo="Paeapua",
head="Ynglinga Sallet",
body="Sulevia's Plate. +1",
hands="Sulev. Gauntlets +1",
legs="Sulevi. Cuisses +1",
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Rajas Ring",
right_ring="Ifrit Ring +1",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
--Stat Modifier: 73~85% MND fTP: 1.0
sets.precast.WS['Requiescat'] =
{
ammo="Paeapua",
head="Ynglinga Sallet",
body={ name="Valorous Mail", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+10','DEX+3','Accuracy+6',}},
hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
legs={ name="Cab. Breeches +1", augments={'Enhances "Invincible" effect',}},
feet="Sulevia's Leggings +1",
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Rufescent Ring",
right_ring="Levia. Ring +1",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
}
--Stat Modifier: 50%MND / 30%STR MAB+ fTP:2.75
sets.precast.WS['Sanguine Blade'] =
{
ammo="Pemphredo Tathlum",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+29','Accuracy+24','Accuracy+17 Attack+17','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Crematio Earring",
right_ear="Friomisi Earring",
left_ring="Shiva Ring +1",
right_ring="Shiva Ring +1",
back="Toro Cape",
}
sets.precast.WS['Aeolian Edge'] =
{
ammo="Pemphredo Tathlum",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+29','Accuracy+24','Accuracy+17 Attack+17','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Crematio Earring",
right_ear="Friomisi Earring",
left_ring="Shiva Ring +1",
right_ring="Shiva Ring +1",
back="Toro Cape",
}
--Stat Modifier: 50%MND / 50%STR fTP: 1000:4.0 2000:10.25 3000:13.75
sets.precast.WS['Savage Blade'] =
{
ammo="Paeapua",
head="Ynglinga Sallet",
body={ name="Valorous Mail", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+10','DEX+3','Accuracy+6',}},
hands="Sulev. Gauntlets +1",
legs="Sulevi. Cuisses +1",
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Ishvara Earring",
right_ear="Odnowa Earring +1",
left_ring="Rajas Ring",
right_ring="Ifrit Ring +1",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
}
--Stat Modifier: 80%DEX fTP:2.25
sets.precast.WS['Chant du Cygne'] =
{
ammo="Paeapua",
head="Ynglinga Sallet",
body={ name="Valorous Mail", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+10','DEX+3','Accuracy+6',}},
hands="Sulev. Gauntlets +1",
legs="Sulevi. Cuisses +1",
feet="Sulev. Leggings +1",
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Rajas Ring",
right_ring="Ramuh Ring +1",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
}
--Stat Modifier: WS damage + 30/31% 2025DMG maxaggro
sets.precast.WS['Atonement'] =
{
ammo="Iron Gobbet",
head={ name="Odyssean Helm", augments={'Attack+25','Weapon skill damage +5%','Accuracy+2',}}, --Weapon skill damage 5/5%
body="Phorcys Korazin", --Weapon skill damage +7%
hands={ name="Odyssean Gauntlets", augments={'Weapon skill damage +5%','VIT+4','Accuracy+11','Attack+14',}}, --Weapon skill damage 7/7%
legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+11','Weapon skill damage +5%','STR+9','Accuracy+2',}}, --Weapon skill damage 5/5% --Weapon skill damage +5%
feet="Sulevia's Leggings +1", --Weapon skill damage 6/6%
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear="Cryptic Earring",
right_ear="Ishvara Earring", --Weapon skill damage 2%
left_ring="Apeile Ring",
right_ring="Apeile Ring +1",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},
}
------------------------------------------------------------------------------------------------
-----------------------------------------Midcast sets-------------------------------------------
------------------------------------------------------------------------------------------------
sets.midcast.FastRecast =
{
ammo="Staunch Tathlum",
head="Chev. Armet +1",
body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
hands="Chev. Gauntlets +1",
legs="Founder's Hose",
feet="Chev. Sabatons +1",
neck="Loricate Torque +1",
waist="Rumination sash",
left_ear="Knightly Earring",
right_ear="Halasz Earring",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back={ name="Weard Mantle", augments={'VIT+5','DEX+3','Phalanx +5',}},
}
-- Divine Skill 563/560 140 Acc
sets.midcast.Divine =
{
ammo="Staunch Tathlum",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body="Rev. Surcoat +1",
hands={ name="Eschite Gauntlets", augments={'Mag. Evasion+15','Spell interruption rate down +15%','Enmity+7',}},
legs={ name="Kaiser Diechlings", augments={'Magic dmg. taken -3%','Divine magic skill +5',}},
feet="Templar Sabatons",
neck="Incanter's Torque",
waist="Asklepian Belt",
left_ear="Knight's Earring",
right_ear="Beatific Earring",
left_ring="Globidonta Ring",
right_ring="Stikini Ring",
back="Altruistic Cape",
}
sets.midcast.Divine.DT =
{
ammo="Staunch Tathlum",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body="Rev. Surcoat +1",
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear="Knight's Earring",
right_ear="Odnowa Earring +1",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Solemnity Cape",
}
--skill 406/407
sets.midcast['Enhancing Magic'] =
{
ammo="Staunch Tathlum",
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
legs={ name="Carmine Cuisses +1", augments={'HP+80','STR+12','INT+12',}},
neck="Incanter's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear="Augment. Earring",
left_ring="Evanescence Ring",
right_ring="Stikini Ring",
back="Merciful Cape",
}
sets.midcast.MAB =
{
ammo="Pemphredo Tathlum",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body={ name="Found. Breastplate", augments={'Accuracy+11','Mag. Acc.+10','Attack+10','"Mag.Atk.Bns."+9',}},
hands={ name="Founder's Gauntlets", augments={'STR+10','Attack+15','"Mag.Atk.Bns."+15','Phys. dmg. taken -5%',}},
legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+29','Accuracy+24','Accuracy+17 Attack+17','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
feet={ name="Founder's Greaves", augments={'VIT+10','Accuracy+15','"Mag.Atk.Bns."+15','Mag. Evasion+15',}},
neck="Eddy Necklace",
waist="Yamabuki-no-Obi",
left_ear="Crematio Earring",
right_ear="Friomisi Earring",
left_ring="Shiva Ring +1",
right_ring="Shiva Ring +1",
back="Toro Cape",
}
sets.midcast.Flash =
{
ammo="Iron Gobbet",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body="Rev. Surcoat +1",
hands={ name="Eschite Gauntlets", augments={'Mag. Evasion+15','Spell interruption rate down +15%','Enmity+7',}},
legs={ name="Yorium Cuisses", augments={'Enmity+10','Phalanx +3',}},
feet={ name="Eschite Greaves", augments={'HP+80','Enmity+7','Phys. dmg. taken -4',}},
neck="Unmoving Collar +1",
waist="Asklepian Belt",
left_ear="Trux Earring",
right_ear="Cryptic Earring",
left_ring="Apeile Ring",
right_ring="Apeile Ring +1",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
sets.midcast.Flash.DT =
{
ammo="Staunch Tathlum",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body="Rev. Surcoat +1",
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear="Knight's Earring",
right_ear="Odnowa Earring +1",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Solemnity Cape",
}
sets.midcast.Enlight = sets.midcast.Divine --+95 accu
sets.midcast['Enlight II'] = sets.midcast.Enlight--+140 accu +2 acc each 20 divine skill
--Max HP+ set for reprisal 3496HP / war so 6992 damage reflect before it off
sets.midcast.Reprisal =
{
ammo="Egoist's Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body="Shab. Cuirass +1",
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Dualism Collar +1",
waist="Creed Baudrier",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Meridian Ring",
right_ring="Eihwaz Ring",
back="Reiki Cloak",
}
--Phalanx skill 360/358 = 30/30 + phalanx + 27/30 total 57/60
sets.midcast.Phalanx =
{
ammo="Staunch Tathlum",
head={ name="Odyssean Helm", augments={'MND+10','AGI+4','Phalanx +4','Accuracy+8 Attack+8',}},
body={ name="Odyss. Chestplate", augments={'Pet: Mag. Acc.+26','"Fast Cast"+1','Phalanx +5','Mag. Acc.+2 "Mag.Atk.Bns."+2',}},
hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
legs={ name="Yorium Cuisses", augments={'Enmity+10','Phalanx +3',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Incanter's Torque",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Knightly Earring",
left_ring="Evanescence Ring",
right_ring="Apeile Ring +1",
back={ name="Weard Mantle", augments={'VIT+5','DEX+3','Phalanx +5',}},
}
sets.midcast.Banish = set_combine(sets.midcast.MAB, {right_ring="Fenian Ring"})
sets.midcast['Banish II'] = sets.midcast.Banish
sets.midcast.Holy = sets.midcast.MAB
sets.midcast['Holy II'] = sets.midcast.Holy
sets.midcast.Crusade =
{
ammo="Staunch Tathlum",
head="Loess Barbuta +1",
body="Souveran Cuirass",
hands={ name="Yorium Gauntlets", augments={'Enmity+10','Phalanx +3',}},
legs={ name="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Eschite Greaves", augments={'HP+80','Enmity+7','Phys. dmg. taken -4',}},
neck="Unmoving Collar +1",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Knightly Earring",
left_ring="Evanescence Ring",
right_ring="Apeile Ring +1",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
-- Cure1=120; Cure2=266; Cure3=600; Cure4=1123; cure potency caps at 50/50% received caps at 32/30%. sans signet
sets.midcast.Cure =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands="Macabre Gaunt. +1",
legs={ name="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Odyssean Greaves", augments={'Potency of "Cure" effect received+6%','MND+2','Mag. Acc.+8','"Mag.Atk.Bns."+3',}},
neck="Incanter's Torque",
waist="Hachirin-no-obi",
left_ear="Nourish. Earring +1",
right_ear="Mendi. Earring",
left_ring="Vocane Ring",
right_ring="Stikini Ring",
back="Solemnity Cape",
}
sets.midcast.Cure.DT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands="Macabre Gaunt. +1",
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear="Nourish. Earring +1",
right_ear="Mendi. Earring",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Solemnity Cape",
}
sets.self_healing = set_combine(sets.midcast.Cure, {waist="Gishdubar Sash", right_ear="Oneiros Earring", neck="Phalaina Locket"})
sets.self_healing.DT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands="Macabre Gaunt. +1",
legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Phalaina Locket",
waist="Gishdubar Sash",
left_ear="Nourish. Earring +1",
right_ear="Oneiros Earring",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Solemnity Cape",
}
sets.midcast.Protect =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body="Shab. Cuirass +1",
hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
legs={ name="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Odyssean Greaves", augments={'"Fast Cast"+6','"Mag.Atk.Bns."+10',}},
neck="Incanter's Torque",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Knightly Earring",
left_ring="Evanescence Ring",
right_ring="Sheltered Ring",
back="Solemnity Cape",
}
sets.midcast.Shell =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body="Shab. Cuirass +1",
hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
legs={ name="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Odyssean Greaves", augments={'"Fast Cast"+6','"Mag.Atk.Bns."+10',}},
neck="Incanter's Torque",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Knightly Earring",
left_ring="Evanescence Ring",
right_ring="Sheltered Ring",
back="Solemnity Cape",
}
sets.midcast.Raise =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body="Souveran Cuirass",
hands={ name="Souv. Handsch. +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
legs={ name="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Odyssean Greaves", augments={'"Fast Cast"+6','"Mag.Atk.Bns."+10',}},
neck="Incanter's Torque",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Knightly Earring",
left_ring="Evanescence Ring",
right_ring="Sheltered Ring",
back="Solemnity Cape",
}
sets.midcast.Stun = sets.midcast.Flash
--Spell interupt down (pro shell raise)
sets.SID =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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="Founder's Hose", augments={'MND+7','Mag. Acc.+10','Attack+10',}},
feet={ name="Odyssean Greaves", augments={'"Fast Cast"+6','"Mag.Atk.Bns."+10',}},
neck="Incanter's Torque",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Knightly Earring",
left_ring="Evanescence Ring",
right_ring="Sheltered Ring",
back="Solemnity Cape",
}
--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------
sets.Doom = {legs="Shabti Cuisses +1",left_ring="Eshmun's Ring",right_ring="Eshmun's Ring", waist="Gishdubar Sash"}
sets.Petri = {back="Sand Mantle"}
sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
sets.Breath =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body="Souveran Cuirass",
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="Amm Greaves", augments={'HP+50','VIT+10','Accuracy+15','Damage taken-2%',}},
neck="Loricate Torque +1",
waist="Creed Baudrier",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Xucau Mantle",
}
sets.ResistCharm =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Unmoving Collar +1",
waist="Asklepian Belt",
left_ear="Eabani Earring",
right_ear="Volunt. Earring",
left_ring="Unyielding Ring",
right_ring="Wuji Ring",
back="Solemnity Cape",
}
sets.resting =
{
ammo="Homiliary",
head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst mdg.+10%','"Refresh"+1',}},
body={ name="Jumalik Mail", augments={'HP+50','Attack+15','Enmity+9','"Refresh"+2',}},
hands={ name="Odyssean Gauntlets", augments={'Pet: DEX+2','Pet: STR+6','"Refresh"+1',}},
legs= "Carmine Cuisses +1",
feet={ name="Amm Greaves", augments={'HP+50','VIT+10','Accuracy+15','Damage taken-2%',}},
neck="Creed Collar",
waist="Fucho-no-Obi",
left_ear="Infused Earring",
right_ear="Ethereal Earring",
left_ring="Sheltered Ring",
right_ring="Paguroidea Ring",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
-- Idle sets
sets.idle =
{
ammo="Homiliary",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
body={ name="Souveran Cuirass", augments={'VIT+10','Attack+20','"Refresh"+2',}},
hands={ name="Odyssean Gauntlets", augments={'Pet: DEX+2','Pet: STR+6','"Refresh"+1',}},
legs={ name="Carmine Cuisses +1", augments={'HP+80','STR+12','INT+12',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
feet={ name="Amm Greaves", augments={'HP+50','VIT+10','Accuracy+15','Damage taken-2%',}},
neck="Creed Collar",
waist="Fucho-no-Obi",
left_ear="Infused Earring",
right_ear="Ethereal Earring",
left_ring="Sheltered Ring",
right_ring="Paguroidea Ring",
back="Reiki Cloak",
}
sets.idle.Town =
{
ammo="Homiliary",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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="Carmine Cuisses +1", augments={'HP+80','STR+12','INT+12',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Fucho-no-Obi",
left_ear="Infused Earring",
right_ear="Ethereal Earring",
left_ring="Dim. Ring (Holla)",
right_ring="Warp Ring",
back="Reiki Cloak",
}
sets.idle.Weak =
{
ammo="Homiliary",
head="Twilight helm",
neck="Loricate Torque +1",
ear1="Infused Earring",
ear2="Ethereal Earring",
body="Twilight mail",
hands="Chev. Gauntlets +1",
ring1="Sheltered Ring",
ring2="Paguroidea Ring",
back="Reiki Cloak",
waist="Fucho-no-obi",
legs= "Carmine Cuisses +1",
feet="Amm Greaves"
}
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"}
--3367 HP
sets.defense.PDT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Creed Collar",
waist="Flume Belt +1",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Meridian Ring",
right_ring="Defending Ring",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
-- To cap MDT with Shell IV (52/256), need 76/256 in gear. Current gear set is 248/256.
-- Shellra V can provide 75/256.
sets.defense.MDT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Warder's Charm +1",
waist="Asklepian Belt",
left_ear="Eabani Earring",
right_ear="Flashward Earring",
left_ring="Shadow Ring",
right_ring="Defending Ring",
back="Reiki Cloak",
}
sets.defense.BDT =
{
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Creed Baudrier",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back="Xucau Mantle",
}
sets.defense.Ochain =
{
main="Burtgang",
sub="Ochain",
ammo="Staunch Tathlum",
head="Chev. Armet +1",
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="Odyssean Cuisses", augments={'Accuracy+1','Sklchn.dmg.+2%','Chance of successful block +9','Mag. Acc.+5 "Mag.Atk.Bns."+5',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear="Thureous Earring",
right_ear="Ethereal Earring",
left_ring="Vocane Ring",
right_ring="Defending Ring",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},
}
sets.defense.Aegis =
{
main="Burtgang",
sub="Aegis",
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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 +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",-- neck="Creed Collar",
waist="Flume Belt +1",
left_ear="Thureous Earring",
right_ear="Odnowa Earring +1",
left_ring="Meridian Ring",
right_ring="Defending Ring",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},--HP+180 Evasion+20, Magic Evasion+20 Enmity+10
}
sets.defense.Srivatsa =
{
main="Burtgang",
sub="Srivatsa",
ammo="Staunch Tathlum",
head={ name="Souv. Schaller +1", augments={'HP+105','VIT+12','Phys. dmg. taken -4',}},
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="Odyssean Cuisses", augments={'Accuracy+1','Sklchn.dmg.+2%','Chance of successful block +9','Mag. Acc.+5 "Mag.Atk.Bns."+5',}},
feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
neck="Loricate Torque +1",-- neck="Creed Collar",
waist="Flume Belt +1",
left_ear="Thureous Earring",
right_ear="Odnowa Earring +1",
left_ring="Meridian Ring",
right_ring="Defending Ring",
back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+9','Enmity+10',}},--HP+180 Evasion+20, Magic Evasion+20 Enmity+10
}
--Doom/RR",
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.Aegis.Reraise = set_combine(sets.defense.Aegis, sets.Reraise)
sets.defense.PDT.Doom = set_combine(sets.defense.PDT, sets.Doom)
sets.defense.Aegis.Doom = set_combine(sets.defense.Aegis, sets.Doom)
sets.defense.MDT.Doom = set_combine(sets.defense.PDT, sets.Doom)
sets.defense.Aegis.Doom = set_combine(sets.defense.Aegis, sets.Doom)
sets.Kiting = {legs="Carmine Cuisses +1"}
--------------------------------------
-- Engaged sets
--------------------------------------
sets.engaged = --1096 / 1236 avec enlight up
{
ammo="Paeapua",
head={ name="Valorous Mask", augments={'Accuracy+27','"Dbl.Atk."+3','DEX+10',}},
body={ name="Valorous Mail", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+10','DEX+3','Accuracy+6',}},
hands="Sulev. Gauntlets +1",
legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+29','Accuracy+24','Accuracy+17 Attack+17','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
feet={ name="Valorous Greaves", augments={'Accuracy+27','"Store TP"+2','VIT+10',}},
neck="Combatant's Torque",
waist="Sarissapho. Belt",
left_ear="Brutal Earring",
right_ear="Trux Earring",
left_ring="Rajas Ring",
right_ring="K'ayres Ring",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10',}},
}
sets.engaged.Acc = --1167 / 1307 avec enlight up
{
ammo="Ginsen",
head={ name="Valorous Mask", augments={'Accuracy+27','"Dbl.Atk."+3','DEX+10',}},
body={ name="Valorous Mail", augments={'Accuracy+22 Attack+22','Weapon Skill Acc.+10','DEX+3','Accuracy+6',}},
hands={ name="Valorous Mitts", augments={'Accuracy+30','Crit.hit rate+2','Attack+3',}},
legs={ name="Odyssean Cuisses", augments={'"Mag.Atk.Bns."+29','Accuracy+24','Accuracy+17 Attack+17','Mag. Acc.+10 "Mag.Atk.Bns."+10',}},
feet={ name="Valorous Greaves", augments={'Accuracy+24 Attack+24','Accuracy+15','Attack+4',}},
neck="Combatant's Torque",
waist="Olseni Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Rajas Ring",
right_ring="Ramuh Ring +1",
back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Store TP"+10',}},
}
end
------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------Job-specific hooks that are called to process player actions at specific points in time-----------
------------------------------------------------------------------------------------------------------------------------------------------
function job_update(cmdParams, eventArgs)
update_defense_mode()
end
-- 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
if state.Buff.Doom then
idleSet = set_combine(idleSet, sets.buff.Doom)
end
return idleSet
end
function customize_defense_set(defenseSet)
if state.ExtraDefenseMode.value ~= 'None' then
defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
end
if state.EquipShield.value == true then
defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
end
return defenseSet
end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
-- General hooks for change events.
-------------------------------------------------------------------------------------------------------------------
-- 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
-- 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
-- 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.
--print( buff )
--print( state.Buff[buff] )
-- 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
-- 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
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
end
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
function job_buff_change(buff, gain)
if buff == "cover" then
if gain then
equip(sets.buff['Cover'])
disable('Body','Head')
else
enable('Body','Head')
handle_equipping_gear(player.status)
end
elseif buff == "doom" then
if gain then
equip(sets.Doom)
send_command('@input /p Doomed, please Cursna.')
disable('legs','ring1','ring2','waist')
elseif not gain and not player.status == "Dead" and not player.status == "Engaged Dead" then
enable('legs','ring1','ring2','waist')
send_command('input /p Doom removed, Thank you.')
handle_equipping_gear(player.status)
else
enable('legs','ring1','ring2','waist')
send_command('input /p '..player.name..' is no longer Doom Thank you !')
end
elseif buff == "petrification" then
if gain then
equip(sets.Petri)
disable('back')
send_command('@input /p Petrification, please Stona.')
else
enable('back')
send_command('input /p '..player.name..' is no longer Petrify Thank you !')
end
elseif buff == "Charm" then
if gain then
send_command('@input /p Charmd, please Sleep me.')
else
send_command('input /p '..player.name..' is no longer Charmed, please wake me up!')
end
end
for index,value in pairs(buffWatcher.watchList) do
if index==buff then
buffWatch()
break
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(2, 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)
elseif player.sub_job == 'WAR' then
set_macro_page(1, 7)
else
set_macro_page(1, 7)
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
if spellMap == 'Cure' and spell.target.type == 'SELF' then
if options.CastingModes.value == 'DT' then
equip(sets.self_healing.DT)
else
equip(sets.self_healing)
end
end
end
function job_self_command(cmdParams, eventArgs)
if cmdParams[1] == 'buffWatcher' then
buffWatch(cmdParams[2],cmdParams[3])
end
if cmdParams[1] == 'stopBuffWatcher' then
stopBuffWatcher()
end
end
-- Curing rules
function refine_various_spells(spell,action,spell_map,event_args)
local cures = S{'Cure','Cure II','Cure III','Cure IV'}
if cures:contains(spell.english) then
local spell_recasts = windower.ffxi.get_spell_recasts()
if spell_recasts[spell.recast_id] > 0 then
event_args.cancel = true
if spell.english == 'Cure IV' then
send_command('@input /ma "Cure III" '..tostring(spell.target.raw))
return
elseif spell.english == 'Cure III' then
send_command('@input /ma "Cure II" '..tostring(spell.target.raw))
return
elseif spell.english == 'Cure II' then
send_command('@input /ma "Cure" '..tostring(spell.target.raw))
return
else
add_to_chat(122,'All Cure spells are on cooldown. Canceling the cast.')
return
end
end
end
end
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-08-09 10:35:57
@Akivatoo
You're using an outdated version of Mote's libraries. state.CastingModes might give you the value you're looking for (instead of options.CastingModes.value).
Of course, I'd rather suggest updating your files instead. Mote doesn't maintain them anymore, but other people do/might, and it'd make it easier to get help from others.
By stuntmandan 2016-08-09 12:34:19
Thx Flippant!
By Selindrile 2016-08-11 12:52:53
@Akivatoo
I have an updated, and expanded version of Mote's files if you're interested, all 22 jobs (though not all thoroughly tested) and a lot of things added.
https://www.dropbox.com/sh/20vy32liub3glxz/AAAiIVHAasFdwCK1SZdZz7d_a?dl=0
Lakshmi.Santoro
サーバ: Lakshmi
Game: FFXI
Posts: 88
By Lakshmi.Santoro 2016-08-15 10:31:44
@Selindrile
Thanks for this, I am very new back so this is my first few hours with gearswap and my head is hurting... it's not as simple a Spellcast of old.
I haven't had a gs work yet, with your DRK file I am getting and error on line 147 of a nil value any ideas?
Anyone else that has something simple I can copy and paste just to get basic gearswaps going would be helpful.
I have searched and keep trying different threads/files/versions but no luck so far.
Cheers
[+]
サーバ: Odin
Game: FFXI
Posts: 6
By Odin.Viridiana 2016-08-17 20:25:43
Would anyone be able to tell me why this isn't working as BLM/SCH? It gives me a message "The same effect is already active on Chaneque." when I try to use dark arts to get addendum, then fails to change any of the strategems.
Code function pretarget(spell,action)
if midaction() then
canceled = true
return
elseif spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
send_command('input /item "Echo Drops" <me>')
elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Out of Range]')
return
elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
if spell.english == 'Light Arts' and not buffactive['Addendum: White'] then
cancel_spell()
send_command('input /ja Addendum: White <me>')
elseif spell.english == "Manifestation" then
cancel_spell()
send_command('input /ja Accession <me>')
elseif spell.english == "Alacrity" then
cancel_spell()
send_command('input /ja Celerity <me>')
elseif spell.english == "Parsimony" then
cancel_spell()
send_command('input /ja Penury <me>')
end
elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
if spell.english == 'Dark Arts' and not buffactive['Addendum: Black'] then
cancel_spell()
send_command('input /ja Addendum: Black <me>')
elseif spell.english == "Accession" then
cancel_spell()
send_command('input /ja Manifestation <me>')
elseif spell.english == "Celerity" then
cancel_spell()
send_command('input /ja Alacrity <me>')
elseif spell.english == "Penury" then
cancel_spell()
send_command('input /ja Parsimony <me>')
end
end
end
For what it's worth, I haven't tested the WS, Echo drops, or anything else with this.
And just in case, this is what my full lua is looking like atm, using Mote's stuff.
Code -------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
send_command('wait 2;input /lockstyleset 1')
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
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', 'Refresh')
state.CastingMode:options('Normal', 'Resistant', 'Proc')
state.IdleMode:options('Normal', 'PDT', 'Mvmt')
state.MagicBurst = M(false, 'Magic Burst')
lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
gear.macc_hagondes = {}
-- Additional local binds
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
---- Precast Sets ----
-- Precast sets to enhance JAs
sets.precast.JA['Mana Wall'] = {feet="Goetia Sabots +2"}
sets.precast.JA.Manafont = {body="Sorcerer's Coat +2"}
-- equip to maximize HP (for Tarus) and minimize MP loss before using convert
sets.precast.JA.Convert = {}
-- Fast cast sets for spells
sets.precast.FC = {main="Eminent Staff",
sub="Vivid Strap",
head="Wayfarer Circlet",
body="Weather. Robe +1",
hands="Wayfarer Cuffs",
legs="Orvail Pants +1",
feet="Chelona Boots",
waist="Goading Belt",
right_ear="Loquac. Earring",
back="Swith Cape",
}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {})
sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal"})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {})
sets.precast.FC.Curaga = sets.precast.FC.Cure
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Vidohunir'] = {}
---- Midcast Sets ----
sets.midcast.FastRecast = {}
sets.midcast.Cure = {main="Tamaxchi",
ammo="Clarus Stone",
head="Wayfarer Circlet",
body="Weather. Robe +1",
hands="Weath. Cuffs +1",
legs="Wayfarer Slops",
feet="Orvail Souliers +1",
neck="Justice Badge",
waist="Cetl Belt",
left_ear="Roundel Earring",
right_ear="Loquac. Earring",
left_ring="Ephedra Ring",
right_ring="Sirona's Ring",
back="Dew Silk Cape"}
sets.midcast.Curaga = sets.midcast.Cure
sets.midcast['Enhancing Magic'] = {}
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {})
sets.midcast['Enfeebling Magic'] = {main="Eminent Staff",
sub="Vivid Strap",
ammo="Witchstone",
head="Buremte Hat",
body="Weather. Robe +1",
hands="Otomi Gloves",
legs="Wayfarer Slops",
feet="Weather. Souliers",
neck="Stoicheion Medal",
waist="Cognition Belt",
left_ear="Moldavite Earring",
right_ear="Friomisi Earring",
left_ring="Wisdom Ring",
right_ring="Acumen Ring",
back="Searing Cape",
}
sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
sets.midcast['Dark Magic'] = {main="Eminent Staff",
sub="Dark Strap",
ammo="Witchstone",
head="Buremte Hat",
body="Weather. Robe +1",
hands="Otomi Gloves",
legs="Wayfarer Slops",
feet="Weather. Souliers",
neck="Stoicheion Medal",
waist="Cognition Belt",
left_ear="Moldavite Earring",
right_ear="Friomisi Earring",
left_ring="Wisdom Ring",
right_ring="Acumen Ring",
back="Searing Cape",
}
sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {ear1="Hirudinea Earring"})
sets.midcast.Aspir = sets.midcast.Drain
sets.midcast.Stun = {}
sets.midcast.BardSong = {}
-- Elemental Magic sets
sets.midcast['Elemental Magic'] = { main="Eminent Staff",
sub="Vivid Strap",
ammo="Witchstone",
head="Buremte Hat",
body="Weather. Robe +1",
hands="Otomi Gloves",
legs="Wayfarer Slops",
feet="Weather. Souliers",
neck="Stoicheion Medal",
waist="Cognition Belt",
left_ear="Moldavite Earring",
right_ear="Friomisi Earring",
left_ring="Wisdom Ring",
right_ring="Acumen Ring",
back="Searing Cape",}
sets.midcast['Elemental Magic'].Resistant = {}
sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
-- Minimal damage gear for procs.
sets.midcast['Elemental Magic'].Proc = {main="Terra Staff", ammo="Impatiens",
head="Nahtirah Hat",neck="Twilight Torque",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Manasa Chasuble",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Swith Cape +1",waist="Witful Belt",legs="Nares Trews",feet="Chelona Boots +1"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main="Chatoyant Staff",
ammo="Clarus Stone",
head="Orvail Corona +1",
body="Errant Hpl.",
hands="Serpentes Cuffs",
legs="Sagacity Lappas",
feet="Serpentes Sabots",
waist="Qiqirn Sash",
back="Cheviot Cape",}
-- Idle sets
-- Normal refresh idle set
sets.idle = {main="Owleyes",
sub="Genbu's Shield",
ammo="Clarus Stone",
head="Wayfarer Circlet",
body="Orvail Robe +1",
neck="Twilight Torque",
hands="Serpentes Cuffs",
legs="Wayfarer Slops",
feet="Serpentes Sabots",
right_ear="Loquac. Earring",
left_ring="Paguroidea Ring",
right_ring="Heed Ring",
back="Cheviot Cape",}
-- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
sets.idle.PDT = set_combine(sets.idle,{main="Terra's Staff",
sub="",
neck="Twilight Torque",
ear2="Loquacious Earring",
back="Cheviot Cape",
feet="Herald's Gaiters"
})
sets.idle.Mvmt = set_combine(sets.idle, {feet="Herald's Gaiters"})
-- Idle mode scopes:
-- Idle mode when weak.
--sets.idle.Weak = {}
-- Town gear.
--sets.idle.Town = {}
-- Defense sets
sets.defense.PDT = {main="Terra Staff",
back="Cheviot Cape"}
sets.defense.MDT = {}
sets.Kiting = {}
sets.latent_refresh = {}
-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
sets.buff['Mana Wall'] = {}
sets.magic_burst = {}
-- 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 = {main="Eminent Staff",
sub="Tzacab Grip",
ammo="Smart Grenade",
head="Wayfarer Circlet",
body="Weather. Robe +1",
hands="Weath. Cuffs +1",
legs="Wayfarer Slops",
feet="Wayfarer Clogs",
neck="Peacock Charm",
waist="Cetl Belt",
left_ear="Brutal Earring",
right_ear="Ghillie Earring",
left_ring="Rajas Ring",
right_ring="Heed Ring",
back="Blithe Mantle",}
sets.engaged.Refresh = set_combine (sets.engaged, {main="Owleyes",
sub="",
ammo="Witchstone",
head="Wayfarer Circlet",
body="Wayfarer Robe",
hands="Wayfarer Cuffs",
legs="Wayfarer Slops",
feet="Wayfarer Clogs",})
sets.engaged.fight = set_combine (sets.engaged, {})
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
function pretarget(spell,action)
if midaction() then
canceled = true
return
elseif spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
send_command('input /item "Echo Drops" <me>')
elseif spell.type == "WeaponSkill" and spell.target.distance > target_distance and player.status == 'Engaged' then -- Cancel WS If You Are Out Of Range --
cancel_spell()
add_to_chat(123, spell.name..' Canceled: [Out of Range]')
return
elseif buffactive['Light Arts'] or buffactive['Addendum: White'] then
if spell.english == 'Light Arts' and not buffactive['Addendum: White'] then
cancel_spell()
send_command('input /ja Addendum: White <me>')
elseif spell.english == "Manifestation" then
cancel_spell()
send_command('input /ja Accession <me>')
elseif spell.english == "Alacrity" then
cancel_spell()
send_command('input /ja Celerity <me>')
elseif spell.english == "Parsimony" then
cancel_spell()
send_command('input /ja Penury <me>')
end
elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
if spell.english == 'Dark Arts' and not buffactive['Addendum: Black'] then
cancel_spell()
send_command('input /ja Addendum: Black <me>')
elseif spell.english == "Accession" then
cancel_spell()
send_command('input /ja Manifestation <me>')
elseif spell.english == "Celerity" then
cancel_spell()
send_command('input /ja Alacrity <me>')
elseif spell.english == "Penury" then
cancel_spell()
send_command('input /ja Parsimony <me>')
end
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)
if spellMap == 'Cure' or spellMap == 'Curaga' then
gear.default.obi_waist = "Goading Belt"
--elseif spell.skill == 'Elemental Magic' then
-- gear.default.obi_waist = "Sekhmet Corset"
-- if state.CastingMode.value == 'Proc' then
-- classes.CustomClass = 'Proc'
-- end
end
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
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
equip(sets.magic_burst)
end
end
function job_aftercast(spell, action, spellMap, eventArgs)
-- Lock feet after using Mana Wall.
if not spell.interrupted then
if spell.english == 'Mana Wall' then
enable('feet')
equip(sets.buff['Mana Wall'])
disable('feet')
elseif spell.skill == 'Elemental Magic' then
state.MagicBurst:reset()
end
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)
-- Unlock feet when Mana Wall buff is lost.
if buff == "Mana Wall" and not gain then
enable('feet')
handle_equipping_gear(player.status)
end
end
-- 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.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
--[[ No real need to differentiate with current gear.
if lowTierNukes:contains(spell.english) then
return 'LowTierNuke'
else
return 'HighTierNuke'
end
--]]
end
end
-- 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
-- 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, 15)
end
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-08-17 22:34:04
You can't use the original GS functions in Mote files, because Mote uses them and will overwrite yours. You should be using job_pretarget.
[+]
サーバ: Asura
Game: FFXI
Posts: 196
By Asura.Inuyushi 2016-08-17 22:53:13
Does anyone know where midaction() is coming from? I know that it returns a bool of whether or not you're in a midaction, but I was curious as to how it works. I'm working on an addon myself and need certain things not to process while actions are being performed.
By Iryoku 2016-08-17 23:26:46
Gearswap tracks the packets that start and finish a cast to implement midaction().
サーバ: Odin
Game: FFXI
Posts: 6
By Odin.Viridiana 2016-08-18 02:10:34
Ragnarok.Flippant said: »You can't use the original GS functions in Mote files, because Mote uses them and will overwrite yours. You should be using job_pretarget.
So that fixed the Addendum problem, thanks, but the Accession/Manifestation swap still isn't happening. Is there another thing that isn't standard? (I pulled this from... Someones... WHM lua I think, because it was something I used to use with spellcast)
サーバ: Asura
Game: FFXI
Posts: 196
By Asura.Inuyushi 2016-08-18 10:30:44
Gearswap tracks the packets that start and finish a cast to implement midaction().
Do you know where about in the Gearswap code this is executed? I was hoping to analyze how he did it, but couldn't find it in any of the files.
Odin.Lygre
サーバ: Odin
Game: FFXI
Posts: 89
By Odin.Lygre 2016-08-18 15:45:47
Gearswap tracks the packets that start and finish a cast to implement midaction().
Do you know where about in the Gearswap code this is executed? I was hoping to analyze how he did it, but couldn't find it in any of the files.
Pretty sure it's handled in flow.lua
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-08-18 16:52:23
Ragnarok.Flippant said: »You can't use the original GS functions in Mote files, because Mote uses them and will overwrite yours. You should be using job_pretarget.
So that fixed the Addendum problem, thanks, but the Accession/Manifestation swap still isn't happening. Is there another thing that isn't standard? (I pulled this from... Someones... WHM lua I think, because it was something I used to use with spellcast)
It's being caught and directed to the filtered_action function instead of reaching the normal spell functions. Code function filtered_action(spell)
if buffactive['Light Arts'] or buffactive['Addendum: White'] then
if spell.english == "Manifestation" then
send_command('input /ja Accession <me>')
elseif spell.english == "Alacrity" then
send_command('input /ja Celerity <me>')
elseif spell.english == "Parsimony" then
send_command('input /ja Penury <me>')
end
elseif buffactive['Dark Arts'] or buffactive['Addendum: Black'] then
if spell.english == "Accession" then
send_command('input /ja Manifestation <me>')
elseif spell.english == "Celerity" then
send_command('input /ja Alacrity <me>')
elseif spell.english == "Penury" then
send_command('input /ja Parsimony <me>')
end
end
end
Mote doesn't use the filtered_action function, so you're safe to use it directly yourself.
[+]
サーバ: Odin
Game: FFXI
Posts: 6
By Odin.Viridiana 2016-08-18 17:10:09
Thank you so much, I spent hours trying various things without it working!
Fenrir.Reoko
サーバ: Fenrir
Game: FFXI
Posts: 6
By Fenrir.Reoko 2016-08-20 19:14:57
After getting a Lua to work and been used for several hours, it seems I can no longer use the keybinds. (like alt+F8) any reason this would suddenly stop working?
Fenrir.Reoko
サーバ: Fenrir
Game: FFXI
Posts: 6
By Fenrir.Reoko 2016-08-20 19:27:16
)Found the problem, it seems I had hit a (F mode key) by accident, hitting it again allowed use of the F keys again.
Shiva.Hiep
サーバ: Shiva
Game: FFXI
Posts: 669
By Shiva.Hiep 2016-08-23 14:00:53
Is there a reason why my flurry toggle (ctrl q) isn't working? Also, how come I'm not receiving a message that flurry is on/off? http://pastebin.com/6JsA1UPj Thank you.
サーバ: Asura
Game: FFXI
Posts: 1326
By Asura.Azagarth 2016-08-23 14:34:30
I would like to use my lugra/+1 earring on a few of my jobs, but I am at a loss on how to add a conditional statement for them. Would it just be something like, if a ws, and night, then use ear1 ear2 lugra? Anyone actually have this written successfully in their lua or know how to?
NVM figured it out its
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
if world.time >= 17*60 or world.time < 7*60 then -- Dusk to Dawn time.
equip({ear1="Lugra Earring +1", ear2="Lugra Earring"})
end
end
end
Ragnarok.Flippant
サーバ: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-08-23 15:44:17
Is there a reason why my flurry toggle (ctrl q) isn't working? Also, how come I'm not receiving a message that flurry is on/off? http://pastebin.com/6JsA1UPj Thank you.
The first thing I notice is that you're never calling the function that is supposed to check if Flurry is on or not. You would likely want to call it when you load the file, and somewhere that will get called as regularly as you need. Or, just add state.buff.Flurry and Mote will automatically track the variable for you using the buff_change function.
Just looking for someone to explain this addon a bit for me. It looks like it is an alternative to Spellcast.
Is it going to be replacing Spellcast? In which ways is it better or worse. I don't know any programming but I've slowly learned more and more about spellcast and the 'language' used in gearswap is confusing to me.
It says it uses packets so it potentially could be more detectable? but does that also eliminate any lag that spellcast may encounter?
I plan on redoing my PUP xml to include pet casting sets thanks to the new addon petschool. I'm just not sure if it's worth it to just wait until gearswap gets more popular or to go ahead and do it in spellcast.
If anyone could give me more info I'd greatly appreciate it.
|
|