Gearswap Support Thread

Language: JP EN DE FR
2010-09-08
New Items
users online
Forum » Windower » Support » Gearswap Support Thread
Gearswap Support Thread
First Page 2 3 ... 137 138 139 ... 182 183 184
 Asura.Patriclis
Offline
Server: Asura
Game: FFXI
user: Patriclis
Posts: 389
By Asura.Patriclis 2018-06-04 12:09:57
Link | Quote | Reply
 
Carbuncle.Kigensuro said: »
Asura.Patriclis said: »
Shiva.Hiep 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
Offline
Server: Shiva
Game: FFXI
user: Hiepo
Posts: 669
By Shiva.Hiep 2018-06-04 16:22:57
Link | Quote | Reply
 
Carbuncle.Kigensuro said: »
Asura.Patriclis said: »
Shiva.Hiep 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.Patriclis
Offline
Server: Asura
Game: FFXI
user: Patriclis
Posts: 389
By Asura.Patriclis 2018-06-04 17:44:04
Link | Quote | Reply
 
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.Mrkillface
Offline
Server: Cerberus
Game: FFXI
user: bitchtits
Posts: 241
By Cerberus.Mrkillface 2018-06-04 17:44:27
Link | Quote | Reply
 
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.Patriclis
Offline
Server: Asura
Game: FFXI
user: Patriclis
Posts: 389
By Asura.Patriclis 2018-06-04 17:53:57
Link | Quote | Reply
 
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.Patriclis
Offline
Server: Asura
Game: FFXI
user: Patriclis
Posts: 389
By Asura.Patriclis 2018-06-04 17:59:59
Link | Quote | Reply
 
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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-04 22:42:33
Link | Quote | Reply
 
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
Offline
Server: Shiva
Game: FFXI
user: Hiepo
Posts: 669
By Shiva.Hiep 2018-06-05 11:34:35
Link | Quote | Reply
 
My friend tested these out and it worked perfectly. Thank you everyone~
 Sylph.Elgorian
Offline
Server: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2018-06-13 10:04:43
Link | Quote | Reply
 
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.Shadowmeld
Offline
Server: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2018-06-14 08:26:51
Link | Quote | Reply
 
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:
  1. 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

  2. To add a buff to the monitored buffs, you just put another string there

  3. 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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-14 08:41:18
Link | Quote | Reply
 
Sylph.Elgorian 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
 Sylph.Elgorian
Offline
Server: Sylph
Game: FFXI
user: Elgorian
Posts: 305
By Sylph.Elgorian 2018-06-14 13:50:38
Link | Quote | Reply
 
Carbuncle.Kigensuro said: »

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: »

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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-14 15:55:43
Link | Quote | Reply
 
Sylph.Elgorian said: »
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
Offline
Server: Bismarck
Game: FFXI
user: Syuevil
Posts: 19
By Bismarck.Syuevil 2018-06-18 09:40:27
Link | Quote | Reply
 
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
Offline
Server: Leviathan
Game: FFXI
Posts: 33
By Leviathan.Windowpane 2018-06-19 23:32:17
Link | Quote | Reply
 
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
Offline
Server: Shiva
Game: FFXI
user: Hiepo
Posts: 669
By Shiva.Hiep 2018-06-19 23:42:01
Link | Quote | Reply
 
Bismarck.Syuevil said: »
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
Offline
Server: Bismarck
Game: FFXI
user: Syuevil
Posts: 19
By Bismarck.Syuevil 2018-06-20 00:09:07
Link | Quote | Reply
 
Shiva.Hiep said: »
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.Warusha
Offline
Server: Asura
Game: FFXI
user: Serithus
Posts: 159
By Asura.Warusha 2018-06-21 09:30:32
Link | Quote | Reply
 
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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-22 02:51:01
Link | Quote | Reply
 
Asura.Warusha 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/kyhp93iw
you 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
Offline
Server: Phoenix
Game: FFXI
user: SSJAV
By Phoenix.Uzugami 2018-06-22 18:14:35
Link | Quote | Reply
 
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
Offline
Server: Shiva
Game: FFXI
user: znitch
Posts: 191
By Shiva.Znitch 2018-06-22 18:35:24
Link | Quote | Reply
 
/console gs c equip sets.engaged.Acc
The sets are case sensitive
 Phoenix.Uzugami
Offline
Server: Phoenix
Game: FFXI
user: SSJAV
By Phoenix.Uzugami 2018-06-22 18:54:01
Link | Quote | Reply
 
Shiva.Znitch said: »
/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
Offline
Server: Lakshmi
Game: FFXI
user: elii
Posts: 912
By Lakshmi.Elidyr 2018-06-22 19:16:36
Link | Quote | Reply
 
Carbuncle.Kigensuro said: »
Asura.Warusha 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/kyhp93iw
you 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.Neyochimaru
Offline
Server: Ragnarok
Game: FFXI
user: Neyochi
Posts: 91
By Ragnarok.Neyochimaru 2018-06-22 21:48:10
Link | Quote | Reply
 
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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-23 03:49:47
Link | Quote | Reply
 
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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-23 13:35:10
Link | Quote | Reply
 
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
Offline
Posts: 703
By Nyarlko 2018-06-24 14:10:52
Link | Quote | Reply
 
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.
Offline
Posts: 142
By Sockfoot 2018-06-24 14:22:34
Link | Quote | Reply
 
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
Offline
Server: Asura
Game: FFXI
user: Kazaki
Posts: 121
By Asura.Kazaki 2018-06-28 08:01:44
Link | Quote | Reply
 
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
Offline
Server: Carbuncle
Game: FFXI
user: dlsmd
Posts: 93
By Carbuncle.Kigensuro 2018-06-28 15:29:56
Link | Quote | Reply
 
Asura.Kazaki said: »
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>')
First Page 2 3 ... 137 138 139 ... 182 183 184
Log in to post.