Download
(10 Kb)
Download
Updated: 09-13-12 02:00 PM
Compatibility:
Mists of Pandaria (5.0.4)
Updated:09-13-12 02:00 PM
Created:unknown
Downloads:109,267
Favorites:474
MD5:
Action Bar Saver  Popular! (More than 5000 hits)
Version: v2.3.2
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.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 (14)
File Name
Version
Size
Author
Date
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 01-16-10, 10:21 PM  
Joschasa
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 22
Uploads: 2
Originally posted by Shadowed
You probably never updated, that was fixed already but you have to resave profiles for it to work.
Oh. Yes, you're right
Thanks
Joschasa is offline Report comment to moderator  
Reply With Quote
Unread 02-13-10, 06:47 PM  
castdead
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
You could disable the sound temporarily while you handle restoring the action bar positions to get rid of the "awkward for some" sound.

Code:
	-- Save current sound setting
	local soundcvar = GetCVar("Sound_EnableAllSound")
	-- Turn sound off
	SetCVar("Sound_EnableAllSound", 0)
	
	for i=1, 120 do
		local type, id = GetActionInfo(i)
		
		-- Clear the current spot
		if( id or type ) then
			PickupAction(i)
			ClearCursor()
		end
		
		-- Restore this spot
		if( set[i] ) then
			self:RestoreAction(i, string.split("|", set[i]))
		end
	end
	
	-- Restore old sound setting
	SetCVar("Sound_EnableAllSound", soundcvar)
castdead is offline Report comment to moderator  
Reply With Quote
Unread 02-15-10, 01:49 PM  
Shadowed
...
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 387
File comments: 2506
Uploads: 99
Sure
Shadowed is offline Report comment to moderator  
Reply With Quote
Unread 05-09-10, 02:53 AM  
Inoe
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
I have a problem with this addons !

It worked perfectly for my priest but bugged for every class that has different bars (warrior / rogue), i get disconnected when i type /abs restore xxx, even after enabling /abs count.

Any ideas ?
Inoe is offline Report comment to moderator  
Reply With Quote
Unread 05-09-10, 04:04 AM  
PingHansen
Guest

Join Date: Not Yet
Forum posts: 0
File comments: 0
Uploads: 0
Originally posted by Salerix
Has keybinding support been added to this addon yet? Or is there an addon that I could get to save my keybindings already in place and change them with the option of restoring them to how they were previously?
I just noticed Respec Bind Saver
Report comment to moderator  
Edit/Delete Message 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
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 06-02-10, 11:25 PM  
suicidalkatt
A Rage Talon Dragon Guard
 
suicidalkatt's Avatar
AddOn Author - Click to view AddOns

Forum posts: 311
File comments: 1377
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 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 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 10-06-10, 05:27 AM  
fakeh
A Murloc Raider

Forum posts: 7
File comments: 15
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 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-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-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 09-23-11, 08:35 AM  
weavil
A Deviate Faerie Dragon

Forum posts: 11
File comments: 77
Uploads: 0
welcome back ?!
weavil 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.