GearSwap For Dummies!

Eorzea Time
 
 
 
言語: JP EN FR DE
日本語版のFFXIVPRO利用したい場合は、上記の"JP"を設定して、又はjp.ffxivpro.comを直接に利用してもいいです
users online
フォーラム » FFXI » Jobs » Dancer » GearSwap for Dummies!
GearSwap for Dummies!
First Page 2 3 4 5 6
 Ramuh.Alatariel
Offline
サーバ: Ramuh
Game: FFXI
user: Alatariel
Posts: 6
By Ramuh.Alatariel 2015-01-16 19:18:52  
Okay! Now it's saying it's loaded properly--super neat!

So from here, I just need to go into the BST-Gear.lua and replace what's in there with the gear that I use, right?
 Quetzalcoatl.Falkirk
Guide Maker
Offline
サーバ: Quetzalcoatl
Game: FFXI
user: Falkirk
Posts: 675
By Quetzalcoatl.Falkirk 2015-01-16 19:48:29  
For this file just directly edit the gearsets in the BST.lua.

This is the Dancer subforum - so you can probably ask more specific questions here and here if you need more help.
 Ramuh.Alatariel
Offline
サーバ: Ramuh
Game: FFXI
user: Alatariel
Posts: 6
By Ramuh.Alatariel 2015-01-16 20:41:40  
Thank you so much, all of you! I got it working, and it looks like I don't have to stop playing all together! Because who uses conventional macros. >.>
[+]
 Asura.Gotenn
Offline
サーバ: Asura
Game: FFXI
user: Gotenn
Posts: 243
By Asura.Gotenn 2015-01-19 14:18:32  
Hi,

I've done some research, and I found that it's not possible for gearswap to determine the difference between Haste I and Haste II, however is it possible for a user variable for me to tell gearswap that I'm receiving Haste II?

Such as:
elseif buffactive.march == 2 and (buffactive.haste or buffactive['haste samba']) then
classes.CustomMeleeGroups:append('HighHaste')
elseif buffactive.march == 1 and buffactive.haste and "var1" then
classes.CustomMeleeGroups:append('MaxHaste')

This way I wouldn't be hurting my TP gain with having too much dual wield added when I'm already capped on magic haste?
necroskull Necro Bump Detected! [81 days between previous and next post]
 Ragnarok.Zahl
Offline
サーバ: Ragnarok
Game: FFXI
user: Zah
Posts: 1
By Ragnarok.Zahl 2015-04-10 11:30:13  
Hello,
I have some issues with Gearswap:

If I select the action manually through the menu, it works correctly (change equipment). Example: " f1>intro>magic>utsusemi:Ichi "

If I try to do it through a classic macro as " /ma "Utsusemi: Ichi"<me> " does not work. I mean, the macro works, it casts the magic, but the equipment doesnt change.

I have the same problem with weaponskills, JA, etc...

What am I doing wrong?

Thank you very much for your time and help.

PD: I'm using Mote's files. I did not change or add any sets, just change the equipment.

Edit: Solved... /ma "Blizzard"<t> doesnt work. /ma "Blizzard" <t> works. ^^;
necroskull Necro Bump Detected! [61 days between previous and next post]
 Asura.Cambion
Offline
サーバ: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2015-06-10 22:24:48  
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 Armyguy 2015-06-27 05:15:53  
I downloaded a GS for sch and made the changes for my gear but. idk how to get the PDT or MDT set to stay on after casting and not go back to idle or how to get the kiting set to come on. I never used Gearswap of SC ever before. Please if anybody can help that be great. :) PS Sorry this is the only way i knew to put this on here. /sigh

-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------

--[[
Custom commands:

Shorthand versions for each strategem type that uses the version appropriate for
the current Arts.

Light Arts Dark Arts

gs c scholar light Light Arts/Addendum
gs c scholar dark Dark Arts/Addendum
gs c scholar cost Penury Parsimony
gs c scholar speed Celerity Alacrity
gs c scholar aoe Accession Manifestation
gs c scholar power Rapture Ebullience
gs c scholar duration Perpetuance
gs c scholar accuracy Altruism Focalization
gs c scholar enmity Tranquility Equanimity
gs c scholar skillchain Immanence
gs c scholar addendum Addendum: White Addendum: Black
--]]



-- 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()
info.addendumNukes = S{"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",
"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}

state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
update_active_strategems()
end

-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------

-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('None', 'Normal')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT')


info.low_nukes = S{"Stone", "Water", "Aero", "Fire", "Blizzard", "Thunder"}
info.mid_nukes = S{"Stone II", "Water II", "Aero II", "Fire II", "Blizzard II", "Thunder II",
"Stone III", "Water III", "Aero III", "Fire III", "Blizzard III", "Thunder III",
"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",}
info.high_nukes = S{"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}

gear.macc_hagondes = {name="Hagondes Cuffs +1"}

send_command('bind ^` input /ma Stun <t>')

select_default_macro_book()
end

function user_unload()
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['Tabula Rasa'] = {legs="Pedagogy Pants"}


-- Fast cast sets for spells

sets.precast.FC = { ammo="Impatiens",head="Nahtirah Hat",ear1="Loquacious Earring",
ear1="Enchanter earring +1",body="Anhur robe",hands="Gendewitha Gages +1",ring1="Prolix Ring",
back="Swith Cape +1",waist="Witful Belt",legs="Orvail Pants +1",feet="Pedagogy Loafers" }

sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {body="Anhur robe",waist="Siegel Sash"})

sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {body="Anhur robe",neck="Eddy necklace"})

sets.precast.FC.Cure = set_combine(sets.precast.FC, {body="Heka's Kalasiris",back="Pahtli Cape"})

sets.precast.FC.Curaga = sets.precast.FC.Cure

sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})


-- Midcast Sets

sets.midcast.FastRecast = {ammo="Incantor Stone",
head="Nahtirah Hat",ear2="Loquacious Earring",ear1="Enchanter earring +1",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages +1",ring1="Prolix Ring",
back="Swith Cape +1",waist="Witful Belt",legs="Orvail Pants +1",feet="Pedagogy Loafers"}

sets.midcast.Cure = {main="Tamaxchi",sub="Genbu's Shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Colossus's Torque",ear1="Mendicant's earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Telchine gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Tempered cape +1",waist="Witful Belt",legs="Orvail Pants +1",feet="Pedagogy Loafers"}

sets.midcast.CureWithLightWeather = {main="Chatoyant Staff",sub="Achaq Grip",ammo="Incantor Stone",
head="Gendewitha Caubeen",neck="Colossus's Torque",ear1="Lifestorm Earring",ear2="Loquacious Earring",
body="Heka's Kalasiris",hands="Telchine gloves",ring1="Prolix Ring",ring2="Sirona's Ring",
back="Twilight Cape",waist="Hachirin-no-obi",legs="Nares Trews",feet="Pedagogy Loafers"}

sets.midcast.Curaga = sets.midcast.Cure

sets.midcast.Regen = {main="Bolelabunga",head="Savant's Bonnet +2",body="Telchine chasuble",}

sets.midcast.Cursna = {
neck="Malison Medallion",
hands="Hieros Mittens",ring1="Haoma's Ring",
feet="Gendewitha Galoshes +1",back="Oretania's cape +1"}

sets.midcast['Enhancing Magic'] = {ammo="Savant's Treatise",
head="Befouled crown",neck="Colossus's Torque",
body="Telchine chasuble",hands="Ayao's Gages",
waist="Olympus Sash",legs="Portent Pants",feet="Telchine pigaches"}

sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {head="Umuthi hat",waist="Siegel Sash"})

sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {feet="Pedagogy Loafers"})

sets.midcast.Protect = {ring1="Sheltered Ring"}
sets.midcast.Protectra = sets.midcast.Protect

sets.midcast.Shell = {ring1="Sheltered Ring"}
sets.midcast.Shellra = sets.midcast.Shell


-- Custom spell classes
sets.midcast.MndEnfeebles = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Sturm's Report",
head="Nahtirah Hat",neck="Weike Torque",ear1="Enchanter earring +1",ear2="Gwati earring",
body="Ischemia chasuble",hands="Lurid mitts",ring1="Aquasoul Ring",ring2="Sangoma Ring",
back="Altruistic cape",waist="Rumination sash",legs="Hidalgo slop +1",feet="Telchine pigaches"}

sets.midcast.IntEnfeebles = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Sturm's Report",
head="Nahtirah Hat",neck="Imbodla necklace",ear1="Enchanter earring +1",ear2="Gwati earring",
body="Ischemia chasuble",hands="Lurid mitts",ring1="Icesoul Ring",ring2="Sangoma Ring",
back="Altruistic cape",waist="Rumination sash",legs="Hidalgo slop +1",feet="Telchine pigaches"}

sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles

sets.midcast['Dark Magic'] = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Enchanter earring +1",ear2="Gwati earring",
body="Vanir Cotehardie",hands="Yaoyotl Gloves",ring1="Strendu Ring",ring2="Sangoma Ring",
back="Altruistic cape",waist="Goading Belt",legs="Artsieq hose",feet="Telchine pigaches"}

sets.midcast.Kaustra = {main="Lehbrailg +2",sub="Wizzan Grip",ammo="Witchstone",
head="Hagondes Hat",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Crematio earring",
body="Hagondes Coat",hands="Helios gloves",ring1="Icesoul Ring",ring2="Strendu Ring",
back="Toro Cape",waist="Aswang sash",legs="Hagondes Pants",feet="Helios boots"}

sets.midcast.Drain = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Enchanter earring +1",ear2="Gwati earring",
body="Vanir Cotehardie",hands="Gendewitha Gages +1",ring1="Excelsis Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Ovate rope",legs="Artsieq hose",feet="Pedagogy Loafers"}

sets.midcast.Aspir = sets.midcast.Drain

sets.midcast.Stun = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages +1",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Witful Belt",legs="Orvail Pants +1",feet="Academic's Loafers"}

sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Lehbrailg +2"})


-- Elemental Magic sets are default for handling low-tier nukes.
sets.midcast['Elemental Magic'] = {main="Keraunos",sub="Zuuxowu Grip",ammo="Dosis Tathlum",
head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Crematio earring",
body="Helios jacket",hands="Helios gloves",ring1="Icesoul Ring",ring2="Acumen Ring",
back="Toro Cape",waist="Hachirin-no-obi",legs="Hagondes Pants +1",feet="Helios boots"}

sets.midcast['Elemental Magic'].Resistant = {main="Keraunos",sub="Zuuxowu Grip",ammo="Dosis Tathlum",
head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Crematio earring",
body="Helios jacket",hands="Helios gloves",ring1="Icesoul Ring",ring2="Acumen Ring",
back="Toro Cape",waist="Hachirin-no-obi",legs="Hagondes Pants +1",feet="Helios boots"}

-- Custom refinements for certain nuke tiers
sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})

sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'].Resistant, {sub="Wizzan Grip"})

sets.midcast.Impact = {main="Keraunos",sub="Zuuxowu Grip",ammo="Dosis Tathlum",
head= none,neck="Eddy Necklace",ear1="Hecate's Earring",ear2="Crematio earring",
body="Twilight cloak",hands="Helios gloves",ring1="Icesoul Ring",ring2="Acumen Ring",
back="Toro Cape",waist="Hachirin-no-obi",legs="Hagondes Pants +1",feet="Helios boots"}


-- Sets to return to when not performing an action.

-- Resting sets
sets.resting = {main="Chatoyant Staff",sub="Mephitis Grip",
head="Befouled crown",neck="Wiglen Gorget",
body="Ischemia chasuble",hands="Serpentes Cuffs",ring1="Sheltered Ring",ring2="Paguroidea Ring",
waist="Austerity Belt",legs="Nares Trews",feet="Serpentes Sabots"}


-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)

sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Befouled crown",neck="Wiglen Gorget",ear1="Hecate's Earring",ear2="Crematio earring",
body="Telchine chasuble",hands="Telchine gloves",ring1="Shneddick ring",ring2="Defending ring",
back="Bookworm's cape",waist="Hachirin-no-obi",legs="Hagondes pants +1",feet="Telchine pigaches"}

sets.idle.Field = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Befouled crown",neck="Wiglen Gorget",ear1="Enchanter earring +1",ear2="Loquacious Earring",
body="Telchine chasuble",hands="Telchine gloves",ring1="Sheltered Ring",ring2="Paguroidea Ring",
back="Bookworm's cape",waist="Hachirin-no-obi",legs="Hagondes pants +1",feet="Telchine pigaches"}

sets.idle.Field.PDT = {main="Terra's staff",sub="Achaq Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Gendewitha bliaut +1",hands="Gendewitha gages +1",ring1="Shneddick ring",ring2="Defending ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Hagondes pants +1",feet="Telchine pigaches"}

sets.idle.Field.Stun = {main="Lehbrailg +2",sub="Mephitis Grip",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Aesir Torque",ear1="Psystorm Earring",ear2="Lifestorm Earring",
body="Vanir Cotehardie",hands="Gendewitha Gages +1",ring1="Prolix Ring",ring2="Sangoma Ring",
back="Refraction Cape",waist="Witful Belt",legs="Orvail Pants +1",feet="Academic's Loafers"}

sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",ammo="Incantor Stone",
head="Befouled crown",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Gendewitha bliaut +1",hands="Gendewitha gages +1",ring1="Shneddick ring",ring2="Defending ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Hagondes pants +1",feet="Telchine pigaches"}

-- Defense sets

sets.defense.PDT = {main="Terra's staff",sub="Achaq Grip",ammo="Incantor Stone",
head="Befouled crown",neck="Twilight Torque",ear1="Enchanter earring +1",ear2="Loquacious Earring",
body="Gendewitha bliaut +1",hands="Gendewitha gages +1",ring1="Shneddick ring",ring2="Defending ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Hagondes pants +1",feet="Telchine pigaches"}

sets.defense.MDT = {main=gear.Staff.PDT,sub="Achaq Grip",ammo="Incantor Stone",
head="Befouled crown",neck="Twilight Torque",ear1="Enchanter earring +1",ear2="Loquacious Earring",
body="Vanir Cotehardie",hands="Helios gloves ",ring1="Shneddick ring",ring2="Defending ring",
back="Tuilha Cape",waist="Hierarch Belt",legs="Hagondes pants +1",feet="Helios boots"}

sets.Kiting = {ring1="Shneddick ring"}

sets.latent_refresh = {waist="Fucho-no-obi"}

-- Engaged sets

-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion

-- Normal melee group
sets.engaged = {
main="Bolelabunga",sub="Sors shield",ammo="Incantor Stone",
head="Nahtirah Hat",neck="Wiglen Gorget",ear1="Bloodgem Earring",ear2="Loquacious Earring",
body="Gendewitha bliaut +1",hands="Gendewitha gages +1",ring1="Shneddick ring",ring2="Defending ring",
back="Umbra Cape",waist="Hierarch Belt",legs="Hagondes pants +1",feet="Telchine pigaches"}



-- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
sets.buff['Ebullience'] = {head="Savant's Bonnet +2"}
sets.buff['Rapture'] = {head="Savant's Bonnet +2"}
sets.buff['Perpetuance'] = {hands="Savant's Bracers +2"}
sets.buff['Immanence'] = {hands="Savant's Bracers +2"}
sets.buff['Penury'] = {legs="Savant's Pants +2"}
sets.buff['Parsimony'] = {legs="Savant's Pants +2"}
sets.buff['Celerity'] = {feet="Pedagogy Loafers"}
sets.buff['Alacrity'] = {feet="Pedagogy Loafers"}

sets.buff['Klimaform'] = {feet="Savant's Loafers +2"}

sets.buff.FullSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring",body="Pedagogy Gown"}
sets.buff.PDTSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring"}

--sets.buff['Sandstorm'] = {feet="Desert Boots"}
end

-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------

-- Run after the general midcast() is done.
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Magic' then
apply_grimoire_bonuses(spell, action, spellMap, eventArgs)
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)
if buff == "Sublimation: Activated" then
handle_equipping_gear(player.status)
end
end

-- Handle notifications of general user state change.
function job_state_change(stateField, newValue, oldValue)
if stateField == 'Offense Mode' then
if newValue == 'Normal' then
disable('main','sub','range')
else
enable('main','sub','range')
end
end
end

-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------

-- Custom spell mapping.
function job_get_spell_map(spell, default_spell_map)
if spell.action_type == 'Magic' then
if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
if world.weather_element == 'Light' then
return 'CureWithLightWeather'
end
elseif spell.skill == 'Enfeebling Magic' then
if spell.type == 'WhiteMagic' then
return 'MndEnfeebles'
else
return 'IntEnfeebles'
end
elseif spell.skill == 'Elemental Magic' then
if info.low_nukes:contains(spell.english) then
return 'LowTierNuke'
elseif info.mid_nukes:contains(spell.english) then
return 'MidTierNuke'
elseif info.high_nukes:contains(spell.english) then
return 'HighTierNuke'
end
end
end
end

function customize_idle_set(idleSet)
if state.Buff['Sublimation: Activated'] then
if state.IdleMode.value == 'Normal' then
idleSet = set_combine(idleSet, sets.buff.FullSublimation)
elseif state.IdleMode.value == 'PDT' then
idleSet = set_combine(idleSet, sets.buff.PDTSublimation)
end
end

if player.mpp < 51 then
idleSet = set_combine(idleSet, sets.latent_refresh)
end

return idleSet
end

-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
if cmdParams[1] == 'user' and not (buffactive['light arts'] or buffactive['dark arts'] or
buffactive['addendum: white'] or buffactive['addendum: black']) then
if state.IdleMode.value == 'Stun' then
send_command('@input /ja "Dark Arts" <me>')
else
send_command('@input /ja "Light Arts" <me>')
end
end

update_active_strategems()
update_sublimation()
end

-- Function to display the current relevant user state when doing an update.
-- Return true if display was handled, and you don't want the default info shown.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end

-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------

-- Called for direct player commands.
function job_self_command(cmdParams, eventArgs)
if cmdParams[1]:lower() == 'scholar' then
handle_strategems(cmdParams)
eventArgs.handled = true
end
end

-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------

-- Reset the state vars tracking strategems.
function update_active_strategems()
state.Buff['Ebullience'] = buffactive['Ebullience'] or false
state.Buff['Rapture'] = buffactive['Rapture'] or false
state.Buff['Perpetuance'] = buffactive['Perpetuance'] or false
state.Buff['Immanence'] = buffactive['Immanence'] or false
state.Buff['Penury'] = buffactive['Penury'] or false
state.Buff['Parsimony'] = buffactive['Parsimony'] or false
state.Buff['Celerity'] = buffactive['Celerity'] or false
state.Buff['Alacrity'] = buffactive['Alacrity'] or false

state.Buff['Klimaform'] = buffactive['Klimaform'] or false
end

function update_sublimation()
state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
end

-- Equip sets appropriate to the active buffs, relative to the spell being cast.
function apply_grimoire_bonuses(spell, action, spellMap)
if state.Buff.Perpetuance and spell.type =='WhiteMagic' and spell.skill == 'Enhancing Magic' then
equip(sets.buff['Perpetuance'])
end
if state.Buff.Rapture and (spellMap == 'Cure' or spellMap == 'Curaga') then
equip(sets.buff['Rapture'])
end
if spell.skill == 'Elemental Magic' and spellMap ~= 'ElementalEnfeeble' then
if state.Buff.Ebullience and spell.english ~= 'Impact' then
equip(sets.buff['Ebullience'])
end
if state.Buff.Immanence then
equip(sets.buff['Immanence'])
end
if state.Buff.Klimaform and spell.element == world.weather_element then
equip(sets.buff['Klimaform'])
end
end

if state.Buff.Penury then equip(sets.buff['Penury']) end
if state.Buff.Parsimony then equip(sets.buff['Parsimony']) end
if state.Buff.Celerity then equip(sets.buff['Celerity']) end
if state.Buff.Alacrity then equip(sets.buff['Alacrity']) end
end


-- General handling of strategems in an Arts-agnostic way.
-- Format: gs c scholar <strategem>
function handle_strategems(cmdParams)
-- cmdParams[1] == 'scholar'
-- cmdParams[2] == strategem to use

if not cmdParams[2] then
add_to_chat(123,'Error: No strategem command given.')
return
end
local strategem = cmdParams[2]:lower()

if strategem == 'light' then
if buffactive['light arts'] then
send_command('input /ja "Addendum: White" <me>')
elseif buffactive['addendum: white'] then
add_to_chat(122,'Error: Addendum: White is already active.')
else
send_command('input /ja "Light Arts" <me>')
end
elseif strategem == 'dark' then
if buffactive['dark arts'] then
send_command('input /ja "Addendum: Black" <me>')
elseif buffactive['addendum: black'] then
add_to_chat(122,'Error: Addendum: Black is already active.')
else
send_command('input /ja "Dark Arts" <me>')
end
elseif buffactive['light arts'] or buffactive['addendum: white'] then
if strategem == 'cost' then
send_command('input /ja Penury <me>')
elseif strategem == 'speed' then
send_command('input /ja Celerity <me>')
elseif strategem == 'aoe' then
send_command('input /ja Accession <me>')
elseif strategem == 'power' then
send_command('input /ja Rapture <me>')
elseif strategem == 'duration' then
send_command('input /ja Perpetuance <me>')
elseif strategem == 'accuracy' then
send_command('input /ja Altruism <me>')
elseif strategem == 'enmity' then
send_command('input /ja Tranquility <me>')
elseif strategem == 'skillchain' then
add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
elseif strategem == 'addendum' then
send_command('input /ja "Addendum: White" <me>')
else
add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
end
elseif buffactive['dark arts'] or buffactive['addendum: black'] then
if strategem == 'cost' then
send_command('input /ja Parsimony <me>')
elseif strategem == 'speed' then
send_command('input /ja Alacrity <me>')
elseif strategem == 'aoe' then
send_command('input /ja Manifestation <me>')
elseif strategem == 'power' then
send_command('input /ja Ebullience <me>')
elseif strategem == 'duration' then
add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
elseif strategem == 'accuracy' then
send_command('input /ja Focalization <me>')
elseif strategem == 'enmity' then
send_command('input /ja Equanimity <me>')
elseif strategem == 'skillchain' then
send_command('input /ja Immanence <me>')
elseif strategem == 'addendum' then
send_command('input /ja "Addendum: Black" <me>')
else
add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
end
else
add_to_chat(123,'No arts has been activated yet.')
end
end


-- Gets the current number of available strategems based on the recast remaining
-- and the level of the sch.
function get_current_strategem_count()
-- returns recast in seconds.
local allRecasts = windower.ffxi.get_ability_recasts()
local stratsRecast = allRecasts[231]

local maxStrategems = (player.main_job_level + 10) / 20

local fullRechargeTime = 4*60

local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)

return currentCharges
end


-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 15)
end
 Asura.Cambion
Offline
サーバ: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2015-06-27 05:36:00  
Armyguy said: »
I downloaded a GS for sch and made the changes for my gear but. idk how to get the PDT or MDT set to stay on after casting and not go back to idle or how to get the kiting set to come on. I never used Gearswap of SC ever before. Please if anybody can help that be great. :) PS Sorry this is the only way i knew to put this on here. /sigh

Those triggers are defined (and can be edited) in the Globals folder.
Addons > Gearswap > Libs > Mote-Globals

In there, beginning on line 47 you'll find:
Code
function global_on_load()
	send_command('bind f9 gs c cycle OffenseMode')
	send_command('bind ^f9 gs c cycle HybridMode')
	send_command('bind !f9 gs c cycle RangedMode')
	send_command('bind @f9 gs c cycle WeaponskillMode')
	send_command('bind f10 gs c set DefenseMode Physical')
	send_command('bind ^f10 gs c cycle PhysicalDefenseMode')
	send_command('bind numlock gs c toggle Kiting')
	send_command('bind f11 gs c set DefenseMode Magical')
	send_command('bind ^f11 gs c cycle CastingMode')
	send_command('bind f12 gs c update user')
	send_command('bind ^f12 gs c cycle IdleMode')
	send_command('bind !f12 gs c reset DefenseMode')

	send_command('bind ^- gs c toggle selectnpctargets')
	send_command('bind ^= gs c cycle pctargetmode')
end


These are all the triggers. (I edited Kiting, I can't remember what the default is, but you'll see it in the file, I use Num Lock from the key pad, as it's easily accessible where my hand rests on the keyboard.

The ^ represents the Ctrl Key.
The ! represents the Alt Key.

So to rotate idle modes the default function would be Ctrl+f12
But as I mentioned, you can customize all of your commands as you see fit.

So for what you're trying to do, I assume you need to create however many idle mode sets you need, and then cycle through them based on your need, but I don't play any DD mage jobs, so maybe someone else can be of more help on that, but that's my initial assumption.
By Armyguy 2015-06-27 13:23:56  
Asura.Cambion said: »
Armyguy said: »
I downloaded a GS for sch and made the changes for my gear but. idk how to get the PDT or MDT set to stay on after casting and not go back to idle or how to get the kiting set to come on. I never used Gearswap of SC ever before. Please if anybody can help that be great. :) PS Sorry this is the only way i knew to put this on here. /sigh

Those triggers are defined (and can be edited) in the Globals folder.
Addons > Gearswap > Libs > Mote-Globals

In there, beginning on line 47 you'll find:
Code
function global_on_load()
	send_command('bind f9 gs c cycle OffenseMode')
	send_command('bind ^f9 gs c cycle HybridMode')
	send_command('bind !f9 gs c cycle RangedMode')
	send_command('bind @f9 gs c cycle WeaponskillMode')
	send_command('bind f10 gs c set DefenseMode Physical')
	send_command('bind ^f10 gs c cycle PhysicalDefenseMode')
	send_command('bind numlock gs c toggle Kiting')
	send_command('bind f11 gs c set DefenseMode Magical')
	send_command('bind ^f11 gs c cycle CastingMode')
	send_command('bind f12 gs c update user')
	send_command('bind ^f12 gs c cycle IdleMode')
	send_command('bind !f12 gs c reset DefenseMode')

	send_command('bind ^- gs c toggle selectnpctargets')
	send_command('bind ^= gs c cycle pctargetmode')
end


These are all the triggers. (I edited Kiting, I can't remember what the default is, but you'll see it in the file, I use Num Lock from the key pad, as it's easily accessible where my hand rests on the keyboard.

The ^ represents the Ctrl Key.
The ! represents the Alt Key.

So to rotate idle modes the default function would be Ctrl+f12
But as I mentioned, you can customize all of your commands as you see fit.

So for what you're trying to do, I assume you need to create however many idle mode sets you need, and then cycle through them based on your need, but I don't play any DD mage jobs, so maybe someone else can be of more help on that, but that's my initial assumption.


Thanks alot i see what your talking about. I got it to say that PDT and Kiting is loaded but the gear doesnt change, Does a mob have to be attacking me?
By Armyguy 2015-07-26 19:55:50  
Thankyou.
For BRD with a Daurdabla. how do i set the Dummy songs.

-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------

-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('None', 'Normal')
state.CastingMode:options('Normal', 'Resistant')
state.IdleMode:options('Normal', 'PDT')

brd_daggers = S{'Izhiikoh', 'Vanir Knife', 'Atoyac', 'Aphotic Kukri', 'Sabebus'}
pick_tp_weapon()

-- Adjust this if using the Terpander (new +song instrument)
info.ExtraSongInstrument = 'Daurdabla'
-- How many extra songs we can keep from Daurdabla/Terpander
info.ExtraSongs = 2

-- Set this to false if you don't want to use custom timers.
state.UseCustomTimers = M(true, 'Use Custom Timers')

-- Additional local binds
send_command('bind ^` gs c cycle ExtraSongsMode')
send_command('bind !` input /ma "Chocobo Mazurka" <me>')

select_default_macro_book()
end


-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !`')
end

In additional Local binds do i add another Song and change Chocobo Mazurka to the song i want.
Offline
Posts: 634
By zaxtiss 2015-08-03 12:12:43  
hey im trying to findout how to add my own self commands to my dnc GS its motes stuff so i know its something different
necroskull Necro Bump Detected! [39 days between previous and next post]
Offline
Posts: 1731
By geigei 2015-09-11 14:38:50  
Which parts from dnc.lua i need to import to thf for haste groups?
 Bismarck.Joli
Offline
サーバ: Bismarck
Game: FFXI
user: oldelf
Posts: 15
By Bismarck.Joli 2015-09-28 14:52:20  
I followed the gearswap for Dummies then
copy n pasted the MNK.lua from
https://github.com/Kinematics/GearSwap-Jobs
to notebook++ and saved it in
-Addons-GearSwap-data file as MNK.lua
then I go into game and get

user file problem: Program Files (x86)Windower/addons/GearSwap/data/MNK.lua:2: syntax error near '2'

not sure how that can happen if I just copy/paste it
any help would be appreciated
 Bismarck.Marmite
Offline
サーバ: Bismarck
Game: FFXI
user: innit
Posts: 176
By Bismarck.Marmite 2015-09-28 15:05:12  
It maybe the same problem I have with mote includes. Wait for the zoning load icon to disappear, then type //gs reload into the chat log, I have to do this every time I log in. You also may want to rename your file to Joli_MNK.lua to stop your mules loading gs files etc.
Offline
サーバ: Odin
Game: FFXI
user: Maverick
Posts: 13
By Odin.Maverickdfz 2015-09-28 15:26:09  
When you copied the MNK.lua did you copy all of the line numbers as well or just the lua code?

On the top bar there is a button to view it "Raw" which will help you avoid this being the issue if you copy and paste it from the raw view as that is just the code with no line numbers
 Bismarck.Joli
Offline
サーバ: Bismarck
Game: FFXI
user: oldelf
Posts: 15
By Bismarck.Joli 2015-09-28 15:30:03  
copied from top to bottom including the line numbers on left side

and Thank you no error loading
 Ragnarok.Beef
Offline
サーバ: Ragnarok
Game: FFXI
user: beeeeef
Posts: 342
By Ragnarok.Beef 2015-10-13 03:19:13  
i logged off on my blu and logged back on and now i'm getting this message.

User file problem: D:Program files (x86)Windower4/addons/GearSwap/data/BLU.lua:199: '=' expected near 'user_unload'

and gearswap doesn't work on blu, it does however work on PLD. how do i fix this?
 Leviathan.Vow
Offline
サーバ: Leviathan
Game: FFXI
user: woVow
Posts: 125
By Leviathan.Vow 2015-10-13 16:40:18  
The message indicates that there's a syntax error on line 199 of your blue mage gearswap file. Fix that!
 Ragnarok.Beef
Offline
サーバ: Ragnarok
Game: FFXI
user: beeeeef
Posts: 342
By Ragnarok.Beef 2015-10-13 18:51:42  
Leviathan.Vow said: »
The message indicates that there's a syntax error on line 199 of your blue mage gearswap file. Fix that!

thanks a lot! it works again haha
necroskull Necro Bump Detected! [47 days between previous and next post]
Offline
Posts: 34
By Ragnark 2015-11-29 15:30:52  
i'm getting the following error ...

Gearswap: Lua runtime error: GearSwap/refresh.lua:234: attempt to index field '?' (a nil value)
 Asura.Mcdonalds
Offline
サーバ: Asura
Game: FFXI
Posts: 48
By Asura.Mcdonalds 2015-12-05 06:50:26  
Would anyone know why gearswap loads successfully, but when I change to the job the red words don't appear and no macro changes gear? There's no errors in the script. I was using it last week and now suddenly when I go to the job it's not recognizing I'm on the job?
necroskull Necro Bump Detected! [44 days between previous and next post]
 Leviathan.Frotaut
Offline
サーバ: Leviathan
Game: FFXI
user: Frotaut2
Posts: 281
By Leviathan.Frotaut 2016-01-18 17:43:27  
how do i fit Norifusa +1 into gearswap sets?
When i Write it like:
sets.TP.Norifusa +1 = {whatever gear }

i get in game error of:
'=' expected near '+'

what am i doing wrong?
 Asura.Cambion
Offline
サーバ: Asura
Game: FFXI
user: Cambion
Posts: 415
By Asura.Cambion 2016-01-23 12:58:33  
Leviathan.Frotaut said: »
how do i fit Norifusa +1 into gearswap sets?
When i Write it like:
sets.TP.Norifusa +1 = {whatever gear }

i get in game error of:
'=' expected near '+'

what am i doing wrong?

It's expecting the = sign, where you have the + sign.
Meaning, after a weapon name and a space, it's expecting = {whatever gear}

Basically, it's an issue with the space+1 of the weapon.
I'd have to go find a Lua that handles weapon specific gear to know the correct fix. My first guess would be an underscore, or perhaps '' or "" like Dnc do with Rudra's, but I'm not positive, I'll see what I can find.
 Ragnarok.Flippant
Offline
サーバ: Ragnarok
Game: FFXI
user: Enceladus
Posts: 658
By Ragnarok.Flippant 2016-01-23 13:06:01  
The proper method to refer to the child of a table is brackets.

sets.TP["Norifusa +1"]

The period is a shortcut that can only be used instead when: 1) the child's name is a string, not a variable or a number, and 2) the string begins with an alphabetical character, and contains no non-alphanumeric characters, including spaces.
necroskull Necro Bump Detected! [72 days between previous and next post]
 Asura.Azagarth
Offline
サーバ: Asura
Game: FFXI
user: Azagarth
Posts: 1325
By Asura.Azagarth 2016-04-05 00:01:40  
Hey just wanted to say thanks for this guide, I am trying to learn and while I still dont get how me using my controller for macros will work, its fun to have things up and running kinda.

Did we ever figure out a way to let the CP bonus mantle be locked when xping? I really hate the idea of losing out on 30% cp lol.....
necroskull Necro Bump Detected! [40 days between previous and next post]
 Sylph.Infamy
Offline
サーバ: Sylph
Game: FFXI
user: Virtue
Posts: 28
By Sylph.Infamy 2016-05-14 16:56:02  
Hi Azagarth,

I know this is a very late reply, but the command //GS disable back will lock your current cape in place. Hit that before your CP session starts and equip your mantle and it will stay on. When you are done CPing, //GS enable back reverses the command.

Probably obvious, but this command works for all slots. Using Ring1 is a good way to change to CP rings on the fly. //GS disable all can also be helpful, as it completely blocks GS from changing gear.

Played with GS for years before I learned these. Hope they help you as much as they helped me.
[+]
 Asura.Azagarth
Offline
サーバ: Asura
Game: FFXI
user: Azagarth
Posts: 1325
By Asura.Azagarth 2016-05-19 23:46:51  
ty it does help a lot hehe
Offline
Posts: 1
By Bsouthland 2016-05-24 03:08:46  
When i try too use this it will equip the herculean boots but not the hands or the back piece any ideas why?



sets.TP.Standard = {ammo="Ginsen",
head="Adhemar Bonnet",
body="Adhemar Jacket",
hands={ name="Herculean gloves", augments={'Accuracy+19','"Triple Atk."+3','Attack+19','DEX+10',}},
legs="Samnuha Tights",
feet={ name="Herculean Boots", augments={'Accuracy+28','"Triple Atk."+3','DEX+1',}},
neck="Asperity Necklace",
waist="Windbuffet Belt +1",
left_ear="Brutal Earring",
right_ear="Suppanomimi",
left_ring="Epona's Ring",
right_ring="Petrov Ring",
back={ name="Rosmerta's Cape", augments={'DEX+20','"Dbl.Atk."+10','Accuracy+20','Attack+20',}},
}
 Asura.Chiaia
VIP
Offline
サーバ: Asura
Game: FFXI
user: Demmis
Posts: 1652
By Asura.Chiaia 2016-05-24 03:48:49  
More then likely your acc or att augs on herc are not one single aug and are really two making it 28 for expample. Best way to gte reall stats are to use //gs export and copy the lines given.

Example:
body={ name="Merlinic Jubbah", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Magic burst mdg.+6%','INT+8','Mag. Acc.+6','"Mag.Atk.Bns."+10',}},

But in game it just shows MACC 26 AND MAB 30

Edit: Also the the back its wierd:
back={ name="Taranus's Cape", augments={'INT+20','System: 1 ID: 80 Val: 19','"Mag.Atk.Bns."+10',}}

That system 1 is a MACC/MDMG aug @20
[+]