Minion Beta! - Help us test our new AddOn updater. Get it now!
Download
(13 Kb)
Download
Updated: 07-03-10 06:20 PM
Pictures
File Info
Updated:07-03-10 06:20 PM
Created:08-14-09 10:53 AM
Downloads:33,957
Favorites:40
MD5:
Fiend Damage Meters  Popular! (More than 5000 hits)
Version: 3.3.5-9
by: zariel [More]
Fiend - Damage Meters

I started raiding and wanted to see how my damage compared to the rest of the raid, my old damage meter Violation is great, does everything I want it to but it still uses Ace2. Which is the only addon which uses it so its pulling in huge dependencies which I dont want.

So I figured i'd write my own and keep it as simple as I can and not go crazy with features. Enjoy!

I recomend using LDB with some sort of display so you can access the menu to hide and show windows.


News

Latest version (3.3.3-7) Adds initial support for DPS! Please go test it and tell me how accurate it is. It tracks it while your in combat, ie hit something in the past 5 seconds. It resets AFTER you enter combat again, so you can view the meters. THeres a switch in core.lua to turn it off and have simple damage tracking back, as DPS is a bit of a hack around.


Features

Is able to track:
  • Damage
  • Healing
  • Overhealing
  • DPS
  • Simple Design
  • No External Libaries
  • Low Memory usage
  • Flexible design
  • No in-game config
  • LDB Feed

Also the config is all in core.lua


Config
Here is an example of how to use it, all in core.lua:73.

Code:
	-- Displays are the windows
	local win = self:NewDisplay("main")
	-- View syntax:
	-- Display:NewView(String name, String[] events, int barSize, int[]
	-- headerColor, int[] barColor)
	-- Only name, events and size are required.
	local damage = win:NewView(L["Damage"], {
		"SWING_DAMAGE",
		"RANGE_DAMAGE",
		"SPELL_DAMAGE",
		"SPELL_PERIODIC_DAMAGE",
	}, 16, { 0.6, 0.2, 0.2 })

	local heal = win:NewView(L["Healing"], { "SPELL_HEAL", "SPELL_PERIDOIC_HEAL" }, 16, { 0.2, 0.6, 0.2 })

	local overHeal = win:NewView(L["OverHealing"], { "SPELL_HEAL", "SPELL_PERIDOIC_HEAL" }, 16, { 0.2, 0.6, 0.5 })
	overHeal.overHeal = true

Dev


Dev is done at GitHub which the master branch should be stable, submit patches or just fork it, try to keep my coding style please. I accept patches and feature requests!


Translations
  • Korean (Thanks Bruteforce!)
  • Russian (Thanks Allez!)


Please report bugs + feature requests!


Click here to lend your support!
Optional Files (0)


Archived Files (5)
File Name
Version
Size
Author
Date
3.3.3-8
11kB
zariel
06-21-10 08:00 AM
3.3.3-7
11kB
zariel
06-20-10 09:24 AM
3.3.3-6
10kB
zariel
06-18-10 05:42 AM
3.3.3-5
9kB
zariel
06-17-10 07:24 AM
3.3.3-4
9kB
zariel
04-21-10 05:39 AM


Post A Reply Comment Options
Unread 04-21-10, 02:25 PM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Originally posted by Sec
Right now, if I mouse over my Damage bar, DPS continually reads out as "lal". "lal" is present in display.lua, roughly on line 20. So, I cannot provide Fiend's DPS estimates.

Target dummy. Pet on passive. Auto shots used.

1 auto shot:
Skada: 783 Damage - 3 seconds combat, 261 DPS.
Fiend: 783 Damage - Output to /guild does not state DPS/combat times.

5 auto shots:
Skada: 3233 Damage.
Fiend: 3233 Damage.

Target dummy. Pet on defensive (does fight). Auto shots used.

5 auto shots:
Skada: 8850 Damage - 20 seconds combat, 442.5 DPS.
Fiend: 8850 damage. Output to /guild does not state DPS/combat times.

If "lal" was instead stating DPS values, there is a chance DPS is not as varied from what it used to be, depending on what (if anything) was changed to damage and DPS formulations.

When testing in actual combat, the damage recorded by Fiend is different from what Skada records. This may be because Skada stays in recording mode a bit longer than Fiend - more of a guess, since I cannot see combat times for Fiend when using the Output option.
I will have to provide a screenshot when I am done with my UI.
Yeah ive got rid of DPS tracking till i get it accurate enough, Lal is just a place holder ^^
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 10:49 AM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 175
Uploads: 0
Originally posted by zariel
For one Fiend doesnt track overdamage (its useless ?) ie, hitting the dummy will net you 1 dps. The latest version if you output (just print to screen) it will tell you how long they have been in combat for. Id be interested in screenshots, do like to see how other people like to have stuff setup
Right now, if I mouse over my Damage bar, DPS continually reads out as "lal". "lal" is present in display.lua, roughly on line 20. So, I cannot provide Fiend's DPS estimates.

Target dummy. Pet on passive. Auto shots used.

1 auto shot:
Skada: 783 Damage - 3 seconds combat, 261 DPS.
Fiend: 783 Damage - Output to /guild does not state DPS/combat times.

5 auto shots:
Skada: 3233 Damage.
Fiend: 3233 Damage.

Target dummy. Pet on defensive (does fight). Auto shots used.

5 auto shots:
Skada: 8850 Damage - 20 seconds combat, 442.5 DPS.
Fiend: 8850 damage. Output to /guild does not state DPS/combat times.

If "lal" was instead stating DPS values, there is a chance DPS is not as varied from what it used to be, depending on what (if anything) was changed to damage and DPS formulations.

When testing in actual combat, the damage recorded by Fiend is different from what Skada records. This may be because Skada stays in recording mode a bit longer than Fiend - more of a guess, since I cannot see combat times for Fiend when using the Output option.
I will have to provide a screenshot when I am done with my UI.
Last edited by Sec : 04-21-10 at 11:51 AM.
Sec is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 10:36 AM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Originally posted by ac3r
perfect addon for minimalistic interfaces

hope the tracked data arent such much different from recount or skada.
someone has test this already?

edit: ah found a test some posts before. looks like fiend forget some things!?
Fiend doesnt track over hits and resists.

So if you hit for 10k, resists 2500, overkill 500 fiend will say you did 7k damage. Because you did.
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 08:28 AM  
ac3r
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 27
Uploads: 1
perfect addon for minimalistic interfaces

hope the tracked data arent such much different from recount or skada.
someone has test this already?

edit: ah found a test some posts before. looks like fiend forget some things!?
Last edited by ac3r : 04-21-10 at 08:30 AM.
ac3r is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 07:36 AM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Originally posted by mightily
Nope, not loaded !

edit: added it and that made main window update correctly too, might want to embed LibStub then keep up the good work
Change line 71 to this,
Code:
ldb = LibStub and LibStub("LibDataBroker-1.1", true)
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 07:18 AM  
mightily
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 3
Originally posted by zariel
Is LibStub loaded?
Nope, not loaded !

edit: added it and that made main window update correctly too, might want to embed LibStub then keep up the good work
Last edited by mightily : 04-21-10 at 07:22 AM.
mightily is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 07:01 AM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Originally posted by mightily
First login is fine, apart from first window with damage doesn't update if you don't go to healing/overhealing and then back, however if I reload ui, this error is shown:

Code:
Message: Interface\AddOns\Fiend\core.lua:75: attempt to call global 'LibStub' (a nil value)
Time: 04/21/10 14:56:37
Count: 1
Stack: Interface\AddOns\Fiend\core.lua:75: in function <Interface\AddOns\Fiend\core.lua:40>
(tail call): ?

Locals: self = <unnamed> {
 PARTY_MEMBERS_CHANGED = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 ADDON_LOADED = <function> defined @Interface\AddOns\Fiend\core.lua:40
 0 = <userdata>
 printNum = 10
 PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\Fiend\roster.lua:78
 displays = <table> {
 }
 NewDisplay = <function> defined @Interface\AddOns\Fiend\display.lua:282
 IsPet = <function> defined @Interface\AddOns\Fiend\roster.lua:119
 IterateUnitRoster = <function> defined @Interface\AddOns\Fiend\roster.lua:132
 AddPet = <function> defined @Interface\AddOns\Fiend\roster.lua:127
 UNIT_PET = <function> defined @Interface\AddOns\Fiend\roster.lua:89
 RAID_ROSTER_UPDATE = <function> defined @Interface\AddOns\Fiend\roster.lua:62
 COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\Fiend\core.lua:102
 ZONE_CHANGED_NEW_AREA = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 GetUnit = <function> defined @Interface\AddOns\Fiend\roster.lua:123
}
name = "Fiend"
win = <table> {
 views = <table> {
 }
 menu = <table> {
 }
 numViews = 3
 currentView = <table> {
 }
 frame = FiendDamagemain {
 }
 dropDown = FiendDropDown {
 }
 events = <table> {
 }
}
damage = <table> {
 total = 0
 isActive = true
 dirty = true
 title = "Damage"
 guids = <table> {
 }
 display = <table> {
 }
 bars = <table> {
 }
 bg = <table> {
 }
 size = 16
}
heal = <table> {
 total = 0
 title = "Healing"
 guids = <table> {
 }
 display = <table> {
 }
 bars = <table> {
 }
 bg = <table> {
 }
 size = 16
}
overHeal = <table> {
 overHeal = true
 total = 0
 title = "OverHealing"
 guids = <table> {
 }
 display = <table> {
 }
 bars = <table> {
 }
 bg = <table> {
 }
 size = 16
}
(*temporary) = nil
(*temporary) = "LibDataBroker-1.1"
(*temporary) = true
(*temporary) = "attempt to call global 'LibStub' (a nil value)"
ldb = nil
addon = <unnamed> {
 PARTY_MEMBERS_CHANGED = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 ADDON_LOADED = <function> defined @Interface\AddOns\Fiend\core.lua:40
 0 = <userdata>
 printNum = 10
 PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\Fiend\roster.lua:78
 displays = <table> {
 }
 NewDisplay = <function> defined @Interface\AddOns\Fiend\display.lua:282
 IsPet = <function> defined @Interface\AddOns\Fiend\roster.lua:119
 IterateUnitRoster = <function> defined @Interface\AddOns\Fiend\roster.lua:132
 AddPet = <function> defined @Interface\AddOns\Fiend\roster.lua:127
 UNIT_PET = <function> defined @Interface\AddOns\Fiend\roster.lua:89
 RAID_ROSTER_UPDATE = <function> defined @Interface\AddOns\Fiend\roster.lua:62
 COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\Fiend\core.lua:102
 ZONE_CHANGED_NEW_AREA = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 GetUnit = <function> defined @Interface\AddOns\Fiend\roster.lua:123
}
OnUpdate = <function> defined @Interface\AddOns\Fiend\core.lua:12
Is LibStub loaded?
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 07:00 AM  
mightily
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 4
Uploads: 3
First login is fine, apart from first window with damage doesn't update if you don't go to healing/overhealing and then back, however if I reload ui, this error is shown:

Code:
Message: Interface\AddOns\Fiend\core.lua:75: attempt to call global 'LibStub' (a nil value)
Time: 04/21/10 14:56:37
Count: 1
Stack: Interface\AddOns\Fiend\core.lua:75: in function <Interface\AddOns\Fiend\core.lua:40>
(tail call): ?

Locals: self = <unnamed> {
 PARTY_MEMBERS_CHANGED = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 ADDON_LOADED = <function> defined @Interface\AddOns\Fiend\core.lua:40
 0 = <userdata>
 printNum = 10
 PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\Fiend\roster.lua:78
 displays = <table> {
 }
 NewDisplay = <function> defined @Interface\AddOns\Fiend\display.lua:282
 IsPet = <function> defined @Interface\AddOns\Fiend\roster.lua:119
 IterateUnitRoster = <function> defined @Interface\AddOns\Fiend\roster.lua:132
 AddPet = <function> defined @Interface\AddOns\Fiend\roster.lua:127
 UNIT_PET = <function> defined @Interface\AddOns\Fiend\roster.lua:89
 RAID_ROSTER_UPDATE = <function> defined @Interface\AddOns\Fiend\roster.lua:62
 COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\Fiend\core.lua:102
 ZONE_CHANGED_NEW_AREA = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 GetUnit = <function> defined @Interface\AddOns\Fiend\roster.lua:123
}
name = "Fiend"
win = <table> {
 views = <table> {
 }
 menu = <table> {
 }
 numViews = 3
 currentView = <table> {
 }
 frame = FiendDamagemain {
 }
 dropDown = FiendDropDown {
 }
 events = <table> {
 }
}
damage = <table> {
 total = 0
 isActive = true
 dirty = true
 title = "Damage"
 guids = <table> {
 }
 display = <table> {
 }
 bars = <table> {
 }
 bg = <table> {
 }
 size = 16
}
heal = <table> {
 total = 0
 title = "Healing"
 guids = <table> {
 }
 display = <table> {
 }
 bars = <table> {
 }
 bg = <table> {
 }
 size = 16
}
overHeal = <table> {
 overHeal = true
 total = 0
 title = "OverHealing"
 guids = <table> {
 }
 display = <table> {
 }
 bars = <table> {
 }
 bg = <table> {
 }
 size = 16
}
(*temporary) = nil
(*temporary) = "LibDataBroker-1.1"
(*temporary) = true
(*temporary) = "attempt to call global 'LibStub' (a nil value)"
ldb = nil
addon = <unnamed> {
 PARTY_MEMBERS_CHANGED = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 ADDON_LOADED = <function> defined @Interface\AddOns\Fiend\core.lua:40
 0 = <userdata>
 printNum = 10
 PLAYER_ENTERING_WORLD = <function> defined @Interface\AddOns\Fiend\roster.lua:78
 displays = <table> {
 }
 NewDisplay = <function> defined @Interface\AddOns\Fiend\display.lua:282
 IsPet = <function> defined @Interface\AddOns\Fiend\roster.lua:119
 IterateUnitRoster = <function> defined @Interface\AddOns\Fiend\roster.lua:132
 AddPet = <function> defined @Interface\AddOns\Fiend\roster.lua:127
 UNIT_PET = <function> defined @Interface\AddOns\Fiend\roster.lua:89
 RAID_ROSTER_UPDATE = <function> defined @Interface\AddOns\Fiend\roster.lua:62
 COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\Fiend\core.lua:102
 ZONE_CHANGED_NEW_AREA = <function> defined @Interface\AddOns\Fiend\roster.lua:70
 GetUnit = <function> defined @Interface\AddOns\Fiend\roster.lua:123
}
OnUpdate = <function> defined @Interface\AddOns\Fiend\core.lua:12
mightily is offline Report comment to moderator  
Reply With Quote
Unread 04-21-10, 05:41 AM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Originally posted by bluenjoy
Hi,

Great little dps addon you have here. I'm curious though as to how I can make it visible again after I hide it?
Good quest, reloading your interface will do it, ill fix that later.

In the newest version ive added support for multiple windows, with each having seperate displays.

Windows are created like this,

Code:
local win = self:NewDisplay("main")
A display on that window (which i can views) are created like so

Code:
	-- Viewsyntax:
	-- Display:NewView(String name, String[] events, int barSize, int[]
	-- headerColor, int[] barColor)
	-- Only name, events and size are required.
	local damage = win:NewView("Damage", {
		"SWING_DAMAGE",
		"RANGE_DAMAGE",
		"SPELL_DAMAGE",
		"SPELL_PERIODIC_DAMAGE",
	}, 16, { 0.6, 0.2, 0.2 })
Stick this around line 50 in core.lua
Last edited by zariel : 04-21-10 at 05:41 AM.
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-20-10, 04:11 PM  
bluenjoy
A Deviate Faerie Dragon
 
bluenjoy's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 13
File comments: 55
Uploads: 1
Hi,

Great little dps addon you have here. I'm curious though as to how I can make it visible again after I hide it?
__________________
-Biggie
bluenjoy is offline Report comment to moderator  
Reply With Quote
Unread 04-20-10, 02:07 AM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Originally posted by Sec
Zariel, thank you for letting me know which lines to adjust. Things are now scaled for the changes in font face and size!

I noticed something just now, when looking between Skada and Fiend.

Skada recorded 9760 damage done, in 4 seconds of combat. The segment itself was recoded 6 seconds overall.

Fiend recorded 9416 damage done (no seconds stated).

Skada gave a DPS of 2440.

Fiend gave a DPS of 2088.

Hopefully this insight may provide aid to figuring out the varying DPS values recorded.
For one Fiend doesnt track overdamage (its useless ?) ie, hitting the dummy will net you 1 dps. The latest version if you output (just print to screen) it will tell you how long they have been in combat for. Id be interested in screenshots, do like to see how other people like to have stuff setup
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-19-10, 02:05 PM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 175
Uploads: 0
Zariel, thank you for letting me know which lines to adjust. Things are now scaled for the changes in font face and size!

I noticed something just now, when looking between Skada and Fiend.

Skada recorded 9760 damage done, in 4 seconds of combat. The segment itself was recoded 6 seconds overall.

Fiend recorded 9416 damage done (no seconds stated).

Skada gave a DPS of 2440.

Fiend gave a DPS of 2088.

Hopefully this insight may provide aid to figuring out the varying DPS values recorded.
Sec is offline Report comment to moderator  
Reply With Quote
Unread 04-19-10, 06:46 AM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
Im going to refactor a lot of the code to implament that, I will get round to it. I know the DPS is inacurate but I dont know why, all it does is this. OnUpdate every 0.1 seconds (was throttled but now isnt) we loop through all bars and check if that unit is affecting combat, if yes we add the time since last update. The DPS is then calculated by total damage / timeInCombat.

I cant see how Skada does it from a quick look.

The red bar is part of the background defined at core.lua:92
The bar size is set during the init of the display, its the second arg to self.Display, eg at core.lua:152
Last edited by zariel : 04-19-10 at 06:49 AM.
zariel is offline Report comment to moderator  
Reply With Quote
Unread 04-18-10, 08:24 PM  
Sec
A Cyclonian
 
Sec's Avatar

Forum posts: 48
File comments: 175
Uploads: 0
In testing so far, I have not come across any errors (with default error logging turned on). Thank you so much for releasing an update.

As per feature requests, I will post here, and cross-post in the feature request form. ^^"

1) If there is a way to truncate server names (to save space), an option for this would be greatly appreciated. A simple true/false at the top of the .lua file would be sufficient, to keep memory usage down. ^^"

2) A DPS mode would be awesome. In comparing, I see that the DPS values are rather off compared to something like Skada (and I am sure Skada differs from Omen). So, if it would not be too much effort to make DPS more accurate, and allow us to view a DPS mode, I would be greatly obliged.

3) I second Skylinee's suggestion for spawning more than one window, or auto-switching to "current fight". Hopefully, this would not take up too much memory.


Finally, I had a couple of questions. I am trying to alter the appearance slightly.

1) I cannot figure out what line(s) I'd need to change to make the graph bars thinner as I had changed the font face and size. May you please advise me?

2) Likewise, what line(s) would I need to change to thin the red title bar?


Thank you so much for providing the fix and further, for maintaining work on this addon.
Sec is offline Report comment to moderator  
Reply With Quote
Unread 04-18-10, 02:30 PM  
zariel
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 94
Uploads: 14
I think i fixed all the UnitClass errors. Please test
zariel is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.