|
Summoner Gearswap (yep another one :P)
By aisukage 2018-08-01 14:43:40
You can actually comment out longer multiple line sections with
--[[
]]
Just by the way :p
Just want to say i know this is like 8 months old but just seen this and is actually awesome to know. i been double dashing each line in certain sections so thanks for this.
Necro Bump Detected!
[247 days between previous and next post]
By dustinfoley 2019-04-05 19:35:31
Just wondering if anyone else is still having an issue with this not unbinding all key binds. I constantly have issues with num pad 123 (assault, release, retreat)
is there a generic unbind all command i can add?
Necro Bump Detected!
[43 days between previous and next post]
サーバ: Odin
Game: FFXI
Posts: 2
By Odin.Demandred 2019-05-18 14:07:10
Would anyone know how to work in Pergatory's code to fix High Lag issues in placed like Omen and Divergence that cause problems switching to Midcast gear in time?
https://www.ffxiah.com/forum/topic/51851/annoyed-by-lags-killing-precastmidcast-in-gs/2/
サーバ: Asura
Game: FFXI
Posts: 1383
By Asura.Pergatory 2019-05-21 10:06:37
There's a variable called LagMode, currently at line 48. If you set that to true, it should work better in high-lag situations.
If you only want it on and off in certain situations, you can toggle it in-game with "//gs c LagMode"
サーバ: Odin
Game: FFXI
Posts: 2
By Odin.Demandred 2019-05-23 23:15:48
I was hoping to merge that bit of code into this lua, but I am just switching to yours for now. I love the HUD, but i need that Lag Mode.
Ragnarok.Boq
サーバ: Ragnarok
Game: FFXI
Posts: 31
By Ragnarok.Boq 2019-05-26 16:08:47
Perhaps this is a question for Pergatory as I'm using his SMN lua as a base. I can't seem to get it to work such that Asteria and Lamassu Mitts +1 are equipped when Carbuncle and Cait Sith are out. I tried putting this: Code
function pet_aftercast(spell)
idle()
if pet.isvalid and pet.name=='Cait Sith' then
equip({hands="Lamassu Mitts+1"})
end
if pet.isvalid and pet.name=='Carbuncle' then
equip({hands="Asteria Mitts+1"})
end
end
But it doesn't seem to do what I'm looking for. I apologize I'm not particularly savvy with writing these codes. I'd appreciate any input!
full lua: Code -- IdleMode determines the set used after casting. You change it with "/console gs c <IdleMode>"
-- The modes are:
-- Refresh: Uses the most refresh available.
-- DT: A mix of refresh, PDT, and MDT to help when you can't avoid AOE.
-- PetDT: Sacrifice refresh to reduce avatar's damage taken. WARNING: Selenian Cap drops you below 119, use with caution!
-- DD: When melee mode is on and you're engaged, uses TP gear. Otherwise, avatar melee gear.
-- Favor: Uses Beckoner's Horn +1 and max smn skill to boost the favor effect.
-- Zendik: Favor build with the Zendik Robe added in, for Shiva's Favor in manaburn parties. (Shut up, it sounded like a good idea at the time)
-- Additional Bindings:
-- F9 - Toggles between a subset of IdleModes (Refresh > DT > PetDT)
-- F10 - Toggles MeleeMode (When enabled, equips Nirvana and Elan+1, then disables those 2 slots from swapping)
-- NOTE: If you don't already have the Nirvana & Elan+1 equipped, YOU WILL LOSE TP
-- Additional Commands:
-- /console gs c AccMode - Toggles high-accuracy sets to be used where appropriate.
-- /console gs c ImpactMode - Toggles between using normal magic BP set for Fenrir's Impact or a custom high-skill set for debuffs.
-- /console gs c ForceIlvl - I have this set up to override a few specific slots where I normally use non-ilvl pieces.
-- /console gs c LagMode - Used to help BPs land in the right gear in high-lag situations.
-- Sets a timer to swap gear 0.2s after the BP is used rather than waiting for server response.
function file_unload()
send_command('unbind f9')
send_command('unbind f10')
end
function get_sets()
send_command('bind f9 gs c ToggleIdle')
send_command('bind f10 gs c MeleeMode')
-- Set your merits here. This is used in deciding between Enticer's Pants or Apogee Slacks +1.
-- To change in-game, "/console gs c MeteorStrike3" will change Meteor Strike to 3/5 merits.
-- The damage difference is very minor unless you're over 2400 TP.
-- It's ok to just always use Enticer's Pants and ignore this section.
MeteorStrike = 1
HeavenlyStrike = 5
WindBlade = 1
Geocrush = 1
Thunderstorm = 1
GrandFall = 1
StartLockStyle = '75'
IdleMode = 'Refresh'
AccMode = false
ImpactDebuff = false
MeleeMode = false
ForceIlvl = false
LagMode = false -- Default LagMode. If you have a lot of lag issues, change to "true".
AutoRemedy = false -- Auto Remedy when using an ability while Paralyzed.
AutoEcho = false -- Auto Echo Drop when using an ability while Silenced.
Test = 0
-- ===================================================================================================================
-- Sets
-- ===================================================================================================================
-- Base Damage Taken Set - Mainly used when IdleMode is "DT"
sets.DT_Base = {
sub="Vallus Grip",
neck="Twilight Torque",
hands="Asteria Mitts +1",
back="Hexerei Cape",
left_ring="Dark Ring",
right_ring="Dark Ring"
}
sets.precast = {}
-- Fast Cast
sets.precast.FC = {
--ammo="Impatiens",
--head="Nares Cap",
--body="Anhur Robe",
--hands="Rubeus Gloves",
legs="Orvail Pants +1",
--feet="Rubeus Boots",
waist="Witful Belt",
left_ear="Loquac. Earring",
back="Swith Cape"
}
sets.precast.Cure = set_combine(sets.precast.FC, {
body="Heka's Kalasiris",
back="Pahtli Cape"
})
sets.midcast = {}
-- BP Timer Gear
sets.midcast.BP = {
--main={ name="Vayuvata III", augments={'Wind Affinity: Avatar perp. cost+6','Wind Affin.: "Blood Pact" delay +12',}},
ammo="Sancus Sachet",
head="Beckoner's Horn +1",
neck="Caller's Pendant",
body={ name="Glyphic Doublet", augments={'Reduces Sp. "Blood Pact" MP cost',}},
waist="Cimmerian Sash",
hands={ name="Glyphic Bracers +1", augments={'Inc. Sp. "Blood Pact" masgic burst dmg.',}},
legs="Smn. Spats +2",
feet="Smn. Pigaches +2",
left_ring="Evoker's Ring",
left_ear="Caller's Earring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
}
-- Elemental Siphon sets. Zodiac Ring is affected by day, Chatoyant Staff by weather, and Twilight Cape by both.
sets.midcast.Siphon = {
--main="Soulscourge",
sub="Vox Grip",
head="Con. Horn +1",
body="Beckoner's Doublet",
hands="Lamassu Mitts +1",
legs="Caller's Spats +2",
feet="Beck. Pigaches",
neck="Caller's Pendant",
waist="Cimmerian Sash",
left_ring="Evoker's Ring",
right_ring="Fervor Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
}
sets.midcast.SiphonZodiac = set_combine(sets.midcast.Siphon, { ring1="Zodiac Ring" })
sets.midcast.SiphonWeather = set_combine(sets.midcast.Siphon, { main="Chatoyant Staff" })
sets.midcast.SiphonWeatherZodiac = set_combine(sets.midcast.SiphonZodiac, { main="Chatoyant Staff" })
sets.midcast.Summon = set_combine(sets.DT_Base, {})
sets.midcast.Cure = {
main={ name="Arka IV", augments={'"Cure" potency +24%',}},
head="Con. Horn +1",
body="Heka's Kalasiris",
hands="Otomi Gloves",
legs="Assid. Pants +1",
feet="Con. Pigaches +1",
neck="Phalaina Locket",
waist="Penitent's Rope",
left_ear="Magnetic Earring",
right_ear="Loquac. Earring",
left_ring="Tamas Ring",
back="Pahtli Cape"
}
sets.midcast.Cursna = set_combine(sets.precast.FC, {
})
sets.midcast.EnmityRecast = set_combine(sets.precast.FC, {
})
sets.midcast.Enfeeble = {
}
sets.midcast.Enhancing = {
--main={ name="Kirin's Pole", augments={'DMG:+24','Enha.mag. skill +12','VIT+8',}},
body="Anhur Robe",
feet="Rubeus Boots",
neck="Colossus's Torque",
waist="Olympus Sash",
back="Merciful Cape"
}
sets.midcast.Stoneskin = set_combine(sets.midcast.Enhancing, {
head="Buremte Hat",
body="Shomonjijoe +1",
hands="Glyphic Bracers +1",
neck="Mizukage-no-Kubikazari",
legs="Assiduity Pants +1",
left_ring="Tamas Ring",
feet="Convoker's Pigaches +1"
})
sets.midcast.Nuke = {
}
sets.midcast["Refresh"] = set_combine(sets.midcast.Enhancing, {
})
sets.midcast["Aquaveil"] = set_combine(sets.midcast.Enhancing, {
})
sets.midcast["Mana Cede"] = { hands="Beckoner's Bracers" }
sets.midcast["Astral Flow"] = { head={ name="Glyphic Horn", augments={'Enhances "Astral Flow" effect',}} }
sets.midcast["Garland of Bliss"] = {
right_ear="Friomisi Earring",
left_ear="Hecate's Earring",
back="Searing Cape",
neck="Mizukage-no-Kubiazari",
head="Convoker's Horn +1",
body="Ischemia Chasuble",
hands="Lurid Mitts",
legs="Assiduity Pants +1"
}
sets.midcast["Shattersoul"] = {
}
sets.midcast["Cataclysm"] = sets.midcast.Nuke
sets.pet_midcast = {}
-- Main physical pact set (Volt Strike, Pred Claws, etc.)
sets.pet_midcast.Physical_BP = set_combine(sets.pet_midcast.SummoningMagic, {
main={ name="Gridarvor", augments={'Pet: Accuracy+70','Pet: Attack+70','Pet: "Dbl. Atk."+15',}},
sub="Elan Strap",
head="Con. Horn +1",
body="Convoker's Doublet +1",
hands={ name="Glyphic Bracers +1", augments={'Inc. Sp. "Blood Pact" magic burst dmg.',}},
legs="Avatara Slops",
feet="Con. Pigaches +1",
waist="Cimmerian Sash",
left_ear="Gelos Earring",
left_ring="Varar Ring",
right_ring="Thurandaut Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
})
sets.pet_midcast.Physical_BP_AM3 = set_combine(sets.pet_midcast.Physical_BP, {
})
-- Physical pacts which benefit more from TP than Pet:DA (like single-hit BP)
sets.pet_midcast.Physical_BP_TP = set_combine(sets.pet_midcast.Physical_BP, {
})
-- Used for all physical pacts when AccMode is true
sets.pet_midcast.Physical_BP_Acc = set_combine(sets.pet_midcast.Physical_BP, {
})
-- Base magic pact set
sets.pet_midcast.Magic_BP_Base = set_combine(sets.pet_midcast.SummoningMagic, {
main={ name="Keraunos", augments={'Pet: Mag. Acc.+12',}},
sub="Elan Strap",
head="Con. Horn +1",
body="Convoker's Doublet +1",
hands={ name="Glyphic Bracers +1", augments={'Inc. Sp. "Blood Pact" magic burst dmg.',}},
legs="Avatara Slops",
feet="Con. Pigaches +1",
waist="Cimmerian Sash",
left_ear="Gelos Earring",
left_ring="Vavar Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
})
-- Some magic pacts benefit more from TP than others.
-- Note: This set will only be used on merit pacts if you have less than 4 merits.
-- Make sure to update your merit values at the top of this Lua.
sets.pet_midcast.Magic_BP_TP = set_combine(sets.pet_midcast.Magic_BP_Base, {
})
-- NoTP set used when you don't need Enticer's
sets.pet_midcast.Magic_BP_NoTP = set_combine(sets.pet_midcast.Magic_BP_Base, {
})
sets.pet_midcast.Magic_BP_TP_Acc = set_combine(sets.pet_midcast.Magic_BP_TP, {
})
sets.pet_midcast.Magic_BP_NoTP_Acc = set_combine(sets.pet_midcast.Magic_BP_NoTP, {
})
sets.pet_midcast.FlamingCrush = set_combine(sets.pet_midcast.Magic_BP_Base, {
main={ name="Keraunos", augments={'Pet: Mag. Acc.+12',}},
legs="Avatara Slops",
feet="Con. Pigaches +1",
waist="Klouskap Sash",
left_ear="Gelos Earring",
right_ring="Fervor Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
})
sets.pet_midcast.FlamingCrush_Acc = set_combine(sets.pet_midcast.FlamingCrush, {
})
-- Pet: Magic Acc set - Mainly used for debuff pacts like Shock Squall
sets.pet_midcast.MagicAcc_BP = {
}
sets.pet_midcast.Debuff_Rage = sets.pet_midcast.MagicAcc_BP
-- Pure summoning magic set, mainly used for buffs like Hastega II.
sets.pet_midcast.SummoningMagic = {
--main="Soulscourge",
--sub="Vox Grip",
head="Con. Horn +1",
body="Beckoner's Doublet",
hands="Lamassu Mitts +1",
legs="Caller's Spats +2",
neck="Caller's Pendant",
waist="Cimmerian Sash",
left_ring="Evoker's Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
}
sets.pet_midcast.Buff = sets.pet_midcast.SummoningMagic
-- I use Apogee gear for healing BPs because the amount healed is affected by avatar max HP.
-- I'm probably stupid. It puts you in yellow HP after using a healing move.
sets.pet_midcast.Buff_Healing = set_combine(sets.pet_midcast.SummoningMagic, {
})
-- This set is used for certain blood pacts when ImpactDebuff mode is ON. (/console gs c ImpactDebuff)
-- These pacts are normally used as nukes, but they're also strong debuffs which are enhanced by smn skill.
sets.pet_midcast.Impact = set_combine(sets.pet_midcast.SummoningMagic, {
})
sets.aftercast = {}
-- Idle set with no avatar out.
sets.aftercast.Idle = {
main={ name="Gridarvor", augments={'Pet: Accuracy+70','Pet: Attack+70','Pet: "Dbl. Atk."+15',}},
--sub="Genbu's Shield",
ammo="Sancus Sachet",
head="Beckoner's Horn +1",
body="Shomonjijoe +1",
hands="Asteria Mitts +1",
legs="Assid. Pants +1",
feet="Beckoner's Pigaches +1",
neck="Caller's Pendant",
waist="Tarutaru Sash",
left_ear="Gelos Earring",
right_ear={ name="Moonshade Earring", augments={'Mag. Acc.+4','Latent effect: "Refresh"+1',}},
left_ring="Evoker's Ring",
right_ring="Thurandaut Ring",
back={ name="Conveyance Cape", augments={'Summoning magic skill +3','Pet: Enmity+6','Blood Pact Dmg.+1','Blood Pact ab. del. II -3',}}
}
-- Idle set used when ForceIlvl is ON. Use this mode to avoid Gaiters dropping ilvl.
sets.aftercast.Idle_Ilvl = set_combine(sets.aftercast.Idle, {
})
sets.aftercast.DT = sets.DT_Base
-- Many idle sets inherit from this set.
-- Put common items here so you don't have to repeat them over and over.
sets.aftercast.Perp_Base = set_combine(sets.aftercast.Idle, {
main={ name="Gridarvor", augments={'Pet: Accuracy+70','Pet: Attack+70','Pet: "Dbl. Atk."+15',}},
sub="Elan Strap",
head="Beckoner's Horn +1",
body="Shomonjijoe +1",
hands="Asteria Mitts +1",
legs="Assid. Pants +1",
feet="Beckoner's Pigaches +1",
back="Aptitude Mantle",
waist="Klouskap Sash",
left_ring="Varar Ring",
right_ring="Thurandaut Ring",
right_ear={ name="Moonshade Earring", augments={'Mag. Acc.+4','Latent effect: "Refresh"+1',}}
})
-- Avatar Melee set. Equipped when IdleMode is "DD" and MeleeMode is OFF.
sets.aftercast.Perp_DD = set_combine(sets.aftercast.Perp_Base, {
sub="Elan Strap"
})
-- Refresh set with avatar out. Equipped when IdleMode is "Refresh".
sets.aftercast.Perp_Refresh = set_combine(sets.aftercast.Perp_Base, {
back="Conveyance Cape",
waist="Fucho-no-Obi",
sub="Oneiros Grip",
left_ring="Evoker's Ring"
})
sets.aftercast.Perp_RefreshSub50 = set_combine(sets.aftercast.Perp_Refresh, {
waist="Fucho-no-obi"
})
sets.aftercast.Perp_Favor = set_combine(sets.aftercast.Perp_Refresh, {
})
sets.aftercast.Perp_Zendik = set_combine(sets.aftercast.Perp_Favor, {
})
-- TP set. Equipped when IdleMode is "DD" and MeleeMode is ON.
sets.aftercast.Perp_Melee = set_combine(sets.aftercast.Perp_Refresh, {
})
-- Pet:DT build. Equipped when IdleMode is "PetDT".
sets.aftercast.Avatar_DT = {
}
-- Perp down set used when ForceIlvl is ON. Use this mode to avoid Selenian Cap dropping ilvl.
sets.aftercast.Avatar_DT_Ilvl = set_combine(sets.aftercast.Avatar_DT, {
})
-- DT build with avatar out. Equipped when IdleMode is "DT".
sets.aftercast.Perp_DT = set_combine(sets.DT_Base, {
main= { name="Gridarvor", augments={'Pet: Accuracy+70','Pet: Attack+70','Pet: "Dbl. Atk."+15',}},
--sub="Vallus Grip",
waist="Klouskap Sash",
hands="Asteria Mitts +1",
legs="Assiduity Pants +1",
feet="Beckoner's Pigaches +1",
body="Shomonjijoe +1",
head="Beckoner's Horn +1"
})
sets.aftercast.Spirit = set_combine(sets.aftercast.Perp_Base, {
})
-- ===================================================================================================================
-- End of Sets
-- ===================================================================================================================
Buff_BPs_Duration = S{'Shining Ruby','Aerial Armor','Frost Armor','Rolling Thunder','Crimson Howl','Lightning Armor','Ecliptic Growl','Glittering Ruby','Earthen Ward','Hastega','Noctoshield','Ecliptic Howl','Dream Shroud','Earthen Armor','Fleet Wind','Inferno Howl','Heavenward Howl','Hastega II','Soothing Current','Crystal Blessing'}
Buff_BPs_Healing = S{'Healing Ruby','Healing Ruby II','Whispering Wind','Spring Water'}
Debuff_BPs = S{'Mewing Lullaby','Eerie Eye','Lunar Cry','Lunar Roar','Nightmare','Pavor Nocturnus','Ultimate Terror','Somnolence','Slowga','Tidal Roar','Diamond Storm','Sleepga','Shock Squall'}
Debuff_Rage_BPs = S{'Moonlit Charge','Tail Whip'}
Magic_BPs_NoTP = S{'Holy Mist','Nether Blast','Aerial Blast','Searing Light','Diamond Dust','Earthen Fury','Zantetsuken','Tidal Wave','Judgment Bolt','Inferno','Howling Moon','Ruinous Omen','Night Terror','Thunderspark'}
Magic_BPs_TP = S{'Impact','Conflag Strike','Level ? Holy','Lunar Bay'}
Merit_BPs = S{'Meteor Strike','Geocrush','Grand Fall','Wind Blade','Heavenly Strike','Thunderstorm'}
Physical_BPs_TP = S{'Rock Buster','Mountain Buster','Crescent Fang','Spinning Dive'}
ZodiacElements = S{'Fire','Earth','Water','Wind','Ice','Lightning'}
AvatarList = S{'Shiva','Ramuh','Garuda','Leviathan','Diabolos','Titan','Fenrir','Ifrit','Carbuncle','Fire Spirit','Air Spirit','Ice Spirit','Thunder Spirit','Light Spirit','Dark Spirit','Earth Spirit','Water Spirit','Cait Sith','Alexander','Odin','Atomos'}
--TownIdle = S{"windurst woods","windurst waters","windurst walls","port windurst","bastok markets","bastok mines","port bastok","southern san d'oria","northern san d'oria","port san d'oria","upper jeuno","lower jeuno","port jeuno","ru'lude gardens","norg","kazham","tavnazian safehold","rabao","selbina","mhaura","aht urhgan whitegate","al zahbi","nashmau","western adoulin","eastern adoulin"}
--Salvage = S{"Bhaflau Remnants","Zhayolm Remnants","Arrapago Remnants","Silver Sea Remnants"}
-- Select initial macro set and set lockstyle
-- This section likely requires changes or removal if you aren't Pergatory
if pet.isvalid then
if pet.name=='Fenrir' then
send_command('input /macro book 1;wait .1;input /macro set 7;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Ifrit' then
send_command('input /macro book 1;wait .1;input /macro set 3;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Titan' then
send_command('input /macro book 1;wait .1;input /macro set 5;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Leviathan' then
send_command('input /macro book 1;wait .1;input /macro set 6;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Garuda' then
send_command('input /macro book 1;wait .1;input /macro set 1;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Shiva' then
send_command('input /macro book 1;wait .1;input /macro set 2;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Ramuh' then
send_command('input /macro book 1;wait .1;input /macro set 4;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Diabolos' then
send_command('input /macro book 1;wait .1;input /macro set 10;wait 3;input /lockstyleset '..StartLockStyle)
elseif pet.name=='Cait Sith' then
send_command('input /macro book 1;wait .1;input /macro set 9;wait 3;input /lockstyleset '..StartLockStyle)
end
else
send_command('input /macro book 1;wait .1;input /macro set 1;wait 3;input /lockstyleset '..StartLockStyle)
end
-- End macro set / lockstyle section
end
function pet_change(pet,gain)
idle()
end
function pretarget(spell,action)
if not buffactive['Muddle'] then
-- Auto Remedy --
if AutoRemedy and (spell.action_type == 'Magic' or spell.type == 'JobAbility') then
if buffactive['Paralysis'] or (buffactive['Silence'] and not AutoEcho) then
cancel_spell()
send_command('input /item "Remedy" <me>')
end
end
-- Auto Echo Drop --
if AutoEcho and spell.action_type == 'Magic' and buffactive['Silence'] then
cancel_spell()
send_command('input /item "Echo Drops" <me>')
end
end
end
function precast(spell)
if (pet.isvalid and pet_midaction()) or spell.type=="Item" then
return
end
-- Spell fast cast
if spell.action_type=="Magic" then
if spell.name=="Stoneskin" then
equip(sets.precast.FC,{hands="Carapacho Cuffs"})
else
equip(sets.precast.FC)
end
end
if string.find(spell.name,"Cure") or string.find(spell.name,"Curaga") then
equip(sets.precast.Cure)
else
equip(sets.precast.FC)
end
end
function midcast(spell)
if (pet.isvalid and pet_midaction()) or spell.type=="Item" then
return
end
-- BP Timer gear needs to swap here
if (spell.type=="BloodPactWard" or spell.type=="BloodPactRage") then
if not buffactive["Astral Conduit"] then
equip(sets.midcast.BP)
end
-- If lag compensation mode is on, set up a timer to equip the BP gear.
if LagMode then
send_command('wait 0.5;gs c EquipBP '..spell.name)
end
-- Spell Midcast & Potency Stuff
elseif sets.midcast[spell.english] then
equip(sets.midcast[spell.english])
elseif spell.name=="Elemental Siphon" then
if pet.element==world.day_element and ZodiacElements:contains(pet.element) then
if pet.element==world.weather_element then
equip(sets.midcast.SiphonWeatherZodiac)
else
equip(sets.midcast.SiphonZodiac)
end
else
if pet.element==world.weather_element then
equip(sets.midcast.SiphonWeather)
else
equip(sets.midcast.Siphon)
end
end
elseif spell.type=="SummonerPact" then
equip(sets.midcast.Summon)
elseif spell.type=="WhiteMagic" then
if string.find(spell.name,"Cure") or string.find(spell.name,"Curaga") then
equip(sets.midcast.Cure)
elseif string.find(spell.name,"Protect") or string.find(spell.name,"Shell") then
equip(sets.midcast.Enhancing,{ring2="Sheltered Ring"})
elseif spell.skill=="Enfeebling Magic" then
equip(sets.midcast.Enfeeble)
elseif spell.skill=="Enhancing Magic" then
equip(sets.midcast.Enhancing)
else
idle()
end
elseif spell.type=="BlackMagic" then
if spell.skill=="Elemental Magic" then
equip(sets.midcast.Nuke)
end
elseif spell.action_type=="Magic" then
equip(sets.midcast.EnmityRecast)
else
idle()
end
-- Auto-cancel existing buffs
if spell.name=="Stoneskin" and buffactive["Stoneskin"] then
windower.send_command('cancel 37;')
elseif spell.name=="Sneak" and buffactive["Sneak"] and spell.target.type=="SELF" then
windower.send_command('cancel 71;')
elseif spell.name=="Utsusemi: Ichi" and buffactive["Copy Image"] then
windower.send_command('wait 1;cancel 66;')
end
end
function aftercast(spell)
if pet_midaction() or spell.type=="Item" then
return
end
if not string.find(spell.type,"BloodPact") then
idle()
end
end
function status_change(new,old)
if new=="Idle" then
idle()
end
end
function buff_change(name,gain)
if name=="Quickening" then
idle()
end
end
function pet_midcast(spell)
if not LagMode then
equipBPGear(spell.name)
end
end
function pet_aftercast(spell)
idle()
if pet.isvalid and pet.name=='Cait Sith' then
equip({hands="Lamassu Mitts+1"})
end
end
function equipBPGear(spell)
if spell=="Perfect Defense" then
equip(sets.pet_midcast.SummoningMagic)
elseif Debuff_BPs:contains(spell) then
equip(sets.pet_midcast.MagicAcc_BP)
elseif Buff_BPs_Healing:contains(spell) then
equip(sets.pet_midcast.Buff_Healing)
elseif Buff_BPs_Duration:contains(spell) then
equip(sets.pet_midcast.Buff)
elseif spell=="Flaming Crush" then
if AccMode then
equip(sets.pet_midcast.FlamingCrush_Acc)
else
equip(sets.pet_midcast.FlamingCrush)
end
elseif ImpactDebuff and (spell=="Impact" or spell=="Conflag Strike") then
equip(sets.pet_midcast.Impact)
elseif Magic_BPs_TP:contains(spell) or string.find(spell," II") or string.find(spell," IV") then
if AccMode then
equip(sets.pet_midcast.Magic_BP_TP_Acc)
else
equip(sets.pet_midcast.Magic_BP_TP)
end
elseif Magic_BPs_NoTP:contains(spell) then
if AccMode then
equip(sets.pet_midcast.Magic_BP_NoTP_Acc)
else
equip(sets.pet_midcast.Magic_BP_NoTP)
end
elseif Merit_BPs:contains(spell) then
if AccMode then
equip(sets.pet_midcast.Magic_BP_TP_Acc)
elseif spell=="Meteor Strike" and MeteorStrike>4 then
equip(sets.pet_midcast.Magic_BP_NoTP)
elseif spell=="Geocrush" and Geocrush>4 then
equip(sets.pet_midcast.Magic_BP_NoTP)
elseif spell=="Grand Fall" and GrandFall>4 then
equip(sets.pet_midcast.Magic_BP_NoTP)
elseif spell=="Wind Blade" and WindBlade>4 then
equip(sets.pet_midcast.Magic_BP_NoTP)
elseif spell=="Heavenly Strike" and HeavenlyStrike>4 then
equip(sets.pet_midcast.Magic_BP_NoTP)
elseif spell=="Thunderstorm" and Thunderstorm>4 then
equip(sets.pet_midcast.Magic_BP_NoTP)
else
equip(sets.pet_midcast.Magic_BP_TP)
end
elseif Debuff_Rage_BPs:contains(spell) then
equip(sets.pet_midcast.Debuff_Rage)
else
if AccMode then
equip(sets.pet_midcast.Physical_BP_Acc)
elseif Physical_BPs_TP:contains(spell) then
equip(sets.pet_midcast.Physical_BP_TP)
elseif buffactive["Aftermath: Lv.3"] then
equip(sets.pet_midcast.Physical_BP_AM3)
else
equip(sets.pet_midcast.Physical_BP)
end
end
end
-- This command is called whenever you input "gs c <command>"
function self_command(command)
IdleModeCommands = {'DD','Refresh','DT','Favor','PetDT','Zendik'}
is_valid = false
if command == 'autosort' then
windower.register_event('add item',function()
windower.send_command('itemizer put "Fenrite" case')
windower.send_command('itemizer put "Shadow Geode" case')
end)
end
for _, v in ipairs(IdleModeCommands) do
if command:lower()==v:lower() then
IdleMode = v
send_command('console_echo "Idle Mode: ['..IdleMode..']"')
idle()
return
end
end
if string.sub(command,1,7)=="EquipBP" then
equipBPGear(string.sub(command,9,string.len(command)))
return
elseif command:lower()=="accmode" then
AccMode = AccMode==false
is_valid = true
send_command('console_echo "AccMode: '..tostring(AccMode)..'"')
elseif command:lower()=="impactmode" then
ImpactDebuff = ImpactDebuff==false
is_valid = true
send_command('console_echo "Impact Debuff: '..tostring(ImpactDebuff)..'"')
elseif command:lower()=="forceilvl" then
ForceIlvl = ForceIlvl==false
is_valid = true
send_command('console_echo "Force iLVL: '..tostring(ForceIlvl)..'"')
elseif command:lower()=="lagmode" then
LagMode = LagMode==false
is_valid = true
send_command('console_echo "Lag Compensation Mode: '..tostring(LagMode)..'"')
elseif command:lower()=="meleemode" then
if MeleeMode then
MeleeMode = false
enable("main","sub")
send_command('console_echo "Melee Mode: false"')
else
MeleeMode = true
equip({main="Nirvana",sub="Elan Strap +1"})
disable("main","sub")
send_command('console_echo "Melee Mode: true"')
end
is_valid = true
elseif command=="ToggleIdle" then
is_valid = true
if IdleMode=="Refresh" then
IdleMode = "DT"
elseif IdleMode=="DT" then
IdleMode = "PetDT"
elseif IdleMode=="PetDT" then
IdleMode = "DD"
else
IdleMode = "Refresh"
end
send_command('console_echo "Idle Mode: ['..IdleMode..']"')
elseif command:lower()=="lowhp" then
-- Use for "Cure 500 HP" objectives in Omen
equip({head="Apogee Crown +1",body={ name="Apo. Dalmatica +1", augments={'MP+80','Pet: "Mag.Atk.Bns."+35','Blood Pact Dmg.+8',}},legs="Apogee Slacks +1",feet="Apogee Pumps +1",back="Campestres's Cape"})
return
elseif string.sub(command:lower(),1,12)=="meteorstrike" then
MeteorStrike = string.sub(command,13,13)
send_command('console_echo "Meteor Strike: '..MeteorStrike..'/5"')
is_valid = true
elseif string.sub(command:lower(),1,8)=="geocrush" then
Geocrush = string.sub(command,9,9)
send_command('console_echo "Geocrush: '..Geocrush..'/5"')
is_valid = true
elseif string.sub(command:lower(),1,9)=="grandfall" then
GrandFall = string.sub(command,10,10)
send_command('console_echo "Grand Fall: '..GrandFall..'/5"')
is_valid = true
elseif string.sub(command:lower(),1,9)=="windblade" then
WindBlade = +string.sub(command,10,10)
send_command('console_echo "Wind Blade: '..WindBlade..'/5"')
is_valid = true
elseif string.sub(command:lower(),1,14)=="heavenlystrike" then
HeavenlyStrike = string.sub(command,15,15)
send_command('console_echo "Heavenly Strike: '..HeavenlyStrike..'/5"')
is_valid = true
elseif string.sub(command:lower(),1,12)=="thunderstorm" then
Thunderstorm = string.sub(command,13,13)
send_command('console_echo "Thunderstorm: '..Thunderstorm..'/5"')
is_valid = true
elseif command=="TestMode" then
Test = Test + 1
if Test==3 then
Test = 0
end
is_valid = true
send_command('console_echo "Test Mode: '..tostring(Test)..'"')
end
if not is_valid then
send_command('console_echo "gs c {Refresh|DT|DD|PetDT|Favor} {AccMode} {ImpactMode} {MeleeMode}"')
end
idle()
end
function idle()
--if TownIdle:contains(world.area:lower()) then
-- return
--end
if pet.isvalid and pet.name=='Cait Sith' then
equip({hands="Lamassu Mitts+1"})
end
if pet.isvalid then
if IdleMode=='DT' then
equip(sets.aftercast.Perp_DT)
elseif string.find(pet.name,'Spirit') then
equip(sets.aftercast.Spirit)
elseif IdleMode=='PetDT' then
if ForceIlvl then
equip(sets.aftercast.Avatar_DT_Ilvl)
else
equip(sets.aftercast.Avatar_DT)
end
elseif IdleMode=='Refresh' then
if player.mpp < 50 then
equip(sets.aftercast.Perp_RefreshSub50)
else
equip(sets.aftercast.Perp_Refresh)
end
elseif IdleMode=='Favor' then
equip(sets.aftercast.Perp_Favor)
elseif IdleMode=='Zendik' then
equip(sets.aftercast.Perp_Zendik)
elseif MeleeMode then
equip(sets.aftercast.Perp_Melee)
elseif IdleMode=='DD' then
equip(sets.aftercast.Perp_DD)
end
-- Gaiters if Fleet Wind is up
if buffactive['Quickening'] --and IdleMode~='DT' and not ForceIlvl
then
equip({legs="Tatsumaki Sitagoromo"})
end
else
if IdleMode=='DT' then
equip(sets.aftercast.DT)
elseif MeleeMode and IdleMode=='DD' then
equip(sets.aftercast.Perp_Melee)
elseif ForceIlvl then
equip(sets.aftercast.Idle_Ilvl)
else
equip(sets.aftercast.Idle)
end
end
-- Balrahn's Ring
--if Salvage:contains(world.area) then
-- equip({ring2="Balrahn's Ring"})
--end
-- Maquette Ring
--if world.area=='Maquette Abdhaljs-Legion' and not IdleMode=='DT' then
-- equip({ring2="Maquette Ring"})
--end
end
サーバ: Asura
Game: FFXI
Posts: 1383
By Asura.Pergatory 2019-05-28 10:51:27
It looks right, but putting it in pet_aftercast() will only equip it at certain times.
Try moving that logic to the end of the idle() function instead (around line 840). That way it's always checked whenever the Lua goes back to your idle gear.
Ragnarok.Boq
サーバ: Ragnarok
Game: FFXI
Posts: 31
By Ragnarok.Boq 2019-05-29 19:39:13
Hmm. I moved it to within the idle() function and it still doesn't seem to work. The Lua doesn't return an error when reloaded. It's not terribly important I suppose. But I appreciate you taking the time to suggest a fix.
EDIT:
I played around with it some more and managed to get it working. I figured I would update in case anyone in the future is searching for this.
As Pergatory suggested, I added some code in the function idle() section:
Code if pet.isvalid and pet.name=='Cait Sith' and IdleMode=='DT' then
equip({hands="Lamassu Mitts +1"})
elseif pet.isvalid and pet.name=='Cait Sith' and IdleMode=='Refresh' then
equip({hands="Lamassu Mitts +1"})
elseif pet.isvalid and pet.name=='Cait Sith' and IdleMode=='DD' then
equip({hands="Lamassu Mitts +1"})
end
if pet.isvalid and pet.name=='Carbuncle' and IdleMode=='DT' then
equip({hands="Asteria Mitts +1"})
elseif pet.isvalid and pet.name=='Carbuncle' and IdleMode=='Refresh' then
equip({hands="Asteria Mitts +1"})
elseif pet.isvalid and pet.name=='Carbuncle' and IdleMode=='DD' then
equip({hands="Asteria Mitts +1"})
end
Necro Bump Detected!
[258 days between previous and next post]
サーバ: Asura
Game: FFXI
Posts: 23
By Asura.Phinneus 2020-02-12 03:21:48
Tried playing with the lua a bit to add functionality for Siren. I must be missing something. Most of my edits were done in the lib.lua, adding the bloodpacts to the appropriate mappings. They show up on the HUD, but the actual ability won't go off. Anyone working on this?
Bismarck.Xurion
サーバ: Bismarck
Game: FFXI
Posts: 694
By Bismarck.Xurion 2020-02-12 05:34:29
I haven't looked at the lua but my guess is your Windower resources need an update for it to work.
サーバ: Asura
Game: FFXI
Posts: 23
By Asura.Phinneus 2020-02-12 06:28:56
I haven't looked at the lua but my guess is your Windower resources need an update for it to work.
You're probably right. I'll test it out later.
Asura.Nilats
サーバ: Asura
Game: FFXI
Posts: 23
By Asura.Nilats 2020-03-02 19:48:12
I added in code for siren, just resubbed to game and added the abilities to the right categories i think but here it is
name-SMN-lib.lua
Lines 235-301 Code avatars = S{"Carbuncle", "Fenrir", "Diabolos", "Ifrit", "Titan", "Leviathan", "Garuda", "Shiva", "Ramuh", "Odin", "Alexander", "Cait Sith", "Siren"}
magicalRagePacts = S{
'Inferno','Earthen Fury','Tidal Wave','Aerial Blast','Diamond Dust','Judgment Bolt','Searing Light','Howling Moon','Ruinous Omen',
'Fire II','Stone II','Water II','Aero II','Blizzard II','Thunder II',
'Fire IV','Stone IV','Water IV','Aero IV','Blizzard IV','Thunder IV','Chaotic strike',
'Thunderspark','Volt strike','Burning Strike','Meteorite','Nether Blast',
'Meteor Strike','Conflag Strike','Heavenly Strike','Wind Blade','Geocrush','Crag Throw','Grand Fall','Thunderstorm',
'Holy Mist','Lunar Bay','Night Terror','Level ? Holy','Impact','Zantetsuken'}
enticersRagePacts = S{
'Impact','Conflag Strike', 'Fire II','Stone II','Water II','Aero II','Blizzard II','Thunder II',
'Fire IV','Stone IV','Water IV','Aero IV','Blizzard IV','Thunder IV'
}
physicalEnticersRagePacts = S{
'Mountain Buster','Rock Buster','Crescent Fang','Eclipse Bite','Blindside'
}
meritPacts = S{
'Heavenly Strike','Wind Blade','Geocrush','Thunderstorm','Meteor Strike','Grand Fall'
}
enticersWardPacts = S{
'HealingRuby II','Healing Ruby'
}
healingWardPacts = S{
'HealingRuby II','Healing Ruby'
}
hybridPacts = S{
'Flaming Crush'
}
sets.cpmode = {back="Mecisto. Mantle"}
-- sets.dtmode = {
-- main="Earth Staff",
-- left_ring="Gelatinous Ring +1",
-- right_ring="Defending Ring",
-- }
pacts = {}
pacts.cure = {['Carbuncle']='Healing Ruby'}
pacts.curaga = {['Carbuncle']='Healing Ruby II', ['Garuda']='Whispering Wind', ['Leviathan']='Spring Water'}
pacts.buffoffense = {['Carbuncle']='Glittering Ruby', ['Ifrit']='Crimson Howl', ['Garuda']='Hastega', ['Garuda']='Hastega II', ['Ramuh']='Rolling Thunder',
['Fenrir']='Ecliptic Growl', ['Siren']='Katabatic Blades'}
pacts.buffdefense = {['Carbuncle']='Shining Ruby', ['Shiva']='Frost Armor', ['Garuda']='Aerial Armor', ['Titan']='Earthen Ward',
['Ramuh']='Lightning Armor', ['Fenrir']='Ecliptic Howl', ['Diabolos']='Noctoshield', ['Cait Sith']='Reraise II',['Siren']='Chinook'}
pacts.buffspecial = {['Ifrit']='Inferno Howl', ['Garuda']='Fleet Wind', ['Titan']='Earthen Armor', ['Diabolos']='Dream Shroud',
['Carbuncle']='Soothing Ruby',['Carbuncle']='Pacifying ruby', ['Shiva']='Crystal blessing',['Fenrir']='Heavenward Howl', ['Leviathan']='Soothing current',['Cait Sith']='Raise II',['Siren']='Wind\'s Blessing'}
pacts.debuff1 = {['Shiva']='Diamond Storm', ['Ramuh']='Shock Squall', ['Leviathan']='Tidal Roar', ['Fenrir']='Lunar Cry',
['Diabolos']='Pavor Nocturnus', ['Cait Sith']='Eerie Eye',['Carbuncle']='Soothing Ruby', ['Siren']='Lunatic Voice'}
pacts.debuff2 = {['Leviathan']='Slowga', ['Fenrir']='Lunar Roar', ['Diabolos']='Somnolence',['Siren']='Bitter Elegy'}
pacts.sleep = {['Shiva']='Sleepga', ['Diabolos']='Nightmare', ['Cait Sith']='Mewing Lullaby'}
pacts.nuke2 = {['Ifrit']='Fire II', ['Shiva']='Blizzard II', ['Garuda']='Aero II', ['Titan']='Stone II',
['Ramuh']='Thunder II', ['Leviathan']='Water II',['Siren']='Welt'}
pacts.nuke4 = {['Ifrit']='Fire IV', ['Shiva']='Blizzard IV', ['Garuda']='Aero IV', ['Titan']='Stone IV',
['Ramuh']='Thunder IV', ['Leviathan']='Water IV',['Fenrir']='Crescent Fang',['Siren']='Roundhouse'}
pacts.bp70 = {
['Ifrit']='Flaming Crush', ['Shiva']='Rush', ['Garuda']='Predator Claws', ['Titan']='Mountain Buster',
['Ramuh']='Chaotic Strike', ['Leviathan']='Spinning Dive', ['Carbuncle']='Meteorite', ['Fenrir']='Eclipse Bite',
['Diabolos']='Nether Blast',['Cait Sith']='Regal Scratch',['Siren']='Sonic Buffet'
}
pacts.bp75 = {['Ifrit']='Meteor Strike', ['Shiva']='Heavenly Strike', ['Garuda']='Wind Blade', ['Titan']='Geocrush',
['Ramuh']='Thunderstorm', ['Leviathan']='Grand Fall', ['Carbuncle']='Holy Mist', ['Fenrir']='Lunar Bay',
['Diabolos']='Night Terror', ['Cait Sith']='Level ? Holy',['Siren']='Tornado II'}
pacts.astralflow = {['Ifrit']='Inferno', ['Shiva']='Diamond Dust', ['Garuda']='Aerial Blast', ['Titan']='Earthen Fury',
['Ramuh']='Judgment Bolt', ['Leviathan']='Tidal Wave', ['Carbuncle']='Searing Light', ['Fenrir']='Howling Moon',
['Diabolos']='Ruinous Omen', ['Cait Sith']="Altana's Favor",['Siren']='Clarsach Call'}
pacts.bprage1 = {['Fenrir']='Impact',['Ramuh']='Volt Strike',['Cait Sith']='Regal Gash',['Carbuncle']='Poison Nails',['Ifrit']='Conflag Strike',['Titan']='Crag Throw',['Diabolos']='Blindside',['Leviathan']='Tail Whip',['Siren']='Hysteric Assault'}
Then for summoning I added binding on windows+numpad period
name-SMN.lua line 92 Code send_command('bind @numpad. gs c smn siren')
I have worked on this off and on for over 6 months, and said I'd release it 3 months ago, so just taking the dive and doing it. A lot of that work is spread out, not to give any misrepresentation. I still want to do a lot, but it's very usable and feature filled and i think other SMN can use it as a good base, or if they choose add to it and expand upon it.
I'll try to maintain brevity and I hope this is useful to you.
Features
* SMN Hud - displays bloodpacts, active avatar, and modes and their states it is also customizable to a degree. Toggles for display.
* Custom keybinds well thought out for Summoner.
* Many modes, with tested and working sets: PDT, Pet PDT, CP Mode, Movement Mode, Staff Lock/TP mode, Impact debuff or dmg, mpsaver or all out Favor, magic burst (for relic hands), engaged mode for melee and perpetration/refresh (handy for trusts out) and more to come in the future.
* Built on top of other gearswaps and libraries, including Motes.
* Utilization of shortcuts and aliases as well as keybinds.
* Movement gear automatically in adoulin, town, and when quickening is applied.
* Buff rotation you can set up and cycle wards. Handles calling avatar, casting relevant ward.
* Easy switching of avatars with binds.
* Advanced siphon logic
* Prevention built in for having wrong gear equipped mid pact (locks out gearswap till pet midcast done for pacts).
* More to come as I'm thinking of things to add constantly and often code it on the spot if I need it...
Current known bugs
* Sometimes precast.FC not equipped, seeing if it's working as intended as only thing that could cause it is the prevention for switching gear mid pact.
Here is a preview of the HUD.
Aliases
Typing the following aliases in game can save lives, and turn fights around I find. In any case it's way more convenient than going through spell lists or having too many keybinds to remember.
All use shortcuts, so if no target is selected it targets yourself and if a target is selected it casts it on them, unless it's a monster and a buff then it casts it on yourself. Basically it does what you think it should.
Any alias can be done in game by typing //x where x is the code on the left below. ex. //si for sneak and invisible. I kept the shortest for -na's as those are usually in the heat of battle.
si sneak invisible - casts sneak and then invisible you may have to adjust wait time based on your fastcast level
sn sneak
in invisible
f1 fire (tier 1) - casts 2 rounds of t1 fire
t1 thunder (tier 1) - casts 2 rounds of t1 thunder
p paralyna
l aurorastorm (think light weather)
po poisona
e erase
c cursna
s silena
b blindna
bu buffs - self buffs. I have only stoneskin and aquaveil on it but you can modify it how you like. For those annoying prebattle buffgasms.
ss stone skin
bl blink
r refresh
rr re raise
rg reload gearswap - mostly to ease debugging
None for cure as I use a macro keyboard and you can see I have that setup just for my M1-M6 keys to cast cure 3 on party members, you can def add your own tho!
Keybinds
This is actually my favorite part, it really changed how I played Summoner.
Summoning
The heart of what we do! If you have a pet out, will dismiss, either way you press this keybind and you have that avatar out :) If you can't remember the binds at first, they are in the same order as the sorted spell list.
Note: Prior versions used Alt + numpad but I found this caused too many accidental summons so it is now using the windows key. I am happy with this change but if you are not the binds can be changed in the Player-SMN.lua file.
Windows key + numpad 1 - Carbuncle
Windows key + numpad 2 - Fenrir
Windows key + numpad 3 - Ifrit
Windows key + numpad 4 - Titan
Windows key + numpad 5 - Leviathan
Windows key + numpad 6 - Garuda
Windows key + numpad 7 - Shiva
Windows key + numpad 8 - Ramuh
Windows key + numpad 9 - Diabolos
Windows key + numpad 0 - Cait Sith
Windows key + numpad . - Light Spirit
Windows key + numpadenter - Atomos
Avatar Commands
I'm using my macro keyboard m11-m13 keys for dismiss, retreat and attack. If you don't have a macro keyboard, you can use ctrl + numpad keys or anything else you choose. I included that in the code for you:
Ctrl + numpad 1 - Release
Ctrl + numpad 2 - Retreat
Ctrl + numpad 3 - Assault
Alt + pagedown - Apogee
Alt + delete - Avatar's Favor
Pacts
Gotta do something with that avatar right :D They are grouped and keybound based on function, so you know that alt+2 is curaga no matter if it's carbuncle, garuda or levithan for example. Here is the general logic:
Wards
Alt + 1 - Cure
Alt + 2 - Curaga
Alt + 3 - Buff Offense
Alt + 4 - Buff Defense
Alt + 5 - Buff Special (ex. Fleet Wind)
Alt + 6 - Debuff 1
Alt + 7 - Debuff 2
Alt + 8 - Sleepga
Alt + 9 - Misc (for anything that doesn't fit)
Rage
Ctrl + 1 - Low tier Nuke (ex. Stone 2)
Ctrl + 2 - High tier Nuke (ex. Stone 4)
Ctrl + 3 - Level 70 BP (Physical, usually good damage source. Flaming Crush here for example).
Ctrl + 4 - Level 75 Merit Pacts (Magical :D)
Ctrl + 5 - For higher tier Rage Pacts like Regal Gash and Voltstrike
Ctrl + 6 - Astral Flow Pact, only usable when AF up obviously
Ctrl + 7 - Misc1 for things that don't wanna fit.
Fenrir the only one where a few of these don't completely make sense just because he has so many pacts (I put Crescent Fang under Nuke 4, just no room and he doesn't have dark based nukes, that's about the only exception tho and you are free to change it to your liking).
Others
Alt + end - Sublimation
Alt + q - Perform entire Elemental Siphon series of tasks
Alt + o - View Map
Alt + Numpad+ - Also view map :P
Alt + numpad- - release avatar if out and not garuda, Summon Garuda if needed, cast fleet wind, and unsummon garuda (was real time and work saver when I was a baby smn doing missions all the time).
Mode/State toggles
f11 - toggle PDT and normal
Alt + f11 - toggle pet pdt and normal
f10 - toggle forced movement mode (equip heralds gaiters)
Ctrl + f10 - Toggle Favor mode (mpsaver, or allout)
Alt + f10 - Impact mode (Normal - Equip for magical dmg Debuff - Max smn skill for debuff aspect)
Alt + f9 - Burstmode (Use relic +1 hands for merit pacts or not)
Ctrl + [ - Toggle forcing your cp cape to stay on or not
Alt + [ - Staff/TP lock
Ctrl + ] - In development still, but seems to work. Go to next buff in ward rotation.
Windows Key + numpad0 - Equip and then use warp ring. Not always working for some reason on the use item part does equip ring 100% tho.
App/Menu Key + 0 - Toggle HUD hidden/visible
App/Menu Key + 9 - Force HUD Refresh
App/Menu Key + 8 - Toggle HUD showing Modes/States or hiding them
App/Menu key is to the right side of the spacebar between ctrl and alt on most keyboards, and isn't the windows key.
Small mission statement
I try to avoid defining a ton of sets with mode variation and instead use customize functions, set_combine, job_post_pet_midcast, job_self_command, and possibly more functions in the future to avoid having to have lots of sets defined. Some modes alter your current gear, whatever it is... based on state, others let things like pet_midcast through in ways I think make sense. It was always a bummer to me with other GS you get new gear and the task of adding it to tons of sets makes you dread even using it. I tried to avoid that as much as I can think how here. This is always a work in progress, what you see now is the result of where I'm at in the game and work on this gs.
Final Word
Most of all, have fun! :) Please report any bugs you find, I'll fix them when I can. Anyone who wants to take this, or parts of it, welcome to. I can assist in limited capacity due to time with helping you set it up, I'm sure others here can assist as well. Suggestions, editions, modifications welcome. Make it your own! Thank you to anyone who ever helped me in the FFXI community.
Download and Instruction
Download Playername-SMN.zip Current Version: 1.13.2017
* Download, and extract to the Windower 4/addons folder.
* Change the name to your character name (erase Verda in Gearswap/data/Verda-SMN.lua and put your char name in the file name ex. Bob-SMN.lua)
* Edit the file with a text editor (notepad++ or vim work well)
* Change the absolute path to the base_icon_dir to your location for it. Example: Code base_icon_dir = 'C:/Program Files (x86)/Windower4/addons/Gearswap/data/icons/'
(I wanted to avoid having to have you put that in but spent an hour trying to make relative directories work with images.lua library, if you don't do this step the avatar icons on the hud will just be a white box).
* If you load it and can't see the hud it could be offscreen, set hud_x_pos to a value smaller than your screen resolution, you may customize hud_y_pos as well, for most I think this won't be an issue.
* Customize any other global settings you like.
* Customize your sets and put in your gear ;) I have had people tell me it took them 20 mins to get up and running so don't feel it's too complicated for you and if you have trouble send me a PM.
|
|