Quantcast
Download
(20 Kb)
Download
Updated: 07-19-16 08:36 AM
Pictures
File Info
Compatibility:
Legion Pre-Patch (7.0.3)
Updated:07-19-16 08:36 AM
Created:11-08-08 12:23 PM
Downloads:9,762
Favorites:184
MD5:
Categories:Action Bar Mods, Bags, Bank, Inventory
7.0.3

Select  Popular! (More than 5000 hits)

Version: 2.4.5
by: Gello [More]

This addon adds the /select macro command you can use instead of /use or /cast to use an item or spell among a list. Right-clicking your macro from the bars will pop out a menu where you can change the item or spell to use.

How to Use

  • Create a macro with this line: /select item or spell, item or spell, etc
  • Drag the macro to your bars.
  • The first item or spell will be the default action when you hit the macro.
  • Right-click the macro to on your bars to change it to a different item or spell.

For instance, warriors may find this useful:
/select Battle Shout, Commanding Shout
When you create that macro it will cast Battle Shout every time it's hit. If you join a group with a death knight and want to use Commanding Shout instead, right-click the macro on your bars and choose Commanding Shout. Now the macro will display and cast Commanding Shout.

You can also embed the /select within a larger macro. For mages:
/focus [@focus,noexists][@focus,dead][mod:alt]
/select [@focus,exists][] Polymorph, Polymorph(Turtle), Polymorph(Rabbit), Polymorph(Black Cat)
This is a standard focus-sheep macro. When you want to change what polymorph spell to use, right-click the macro on your bars and pick another. It will use that new polymorph until you decide to change it again.

Search:Keywords

To help add items and spells to your /select macros, search:keywords are usable in place of an item or spell name. These search through your bags and spellbooks to fill the flyout with items and spells that match the keyword(s).

The officially supported searches are item, spell, mount, type, profession and toy:

item:id or partial name
Add an item by its item:id or all items in your bags or worn that contain the partial name.
Examples: item:1234, item:Bandage, item:Ore

spell:id or partial name
Add a spell by its numerical id or all spells that contain the partial name.
Examples: spell:1234, spell:Shout, spell:Polymorph

mount:flying, land, favorite*, favflying*, favland* or partial name
Add all flying, land, favorite, favorite flying, favorite land mounts or mounts that contain the partial name.
Examples: mount:flying, mount:Raptor, mount:favflying

type:ItemType
Add all items that contain the keyword in one of its type fields. See www.wowpedia.com/ItemType for a full list.
Examples: type:Quest, type:Food, type:Herb, type:Leather

profession:primary, secondary, any or partial name
Adds all primary professions, secondary professions or any professions.
Examples: profession:Primary, profession:Any, profession:Herb

toy:favorite, any or partial name
Adds favorite toys, all toys or toys that contain the partial name.
Examples: toy:Crash, toy:favorite, toy:any

[condition] support

Just like /cast and /castsequence, /select can use [conditions]. Every [condition] used by the macro system is supported. Some examples:

/select [flyable] Name of flying mount, Another flying mount; Name of land mount
/select [@focus,exists][] spell:Polymorph
/select [combat] Master Healing Potion, Healthstone; [nocombat] item:Food & Drink
/select [spec:1] Conjured Mana Cake, Cobo Cola; Conjured Mana Cake, Frybread
/select [nopet] spell:Summon Demon; Grimoire of Sacrifice


Macro length "tax"

To do its magic, Select needs to add a line like this to all macros that contain a /select command:
/click [btn:2]S001M;S001A
It will do this on its own and it will recreate this line if it's accidentally deleted or altered. You don't need to worry about it except to remember that when writing your /select macros your macro needs at least 26 characters free for it to add this line (if it's not already there).

Limitations
  • Only the first /select in a macro will be recognized. Any others in the same macro will be ignored.
  • When you create or edit a macro in combat (you should be fighting!) it will wait until you leave combat to turn the macro on or make changes from your edit.
  • If you gain an item or spell that wasn't available as you entered combat, that item or spell won't be in the flyout until you leave combat.

Frequently Asked Questions

Q: What action bar addons does this support?
A: All of them! Default too, of course. If you can drop a Blizzard macro onto the button then Select should work with that button. However, if the macros are outside the game's standard macro slots, Select won't be aware of them.

Q: Can I add companion pets to /select?
A: Yes and no. There's a game limitation that prevent changing the icon easily. That said, pet:name, pet:favorite and pet:any work. But be aware it uses one icon for all pets.

Q: Can I change the order that items or spells list in the menu?
A: If you want certain items to list before others, add them manually. ie: /select x-51 nether-rocket x-treme, mount:flying will list the x-51 rocket first.

Q: Tyrael's Charger is missing from my land mounts!
A: Tyrael's Charger can fly so it's grouped with the flying mounts. But if you want to add it to your land mounts you can add it manually: /select tyrael's charger, mount:land

Q: Can you make the popout menu align to the action/macro button?
A: No, sorry. The secure methods to get the menu working in combat prohibits anchoring willy nilly.

If you have any suggestions, comments or bugs to report, feel free to post them in comments here. Thanks!

6/4/2016 version 2.4.5
- Fix for attempt to cache empty bag slots.
- Fix for not all spell tabs checked in spell filters.
- Fix for mount:spellID filters.

5/27/16 version 2.4.4
- Fix for Cooldown_SetTimer renamed to Cooldown_Set

5/17/16 version 2.4.3
- Fix for Legion mount API changes

5/14/16 version 2.4.2
- Fix for cold login issues: toys not being cached, macro icons not initialized properly and lua error

5/13/16 version 2.4.1
- Fix for source filters getting unchecked on login and when toys change

5/13/16 version 2.4.0
- toc update for 7.0 Legion Beta
- Fix for renamed toybox API calls
- Fix for cooldown anchors going bonkers

2.3.13 3/17/16, mount:<number> (or m:<number>) will add a mount by spellID, fix for lua error when flyout is empty and action button undefined, fix for lua error when flyout is a single number
2.3.12 12/22/15, fix for specific keywords not doing an exact match, causing mount:land to only list favorite land mounts (and mount:flying to list only favorite flying mounts)
2.3.11 11/29/15, fix for mount filters that don't match their spell name (ie chauffeured mekgineer's chopper vs summon chauffeur)
2.3.10, 6/23/15, toc update for 6.2
2.3.9 3/30/15, fix for spells with colons in their name (like Power Word: Shield, Teleport: Moonglade)
2.3.8 2/28/15, fix for toy sources being cleared on login
2.3.7 2/24/15, toc update for 6.1
2.3.6 10/31/14, fix for toy searches failing after zoning (removed cache wipe), removed checks for WoD client
2.3.5 10/14/14, 6.0 patch
2.3.4 9/30/14, flyouts removed from UISpecialFrames on entering combat, prohibited from joining UISpecialFrames during combat
2.3.3 9/30/14, moved copying of flyout->action attributes from unsecure OnAttributeChanged to secure state driver snippet
2.3.2 9/23/14, toybox item support toy:favorite,any,partial search:keyword
2.3.1, 9/4/14, fix for lua error when attempting to show tooltip of a spell no longer known
2.3.0, 8/29/14, rewrite, all /selects are state-driven, searches case insensitive, options panel reworked, full WoD mount support
2.2.0, 7/21/14, initial fixes for WoD beta
2.1.6, unreleased, made index,actionType local in Select_Menu.lua SetAction hooksecurefunc
2.1.5, 2/23/14, fix for handling of invalid/missing [condition]als
2.1.4, 2/20/14, fix for hyphenated item:searches
2.1.3, 1/14/14, fix for mounts not completely loading on login
2.1.2, 12/26/13, frames join UISpecialFrames only when they're shown (out of combat)
2.1.1, 9/11/13, toc update for 5.4
2.1.0, 6/22/13, semi-rewrite: state driver added, flyouts indexed by their list instead of their macro, DontSelectWithAlt option, item cache added,
2.0.13, 5/19/13, toc update, summonpet works in combat, menus at top of screen grow downward
2.0.12, 5/5/13, added mount:favorites filter if Select Favorite Mounts loaded
2.0.11, 4/18/13, BAG_UPDATE unregistered if all menus populated, added Select_PerCharacter_Settings to restore initial actions to last attributes, removed profiling tools
2.0.10, 4/06/13, removed G_PetRoster, added profiling tools
2.0.9, 3/28/13, removed internal pet system, added G_PetRoster
2.0.8, 2/18/13, added macrotext support, centralized timer system, internal pet system
2.0.7, 1/26/13, added tooltips to /select macros
2.0.6, 9/23/12, added nil,1 to GetItemCount in parent:OnShow, added throttled UpdateMacroIcons on BAG_UPDATE, PLAYER_EQUIPMENT_CHANGED
2.0.5, 9/21/12, rewrite release
1.0.0, 11/08/08, initial release
Optional Files (0)


Archived Files (25)
File Name
Version
Size
Author
Date
2.3.13
19kB
Gello
03-17-16 05:22 PM
2.3.12
19kB
Gello
12-22-15 04:45 AM
2.3.11
19kB
Gello
11-29-15 12:18 AM
2.3.10
19kB
Gello
06-23-15 07:52 AM
2.3.9
19kB
Gello
03-30-15 02:48 PM
2.3.8
19kB
Gello
02-28-15 01:02 PM
2.3.7
19kB
Gello
02-24-15 06:18 AM
2.3.6
19kB
Gello
10-31-14 03:46 PM
2.3.4
19kB
Gello
10-14-14 06:21 AM
2.3.3
19kB
Gello
09-30-14 06:50 AM
2.3.2
19kB
Gello
09-23-14 06:06 PM
2.3.1
19kB
Gello
09-04-14 07:50 PM
2.3.0
18kB
Gello
08-30-14 04:14 PM
2.1.5
18kB
Gello
02-23-14 06:41 AM
2.1.4
18kB
Gello
02-20-14 12:38 AM
2.1.3
18kB
Gello
01-14-14 10:08 PM
2.1.2
18kB
Gello
12-26-13 06:11 AM
2.1.1
17kB
Gello
09-11-13 10:15 AM
2.1.0
17kB
Gello
06-22-13 04:46 PM
2.0.13
17kB
Gello
05-21-13 11:15 AM
2.0.12
18kB
Gello
05-05-13 07:24 PM
2.0.11
18kB
Gello
04-18-13 10:47 PM
2.0.6
16kB
Gello
09-23-12 05:20 PM
2.0.5
16kB
Gello
09-21-12 07:06 PM
1.0
4kB
Gello
11-08-08 12:23 PM


Post A Reply Comment Options
Unread 05-13-16, 05:06 AM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Anyone looking for a version for the Legion Beta, you can find it here:
http://www.wowinterface.com/download...egionBeta.html
Report comment to moderator  
Reply With Quote
Unread 03-22-16, 09:30 AM  
harl
A Murloc Raider
 
harl's Avatar
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 84
Uploads: 2
Thank you for the fix/update and the comprehensible explanation.
The m: prefix works quite fine with an ID, and so do m:fland and m:fflying.
Report comment to moderator  
Reply With Quote
Unread 03-17-16, 04:35 PM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Originally Posted by harl
Code:
/select 118089,171617,34896,138425,179478,102346,39315,138424,41252,24252,92232,61425,155741,48025,142073,133023,171845
Thanks I see the problem.

I'll get something up to fix this. The likely fix will be to prefix mount: (or m:) before spellIDs that are mounts and spell: (or s:) before spellIDs that are player spells. It won't work yet until I post an update (tonight or this weekend at the latest).

If you're interested in the technical details, it's pretty interesting. I forgot raw numbers can be used for select parameters. The item:118089 or spell:118089 is the intended method to choose an itemID or spellID (or i:118089 or s:118089). When the key (item: (or i:) or spell: (or s:)) is missing, it assumes it's a text name of something and checks if it's an item first and a spell second. The functions for checking also accept itemID and spellIDs so it's matching the legs if they're in your bags or the mount otherwise.

However, mounts are not typical player spells and it will fail to find the azure water strider with spell:118089 because spells: intentionally uses IsSpellKnown and IsSpellKnown(118089) returns false. That IsSpellKnown check is there to prevent spells that exist but a player doesn't know from showing up (so spell:2061 would list flash heal on a priest but skip it on a warrior).

That said, I can see why you want equivalency tables by using raw spellIDs.

The addon is designed to skip over mounts you can't summon. So you can have this:
Code:
/select mount:Azure Water Strider, mount:Goblin Trike, mount:Turbostrider
On horde characters it will offer the Azure Water Strider and Goblin Trike.
On alliance characters it will offer the Azure Water Strider and Turbostrider.

When space is a concern you can flag mounts as favorites and then using mount:favorite, or mount:favflying or mount:favland. (These can be shortened to m:favorite, m:fflying, m:fland.)

edit: 2.3.13 just posted should fix the problem if you prefix 118089 with an mount: or m: so it's m:118089.

I've also added some logic so that it will only add the mount-by-spellID if it can be summoned. This will drop the horde mounts on alliance characters and vice versa. It adds a couple characters to each mount but it can help clean up the menu:

Last edited by Gello : 03-17-16 at 05:26 PM.
Report comment to moderator  
Reply With Quote
Unread 03-17-16, 03:03 PM  
harl
A Murloc Raider
 
harl's Avatar
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 84
Uploads: 2
Originally Posted by Gello
Hmm. That's really peculiar. Can you post the /select line that the water strider is on?
Code:
/select 118089,171617,34896,138425,179478,102346,39315,138424,41252,24252,92232,61425,155741,48025,142073,133023,171845
Report comment to moderator  
Reply With Quote
Unread 03-15-16, 10:47 PM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Hmm. That's really peculiar. Can you post the /select line that the water strider is on?

As far as making equivalency tables, I'm sorry but that's not something I'm willing to maintain for the life of the addon. Adding content-specific data immediately puts a shelf life on addons. I would definitely be open to exploring ways a user can manage that themselves. Except for this addon they can already do it by adding both mounts and only their factions would show in the flyout. And if character space is an issue they can favorite the mounts they want to show up.
Report comment to moderator  
Reply With Quote
Unread 03-15-16, 12:40 PM  
harl
A Murloc Raider
 
harl's Avatar
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 84
Uploads: 2
Not a big thing really, but there's something odd with "Super Sterilized" Blastguard Leggings appearing in my ground mounts flyout in place of Azure Water Strider, both of which have the same ID (118089) but one refers to the item and the other one of course to the spell.
I think it's the only item that I've ever encountered this issue with, though that may be because the water strider is my selected mount that often, and because item and spell IDs match only rarely. - If I sell the leggings and restart the whole game, it reverts back to the water strider (whereas just logging out and back in doesn't suffice).
Maybe there's a way you could prioritise the spell over the item.

Also, maybe you could translate a few of those IDs "on-the-fly" based on faction and/or location limits, so if one ID is in the macro then it would dynamically cast either one based on those conditions. (Sure, separate flyouts for Alliance & Horde work well enough I guess, though it would be more elegant with a translation hash table.) (The following list is not complete.)
Report comment to moderator  
Reply With Quote
Unread 12-22-15, 04:49 AM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Today's update (2.3.12) fixes a minor bug (point out by mjsmagalhaes over on curse) that's been in the addon for a couple years so some may have taken it to be standard behavior.

In a mount:land select (or mount:flying) it's supposed to list all land (or flying) mounts. To get favorite land or flying mounts you can use mount:fland (or mount:favland) or mount:fflying (or mount:favflying).

If you suddenly get a bazillion mounts showing up in your select flyouts, go in and change your macro from mount:land or mount:flying to mount:fland or mount:fflying.

If you don't have enough characters and mount is spelled out, you can also do m:fland or m:fflying.
Report comment to moderator  
Reply With Quote
Unread 03-30-15, 11:19 AM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Originally Posted by Banknorris
Hi Ro,

Just made a quick test with Select using my library
http://www.wowinterface.com/download...MacroIcon.html
I had some time to test and look at the code.

Unfortunately it doesn't address the reasons I scrapped the use of the proof of concept I made years ago that does mostly this same thing.

If I have time this week I'll go over it in more detail. I appreciate the time you've taken to help.
Report comment to moderator  
Reply With Quote
Unread 03-30-15, 01:35 AM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Originally Posted by kaiden
I'm having some trouble with my Travel Macro.. currently it's:

/select Garrison Hearthstone,Hearthstone,Zen Pilgrimage,Death Gate,Teleport: Moonglade

Problem is the Teleport Moonglade portion doesn't work, even when I put spell: in front of it, it basically just shows the icon but will never let me switch to it as a spell or use it. I think i'm just doing it wrong otherwise i'd submit an official bug.
It looks like it has problems with all spells that have a colon in them. (Right now if it sees a colon it expects the part before the colon to be one of the search keys (mount:, spell:, item:, etc) I'll get a fix up this week for it.

In the meantime you can use:

/select Garrison Hearthstone,Hearthstone,Zen Pilgrimage,Death Gate,spell:Moonglade

Thanks for bringing it up!
Report comment to moderator  
Reply With Quote
Unread 03-29-15, 03:39 PM  
kaiden
A Murloc Raider
 
kaiden's Avatar

Forum posts: 6
File comments: 31
Uploads: 0
I'm having some trouble with my Travel Macro.. currently it's:

/select Garrison Hearthstone,Hearthstone,Zen Pilgrimage,Death Gate,Teleport: Moonglade

Problem is the Teleport Moonglade portion doesn't work, even when I put spell: in front of it, it basically just shows the icon but will never let me switch to it as a spell or use it. I think i'm just doing it wrong otherwise i'd submit an official bug.
Report comment to moderator  
Reply With Quote
Unread 03-28-15, 06:29 PM  
kaiden
A Murloc Raider
 
kaiden's Avatar

Forum posts: 6
File comments: 31
Uploads: 0
@Banknorris OMG thank you i was hoping this would be updated with this addon as a capability! NOw i just hope to see GnomeSequencer updated with this too! :P

Gello as always you are a scholar, a saint, and a sexy superdev! Keep it up!
Last edited by kaiden : 03-28-15 at 06:30 PM.
Report comment to moderator  
Reply With Quote
Unread 03-27-15, 12:50 PM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Awesome! I'll take a look at it later next week.

I'm knee deep in Rematch this weekend. But excited to try it out!
Originally Posted by Banknorris
Hi Ro,

Just made a quick test with Select using my library
http://www.wowinterface.com/download...MacroIcon.html

Select.toc
Code:
## Interface: 60100
## Title: Select
## Notes: This addon creates the /select macro command to create flyouts for items and spells.
## Author: Gello
## Version: 2.3.8
## SavedVariables: Select_Settings
## SavedVariablesPerCharacter: Select_PerCharacter_Settings
Libs\SetMacroIcon.lua
Select_Options.xml
Select.lua
Select_Filters.lua
Select_Menu.lua
function s.UpdateMacroIcon(index)
Code:
function s.UpdateMacroIcon(index)
	local name = format("S%03dA",index)
	local button = _G[name]
	if button then
		local attribType = button:GetAttribute("type")
		if attribType=="spell" then
			SetMacroSpell(index,button:GetAttribute("spell"))
		elseif attribType=="item" then
			local itemID = button:GetAttribute("item")
			if itemID:match("^item:") then
				SetMacroItem(index,itemID)
			else -- this is a toy if it's named without item:number
				local _,link = GetItemInfo(itemID)
				SetMacroItem(index,link)
			end
		elseif attribType=="macro" then
			local pet = button:GetAttribute("macrotext"):match("/summonpet (.+)")
			if pet then
				local _,petID = C_PetJournal.FindPetIDByName(pet)
				if petID then
					local _,_,_,_,_,_,_,_,icon = C_PetJournal.GetPetInfoByPetID(petID)
					SetMacroIcon(index,icon)
				end
			end
		else
			SetMacroSpell(index,"")
		end
	end
end
and tested with a macro (I have these companions):
Code:
/select pet:Sinister Squashling,pet:Tyuo,pet:Little Fawn
/click [btn:2]S001M;S001A
Where Tyuo (just a random name for sake of testing) is a renamed Lesser Voidcaller and guess what? It worked! (in and out of combat).
Report comment to moderator  
Reply With Quote
Unread 03-27-15, 08:25 AM  
Banknorris
A Flamescale Wyrmkin
 
Banknorris's Avatar
AddOn Author - Click to view AddOns

Forum posts: 116
File comments: 5
Uploads: 7
Hi Ro,

Just made a quick test with Select using my library
http://www.wowinterface.com/download...MacroIcon.html

Select.toc
Code:
## Interface: 60100
## Title: Select
## Notes: This addon creates the /select macro command to create flyouts for items and spells.
## Author: Gello
## Version: 2.3.8
## SavedVariables: Select_Settings
## SavedVariablesPerCharacter: Select_PerCharacter_Settings
Libs\SetMacroIcon.lua
Select_Options.xml
Select.lua
Select_Filters.lua
Select_Menu.lua
function s.UpdateMacroIcon(index)
Code:
function s.UpdateMacroIcon(index)
	local name = format("S%03dA",index)
	local button = _G[name]
	if button then
		local attribType = button:GetAttribute("type")
		if attribType=="spell" then
			SetMacroSpell(index,button:GetAttribute("spell"))
		elseif attribType=="item" then
			local itemID = button:GetAttribute("item")
			if itemID:match("^item:") then
				SetMacroItem(index,itemID)
			else -- this is a toy if it's named without item:number
				local _,link = GetItemInfo(itemID)
				SetMacroItem(index,link)
			end
		elseif attribType=="macro" then
			local pet = button:GetAttribute("macrotext"):match("/summonpet (.+)")
			if pet then
				local _,petID = C_PetJournal.FindPetIDByName(pet)
				if petID then
					local _,_,_,_,_,_,_,_,icon = C_PetJournal.GetPetInfoByPetID(petID)
					SetMacroIcon(index,icon)
				end
			end
		else
			SetMacroSpell(index,"")
		end
	end
end
and tested with a macro (I have these companions):
Code:
/select pet:Sinister Squashling,pet:Tyuo,pet:Little Fawn
/click [btn:2]S001M;S001A
Where Tyuo (just a random name for sake of testing) is a renamed Lesser Voidcaller and guess what? It worked! (in and out of combat).
Last edited by Banknorris : 03-27-15 at 08:48 AM.
Report comment to moderator  
Reply With Quote
Unread 03-10-15, 12:03 PM  
kaiden
A Murloc Raider
 
kaiden's Avatar

Forum posts: 6
File comments: 31
Uploads: 0
OK, I will wait patiently then as that would be the absolute most amazing feature ever. I would finally be able to get rid of some of these buttons I have!
Report comment to moderator  
Reply With Quote
Unread 03-09-15, 11:32 PM  
Gello
A Firelord
AddOn Author - Click to view AddOns

Forum posts: 480
File comments: 463
Uploads: 116
Originally Posted by kaiden
Would it be possible for Select to have a /select Macro:MacroName,Mount:Whatever type feature (the macro part).
Eventually. It can't right now.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: