H.H.T.D.
H.H.T.D.
In World of Warcraft healers have to die (H.H.T.D). This is a cruel truth that you're taught very early in the game. This add-on helps you influence this unfortunate destiny in a way or another depending on the healer's side...
This add-on is now known as H.H.T.D.
I originally chose the original name as a provocation to make one of the basic cruel truths of World of Warcraft perfectly obvious to everyone. Now I find this name too harsh, too long and mostly not specific enough to WoW.
As an author I could not stand that name anymore. This add-on does have an existence (and meaning) both in WoW and in the real world where obviously we don't want the death of our beloved healers...
While H.H.T.D is just an acronym of the original name, it will stay in World of Warcraft where it belongs.
Current features:
HHTD automatically adds healer symbols on top of players nameplate indicating their class and healing rank. Unlike other add-ons it only takes into account actively healing players. (It uses different symbols for friends and foes).
HHTD lets you apply custom marks on top of any unit's nameplate. These are the same marks as the default raid markers but you can set as many as you want and customize their look. These marks persist across game sessions. (They are only visible to you)
IMPORTANT NOTE: You have to enable nameplates, else you won't see any healer symbol!
HHTD lets you announce through a customizable message who the enemy and friendly healers are (using the Raid Warning channel if possible).
It will also help you protect the healers who are on your side alerting you when they are being attacked (check the option panel for details).
Helps you target healers easily when they are in a pack.
All of this applies to PVP and PVE.
NOTE: Type /HHTDG to open the configuration panel. There are many settings to check!
HHTD's options are not directly available in the "Interface" panel due to ongoing tainting issues Blizzard is not willing to fix.
That player is not a healer?
If you see a player marked as healer that should not be:
If their mark's background is NOT grey, check the 'Logging' option in the option panel (/HHTDG) ; then when you see such a player, reopen the option panel and check the content of the 'Logs' tab and report to me by opening a ticket. Please avoid comments on Curse.com as it's impossible to follow what happens there).
If their mark's background is grey then enable the 'Healer specialization detection' option so as to only report specialized healers ignoring others.
Also note that the healer's rank is displayed as a number in the center of the displayed mark so you can judge the importance of that player in the healing currently being done (the lower the number, the better the healer).
How it works
HHTD uses the combat log events to detect friendly and enemy healers who are currently healing other players (during the last 60s). HHTD detects specialized healers spells (for human players only) and differentiates specialized healers from hybrid ones.
HHTD also lets you choose a specified amount of healing healers have to reach before being marked as such (50% of your own health by default). This threshold is the only criterion used for NPCs.
When a healer is identified it will be marked with a healer symbol above their nameplate. If the healer is specialized, the symbol's background will be colored according to their class. In other cases the background will be grey.
In all cases a number in the center of the symbol indicates the rank of the healer, the lowest the number the better the healer (ie: '1' represents the most effective healer while '9' is the least effective).
You can force HHTD to only report specialized healers through HHTD's options (/hhtdg).
Needless to say that self-heals and heals to pets are filtered out.
Commands
/HHTDP (or /hhtdp) posts healers name to the raid channel ordered by effectiveness for all to see (Will use the Raid Warning channel if possible).
You need to configure the messages in the announce module options first.
You can bind the above command to a key (WoW key-bindings interface)
/HHTDG opens option panel
/HHTD gives you access to the command line configuration interface (useful for changing settings through macros...)
Planned features
- Detection when a friendly healer is being attacked and alert others through /yell, /say and emote.
Compatibility
HHTD is only compatible with nameplate add-ons which have been coded responsibly and do not modify internal parts of Blizzard nameplates (a very selfish behaviour as it prevents any other add-on from re-using them).
HHTD will detect these incompatibilities and report to you so that you can ask the culprit add-on authors to fix their code and make it compatible with ALL nameplate add-ons.
Guidelines for other add-on authors:
Do not call :Hide() or :Show() on nameplates' base frame. This breaks nameplate tracking for other add-ons by unduly firing OnHide/OnShow hooks...
Instead, make its sub-frames invisible by changing their size and/or setting them to the empty (not nil) texture. (check out how TidyPlates does)
Do not call :SetParent() on nameplates' subframes, this would prevent other add-ons from finding and hooking nameplate elements.
Do not use SetScript() EVER. You don't need it. :SetScript() shall only be used on frames YOU create. You can simply replace all your SetScript() calls by HookScript().
Videos
Here is a video by Hybridpanda featuring HHTD in the Eye of the Storm battleground:
YouTube - This makes me a sad Panda
Articles
Here are two excellent articles about HHTD by Cynwise (A must read if you have some doubts about the fairness of this add-on!) :
HHTD and the PvP Addons Arms Race
Using HHTD to Protect Friendly Healers
Here is another article written by Gevlon (a PVP healer).
type /hhtdg to open the configuration interface, or /hhtd for command-line access
Comments and suggestions are welcome :-)
To report issues or ask for new features, use the ticket system.
Bitcoin donation address: 1JkA5Ns1dMQLM4D8HUsbXyka6yhp312KnN
For those having issues with HHTD, I've just released a new alpha (2.1.1b-4-g963d0ba), it might fix your problems, download it from this link: http://www.wowace.com/addons/healers-have-to-die/files/
my nameplates addon isDocsNameplates:
http://www.curse.com/addons/wow/docsui-nameplates and the fanupdate for version 5.2 : Link Removed: http://www.mediafire.com/?32dfmkkj3sf75a4
version 2.1.1b-2-gc4767ae:
Message: ...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:182: CFCache: Region1 not found.
Time: 03/25/13 00:44:27
Count: 1
Stack: [C]: ?
[C]: in function `error'
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:182: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:175>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:268: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:267>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:386: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:358>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:716: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:746: in function `?'
...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:41: in function <...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:36>
Locals:
docsui-nameplates changes Blizzard nameplates' manifest, therefore it won't be compatible with HHTD (or any other add-on dealing with nameplates for that matter) until its author does things correctly and in respect of other add-ons. (TidyPlate doesn't have this problem, so you can use it in replacement of docsuiNameplate)
For those having issues with HHTD, I've just released a new alpha, it might fix your problems, download it from this link: http://www.wowace.com/addons/healers-have-to-die/files/
Thanks in advance for all of the work you do on this mod. :)
Here are my latest LUA errors after downloading the new alpha:
Message: ...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:328: Debug_CheckHookSanity(): OnShow hook failed
Time: 03/24/13 10:04:04
Count: 8
Stack: [C]: in function `error'
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:328: in function `?'
...face\AddOns\Archy\Libs\AceTimer-3.0\AceTimer-3.0.lua:41: in function <...face\AddOns\Archy\Libs\AceTimer-3.0\AceTimer-3.0.lua:36>
Locals: (*temporary) = "Debug_CheckHookSanity(): OnShow hook failed"
********************************************************************************************
Message: ...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:723: OnHide/Show hook failure: nil != 1
Time: 03/24/13 10:03:35
Count: 1
Stack: [C]: in function `assert'
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:723: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:728: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:685>
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:746: in function `?'
...face\AddOns\Archy\Libs\AceTimer-3.0\AceTimer-3.0.lua:41: in function <...face\AddOns\Archy\Libs\AceTimer-3.0\AceTimer-3.0.lua:36>
Locals: (*temporary) = false
(*temporary) = "OnHide/Show hook failure: nil != 1"
This looks like an add-on incompatiblity, could you give me the list of all your actrive add-ons? To do that you can install Decursive and type /DCRDIAG
I need the error messages and the exact version of your HHTD, I can't do anything otherwise.
I'm in the same boat, since the update my screen is littered with errors. Got so bad I had to disable.. Sad too cause this is the most awesome of addons.
Could you tell me what happens to those healers' nameplates when they get converted to constructs? Do they change color instantaneously?
Also please use the latest alpha to make the tests, it will create more detailed error massage, this will help me to understand what's happening: http://www.wowace.com/addons/healers-have-to-die/files/
Hi, love this mod, particularly in 5 man dungeons, but I am having big issues with Amber Shaper Ursok when healers get converted into constructs...
Date: 2013-03-21 20:46:56
ID: 88
Error occured in: Global
Count: 1
Message: ...rface\AddOns\Healers-Have-To-Die\NamePlateHooker.lua line 518:
HHTD.Registry_by_Name[IsFriend][PlateName] is invalid for plate:Mutated Construct isfriend:true PlateAdditions.plateName:Develsnare
Debug:
[C]: ?
...rface\AddOns\Healers-Have-To-Die\NamePlateHooker.lua:518:
...rface\AddOns\Healers-Have-To-Die\NamePlateHooker.lua:504
...rface\AddOns\Healers-Have-To-Die\NamePlateHooker.lua:665: UpdateRanks()
...rface\AddOns\Healers-Have-To-Die\NamePlateHooker.lua:274: ?()
...Die\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147:
...Die\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147
[string "safecall Dispatcher[3]"]:4:
[string "safecall Dispatcher[3]"]:4
[C]: ?
[string "safecall Dispatcher[3]"]:13: ?()
...Die\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: SendMessage()
Healers-Have-To-Die\Core.lua:1033:
Healers-Have-To-Die\Core.lua:918
Healers-Have-To-Die\Core.lua:1229: ?()
...Die\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147:
...Die\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147
[string "safecall Dispatcher[19]"]:4:
[string "safecall Dispatcher[19]"]:4
[C]: ?
[string "safecall Dispatcher[19]"]:13: ?()
...Die\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: Fire()
...alers-Have-To-Die\Libs\AceEvent-3.0\AceEvent-3.0.lua:120:
...alers-Have-To-Die\Libs\AceEvent-3.0\AceEvent-3.0.lua:119
Locals:
None
AddOns:
Swatter, v4.2.0 (<%codename%>)
ACP, v3.4.2
:
HealersHaveToDie, v2.1.1b
:
:
BlizRuntimeLib_enUS v5.2.0.50200 <eu>
(ck=2e7)
I just installed this mod for a low level warlock alt. Everytime I go into WSG/AB and encounter the enemy, I get a dozen or more LUA errors. It has never worked properly for me. I copied a few of them in case it helps. If there is a better place to send these, please let me know.
Message: ...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:161: CFCache: Region1 not found.
Time: 03/15/13 12:22:25
Count: 1
Stack: [C]: in function `assert'
...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:161: in function <...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:157>
The next one is:
Message: ...ace\AddOns\Healers-Have-To-Die\NamePlateRegistry.lua:305: Debug_CheckHookSanity(): OnShow hook failed
Time: 03/15/13 12:22:29
Count: 2
If it helps, I just noticed a warning from your mod telling me that another mod, gui 3.0 for MoP, is using certain commands (I can't find the exact wording now) that may interfere with nameplates. I can try to make it happen again if you need any help with this.
This happens because you are using an add-on that acts like if it were the only add-on on Earth and modifies Blizzard default nameplate layout... HHTD isn't compatible with this kind of add-on (it's already difficult enough to stay compatible with what Blizzard does).
So you can contact the author of the add-on in question asking him to code his add-on in a more respectful way (Healers Have To Die has no trouble at all with TidyPlayes for example).
What add-on which modify default nameplates are you using?
Thanks for the speedy reply. I assume since HHTD is calling out GUI 3.0 for MoP in my chat box, that must be the culprit. It tells me "GUI-V3 is using :SetScript() instead of :HookScript()" on Blizzard's nameplates."
Should I mention that error to the other mod author? Will that make sense to him/her or do I need to say something more specific?
I can't wait to get your mod working, as I love my low level pvp - even as a warlock that gets eaten alive by any healer class or hunter... :)
You should definetely contact Gui V3's author and tell him that HHTD isn't compatible with his mod. Just show him the message HHTD prints.
Unfortunately there is a more profound incompatibility with GUI V3 because it modifies Blizzard's nameplates in a way preventing any other add-on from using them. This will be more difficult to fix for him but you can point out that Tidy Plates is compatible with HHTD although it heavily modifies Blizzard's nameplates.
In the mean time you can try to disable the nameplate module of GUI V3 (I'm not sure if that's possible)
hey! author thank u for your ui-hhtd.I love this addons very much.
but something wrong with this ui since i updated this after game version 5.2
almost all of enemy playeys have "+"on their head.even for hunter's pets or Warriors and Blood Death knights
(Ok Blood death knight may be the super healer:)
Can u fix this problem?
I just released HHTD 2.1.1_beta_1 which should fix this issue.
thank you for your hard working.i hope it works.
For those having problems with healer symbols being displayed above the wrong player, I need a list of the other active add-ons you are using. To do this, install Decursive and type /DCRDIAG then follow the instructions. (only use this way because it provides all the information I need)
It has been confirmed that this issue is caused by an incomptabiliy between HHTD and another add-on, I have yet to find this other add-on to understand how to fix or work around this problem...
Thanks
Having the same problem as listed above. I use Tidy Plates.