SmartRes2
SmartRes2
The ultimate addon for party and raid recovery after a partial or total wipe. There is a plethora of features, most functional, some are for roleplay.
A Short List of Features
Not every feature exits for every WoW version. For example, settings for mass resurrection spells are not available in Classic Era or Season of Discovery. I am still writing the code, which means there are features which are not done.
- SmartRes2 is lightweight and modular. You can enable or disable almost everything, up to and including entire plugins.
- Create your own random messages for printing to chat to entertain your group.
- Disable or remove chat messages you do not wish to use. There is a recycle bin to restore deleted messages.
- Customize the bar frame with borders, fonts, and more. Future ideas include supporting themes.
- Bind keys for one-click casting of your class resurrection spells, including Hunter pet spells (requires retail, crane and moth pets).
- Non-combat spells intelligently parse your group for dead characters, prioritizing healers, tanks, then DPS. The option to change the priority is being investigated.
- Non-combat resurrection spells, including mass resurrections, check if your cast is the fastest, and if anyone's spell is not the fastest, SmartRes2 can inform them of a collision.
- A frame of colour-coded bars provides a visual display of resurrections. (Not ready as of June, 2024).
- If you have a combat res spell, there is an option to switch the manual target key bind to the spell during combat, and back to your regular res spell out of combat.
- SmartRes2 supports all WoW versions that have been released as of June, 2024. The War Within is planned, but I do not have access to the beta.
Translating
People can start localizing SmartRes2 via the Wowace web portal. As of June 6, 2024, the current words and phrases are set; however, there will be more added and those added later may change as development progresses.
API
Addon authors are welcome to write their own modules and plug their options into SmartRes2. There is a Public API which has the basics. More instructions will be added as development advances.
Preview Screenshots
These are not final, and are subject to change, especially as I add features.
@angrysteel
This is not a bug, and has always existed. You are correct that it is an API limitation - Blizzard's. The secure button template code will not cast on a player who has released their ghost in that fashion; it won't work in an AddOn, because it will not work the default UI.
However, the Manual Res Key will give you the hand cursor with which you can click on their corpse or unit frame. It will fire the Res bars and keep track of collision casters, provide the unit's name (instead of nothing, or UNKNOWN), and all the other good stuff. This is exactly what happens if you cast a resurrection-type spell with no target selected: the game gives you the hand cursor. The difference is the base UI doesn't have the SR2 extra features.
I haven't tested in ages, but if you had said dead, released player as your target, and NO OTHER valid higher priority non-released players exist, the Auto Res Key would then cast on your target by default.
Hopefully that helps.
Not sure if this is a bug or a limitation of the api:
Lets say me and a buddy are standing at Shrine of Two Moons. He flies up, jumps off mount, and dies at my feet. I use my smart res button and it works as intended.
Now, doing the same test, if he releases and is a ghost, my smart res button no longer works, even with his body right next to me. I didnt see anything in known issues or Q&A sections stating the addon will not resurrect players that have released.
I did see in the Q&A section: "Because macros cannot tell you the name of released (ghost) characters, and SmartRes2 can "
This lead me to believe its a bug preventing me from resurrecting players that have released.
I don't know what changed on WowInterface, where LibResInfo is actually hosted, but after I discovered the change, I had to do some recursive digging to find the location of LRI. It should be fixed in the latest alpha builds.
I am about to load the game, and if I don't get the error, I will tag release 2.6.1
Still no idea what or how the repository was changed, as all I did was tell the zip packager to pull from the previously working and known location, and create a new SmartRes2 zip. Nothing I did on my end was changed. Oh well.
Release 2.6.1 works in game with no error loading LibResInfo.
Phanx, who wrote LRI, and I are discussing what might be the root cause, to prevent this weirdness from occurring again.
Still getting this with the latest alpha build:
1x SmartRes2\SmartRes2-r277.lua:29: Cannot find a library instance of "LibResInfo-1.0".
<in C code>
Accountant-4.13.50400\libs\LibStub\LibStub.lua:23: in function "GetLibrary"
SmartRes2\SmartRes2-r277.lua:29: in main chunk
The issue is still with the LibResInfo-1.0 library, it is packed inside a subdirectory of libs with a new subdirectory, toc and all. If you move the lua file from SmartRes2\Libs\LibResInfo-1.0\LibResInfo-1.0\LibResInfo-1.0 to SmartRes2\Libs\LibResInfo-1.0 it will work.
Release 2.6.0 is missing the very important LibResInfo library :p
Does this support other battle rez's then rebirth? If no would you ever consider adding it?
The current version supports every spell and item that can raise or resurrect a player, including the other battle resurrections (Raise Ally, etc).
However, most such spells are instant-cast spells, and their bars appear and fade equally instantly. So yes, they are supported, but you will never see them.
It was easier to support all of them, even the instants, rather than try to filter, adjust and account for glyphs, talents, etc.
@TheGrey01
Darn typo!! Thanks, and should be fixed in r248...
Using the current beta and the normal version before i kept getting the following error, every time i get in combat (for the first time after which one of my other error catching addons blocks it).
Now we have 2 following errors:
Date: 2013-02-25 02:24:29
ID: 1
Error occured in: Global
Count: 1
Message: AceLocale-3.0: SmartRes2: Missing entry for 'Time Out Bars Anchor'
Debug:
...ddOns\Carbonite\Libs\AceLocale-3.0\AceLocale-3.0.lua:31:
...ddOns\Carbonite\Libs\AceLocale-3.0\AceLocale-3.0.lua:29
SmartRes2\SmartRes2Options.lua:325: OptionsTable()
SmartRes2\SmartRes2.lua:135:
SmartRes2\SmartRes2.lua:123
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9:
[string "safecall Dispatcher[1]"]:5
(tail call): ?
...\AddOns\Carbonite\Libs\AceAddon-3.0\AceAddon-3.0.lua:514: InitializeAddon()
...\AddOns\Carbonite\Libs\AceAddon-3.0\AceAddon-3.0.lua:629:
...\AddOns\Carbonite\Libs\AceAddon-3.0\AceAddon-3.0.lua:621
Locals:
None
Date: 2013-02-25 02:24:29
ID: 2
Error occured in: Global
Count: 1
Message: AceLocale-3.0: SmartRes2: Missing entry for 'Toggle the anchor for the time out bars'
Debug:
...ddOns\Carbonite\Libs\AceLocale-3.0\AceLocale-3.0.lua:31:
...ddOns\Carbonite\Libs\AceLocale-3.0\AceLocale-3.0.lua:29
SmartRes2\SmartRes2Options.lua:326: OptionsTable()
SmartRes2\SmartRes2.lua:135:
SmartRes2\SmartRes2.lua:123
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9:
[string "safecall Dispatcher[1]"]:5
(tail call): ?
...\AddOns\Carbonite\Libs\AceAddon-3.0\AceAddon-3.0.lua:514: InitializeAddon()
...\AddOns\Carbonite\Libs\AceAddon-3.0\AceAddon-3.0.lua:629:
...\AddOns\Carbonite\Libs\AceAddon-3.0\AceAddon-3.0.lua:621
Locals:
None
Don't know who is more guilty - Carbonite or SmartRes2, so posting this for both.
*shakes fist* I thought I had those!! Should be all fixed up by r242
D'oh, those two were my fault for missing. Hopefully got them all now.
I scanned both SmartRes2.lua and SR2Options.lua for missing phrases, and think I have them all. Hopefully r230 doesn't throw a fit for you guys now.
Sorry for the hoop jumping; Phanx and I were more concerned with fixing [ code ] bugs in LibResInfo and SmartRes2. Our copies, being development builds, won't error on missing translations, and given the amount of uploads to wowace lately, adding the new phrases wasn't an immediate priority.
At this point, I think everything that is currently in SR2 has a localization phrase, and again, sorry for the delay.
Is this the same one as yesterday, since im having it after todays update.
Message: AceLocale-3.0: SmartRes2: Missing entry for 'Mass Resurrection Message'
Time: 02/22/13 13:46:30
Count: 1
Stack: Interface\AddOns\SmartRes2\SmartRes2Options.lua:404: in function `OptionsTable'
Interface\AddOns\SmartRes2\SmartRes2.lua:128: in function <Interface\AddOns\SmartRes2\SmartRes2.lua:116>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:514: in function `InitializeAddon'
...AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:629: in function <...AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:621>
Locals: self = <table> {
NewBarFromPrototype = <function> defined @Interface\AddOns\SmartRes2\Libs\LibBars-1.0\LibBars-1.0.lua:255
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:383
GetBarGroup = <function> defined @Interface\AddOns\SmartRes2\Libs\LibBars-1.0\LibBars-1.0.lua:399
ReleaseBar = <function> defined @Interface\AddOns\SmartRes2\Libs\LibBars-1.0\LibBars-1.0.lua:288
EnableModule = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:348
modules = <table> {
}
baseName = "SmartRes2"
OnNewProfile = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:320
CreateResBar = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:738
StartTestBars = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:822
Printf = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceConsole-3.0\AceConsole-3.0.lua:69
SetDefaultModulePrototype = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:425
SavePosition = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:235
FadeFinished = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:818
defaultModuleState = true
IsEnabled = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:467
DisableModule = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:366
Resurrection = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:693
VerifyPerk = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:456
RestorePosition = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:242
RegisterMessage = <function> defined @Interface\AddOns\AutoTurnIn\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
UnregisterMessage = <function> defined @Interface\AddOns\AutoTurnIn\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
BindMassRes = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:497
SetEnabledState = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:440
enabledState = true
RegisterEvent = <function> defined @Interface\AddOns\AutoTurnIn\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
SlashHandler = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:254
IterateModules = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:453
GetBars = <function> defined @Interface\AddOns\SmartRes2\Libs\LibBars-1.0\LibBars-1.0.lua:222
DeleteBar = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:447
OnInitialize = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:116
UnregisterAllEvents = <function> defined @Interface\AddOns\AutoTurnIn\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
LibResInfo_ResExpired = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:441
GetModule = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceAddon-3.0\AceAddon-3.0.lua:231
AddCustomMsg = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:348
defaultModuleLibraries = <table> {
}
LibResInfo_ResCastStarted = <function> defined @Interface\AddOns\SmartRes2\SmartRes2.lua:368
UnregisterChatCommand = <function> defined @Interface\AddOns\AutoTurnIn\Libs\AceConsole-3.0\AceConsole-3.0.lua:111
Add an option to disable that feature, if you don't mind. Thanks.
It isn't a feature, it is part of the debug code. I think I got all the missing phrases in r229 anyway. If I missed some, either myself, Phanx, or you excellent people will let me know!
@myrroddin
That's way cool, thanks for letting me know where you are in the process and keep up the good work!.
:)
The errors you see are because the new phrases and words exist in SmartRes2 the AddOn, but not yet on the WoWAce page. Once either Phanx or myself add the new phrases, SR2 will load normally.
If you want to bypass the error (I do NOT recommend this) because you simply cannot wait, use the SVN development version. No, I will not link it; you either know how to find it or you don't, and that is the point. It is very much a work in progress.
Phanx or I should get the new phrases into WoWAce later today or tomorrow, given time, work, sleep, etc, and then no more errors.