Minion Beta! - Help us test our new AddOn updater. Get it now!
Download
(12 Kb)
Download
Updated: 11-26-14 01:28 AM
Compatibility:
Warlords of Draenor Pre-Patch (6.0.3)
Warlords of Draenor Pre-Patch (6.0.2)
Siege of Orgrimmar (5.4)
Escalation (5.3)
Updated:11-26-14 01:28 AM
Created:unknown
Downloads:110,403
Favorites:467
MD5:
6.0.3

Action Bar Saver  Popular! (More than 5000 hits)

Version: v2.3.3
by: Shadowed [More]

Quick little mod, allows you to setup different profiles for your action bars. Mainly this is for hybrid classes that want to be able to respec without spending 10-20 minutes setting their action bars up. All you do is type /abs save <name> and it'll save the location of all your spells, macros and items.

For example, if you're currently a Feral Druid you can type /abs save feral then you can respec to Resto and setup your bars, then type /abs save resto once you go respec back to Feral you can then train all your spells again and type /abs restore feral and you'll get your feral setup without all the work of actually finding where you placed things.

Works with any custom interface like Bongos provided you're not using more then the standard 120 action buttons, ones that provided features to go past 120 will cause only the standard 120 to be saved/restored. This isn't a bug however, just a limitation in the WoW API

tag v2.3.3
ad89ad5bf9ece06e5b6ff53859c333241612ffa6
Shadowed <shadowed.wow@gmail.com>
2014-11-25 23:26:55 -0800

Tagging as release v2.3.3

--------------------

Shadowed:
- cleaned up files
- Updated for WoD

tag v2.3.2
238766229e5e521568f4f7c4d72348ff2f87a167
Shadowed <shadowed.wow@gmail.com>
2012-09-13 12:57:39 -0700

Tagging as release 2.3.2

--------------------

Shadowed:
- Permissions
- Fixed spell restoring (Thanks Morsker)

tag v2.3.1
e2dd8290c6d4b2e11c8d4673c396c408922b6db4
Shadowed <shadowed.wow@gmail.com>
2012-08-27 09:39:48 -0700

Tagging as release 2.3.1

--------------------

Shadowed:
- Given I'll be pushing 5.0.4 versions in the next day, I'll just bump TOC now
- Fixed macro handling (Thanks nebula169)
Optional Files (0)


Archived Files (15)
File Name
Version
Size
Author
Date
v2.3.2
10kB
Shadowed
09-13-12 02:00 PM
v2.3.1
10kB
Shadowed
08-27-12 10:52 AM
v2.3
10kB
Shadowed
08-07-12 09:14 AM
r20110919
12kB
Shadowed
09-19-11 09:17 PM
r20100719
12kB
Shadowed
07-19-10 12:23 PM
r20100215
12kB
Shadowed
02-15-10 01:53 PM
r20091210
12kB
Shadowed
12-10-09 05:30 PM
r20091210
11kB
Shadowed
12-10-09 05:00 PM
r20090923
11kB
Shadowed
09-23-09 07:55 PM
r20090808
11kB
Shadowed
08-08-09 10:57 PM
r1206
10kB
Shadowed
04-05-09 10:05 AM
r1192
10kB
Shadowed
04-04-09 12:58 AM
r1057
26kB
Shadowed
01-08-09 04:11 PM
r1052
26kB
Shadowed
01-04-09 11:13 AM
r1026
25kB
Shadowed
11-23-08 11:03 AM


Post A Reply Comment Options
Unread 07-29-12, 09:38 PM  
KazamaSogetsu
A Kobold Labourer

Forum posts: 0
File comments: 8
Uploads: 0
For those trying to use it on beta and getting errors while trying to restore a profile:

Open the ActionBarSaver.lua file, line 278, and replace
Code:
PickupSpellBookItem(spellCache[spellName], BOOKTYPE_SPELL)
By
Code:
PickupSpellBookItem(spellName)
KazamaSogetsu is offline Report comment to moderator  
Reply With Quote
Unread 02-01-12, 11:23 PM  
Xin
A Kobold Labourer

Forum posts: 1
File comments: 4
Uploads: 0
When restoring as a feral druid, mangle(bear form) is placed on the cat form action bars when mangle(cat form) was originally there. I have temporarily resolved the issue by using a mangle macro in place.
Xin is offline Report comment to moderator  
Reply With Quote
Unread 01-28-12, 08:58 AM  
AnrDaemon
A Flamescale Wyrmkin
AddOn Author - Click to view AddOns

Forum posts: 115
File comments: 2411
Uploads: 6
Re: Love this addon

Originally Posted by popnoart
I would only add an option to save specific action bar, not all at the same time. Would be awsome!
Not quite possible. Action bars are stored as a single string of buttons. All as one. Chopping and slicing it would be not an easy task.
AnrDaemon is offline Report comment to moderator  
Reply With Quote
Unread 01-28-12, 08:11 AM  
popnoart
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
Love this addon

I would only add an option to save specific action bar, not all at the same time. Would be awsome!
popnoart is offline Report comment to moderator  
Reply With Quote
Unread 11-25-11, 08:34 AM  
AnrDaemon
A Flamescale Wyrmkin
AddOn Author - Click to view AddOns

Forum posts: 115
File comments: 2411
Uploads: 6
Running diff through my installed ABS and r20110919, I noticed a few differences that I only can call "regressions".
I.e. "restoreRank = true," being default behavior.
AnrDaemon is offline Report comment to moderator  
Reply With Quote
Unread 09-23-11, 08:35 AM  
weavil
A Deviate Faerie Dragon

Forum posts: 11
File comments: 76
Uploads: 0
welcome back ?!
weavil is offline Report comment to moderator  
Reply With Quote
Unread 10-17-10, 12:29 AM  
Tact
A Deviate Faerie Dragon

Forum posts: 12
File comments: 28
Uploads: 0
i need an update SOOO bad. i like to respec a lot (yes i need more than 2 specs on my toon) and i HATE having to put back all the buttons 1 by 1.

any word on an update? /cry



edit:

ok. it seems blizz has done something that might make this addon unnecisary.

so i've been holding out on respeccing cause i didn't want to put back all my moves again to the action bar. (lazy ) but today when i forced myself to respec, NONE of my buttons dissapeared! they were all there and still are even after i removed one of those moves. (got rid of concussive blow on my tank)

so i guess if that's all you ever used this addon for, we no longer need it? O_o

idk if the same applies to macros though. just putting in my observations. idk if they help.


great addon none the less and a great backup to have on the offchance all your buttons do dissapear. (very annoying). so update still appreciated cause it's awesome.
Last edited by Tact : 10-17-10 at 12:54 AM.
Tact is offline Report comment to moderator  
Reply With Quote
Unread 10-13-10, 04:23 PM  
Farmbuyer
A Cyclonian
AddOn Author - Click to view AddOns

Forum posts: 43
File comments: 36
Uploads: 1
Re: Not working in 4.0.1

Originally posted by Mordh
Or maybe the hack below works...anyone else tried it live, and is it the "<" lines that need deletion and replacement with the ">" lines?
The style of text posted by fakeh is called a "diff", except it looks like he got the old and new reversed, and forgot to toggle context on. :-) I took his changes as a starting point and got a little farther. The change below works for me, but fails on companions. Also, some "spells" are just not able to be looked up using the new API; presumably there's a way to get them but I have no documentation available on how the new API *works*, so for now I'm skipping them in a hardcoded list. (Yes, it's called "screwed" in the code. You may guess at my frustration level at the time I wrote it. It was a stronger word but wowinterface won't let me post it. /facepalm)

Code:
--- ActionBarSaver.lua.orig	2010-10-13 15:14:35.816250000 -0400
+++ ActionBarSaver.lua	2010-10-13 18:16:09.519375000 -0400
@@ -15,6 +15,9 @@
 local MAX_ACTION_BUTTONS = 144
 local POSSESSION_START = 121
 local POSSESSION_END = 132
+local screwed = {
+	["Lifeblood"] = true,
+}
 
 
 function ABS:OnInitialize()
@@ -69,11 +72,13 @@
 		set[actionID] = nil
 		
 		local type, id, subType, extraID = GetActionInfo(actionID)
+		--print("actionID", actionID, "maps to type", type, "id", id, "sub", subType, "extra/global", extraID)
 		if( type and id and ( actionID < POSSESSION_START or actionID > POSSESSION_END ) ) then
 			-- DB Format: <type>|<id>|<binding>|<name>|<extra ...>
 			-- Save a companion
 			if( type == "companion" ) then
-				set[actionID] = string.format("%s|%s|%s|%s|%s|%s", type, id, "", name, subType, extraID)
+				-- FIXME 'name' here is the name of the profile, not the name of the critter
+				set[actionID] = string.format("%s|%s|%s|%s|%s|%s", type, id, "", name, subType, extraID or "")
 			-- Save an equipment set
 			elseif( type == "equipmentset" ) then
 				set[actionID] = string.format("%s|%s|%s", type, id, "")
@@ -82,7 +87,7 @@
 				set[actionID] = string.format("%s|%d|%s|%s", type, id, "", (GetItemInfo(id)) or "")
 			-- Save a spell
 			elseif( type == "spell" and id > 0 ) then
-				local spell, rank = GetSpellName(id, BOOKTYPE_SPELL)
+				local spell, rank = GetSpellInfo(id) --GetSpellBookItemName(id, BOOKTYPE_SPELL)
 				if( spell ) then
 					set[actionID] = string.format("%s|%d|%s|%s|%s|%s", type, id, "", spell, rank or "", extraID or "")
 				end
@@ -196,7 +201,7 @@
 
 		for i=1, numSpells do
 			local index = offset + i
-			local spell, rank = GetSpellName(index, BOOKTYPE_SPELL)
+			local spell, rank = GetSpellBookItemName(index, BOOKTYPE_SPELL)
 			
 			-- This way we restore the max rank of spells
 			spellCache[spell] = index
@@ -272,12 +277,15 @@
 	-- Restore a spell
 	if( type == "spell" ) then
 		local spellName, spellRank = ...
+		if GetSpellInfo(spellName) and not screwed[spellName] then
+			PickupSpellBookItem(spellCache[spellName], BOOKTYPE_SPELL)
+		--[[
 		if( ( self.db.restoreRank or spellRank == "" ) and spellCache[spellName] ) then
 			PickupSpell(spellCache[spellName], BOOKTYPE_SPELL)
 		elseif( spellRank ~= "" and spellCache[spellName .. spellRank] ) then
 			PickupSpell(spellCache[spellName .. spellRank], BOOKTYPE_SPELL)
+		end]]
 		end
-		
 		if( GetCursorInfo() ~= type ) then
 			-- Bad restore, check if we should link at all
 			local lowerSpell = string.lower(spellName)
@@ -321,6 +329,7 @@
 		local critterName, critterType, critterID = ...
 		PickupCompanion(critterType, actionID)
 		if( GetCursorInfo() ~= "companion" ) then
+			critterName = actionID --FIXME see SaveProfile
 			table.insert(restoreErrors, string.format(L["Unable to restore companion \"%s\" to slot #%d, it does not appear to exist yet."], critterName, i))
 			ClearCursor()
 			return
@@ -392,7 +401,8 @@
 		
 	-- Profile restoring
 	elseif( cmd == "restore" and arg ~= "" ) then
-		for i=#(restoreErrors), 1, -1 do table.remove(restoreErrors, i) end
+		--for i=#(restoreErrors), 1, -1 do table.remove(restoreErrors, i) end
+		table.wipe(restoreErrors)
 				
 		if( not self.db.sets[playerClass][arg] ) then
 			self:Print(string.format(L["Cannot restore profile \"%s\", you can only restore profiles saved to your class."], arg))
@@ -434,7 +444,7 @@
 		end
 
 		self:Print(string.format(L["Errors found: %d"], #(restoreErrors)))
-		for _, text in pairs(restoreErrors) do
+		for _, text in ipairs(restoreErrors) do
 			DEFAULT_CHAT_FRAME:AddMessage(text)
 		end
Farmbuyer is offline Report comment to moderator  
Reply With Quote
Unread 10-13-10, 06:59 AM  
Mordh
A Kobold Labourer

Forum posts: 0
File comments: 10
Uploads: 0
Not working in 4.0.1

Has anyone found another mod that serves this function and works in 4.0.1? As a shaman, I respec pretty often, and with the number of hotkeys and macros I bind....

Or maybe the hack below works...anyone else tried it live, and is it the "<" lines that need deletion and replacement with the ">" lines?
Mordh is offline Report comment to moderator  
Reply With Quote
Unread 10-06-10, 05:27 AM  
fakeh
A Murloc Raider

Forum posts: 7
File comments: 14
Uploads: 0
Originally posted by Niightblade
Does this work on the current Beta?
With the following hacky changes my needs on the beta are satisfied, but I haven't extensively tested.
Code:
85c85
<                               local spell = GetSpellInfo(id)
---
>                               local spell, rank = GetSpellName(id, BOOKTYPE_SPELL)
199c199
<                       local spell = GetSpellBookItemName(index, SpellBookFrame.bookType)
---
>                       local spell, rank = GetSpellName(index, BOOKTYPE_SPELL)
205c205
<                       --[[if( rank and rank ~= "" ) then
---
>                       if( rank and rank ~= "" ) then
207c207
<                       end]]
---
>                       end
275,279c275,279
<               --if( ( self.db.restoreRank or spellRank == "" ) and spellCache[spellName] ) then
<                       if spellCache[spellName] then PickupSpellBookItem(spellCache[spellName], BOOKTYPE_SPELL) end
<               --elseif( spellRank ~= "" and spellCache[spellName .. spellRank] ) then
<               --      PickupSpell(spellCache[spellName .. spellRank], BOOKTYPE_SPELL)
<               --end
---
>               if( ( self.db.restoreRank or spellRank == "" ) and spellCache[spellName] ) then
>                       PickupSpell(spellCache[spellName], BOOKTYPE_SPELL)
>               elseif( spellRank ~= "" and spellCache[spellName .. spellRank] ) then
>                       PickupSpell(spellCache[spellName .. spellRank], BOOKTYPE_SPELL)
>               end
Best, Dan.
fakeh is offline Report comment to moderator  
Reply With Quote
Unread 09-16-10, 11:43 PM  
Niightblade
A Fallenroot Satyr
AddOn Author - Click to view AddOns

Forum posts: 21
File comments: 67
Uploads: 1
Does this work on the current Beta?
Niightblade is offline Report comment to moderator  
Reply With Quote
Unread 07-19-10, 04:15 AM  
Morsker
A Fallenroot Satyr
 
Morsker's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 89
Uploads: 13
Re: Totem Action Bar Support

I wasn't aware of the max-rank feature. Polymorph(Rabbit) restores correctly if I disable this feature.

/abs rank has a typo in its chat message, saying "disabeld" instead of "disabled".

Also it would be nice if the max-rank feature didn't try to change ranks that aren't numbers, since it only makes sense for numbers. It's fairly minor though, especially since Cata will make the issue moot.
Morsker is offline Report comment to moderator  
Reply With Quote
Unread 06-02-10, 11:25 PM  
suicidalkatt
A Rage Talon Dragon Guard
 
suicidalkatt's Avatar
AddOn Author - Click to view AddOns

Forum posts: 317
File comments: 1411
Uploads: 60
Totem Action Bar Support

I changed lines 63 and 238 from "1,120" to "1,144" this seems to allow the saving and placing of shaman totem multi-cast action bars.

http://www.wowwiki.com/API_GetMultiCastTotemSpells
suicidalkatt is offline Report comment to moderator  
Reply With Quote
Unread 05-23-10, 06:45 PM  
Morsker
A Fallenroot Satyr
 
Morsker's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 89
Uploads: 13
This seems to get confused by the "rank" of alternate Polymorph spells like Polymorph(Rabbit) vs. Polymorph(Pig). When I try to save my action bars with the Rabbit version, it restores with the Pig version.

Also I just want to say how useful this mod is. Thanks!
Morsker is offline Report comment to moderator  
Reply With Quote
Unread 05-17-10, 10:58 PM  
trclocke
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 110
Uploads: 1
Just wanted to post a quick thanks. I'm constantly swapping between three specs, and ABS makes things nice and painless
trclocke is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.