SmartRes2
SmartRes2 Core
Resurrection monitor, one-button "smart" resurrections, funny random messages, and so much more!
Added with this build: a minimap button for options, and mult-spec Profiles.
Legion and Beyond
This is the 100% rewritten version for Legion and beyond. SmartRes2 is now modular, thus most of the functionality has been transferred to seperate modules. This means that it gains in power and capabilities, while also becoming even lighter on CPU and memory.
Modules
- Chat - All the self notification, funny random messages, and other chat stuff from the previous SmartRes2 builds. There is a lot more packed in here than ever before!
- Smart - Coming soon. The one button resurrection options that pick the best candidate to resurrect. The new module will prioritize roles (healer > tank > dps) rather than classes.
- Bars - Coming soon. The visual bars in pre-Legion no longer work in Legion, and needed to be rewritten. There are plans to add features to this, like themes.
Localization
Want to help translate? Then click here and localize SmartRes2 into your language. Most of the phrases you'd expect to find are in the modules, so check those out for more translating.
Bugs or Suggestions
Found something wrong, or thought of an improvement? Great, then I want to hear from you!
Message: Interface\AddOns\SmartRes2\SmartRes2.lua:54: attempt to compare nil with number
Time: Mon Aug 2 12:20:53 2010
Count: 1
Stack: Interface\AddOns\SmartRes2\SmartRes2.lua:54: in main chunk
Locals: _G =
ContainerFrame5Item7 = ContainerFrame5Item7 {
}
PowaDropDownAnim1ButtonHighlightTexture = PowaDropDownAnim1ButtonHighlightTexture {
}
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonStock {
}
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
KBASE_NUM_FAKE_CATEGORIES = 1
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
MerchantItem6AltCurrencyFrameHonorTexture = MerchantItem6AltCurrencyFrameHonorTexture {
}
PallyPowerC8P7BuffIcon = PallyPowerC8P7BuffIcon {
}
SmartBuffOptionsFrame_cbBuffS6 = SmartBuffOptionsFrame_cbBuffS6 {
}
AltoholicAccountSharingOptionsIconNever = AltoholicAccountSharingOptionsIconNever {
}
TutorialFrameLeft19 = TutorialFrameLeft19 {
}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {
}
ERR_TRADE_EQUIPPED_BAG = "You can't trade equipped bags."
PVP_RANK_6_1 = "Corporal"
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
AudioOptionsVoicePanelOutputDeviceDropDownButtonHighlightTexture = AudioOptionsVoicePanelOutputDeviceDropDownButtonHighlightTexture {
}
InterfaceOptionsDisplayPanelShowAggroPercentageText = InterfaceOptionsDisplayPanelShowAggroPercentageText {
}
VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture = VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture {
}
MerchantItem5AltCurrencyFrameItem1Text = MerchantItem5AltCurrencyFrameItem1Text {
}
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
IsReferAFriendLinked = <function> defined =[C]:-1
MAIL_LETTER_TOOLTIP = "Click to make a permanent
copy of this letter."
AudioOptionsVoicePanelMicrophoneVolumeThumb = AudioOptionsVoicePanelMicrophoneVolumeThumb {
}
MANA = "Mana"
CHAT_CONFIG_OTHER_COMBAT =
}
CONSOLIDATED_BUFFS_PER_ROW = 4
TutorialFrameRight19 = TutorialFrameRight19 {
}
MoneyFrame_OnEvent = <function> defined @Interface\FrameXML\MoneyFrame.lua:184
BN_UNABLE_TO_RESOLVE_NAME = "Unable to whisper '%s'. Battle.net may be unavailable."
WatchFrameItem_OnEvent = <function> defined @Interface\FrameXML\WatchFrame.lua:1206
InterfaceOptionsCombatTextPanelFCTDropDown_OnClick = <function> defined @Interface\FrameXML\InterfaceOptionsPanels.lua:1349
TradeSkillInputBoxLeft = TradeSkillInputBoxLeft {
}
LFGTeleport = <function> defined =[C]:-1
INT_SPELL_DURATION_HOURS = "%d |4hour:hrs;"
ChannelMemberButton10Name = ChannelMemberButton10Name {
}
PetStableMoneyFrameGoldButtonText = PetStableMoneyFrameGoldButtonText {
}
AltoGuildBankEntry7Item7 = AltoGuildBankEntry7Item7 {
}
VOICEMACRO_4_Sc_1_FEMALE = "Help me attack!"
PoMOptionFrame_CheckButton5Text = PoMOptionFrame_CheckButton5Text {
}
ACTION_SPELL_MISSED_POSSESSIVE = "1"
PetPaperDollFrameTab3Right = PetPaperDollFrameTab3Right {
}
ChannelMemberButton10SpeakerFrameOn = ChannelMemberButton10SpeakerFrameOn {
}
EventTraceFrameTitleButton = EventTraceFrameTitleButton {
}
SecureCmdItemParse = <function> defined @Interface\FrameXML\ChatFrame.lua:987
SLASH_STOPATTACK1 = "/stopattack"
AltoholicTabCharacters_Prof1Shine = AltoholicTabCharacters_Prof1Shine {
}
MultiCastActionButton4HotKey = MultiCastActionButton4HotKey {
}
GemHelper_CheckButton35Text = GemHelper_CheckButton35Text {
}
InterfaceOptionsCombatTextPanelRepChanges = InterfaceOptionsCombatTextPanelRepChanges {
}
SortQuestWatches = <function> defined =[C]:-1
ContainerFrame4Item16Cooldown = ContainerFrame4Item16Cooldown {
}
MINIMAP_TRACKING_TRAINER_CLASS = "Class Trainer"
SLASH_DISMOUNT2 = "/dismount"
TokenFrameContainerButton15Stripe = TokenFrameContainerButton15Stripe {
}
PowaBarAuraDeformSliderText = PowaBarAuraDeformSliderText {
}
AudioOptionsVoicePanel_OnShow = <function> defined @Inter
Message: Interface\AddOns\SmartRes2\SmartRes2.lua:1121: attempt to index field '?' (a nil value)
Time: Mon Jul 26 20:35:01 2010
Count: 1
Stack: (tail call): ?
Interface\AddOns\SmartRes2\SmartRes2.lua:1121: in function `DeleteResBar'
Interface\AddOns\SmartRes2\SmartRes2.lua:836: in function `?'
...ore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:146: in function <...ore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:146>
[string "safecall Dispatcher[3]"]:4: in function <[string "safecall Dispatcher[3]"]:4>
[C]: ?
[string "safecall Dispatcher[3]"]:13: in function `?'
...ore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:91: in function `Fire'
...Ons\LibResComm-1.0\LibResComm-1.0\LibResComm-1.0.lua:213: in function `?'
...Ons\LibResComm-1.0\LibResComm-1.0\LibResComm-1.0.lua:48: in function <...Ons\LibResComm-1.0\LibResComm-1.0\LibResComm-1.0.lua:47>
[C]: in function `MoveBackwardStart'
[string "MOVEBACKWARD"]:2: in function <[string "MOVEBACKWARD"]:1>
Locals: Sometimes debuglocals() returns nothing, it's one of those times... (FYI: This last sentence (only) is a HotFix from Decursive to prevent a C stack overflow in the new Blizzard error handler and thus giving you the opportunity to send this debug report to the author of the problematic add-on so he/she can fix it)
OK, uploaded r152 with the dry code for non-CTRA casts, got into a group. SR2 threw errors, and I thought I would look at them after the run. Sadly WoW crashed just as I opened BugSack, so all the errors are gone!
GRRRRRR. Yeah, so I know there are bugs, but I can't get into another group until way later tonight. Please post bugs to the tracker, or in the forum as a second option.
Already handled that one Highend. There are other issues afoot however.
Working on it; and have asked for feedback from smarter persons.
1x SmartRes2-r149\SmartRes2.lua:522: unexpected symbol near 'if'
Locals:
-@DaemonSambe I will see if I can force both issues. There is a :SetPoint() in OnInit(), perhaps I need to duplicate it in the bar creation. Will check. Same with the :ShowIcon()
@Creepy_Inc Just use the custom message option.
Any chance you can change the whisper to not mention my name to start with?
I mean the person can see the whisper is from me, doesn't need "xxxxx to: xxxx is rez. you."
First, /sr cast and /smartres cast do not work at all, ever, for me.
When I use the keyboard hotkey, I can get it to rez people, but I get this:
Message: Interface\AddOns\SmartRes2\SmartRes2.lua:807: bad argument #1 to 'random' (interval is empty)
Time: Thu Jul 22 09:20:42 2010
Count: 2
Stack: (tail call): ?
[C]: in function `random'
Interface\AddOns\SmartRes2\SmartRes2.lua:807: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147: in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147>
[string "safecall Dispatcher[4]"]:4: in function <[string "safecall Dispatcher[4]"]:4>
[C]: ?
[string "safecall Dispatcher[4]"]:13: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: in function `Fire'
...Ons\LibResComm-1.0\LibResComm-1.0\LibResComm-1.0.lua:147: in function `?'
...Ons\LibResComm-1.0\LibResComm-1.0\LibResComm-1.0.lua:48: in function <...Ons\LibResComm-1.0\LibResComm-1.0\LibResComm-1.0.lua:47>
Locals: (*temporary) = 0
So i really dislike addons that store positioning data in layout-local.txt. It's annoying because if you load a session without the mod, it removes that positioning data, and the next time the mod loads it has to be reset.
This is the case with the resBar anchors in this mod. Even though you store the data in savedvariables, that's not what's used to create the new resBars session. That coordinate information is just ignored on init, and if there isn't any layout-local data, it goes to default, center of screen.
It so annoyed me that i went into the code to find out why and how to fix; only to realize that it's not a problem with the mod itself, but the outdated libBar. Or maybe not entirely outdated, but i can't figure out how to get the SetPoint to work on the bars. As far as i can tell, it just ignores the command. And like you, i went searching for some code info, but found nothing. The only mod i could find using LibBar was Skada, which works fine with the anchors, but uses libWindow to wrap the bars, and may even have modified libBar some.
Anyway, that's my gripe.
Oh. and the ShowIcon toggle, is also not observed on reload, which i think is just some missing check someplace, that i forgot to look into.
Select "Group" which will switch between raid and party chat depending on your group size.
Any bugs or comments please post to the tracker. Link is above, in the main description. I am especially wondering about cross-realm deaths, and if the auto res key and /sr cast works on those players now.