LibCombatLogFixes-1.0

194 Downloads

This is a library. It is not intended to be installed by players but instead to be used by other addon developers.

THIS LIBRARY IS EXPERIMENTAL. It probably sucks, has bugs, is going to blow up your PC and steal your plat. Use at your own risk.

LibCombatLogFixes-1.0 provides events missing from CRB combatlog:

_LCLF_UnitDied(tUnitKilled)
_LCLF_SpellAuraApplied(intSpellId, intStackCount, tTargetUnit)
_LCLF_SpellAuraAppliedDose(intSpellId, intStackCount, tTargetUnit)
_LCLF_SpellAuraRemoved(intSpellId, intStackCount, tTargetUnit)
_LCLF_SpellAuraRemovedDose(intSpellId, intStackCount, tTargetUnit)
_LCLF_SpellCastStart(strSpellName, tCasterUnit)
_LCLF_SpellCastSuccess(strSpellName, tCasterUnit)

ALL of the above fire only for units currently in combat, if and only if you registered for them BEFORE the unit entered combat.

IMPORTANT! You need to register for the events BEFORE the unit you wish to track enters combat, as we are not using UnitCreated to maintain a shred of efficiency.

CAVEATS:
1) SpellCastStart/Success will not fire for instant cast spells, but those can usually be tracked by other means (auras/damage)
2) There might be a race condition in tracking spell casts and we might be erroneously firing _LCLF_SpellCastSuccess
3) We are processing units every 4th frame, which might mean we are missing some events. If you are testing just increment MINOR revision and change it to every frame. If you don't know how, you have no business reading this anyway.

TO DO: allow filtering by unitId when registering? We hook Apollo.RegisterEventHandler anyways ...

use /lcfdemo to showcase some of the events with the attached demo addon.