|
Gearswap Support Thread
Asura.Cair
VIP
Serveur: Asura
Game: FFXI
Posts: 246
By Asura.Cair 2016-03-15 15:32:52
Bismarck.Speedyjim said: »Bismarck.Speedyjim said: »I know that's how the piece is spelled, but is it the same in game? Could SE have made a mistake on the spelling?
The spelling wasn't off, but I just put it on and did a //gs export and copied what I got out of that file and it worked. So was is spelled differently?
Can I assign a button, let's say F.
So that when I press it I go into -dt mode and if I press it again I go into TP mode?
Right now f9-f12 does all that, I'd like something a little closer so to say. You can but why would you want to go into dt mode every time you spell a word with the letter F in it?
You can create binds that work when the chat input is not open, equivalent to the standard behavior in most modern MMOs but without the GUI.
Carbuncle.Doryll
Serveur: Carbuncle
Game: FFXI
By Carbuncle.Doryll 2016-03-16 04:17:13
Hello :
I have a rules in my GEO lua that doesn't work :
function job_aftercast(spell, action, spellMap, eventArgs)
if not spell.interrupted then
if spell.english:startswith('Indi') then
if not classes.CustomIdleGroups:contains('Indi') then
classes.CustomIdleGroups:append('Indi')
end
send_command('@timers d "'..indi_timer..'"')
indi_timer = spell.english
send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
end
elseif not player.indi then
classes.CustomIdleGroups:clear()
end
end
I think that's a command for an /echo when indi-spells off or sleeps off, but never works. I'm interested by a /echo when indi-spells wear off like that (5m10 duration). Do you think we can resolve that ?
By dustinfoley 2016-03-16 05:12:29
If indi is all you are after...do you use motes?
If so at the top there is:
function job_setup()
indi_timer = ''
indi_duration = 310
end
Not an echo, but it gives you a timer of exactly how long is left.
Carbuncle.Doryll
Serveur: Carbuncle
Game: FFXI
By Carbuncle.Doryll 2016-03-16 07:55:42
Oh thank you !! that was simple... sorry
I didn't see that function.
But i report a problem, there's only 1 recast max i can see, so with entrust, i can't see the duration of my first indi !
For example ;
i cast indi-spell, i see Timers with 5:10
after, i entrust someone with new indi-spell, the recast covers the first indi, so i see just 1 recast (the entrusted indi).
By dustinfoley 2016-03-16 08:44:16
I know this sounds silly, but since they added timers to buffs in game, i stopped using status timers plugin since its never accurate. Stuff like maneuvers (pup) never track anymore (due to increasing duration depending on how long pet has been deployed). And multiple maneuvers of the same type never worked.
This issue with indi is the same thing, multiple indi will not track correctly. but the games built in timers actually will work and give you times.
Carbuncle.Doryll
Serveur: Carbuncle
Game: FFXI
By Carbuncle.Doryll 2016-03-16 10:35:37
Yes, but with FF timers, indi buffs are without timers. So i can't see the duration with that.
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-16 17:25:02
Oh thank you !! that was simple... sorry
I didn't see that function.
But i report a problem, there's only 1 recast max i can see, so with entrust, i can't see the duration of my first indi !
For example ;
i cast indi-spell, i see Timers with 5:10
after, i entrust someone with new indi-spell, the recast covers the first indi, so i see just 1 recast (the entrusted indi).
Check your Timers plugin settings. Windower4 > plugins > settings > timers.xml. If CustomTimerLimit is set to 1, change it to some number greater than 1.
Carbuncle.Doryll
Serveur: Carbuncle
Game: FFXI
By Carbuncle.Doryll 2016-03-17 03:34:19
CustomTimerLimit is set to 10.
I think it's because windower consider's it's the same spell
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-17 05:24:16
Ah, the issue is two fold. First, he has a rule deleting the previous indi timer. Second, you can't have two timers of the same name (if you're casting the same indi, it'll just refresh the timer).
Try changing the line to Code send_command('@timers c "'..indi_timer..' ('..spell.target.name..') " '..indi_duration..' down spells/00136.png')
You can also delete the " send_command('@timers d "'..indi_timer..'"') " line.
The problem with this is if you keep changing your indi a lot, you'll have timers that aren't relevant anymore. You could add some more code to remedy that, but I'm lazy and it seems unnecessary to me since you don't often change your indi several times in succession.
Carbuncle.Doryll
Serveur: Carbuncle
Game: FFXI
By Carbuncle.Doryll 2016-03-17 07:41:51
Thank you Flippant, that works like i hope it^^
I see that when i change indi, other timer stay, but that's not a problem. Thank you
Bismarck.Speedyjim
Serveur: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-03-17 09:13:45
I'm using HighMP sets for BLM to maintain MP for Death.
I have precasts & midcasts working fine, except for buffs. Casting Refresh, Haste, Blink and what not will swap me out of my HighMP sets, causing me to lose MP. I tried this (sets.midcast.Refresh.HighMP) but it gave me an error; attempt to index field Refresh a nil value.
Currently, only Stoneskin and Aquaveil work, the other don't. (I had to comment out the ones that don't work) Code sets.midcast.FastRecast.HighMP = sets.precast.FC.HighMP
sets.midcast.Stoneskin.HighMP = sets.midcast.FastRecast.HighMP
sets.midcast.Aquaveil.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Refresh.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Blink.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Storm.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Klimaform.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Refresh.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Phalanx.HighMP = sets.midcast.FastRecast.HighMP
--sets.midcast.Haste.HighMP = sets.midcast.FastRecast.HighMP
I have casting and idle modes defined as HighMP. Can anyone tell me how to fix this?
Code state.CastingMode:options('Normal', 'Resistant', 'AF', 'Proc', 'HighMP')
state.IdleMode:options('Normal', 'HighMP')
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-17 17:50:33
"attempt to index a nil value" means that the table doesn't exist, so you can't assign a child to it. In other words, sets.midcast.Refresh needs to exist first.
This seems a bit logically flawed, though (you should not need to create two sets for every spell you might cast). What set does Refresh (or those other spells) use when not in HighMP mode, and can you not just append a HighMP child to that table?
Bismarck.Speedyjim
Serveur: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-03-18 16:47:46
Thanks for the reply Flippant. That makes sense now that you mention it as I do have a normal Stoneskin (and aquaveil? wtf) midcast sets.
I appended the sets and created a sets.midcast['Enhancing Magic'].HighMP and it's working now.
By cocl 2016-03-20 06:07:33
So I'm still trying to modify gearswap to fit my playstyle and now I wanted to make a set for aurorastorm but I'm having trouble with it. I've tried various fixes to no avail. I have a set called sets.midcast.CureWeather setup, with Code function job_get_spell_map(spell, default_spell_map)
if spell.skill == 'Healing Magic' then
if string.find(spell.english,'Cure') then
equip(sets.midcast.Cure)
if player.mpp <51 then
equip(sets.midcast.Cure.Conserve)
elseif Enmity == 'ON' then
equip(sets.midcast.Cure.Enmity)
elseif buffactive['Weakness'] then
equip(sets.midcast.Cure.Weak)
elseif spell.element == world.weather_element or spell.element == world.day_element then
equip(sets.midcast.Cure.Weather)
elseif buffactive['Reive Mark'] then
equip(sets.midcast.Cure.Reive)
elseif Melee == 'ON' then
equip(sets.midcast.Cure.Engaged)
end
end
end
end but when I try it in game its only equipping sets.midcast.Cure. With debugmode on, it shows its not swapping into sets.midcast.CureWeather with aurorastorm up, so i'm not really sure whats going on. Here is my full gearswap file and any help would be greatly appreciated. Code -------------------------------------------------------------------------------------------------------------------
-- Initialization function that defines sets and variables to be used.
-------------------------------------------------------------------------------------------------------------------
-- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
-- 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.
function job_setup()
state.Buff['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
end
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
-- Options: Override default values
options.OffenseModes = {'None', 'Normal'}
options.DefenseModes = {'Normal'}
options.WeaponskillModes = {'Normal'}
options.CastingModes = {'Normal', 'Resistant', 'Dire'}
options.IdleModes = {'Normal', 'PDT'}
options.RestingModes = {'Normal'}
options.PhysicalDefenseModes = {'PDT'}
options.MagicalDefenseModes = {'MDT'}
state.OffenseMode = 'None'
select_default_macro_book()
Cures = S{'Cure','Cure II','Cure III','Cure IV','Cure V','Cure VI'}
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 = {
main="Marin Staff +1",
sub="Benthos Grip",
ammo="Incantor stone",
head="Nahtirah Hat",
body="Anhur Robe",
hands="Fanatic Gloves",
legs="Lengo pants",
feet="Regal Pumps +1",
neck="Orunmila's torque",
waist="Witful Belt",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Swith Cape +1",
}
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"})
sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {legs="Ebers Pantaloons +1"})
sets.precast.FC.StatusRemoval = sets.precast.FC['Healing Magic']
sets.precast.FC.Cure = set_combine(sets.precast.FC['Healing Magic'], {
main="Queller Rod",
sub="Sors Shield",
ammo="impatiens",
head="Piety Cap",
body="Anhur Robe",
hands="Fanatic Gloves",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Orunmila's Torque",
waist="Witful Belt",
left_ear="Nourish. Earring +1",
right_ear="Nourish. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Ogapepo Cape",
})
sets.precast.FC.Curaga = sets.precast.FC.Cure
-- 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="Gendewitha Galoshes"}
-- 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=gear.ElementalGorget,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="Gendewitha Galoshes"}
sets.precast.WS['Flash Nova'] = {
head="Nahtirah Hat",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="Strendu Ring",}
-- Midcast Sets
sets.midcast.FastRecast = {
main="Marin Staff +1",
sub="Benthos Grip",
ammo="Incantor stone",
head="Nahtirah Hat",
body="Anhur Robe",
hands="Fanatic Gloves",
legs="Lengo pants",
feet="Regal Pumps +1",
neck="Orunmila's torque",
waist="Witful Belt",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Swith Cape +1",
}
-- Cure sets
gear.default.obi_waist = "hachirin-no-obi"
gear.default.obi_back = "Twilight Cape"
sets.midcast.CureSolace = {
main={ name="Queller Rod", augments={'Healing magic skill +15','System: 2 ID: 124 Val: 9','System: 2 ID: 123 Val: 6',}},
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers Bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="Bishop's Sash",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.CureWeather = {
main="Chatoyant staff",
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers Bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="hachirin-no-obi",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.Cure = {
main={ name="Queller Rod", augments={'Healing magic skill +15','System: 2 ID: 124 Val: 9','System: 2 ID: 123 Val: 6',}},
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers Bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="Bishop's Sash",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.Curaga = {
main={ name="Queller Rod", augments={'Healing magic skill +15','System: 2 ID: 124 Val: 9','System: 2 ID: 123 Val: 6',}},
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="Bishop's Sash",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.CureMelee = {main="Tamaxchi",sub="sors Shield",ammo="kalboron stone",
head="Gendewitha Caubeen",neck="nuna gorget +1",ear1="novia Earring",ear2="beatific Earring",
body="Orison Bliaud +2",hands="yaoyotl gloves",ring1="sirona's Ring",ring2="haoma's Ring",
back="pahtli Cape",waist=gear.ElementalObi,legs="Orison Pantaloons +2",feet="Piety Duckbills +1"}
sets.midcast.Cursna = {
main="Yagrush",
sub="Sors Shield",
ammo="Incantor Stone",
head="Nahtirah Hat",
body="Ebers Bliaud +1",
hands={ name="Fanatic Gloves", augments={'MP+50','Healing magic skill +10','"Conserve MP"+7','"Fast Cast"+7',}},
legs="Ebers Pant. +1",
feet={ name="Gende. Galosh. +1", augments={'Phys. dmg. taken -1%','"Cure" spellcasting time -4%',}},
neck="Malison Medallion",
waist="Bishop's Sash",
left_ear="Healing Earring",
right_ear="Beatific Earring",
left_ring="Haoma's Ring",
right_ring="Haoma's Ring",
back={ name="Mending Cape", augments={'Healing magic skill +6','Enha.mag. skill +6','Mag. Acc.+9','"Cure" potency +2%',}},
}
sets.midcast.StatusRemoval = {
main="Yagrush",
sub="Sors Shield",
ammo="Incantor Stone",
head="Nahtirah Hat",
body="Anhur Robe",
hands={ name="Fanatic Gloves", augments={'MP+50','Healing magic skill +10','"Conserve MP"+7','"Fast Cast"+7',}},
legs="Ebers Pant. +1",
feet="Regal Pumps +1",
neck="Orunmila's Torque",
waist="Witful Belt",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Swith Cape +1",
}
-- 110 total Enhancing Magic Skill; caps even without Light Arts
sets.midcast['Enhancing Magic'] = {
main="Beneficus",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Vanir Battery",
head="Umuthi Hat",
body="Anhur Robe",
hands="Dynasty Mitts",
legs={ name="Piety Pantaln. +1", augments={'Enhances "Shellra V" effect',}},
feet="Orsn. Duckbills +2",
neck="Colossus's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Prolix Ring",
right_ring="defending Ring",
back="Merciful Cape",
}
sets.midcast.Stoneskin = {
head="Nahtirah Hat",neck="Orison Locket",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Dynasty Mitts",
back="Swith Cape +1",waist="Siegel Sash",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.midcast.Auspice = {hands="Dynasty Mitts",feet="Orison Duckbills +2"}
sets.midcast.BarElement = {
main="Beneficus",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Vanir Battery",
head="Orison Cap +2",
body="ebers bliaud +1",
hands="Orison Mitts +2",
legs={ name="Piety Pantaln. +1", augments={'Enhances "Shellra V" effect',}},
feet="Orsn. Duckbills +2",
neck="Colossus's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Prolix Ring",
right_ring="Weather. Ring",
back="Merciful Cape",
}
sets.midcast.Regen = {main="Bolelabunga",sub="Genbu's Shield",
body="Piety Briault +1",hands="Orison Mitts +2",
legs="Theophany Pantaloons"}
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="Marin Staff +1",
sub="Elder's Grip +1",
ammo="Ghastly Tathlum",
head={ name="Helios Band", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','"Occult Acumen"+10','INT+10',}},
body={ name="Witching Robe", augments={'MP+45','Mag. Acc.+14','"Mag.Atk.Bns."+14',}},
hands={ name="Helios Gloves", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','"Occult Acumen"+3','INT+9',}},
legs={ name="Lengo Pants", augments={'INT+8','Mag. Acc.+14','"Mag.Atk.Bns."+13',}},
feet={ name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Fast Cast"+5','INT+4 MND+4',}},
neck="Eddy Necklace",
waist="Othila Sash",
left_ear="Friomisi Earring",
right_ear="Hecate's Earring",
left_ring="Fenrir Ring +1",
right_ring="Fenrir Ring +1",
back="Toro Cape",
}
sets.midcast['Dark Magic'] = {main="ngqoqwanb", sub="mephitis grip",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Piety Duckbills +1"}
-- Custom spell classes
sets.midcast.MndEnfeebles = {
main={ name="Twebuliij", augments={'MP+60','Mag. Acc.+15','MND+12',}},
sub="Mephitis Grip",
ammo="Pemphredo Tathlum",
body="Respite Cloak",
hands="Lurid Mitts",
legs={ name="Artsieq Hose", augments={'MP+30','Mag. Acc.+20','MND+7',}},
feet={ name="Medium's Sabots", augments={'MP+40','MND+6','"Conserve MP"+5','"Cure" potency +3%',}},
neck="Imbodla Necklace",
waist="Ovate Rope",
left_ear="Enchntr. Earring +1",
right_ear="Gwati Earring",
left_ring="Levia. Ring +1",
right_ring="Levia. Ring +1",
back="Ogapepo Cape",
}
sets.midcast.IntEnfeebles = {
main={ name="Twebuliij", augments={'MP+60','Mag. Acc.+15','MND+12',}},
sub="Benthos Grip",
ammo="Oreiad's Tathlum",
head={ name="Artsieq Hat", augments={'MP+30','Mag. Acc.+20','MND+7',}},
body="Vanir Cotehardie",
hands="Lurid Mitts",
legs={ name="Artsieq Hose", augments={'MP+30','Mag. Acc.+20','MND+7',}},
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Imbodla Necklace",
waist="Ovate Rope",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring="Levia. Ring +1",
right_ring="Levia. Ring +1",
back="Merciful Cape",
}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main=gear.Staff.HMP,
body="Gendewitha Bliaut",hands="Serpentes Cuffs",
waist="Austerity Belt",legs="Nares Trews",feet="Chelona Boots +1"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle = {
main="Bolelabunga",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Homiliary",
body="Respite Cloak",
hands={ name="Chironic Gloves", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Haste+1','CHR+3','"Mag.Atk.Bns."+13',}},
legs="Assid. Pants +1",
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Bathy Choker",
waist="Slipor Sash",
left_ear="Infused Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Paguroidea Ring",
right_ring="Sheltered Ring",
back="Kumbira Cape",
}
sets.idle.PDT = {main="owleyes", sub="Genbu's Shield",ammo="sihirik",
head="wivre hairpin",neck="twilight torque",ear1="ethereal Earring",ear2="Loquacious Earring",
body="gendewitha bliaut",hands="Serpentes Cuffs",ring1="dark Ring",ring2="dark Ring",
back="shadow mantle",waist="slipor sash",legs="Nares Trews",feet="serpentes sabots"}
sets.idle.Town = {
main="Bolelabunga",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Homiliary",
body="Respite Cloak",
hands={ name="Chironic Gloves", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Haste+1','CHR+3','"Mag.Atk.Bns."+13',}},
legs="Assid. Pants +1",
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Bathy Choker",
waist="Slipor Sash",
left_ear="Infused Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Paguroidea Ring",
right_ring="Sheltered Ring",
back="Kumbira Cape",
}
sets.idle.Weak = {
main="Bolelabunga",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Homiliary",
body="Respite Cloak",
hands={ name="Chironic Gloves", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Haste+1','CHR+3','"Mag.Atk.Bns."+13',}},
legs="Assid. Pants +1",
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Bathy Choker",
waist="Slipor Sash",
left_ear="Infused Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Paguroidea Ring",
right_ring="Sheltered Ring",
back="Kumbira Cape",
}
-- Defense sets
sets.defense.PDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Gendewitha Caubeen",neck="Twilight Torque",
body="Gendewitha Bliaut",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Umbra Cape",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Nahtirah Hat",neck="Twilight Torque",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Tuilha Cape",legs="Bokwus Slops",feet="Gendewitha Galoshes"}
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 = {
head="Nahtirah Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Vanir Cotehardie",hands="Dynasty Mitts",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Umbra Cape",waist="Goading Belt",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
-- 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 that are called to process player actions at specific points in time.
-------------------------------------------------------------------------------------------------------------------
-- 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)
local map = spell_maps[spell.en]
if map == 'Cure' and player.sub_job == "SCH" and not buffactive.Aurorastorm then
add_to_chat(123,'Aurorastorm not active.')
windower.play_sound('C:\\Program Files (x86)\\Windower4\\addons\\GearSwap\\data\\wav\\Chime.wav')
end
if map == 'Curaga' and player.sub_job == "SCH" and not buffactive.Aurorastorm then
add_to_chat(123,'Aurorastorm not active.')
windower.play_sound('C:\\Program Files (x86)\\Windower4\\addons\\GearSwap\\data\\wav\\Chime.wav')
end
if spell.english == "Paralyna" and buffactive.Paralyzed then
eventArgs.handled = true
end
if spell.skill == 'Healing Magic' then
gear.default.obi_back = "Mending Cape"
else
gear.default.obi_back = "toro caoe"
end
end
--[[function job_precast(spell, action, spellMap, eventArgs)
if state.Buff[spell.english] ~= nil then
state.Buff[spell.english] = true
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
end
-- Return true if we handled the aftercast work. Otherwise it will fall back
-- to the general aftercast() code in Mote-Include.
function job_aftercast(spell, action, spellMap, eventArgs)
if state.Buff[spell.english] ~= nil then
state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
end
end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
if spell.skill == 'Healing Magic' then
if string.find(spell.english,'Cure') then
equip(sets.midcast.Cure)
if player.mpp <51 then
equip(sets.midcast.Cure.Conserve)
elseif Enmity == 'ON' then
equip(sets.midcast.Cure.Enmity)
elseif buffactive['Weakness'] then
equip(sets.midcast.Cure.Weak)
elseif spell.element == world.weather_element or spell.element == world.day_element then
equip(sets.midcast.Cure.Weather)
elseif buffactive['Reive Mark'] then
equip(sets.midcast.Cure.Reive)
elseif Melee == 'ON' then
equip(sets.midcast.Cure.Engaged)
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
-------------------------------------------------------------------------------------------------------------------
-- General hooks for other events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if state.Buff[buff] ~= nil then
state.Buff[buff] = gain
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-- 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
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'OffenseMode' then
if newValue == 'Normal' then
disable('main','sub')
else
enable('main','sub')
end
elseif stateField == 'Reset' then
if state.OffenseMode == 'None' then
enable('main','sub')
end
end
end
-- Function to display the current relevant user state when doing an update.
-- Return true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
local defenseString = ''
if state.Defense.Active then
local defMode = state.Defense.PhysicalMode
if state.Defense.Type == 'Magical' then
defMode = state.Defense.MagicalMode
end
defenseString = 'Defense: '..state.Defense.Type..' '..defMode..', '
end
local meleeString = ''
if state.OffenseMode == 'Normal' then
meleeString = 'Melee: Weapons locked, '
end
add_to_chat(122,'Casting ['..state.CastingMode..'], '..meleeString..'Idle ['..state.IdleMode..'], '..defenseString..
'Kiting: '..on_off_names[state.Kiting])
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()
-- Default macro set/book
set_macro_page(4, 14)
end
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-20 07:13:19
I can't say for sure, but I believe that job_get_spell_map is a function simply for returning a string (your custom "spell map"), and I'd guess it'd therefore be called before precast/midcast/aftercast functions are executed. If so, it's a reasonable possibility that whatever equip commands you are queuing are being overwritten by the automated rules written in Mote's includes.
Either way, you should not be calling any equip functions from there, because that's not what it was designed to be used for. Try moving the entire contents of that function to your job_post_midcast function. If that still changes nothing, let me know.
Also, most of those rules are trying to equip sets that don't exist, and check variables that don't exist. If you don't plan on using those rules, then remove them. You're preventing yourself from equipping your weather cure set any time your MP is below 51% or you are weakened.
Bahamut.Ayasha
Serveur: Bahamut
Game: FFXI
Posts: 89
By Bahamut.Ayasha 2016-03-20 07:45:09
Flippant is absolutely correct in this. The problem is where you have the equip commands.
The block:
Code
function job_get_spell_map(spell, default_spell_map)
if spell.skill == 'Healing Magic' then
if string.find(spell.english,'Cure') then
equip(sets.midcast.Cure)
if player.mpp <51 then
equip(sets.midcast.Cure.Conserve)
elseif Enmity == 'ON' then
equip(sets.midcast.Cure.Enmity)
elseif buffactive['Weakness'] then
equip(sets.midcast.Cure.Weak)
elseif spell.element == world.weather_element or spell.element == world.day_element then
equip(sets.midcast.Cure.Weather)
elseif buffactive['Reive Mark'] then
equip(sets.midcast.Cure.Reive)
elseif Melee == 'ON' then
equip(sets.midcast.Cure.Engaged)
end
end
end
end
is, as far as I know, just designed to return values to the precast function to let it know if there are any special actions that need to be taken, defined by the user. Since this is pre-precast, it will immediately be overwritten by your precast and midcast gearsets, rendering any gear swaps you did during the above function useless.
I swapped the block to the job_post_midcast function for your reference and commented it out, as the majority of the code there uses undefined sets. I added an if/then block to swap to your weather set and tested it, and it works fine on my side. I hope this helps.
Code
-------------------------------------------------------------------------------------------------------------------
-- Initialization function that defines sets and variables to be used.
-------------------------------------------------------------------------------------------------------------------
-- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
-- 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.
function job_setup()
state.Buff['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
end
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
-- Options: Override default values
options.OffenseModes = {'None', 'Normal'}
options.DefenseModes = {'Normal'}
options.WeaponskillModes = {'Normal'}
options.CastingModes = {'Normal', 'Resistant', 'Dire'}
options.IdleModes = {'Normal', 'PDT'}
options.RestingModes = {'Normal'}
options.PhysicalDefenseModes = {'PDT'}
options.MagicalDefenseModes = {'MDT'}
state.OffenseMode = 'None'
select_default_macro_book()
Cures = S{'Cure','Cure II','Cure III','Cure IV','Cure V','Cure VI'}
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 = {
main="Marin Staff +1",
sub="Benthos Grip",
ammo="Incantor stone",
head="Nahtirah Hat",
body="Anhur Robe",
hands="Fanatic Gloves",
legs="Lengo pants",
feet="Regal Pumps +1",
neck="Orunmila's torque",
waist="Witful Belt",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Swith Cape +1",
}
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"})
sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {legs="Ebers Pantaloons +1"})
sets.precast.FC.StatusRemoval = sets.precast.FC['Healing Magic']
sets.precast.FC.Cure = set_combine(sets.precast.FC['Healing Magic'], {
main="Queller Rod",
sub="Sors Shield",
ammo="impatiens",
head="Piety Cap",
body="Anhur Robe",
hands="Fanatic Gloves",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Orunmila's Torque",
waist="Witful Belt",
left_ear="Nourish. Earring +1",
right_ear="Nourish. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Ogapepo Cape",
})
sets.precast.FC.Curaga = sets.precast.FC.Cure
-- 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="Gendewitha Galoshes"}
-- 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=gear.ElementalGorget,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="Gendewitha Galoshes"}
sets.precast.WS['Flash Nova'] = {
head="Nahtirah Hat",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Rajas Ring",ring2="Strendu Ring",}
-- Midcast Sets
sets.midcast.FastRecast = {
main="Marin Staff +1",
sub="Benthos Grip",
ammo="Incantor stone",
head="Nahtirah Hat",
body="Anhur Robe",
hands="Fanatic Gloves",
legs="Lengo pants",
feet="Regal Pumps +1",
neck="Orunmila's torque",
waist="Witful Belt",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Swith Cape +1",
}
-- Cure sets
gear.default.obi_waist = "hachirin-no-obi"
gear.default.obi_back = "Twilight Cape"
sets.midcast.CureSolace = {
main={ name="Queller Rod", augments={'Healing magic skill +15','System: 2 ID: 124 Val: 9','System: 2 ID: 123 Val: 6',}},
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers Bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="Bishop's Sash",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.CureWeather = {
main="Chatoyant staff",
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers Bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="hachirin-no-obi",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.Cure = {
main={ name="Queller Rod", augments={'Healing magic skill +15','System: 2 ID: 124 Val: 9','System: 2 ID: 123 Val: 6',}},
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers Bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="Bishop's Sash",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.Curaga = {
main={ name="Queller Rod", augments={'Healing magic skill +15','System: 2 ID: 124 Val: 9','System: 2 ID: 123 Val: 6',}},
sub="Sors Shield",
ammo="Oreiad's Tathlum",
head={ name="Gende. Caubeen +1", augments={'Phys. dmg. taken -1%','"Cure" potency +6%',}},
body="Ebers bliaud +1",
hands="Theo. Mitts +1",
legs="Ebers Pant. +1",
feet={ name="Vanya Clogs", augments={'System: 2 ID: 124 Val: 4','System: 2 ID: 123 Val: 14','System: 2 ID: 177 Val: 5',}},
neck="Colossus's Torque",
waist="Bishop's Sash",
left_ear="Nourish. Earring +1",
right_ear="Beatific Earring",
left_ring="Sirona's Ring",
right_ring="Haoma's Ring",
back="Tempered cape +1",
}
sets.midcast.CureMelee = {main="Tamaxchi",sub="sors Shield",ammo="kalboron stone",
head="Gendewitha Caubeen",neck="nuna gorget +1",ear1="novia Earring",ear2="beatific Earring",
body="Orison Bliaud +2",hands="yaoyotl gloves",ring1="sirona's Ring",ring2="haoma's Ring",
back="pahtli Cape",waist=gear.ElementalObi,legs="Orison Pantaloons +2",feet="Piety Duckbills +1"}
sets.midcast.Cursna = {
main="Yagrush",
sub="Sors Shield",
ammo="Incantor Stone",
head="Nahtirah Hat",
body="Ebers Bliaud +1",
hands={ name="Fanatic Gloves", augments={'MP+50','Healing magic skill +10','"Conserve MP"+7','"Fast Cast"+7',}},
legs="Ebers Pant. +1",
feet={ name="Gende. Galosh. +1", augments={'Phys. dmg. taken -1%','"Cure" spellcasting time -4%',}},
neck="Malison Medallion",
waist="Bishop's Sash",
left_ear="Healing Earring",
right_ear="Beatific Earring",
left_ring="Haoma's Ring",
right_ring="Haoma's Ring",
back={ name="Mending Cape", augments={'Healing magic skill +6','Enha.mag. skill +6','Mag. Acc.+9','"Cure" potency +2%',}},
}
sets.midcast.StatusRemoval = {
main="Yagrush",
sub="Sors Shield",
ammo="Incantor Stone",
head="Nahtirah Hat",
body="Anhur Robe",
hands={ name="Fanatic Gloves", augments={'MP+50','Healing magic skill +10','"Conserve MP"+7','"Fast Cast"+7',}},
legs="Ebers Pant. +1",
feet="Regal Pumps +1",
neck="Orunmila's Torque",
waist="Witful Belt",
left_ear="Enchntr. Earring +1",
right_ear="Loquac. Earring",
left_ring="Prolix Ring",
right_ring="Defending Ring",
back="Swith Cape +1",
}
-- 110 total Enhancing Magic Skill; caps even without Light Arts
sets.midcast['Enhancing Magic'] = {
main="Beneficus",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Vanir Battery",
head="Umuthi Hat",
body="Anhur Robe",
hands="Dynasty Mitts",
legs={ name="Piety Pantaln. +1", augments={'Enhances "Shellra V" effect',}},
feet="Orsn. Duckbills +2",
neck="Colossus's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Prolix Ring",
right_ring="defending Ring",
back="Merciful Cape",
}
sets.midcast.Stoneskin = {
head="Nahtirah Hat",neck="Orison Locket",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Dynasty Mitts",
back="Swith Cape +1",waist="Siegel Sash",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.midcast.Auspice = {hands="Dynasty Mitts",feet="Orison Duckbills +2"}
sets.midcast.BarElement = {
main="Beneficus",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Vanir Battery",
head="Orison Cap +2",
body="ebers bliaud +1",
hands="Orison Mitts +2",
legs={ name="Piety Pantaln. +1", augments={'Enhances "Shellra V" effect',}},
feet="Orsn. Duckbills +2",
neck="Colossus's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Prolix Ring",
right_ring="Weather. Ring",
back="Merciful Cape",
}
sets.midcast.Regen = {main="Bolelabunga",sub="Genbu's Shield",
body="Piety Briault +1",hands="Orison Mitts +2",
legs="Theophany Pantaloons"}
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="Marin Staff +1",
sub="Elder's Grip +1",
ammo="Ghastly Tathlum",
head={ name="Helios Band", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','"Occult Acumen"+10','INT+10',}},
body={ name="Witching Robe", augments={'MP+45','Mag. Acc.+14','"Mag.Atk.Bns."+14',}},
hands={ name="Helios Gloves", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','"Occult Acumen"+3','INT+9',}},
legs={ name="Lengo Pants", augments={'INT+8','Mag. Acc.+14','"Mag.Atk.Bns."+13',}},
feet={ name="Helios Boots", augments={'"Mag.Atk.Bns."+25','"Fast Cast"+5','INT+4 MND+4',}},
neck="Eddy Necklace",
waist="Othila Sash",
left_ear="Friomisi Earring",
right_ear="Hecate's Earring",
left_ring="Fenrir Ring +1",
right_ring="Fenrir Ring +1",
back="Toro Cape",
}
sets.midcast['Dark Magic'] = {main="ngqoqwanb", sub="mephitis grip",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Demonry Sash",legs="Bokwus Slops",feet="Piety Duckbills +1"}
-- Custom spell classes
sets.midcast.MndEnfeebles = {
main={ name="Twebuliij", augments={'MP+60','Mag. Acc.+15','MND+12',}},
sub="Mephitis Grip",
ammo="Pemphredo Tathlum",
body="Respite Cloak",
hands="Lurid Mitts",
legs={ name="Artsieq Hose", augments={'MP+30','Mag. Acc.+20','MND+7',}},
feet={ name="Medium's Sabots", augments={'MP+40','MND+6','"Conserve MP"+5','"Cure" potency +3%',}},
neck="Imbodla Necklace",
waist="Ovate Rope",
left_ear="Enchntr. Earring +1",
right_ear="Gwati Earring",
left_ring="Levia. Ring +1",
right_ring="Levia. Ring +1",
back="Ogapepo Cape",
}
sets.midcast.IntEnfeebles = {
main={ name="Twebuliij", augments={'MP+60','Mag. Acc.+15','MND+12',}},
sub="Benthos Grip",
ammo="Oreiad's Tathlum",
head={ name="Artsieq Hat", augments={'MP+30','Mag. Acc.+20','MND+7',}},
body="Vanir Cotehardie",
hands="Lurid Mitts",
legs={ name="Artsieq Hose", augments={'MP+30','Mag. Acc.+20','MND+7',}},
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Imbodla Necklace",
waist="Ovate Rope",
left_ear="Lifestorm Earring",
right_ear="Psystorm Earring",
left_ring="Levia. Ring +1",
right_ring="Levia. Ring +1",
back="Merciful Cape",
}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {main=gear.Staff.HMP,
body="Gendewitha Bliaut",hands="Serpentes Cuffs",
waist="Austerity Belt",legs="Nares Trews",feet="Chelona Boots +1"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle = {
main="Bolelabunga",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Homiliary",
body="Respite Cloak",
hands={ name="Chironic Gloves", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Haste+1','CHR+3','"Mag.Atk.Bns."+13',}},
legs="Assid. Pants +1",
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Bathy Choker",
waist="Slipor Sash",
left_ear="Infused Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Paguroidea Ring",
right_ring="Sheltered Ring",
back="Kumbira Cape",
}
sets.idle.PDT = {main="owleyes", sub="Genbu's Shield",ammo="sihirik",
head="wivre hairpin",neck="twilight torque",ear1="ethereal Earring",ear2="Loquacious Earring",
body="gendewitha bliaut",hands="Serpentes Cuffs",ring1="dark Ring",ring2="dark Ring",
back="shadow mantle",waist="slipor sash",legs="Nares Trews",feet="serpentes sabots"}
sets.idle.Town = {
main="Bolelabunga",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Homiliary",
body="Respite Cloak",
hands={ name="Chironic Gloves", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Haste+1','CHR+3','"Mag.Atk.Bns."+13',}},
legs="Assid. Pants +1",
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Bathy Choker",
waist="Slipor Sash",
left_ear="Infused Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Paguroidea Ring",
right_ring="Sheltered Ring",
back="Kumbira Cape",
}
sets.idle.Weak = {
main="Bolelabunga",
sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Cure" spellcasting time -8%','Wind resistance+9',}},
ammo="Homiliary",
body="Respite Cloak",
hands={ name="Chironic Gloves", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Haste+1','CHR+3','"Mag.Atk.Bns."+13',}},
legs="Assid. Pants +1",
feet={ name="Piety Duckbills +1", augments={'Enhances "Protectra V" effect',}},
neck="Bathy Choker",
waist="Slipor Sash",
left_ear="Infused Earring",
right_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
left_ring="Paguroidea Ring",
right_ring="Sheltered Ring",
back="Kumbira Cape",
}
-- Defense sets
sets.defense.PDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Gendewitha Caubeen",neck="Twilight Torque",
body="Gendewitha Bliaut",hands="Gendewitha Gages",ring1="Defending Ring",ring2=gear.DarkRing.physical,
back="Umbra Cape",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",
head="Nahtirah Hat",neck="Twilight Torque",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Tuilha Cape",legs="Bokwus Slops",feet="Gendewitha Galoshes"}
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 = {
head="Nahtirah Hat",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Vanir Cotehardie",hands="Dynasty Mitts",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Umbra Cape",waist="Goading Belt",legs="Gendewitha Spats",feet="Gendewitha Galoshes"}
-- 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 that are called to process player actions at specific points in time.
-------------------------------------------------------------------------------------------------------------------
-- 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)
local map = spell_maps[spell.en]
if map == 'Cure' and player.sub_job == "SCH" and not buffactive.Aurorastorm then
add_to_chat(123,'Aurorastorm not active.')
windower.play_sound('C:\\Program Files (x86)\\Windower4\\addons\\GearSwap\\data\\wav\\Chime.wav')
end
if map == 'Curaga' and player.sub_job == "SCH" and not buffactive.Aurorastorm then
add_to_chat(123,'Aurorastorm not active.')
windower.play_sound('C:\\Program Files (x86)\\Windower4\\addons\\GearSwap\\data\\wav\\Chime.wav')
end
if spell.english == "Paralyna" and buffactive.Paralyzed then
eventArgs.handled = true
end
if spell.skill == 'Healing Magic' then
gear.default.obi_back = "Mending Cape"
else
gear.default.obi_back = "toro caoe"
end
end
--[[function job_precast(spell, action, spellMap, eventArgs)
if state.Buff[spell.english] ~= nil then
state.Buff[spell.english] = true
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 string.find(spell.english,'Cure') then
equip(sets.midcast.Cure)
if player.mpp <51 then
equip(sets.midcast.Cure.Conserve)
elseif Enmity == 'ON' then
equip(sets.midcast.Cure.Enmity)
elseif buffactive['Weakness'] then
equip(sets.midcast.Cure.Weak)
elseif spell.element == world.weather_element then
equip(sets.midcast.CureWeather)
elseif buffactive['Reive Mark'] then
equip(sets.midcast.Cure.Reive)
elseif Melee == 'ON' then
equip(sets.midcast.Cure.Engaged)
end
end]]
if spell.element == world.weather_element or spell.element==world.day_element then
equip(sets.midcast.CureWeather)
end
end
end
-- Return true if we handled the aftercast work. Otherwise it will fall back
-- to the general aftercast() code in Mote-Include.
function job_aftercast(spell, action, spellMap, eventArgs)
if state.Buff[spell.english] ~= nil then
state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
end
end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
end
function customize_idle_set(idleSet)
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
return idleSet
end
-------------------------------------------------------------------------------------------------------------------
-- General hooks for other events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if state.Buff[buff] ~= nil then
state.Buff[buff] = gain
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-- 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
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'OffenseMode' then
if newValue == 'Normal' then
disable('main','sub')
else
enable('main','sub')
end
elseif stateField == 'Reset' then
if state.OffenseMode == 'None' then
enable('main','sub')
end
end
end
-- Function to display the current relevant user state when doing an update.
-- Return true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
local defenseString = ''
if state.Defense.Active then
local defMode = state.Defense.PhysicalMode
if state.Defense.Type == 'Magical' then
defMode = state.Defense.MagicalMode
end
defenseString = 'Defense: '..state.Defense.Type..' '..defMode..', '
end
local meleeString = ''
if state.OffenseMode == 'Normal' then
meleeString = 'Melee: Weapons locked, '
end
add_to_chat(122,'Casting ['..state.CastingMode..'], '..meleeString..'Idle ['..state.IdleMode..'], '..defenseString..
'Kiting: '..on_off_names[state.Kiting])
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()
-- Default macro set/book
set_macro_page(4, 14)
end
Bismarck.Speedyjim
Serveur: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-03-20 10:26:01
Line 165, you have a shield equipped with a staff, FYI.
Serveur: Sylph
Game: FFXI
Posts: 16
By Sylph.Kuumihumi 2016-03-20 13:18:36
i have a little problem with gearswap. sometimes it swap gearset in wrong sequence. for example on SMN, when i do ward, it switch to BP delay set, then to avatar idle set and finally to summoner skill set, but at this point it stay on summoner skill gearset and i don't gain the benus by summoner skill. what could cause gearswap to mess with gearset sequence?
Serveur: Odin
Game: FFXI
Posts: 28
By Odin.Darkhelmet 2016-03-20 17:42:06
Hello,
I'm looking for a new up-to-date DNC gearswap as mine is a couple of years old, and I'm just starting to regear DNC, so want to just start fresh with a new gearswap. Any assistance is appreciated. Thanks ^^
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-20 18:00:25
i have a little problem with gearswap. sometimes it swap gearset in wrong sequence. for example on SMN, when i do ward, it switch to BP delay set, then to avatar idle set and finally to summoner skill set, but at this point it stay on summoner skill gearset and i don't gain the benus by summoner skill. what could cause gearswap to mess with gearset sequence?
Without seeing your Lua or being given more information, my best guess is that you're using the summoning skill set in your pet_midcast, but you don't call for your idle functions in pet_aftercast.
As for not getting bonus, it's also possible your (player) aftercast is interfering, although it sounds strange that both issues are occurring at the same time. There are a couple ways that you could prevent your aftercast function from processing while your pet is busy. The first thing I would try is placing
Code if pet_midaction() then return end
at the top in your aftercast function. I don't play a pet job, so I can't tell you how reliable this method is. If you're using Mote's, you'll also have to set eventArgs.handled(?) to false (someone who uses Mote's may need to correct me on this).
By cocl 2016-03-20 23:42:34
Thanks Flippant and Ayasha for the help! I must have spent 2-3 hours trying to figure out why it wouldn't work. I really appreciate it.
Bismarck.Speedyjim said: »Line 165, you have a shield equipped with a staff, FYI. Good catch! Thanks :P.
Serveur: Asura
Game: FFXI
Posts: 2666
By Asura.Ladyofhonor 2016-03-21 08:27:37
So I have an issue I haven't been able to resolve. I'm using Mote's THF lua, and in it he has:
sets.precast.WS["Rudra's Storm"] for the WS sets. This is different from the other WS which use sets.precast.WS['Evisceration'] with ' instead of ". Well...it doesn't work.
If I end a BCNM with using the WS, it leaves me in that gearset, and I always get the normal precast.WS set, not the one for Rudra's. LS mates have told me to use a \ in front of Rudra's, so sets.precast.WS['Rudra\'s Storm'] but when I call that set in game it still gives me the precast set.
For now I think I'll just change the precast WS to my Rudra's gear, since the other WS's work fine, but would like to be able to alter the gear slightly for stacked WS's and such, so any tips on how to get this to work?
Lakshmi.Sulia
Serveur: Lakshmi
Game: FFXI
Posts: 83
By Lakshmi.Sulia 2016-03-21 08:46:21
Asura.Ladyofhonor said: »So I have an issue I haven't been able to resolve. I'm using Mote's THF lua, and in it he has:
sets.precast.WS["Rudra's Storm"] for the WS sets. This is different from the other WS which use sets.precast.WS['Evisceration'] with ' instead of ". Well...it doesn't work.
If I end a BCNM with using the WS, it leaves me in that gearset, and I always get the normal precast.WS set, not the one for Rudra's. LS mates have told me to use a \ in front of Rudra's, so sets.precast.WS['Rudra\'s Storm'] but when I call that set in game it still gives me the precast set.
For now I think I'll just change the precast WS to my Rudra's gear, since the other WS's work fine, but would like to be able to alter the gear slightly for stacked WS's and such, so any tips on how to get this to work?
Try changing to sets.WS["Rudra's Storm"], same with your other WS sets. Instead of it being a precast set switch it to sets.WS[]
using " " for WS's with more than one word and ' ' for one word WS's.
Serveur: Asura
Game: FFXI
Posts: 2666
By Asura.Ladyofhonor 2016-03-21 08:56:10
Asura.Ladyofhonor said: »So I have an issue I haven't been able to resolve. I'm using Mote's THF lua, and in it he has:
sets.precast.WS["Rudra's Storm"] for the WS sets. This is different from the other WS which use sets.precast.WS['Evisceration'] with ' instead of ". Well...it doesn't work.
If I end a BCNM with using the WS, it leaves me in that gearset, and I always get the normal precast.WS set, not the one for Rudra's. LS mates have told me to use a \ in front of Rudra's, so sets.precast.WS['Rudra\'s Storm'] but when I call that set in game it still gives me the precast set.
For now I think I'll just change the precast WS to my Rudra's gear, since the other WS's work fine, but would like to be able to alter the gear slightly for stacked WS's and such, so any tips on how to get this to work?
Try changing to sets.WS["Rudra's Storm"], same with your other WS sets. Instead of it being a precast set switch it to sets.WS[]
using " " for WS's with more than one word and ' ' for one word WS's.
This gives me an error as it doesn't recognize .WS without the precast.
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-21 16:01:52
There is no (practical) difference between " and ', and you do not need to escape the comma unless you are manually calling the set in game (which you should be only doing for testing purposes), or you are using single quotes in the GS file, which is not necessary.
Why it does not work, I don't know. Can you paste the entire Lua?
By Arcto 2016-03-21 16:17:47
Having same type of issue mapping Honor March and Marsyas. Not sure how to write it, using mote's v2 gearswap :(
Bismarck.Speedyjim
Serveur: Bismarck
Game: FFXI
Posts: 516
By Bismarck.Speedyjim 2016-03-21 16:38:15
I use Mote's THF.lua as well and the WS sets are written the same way. Mine works perfectly though.
Are you using //gs showswaps to check if it's actually swapping into your sets.precast.WS["Rudra's Storm"] gear?
Serveur: Asura
Game: FFXI
Posts: 2666
By Asura.Ladyofhonor 2016-03-21 18:47:00
Alright, so thanks to Speedy's showswaps command suggestion it seems that the Rudra\'s Storm swap is working, I just can't call it correctly with //gs equip blah blah or something. Thanks for the help.
Carbuncle.Doryll
Serveur: Carbuncle
Game: FFXI
By Carbuncle.Doryll 2016-03-25 03:35:02
Hello ! I'm using the command //gs validate to see if i have all gears the lua use in my inventory, but it doesn't check my wardrobe. Same problem with //gs validate inv.
Is it possible to fix that problem. With wardrobe2 incoming, most of my stuff will be in wardrobe1+2 so it will be more difficult to use these commands.
Thanks
Ragnarok.Flippant
Serveur: Ragnarok
Game: FFXI
Posts: 660
By Ragnarok.Flippant 2016-03-25 15:17:45
Validate sets should definitely be checking if the gear in your GS is in inventory OR wardrobe. If it's not checking your wardrobe, perhaps you have an outdated version?
Validate inventory is specifically for checking to see what items in your inventory are not being used in your GS (so you can put that stuff somewhere else). There's currently no option to validate your wardrobe.
If you want the ability to check your wardrobe for items not being used, you can implement temporary changes to your validate.lua. (I say temporary because it'll just be overwritten the next time you update GS.)
Replace the validate function: Code function validate(options)
local validateType = 'sets'
if options and #options > 0 then
if S{'sets','set','s'}:contains(options[1]:lower()) then
table.remove(options,1)
elseif S{'inventory','inv','i'}:contains(options[1]:lower()) then
validateType = 'inventory'
table.remove(options,1)
elseif S{'wardrobe','w'}:contains(options[1]:lower()) then
validateType = 'wardrobe'
table.remove(options,1)
end
end
if validateType == 'sets' then
validate_sets(options)
else
validate_inventory(validateType,options)
end
end
Replace the validate_inventory function: Code function validate_inventory(bag,filter)
msg.addon_msg(123,'Checking for items in '..bag..' that are not used in your gear sets.')
local extra_items = search_sets_for_items_in_bag(items[bag], filter)
local display_list = get_item_names(extra_items):sort(insensitive_sort)
display_list:map(function(item) msg.add_to_chat(120, windower.to_shift_jis((string.gsub(item, "^%l", string.upper))) ) end)
msg.addon_msg(123,'Final count = '..tostring(display_list:length()))
end
And then use //gs validate w or //gs validate wardrobe in game.
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.
|
|