Barebones Summoner Gearswap

Eorzea Time
 
 
 
Langues: JP EN FR DE
users online
Forum » FFXI » Jobs » Summoner » Barebones Summoner Gearswap
Barebones Summoner Gearswap
First Page 2 3 4 5
Offline
By Aeyela 2015-09-24 08:13:30
Link | Citer | R
 
GitHub: Thanks to Elizabet for hosting this on GitHub

People have been having issues with Mote's SMN Gearswap recently. After lengthy conversations on the topic as well as going through his files, I believe the files themselves are to blame. Several people, evidently myself included, have not had issues with custom SMN Lua files. As a result, and due to several requests, I've decided to post my Lua to provide a viable alternative to Mote's. I make no elaborate claims that this is better (or worse, for that matter), I'm sharing purely so people can try it for themselves.

I give my personal guarantee that everything worked 100% at the time of posting, tested numerous times with Abyssea Revitalizers.

The inline comments should assist you in setting this up. You'll find it's much simpler than most SMN Luas. With no disrespect meant to people who have helped people out with Gear Swap, I find SMN Luas in particular to be way more complicated than they need to be, often containing dozens of lines of superfluous code.

What this Lua is:

  • Simple

  • Does not rely on lengthy includes or libraries, which will make it easier to trouble shoot should part of it not be working correctly at some point

  • Cut and paste ready. I've even taken the liberty of not adding gear so you can type yours in quicker



What this Lua is not:

  • Complicated

  • Nirvana ready. I don't and will never own a Nirvana so Aftermaths are moot to me. If enough people want this, I'm happy to add it though

  • The best of the bestest all others suck etc, judge for yourself



With that said, here we go. This comes in two files: firstly, global.lua, which contains a list of blood pacts and what not, as well as a couple of my own functions that I use in all my Lua files (like auto style lock, macro books, etc.) The second file is the lua file itself that you'll need to add your equipment to. Be sure to remove blank lines when you're done (ie, hands="".)

You can put the global.lua file contents at the start of your SMN.lua file if you prefer, that way you have no includes.

Global.lua:


SMN.Lua:

Here's a run down on commands:

//gs c avatar [mode]

Replace [mode] with either: perp, tank, melee, acc to set your avatar's idling equipment to a particular setup. Perp is for maximum perp- and refresh, tank for tanking, melee for doing maximum physical damage and acc for accuracy.

//gs c toggle melee

This will toggle your character between melee mode. Initially set to false, enabling this will idle to your melee set when engaged as well as disable slots that changing items in would remove TP. With this turned off being engaged will not equip your melee gear, so you can stay engaged for the purposes of trusts whilst keeping your relevant perpetuation gear on.

//gs c toggle auto

Initially turned off, using this command will toggle auto blood pacts on Apogee and Conduit. By auto I literally mean auto. Using a blood pact with this on will use it again instantly if you have Apogee or Conduit up. If you have Conduit up, your character will spam abilities until you either toggle this off or Conduit drops.

//gs c toggle favor

Initially turned off, this command will toggle your character into favor prioritisation mode. This means that, with this on, Avatar's Favor set will override other idle sets, including melee. Using Avatar's Favor will not toggle this automatically. One particular problem with lots of Luas is this assumption is made, and most end users don't know how to disable it.

There are times and places we want maximum Favor power, and they are quite limited. You be the judge and set this yourself when you want it.

--

If you have any questions or problems, please reply and I'll try and help.
[+]
Offline
Posts: 761
By Elizabet 2015-09-24 08:21:10
Link | Citer | R
 
Here's my version based off the above by Aeyela.

Features:
All the nifty things in the OP.
Includes all the bug fixes found in the thread previously.
Keybind and support for cycling through avatar modes with 1 key.
Keybind for toggling autoBP
Keybind for toggling melee weapon lock
Avatar-agnostic Blood Pacts handling. (need the shortcuts add-on)

Now on github: https://github.com/Tunaliz/Liz_Gearswaps
Offline
Posts: 761
By Elizabet 2015-09-24 11:11:38
Link | Citer | R
 
After playing with it. It does works flawlessly.

However, I managed to break it!

In self_command() function under the part you handle toggle for favor I added:
Code
-- Handles executing blood pacts in a generic, avatar-agnostic way.		

elseif commandArgs[1]:lower() == 'pact' then
handle_pacts(commandArgs)
        end


So when I was using a vanilla macro all was good... then once I was calling the handle_pacts function spamming the //gs c pact macro.. it was not working... as in it had the same problem I had before.

Funny thing is, I tried swapping the actual handle_pacts function code in the self_command() function it self. And now its back to working flawlessly...

I think the issue all this time was just that. Functions within within the self_command function might just not be reliable enough.

Thanks for the base lua! Now I am back to having something that works all the time yet I can still cast my BP using a macro with the following:
Code
/console gs c pact bp70

to cast the lvl 70 blood pact of which ever avatar I happen to have summoned.
Offline
By Aeyela 2015-09-24 11:28:15
Link | Citer | R
 
Where is the handle_pacts function you're trying to call? It's not in either of the files I posted so without including its source file it won't work - unless it's a native GS function which, looking through the documentation, it's doesn't seem like it. If it's a remnant of Mote's you'll either need to transfer the applicable function over or stop using it.

I'd encourage you to just directly use /pet "Whatever" <t> as your macros, rather than adding a handler for it, or indeed using console commands. The Lua is tailored to work for any blood pact you put in and use the relevant gear sets, both for delay and effectiveness. This self command way of blood pacting is the over complication I'm trying to avoid. :)
Offline
Posts: 761
By Elizabet 2015-09-24 11:39:53
Link | Citer | R
 
I had the handle_pacts function just under the self_command function in the SMN.lua file. It's not mote's stuff.

I added that part in because I want to find exactly where the issue is. And the only way I found using your lua as a base, that wasn't working was, when I was calling a function within the self_command.

However, removing that function but making it a part of the actual self_command function fixed the issue. Which leads me to believe that the issue is not with the function's code itself (since the same code works when its part of the self_command function), nor because a BP was trigerred in a non vanilla way... But that functions within functions might be a risky business when it comes to the self_commands...

In the end, I'm not sure yet if I'll keep with console macros or vanilla macros... The difference is about 7 pages of macro space saved haha. But I am glad it's finally working properly.
Offline
By Aeyela 2015-09-24 11:45:26
Link | Citer | R
 
Elizabet said: »
I had the handle_pacts function just under the self_command function in the SMN.lua file. It's not mote's stuff.

I added that part in because I want to find exactly where the issue is. And the only way I found using your lua as a base, that wasn't working was, when I was calling a function within the self_command.

However, removing that function but making it a part of the actual self_command function fixed the issue. Which leads me to believe that the issue is not with the function's code itself (since the same code works when its part of the self_command function), nor because a BP was trigerred in a non vanilla way... But that functions within functions might be a risky business.

In the end, I'm not sure yet if I'll keep with console macros or vanilla macros... The difference is about 7 pages of macro space saved haha. But I am glad it's finally working properly.

One way of getting around this is to combine macros. Now that you have no reason to have gear sets or swaps in macros (as the Lua does it for you) you can merge them all into one macro. I'll concede that 6 lines is not enough for everything, but for my general use it's good enough. I don't often use Summoner in anything that requires me not to just destroy things.

For example, you could make Control + 1 an 'Attack' macro that goes as follows:

/pet "Flaming Crush" <me>
/pet "Volt Strike" <me>
/pet "Spinning Dive" <me>
/pet "Predator Claws" <me>
/ etc...

Pressing the macro will insert every one into your log at once, with only the currently active pet obviously activating a blood pact. This way you can throw lots of pet's moves onto one macro and still benefit from Gear Swapping, since it'll handle it on a blood pact by blood pact basis, rather than macros.
Offline
By Draylo 2015-09-26 13:29:41
Link | Citer | R
 
Did anyone ever find out what happened to Mote lol
 Leviathan.Alvar
Offline
Serveur: Leviathan
Game: FFXI
user: Alvar1
By Leviathan.Alvar 2015-09-26 15:25:10
Link | Citer | R
 
Draylo said: »
Did anyone ever find out what happened to Mote lol
FFXIV :o
Offline
By Aeyela 2015-09-26 15:43:20
Link | Citer | R
 
Leviathan.Alvar said: »
FFXIV :o

Hey, whoa, don't say that around here. You trying to start a rumble?!
 Leviathan.Alvar
Offline
Serveur: Leviathan
Game: FFXI
user: Alvar1
By Leviathan.Alvar 2015-09-26 16:04:35
Link | Citer | R
 
Aeyela said: »
Leviathan.Alvar said: »
FFXIV :o

Hey, whoa, don't say that around here. You trying to start a rumble?!
FFXI > FFXIV all day bby.
[+]
 Bahamut.Seekerstar
Offline
Serveur: Bahamut
Game: FFXI
Posts: 879
By Bahamut.Seekerstar 2015-09-27 00:10:24
Link | Citer | R
 
I'm trying to get this to work, and I'm getting an error: cannot find include file, global.lua.

Whatever that is. :P


I did manage to put my gear in the appropriate locations, I assume, and I think I know how to differentiate augmented gear now. I just need to clear this error.
Offline
Posts: 761
By Elizabet 2015-09-27 01:25:10
Link | Citer | R
 
Bahamut.Seekerstar said: »
I'm trying to get this to work, and I'm getting an error: cannot find include file, global.lua.

Whatever that is. :P


I did manage to put my gear in the appropriate locations, I assume, and I think I know how to differentiate augmented gear now. I just need to clear this error.

Check the OP, there is 2 files you need, the SMN.lua and the Global.lua both are in the OP each in a spoiler tag.
 Bahamut.Seekerstar
Offline
Serveur: Bahamut
Game: FFXI
Posts: 879
By Bahamut.Seekerstar 2015-09-27 01:36:09
Link | Citer | R
 
Do I put the global file separately into data?

Sorry, I have like no idea what I'm doing.

I also keep getting yuck errors at about line 74 or so and I don't know why.
Offline
Posts: 761
By Elizabet 2015-09-27 01:57:00
Link | Citer | R
 
Bahamut.Seekerstar said: »
Do I put the global file separately into data?

Sorry, I have like no idea what I'm doing.

I also keep getting yuck errors at about line 74 or so and I don't know why.

Since you put the global (which was a separate file) directly into your SMN.lua (that works too..) you just need to remove this line:
Code
include('global.lua') -- Just a collection of functions that I use in all my GearSwaps. See below (after this code block)
 Bahamut.Seekerstar
Offline
Serveur: Bahamut
Game: FFXI
Posts: 879
By Bahamut.Seekerstar 2015-09-27 02:11:14
Link | Citer | R
 
Thank you. Now to figure out why the errors crop up... something about line 82, wanting another "}" to close something, but I looked and tried putting a few in there.

I feel dumb, lol.
Offline
Posts: 761
By Elizabet 2015-09-27 04:29:05
Link | Citer | R
 
Probably something you messed up when entering your own sets :)
Offline
By Aeyela 2015-09-27 04:36:43
Link | Citer | R
 
On line 82, you need a comma after your augmented capes
Code
back= {name="Conveyance Cape", augments={'Summoning Magic Skill +5', 'Blood Pact Damage +4', 'Pet: Enmity +12'}},
 Ragnarok.Boq
Offline
Serveur: Ragnarok
Game: FFXI
user: Boq
Posts: 31
By Ragnarok.Boq 2015-09-28 06:59:53
Link | Citer | R
 
This is extremely appreciated, Aeyela. I've been using Mote's, and had trouble troubleshooting it due to not fully understanding its contents. Thanks!
Offline
Posts: 517
By Zubis 2015-09-28 12:54:35
Link | Citer | R
 
This a great Gearswap. I didn't think anything was wrong with Motes, but I switched to this and I'm noticing a 20% increase in damage at least on rapid Blood Pacts.
 Siren.Noxzema
Offline
Serveur: Siren
Game: FFXI
user: Noxzema
Posts: 228
By Siren.Noxzema 2015-09-30 01:05:35
Link | Citer | R
 
I've been a long time user of Motes, but this seems good so far. I just have a couple quick questions/comments, I spent a few hours playing around/ failing at google, with no luck yet.

Is there any way of making keybinds like mote had set up? It would be nice to just cycle through avatar modes vs a separate macro for each.

Also, how about adding different sets for melee? I'm not sure how to go about adding more sets with it being a toggle here.

And, finally, how do you change the priority of Favor? Unless I broke mine somehow, toggling doesn't seem to make a difference, it just maintains my perp set.

Btw you have "Conflag Strike" listed as "Conflagration Strike".

Thanks for this though, I especially like the auto bp function, Idk how many times I've used a couple Punches when spamming FC because my cursor decides to go to the top of the menu lol...
Offline
Posts: 761
By Elizabet 2015-09-30 01:26:45
Link | Citer | R
 
Siren.Noxzema said: »
How do you change the priority of Favor? Unless I broke mine somehow, toggling doesn't seem to make a difference, it just maintains my perp set.

If you're having Beckoner's Horn in your Perp set, they are in essence the same thing.

If for example, in your perp set (or avatar tank mode set) your helm is a Selenian -10% DT... Then the toggle will make sure your Beckoner's Horn is there to priorise the favor bonus.

Siren.Noxzema said: »
Is there any way of making keybinds like mote had set up? It would be nice to just cycle through avatar modes vs a separate macro for each.

Right now, his lua doesn't cycle for avatar modes, that can be changed of course.

look for this part:
Code
        if commandArgs[1] == 'avatar' then
            if commandArgs[2] then
                mode = tostring(commandArgs[2])
                equip(sets.avatar[mode])
                windower.add_to_chat(8,'----- Avatar set to '..mode..' mode! -----')
            end
        elseif commandArgs[1] == 'toggle' then


Replace with:
Code
        if commandArgs[1] == 'avatar' then
            if commandArgs[2] then
                mode = tostring(commandArgs[2])
                if mode == 'mode' then
                    if savedMode == 'perp' then
                       mode = 'tank'
                       savedMode = 'tank'
                    elseif savedMode == 'tank' then
                       mode = 'melee'
                       savedMode = 'melee'
                    elseif savedMode == 'melee' then
                       mode = 'acc'
                       savedMode = 'acc'
                    elseif savedMode == 'acc' then
                       mode = 'perp'
                       savedMode = 'perp'
                    end
                end    
                equip(sets.avatar[mode])
                windower.add_to_chat(8,'----- Avatar set to '..mode..' mode! -----')
            end
        elseif commandArgs[1] == 'toggle' then



Then at the end of the file
Code
-- Required variables and their initial value
meleeing = false
autobp = false
favor = false
mode = "perp"


Add in under mode = "perp":
Code
savedMode = "perp"


then at the very top of the file as first line put this:
Code
windower.send_command('bind f9 gs c avatar mode')


Now f9 should cycle your avatar modes.

Hopefully that works.. EDIT: Tested on my end and it works flawlessly.
Offline
By Aeyela 2015-09-30 03:22:54
Link | Citer | R
 
Siren.Noxzema said: »
And, finally, how do you change the priority of Favor? Unless I broke mine somehow, toggling doesn't seem to make a difference, it just maintains my perp set.

I actually seem to have missed that out of the function that changes you to idle gear after every action. I've changed the OP, and here it is below too. Just replace the current idle function with this one. Thanks for noticing this!
Code
function idle(pet)

	-- This function is called after every action, and handles which set to equip depending on what we're doing
	-- We check if we're meleeing because we don't want to idle in melee gear when we're only engaged for trusts
	
	if favor then
	
		-- Avatar's favor takes priority!
		equip(sets.me.favor)
		
	elseif meleeing and player.status=='Engaged' then
	
		-- We're both engaged and meleeing
		equip(sets.me.melee)
		
	elseif pet.isvalid then
		
		-- We have a pet out but we're not meleeing, set the right idle set
		equip(sets.avatar[mode])

	else
	
		-- We're not meleeing and we have no pet out
		equip(sets.me.idle)
		
	end
end


Siren.Noxzema said: »
Btw you have "Conflag Strike" listed as "Conflagration Strike".

And it weirdly still works, but I've changed it anyway. Cheers!
 Siren.Noxzema
Offline
Serveur: Siren
Game: FFXI
user: Noxzema
Posts: 228
By Siren.Noxzema 2015-09-30 08:46:48
Link | Citer | R
 
Thanks for the quick responses, I'll give it a shot after work today. It's odd that Conflagration was working for you, was 95% sure it put my skill set on.
 Siren.Noxzema
Offline
Serveur: Siren
Game: FFXI
user: Noxzema
Posts: 228
By Siren.Noxzema 2015-09-30 18:46:37
Link | Citer | R
 
You have sets.avatar.favor in the gearset section, but it's calling for sets.me.favor in the function section.
Fixed that and it all works perfectly. thanks again for the help.

Edit: Also, you're missing Impact from the BP list.
Offline
Posts: 110
By jopa 2015-09-30 20:32:38
Link | Citer | R
 
You need to change line 821 to
Code
if (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') then
in order for ward sets to work.
[+]
Offline
By Aeyela 2015-10-01 03:52:39
Link | Citer | R
 
jopa said: »
You need to change line 821 to
Code
if (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') then
in order for ward sets to work.

It works fine as it is. Are you having issues with it?
Offline
Posts: 110
By jopa 2015-10-01 08:20:35
Link | Citer | R
 
I was until I changed it to that.
Offline
By Aeyela 2015-10-01 17:00:32
Link | Citer | R
 
I had a play with this this evening and indeed, you are right. That line should be changed. It took me awhile to replicate this issue but then I realised why. The sets inherit from the .skill set, which is what the Lua was equipping when no specified set was found for that specific Ward. As my gear is incredibly gimp compared to most people here I was not noticing, even with showswaps enabled, that it wasn't equipping the wards set.

Thanks for bringing this to my attention. I've changed the OP and I highly encourage anyone using this to change the following line in pet_midcast:
Code
if spell.type=='BloodPactRage' then


To Jopa's fix:
Code
if (spell.type == 'BloodPactRage' or spell.type == 'BloodPactWard') then


As this will guarantee that your correct sets equip for all pact types, rather than inheriting the base skill set.
 Siren.Noxzema
Offline
Serveur: Siren
Game: FFXI
user: Noxzema
Posts: 228
By Siren.Noxzema 2015-10-03 18:53:57
Link | Citer | R
 
Running well so far, except ran into another issue. When I'm in melee mode, I noticed that it won't return to the original set that I had on.
i.e it'll keep my BP rage, ws set etc on after I use it, instead of swapping back to my melee set, even after disengaging.
First Page 2 3 4 5