LibHealComm-3.0
Keeps track of healing spells cast by everyone in a group. Discussion and comments are welcome at http://forums.wowace.com/showthread.php?t=10435.... Bug reports and requests should be posted as a ticket at http://www.wowace.com/projects/libhea.../tickets/
Supported Healing Spells: Lesser Healing Wave, Healing Wave, Chain Heal (only first target), Flash of Light, Holy Light, Regrowth (only direct heal part), Healing Touch, Nourish, Lesser Heal, Heal, Greater Heal, Binding Heal, Greater Heal, Prayer of Healing (with range check).
Required externals when embedding this library: LibStub, CallbackHandler-1.0
Addons supporting LibHealComm-3.0
- Shadowed Unit Frames
- Grid / Grid2
- PitBull 3
- PitBull 4
- VisualHeal
- sRaidFrames
- BunchOfBars
- PerfectRaid
- oUF
- X-Perl UnitFrames
- ag_unitframes
- Chinon
- Stuf Unit Frames
- OzRaid
- IceHUD
- HealInc
- HealAssign
How to embed LibHealComm-3.0 into an addon
LibStub and CallbackHandler-1.0 are required dependencies, and must be included by the addon, before trying to get a reference to LibHealComm-3.0. The reference to LibHealComm-3.0 is obtained by the following code:
local HealComm = LibStub:GetLibrary("LibHealComm-3.0");
API Documentation (Events)
Callbacks are used to signal various events. To register an addon to be notified of a specific event, use the following code:
function MyAddon:OnEnable()
HealComm.RegisterCallback(self, "HealComm_DirectHealStart");
end
function MyAddon:HealComm_DirectHealStart(event, healerName, healSize, endTime, ...)
for i=1,select('#', ...) do
local targetName = select(i, ...);
DEFAULT_CHAT_FRAME:AddMessage(healerName .. " is healing " .. targetName .. " for " .. healSize);
end
end
The various events that can be registered are listed below.
HealComm_DirectHealStart(event, healerName, healSize, endTime, ...)
This callback is triggered when anyone in the raid/party starts casting a healing spell. Arguments:
- event - the name of the event ("HealComm_DirectHealStart").
- healerName - the fully qualified name of the healer casting the spell.
- healSize - the base size of the healing (buffs/debuffs not included).
- endTime - the absolute time where the heal will complete.
- ... - the fully qualified name(s) of the healing target(s). See example code above.
HealComm_DirectHealDelayed(event, healerName, healSize, endTime, ...)
This callback is triggered when anyone in the raid/party, who are casting a healing spell, are delayed. Arguments:
- event - the name of the event ("HealComm_DirectHealDelayed").
- healerName - the fully qualified name of the healer casting the spell.
- healSize - the base size of the healing (buffs/debuffs not included).
- endTime - the new absolute time where the heal will complete.
- ... - the fully qualified name(s) of the healing target(s). See example code above.
HealComm_DirectHealStop(event, healerName, healSize, succeeded, ...)
This callback is triggered when anyone in the raid/party completes the casting of a healing spell, or when casting is interrupted before it completes. Arguments:
- event - the name of the event ("HealComm_DirectHealStop").
- healerName - the fully qualified name of the healer casting the spell.
- healSize - the base size of the healing (buffs/debuffs not included).
- succeeded - true if the healing completed successfully, false otherwise.
- ... - the fully qualified name(s) of the healing target(s). See example code above.
HealComm_HealModifierUpdate(event, unit, targetName, healModifier)
This callback is triggered when anyone in the raid/party gains or looses a buff/debuff which changes the heal modifier. Arguments:
- event - the name of the event ("HealComm_HealModifierUpdate").
- unit - the UnitID of the player.
- targetName - the fully qualified name of the player.
- healModifier - A fractional number that is multiplied with the base heal size to yield the effective healing size. Will be 1.0 if no buffs/debuffs affect healing.
API Documentation (Methods)
The library exposes a number of methods, that provide the ability to retrieve information from the library. A method is invoked like this:
local modifier = HealComm:UnitHealModifierGet('raid10');
The available methods are listed below.
UnitIncomingHealGet(unit, time)
Retrieve information about the incoming heals to a specific unit.
Input:
- unit - The name or UnitID of the unit to retrieve information about. Examples: "Kaki", "Kaki-Emerald Dream", "party1", "player", "target".
- time - specifies an absolute boundary time. Examples: GetTime(), GetTime() + 3.
Return values:
- incomingHealBefore - The total size of the incoming heals before the boundary time.
- incomingHealAfter - The total size of the incoming heals after the boundary time.
- nextTime - the time left until the next incoming heal will land.
- nextSize - the size of the next incoming heal.
- nextName - the name of the healer casting the next incoming heal.
Note that nothing is returned if no healing is incoming to the specified unit. Also note that the returned information does not include healing cast by the player, only healing cast by remote clients.
UnitCastingHealGet(unit)
Retrieve information about the direct healing spell currently being cast by any unit.
Input:
- unit - The name or UnitID of the unit to retrieve information about. Examples: "Kaki", "Kaki-Emerald Dream", "party1", "player", "target".
Return values:
- healSize - Size of the healing being cast.
- endTime - The time when the healing completes.
- targetName - Name of the unit being targeted for heal. If the spell is targeting multiple units, this parameter will be a table containing the individual target names.
Note that nothing is returned if the specified unit is not casting a heal.
UnitHealModifierGet(unit)
Returns the modifier to healing (as a factor) caused by buffs and debuffs.
Input:
- unit - The name or UnitID of the unit to retrieve information about. Examples: "Kaki", "Kaki-Emerald Dream", "party1", "player", "target".
Return values:
- modifier - A fractional number that is multiplied with the base heal size to yield the effective healing size. Will be 1.0 if no buffs/debuffs affect healing.
This function call always returns a valid number.
GetRaidOrPartyVersions()
Returns a table containing the versions of LibHealComm-3.0 used by raid and/or party members.
Return values:
- table - A table containing key-value pairs, where the key is the name of the raid/party member and the value is the numeric value of the version used by that player.
This function call always returns a table containg at least one entry for the player.
GetGuildVersions()
Returns a table containing the versions of LibHealComm-3.0 used by online guild members.
Return values:
- table - A table containing key-value pairs, where the key is the name of the guild member and the value is the numeric value of the version used by that player.
This function call always returns a table containg at least one entry for the player.
GetUnitVersion(unit)
Returns the versions of LibHealComm-3.0 used by a specific unit.
Input:
- unit - The name or UnitID of the unit to retrieve information about. Examples: "Kaki", "Kaki-Emerald Dream", "party1", "player", "target".
Return values:
- version - The version used or false if LibHealComm-3.0 was not detected for the specified unit.
This function call always returns either a number or false.
------------------------------------------------------------------------
r94 | xbeeps | 2009-09-11 18:03:58 +0000 (Fri, 11 Sep 2009) | 1 line
Changed paths:
M /trunk/LibHealComm-3.0.lua
Fix upgrade path so previous callback handler registrations are not lost.
------------------------------------------------------------------------
r93 | jlam | 2009-09-02 01:09:44 +0000 (Wed, 02 Sep 2009) | 1 line
Changed paths:
M /trunk/LibHealComm-3.0.lua
Shamans: patch 3.2 made Glyph of Lesser Healing Wave boost LHW on any target with Earth Shield, not just player's Earth Shield.
------------------------------------------------------------------------
r87 | xbeeps | 2009-08-13 19:37:48 +0000 (Thu, 13 Aug 2009) | 3 lines
Changed paths:
M /trunk/LibHealComm-3.0.lua
More jlam fixes:
Druid: Fix the item IDs of the Conqueror's Malfurion's Garb and change the names in the comments from "Stormrage" to "Malfurion".
Shaman: Fix the item IDs of the Triumphant Nobundo's Garb.
------------------------------------------------------------------------
r85 | starinnia | 2009-08-13 03:57:57 +0000 (Thu, 13 Aug 2009) | 1 line
Changed paths:
M /trunk/LibHealComm-3.0.lua
fix typo on line 826: tLifeBloom to tLifebloom (now matches the variable on line 648)
------------------------------------------------------------------------
r84 | xbeeps | 2009-08-12 22:41:15 +0000 (Wed, 12 Aug 2009) | 2 lines
Changed paths:
M /trunk/LibHealComm-3.0.lua
Improved and simplified the library initialisation by using IsLoggedIn function to determine whether or not to wait for the PLAYER_LOGIN event.
Simplified and moved detectItemSetGear into PLAYER_EQUIPMENT_CHANGED event handler, so it is not called when zoning.
------------------------------------------------------------------------
r81 | xbeeps | 2009-08-12 18:25:00 +0000 (Wed, 12 Aug 2009) | 1 line
Changed paths:
M /trunk/LibHealComm-3.0.lua
Revert the Divine Hymn change
------------------------------------------------------------------------
r80 | xbeeps | 2009-08-12 18:24:02 +0000 (Wed, 12 Aug 2009) | 5 lines
Changed paths:
M /trunk/LibHealComm-3.0.lua
Updates by jlam reviewed and merged into main:
Focused Will adjusted to 3%/4%/5% per application instead of 4%/7%/10%.
Priest: Grace increased to 3% per application.
------------------------------------------------------------------------
r79 | xbeeps | 2009-08-12 18:06:48 +0000 (Wed, 12 Aug 2009) | 11 lines
Changed paths:
M /trunk/LibHealComm-3.0.lua
Updates by jlam reviewed and merged into main unmodified:
Add detection of item set bonuses that affect healing to all classes.
Add certain critical detection to all classes.
Druid: Support Nature's Bounty and Nature's Majesty talents.
Druid: Properly adjust Nourish heal amount if a HoT is on the target.
Druid: Glyph of Nourish support.
Paladin: Support Divinity, Holy Power, Touched by the Light and Sanctified Light talents.
Paladin: Infusion of Light support.
Priest: Blessed Resilience, Divine Providence and Renewed Hope talent
Priest Inner Focus support.
------------------------------------------------------------------------
Installation Guide
- Exit "World of Warcraft" completely
- Download the mod you want to install
- Make a folder on your desktop called "My Mods"
- Save the .zip/.rar files to this folder.
- If, when you try to download the file, it automatically "opens" it... you need to RIGHT click on the link and "save as..." or "Save Target As".
- Extract the file - commonly known as 'unzipping'
Do this ONE FILE AT A TIME!
- Windows
- Windows XP has a built in ZIP extractor. Double click on the file to open it, inside should be the file or folders needed. Copy these outside to the "My Mods" folder.
- WinRAR: Right click the file, select "Extract Here"
- WinZip: You MUST make sure the option to "Use Folder Names" is CHECKED or it will just extract the files and not make the proper folders how the Authors designed
- Mac Users
- StuffitExpander: Double click the archive to extract it to a folder in the current directory.
- Verify your WoW Installation Path
That is where you are running WoW from and THAT is where you need to install your mods.
- Move to the Addon folder
- Open your World of Warcraft folder. (default is C:\Program Files\World of Warcraft\)
- Go into the "Interface" folder.
- Go into the "AddOns" folder.
- In a new window, open the "My Mods" folder.
- The "My Mods" folder should have the "Addonname" folder in it.
- Move the "Addonname" folder into the "AddOns" folder
- Start World of Warcraft
- Make sure AddOns are installed
- Log in
- At the Character Select screen, look in lower left corner for the "addons" button.
- If button is there: make sure all the mods you installed are listed and make sure "load out of date addons" is checked.
- If the button is NOT there: means you did not install the addons properly. Look at the above screenshots. Try repeating the steps or getting someone who knows more about computers than you do to help.
Translations
When you download a mod, please be sure that the mod is compatible with your translation of wow. Some mods only work on the US versions, while some only work on some of the various European versions. These variations are called "Localizations".
TOC Numbers (Out of Date Mods)
When Blizzard patches WoW, they change the Interface number. This means that all mods will be "out of date" unless or until the author releases a new version for that interface. Some people go into the .toc files and update the numbers themselves, but this is STRONGLY advised against as it will cause problems locating possible incompatibilities addons. When you log into WoW after a patch, you DO NOT have to delete your interface directory. All you have to do is simply tell WoW to ignore the interface numbers and load all the mods anyway. All you have to do is, while at the "character select" screen, look in the lower left corner and click on the "addons" button. A window will pop up listing all your installed mods.
If you look in the upper left corner of that window there should be a box that says "Load Out of Date AddOns". You want to CHECK this box. Now simply go into WoW normally and all your mods should load. As of the 1.9 patch, you will have to do this after EVERY patch/update that Blizzard posts! If you encounter any problems with a mod after a patch, please be sure to let the author of the mod know so they can fix it.
See also: About "Out Of Date AddOns"
Mac Support
WoW addons are not platformed based. As such, they can be used on either Mac or PC. You can extract both .zip and .rar files on a Mac using StuffitExpander.
Directory Structure
World of Warcraft
|_ Interface
|_AddOns
|_*AddonName*
|_ *AddonName*.toc
|_ *AddonName*.xml
|_ *AddonName*.lua
|_ (possibly others as well)...