PDA

View Full Version : [Addon] MultiTool



DgtlSorcrs
11-17-2008, 01:11 PM
I've held off posting an announcement for MultiTool here until I felt that I had a decent Beta

MultiTool v0.1.06 (http://wow.curse.com/downloads/wow-addons/details/multitool.aspx) is now available at curse.

I was inspired by Smurfy's MultiBoxer V2, but I wanted to roll slightly differently.

A lot of Multi-Boxing addons seem to follow the same dynamic that we use to control our toons: master/slave relationship. That's all well and good, and some of the really clever ones even have the ability to pass that master token around. However, I wanted to do a bunch of simple things (quest gossip cloning, taxi follow, and others) with a "masterless" approach.

When you want to use flight master, just open dialog on all toons. As soon as you pick a destination on one toon, they all fly there. A happy discovery made while testing: If all your toons are in the same continent and they have valid connecting flight paths available, this feature will work from ANY flightmaster. While testing, I had ported my mage to dalaran and had my other two toons at wyrmrest temple. Opened the flight masters on all toons and selected another location (Venomsipte or whatever its called) and they all flew there. This is nice when you have one toon pop off somewhere (to train or do a class-specific turnin) and want to get them all back together.

The "masterless" approach also works on quest gossip / turnin.

All your toons in the party with MultiTool will copy the action of any other at quest dialog. I just added a new feature... By default, if there are multiple choice rewards, the choice will NOT be cloned (I run a Pally, a Holy Priest and a Mage, so i often want different rewards). However, you can select an option on the options page that will allow cloning of those choices.

The neat thing is that this is configurable per character on the receive side which means that someone with say, a pally and two shaman could set the shaman to both clone reward choices, but the pally not to, and as long as you pick the reward on the shaman BEFORE picking reward on the pally, the shaman will clone choice, and the pally will then be free to pick their reward.

Hope that made sense.

I've got a lot of things I'm looking to do with this... here's the big-picture blueprint:

PLANNED FEATURES

* BLIZ Addon Config compatible - Implemented v0.1.02
Will properly integrate into the new Blizard addon configuration pages

* Profile support - In-Progress
Will use profile-type system to allow for easy customization per toon/account

* WhiteList - Not Started
define one or more toons in a list for use in invites, taxi following, auto trade, etc that require a high degree of trust (More than just general friends list)
Possibly define permissions (canAutoTrade, canChooseTaxi, canAutoInvite, etc...)

* Auto Deny duel requests - Implemented v0.1.02
Maybe MAYBE allow whitelist to request dual - though dueling dualboxers seems a bit Freudian to me

* Inviter - Not Started
Attempt to invite all those on your white list with one click

* Taxi Dispatcher - Implemented v0.1.03
Allows other toons in your group with the addon to automatically take the same taxi node as you

* Quest Log Full alert - Not Started
Some kind of sound/warning to other members of group with addon if a toon's quest log is close to full

* Bags full warning - Not Started
Some kind of sound/warning to other members of group with the addon that bag space is low/empty

* LootSetter - Not Started
Automatically set party loot to FFA when leader and party consists only of those on your ffa list. When adding members NOt on your list, switch to Group Loot

* Auto Accept Group Invite - Not Started
define a list of toons whose invites you will always accept

* Auto Repair - Not Started
When a toon with the addon opens a dialog with a repair vendor, it will attempt to repair all

* "Follow Me" - Not Started
Any toon in group with the addon can send a "follow me" command and the others will attempt to /follow them... this will probably ONLY work out of combat due to Blizz security

* AutoTrade - Not Started
IF a party member in your group with the addon AND in your white list clicks "accept trade", your toon will auto accept

* Triage - Not Started
Auto switch party lead to next in line in your whitelist when current leader dies

* Quest Gossip Share - Implemented v0.1.06
Allows other toons in your group with the addon to copy your choices on quest dialogs

* Auto Quest Completion - Not Started
Quests with simple turn-in-and-done dialogs will autocomplete when NPC dialog is opened

* Quest Progress Announcement - Not Started
Announces to others in your party who have the addon when you make progress on a quest(like the old cosmos-based Party Quests) used to do

* Auto Share quests - Not Started
when one toon picks up a quest, they will attempt to share with others in the group who have the addon

* Auto accept shared quests - Not Started
when a shared quest is offered by another in your group with the addon, you will attempt to accept

* Auto Sell Gray/Junk - Not Started
When a toon with the addon opens a vendor dialog, it will attempt to auto-sell gray quality items... need a blacklist to stop selling of arbitrary desired items

* Auto restock reagents - Not Started
When a toon with the addon opens vendor dialog, will scan for desired reagents/items as well as current supply in toon's inventory and buy enough to return to preset supply

* Group Hearth - Not Started
Command to cause all in your group with MultiTool (in whitelist when I finally build that) to hearth

NOTES
There are probably many things I can't think of at the moment, but this is a good wish-list.

If I can figure out a way to do it, I may set this up as individual modules so that one can quickly enable/disable parts they want or don't want to save performance and to try and isolate the parts from each other as much as possible

Fizzler
11-18-2008, 03:26 AM
Cool I will have to take a closer look at it when I get home.

Ken
11-18-2008, 11:06 AM
Most of these features are already available in Jamba (http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=12887), why bother making the same thing? What differentiates this addon?

Bettysue
11-18-2008, 02:15 PM
Why tell an interested person to stop coding, Jamba duplicated a lot of features in Multiboxer, and quickly became an addon most people use on a regular basis. Your signature provides a link to a page that seems as though it will provide information easily found here on this site, why make another one? Do not stifle this persons willingness to provide another option to the community. His approach is a bit different from the Jamba approach as it does not require doing everything from the master or setting/resetting master to perform certain functions. While I am a user of Jamba and a promoter of the addon, I would never tell a person to discontinue effort on a similar addon as it may yeild an undiscovered feature we can all use.

If you program for Jamba consider it a compliment that your addon has become the starting ground for new idea development. If you aren't a programmer realize that we all start somewhere, and experimentation with known events and outcomes is often the first step to becoming proficient. I programmed a majority of KLH Threatmeter, only to have someone take it further and make Omen, an addon I gladly use and reccommend.

All that being said I look forward to what this addon can provide, keep it up I'll be watching and testing.

DgtlSorcrs
11-18-2008, 05:30 PM
Most of these features are already available in Jamba ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=12887'), why bother making the same thing? What differentiates this addon?Truthfully, I never saw Jamba until after I had already started on MultiTool... (I actually started it because I liked where MultiBoxer v2 was going, but found it to be a bit more broken than I'd like, and after looking at the source, I decided taht an addon so dependant upon a possibly abandoned framework (LibRock) was not something I wanted to try and dig into. (thatst not a dig on smurfy or LibRock, just personal preferences.. I figured if I was going to teach myself to write addons for wow, I was going to use a well-supported, continually-updated framework or none at all)

Jamba does indeed seem really nice, but now that I've started, I'm going to continue along the path I've taken. As far as I'm concerned, if nobody else ever uses MultiTool, it's still EXACTLY the addon I want... with the features I find most useful. In fact, I'm tempted never to download or use Jamba so that I don't just end up duplicating it... rather let the features flow from my personal preference and direction.

BettySue was correct as well: The big thing that sets MultiTool apart is the idea of being as unobtrusive as possible... that I do not have to set up my toons to recognize and follow a particular master when doing quest dialogs and flight masters and whatnot. I use a master/slave relationship with my playing like all other multiboxers (prot pally master runs in and grabs aggro, holy priest and mage slaves pew pew (and priest occasionally heal heal), but I very often find myself having my hand over on the mouse/kbd of one of my "offhand" toons, when its time to do something traditionally done with the master. I find it saves me a lot of time and clicks now that I have MultiTool doing what I want.

Also Also, I'm a software engineer... I spend a lot of time supporting existing code written by someone else. This is "hobby mode" where I get to code something the way I want and learn how to do things with LUA. It's a very nice change of pace.

Jafula
11-18-2008, 07:38 PM
Also Also, I'm a software engineer... I spend a lot of time supporting existing code written by someone else. This is "hobby mode" where I get to code something the way I want and learn how to do things with LUA. It's a very nice change of pace. That is exactly why I wrote Jamba. Hobby (programming), mixed with hobby (wow), absolutely brilliant. Do it. I find it very hard work, but rewarding. It's very good for us all to have some variety and choice.

Edit: The thing is I've seen lots of posts about people saying they will write an addon for multiboxers, but very few actual useful addons. The masterless approach you are taking would be great if you could get it to work in all cases. Jamba will always have the master/slave approach while I am in charge.

Simulacra
11-18-2008, 11:30 PM
Most of these features are already available in Jamba ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=12887'), why bother making the same thing? What differentiates this addon?
>.< you sound like my Dad

algol
11-18-2008, 11:59 PM
Sounds like your dad, maybe. But it was my first thought too. Jamba does a lot of this. Others like "group hearth" are a simple macro and require a keypress to do anyway AFAIK. But you do have an impressive (planned) feature list. If I was less tired, I would sort them against the Jamba list for new ones, then flag the ones that interest me.

I'm also curious whether it would be difficult to implement many of these as Jamba modules, since Jamba is designed modularly to begin with (and rightly so). Alternatively, if you plan to implement them in a way that lets them be installed individually instead of monolithically. While you may enjoy coding them as an end to itself, I would only be motivated to install parts that work better or do something new compared to what I've already got - the curse of the second guy to market, yes?

Simulacra
11-19-2008, 02:41 AM
Sounds like your dad, maybe. But it was my first thought too. Jamba does a lot of this. Others like "group hearth" are a simple macro and require a keypress to do anyway AFAIK. But you do have an impressive (planned) feature list. If I was less tired, I would sort them against the Jamba list for new ones, then flag the ones that interest me.

I'm also curious whether it would be difficult to implement many of these as Jamba modules, since Jamba is designed modularly to begin with (and rightly so). Alternatively, if you plan to implement them in a way that lets them be installed individually instead of monolithically. While you may enjoy coding them as an end to itself, I would only be motivated to install parts that work better or do something new compared to what I've already got - the curse of the second guy to market, yes?lol 2nd guy to market

twoboxtoolkit
Automaton
multiboxer
multiboxerv2
jamba
<insert new whatever here>

I guess you would have said the same thing way back in the old days of twoboxtoolkit

btw I never made it passed multiboxerv2 - no need to as it does everything I need.

algol
11-19-2008, 02:52 AM
lol 2nd guy to market

twoboxtoolkit
Automaton
multiboxer
multiboxerv2
jamba
<insert new whatever here>
Yes, but I thought it would be tacky to rub it in more. :D

Also 14th guy to market doesn't sound as good.

Simulacra
11-19-2008, 02:57 AM
lol 2nd guy to market

twoboxtoolkit
Automaton
multiboxer
multiboxerv2
jamba
<insert new whatever here>
Yes, but I thought it would be tacky to rub it in more. :D

Also 14th guy to market doesn't sound as good.lol - you also sound like my Dad, if everyone was like you we'd all still be driving Model T fords ;)

algol
11-19-2008, 03:02 AM
lol - you also sound like my Dad, if everyone was like you we'd all still be driving Model T fords ;)
I like Model T Fords. :D

But what does that have to do with replacing one well-tested program with another that does the same thing, but less? Anyway, enough about your daddy issues. I'm interested in seeing where this is going now that he's aware of Jamba. He presumably won't try to duplicate effort too much, leading to different implementations and such at the least.

Ken
11-19-2008, 11:27 AM
Why tell an interested person to stop coding, Jamba duplicated a lot of features in Multiboxer, and quickly became an addon most people use on a regular basis.
Am I saying that he shouldn't make this addon? No!
I'm just asking what would make this one different/better.


Your signature provides a link to a page that seems as though it will provide information easily found here on this site, why make another one?
Who says the content will be the same?
The topic might be the same, but the content is different.
(I didn't find the motivation to work on it in the past months though)


Do not stifle this persons willingness to provide another option to the community. His approach is a bit different from the Jamba approach as it does not require doing everything from the master or setting/resetting master to perform certain functions. While I am a user of Jamba and a promoter of the addon, I would never tell a person to discontinue effort on a similar addon as it may yeild an undiscovered feature we can all use.
Again: I'm not telling him to stop. I'm merely asking a question ...


If you program for Jamba consider it a compliment that your addon has become the starting ground for new idea development. If you aren't a programmer realize that we all start somewhere, and experimentation with known events and outcomes is often the first step to becoming proficient. I programmed a majority of KLH Threatmeter, only to have someone take it further and make Omen, an addon I gladly use and reccommend.

All that being said I look forward to what this addon can provide, keep it up I'll be watching and testing.
I am starting to develop for Jamba and I support new ideas. It's a pitty that you see my questions as an attempt to burn the topic starter.



Most of these features are already available in Jamba ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=12887'), why bother making the same thing? What differentiates this addon?
>.< you sound like my Dad
For asking valid questions/concerns?
Don't get me wrong, I don't mind answers like "because it's a good WoW API learning experience". I was just wondering ...
Maybe I sound like your dad, I found the above criticism on my post quite childish.

Ken
11-19-2008, 11:35 AM
Most of these features are already available in Jamba ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=12887'), why bother making the same thing? What differentiates this addon?Truthfully, I never saw Jamba until after I had already started on MultiTool... (I actually started it because I liked where MultiBoxer v2 was going, but found it to be a bit more broken than I'd like, and after looking at the source, I decided taht an addon so dependant upon a possibly abandoned framework (LibRock) was not something I wanted to try and dig into. (thatst not a dig on smurfy or LibRock, just personal preferences.. I figured if I was going to teach myself to write addons for wow, I was going to use a well-supported, continually-updated framework or none at all)

Jamba does indeed seem really nice, but now that I've started, I'm going to continue along the path I've taken. As far as I'm concerned, if nobody else ever uses MultiTool, it's still EXACTLY the addon I want... with the features I find most useful. In fact, I'm tempted never to download or use Jamba so that I don't just end up duplicating it... rather let the features flow from my personal preference and direction.
BettySue was correct as well: The big thing that sets MultiTool apart is the idea of being as unobtrusive as possible... that I do not have to set up my toons to recognize and follow a particular master when doing quest dialogs and flight masters and whatnot. I use a master/slave relationship with my playing like all other multiboxers (prot pally master runs in and grabs aggro, holy priest and mage slaves pew pew (and priest occasionally heal heal), but I very often find myself having my hand over on the mouse/kbd of one of my "offhand" toons, when its time to do something traditionally done with the master. I find it saves me a lot of time and clicks now that I have MultiTool doing what I want.

Also Also, I'm a software engineer... I spend a lot of time supporting existing code written by someone else. This is "hobby mode" where I get to code something the way I want and learn how to do things with LUA. It's a very nice change of pace.
Thanks for the explanation. That's a perfectly good reason :) That's mostly why we start coding anyway: because it does exactly what *we* want it to do. And learning LUA is a good reason too.

DgtlSorcrs
11-19-2008, 02:24 PM
Ken,

I took your original comment in exactly the way it was intended :)


BettySue and Jafula,

Thanks for the words of encouragement. I may have never started MultiTool if I had found Jamba first. I've always wanted to write an addon, but I'm the type of coder that doesn't normally try to reinvent the wheel. I guess my mistake was not really researching what was available outside of Curse and Ace and not searching hard enough.

Still, I'm glad that it happened that way because it inspired me to actually sit down and teach myself LUA. As you know, the learning curve is kind of a very nice gentle slope once you get over the sheer cliff of starting up. I had many false starts where I'd get an idea only to give up when I found something that did exactly what I wanted.


...and specifically to Jafula,

I'm going to continue to refine the masterless approach. It will differentiate MultiTool from Jamba, and I'll see about making it more modular so that if someone really likes my taxi sharing, they can just load MultiTool for that module and use Jamba for the rest of their multi boxing needs, etc...

As I said before, even if I am the only person to use MultiTool, I'm happy because it works with how I roll.


(side-note)... DgtlSorcrs is short for Digital Sorceress: not a he. Does my avatar look that boy-ish? :)

DgtlSorcrs
11-19-2008, 04:07 PM
Okay, I decided to take a look at the sources of Jamba after all.

When I was first scaling that cliff (the steep initial learning curve of WOW LUA), I reviewed the sources of a lot of addons looking for "best practices" examples of various aspects of WOW LUA and specifically of using Ace3. What delicious irony that after I scale that cliff the hard way, I find the very example of "best practices" in an addon that does much the same as I wrote.

If I were a "hat person", my hat would be off to you Jafula. Clean code, well modularized, well commented. I'd like to think that's how I'd have done it if I were to do things over.

algol
11-19-2008, 04:52 PM
I'm going to continue to refine the masterless approach. It will differentiate MultiTool from Jamba, and I'll see about making it more modular so that if someone really likes my taxi sharing, they can just load MultiTool for that module and use Jamba for the rest of their multi boxing needs, etc...
Sounds like an interesting plan, especially given the current popularity of the FTL + Keyclone PiP swap layout. You can do a certain amount of that now by adding Jamba's "make me master" command into your follow macro (or whatever's convenient), but I bet there's room to improve it specifically for that model.


Still, I'm glad that it happened that way because it inspired me to actually sit down and teach myself LUA.
Were there any guides/resources that you found particularly helpful?

Majestic_Clown
11-19-2008, 06:53 PM
DgtlSorcrs ('http://www.dual-boxing.com/forums/index.php?page=User&userID=15947')
You keep going mate, if you wishing to learn how to script then go for it.
Variety is the best thing, if you can do something bigger and better than go for it, if you can maintain and add features for the next few years who am I to say not.

If you can duplicate what already exisits by make it light weight than the rest then you will win people to use your addon.

I would say this, just dooo it!

DgtlSorcrs
11-19-2008, 07:14 PM
Were there any guides/resources that you found particularly helpful?

"World of Warcraft Programming" isbn: 978-0-470-22981-1
it had some good primers and the API Reference is GREAT

www.wowace.com - the forums for Ace3 framework.. OrionShock and Allara were most helpful

old.wowace.com/wiki/ - until they port the wiki for Ace3 API docs to the new server, this is great

www.lua.org - really good for that initial "what does raw LUA do" stuff


Also, just looking at the source code of other addons. There is an incredible range of horrible-to-wonderful in terms of the coding quality. When you're just learning a new language, it's usually easy to tell horrible from wonderful, but a little tougher to tell best practices from "yeah, it'll work". Each language has its "idioms" and eccentricities. As I mentioned in an earlier post, ironically, one of the best written addons I've seen (in terms of clarity of code and modularization and good use of Ace3) is Jamba - an addon that if I had known it was out there, I wouldn't have made my own. :)

Bettysue
11-19-2008, 09:13 PM
Sorry ken i didn't mean to come across as harsh as I was I just wanted to jump in before the mindless got ahold of the "just use jamba don't make your own" idea and beat this poor person off the forums in shame. I've seen quite a few good coders quit before they could really shine because their early work was similar to already existent works. Enough thread hijacking for me I'll go back to quietly stalking about in the macros threads :D

DgtlSorcrs
11-19-2008, 09:20 PM
Sorry ken i didn't mean to come across as harsh as I was I just wanted to jump in before the mindless got ahold of the "just use jamba don't make your own" idea and beat this poor person off the forums in shame. I've seen quite a few good coders quit before they could really shine because their early work was similar to already existent works. Enough thread hijacking for me I'll go back to quietly stalking about in the macros threads :DBettySue,

I very much appreciated your encouragement. At the same time, I took Ken's post in the spirit which I think he intended it. Is all good.

Thank you.

wowphreak
11-19-2008, 10:26 PM
Keep at it more diversity is always good.

Ken
11-20-2008, 06:45 AM
DgtlSorcrs:
You're always welcome to discuss addon development through private messages :)


Sorry ken i didn't mean to come across as harsh as I was I just wanted to jump in before the mindless got ahold of the "just use jamba don't make your own" idea and beat this poor person off the forums in shame. I've seen quite a few good coders quit before they could really shine because their early work was similar to already existent works. Enough thread hijacking for me I'll go back to quietly stalking about in the macros threads :D
No problem :)

Simulacra
11-21-2008, 12:24 AM
Most of these features are already available in Jamba ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=12887'), why bother making the same thing? What differentiates this addon?







>.< you sound like my Dad
For asking valid questions/concerns?
Don't get me wrong, I don't mind answers like "because it's a good WoW API learning experience". I was just wondering ...
Maybe I sound like your dad, I found the above criticism on my post quite childish.I found your post narrow minded, negative and dismissive of innovation, apparently I was incorrect.....apparently. Given that impression I thought the OP might feel the same way and be discouraged, instead of having a go at you I decided to make what I thought was a funny comment to lighten the mood which I would think was fairly obvious, of course since you're so dour you didn't find it funny nor understand its intent and instead thought it was childish, nice. Do you feel better now? You're not defensive at all are you? :S Gimme a break

Jafula
01-09-2009, 01:50 PM
Congratulations on your release. Just noticed that your MultiTool v0.2.08 version is a release, not a beta. Cool. :D

DgtlSorcrs
01-13-2009, 01:04 PM
Thanks,

I thought it was at a point where I had most of the features working the way I wanted and it's been working without error or complaint for me for some time. Of course, I just saw another thread here with someone having a problem, but now that I'm aware of him, Ill get that fixed up as soon as I figure out what the error is.

elsegundo
01-13-2009, 08:46 PM
nice... more addon makers!! :thumbsup:

DgtlSorcrs
04-30-2009, 01:20 AM
Been a while since I did any major updates (aside from fixing 3.1 group invite accept issues)

Added Auto Accept Resurrection feature.

I also moved my project from curseforge to wowace, so it should be a bit easier for me to update.

Moorea
04-30-2009, 09:32 PM
I also moved my project from curseforge to wowace, so it should be a bit easier for me to update.

I thought it was just a skin difference, what is the difference/how is wowace easier ?

(I use curseforge subversion and it couldn't be easier I think, so I'm curious)

DgtlSorcrs
05-01-2009, 11:22 AM
I also moved my project from curseforge to wowace, so it should be a bit easier for me to update.

I thought it was just a skin difference, what is the difference/how is wowace easier ?

(I use curseforge subversion and it couldn't be easier I think, so I'm curious)

The issue was that I had recently created a new addon (FlaskMinder) at wowace, and then realized that while they both appeared in my curse profile under My Projects, they were living in two different places. For my own sanity, I just consolodated both to wowace. I only mentioned the switch in case others had bookmarked the old location or something silly.

Now, wowace is where I go to manage all my tickets and such.

So, it's not that curseforge is better or worse than wowace, merely that I didn't want to be in two places.

I would have gone all to curseforge if I hadn't FINALLY (with help from the wowace IRC folks) gotten the subversion stuff working properly, as wowace ONLY uses repositories (no direct upload of zip files like curseforge offers.

However, now that I've worked out my issues, I really like using the SVN repository (whether curseforge or wowace) as I can update a lot more quickly without manually packaging.