|
Gearswap Support Thread
By anderxero 2015-06-04 04:04:59
So, after a long hiatus, I return to FFXI and Spellcast (which I continued using even after it became unsupported) is broken, so I finally made the move to GearSwap and modified one of the example xmls to get started while I learn what I'm doing.
For the most part it works, but whenever I zone from West Adoulin into Ceizak, I get this error message:
"GearSwap"Equip command cannot be completed. That set does not exist."
I have no idea what set it's trying to equip, so I looked thru the file and found a reference to "sets.aftercast.Engaged" (line 255) and no set of that name. So I added a set (lines 182-197), but the error message still happens. Hopefully someone can tell me what I'm missing.
function get_sets()
sets.precast = {}
sets.precast.Waltz =
{
ring1="Asklepian Ring",
ring2="Valseur's Ring"
}
sets.precast['Chant du Cygne'] =
{
ammo="Jukukik Feather",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Flame Gorget",
waist="Flame Belt",
back="Atheling Mantle",
ear1="Brutal Earring",
ear2="Moonshade Earring",
ring1="Thundersoul Ring",
ring2="Epona's Ring"
}
sets.precast['Requiescat'] =
{
ammo="Honed Tathlum",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Soil Gorget",
waist="Soil Belt",
back="Atheling Mantle",
ear1="Brutal Earring",
ear2="Moonshade Earring",
ring1="Aquasoul Ring",
ring2="Epona's Ring"
}
sets.precast['Vorpal Blade'] =
{
ammo="Cheruski Needle",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Steelflash Earring",
ear2="Bladeborn Earring",
ring1="Pyrosoul Ring",
ring2="Epona's Ring"
}
sets.precast['Expiacion'] =
{
ammo="Cheruski Needle",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Steelflash Earring",
ear2="Bladeborn Earring",
ring1="Spiral Ring",
ring2="Epona's Ring"
}
sets.precast['Sanguine Blade'] =
{
ammo="Snow Sachet",
head="Hagondes Hat",
body="Hagondes Coat",
hands="Hagondes Cuffs",
legs="Hagondes Pants",
feet="Hagondes Sabots",
neck="Stoicheion medal",
waist="Aswang Sash",
back="Cornflower Cape",
ear1="Friomisi Earring",
ear2="Hecate's Earring",
ring1="Icesoul Ring",
ring2="Icesoul Ring"
}
sets.precast['Savage Blade'] =
{
ammo="Cheruski Needle",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Steelflash Earring",
ear2="Bladeborn Earring",
ring1="Rajas Ring",
ring2="Epona's Ring"
}
sets.precast.WS =
{
ammo="Cheruski Needle",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Steelflash Earring",
ear2="Bladeborn Earring",
ring1="Pyrosoul Ring",
ring2="Epona's Ring"
}
sets.TP = {}
sets.TP.DD =
{
ammo="Honed Tathlum",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Brutal Earring",
ear2="Suppanomimi",
ring1="Rajas Ring",
ring2="Epona's Ring"
}
sets.TP.Solo =
{
ammo="Honed Tathlum",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Brutal Earring",
ear2="Suppanomimi",
ring1="Rajas Ring",
ring2="Epona's Ring"
}
sets.DT =
{
head="Iuitl Headgear",
body="Hagondes Coat",
hands="Hagondes Cuffs",
legs="Hagondes Pants",
feet="Hagondes Sabots",
neck="Twilight Torque",
waist="Windbuffet Belt",
back="Repulse Mantle",
ear1="Ethereal Earring",
ear2="Suppanomimi",
ring1="Dark Ring",
ring2="Dark Ring"
}
sets.aftercast = {}
sets.aftercast.TP = sets.TP.DD
sets.aftercast.engaged =
{
ammo="Honed Tathlum",
head="Iuitl Headgear",
body="Qaaxo Harness",
hands="Buremte Gloves",
legs="Manibozho Brais",
feet="Manibozho Boots",
neck="Asperity Necklace",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Brutal Earring",
ear2="Suppanomimi",
ring1="Rajas Ring",
ring2="Epona's Ring"
}
sets.aftercast.Idle =
{
ammo="Honed Tathlum",
head="Iuitl Headgear",
body="Hagondes Coat",
hands="Serpentes Cuffs",
legs="Manibozho Brais",
feet="Serpentes Sabots",
neck="Wiglen Gorget",
waist="Windbuffet Belt",
back="Atheling Mantle",
ear1="Brutal Earring",
ear2="Suppanomimi",
ring1="Paguroidea Ring",
ring2="Sheltered Ring"
}
sets.precast.FastCast =
{
ear1="Loquacious Earring"
}
send_command('input /macro book 16;wait .1;input /macro set 1')
end
function precast(spell)
if sets.precast[spell.english] then
equip(sets.precast[spell.english])
elseif spell.type=="WeaponSkill" then
equip(sets.precast.WS)
elseif string.find(spell.english,'Waltz') then
equip(sets.precast.Waltz)
elseif spell.type:lower() == 'Blue Magic' and spell.casttime > 1 then
equip(sets.precast.FastCast)
end
end
function aftercast(spell)
if player.status =='Engaged' then
equip(sets.aftercast.TP)
else
equip(sets.aftercast.Idle)
end
end
function status_change(new,old)
if T{'Idle','Resting'}:contains(player.status) then
equip(sets.aftercast.Idle)
elseif player.status == 'Engaged' then
equip(sets.aftercast.TP)
end
end
function buff_change(status,gain_or_loss)
if not midaction() then
if player.status == 'Engaged' then
equip(sets.aftercast.Engaged)
else
equip(sets.aftercast.Idle)
end
end
end
function self_command(command)
if command == 'toggle TP set' then
if sets.aftercast.TP == sets.TP.DD then
sets.aftercast.TP = sets.TP.Solo
send_command('@input /echo SOLO SET')
elseif sets.aftercast.TP == sets.TP.Solo then
sets.aftercast.TP = sets.TP.DD
send_command('@input /echo DD SET')
end
elseif command == 'DT' then
equip(sets.DT)
end
end
サーバ: Cerberus
Game: FFXI
Posts: 1786
By Cerberus.Shadowmeld 2015-06-04 07:02:19
Try changing in your sets, sets.aftercast.engaged to sets.aftercast.Engaged
only thing I can see. That shouldn't really be doing anything though, since you are zoning and that means you shouldn't even be trying to equip that set.
Have you turned on debug mode? Can't remember how to do that, been too long since I have played.
By anderxero 2015-06-04 17:10:04
Hm... I tried making that change, but it didn't get rid of the error. I can't see anywhere that it references in town or out of town either. Overall, it doesn't effect anything that I've noticed though, so not too big of a deal. lol
Cerberus.Tidis
サーバ: Cerberus
Game: FFXI
Posts: 3927
By Cerberus.Tidis 2015-06-04 17:35:15
Well I'm confused, I loaded your lua file onto my character and got no errors.
By anderxero 2015-06-06 03:00:51
I wonder if it's giving that message because it's attempting to put on my idle gear before my inventory has loaded (it usually takes about 15seconds after I'm loaded into an area before my inventory fills up).
In other news... I read somewhere, something about a program that can convert a Spellcast file into one usable by GearSwap... does that exist? Where would I find such a thing?
Edit: I found the Windower sc2lua... it didn't work for my lua though.
サーバ: Bismarck
Game: FFXI
Posts: 21
By Bismarck.Alkalinescissor 2015-06-06 11:38:10
How does one write multiple pet augments onto a piece of gear (Taeon)? Where does the 'Pet:' go ?
By anderxero 2015-06-06 12:10:29
I decided to take the plunge and try using a much more complex GS file. I think it's one of Moten's (came from the Kinematics page that is referenced in a document in the GS/libs folder).
I found some lines of the equipment sets with "gear.ElementalGorget" and "gear.ElementalBelt".
Are these defined in one of the companion files* or something I have to define somewhere on my own (if so, where).
*mote-include, mote-globals, etc.
サーバ: Sylph
Game: FFXI
Posts: 48
By Sylph.Pancakesandsx 2015-06-08 19:19:49
This is my thf lua
http://pastebin.com/JJLZB1X6
I'm having trouble with mug steal and despoil not swapping into aftercast. I turned on debug and it seems like it's not even hitting aftercast when I mug for hp or despoil for tp. If I press my macro again while the recast is not up, then it hits aftercast.
Thoughts?
Bismarck.Inference
サーバ: Bismarck
Game: FFXI
Posts: 417
By Bismarck.Inference 2015-06-08 20:55:22
I decided to take the plunge and try using a much more complex GS file. I think it's one of Moten's (came from the Kinematics page that is referenced in a document in the GS/libs folder).
I found some lines of the equipment sets with "gear.ElementalGorget" and "gear.ElementalBelt".
Are these defined in one of the companion files* or something I have to define somewhere on my own (if so, where).
*mote-include, mote-globals, etc.
Mote-Mappings has associative arrays for elemental information, and Mote-Utility has the processes which make sense out of it. The mappings already have all Gorget/Belt/Obi names set up.
gear.ElementalSlot will return proper belt/gorget(looks like the function returns a table and then it runs through it until it finds one that's in your inventory/wadrobe). If it can't find it, it will try to use gear.default.weaponskill_slot. If you left that undefined it returns nothing i.e you do not switch equipment for that slot.
Lakshmi.Rooks
Administrator
サーバ: Lakshmi
Game: FFXI
Posts: 1566
By Lakshmi.Rooks 2015-06-08 21:00:46
Bismarck.Alkalinescissor said: »How does one write multiple pet augments onto a piece of gear (Taeon)? Where does the 'Pet:' go ?
If you want to verify how something is written out, equip it and run //gs export. It will write out a file with your equipped gear in a set, with full augments as it expects them, so you can copy/paste that in to your sets.
[+]
By defu 2015-06-09 06:58:27
Apologies if this mentioned somewhere prior in this massive thread.
Is there something I need to do to make it so my binds in my .lua work? Specifically, any of them that are either ctrl or alt related...when I push them it just brings up my macro bar and doesn't actually do anything (like change modes or whatever is called out in the lua)
Any help here?
By anderxero 2015-06-09 21:30:47
So... I got Mote's BLU lua working for me, but I didn't see one for DRK listed on the Kinematics page. If someone has a good one for DRK, please PM it to me (or post it).
I found this one somewhere, but when I attempt to load it, it gives me an error message:
"GearSwap has detected an error in the user function get_sets:
"...windower4/addons/GearSwap/Data/DRK.lua:39: Attempt to index field 'Defense' (a nil value)"
Line 39 is: state.Defense.PhysicalMode = {'PDT'}
Here's the full lua:
-------------------------------------------------------------------------------------------------------------------
-- Initialization function that defines sets and variables to be used.
-------------------------------------------------------------------------------------------------------------------
-- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent.
function job_setup()
state.Buff['Aftermath'] = buffactive['Aftermath: Lv.1'] or
buffactive['Aftermath: Lv.2'] or
buffactive['Aftermath: Lv.3']
or false
end
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
-- Options: Override default values
options.OffenseModes = {'Normal', 'Acc', 'Multi'}
options.DefenseModes = {'Normal', 'PDT', 'Reraise'}
options.WeaponskillModes = {'Normal', 'Acc', 'Att', 'Mod'}
options.CastingModes = {'Normal'}
options.IdleModes = {'Normal'}
options.RestingModes = {'Normal'}
options.PhysicalDefenseModes = {'PDT', 'Reraise'}
options.MagicalDefenseModes = {'MDT'}
state.Defense.PhysicalMode = {'PDT'}
adjust_engaged_sets()
-- Additional local binds
send_command('bind ^` input /ja "Hasso" <me>')
send_command('bind !` input /ja "Seigan" <me>')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function file_unload()
if binds_on_unload then
binds_on_unload()
end
send_command('unbind ^`')
send_command('unbind !-')
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['Diabolic Eye'] = {hands="Abyss Gauntlets +2"}
sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets"}
sets.precast.JA['Nether Void'] = {legs="Bale Flanchard +2"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {ammo="Sonia's Plectrum",
head="Yaoyotl Helm",
body="Mikinaak Breastplate",hands="Buremte Gloves",
legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
-- Midcast Sets
sets.midcast.FastRecast = {ammo="Impatiens",
head="Cizin Helm",neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Moonshade Earring",
body="Nuevo Coselete",hands="Cizin Mufflers",ring1="Prolix Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
-- Specific spells
sets.midcast.Utsusemi = {ammo="Impatiens",
head="Cizin Helm",neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Moonshade Earring",
body="Nuevo Coselete",hands="Cizin Mufflers",ring1="Prolix Ring",ring2="K'ayres Ring",
waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.midcast.DarkMagic = {ammo="Impatiens",
head="Appetence Crown",neck="Aesir Torque",ear1="Loquacious Earring",ear2="Moonshade Earring",
body="Nuevo Coselete",hands="Pavor Gauntlets",ring1="Prolix Ring",ring2="K'ayres Ring",
back="Merciful Cape",waist="Goading Belt",legs="Bale Flanchard +2",feet="Karieyh Sollerets +1"}
sets.midcast.EnfeeblingMagic = sets.midcast.DarkMagic
sets.midcast['Dread Spikes'] = {body="Bale Cuirass +2"}
sets.midcast.Stun = set_combine(sets.midcast.DarkMagic, {
head="Cizin Helm",ear1="Lifestorm Earring",ear2="Psystorm Earring",
ring2="Balrahn's Ring"})
sets.midcast.Drain = {ammo="Impatiens",
head="Appetence Crown",neck="Aesir Torque",ear1="Loquacious Earring",ear2="Hirudinea Earring",
body="Nuevo Coselete",hands="Pavor Gauntlets",ring1="Prolix Ring",ring2="K'ayres Ring",
back="Merciful Cape",waist="Goading Belt",legs="Bale Flanchard +2",feet="Karieyh Sollerets +1"}
sets.midcast.Aspir = sets.midcast.Drain
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Brutal Earring",ear2="Moonshade Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Spiral Ring",
back="Atheling Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.precast.WS.Acc = set_combine(sets.precast.WS, {back="Letalis Mantle"})
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Catastrophe'] = set_combine(sets.precast.WS, {neck="Soil Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring"})
sets.precast.WS['Catastrophe'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring"})
sets.precast.WS['Catastrophe'].Mod = set_combine(sets.precast.WS['Catastrophe'], {waist="Soil Belt",ear1="Bladeborn Earring",ear2="Steelflash Earring"})
sets.precast.WS['Entropy'] = set_combine(sets.precast.WS, {neck="Soil Gorget",legs="Cizin Breeches"})
sets.precast.WS['Entropy'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",legs="Cizin Breeches"})
sets.precast.WS['Entropy'].Mod = set_combine(sets.precast.WS['Entropy'], {waist="Soil Belt",legs="Cizin Breeches"})
sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {neck="Soil Gorget",ring2="Candent Ring"})
sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",ring2="Candent Ring"})
sets.precast.WS['Resolution'].Mod = set_combine(sets.precast.WS['Resolution'], {waist="Soil Belt",ring2="Candent Ring"})
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {head="Yaoyotl Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle.Town = {
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Ares' Cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
sets.idle.Field = {
head="Yaoyotl Helm",neck="Bale Choker",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Ares' Cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Shadow Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
sets.idle.Weak = {
head="Twilight Helm",neck="Bale Choker",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Buremte Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
-- Defense sets
sets.defense.PDT = {
head="Cizin Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.defense.Reraise = {
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Paguroidea Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.defense.MDT = {
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Engulfer Cape",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.Kiting = {legs="Blood Cuisses"}
sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
-- Engaged sets
sets.engaged = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Acc = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Multi = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Cetl Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged.Reraise = {ammo="Fire Bomblet",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
-- 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.Apocalypse = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Apocalypse.Acc = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Apocalypse.AM = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Apocalypse.Multi = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged.Apocalypse.Multi.PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Graves"}
sets.engaged.Apocalypse.Multi.Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged.Apocalypse.PDT = {ammo="Fire Bomblet",
head="Cizin Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Nierenschutz",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.engaged.Apocalypse.Acc.PDT = {ammo="Fire Bomblet",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.engaged.Apocalypse.Reraise = {ammo="Fire Bomblet",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.engaged.Apocalypse.Acc.Reraise = {ammo="Fire Bomblet",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="DarkRing",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
-- Custom Melee Group
sets.engaged['Senbaak Nagan'] = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Acc = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Multi = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged['Senbaak Nagan'].Multi.PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Graves"}
sets.engaged['Senbaak Nagan'].Multi.Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged['Senbaak Nagan'].PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Acc.PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Acc.Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks that are called to process player actions at specific points in time.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Magic' then
equip(sets.precast.FC)
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)
if spell.action_type == 'Magic' then
equip(sets.midcast.FastRecast)
end
end
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
if state.DefenseMode == 'Reraise' or
(state.Defense.Active and state.Defense.Type == 'Physical' and state.Defense.PhysicalMode == 'Reraise') then
equip(sets.Reraise)
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- function job_aftercast(spell, action, spellMap, eventArgs)
-- if not spell.interrupted then
-- if state.Buff[spell.english] ~= nil then
-- state.Buff[spell.english] = true
-- end
-- end
-- end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
return meleeSet
end
-------------------------------------------------------------------------------------------------------------------
-- General hooks for other events.
-------------------------------------------------------------------------------------------------------------------
-- Called when the player's status changes.
function job_status_change(newStatus, oldStatus, eventArgs)
end
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if buff:startswith('Aftermath') then
state.Buff.Aftermath = gain
adjust_melee_groups()
handle_equipping_gear(player.status)
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
adjust_engaged_sets()
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function adjust_engaged_sets()
state.CombatWeapon = player.equipment.main
adjust_melee_groups()
end
function adjust_melee_groups()
classes.CustomMeleeGroups:clear()
if state.Buff.Aftermath then
classes.CustomMeleeGroups:append('AM')
end
end
function select_default_macro_book()
-- Default macro set/book
set_macro_page(1, 1)
-- I realize this will be better used with different /subs per book,
-- but I won't worry about that till I get this working properly.
end
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2015-06-10 10:52:51
So... I got Mote's BLU lua working for me, but I didn't see one for DRK listed on the Kinematics page. If someone has a good one for DRK, please PM it to me (or post it).
I found this one somewhere, but when I attempt to load it, it gives me an error message:
"GearSwap has detected an error in the user function get_sets:
"...windower4/addons/GearSwap/Data/DRK.lua:39: Attempt to index field 'Defense' (a nil value)"
Line 39 is: state.Defense.PhysicalMode = {'PDT'}
Here's the full lua:
-------------------------------------------------------------------------------------------------------------------
-- Initialization function that defines sets and variables to be used.
-------------------------------------------------------------------------------------------------------------------
-- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent.
function job_setup()
state.Buff['Aftermath'] = buffactive['Aftermath: Lv.1'] or
buffactive['Aftermath: Lv.2'] or
buffactive['Aftermath: Lv.3']
or false
end
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
-- Options: Override default values
options.OffenseModes = {'Normal', 'Acc', 'Multi'}
options.DefenseModes = {'Normal', 'PDT', 'Reraise'}
options.WeaponskillModes = {'Normal', 'Acc', 'Att', 'Mod'}
options.CastingModes = {'Normal'}
options.IdleModes = {'Normal'}
options.RestingModes = {'Normal'}
options.PhysicalDefenseModes = {'PDT', 'Reraise'}
options.MagicalDefenseModes = {'MDT'}
state.Defense.PhysicalMode = {'PDT'}
adjust_engaged_sets()
-- Additional local binds
send_command('bind ^` input /ja "Hasso" <me>')
send_command('bind !` input /ja "Seigan" <me>')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function file_unload()
if binds_on_unload then
binds_on_unload()
end
send_command('unbind ^`')
send_command('unbind !-')
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['Diabolic Eye'] = {hands="Abyss Gauntlets +2"}
sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets"}
sets.precast.JA['Nether Void'] = {legs="Bale Flanchard +2"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {ammo="Sonia's Plectrum",
head="Yaoyotl Helm",
body="Mikinaak Breastplate",hands="Buremte Gloves",
legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Fast cast sets for spells
-- Midcast Sets
sets.midcast.FastRecast = {ammo="Impatiens",
head="Cizin Helm",neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Moonshade Earring",
body="Nuevo Coselete",hands="Cizin Mufflers",ring1="Prolix Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
-- Specific spells
sets.midcast.Utsusemi = {ammo="Impatiens",
head="Cizin Helm",neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Moonshade Earring",
body="Nuevo Coselete",hands="Cizin Mufflers",ring1="Prolix Ring",ring2="K'ayres Ring",
waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.midcast.DarkMagic = {ammo="Impatiens",
head="Appetence Crown",neck="Aesir Torque",ear1="Loquacious Earring",ear2="Moonshade Earring",
body="Nuevo Coselete",hands="Pavor Gauntlets",ring1="Prolix Ring",ring2="K'ayres Ring",
back="Merciful Cape",waist="Goading Belt",legs="Bale Flanchard +2",feet="Karieyh Sollerets +1"}
sets.midcast.EnfeeblingMagic = sets.midcast.DarkMagic
sets.midcast['Dread Spikes'] = {body="Bale Cuirass +2"}
sets.midcast.Stun = set_combine(sets.midcast.DarkMagic, {
head="Cizin Helm",ear1="Lifestorm Earring",ear2="Psystorm Earring",
ring2="Balrahn's Ring"})
sets.midcast.Drain = {ammo="Impatiens",
head="Appetence Crown",neck="Aesir Torque",ear1="Loquacious Earring",ear2="Hirudinea Earring",
body="Nuevo Coselete",hands="Pavor Gauntlets",ring1="Prolix Ring",ring2="K'ayres Ring",
back="Merciful Cape",waist="Goading Belt",legs="Bale Flanchard +2",feet="Karieyh Sollerets +1"}
sets.midcast.Aspir = sets.midcast.Drain
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Brutal Earring",ear2="Moonshade Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Spiral Ring",
back="Atheling Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.precast.WS.Acc = set_combine(sets.precast.WS, {back="Letalis Mantle"})
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Catastrophe'] = set_combine(sets.precast.WS, {neck="Soil Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring"})
sets.precast.WS['Catastrophe'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring"})
sets.precast.WS['Catastrophe'].Mod = set_combine(sets.precast.WS['Catastrophe'], {waist="Soil Belt",ear1="Bladeborn Earring",ear2="Steelflash Earring"})
sets.precast.WS['Entropy'] = set_combine(sets.precast.WS, {neck="Soil Gorget",legs="Cizin Breeches"})
sets.precast.WS['Entropy'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",legs="Cizin Breeches"})
sets.precast.WS['Entropy'].Mod = set_combine(sets.precast.WS['Entropy'], {waist="Soil Belt",legs="Cizin Breeches"})
sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {neck="Soil Gorget",ring2="Candent Ring"})
sets.precast.WS['Resolution'].Acc = set_combine(sets.precast.WS.Acc, {neck="Soil Gorget",ring2="Candent Ring"})
sets.precast.WS['Resolution'].Mod = set_combine(sets.precast.WS['Resolution'], {waist="Soil Belt",ring2="Candent Ring"})
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {head="Yaoyotl Helm",neck="Wiglen Gorget",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Ares' cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle.Town = {
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Ares' Cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
sets.idle.Field = {
head="Yaoyotl Helm",neck="Bale Choker",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Ares' Cuirass +1",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Shadow Mantle",waist="Goading Belt",legs="Blood Cuisses",feet="Ejekamal Boots"}
sets.idle.Weak = {
head="Twilight Helm",neck="Bale Choker",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Buremte Gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
-- Defense sets
sets.defense.PDT = {
head="Cizin Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.defense.Reraise = {
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Paguroidea Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.defense.MDT = {
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Engulfer Cape",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.Kiting = {legs="Blood Cuisses"}
sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
-- Engaged sets
sets.engaged = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Acc = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Multi = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Cetl Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged.Reraise = {ammo="Fire Bomblet",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
-- 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.Apocalypse = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Apocalypse.Acc = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Apocalypse.AM = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged.Apocalypse.Multi = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Windbuffet Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged.Apocalypse.Multi.PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Graves"}
sets.engaged.Apocalypse.Multi.Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged.Apocalypse.PDT = {ammo="Fire Bomblet",
head="Cizin Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Nierenschutz",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.engaged.Apocalypse.Acc.PDT = {ammo="Fire Bomblet",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.engaged.Apocalypse.Reraise = {ammo="Fire Bomblet",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
sets.engaged.Apocalypse.Acc.Reraise = {ammo="Fire Bomblet",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Muffler",ring1="Dark Ring",ring2="DarkRing",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Greaves"}
-- Custom Melee Group
sets.engaged['Senbaak Nagan'] = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Acc = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Multi = {ammo="Hagneia Stone",
head="Otomi Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
back="Letalis Mantle",waist="Goading Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged['Senbaak Nagan'].Multi.PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Cizin Mail",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Cizin Graves"}
sets.engaged['Senbaak Nagan'].Multi.Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Ganesha's Mala",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Pak Corselet",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="Mars's Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Ejekamal Boots"}
sets.engaged['Senbaak Nagan'].PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Acc.PDT = {ammo="Hagneia Stone",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Mikinaak Breastplate",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Mollusca Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
sets.engaged['Senbaak Nagan'].Acc.Reraise = {ammo="Hagneia Stone",
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
back="Letalis Mantle",waist="Dynamic Belt",legs="Cizin Breeches",feet="Karieyh Sollerets +1"}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks that are called to process player actions at specific points in time.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
function job_precast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Magic' then
equip(sets.precast.FC)
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)
if spell.action_type == 'Magic' then
equip(sets.midcast.FastRecast)
end
end
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
if state.DefenseMode == 'Reraise' or
(state.Defense.Active and state.Defense.Type == 'Physical' and state.Defense.PhysicalMode == 'Reraise') then
equip(sets.Reraise)
end
end
-- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
-- function job_aftercast(spell, action, spellMap, eventArgs)
-- if not spell.interrupted then
-- if state.Buff[spell.english] ~= nil then
-- state.Buff[spell.english] = true
-- end
-- end
-- end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-- Modify the default idle set after it was constructed.
function customize_idle_set(idleSet)
return idleSet
end
-- Modify the default melee set after it was constructed.
function customize_melee_set(meleeSet)
return meleeSet
end
-------------------------------------------------------------------------------------------------------------------
-- General hooks for other events.
-------------------------------------------------------------------------------------------------------------------
-- Called when the player's status changes.
function job_status_change(newStatus, oldStatus, eventArgs)
end
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
if buff:startswith('Aftermath') then
state.Buff.Aftermath = gain
adjust_melee_groups()
handle_equipping_gear(player.status)
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
adjust_engaged_sets()
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
function adjust_engaged_sets()
state.CombatWeapon = player.equipment.main
adjust_melee_groups()
end
function adjust_melee_groups()
classes.CustomMeleeGroups:clear()
if state.Buff.Aftermath then
classes.CustomMeleeGroups:append('AM')
end
end
function select_default_macro_book()
-- Default macro set/book
set_macro_page(1, 1)
-- I realize this will be better used with different /subs per book,
-- but I won't worry about that till I get this working properly.
end
You can safely delete line 39.
I have a DRK lua, but it's heavily customized for me. You can try it if you like. here
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-06-10 15:33:04
Sylph.Pancakesandsx said: »This is my thf lua
http://pastebin.com/JJLZB1X6
I'm having trouble with mug steal and despoil not swapping into aftercast. I turned on debug and it seems like it's not even hitting aftercast when I mug for hp or despoil for tp. If I press my macro again while the recast is not up, then it hits aftercast.
Thoughts? Though I'm not familiar with that style of GS and am more apt with Mote's, you have a "sets.aftercast.JA = {}", and since that's blank, it won't swap gear out from what you would currently have on. Imagine if you had sets.TP.normal = {}, it wouldn't equip anything when changing from Idle. That being said, you will probably want to remove that and put in some sort of command in your function aftercast(spell) to detect JAs and equip the appropriate gear, like you have the generic rule for now. You could try, though it may not work since I'm not familiar with the raw coding: Code function aftercast(spell)
if spell.type == 'JobAbility' then
if player.status == 'Engaged' then
equip(sets.TP[TP_Set_Names[TP_Index]])
else
equip(sets.idle[Idle_Set_Names[Idle_Index]])
end
end
end
サーバ: Sylph
Game: FFXI
Posts: 48
By Sylph.Pancakesandsx 2015-06-11 08:36:54
I wrote it myself from scratch, it's not based on motes or anything.
sets.aftercast.JA is defined but not called anywhere. I defined it pre-emptively so that I could later added something like sets.aftercast.JA.Bully or something if I wanted to. I'll try commenting it out and see what happens but I don't see why that would make a difference if it's not actually referenced in my aftercast function.
I turned on debug in gs and it seems that when mug, despoil, or steal go off it's not actually performing the aftercast function at all. Pressing my macro a second time before the recast is up DOES hit aftercast. I'm wondering if maybe I just need to make accommodations in midcast for when the JA's don't perform their primary functions (stealing items and gil) and are used to steal hp, tp, and buffs.
By anderxero 2015-06-11 18:17:43
Next question: Is there a command I can input in game to lock a piece of gear? (I'm thinking, CP bonus cape... like "//gs lock back")
VIP
サーバ: Asura
Game: FFXI
Posts: 234
By Asura.Darvamos 2015-06-11 18:28:57
Next question: Is there a command I can input in game to lock a piece of gear? (I'm thinking, CP bonus cape... like "//gs lock back") Very close you can disable/enable slots on the fly....
//gs disable back (won't let gs swap gear)
//gs enable back (lets gs start swapping again)
サーバ: Asura
Game: FFXI
Posts: 415
By Asura.Cambion 2015-06-11 18:32:37
Next question: Is there a command I can input in game to lock a piece of gear? (I'm thinking, CP bonus cape... like "//gs lock back")
Actually had the same question, posted it in another thread yesterday, but perhaps this is the better place.
My question is slightly different, but there's a work around included that might help you in the mean time.
Does anyone have the buff label for Capacity Ring? The EXP bonus, so I can use it to lock my back armor?
I tried including this:
sets.buff['Commitment'] = {back="Aptitude Mantle +1"}
Which usually means that as long as that 'buff' is active, it'll lock you into the stated gear piece. unfortunately I can't find the correct name of the buff. I tried multiple variations of Capacity/Experience/Commitment Bonus/Point/Points etc all to no avail.
I'm curious if either A: I have the buff name wrong, or B: it needs to be in the .lua file before receiving the buff, so that gear swap can pick it up, but I doubt that.
For the time being I created a work around for anyone curious:
Code -- Triggered by F10, used to lock Capacity Point Mantle for Exp Parties.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'Defense Mode' then
if newValue == 'Physical' then
disable('back')
else
enable('back')
end
end
end
And just used the built in 'defense mode' which I never use anyways, to lock the back piece. It works fine, but the OCD in me, wants to find/fix the 'proper' way to code it.
By anderxero 2015-06-11 18:46:21
Thanks for the enable/disable command info!
Ugh... after deleting line 39 as suggested above and inputting my gear, I finally left town and attempted to use the file, but got a face full of red text... So... unless someone who is better at this than I can fix it (which is almost anyone), I'm either going to find a new file to work from or see if I can't modify the functional BLU file that I have for DRK.
Asura.Fiv
サーバ: Asura
Game: FFXI
Posts: 356
By Asura.Fiv 2015-06-11 18:49:13
//gs disable slot(ring2, back, etc)
you can even bind it in your lua if you use it often enough to equip something and lock the slot, then another bind to enable it or //gs enable all.
Code send_command('bind @` input /equip main "Tupsimati"; input /equip sub "Zuuxowu Grip"; gs disable main; gs disable sub;')
But generally you can just do it manually.
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2015-06-11 22:23:58
Thanks for the enable/disable command info!
Ugh... after deleting line 39 as suggested above and inputting my gear, I finally left town and attempted to use the file, but got a face full of red text... So... unless someone who is better at this than I can fix it (which is almost anyone), I'm either going to find a new file to work from or see if I can't modify the functional BLU file that I have for DRK.
I didn't realize earlier, but your lua is using Mote's old style syntax, but for whatever reason is declaring mote_include_version = 2.
I updated it to syntax v2, but don't have time to test it. (should work) http://pastebin.com/jBZdF3Ts
If that doesn't work, try removing mote_include_version =2 from the get_sets() function. You'll get a warning, but it's pretty much harmless.
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-06-11 23:16:03
Next question: Is there a command I can input in game to lock a piece of gear? (I'm thinking, CP bonus cape... like "//gs lock back")
Actually had the same question, posted it in another thread yesterday, but perhaps this is the better place.
My question is slightly different, but there's a work around included that might help you in the mean time.
Does anyone have the buff label for Capacity Ring? The EXP bonus, so I can use it to lock my back armor?
I tried including this:
sets.buff['Commitment'] = {back="Aptitude Mantle +1"}
Which usually means that as long as that 'buff' is active, it'll lock you into the stated gear piece. unfortunately I can't find the correct name of the buff. I tried multiple variations of Capacity/Experience/Commitment Bonus/Point/Points etc all to no avail.
I'm curious if either A: I have the buff name wrong, or B: it needs to be in the .lua file before receiving the buff, so that gear swap can pick it up, but I doubt that.
For the time being I created a work around for anyone curious:
Code -- Triggered by F10, used to lock Capacity Point Mantle for Exp Parties.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'Defense Mode' then
if newValue == 'Physical' then
disable('back')
else
enable('back')
end
end
end
And just used the built in 'defense mode' which I never use anyways, to lock the back piece. It works fine, but the OCD in me, wants to find/fix the 'proper' way to code it. I wrote up a small block that works pretty well automatically. You can always manually disable, but this works: Code
function customize_idle_set(idleSet)
if state.Buff['Commitment'] and areas.Adoulin:contains(world.area) and not areas.Cities:contains(world.area) then
idleSet = set_combine(idleSet, sets.buff['Commitment'])
end
return idleSet
end
function customize_melee_set(meleeSet)
if state.Buff['Commitment'] and areas.Adoulin:contains(world.area) then
meleeSet = set_combine(meleeSet, sets.buff['Commitment'])
end
return meleeSet
end This will only work in Mote-based files, but I'm sure it could be tweaked to fit yours if it isn't. These two functions will check for Commitment (CP Bonus) and apply your set into idle and melee, respectively.
This won't, however, lock your back when casting spells, using JAs, etc. The way I work around that is by using Mote's job_precast and job_aftercast functions, like this: Code
function job_precast(spell, action, spellMap, eventArgs)
if state.Buff['Commitment'] and areas.Adoulin:contains(world.area) and not areas.Cities:contains(world.area) then
equip(sets.buff['Commitment'])
disable('back')
end
end
function job_aftercast(spell, action, spellMap, eventArgs)
if state.Buff['Commitment'] and areas.Adoulin:contains(world.area) and not areas.Cities:contains(world.area) then
enable('back')
handle_equipping_gear(player.status)
end
end You also need a check in function job_setup() like so: Code state.Buff['Commitment'] = buffactive['Commitment'] or false Hope this helps!
[+]
By anderxero 2015-06-12 02:45:20
Thank you, Orestes!
Another question: On WS sets, does it make any difference if it's sets.precast or sets.midcast ? Should they be one or the other?
Currently when I have debug mode on, if I WS, it says it switches to precast sets, followed by midcast with a statement about none existing.
(Side note: I definitely like that with GearSwap I can have my equipment window up and type the commands for my actions and actually WATCH my gear change.)
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2015-06-12 17:47:04
Ws sets are all handled with sets.precast.WS unless you specify with something like sets.precast.WS['Resolution']. No need to midcast.
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-06-12 20:36:37
Another question: On WS sets, does it make any difference if it's sets.precast or sets.midcast ? Should they be one or the other? It's precast; debug will always call a midcast set, but nothing affects WSs midcast so there are never sets for them. I just did some testing with Myrkr to verify values (since it returs a static amount based on MP/TP) and it checks that midcast is useless.
By anderxero 2015-06-12 21:55:14
Thanks for the answers (and testing)!
Hopefully, I'm nearing the final question: How do I tell gs to use my accuracy set instead of the default set? ("sets.engaged.Acc" instead of "sets.engaged")
サーバ: Asura
Game: FFXI
Posts: 363
By Asura.Vafruvant 2015-06-12 22:50:34
Thanks for the answers (and testing)!
Hopefully, I'm nearing the final question: How do I tell gs to use my accuracy set instead of the default set? ("sets.engaged.Acc" instead of "sets.engaged") The full list can be viewed here but the key you need to press is F9.
By anderxero 2015-06-16 02:48:28
Update: I found what the problem was that I had (several posts back) with Gearswap giving me this error:
"GearSwap"Equip command cannot be completed. That set does not exist."
It was AutoLockStyle attempting to call up "sets.lockstyle" (which didn't exist at the time).
Sylph.Ashiya
サーバ: Sylph
Game: FFXI
Posts: 144
By Sylph.Ashiya 2015-06-18 23:24:36
So on my BLM lua, I tried using this: Code -- Hachirin-No-Obi
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Elemental Magic' then
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
end
elseif spell.skill == 'Healing Magic' then
if spell.name:startswith('Cure') and world.day_element == 'Light' or world.weather_element == 'Light' then
equip(sets.midcast.Cure, {waist="Hachirin-No-Obi"})
end
end
end
and placed it in the "Job specific hooks for standard casting events" Between two other functions. However, it seems like it's not working. The only way I could tell, was to open my equipment menu fast enough before the spell went off.
Also, I was thinking if this was better. It was posted by Shadowmeld on BGforums.
Note 2 Code
-- Elemental Mappings
-- if you want some control over whether to use the obi with one conflicting weather or not you could use logic similar to this...
elements = {}
elements.use_on_single_conflict = false
elements.strong_against = {['Fire'] = 'Ice', ['Earth'] = 'Thunder', ['Water'] = 'Fire', ['Wind'] = 'Earth', ['Ice'] = 'Wind', ['Thunder'] = 'Water', ['Light'] = 'Dark', ['Dark'] = 'Light'}
elements.weak_against = {['Fire'] = 'Water', ['Earth'] = 'Wind', ['Water'] = 'Thunder', ['Wind'] = 'Ice', ['Ice'] = 'Fire', ['Thunder'] = 'Earth', ['Light'] = 'Dark', ['Dark'] = 'Light'}
to go with...
Note 2 Code -- Logic code for using obi
function use_obi(spell, equip_set)
local use_obi = false
-- first check to see if any elemental obi rule matches
if(S{world.day_element, world.weather_element}:contains(spell.element)) then
-- If at least one matches, try to find out if there is also a weak element involved
if ( world.weather_element == elements.weak_against[spell.element] ) then
-- If weak weather is involved, but it is only single weather, check to see if use_on_single_conflict is set to true
if ( world.weather_id % 2 == 0 and elements.use_on_single_conflict) then
use_obi = true
end
elseif (world.day_element == elements.weak_against[spell.element]) then
-- If weak day is involved check for double weather or single weather + use_on_single_conflict set to true
if (world.weather_id % 2 == 1 or ( elements[use_on_single_conflict] and world.weather_id % 2 == 0) ) then
use_obi = true
end
end
end
if (use_obi) then
equip_set = set_combine(equip_set, { waist = "Hachirin-No-Obi"})
end
return equip_set
Quetzalcoatl.Orestes
サーバ: Quetzalcoatl
Game: FFXI
Posts: 430
By Quetzalcoatl.Orestes 2015-06-19 09:30:19
So on my BLM lua, I tried using this: Code -- Hachirin-No-Obi
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.skill == 'Elemental Magic' then
if spell.element == world.day_element or spell.element == world.weather_element then
equip(sets.midcast['Elemental Magic'], {waist="Hachirin-No-Obi"})
end
elseif spell.skill == 'Healing Magic' then
if spell.name:startswith('Cure') and world.day_element == 'Light' or world.weather_element == 'Light' then
equip(sets.midcast.Cure, {waist="Hachirin-No-Obi"})
end
end
end
and placed it in the "Job specific hooks for standard casting events" Between two other functions. However, it seems like it's not working. The only way I could tell, was to open my equipment menu fast enough before the spell went off.
Also, I was thinking if this was better. It was posted by Shadowmeld on BGforums.
Note 2 Code
-- Elemental Mappings
-- if you want some control over whether to use the obi with one conflicting weather or not you could use logic similar to this...
elements = {}
elements.use_on_single_conflict = false
elements.strong_against = {['Fire'] = 'Ice', ['Earth'] = 'Thunder', ['Water'] = 'Fire', ['Wind'] = 'Earth', ['Ice'] = 'Wind', ['Thunder'] = 'Water', ['Light'] = 'Dark', ['Dark'] = 'Light'}
elements.weak_against = {['Fire'] = 'Water', ['Earth'] = 'Wind', ['Water'] = 'Thunder', ['Wind'] = 'Ice', ['Ice'] = 'Fire', ['Thunder'] = 'Earth', ['Light'] = 'Dark', ['Dark'] = 'Light'}
to go with...
Note 2 Code -- Logic code for using obi
function use_obi(spell, equip_set)
local use_obi = false
-- first check to see if any elemental obi rule matches
if(S{world.day_element, world.weather_element}:contains(spell.element)) then
-- If at least one matches, try to find out if there is also a weak element involved
if ( world.weather_element == elements.weak_against[spell.element] ) then
-- If weak weather is involved, but it is only single weather, check to see if use_on_single_conflict is set to true
if ( world.weather_id % 2 == 0 and elements.use_on_single_conflict) then
use_obi = true
end
elseif (world.day_element == elements.weak_against[spell.element]) then
-- If weak day is involved check for double weather or single weather + use_on_single_conflict set to true
if (world.weather_id % 2 == 1 or ( elements[use_on_single_conflict] and world.weather_id % 2 == 0) ) then
use_obi = true
end
end
end
if (use_obi) then
equip_set = set_combine(equip_set, { waist = "Hachirin-No-Obi"})
end
return equip_set
Both examples are perfectly fine, but first thing... You should be using //gs showswaps to determine if gear is changing.
The first example assumes you're using Mote's includes, but I don't know that you are without seeing your entire lua. (on pastebin) If you are using Mote's includes, then I would go with this option.
The second example won't do anything at all by adding the code to your lua. He's giving you a function that does what you need, but you still need to call it. pastebin your lua and i'll show you how to add it. (if you don't use mote's)
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.
|
|