Numeration Damage Meter

It aims to be as memory and cpu efficient as possible for the data it stores.
I have used it for a long time, but never polished it enough to release it to the general public, mainly because of the lack of ingame configuration options. It still has a long way to go in that regard, so please don't bitch if you don't find all the options that you think should be there (or any at all -.-).
You can watch a really old version of it in action here: http://www.youtube.com/watch?v=f_yoYs0teSo. The code has been rewritten a lot since then, but the appearance did not change too much.

Report (no gui elements for this yet so top 9 are always being reported, except you report by clicking with the middle button on one of the bars, then all lines up to the selected bar are being reported)

Automatically hides in battleground/arena if "Record Only In Instances" is activated

Always shows the current segment that is being viewed in the titlebar ("O" = Overall, "C" = Current or a Number for the segmentnumber)

If a bar represents a spell, the tooltip of the spell is shown upon mouseovering the bar

Not Supported and probably won't be included in the future

Multiple windows with different views/modes

Spell Details like hits/crits/misses/(partial) resists and so on

Navigation
The navigation system is mainly inspired by Assessment, which is also used by the Skada Damage Meter addon.
The basic idea:

Left-click: get more detailed information about the content of the bar under the mouse

Right-click: go back to the previous layer

The first layer of navigation shows all fight-segments to choose from (also "overall" and "current fight"), leftclick one to view all available Modes. After choosing a Mode by leftclicking it, you can see the first overview. Left-clicking further will give you more information about the selected item as long as there is something else available. Right-clicking anywhere will bring you back to the previous layer. You can always go back directly to the segment-selection layer by clicking on the "current viewed segment indicator" in the topright corner of the window.
Scrolling is done with the mousewheel.
To move the window: click&drag the left mousebutton while pressing the alt-key.
To open the dropdown menu: just click the arrow-thingie in the topright corner of the window.

Appearance customization
Unfortunately none of the options to customize the appearance of the main window can be found ingame. They are only available to you if you know how to use an editor to open the Config.lua file, found in the addon folder.
I think every option there should be pretty much self-explanatory. And in case you where wondering why nothing happens when you change the "pos" option in that file: Once you used alt+leftclick drag to move the window, the coordinates are being read from the savedvariables. In order to use the ones in this file again, you have to delete the character-specific savedvariables for Numeration.

Obviously i'm trying to improve it even further, so if you have any bug reports or suggestions, post away, but no promises on implementing features fast (or at all if I don't like them ).

1.3.8
* fixed a small glitch with new option for shorter values, when dps values where smaller than 1000

1.3.7
* fix assigning of elementals to shamans. blizzard broke sequence of events in combatlog, so this fix is kind of hacky and possibly does not work in every case :(
* added the ability to display numbers in a shorter form, as they are getting quite large (thanks raqi)
* added the option of changing the button highlight color

1.3.4
* fixed to work with 4.1
* added support for SpamageMeters (but SpamageMeters also needs an update, don't know when/if it will be updated soon)
* added "Healing Taken" mode, is disabled by default (see Config.lua)

1.3.2
* fix nil error when manually resetting using the popup on the mainwindow

1.3.1
* deathlog detail now supports reporting
* throttle showing of reset dialog when option "log only in instances" is disabled
* new feature: middle mouse button is now the "report until this bar"-trigger. this way you can now choose how many lines should be reported

1.3
* added bossIds from cataclysm raids [Baradin Hold, Blackwing Descent, Throne of the Four Winds, Bastion of Twilight]
* keep segment logging when dead. keeps segments from splitting in fights where you die and there is a phaseswitch with no combat for more than 3 seconds.
* changed absorb system from guessed heuristics to the new blizzard event mechanics

1.2.2
* updated absorb ids from 4.0.1 (added Blood Shield (DK), Illuminated Healing (Pa), Power Word: Barrier (Pr), Nether Ward (WL))
[ i'd love to change the absorb system to the new 4.0 combat log events so they are not guessed any more, but the system only works with Power Word: Shield, Divine Aegis, Illuminated Healing and Anti-Magic Shell (kinda) .. so i'm holding back on that until i have a hybrid solution which seems to be complicated to implement or until blizzard "fixes" it ]

1.1.2
* added the ability to report to the officer chat
* fixed a bug that prevented periodic power gains from being collected

1.1.1
* oops, forgot to embed CallbackHandler-1.0 when including libdatabroker

1.1
* added basic support for !ClassColors (when changing colors with it ingame, you have to reload ui for numeration to adapt)
* added key binding options for visibility toggle and reset data
* extracted all the config possibilities to Config.lua for easier access to all options
* added additional options to the window appearance: alpha of background/title/lines and the scrollbar can now be hidden
* it is now possible to remove unneeded modes completely (collecting and viewing), but only via lua: edit the "n.types"-table in Config.lua. you can also rearrange them, change their name and bar(+title)color. This made the ingame option to disable deathlog recording obsolete and has been removed.
* fixed a small bug that prevented segment selection view from being updated during combat
* added monitoring of DAMAGE_SPLIT and ENVIRONMENTAL_DAMAGE cl-events, oops

1.0.2
* fixed a nil error on clean install or data reset that i introduced with 1.0.1

1.0.1
* changed Mana Gains to Power Gains
* added libdatabroker feed with personal dps from "current" segment
* added toggleable minimap icon with the ability to toggle visibility of the main window and reset data on click

Originally posted by Theondry It mushed together some fights which were pulled rapidly together but wherein the "in-combat" flag dropped.

Could you please add this as another way to separate events?

when did this exactly happen? i know i had a few issues with damage not being included into the right segment when closing a segment immediately after combat drops and was trying to prevent that from happening. keep in mind you can always change the allowed idle time before a new segment gets created by changing combatseconds in the "n.coresettings"-table of the Config.lua file. The default value is 3 seconds.
at the moment when combat drops it waits an additional 3 seconds for further damage events before creating a new fightsegment. i might change that mechanism to only wait 3 seconds from the last damage event, so when the combat drops significantly later than the last damage event occured it won't wait as long (or not at all if the last combat event was more that 3 seconds ago), but i don't think i'll change it to always immediately create a new segment when combat drops, because that will cause more problems than it solves imho.

Originally posted by nekoh I don't know how Recount measures the length of the fight.
Numeration sets the starttime of a fightsegment to the timestamp of the first damage done or damage taken event by anyone in your group. The endtime is being set to the timestamp of the last damage in/out event when there is no further damage taken or done for 3 additional seconds (and obviously the player is not in combat, i may add a check for if the player is dead to also not prematurely terminate a segment, but not decided yet). I don't see any problems with this algorithm and probably won't change it. But i also don't think this has anything to do with your problem, because the fightlength is not being used when calculating dps. See below for the formula and idea behind it.

And again, i don't know how Recount measures the dps .
Here's how Numeration does it: every player of your group has his own dps time, that's the time from his first to his last damage event. But whenever this player is idle (does not have a damageevent) for more than 5 seconds, this gap between the two successive events is being subtracted from and 1 second is being added to the dps time to account for a possible cast time.
I know that this algorithm is far from perfect and can be discussed, but i wont implement an algorithm that takes the length of the fightsegment because that doesn't represent the active time of each player well at all, even if recount does that (and i don't think it does).
Keep in mind that the active dps and the active heal time are being calculated individually by using their own events.

Thanks for your answer. After test, it appears that the dps don't match in donjons but in raid that's the correct dps, so it's ok, really good addon

__________________Yesterday is a story,today is a gift and tomorrow is a mystery

Originally posted by nekoh if it already looks great, you don't have to

yeah exactly. after clicking on a mob you'll see who did how much damage to that particular mob. you won't see which spells they used for this mob, because it's not (and won't ever be) collected on a per mob basis. Keep in mind that this mode is not available for the overall data, as it's only being recorded for individual fightsegments.

That's awesome thanks, so far I love it, impressed you can keep the resource usage so low even with the death log enabled.

Originally posted by Holyana Really looks great, but I'm just not into editing Lua.

if it already looks great, you don't have to

Originally posted by creepy_inc Hmm maybe I'm looking at it the wrong way, so you're saying each mob in a boss fight will show up and you can click the mob to see who damaged and how damage they did to it?

Really looking promising, keep up the good work!

Edit: i think I see it now, gonna test tonight.

yeah exactly. after clicking on a mob you'll see who did how much damage to that particular mob. you won't see which spells they used for this mob, because it's not (and won't ever be) collected on a per mob basis. Keep in mind that this mode is not available for the overall data, as it's only being recorded for individual fightsegments.

Originally posted by sivid13 [..] I have a problem though, when running it side by side with Recount, the combat timers don't match, which means dps numbers don't match. On my server everyone uses Recount, so I was wondering if there's any way to modify Numeration so that its output is the same. [..]

I don't know how Recount measures the length of the fight.
Numeration sets the starttime of a fightsegment to the timestamp of the first damage done or damage taken event by anyone in your group. The endtime is being set to the timestamp of the last damage in/out event when there is no further damage taken or done for 3 additional seconds (and obviously the player is not in combat, i may add a check for if the player is dead to also not prematurely terminate a segment, but not decided yet). I don't see any problems with this algorithm and probably won't change it. But i also don't think this has anything to do with your problem, because the fightlength is not being used when calculating dps. See below for the formula and idea behind it.

Originally posted by Arodin Lame-Soleil [..] But... Your dps don't match with the dps of recount... I have +- 1k of difference :/ It's my only problem [..]

And again, i don't know how Recount measures the dps .
Here's how Numeration does it: every player of your group has his own dps time, that's the time from his first to his last damage event. But whenever this player is idle (does not have a damageevent) for more than 5 seconds, this gap between the two successive events is being subtracted from and 1 second is being added to the dps time to account for a possible cast time.
I know that this algorithm is far from perfect and can be discussed, but i wont implement an algorithm that takes the length of the fightsegment because that doesn't represent the active time of each player well at all, even if recount does that (and i don't think it does).
Keep in mind that the active dps and the active heal time are being calculated individually by using their own events.

Originally posted by silverwind Some suggestions:
- Support for ClassColors. If it's not present you can just use the global RAID_CLASS_COLORS instead of your current table.
- Use SI-Units for the big raw damage/healing numbers.
- An option in Window.lua to set window/title backdrop alpha
- I don't think the Scollbar is really needed to be honest, I can navigate through the skada menus just fine without it.

implemented a lot of this. don't like the SI-Units for big numbers though, sorry

Originally posted by eye_of_fire thx for the show/hide button!
Is it possible to config the lua that I can set a special button for that action and hide the mini-map button ;-)

hope the new bindings are enough, but you can also set up a macro with "/run Numeration:ToggleVisibility()" if you just want it on your actionbar

I have a problem though, when running it side by side with Recount, the combat timers don't match, which means dps numbers don't match. On my server everyone uses Recount, so I was wondering if there's any way to modify Numeration so that its output is the same.