|
Gearswap Support Thread
サーバ: Asura
Game: FFXI
Posts: 389
By Asura.Patriclis 2018-06-04 12:09:57
Carbuncle.Kigensuro said: »For some reason, my friend's BLM lua doesn't pick up Hachirin-no-obi. It works when I use it, any idea what could be the problem? Is it something with his resources?
Well since you haven't provided the lua in question and told us where the obi is implemented... then my guess is... your friend re-wrote the entire lua using the wingdings font. that made me laugh.
but yes you are correct that we cant tell anything because we have no code and with out it there are an inf amount of possibilities from they don't have it active to using the wingdings font. (from normal to absurd)
Maybe I should write a lua interpreter for wingdings. Clearly there is a demand.
Shiva.Hiep
サーバ: Shiva
Game: FFXI
Posts: 669
By Shiva.Hiep 2018-06-04 16:22:57
Carbuncle.Kigensuro said: »For some reason, my friend's BLM lua doesn't pick up Hachirin-no-obi. It works when I use it, any idea what could be the problem? Is it something with his resources?
Well since you haven't provided the lua in question and told us where the obi is implemented... then my guess is... your friend re-wrote the entire lua using the wingdings font. that made me laugh.
but yes you are correct that we cant tell anything because we have no code and with out it there are an inf amount of possibilities from they don't have it active to using the wingdings font. (from normal to absurd)
Sorry guys, here you go: https://pastebin.com/ZsUmcmx6
サーバ: Asura
Game: FFXI
Posts: 389
By Asura.Patriclis 2018-06-04 17:44:04
Well aside from being a giant mess in need of serious refinement and linting... Code
if spell.element == world.weather_element or spell.element == world.day_element or
(spell.element == 'Lightning' and buffactive['Thunderstorm']) or
(spell.element == 'Ice' and buffactive['Hailstorm']) or
(spell.element == 'Water' and buffactive['Rainstorm']) or
(spell.element == 'Fire' and buffactive['Firestorm']) or
(spell.element == 'Earth' and buffactive['Sandstorm']) or
(spell.element == 'Wind' and buffactive['Windstorm']) or
(spell.element == 'Light' and buffactive['Aurorastorm']) or
(spell.element == 'Dark' and buffactive['Voidstorm']) then
if spell.skill == 'Elemental Magic' and spellMap ~= 'Helix' then
equip(sets[spell.element])
elseif string.find(spell.english,'Cure') then
equip(sets[spell.element])
end
end
This block here isnt looking for storm IIs, which might be his issue though then entire block is redundant since Code
(world.day_element == spell.element or world.weather_element == spell.element)
should be all he needs.
I can't see anything super obvious. But the code is pretty messy.
Also you're using mote-include, and those includes should handle using an obi as well... but mote didnt include the hachirin no obi in his mappings... only the base obis, so you have to add that in.
サーバ: Cerberus
Game: FFXI
Posts: 241
By Cerberus.Mrkillface 2018-06-04 17:44:27
I'm no coder, but if I had to guess, it's because the burst set rule comes after the obi rule and overwrites that set.
サーバ: Asura
Game: FFXI
Posts: 389
By Asura.Patriclis 2018-06-04 17:53:57
Cerberus.Mrkillface said: »I'm no coder, but if I had to guess, it's because the burst set rule comes after the obi rule and overwrites that set. It does look that way... but he uses the obi rule twice, once at the start and once at the end. again, redundant messy code.
Seriously though... this is why I say your code is messy... I took the time to properly indent things and the problem becomes obvious Code
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Elemental Magic' or spell.english == "Kaustra" then
if (spell.element == world.day_element or spell.element == world.weather_element) then
equip(sets.Obi)
end
if spell.action_type == 'Magic' then
if spell.element == "Earth" and spell.skill == 'Elemental Magic' and (state.CastingMode.value == "Normal" or state.CastingMode.value == "ConserveMP") then
equip({neck = "Quanpur Necklace"})
end
if spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
end
if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
if state.CastingMode.value == "ConserveMP" then
equip(sets.magic_burst.ConserveMP)
elseif state.CastingMode.value == "MACC" then
equip(sets.magic_burst.MACC)
else
equip(sets.magic_burst)
end
if spell.english == "Impact" then
equip(sets.midcast.Impact)
if spell.element == world.weather_element or spell.element == world.day_element or
(spell.element == 'Lightning' and buffactive['Thunderstorm']) or
(spell.element == 'Ice' and buffactive['Hailstorm']) or
(spell.element == 'Water' and buffactive['Rainstorm']) or
(spell.element == 'Fire' and buffactive['Firestorm']) or
(spell.element == 'Earth' and buffactive['Sandstorm']) or
(spell.element == 'Wind' and buffactive['Windstorm']) or
(spell.element == 'Light' and buffactive['Aurorastorm']) or
(spell.element == 'Dark' and buffactive['Voidstorm']) then
if spell.skill == 'Elemental Magic' and spellMap ~= 'Helix' then
equip(sets[spell.element])
elseif string.find(spell.english, 'Cure') then
equip(sets[spell.element])
end
end
end
end
end
end
end
Code
if spell.english == "Impact" then
equip(sets.midcast.Impact)
This little impact section neeeeeeeeeeeeeeeeeeds to have an end. and it doesnt.
seriously... indent your code people.
because currently your second obi rule only runs when casting impact.
[+]
サーバ: Asura
Game: FFXI
Posts: 389
By Asura.Patriclis 2018-06-04 17:59:59
Code
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Magic' then
if spellMap == 'Cure' and spell.target.type == 'SELF' then
equip(sets.midcast.CureSelf)
elseif spell.skill == 'Elemental Magic' or spell.english == "Kaustra" then
if spell.element == "Earth" and (state.CastingMode.value == "Normal" or state.CastingMode.value == "ConserveMP") then
equip({neck = "Quanpur Necklace"})
end
if state.MagicBurst.value then
if state.CastingMode.value == "ConserveMP" then
equip(sets.magic_burst.ConserveMP)
elseif state.CastingMode.value == "MACC" then
equip(sets.magic_burst.MACC)
else
equip(sets.magic_burst)
end
end
if spell.english == "Impact" then
equip(sets.midcast.Impact)
end
end
if (spell.element == world.day_element or spell.element == world.weather_element) then
if (spell.skill == 'Elemental Magic' and spellMap ~= 'Helix') or string.find(spell.english, 'Cure') then
equip(sets[spell.element])
end
end
end
There. I cut 16 lines out of your code and it should do the same thing / work better.
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-04 22:42:33
this is how i do my obi equip Code sets.spell_obi={Fire={waist="Karin Obi"},Earth={waist="Dorin Obi"},Water={waist="Suirin Obi"},Wind={waist="Furin Obi"},Ice={waist="Hyorin Obi"},
Lightning={waist="Rairin Obi"},Light={waist="Korin Obi"},Dark={waist="Anrin Obi"},}
--catches if spell.element is number or string (yes it has happened before)
local spell_element = (type(spell.element)=='number' and gearswap.res.elements[spell.element] or gearswap.res.elements:with('name', spell.element))
--checks to see if world.weather_element or world.day_element is the same as spell_element.name from the above catch
if spell_element.name == world.weather_element or spell_element.name == world.day_element then
--checks to see if you have Hachirin-no-Obi in any bago you can equip from if so it equips Hachirin-no-Obi
if item_to_bag("Hachirin-no-Obi") then
equip({waist="Hachirin-no-Obi"})
--checks to see if you have your Elemental Obi in any bag you can equip from if so it equips your Elemental Obi
elseif item_to_bag(sets.spell_obi[spell_element.en].waist) then
equip(sets.spell_obi[spell_element.en])
end
end
function item_to_bag(name)
for _,bag in ipairs({"inventory","wardrobe","wardrobe2","wardrobe3","wardrobe4"}) do
local item = player[bag][name]
if item then return bag end
end
end
Shiva.Hiep
サーバ: Shiva
Game: FFXI
Posts: 669
By Shiva.Hiep 2018-06-05 11:34:35
My friend tested these out and it worked perfectly. Thank you everyone~
サーバ: Sylph
Game: FFXI
Posts: 305
By Sylph.Elgorian 2018-06-13 10:04:43
Code if spell.english:wcmatch('Cure*') and buff=="Aurorastorm" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
elseif spell.english:wcmatch('Cure*') then
equip(sets.midcast.Cure)
elseif spell.english:wcmatch('Curaga*') and buff=="Aurorastorm" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
elseif spell.english:wcmatch('Curaga*') then
equip(sets.midcast.Curaga)
Trying to get this to work. I want my obi to equip when the buff Aurorastorm is up.
Edit: Got the above working. Just trying to figure this part out now:
Also trying to get this to work:
Code function buff_change(name,gain)
if name == 'Aurorastorm' and not gain then
send_command('@ input /echo >>> Aurorastorm Down <<<')
end
end
Just so I have a reminder in case I don't notice it dropping in the middle of a fight.
It works on Paladin for Crusade, but that might be because he's engaged.
サーバ: Cerberus
Game: FFXI
Posts: 1809
By Cerberus.Shadowmeld 2018-06-14 08:26:51
buff_change should work regardless of your Engaged status. I would recommend that you use an S{} table to keep track of all buffs that you want to monitor in this way. You could change the function this way to make it easier to do.
Code
function buff_change(buffname, isgain)
local monitored_buffs = S{"Aurorastorm", "Phalanx",}
if monitored_buffs:contains(buffname) and not isgain then
windower.add_to_chat(80, ">>> " .. buffname .. " Down <<<")
end
end
Notes:
I like to change my function to have more descriptive variable names. buffname instead of name and isgain instead of gain. It makes it easier for someone else to understand what the variable means if they pick it up
To add a buff to the monitored buffs, you just put another string there
80 is the color of the echo command in ffxi. other that I like to use for my add_to_chats are 39 (Red).
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-14 08:41:18
if spell.english:wcmatch('Cure*') and buff=="Aurorastorm" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
elseif spell.english:wcmatch('Cure*') then
equip(sets.midcast.Cure)
elseif spell.english:wcmatch('Curaga*') and buff=="Aurorastorm" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
elseif spell.english:wcmatch('Curaga*') then
equip(sets.midcast.Curaga) i would recommend you use something like this Code if spell.english:starswith('Cure') then
if buffactive["Aurorastorm"] then
equip(sets.midcast.Cure, {waist="Korin Obi"})
else
equip(sets.midcast.Cure)
end
elseif spell.english:starswith('Curaga') then
if buffactive["Aurorastorm"] then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
else
equip(sets.midcast.Curaga)
end
end
for these reasons
1 wcmatch is a vary slow process
2 there is no reason to check to see if the spell starts with Cure or Curaga more then once
3 it may look longer or slower but in actuality it is 3+ times faster
サーバ: Sylph
Game: FFXI
Posts: 305
By Sylph.Elgorian 2018-06-14 13:50:38
Carbuncle.Kigensuro said: »if spell.english:wcmatch('Cure*') and buff=="Aurorastorm" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
elseif spell.english:wcmatch('Cure*') then
equip(sets.midcast.Cure)
elseif spell.english:wcmatch('Curaga*') and buff=="Aurorastorm" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
elseif spell.english:wcmatch('Curaga*') then
equip(sets.midcast.Curaga) i would recommend you use something like this Code if spell.english:starswith('Cure') then
if buffactive["Aurorastorm"] then
equip(sets.midcast.Cure, {waist="Korin Obi"})
else
equip(sets.midcast.Cure)
end
elseif spell.english:starswith('Curaga') then
if buffactive["Aurorastorm"] then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
else
equip(sets.midcast.Curaga)
end
end
for these reasons
1 wcmatch is a vary slow process
2 there is no reason to check to see if the spell starts with Cure or Curaga more then once
3 it may look longer or slower but in actuality it is 3+ times faster
Thanks! That will make things a whole lot easier!
So the 80 is just the color I want it in chat, and 39 is red? :)
Also out of curiosity is there a way to get notified when you zone if a certain buff isn't up or not? Example: I know when zoning into Ambu JA buffs usually don't stick. I will occasionally forget to pop Afflatus Solace like an idiot because I had it up before I entered.
-------------------------------------------------------------------------------------
Carbuncle.Kigensuro said: »if spell.english:wcmatch('Cure*') and buff=="Aurorastorm" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
elseif spell.english:wcmatch('Cure*') then
equip(sets.midcast.Cure)
elseif spell.english:wcmatch('Curaga*') and buff=="Aurorastorm" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
elseif spell.english:wcmatch('Curaga*') then
equip(sets.midcast.Curaga) i would recommend you use something like this Code if spell.english:starswith('Cure') then
if buffactive["Aurorastorm"] then
equip(sets.midcast.Cure, {waist="Korin Obi"})
else
equip(sets.midcast.Cure)
end
elseif spell.english:starswith('Curaga') then
if buffactive["Aurorastorm"] then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
else
equip(sets.midcast.Curaga)
end
end
for these reasons
1 wcmatch is a vary slow process
2 there is no reason to check to see if the spell starts with Cure or Curaga more then once
3 it may look longer or slower but in actuality, it is 3+ times faster
Oh neat, thanks! It's just kind of something I've built myself, and just coming back after 3 years. I have just kind of pulled things from here and there that make sense and slowly evolving it lol.
Is there something similar for ends with? EX: something like storm spells maybe? storm? would it just be endswith("storm")?
So, something like the following should work:
Code if spell.english:startswith('Cure') then
if buffactive["Aurorastorm"] or world.weather=="Auroras" or world.weather=="Stellar glare", or world.day_element=="Light" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
else
equip(sets.midcast.Cure)
end
elseif spell.english:startswith('Curaga') then
if buffactive["Aurorastorm"] or world.weather=="Auroras" or world.weather=="Stellar glare", or world.day_element=="Light" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
else
equip(sets.midcast.Curaga)
end
end
I wanted to add in the Weather/Day also (is there a simplified way to do this?) for instances when I may not have /sch and would like it to equip for the weather/day.
EDIT: Just tried this out and using the startswith gives me an error in the strings lib.
"GearSwap has detected an error in the user function precast:
...strings.lua:146: attempt to get length of local 'substr' (a nil value)" (I was missing some '' on one of the spells. Derp.)
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-14 15:55:43
if spell.english:startswith('Cure') then
if buffactive["Aurorastorm"] or world.weather=="Auroras" or world.weather=="Stellar glare", or world.day_element=="Light" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
else
equip(sets.midcast.Cure)
end
elseif spell.english:startswith('Curaga') then
if buffactive["Aurorastorm"] or world.weather=="Auroras" or world.weather=="Stellar glare", or world.day_element=="Light" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
else
equip(sets.midcast.Curaga)
end
end if you are going to trigger it on all weather of a specific element use world.weather_element not 2 world.weather
like: Code if spell.english:startswith('Cure') then
if buffactive["Aurorastorm"] or world.weather_element=="Light", or world.day_element=="Light" then
equip(sets.midcast.Cure, {waist="Korin Obi"})
else
equip(sets.midcast.Cure)
end
elseif spell.english:startswith('Curaga') then
if buffactive["Aurorastorm"] or world.weather_element=="Light", or world.day_element=="Light" then
equip(sets.midcast.Curaga, {waist="Korin Obi"})
else
equip(sets.midcast.Curaga)
end
end
this will cut 1 check out for each spell
Bismarck.Syuevil
サーバ: Bismarck
Game: FFXI
Posts: 19
By Bismarck.Syuevil 2018-06-18 09:40:27
I'm stumped and was hoping to get some guidance. I noticed that when I cast Aspir III on GEO that my aspir set wasn't loading. I went into Mote-Mappings.lua and saw that Aspir III wasn't listed, which I thought was strange since I saw other Job Point spells like Drain III and all the Threnody IIs. So I went ahead and added it to the mappings and the specific line in the Mote-Mappings.lua should be this:
Code ['Holy']='Holy',['Holy II']='Holy',['Drain']='Drain',['Drain II']='Drain',['Drain III']='Drain',['Aspir']='Aspir',['Aspir II']='Aspir',['Aspir III']='Aspir',
Tried again and the issue persisted. I did an unload and load of GearSwap and nothing changed (logged and reload Windower too). So I entered DebugMode to try to figure out what was happening and Aspir III is being listed as Dark Magic (which it is) and using my DarkMagic midcast set. Any ideas on what might be behind this issue? I'm at work unfortunately and cannot list my GEO.lua at the moment. I do not have an Aspir mapping made in the GEO.lua (I have not tried this yet). I have one rule set that changes my Aspir spell to the next one if I try to cast a spell that is currently on cooldown but asides from that there isn't anything else happening.
I don't have Dark Knight to test Drain III or Bard setup to test Threnody IIs, perhaps it's an issue with the Job Point spells? I'm pretty sure that my Full-Cure works correctly on my White Mage. Any ideas? Thanks so much!
Leviathan.Windowpane
サーバ: Leviathan
Game: FFXI
Posts: 33
By Leviathan.Windowpane 2018-06-19 23:32:17
Can anyone tell me why this will not equip Spaekona's Coat +1, nor equip my free nuke gear?
Code -------------------------------------------------------------------------------------------------------------------
-- (Original: Motenten / Modified: Arislan)
-------------------------------------------------------------------------------------------------------------------
--[[ Custom Features:
Magic Burst Toggle Magic Burst Mode [Alt-`]
Death Mode Casting and Idle modes that maximize MP pool throughout precast/midcast/idle swaps
Capacity Pts. Mode Capacity Points Mode Toggle [WinKey-C]
Auto. Lockstyle Automatically locks desired equipset on file load
--]]
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
function job_setup()
state.CP = M(false, "Capacity Points Mode")
lockstyleset = 6
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('Normal', 'Acc')
state.CastingMode:options('Normal', 'Resistant', 'Spaekona', 'Occult')
state.IdleMode:options('Normal', 'DT')
state.WeaponLock = M(false, 'Weapon Lock')
state.MagicBurst = M(true, 'Magic Burst')
state.DeathMode = M(false, 'Death Mode')
state.CP = M(false, "Capacity Points Mode")
state.Spaek=M(false, 'Spae. Coat +1')
lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder'}
-- Additional local binds
-- include('Global-Binds.lua') -- OK to remove this line
-- include('Global-GEO-Binds.lua') -- OK to remove this line
send_command('bind ^` input /ma Stun <t>')--;input /p <wstar> #1 Stun <t>, Articgun next. <wstar> <call14>')
send_command('bind !` gs c toggle MagicBurst')
send_command('bind !p input /ma "Shock Spikes" <me>')
send_command('bind @d gs c toggle DeathMode')
send_command('bind @c gs c toggle CP')
send_command('bind @w gs c toggle WeaponLock')
send_command('bind @` gs c toggle Spaek')
send_command('bind ^numpad0 input /Myrkr')
send_command('bind !e input /item "Echo Drops" <me>')
send_command('bind !r input /item "Remedy" <me>')
send_command('bind !p input /item "Panacea" <me>')
send_command('bind !h input /item "Holy Water" <me>')
send_command('bind !w input /equip ring2 "Warp Ring"; /echo Warping; wait 11; input /item "Warp Ring" <me>;')
send_command('bind !q input /equip ring2 "Dim. Ring (Holla)"; /echo Reisenjima; wait 11; input /item "Dim. Ring (Holla)" <me>;')
select_default_macro_book()
set_lockstyle()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind !p')
send_command('unbind ^,')
send_command('unbind !.')
send_command('unbind @d')
send_command('unbind @c')
send_command('unbind @w')
send_command('unbind @`')
send_command('unbind ^numpad0')
send_command('unbind #`')
send_command('unbind #1')
send_command('unbind #2')
send_command('unbind #3')
send_command('unbind #4')
send_command('unbind #5')
send_command('unbind #6')
send_command('unbind #7')
send_command('unbind #8')
send_command('unbind #9')
send_command('unbind #0')
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="Wicce Sabots +1",
back=gear.BLM_Death_Cape,
}
sets.precast.JA.Manafont = {body="Arch. Coat +1"}
-- Fast cast sets for spells
sets.precast.FC = {
-- /RDM --15 /SCH --10
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Clerisy Strap",
ammo="Sapience Orb",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+15','"Fast Cast"+5','Mag. Acc.+5',}},
neck="Sanctity Necklace",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Vanir Cotehardie",
hands="Loagaeth Cuffs",
ring1="Prolix Ring",
ring2="Kishar Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Channeler's Stone",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet={ name="Amalric Nails", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Clerisy Strap",
ammo="Impatiens",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+15','"Fast Cast"+5','Mag. Acc.+5',}},
neck="Sanctity Necklace",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Vanir Cotehardie",
hands="Loagaeth Cuffs",
ring1="Prolix Ring",
ring2="Lebeche Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Witful Belt",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet={ name="Amalric Nails", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
})
sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
waist="Channeler's Stone", --2
})
sets.precast.FC.Cure = set_combine(sets.precast.FC, {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Clerisy Strap",
ammo="Impatiens",
head={ name="Merlinic Hood", augments={'"Mag.Atk.Bns."+15','"Fast Cast"+5','Mag. Acc.+5',}},
neck="Sanctity Necklace",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Vanir Cotehardie",
hands="Loagaeth Cuffs",
ring1="Prolix Ring",
ring2="Lebeche Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Witful Belt",
legs="Doyen Pants",
feet={ name="Amalric Nails", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
})
sets.precast.FC.Curaga = sets.precast.FC.Cure
sets.precast.FC.Impact = {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Clerisy Strap",
ammo="Sapience Orb",
head=empty,
neck="Sanctity Necklace",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Twilight Cloak",
hands="Loagaeth Cuffs",
ring1="Prolix Ring",
ring2="Kishar Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Channeler's Stone",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet={ name="Amalric Nails", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
}
sets.precast.Storm = set_combine(sets.precast.FC, {
ring2="Levia. Ring +1",
waist="Channeler's Stone"}) -- stop quick cast
sets.precast.FC.DeathMode = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Clerisy Strap",
ammo="Psilomene",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
neck="Sanctity Necklace",
ear1="Etiolation Earring",
ear2="Loquacious Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands="Loagaeth Cuffs",
ring1="Kishar Ring",
ring2="Mephitas's Ring +1",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Channeler's Stone",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet={ name="Amalric Nails", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
}
sets.precast.FC.Impact.DeathMode = set_combine(sets.precast.FC.DeathMode, {head=empty, body="Twilight Cloak"})
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {
ammo="Psilomene",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
neck="Sanctity Necklace",
ear1="Barkaro. Earring",
ear2="Loquac. Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands="Telchine Gloves",
ring1="Lebeche Ring",
ring2="Prolix Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet="Telchine Pigaches"
}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Vidohunir'] = {
ammo="Pemphredo Tathlum",
head="Mallquis Chapeau +1",
neck="Fotia Gorget",
ear1="Moonshade Earring",
ear2="Lugra Earring",
body="Jhakri Robe +2",
hands="Mallquis Cuffs +1",
ring1="Shiva Ring +1",
ring2="Shiva Ring +1",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Fotia Belt",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet="Mallquis Clogs +1"
} -- INT
sets.precast.WS['Myrkr'] = {
ammo="Psilomene",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
neck="Sanctity Necklace",
ear1="Barkaro. Earring",
ear2="Loquac. Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands="Telchine Gloves",
ring1="Lebeche Ring",
ring2="Prolix Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet="Telchine Pigaches"
} -- Max MP
---- Midcast Sets ----
sets.midcast.FastRecast = {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Clerisy Strap",
ammo="Impatiens",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
neck="Sanctity Necklace",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Vanir Cotehardie",
hands="Mallquis Cuffs +1",
ring1="Kishar Ring",
ring2="Lebeche Ring",
back="Perimede Cape",
waist="Witful Belt",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}},
} -- Haste
sets.midcast.Cure = {
main="Bolelabunga",
sub="Sors Shield",
ammo="Hydrocera",
head="Befouled Crown",
neck="Nuna Gorget +1",
ear1="Mendicant's Earring",
ear2="Roundel Earring",
body="Vanir Cotehardie",
hands="Loagaeth Cyffs",
ring1="Stikini Ring +1",
ring2="Stikini Ring +1",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Witful Belt",
legs="Doyen Pants",
feet="Regal Pumps +1 +1"
}
sets.midcast.Curaga = set_combine(sets.midcast.Cure, {
main="Bolelabunga",
sub="Sors Shield",
ammo="Hydrocera",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Nuna Gorget +1",
ear1="Mendicant's Earring",
ear2="Roundel Earring",
body="Vanir Cotehardie",
hands="Mallquis Cuffs +1",
ring1="Lebeche Ring",
ring2="Levia. Ring +1",
back="Perimede Cape",
waist="Luminary Sash",
legs="Doyen Pants",
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}},
})
sets.midcast.Cursna = set_combine(sets.midcast.Cure, {
main="Bolelabunga",
sub="Sors Shield",
ammo="Pemphredo Tathlum",
head="Befouled Crown",
neck="Malison Medallion",
ear1="Beatific Earring",
ear2="Enchanter Earring +1",
body="Vanir Cotehardie",
hands="Loagaeth Cuffs",
ring1="Haoma's Ring",
ring2="Haoma's Ring",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Luminary Sash",
legs="Doyen Pants",
feet="Regal Pumps +1"
})
sets.midcast['Enhancing Magic'] = {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Enki Strap",
ammo="Hydrocera",
head="Befouled Crown",
body="Telchine Chas.",
hands="Telchine Gloves",
legs="Assiduity Pants +1",
feet="Regal Pumps +1",
neck="Loricate Torque +1",
waist="Cascade Belt",
ear1="Augmenting Earring",
ear1="Andoaa Earring",
ring1="Stikini Ring +1",
ring2="Stikini Ring +1",
back="Perimede Cape",}
sets.midcast.EnhancingDuration = {
main="Gada",
sub="Ammurapi Shield",
head="Telchine Cap",
body="Telchine Chas.",
hands="Telchine Gloves",
legs="Telchine Braconi",
feet="Telchine Pigaches",
}
sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {
main="Bolelabunga",
sub="Sors Shield",
ammo="Hydrocera",
body="Telchine Chas.",
})
sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
--feet="Inspirited Boots",
--waist="Gishdubar Sash",
--back="Grapevine Cape",
})
sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
main={ name="Gada", augments={'Enh. Mag. eff. dur. +6','MND+1','Mag. Acc.+19','DMG:+5',}},
sub="Genmei Shield",
ammo="Hydrocera",
head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +9',}},
neck="Nodens Gorget",
ear1="Andoaa Earring",
ear2="Earthcry Earring",
body={ name="Telchine Chas.", augments={'Enh. Mag. eff. dur. +9',}},
hands={ name="Telchine Gloves", augments={'Enh. Mag. eff. dur. +10',}},
ring1="Stikini Ring +1",
ring2="Stikini Ring +1",
back="Perimede Cape",
waist="Siegel Sash",
legs="Shedir Seraweels",
feet={ name="Telchine Pigaches", augments={'Enh. Mag. eff. dur. +10',}},
})
sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
--main="Vadose Rod",
--sub="Ammurapi Shield",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
--waist="Emphatikos Rope",
legs="Shedir Seraweels",
})
sets.midcast.Protect = set_combine(sets.midcast.EnhancingDuration, {
ring1="Sheltered Ring",
})
sets.midcast.Protectra = sets.midcast.Protect
sets.midcast.Shell = sets.midcast.Protect
sets.midcast.Shellra = sets.midcast.Protect
sets.midcast.MndEnfeebles = {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Enki Strap",
ammo="Hydrocera",
head="Befouled Crown",
neck="Erra Pendant",
ear1="Barkarole Earring",
ear2="Dignitary's Earring",
body="Spae. Coat +1",
hands="Mallquis Cuffs +1",
ring1="Levia. Ring +1",
ring2="Kishar Ring",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Luminary Sash",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet="Mallquis Clogs +1"
} -- MND/Magic accuracy
sets.midcast.IntEnfeebles = set_combine(sets.midcast.MndEnfeebles, {
ring1="Shiva Ring +1",
ring2="Shiva Ring +1",
}) -- INT/Magic accuracy
sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
sets.midcast['Dark Magic'] = {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Enki Strap",
ammo="Pemphredo Tathlum",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Erra Pendant",
ear1="Barkarole Earring",
ear2="Dignitary's Earring",
body="Jhakri Robe +2",
hands="Archmage's Gloves +1",
ring1="Evanescence Ring",
ring2="Stikini Ring +1",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet="Mallquis Clogs +1"
}
sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Enki Strap",
ammo="Pemphredo Tathlum",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Erra Pendant",
ear1="Barkaro. Earring",
ear2="Hirudinea Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands="Jhakri Cuffs +1",
ring1="Evanescence Ring",
ring2="Kishar Ring",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Fucho-no-Obi",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}},
})
sets.midcast.Aspir = sets.midcast.Drain
sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {
feet="Regal Pumps +1",
waist="Channeler's Stone",
})
sets.midcast.Death = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Psilomene",
head="Pixie Hairpin +1",
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Static Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Shiva Ring +1",
ring2="Mujin Band",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',
}}}
sets.midcast.Death.Resistant = set_combine(sets.midcast.Death, {
main={ name="Grioavolr", augments={'"Fast Cast"+7','MND+1','Mag. Acc.+30','"Mag.Atk.Bns."+3','Magic Damage +1',}},
sub="Enki Strap",
head="Pixie Hairpin +1",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
ring2="Shiva Ring +1",
})
sets.midcast.Death.Occult = set_combine(sets.midcast.Death, {
sub="Niobid Strap",
head="Pixie Hairpin +1",
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Static Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Shiva Ring +1",
ring2="Mujin Band",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',
}}})
-- Elemental Magic sets
sets.midcast['Elemental Magic'] = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Friomisi Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Mujin Band",
ring2="Shiva Ring +1",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}},
}
sets.midcast['Elemental Magic'].DeathMode = set_combine(sets.midcast['Elemental Magic'], {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Psilomene",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Static Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Shiva Ring +1",
ring2="Mujin Band",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',
}}})
sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
main=gear.Grioavolr_MB,
sub="Clerisy Strap",
neck="Sanctity Necklace",
waist="Luminary Sash",
})
sets.midcast['Elemental Magic'].Spaekona = set_combine(sets.midcast['Elemental Magic'], {
body="Spae. Coat +1",
})
sets.midcast['Elemental Magic'].Occult = set_combine(sets.midcast['Elemental Magic'], {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Friomisi Earring",
body="Spae. Coat +1",
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Mujin Band",
ring2="Shiva Ring +1",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}},
})
sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Enki Strap",
ammo="Pemphredo Tathlum",
head=empty,
neck="Sanctity Necklace",
ear1="Barkaro. Earring",
ear2="Friomisi Earring",
body="Twilight Cloak",
hands="Jhakri Cuffs +1",
ring1="Shiva Ring +1",
ring2="Shiva Ring +1",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}}
})
sets.midcast.Impact.Resistant = set_combine(sets.midcast['Elemental Magic'].Resistant, {
sub="Enki Strap",
head=empty,
body="Twilight Cloak",
})
sets.midcast.Impact.Occult = set_combine(sets.midcast.Impact, {
})
-- Initializes trusts at iLvl 119
sets.midcast.Trust = sets.precast.FC
sets.resting = {
main="Chatoyant Staff",
sub="Oneiros Grip",
ammo="Psilomene",
head="Orvail Corona +1",
neck="Eidolon Pendant +1",
ear1="Relaxing Earring",
ear2="Genmei Earring",
body="Jhakri Robe +2",
hands="Serpentes Cuffs",
ring1="Stikini Ring +1",
ring2="Stikini Ring +1",
back="Kumbira Cape",
waist="Shinjutsu-no-Obi",
legs="Assiduity Pants +1",
feet="Serpentes Sabots"
}
-- Idle sets
sets.idle = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Oneiros Strap",
ammo="Psilomene",
head="Befouled Crown",
neck="Bathy Choker +1",
ear1="Etiolation Earring",
ear2="Loquacious Earring",
body="Jhakri Robe +2",
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Stikini Ring +1",
ring2="Stikini Ring +1",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet = "Crier's Gaiters",
}
sets.idle.DT = set_combine(sets.idle, {
main="Terra's Staff",
sub="Oneiros Strap",
ammo="Staunch Tathlum +1",
head={ name="Amalric Coif", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
neck="Loricate Torque +1",
ear1="Etiolation Earring",
ear2="Genmei Earring",
body="Jhakri Robe +2",
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1={ name="Dark Ring", augments={'Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
ring2="Defending Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet = "Crier's Gaiters",
})
sets.idle.ManaWall = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Oneiros Strap",
ammo="Staunch Tathlum +1",
head="Pixie Hairpin +1",
neck="Loricate Torque +1",
ear1="Etiolation Earring",
ear2="Genmei Earring",
body="Jhakri Robe +2",
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Defending Ring",
ring2={ name="Dark Ring", augments={'Magic dmg. taken -5%','Phys. dmg. taken -4%',}},
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet = "Crier's Gaiters",
}
sets.idle.DeathMode = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Oneiros Strap",
ammo="Psilomene",
head="Pixie Hairpin +1",
neck="Sanctity Necklace",
ear1="Etiolation Earring",
ear2="Loquacious Earring",
body="Jhakri Robe +2",
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Lebeche Ring",
ring2="Prolix Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Amalric Slops", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
feet = "Crier's Gaiters",
}
sets.idle.Town = set_combine(sets.idle, {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Friomisi Earring",
body="Jhakri Robe +2",
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Kishar Ring",
ring2="Mujin Band",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet = "Crier's Gaiters",
})
sets.idle.Weak = sets.idle.DT
-- Defense sets
sets.defense.PDT = sets.idle.DT
sets.defense.MDT = sets.idle.DT
sets.Kiting = {feet="Herald's Gaiters"}
sets.latent_refresh = {waist="Fucho-no-obi"}
sets.latent_dt = {ear2="Sorcerer's Earring"}
sets.magic_burst = {
main={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Pemphredo Tathlum",
head={ name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic Damage +9','Mag. Acc.+14','"Mag.Atk.Bns."+15',}},
neck="Mizukage-no-Kubikazari",
ear1="Barkaro. Earring",
ear2="Friomisi Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Mujin Band",
ring2="Shiva Ring +1",
back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
waist="Refoccilation Stone",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+22','Magic burst dmg.+10%','Mag. Acc.+14',}},
}
sets.magic_burst.Resistant = {}
-- 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={ name="Lathi", augments={'MP+80','INT+20','"Mag.Atk.Bns."+20',}},
sub="Niobid Strap",
ammo="Psilomene",
head="Nahtirah Hat",
neck="Lissome Necklace",
ear1="Etiolation Earring",
ear2="Loquacious Earring",
body={ name="Amalric Doublet", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
hands={ name="Amalric Gages", augments={'MP+60','Mag. Acc.+15','"Mag.Atk.Bns."+15',}},
ring1="Lebeche Ring",
ring2="Prolix Ring",
back={ name="Taranus's Cape", augments={'MP+60','Mag. Acc+20 /Mag. Dmg.+20','MP+20','"Fast Cast"+10',}},
waist="Shinjutsu-no-Obi",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+4 "Mag.Atk.Bns."+4','Magic burst dmg.+10%','MND+1','Mag. Acc.+5','"Mag.Atk.Bns."+10',}},
feet="Regal Pumps +1 +1",
}
sets.buff.Doom = {--ring1="Eshmun's Ring", ring2="Eshmun's Ring", waist="Gishdubar Sash"
}
sets.DarkAffinity = {head="Pixie Hairpin +1",ring2="Archon Ring"}
sets.Obi = {waist="Hachirin-no-Obi"}
sets.CP = {back="Mecisto. Mantle"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
check_equip_lock()
if spell.action_type == 'Magic' and state.DeathMode.value then
eventArgs.handled = true
equip(sets.precast.FC.DeathMode)
if spell.english == "Impact" then
equip(sets.precast.FC.Impact.DeathMode)
end
end
if buffactive['Mana Wall'] then
equip(sets.precast.JA['Mana Wall'])
end
end
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.name == 'Impact' then
equip(sets.precast.FC.Impact)
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)
check_equip_lock()
if spell.action_type == 'Magic' and state.DeathMode.value then
eventArgs.handled = true
if spell.skill == 'Elemental Magic' then
equip(sets.midcast['Elemental Magic'].DeathMode)
else
if state.CastingMode.value == "Resistant" then
equip(sets.midcast.Death.Resistant)
else
equip(sets.midcast.Death)
end
end
end
if buffactive['Mana Wall'] then
equip(sets.precast.JA['Mana Wall'])
end
end
function job_post_midcast(spell, action, spellMap, eventArgs)
check_equip_lock()
if spell.skill == 'Enhancing Magic' and classes.NoSkillSpells:contains(spell.english) and not state.DeathMode.value then
equip(sets.midcast.EnhancingDuration)
if spellMap == 'Refresh' then
equip(sets.midcast.Refresh)
end
end
if spell.skill == 'Elemental Magic' and spell.english == "Comet" then
equip(sets.DarkAffinity)
end
if spell.skill == 'Elemental Magic' then
if state.MagicBurst.value and spell.english ~= 'Death' then
if state.CastingMode.value == "Resistant" then
equip(sets.magic_burst.Resistant)
else
equip(sets.magic_burst)
end
if spell.english == "Impact" then
equip(sets.midcast.Impact)
end
end
if (spell.element == world.day_element or spell.element == world.weather_element) then
equip(sets.Obi)
end
end
if buffactive['Mana Wall'] then
equip(sets.precast.JA['Mana Wall'])
end
end
function job_midcast(spell, action, spellMap, eventArgs)
check_equip_lock()
if spell.skill == 'Elemental Magic' and state.Spaek.value then
equipSet = set_combine(equipSet,sets.midcast['Elemental Magic'].Spaekona)
end
end
function job_aftercast(spell, action, spellMap, eventArgs)
check_equip_lock()
if not spell.interrupted then
if spell.english == "Sleep II" or spell.english == "Sleepga II" then
send_command('@timers c "Sleep II ['..spell.target.name..']" 90 down spells/00259.png')
elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
send_command('@timers c "Sleep ['..spell.target.name..']" 60 down spells/00253.png')
elseif spell.english == "Break" or spell.english == "Breakga" then
send_command('@timers c "Break ['..spell.target.name..']" 30 down spells/00255.png')
end
end
end
function pretarget(spell,action)
if spell.action_type == 'Magic' and buffactive.silence then -- Auto Use Echo Drops If You Are Silenced --
cancel_spell()
windower.send_command('input /item "Echo Drops" <me>')
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 armor when Mana Wall buff is lost.
if buff== "Mana Wall" then
if gain then
--send_command('gs enable all')
equip(sets.precast.JA['Mana Wall'])
--send_command('gs disable all')
else
--send_command('gs enable all')
handle_equipping_gear(player.status)
end
end
if buff == "doom" then
if gain then
equip(sets.buff.Doom)
send_command('@input /p doom halp pls')
disable(' ','ring2','waist')
else
enable(' ','ring2','waist')
handle_equipping_gear(player.status)
end
end
end
-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if state.WeaponLock.value == true then
disable('main','sub')
else
enable('main','sub')
end
end
-- latent DT set auto equip on HP% change
windower.register_event('hpp change', function(new, old)
if new<=25 then
equip(sets.latent_dt)
end
end)
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
if spell.action_type == 'Magic' then
if spell.skill == "Enfeebling Magic" then
if spell.type == "WhiteMagic" then
return "MndEnfeebles"
else
return "IntEnfeebles"
end
end
end
end
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
if state.DeathMode.value then
idleSet = sets.idle.DeathMode
end
if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end
if player.hpp <= 25 then
idleSet = set_combine(idleSet, sets.latent_dt)
end
if state.CP.current == 'on' then
equip(sets.CP)
disable('back')
else
enable('back')
end
if buffactive['Mana Wall'] then
idleSet = set_combine(idleSet, sets.precast.JA['Mana Wall'])
end
return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
if buffactive['Mana Wall'] then
meleeSet = set_combine(meleeSet, sets.precast.JA['Mana Wall'])
end
return meleeSet
end
function customize_defense_set(defenseSet)
if buffactive['Mana Wall'] then
defenseSet = set_combine(defenseSet, sets.precast.JA['Mana Wall'])
end
return defenseSet
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
function check_equip_lock() -- Lock Equipment Here --
if player.equipment.ring1 == "Warp Ring" or
player.equipment.ring1 == "Capacity Ring" or
player.equipment.ring1 == "Trizek Ring" or
player.equipment.ring1 == "Dim. Ring (Dem)" or
player.equipment.ring1 == "Dim. Ring (Mea)" or
player.equipment.ring1 == "Dim. Ring (Holla)" or
player.equipment.ring1 == "Echad Ring" or
player.equipment.ring1 == "Emperor Band" or
player.equipment.ring1 == "Reraise Ring" or
player.equipment.ring1 == "Tavnazian Ring" or
player.equipment.ring1 == "Caliber Ring" or
player.equipment.ring1 == "Olduum Ring" or
player.equipment.ring1 == "Facility Ring" then
disable('ring1')
else
enable('ring1')
end
if player.equipment.ring2 == "Warp Ring" or
player.equipment.ring2 == "Capacity Ring" or
player.equipment.ring2 == "Trizek Ring" or
player.equipment.ring2 == "Dim. Ring (Dem)" or
player.equipment.ring2 == "Dim. Ring (Mea)" or
player.equipment.ring2 == "Dim. Ring (Holla)" or
player.equipment.ring2 == "Echad Ring" or
player.equipment.ring2 == "Emperor Band" or
player.equipment.ring2 == "Reraise Ring" or
player.equipment.ring2 == "Tavnazian Ring" or
player.equipment.ring2 == "Caliber Ring" or
player.equipment.ring2 == "Olduum Ring" or
player.equipment.ring2 == "Facility Ring" then
disable('ring2')
else
enable('ring2')
end
if player.equipment.back == "Mecisto. Mantle" or
player.equipment.back == "Aptitude Mantle +1" or
player.equipment.back == "Aptitude Mantle" then
disable('back')
else
enable('back')
end
if player.equipment.ear1 == "Terminus Earring" or
player.equipment.ear1 == "Liminus Earring" or
player.equipment.ear1 == "Reraise Earring" then
disable('ear1')
else
enable('ear1')
end
if player.equipment.ear2 == "Terminus Earring" or
player.equipment.ear2 == "Liminus Earring" or
player.equipment.ear2 == "Reraise Earring" then
disable('ear2')
else
enable('ear2')
end
if player.equipment.body == "Trench Tunic" then
disable('body')
else
enable('body')
end
if player.equipment.hands == "Treefeller Gloves" then
disable('hands')
else
enable('hands')
end
if player.equipment.legs == "Dredger Hose" then
disable('legs')
else
enable('legs')
end
if player.equipment.feet == "Agrarian Boots" then
disable('feet')
else
enable('feet')
end
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, 3)
end
function set_lockstyle()
send_command('wait 2; input /lockstyleset 6')
end
Shiva.Hiep
サーバ: Shiva
Game: FFXI
Posts: 669
By Shiva.Hiep 2018-06-19 23:42:01
I'm stumped and was hoping to get some guidance. I noticed that when I cast Aspir III on GEO that my aspir set wasn't loading. I went into Mote-Mappings.lua and saw that Aspir III wasn't listed, which I thought was strange since I saw other Job Point spells like Drain III and all the Threnody IIs. So I went ahead and added it to the mappings and the specific line in the Mote-Mappings.lua should be this:
Code ['Holy']='Holy',['Holy II']='Holy',['Drain']='Drain',['Drain II']='Drain',['Drain III']='Drain',['Aspir']='Aspir',['Aspir II']='Aspir',['Aspir III']='Aspir',
Tried again and the issue persisted. I did an unload and load of GearSwap and nothing changed (logged and reload Windower too). So I entered DebugMode to try to figure out what was happening and Aspir III is being listed as Dark Magic (which it is) and using my DarkMagic midcast set. Any ideas on what might be behind this issue? I'm at work unfortunately and cannot list my GEO.lua at the moment. I do not have an Aspir mapping made in the GEO.lua (I have not tried this yet). I have one rule set that changes my Aspir spell to the next one if I try to cast a spell that is currently on cooldown but asides from that there isn't anything else happening.
I don't have Dark Knight to test Drain III or Bard setup to test Threnody IIs, perhaps it's an issue with the Job Point spells? I'm pretty sure that my Full-Cure works correctly on my White Mage. Any ideas? Thanks so much!
Not the prettiest way I think, but this is how I do it in my luas, Code sets.midcast.Drain = {main="Lathi",
ammo="Pemphredo Tathlum",
head="Pixie Hairpin +1",
body=gear.DrainBody,
hands=gear.DrainHands,
legs="Spaekona's Tonban +3",
feet=gear.DrainFeet,
neck="Erra Pendant",
waist="Fucho-no-Obi",
left_ear="Hirudinea Earring",
right_ear="Regal Earring",
left_ring="Archon Ring",
right_ring="Evanescence Ring",
back=gear.FCCape,}
sets.midcast.Aspir = sets.midcast.Drain
sets.midcast["Aspir II"] = sets.midcast.Drain
sets.midcast["Aspir III"] = sets.midcast.Drain
Bismarck.Syuevil
サーバ: Bismarck
Game: FFXI
Posts: 19
By Bismarck.Syuevil 2018-06-20 00:09:07
Not the prettiest way I think, but this is how I do it in my luas,
I just ended up defining a custom spell set and made a gear set for it. This is how I went about it:
Code function job_setup()
dark_magic_maps = {}
dark_magic_maps.DrainAspir = S{
'Drain', 'Aspir', 'Aspir II', 'Aspir III'
}
end
function init_gear_sets()
sets.midcast['Dark Magic'].DrainAspir = {whatever your set is}
end
function job_get_spell_map(spell, default_spell_map)
if spell.skill == 'Dark Magic' then
for category,spell_list in pairs(dark_magic_maps) do
if spell_list:contains(spell.english) then
return category
end
end
end
end
Just perplexed that I couldn't get it universally defined in the Motes-Mappings.lua /shrug I just ported this from my Blue Mage lua.
サーバ: Asura
Game: FFXI
Posts: 159
By Asura.Warusha 2018-06-21 09:30:32
I'm having issues with Gearswap. I keep getting errors for inexplicable reasons with Mote libraries. Gear isn't swapping. I have been building sets with no issues using export... until just now. I tried exporting my current gear set and this is what was spit out.
Code {
main="Contemplator +1",
sub="Oneiros Grip",
ammo="Homiliary",
head="Ea Hat +1",
body="Shamash Robe",
hands={ name="Chironic Gloves", augments={'STR+7','Accuracy+3','"Refresh"+2','Accuracy+18 Attack+18','Mag. Acc.+9 "Mag.Atk.Bns."+9',}},
legs="Ea Slops +1",
feet={ name="Arch. Sabots +3", augments={'Reduces Ancient Magic II MP cost',}},
neck="Loricate Torque +1",
waist="Slipor Sash",
left_ear="Lugalbanda Earring",
right_ear="Sanare Earring",
left_ring="Stikini Ring +1",
right_ring="Stikini Ring +1",
back="Moonlight Cape",
}
Not only is this gear different from what's equipped, you can't even have this particular amalgamation of gear equipped at once.
I have tried downloading a fresh copy of mote libraries, gearswap, and banging my head against the wall. I've recently returned and am rewriting all my luas from what I can find online and attempt to recreate my old system.
I have downloaded a lot of the new HD mod packs, which are awesome! Now I'm curious if I'm having issues on account of those dat mods. I have a small brain and limited reasoning abilities, so that only makes sense. If anyone could lend me a hand here I'd really appreciate it.
https://pastebin.com/kyhp93iw
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-22 02:51:01
I'm having issues with Gearswap. I keep getting errors for inexplicable reasons with Mote libraries. Gear isn't swapping. I have been building sets with no issues using export... until just now. I tried exporting my current gear set and this is what was spit out.
Code {
main="Contemplator +1",
sub="Oneiros Grip",
ammo="Homiliary",
head="Ea Hat +1",
body="Shamash Robe",
hands={ name="Chironic Gloves", augments={'STR+7','Accuracy+3','"Refresh"+2','Accuracy+18 Attack+18','Mag. Acc.+9 "Mag.Atk.Bns."+9',}},
legs="Ea Slops +1",
feet={ name="Arch. Sabots +3", augments={'Reduces Ancient Magic II MP cost',}},
neck="Loricate Torque +1",
waist="Slipor Sash",
left_ear="Lugalbanda Earring",
right_ear="Sanare Earring",
left_ring="Stikini Ring +1",
right_ring="Stikini Ring +1",
back="Moonlight Cape",
}
Not only is this gear different from what's equipped, you can't even have this particular amalgamation of gear equipped at once.
I have tried downloading a fresh copy of mote libraries, gearswap, and banging my head against the wall. I've recently returned and am rewriting all my luas from what I can find online and attempt to recreate my old system.
I have downloaded a lot of the new HD mod packs, which are awesome! Now I'm curious if I'm having issues on account of those dat mods. I have a small brain and limited reasoning abilities, so that only makes sense. If anyone could lend me a hand here I'd really appreciate it.
https://pastebin.com/kyhp93iwyou need to report this to Windower
https://github.com/Windower/Lua/issues
because gear export is handled by gearswap internally not by any include
Phoenix.Uzugami
By Phoenix.Uzugami 2018-06-22 18:14:35
So, finally get back into 11 and all, My gearswap files work but I can't remember if there's a way to use them in actual macros ingame? I've tried stuff like //gs c equip but nothing seems to work? c:
Shiva.Znitch
サーバ: Shiva
Game: FFXI
Posts: 191
By Shiva.Znitch 2018-06-22 18:35:24
/console gs c equip sets.engaged.Acc
The sets are case sensitive
Phoenix.Uzugami
By Phoenix.Uzugami 2018-06-22 18:54:01
/console gs c equip sets.engaged.Acc
The sets are case sensitive Hm, tried that too but it's not equipping my sets, even reloaded gs but they won't manually equip
Lakshmi.Elidyr
サーバ: Lakshmi
Game: FFXI
Posts: 912
By Lakshmi.Elidyr 2018-06-22 19:16:36
Carbuncle.Kigensuro said: »I'm having issues with Gearswap. I keep getting errors for inexplicable reasons with Mote libraries. Gear isn't swapping. I have been building sets with no issues using export... until just now. I tried exporting my current gear set and this is what was spit out.
Code {
main="Contemplator +1",
sub="Oneiros Grip",
ammo="Homiliary",
head="Ea Hat +1",
body="Shamash Robe",
hands={ name="Chironic Gloves", augments={'STR+7','Accuracy+3','"Refresh"+2','Accuracy+18 Attack+18','Mag. Acc.+9 "Mag.Atk.Bns."+9',}},
legs="Ea Slops +1",
feet={ name="Arch. Sabots +3", augments={'Reduces Ancient Magic II MP cost',}},
neck="Loricate Torque +1",
waist="Slipor Sash",
left_ear="Lugalbanda Earring",
right_ear="Sanare Earring",
left_ring="Stikini Ring +1",
right_ring="Stikini Ring +1",
back="Moonlight Cape",
}
Not only is this gear different from what's equipped, you can't even have this particular amalgamation of gear equipped at once.
I have tried downloading a fresh copy of mote libraries, gearswap, and banging my head against the wall. I've recently returned and am rewriting all my luas from what I can find online and attempt to recreate my old system.
I have downloaded a lot of the new HD mod packs, which are awesome! Now I'm curious if I'm having issues on account of those dat mods. I have a small brain and limited reasoning abilities, so that only makes sense. If anyone could lend me a hand here I'd really appreciate it.
https://pastebin.com/kyhp93iwyou need to report this to Windower
https://github.com/Windower/Lua/issues
because gear export is handled by gearswap internally not by any include Not sure if related, but I have had issues with Notepad++ causing changes to gearswap files not being made while they are open still. If by any chance you use notepadd++ to adjust files, maybe try something else to edit then check if it updates. I know it sounds odd, but it has fixed some issues for me, and a few others.
サーバ: Ragnarok
Game: FFXI
Posts: 91
By Ragnarok.Neyochimaru 2018-06-22 21:48:10
From my experience, as long as you remember to right click the file tab in note++, and click save, you're good. Any issue i've had with changes not being applied properly all stemmed from the fact that im a dumbass, and had forgotten to click save after modding. Rule that out before anything else. Human error is lame ><
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-23 03:49:47
when using notepad++ with gearswap for editing you still need to remember to reload your gearswap file with //gs reload after you save your edited file
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-23 13:35:10
i forgot to mention if you load a file in notepad++ with the read-only flag you can clear it by going to Edit/Clear Read-Only Flag
By Nyarlko 2018-06-24 14:10:52
How would I go about adding a debuff countdown to a non-Mote lua?
Specific situation: I want some way to track and alter sets based on whether or not the cumulative magic debuff is active from BLM -jas/Comet, and want the timer to include the time extension from empyrean pants.
Basically, I just want to use a specific set for the first cast to place the debuff, then normal nuking gear for future casts until the debuff wears off.
By Sockfoot 2018-06-24 14:22:34
You could set a variable to os.clock(), then check the different between that variable and os.clock() to get the elapsed time, and use that in your logic to determine which set you cast in.
Asura.Kazaki
サーバ: Asura
Game: FFXI
Posts: 121
By Asura.Kazaki 2018-06-28 08:01:44
Trying to make it so that if I'm engaged and cast an offensive spell, e.g. Lullaby, it goes to stnpc instead of <t>. This is what I tried, but it doesn't seem to work... Any help appreciated because I'm at a loss for ideas to try next.
Code if player.status=='Engaged' and spell.target.is_npc then
cancel_spell()
send_command('input "' .. spell.name .. '" '<stnpc>';')
end
Thanks in advance for any ideas!
Edit: Also tried the following, adding in ==true.
Code if player.status=='Engaged' and spell.target.is_npc=="true" then
cancel_spell()
send_command('input "' .. spell.name .. '" '<stnpc>';')
end
Carbuncle.Kigensuro
サーバ: Carbuncle
Game: FFXI
Posts: 93
By Carbuncle.Kigensuro 2018-06-28 15:29:56
Trying to make it so that if I'm engaged and cast an offensive spell, e.g. Lullaby, it goes to stnpc instead of <t>. This is what I tried, but it doesn't seem to work... Any help appreciated because I'm at a loss for ideas to try next.
Code if player.status=='Engaged' and spell.target.is_npc then
cancel_spell()
send_command('input "' .. spell.name .. '" '<stnpc>';')
end
Thanks in advance for any ideas!
Edit: Also tried the following, adding in ==true.
Code if player.status=='Engaged' and spell.target.is_npc=="true" then
cancel_spell()
send_command('input "' .. spell.name .. '" '<stnpc>';')
end this should be in pretarget(spell) if using basic gearswap Code if player.status=='Engaged' and spell.target.is_npc then
change_target("<stnpc>")
end
but your biggest issue is this
you need to send the same command you would in chat
send_command('input /ma "' .. spell.name .. '" <stnpc>')
send_command('input /ja "' .. spell.name .. '" <stnpc>')
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.
|
|