This is a macro include that I whipped up a few days ago so that I could keep track of some of the more interesting stats about dots. It does *not* parse your DPS...if you want that, you can use MQ2DPS. What it does do is figure out (and save) your highest hit with a dot, your average hits, and the total damage done.
Add the inc into your macro, or running it on it's own with this macro:
The include will return a DoTparse.ini file that looks like this:
Rich (BB code):
|DoTParse.inc
|Intended to parse and save DoT damage to pump up a necro's epenis.
#event DoTDamage "#*#has taken #0# damage from your #1# Rk. #2#."
#event DoTDamage "#*#has taken #0# damage from your #1#."
#event ShowData "[MQ2] Dotdata"
#event SpecificData "[MQ2] Check #0#"
Sub Event_ShowData
/if (!${Defined[ShowDoTData]}) {
/declare ShowDoTData int outer 1
/echo Showing Dot data
/return
}
/if (${ShowDoTData}==0) {
/varset ShowDoTData 1
/echo Now Showing DoT data!
/return
}
/if (${ShowDoTData}==1) {
/varset ShowDoTData 0
/echo No longer showing DoT data!
/return
}
/return
Sub Event_SpecificData(string CheckMe)
/if (!${Defined[DoTFile]}) /declare DoTFile string local Dotparse.ini
/echo Average damage dealt by ${CheckMe}: ${Ini[${DoTFile},${CheckMe},AvgHit,0]} over ${Ini[${DoTFile},${CheckMe},NumHits,0]}
/echo High Hit: ${Ini[${DoTFile},${CheckMe},HighHit,0]}
/echo Total Damage: ${Ini[${DoTFile},${CheckMe},TotalDmg,0]}
/return
Sub Event_DoTDamage(int DamageDealt, string WhatDoT, int RankNum)
/declare AvgHit int local
/declare NumHits int local
/declare DoTFile string local Dotparse.ini
/declare HighHit int local
/declare TotalDmg int local
|====================|
|-------Varsets------|
|====================|
/varcalc TotalDmg ${Ini[${DoTFile},${WhatDoT},TotalDmg,0]}+${DamageDealt}
/varcalc NumHits ${Ini[${DoTFile},${WhatDoT},NumHits,0]}+1
/varcalc AvgHit ${TotalDmg}/${NumHits}
/varset HighHit ${Ini[${DoTFile},${WhatDoT},HighHit,1]}
|====================|
|-------Set Ini------|
|====================|
/ini "${DoTFile}" "${WhatDoT}" "NumHits" "${NumHits}"
/ini "${DoTFile}" "${WhatDoT}" "AvgHit" "${AvgHit}"
/ini "${DoTFile}" "${WhatDoT}" "TotalDmg" "${TotalDmg}"
/if (${DamageDealt} > ${Ini[${DoTFile},${WhatDoT},HighHit,0]}) /ini "${DoTFile}" "${WhatDoT}" "HighHit" "${DamageDealt}"
|====================|
|------Show Info-----|
|====================|
/if (${ShowDoTData}==1) {
/echo ${WhatDoT} did ${DamageDealt} damage!
/echo Average damage of ${WhatDoT} is ${AvgHit} over ${NumHits} hits
/echo Your hit of ${DamageDealt} is ${Math.Calc[100*(${HighHit}-${DamageDealt})/${HighHit}]}% of your highest hit with ${WhatDoT}
}
/return
Add the inc into your macro, or running it on it's own with this macro:
Rich (BB code):
#include dotparse.inc
sub main
:loop
/doevents
/goto :loop
/return
The include will return a DoTparse.ini file that looks like this:
Rich (BB code):
[Ashengate Pyre]
HighHit=3676
NumHits=127
AvgHit=1756
TotalDmg=223137
[Dread Pyre]
HighHit=4740
NumHits=82
AvgHit=1816
TotalDmg=148928
[Curse of Mortality]
HighHit=3178
NumHits=107
AvgHit=1312
TotalDmg=140452
[Horror]
HighHit=900
NumHits=34
AvgHit=701
TotalDmg=23850
[Corath Venom]
NumHits=60
AvgHit=1147
TotalDmg=68828
HighHit=2342

