• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

DoTparse.inc

thez

Well-known member
Joined
Jan 9, 2006
RedCents
220¢
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.

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
 
thez can you add something to calculate total of dmg from all dots to this? It works awesome and im lazy to calculate it myself.
 
Add the following things:

Rich (BB code):
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
/declare TotalDoTDmg int local

|====================|
|-------Varsets------|
|====================|
/varcalc TotalDoTDmg ${Ini[${DoTFile},Totals,0]}+${DamageDealt}
/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}" "Totals" "TotalDmg" "${TotalDoTDmg}"
/ini "${DoTFile}" "${WhatDoT}" "NumHits" "${NumHits}"
/ini "${DoTFile}" "${WhatDoT}" "AvgHit" "${AvgHit}"
/ini "${DoTFile}" "${WhatDoT}" "TotalDmg" "${TotalDmg}"

That'll only record to the INI file, not make the stats available in the echoing part. You can always Checkme the stats, too.
 
MQ2DPS sucks for DoTs. I can promise you, my Necro with maxed DoT and DD AAs does NOT get the 132 dps with my five best DoTs as it reports. Hell, when my best DoT crits for over 2400 dmg, you can divide that by six seconds and still come out with 400 dps...and that is just one DoT - not to mention the other four I have going. The only time MQ2DPS is accurate is upon the first tick of the first DoT...then it is shit from there. Maybe it works for melee better, but since DoTs only report damage every 6 seconds, I think it is totally off.
 
MQ2DPS takes your total damage and divides that by the total time the mob was engaged to determine DPS. It is pretty accurate if you're soloing. You just have to be sure you're in range when you kill the mob to see the "You have slain Soandso".
 
You should also make sure that you have absolute dmg to false. If you don't it sends the DPS reports to shit.
 
DoTparse.inc

Users who are viewing this thread

Back
Top
Cart