Everquest Shadowknight Forums  

Go Back   Everquest Shadowknight Forums > EverQuest > Utilities

Utilities Read only forum to find helpful EQ utilities.

Reply
 
Thread Tools Display Modes
Old 04-25-2016, 06:34 PM   #1
Xanathol
Administrator
 
Xanathol's Avatar
 
Join Date: Apr 2016
Posts: 237
Rep Power: 68
Xanathol has disabled reputation
Default Xan's Parser

This is the most recent version of my parser. The older one in this forum is extremely dated.

What it isn't:

This is NOT a general, 'run all the time' parser. This is NOT a live fight parser. This is NOT a tanking / healing parser. If you just want ballpark figures on what you dps was immediately after a fight or any of the other aforementioned topics, I suggest GamParse.

What it is:

This parser is better referred to as an analyzer. It doesn't just give you your dps, spells casted, and disc used but rather tells you how much a spell, disc, etc contributed to your dps. Ever wanted to know exactly how player XYZ reached the dps they did? Or how effective that new ability is? Or the combination of abilities? Well here you go.

Because of what it does, it is slow and takes up a lot of memory because it breaks so much down. If you try to open a large log, it will probably take a very long time - if you don't run out of memory first.

Here's a snapshot of what it gives you:



It absolutely depends on the correct spells_us.txt file being loaded that matches the parse you are looking at (ie. if you review a very old parse with a current spells_us.txt, it will be messed up). If also uses a few text files that are included that you can edit in notepad and see what they do (if you want to add your own effects to watch for, set a known PC, etc).

Just unzip, load a reasonable sized log file, wait, and examine.

I will update the download as the parser is updated.
Attached Files
File Type: zip XanParseNet.zip (3.12 MB, 3 views)

Last edited by Xanathol; 04-26-2016 at 02:37 AM.
Xanathol is offline   Reply With Quote
Old 04-26-2016, 08:50 AM   #2
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Hey Xan, sent feedback also (just to test it really).

When I click the link I get invalid attachment message.
__________________
zarzac is offline   Reply With Quote
Old 04-26-2016, 09:03 AM   #3
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Interesting.

When I clicked on the paper clip beside the thread window I got a pop up window with link to zip file. When I clicked it I got the download.
__________________
zarzac is offline   Reply With Quote
Old 04-26-2016, 09:30 AM   #4
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Request :

Could you put in a Help legend lists names of the adps abbreviations used beside names?
__________________
zarzac is offline   Reply With Quote
Old 04-26-2016, 09:35 AM   #5
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Going to be all bothersome with questions.

What is "magic" is that something the parser can't attribute to an exact spell?
__________________
zarzac is offline   Reply With Quote
Old 04-26-2016, 10:43 AM   #6
Xanathol
Administrator
 
Xanathol's Avatar
 
Join Date: Apr 2016
Posts: 237
Rep Power: 68
Xanathol has disabled reputation
Default

Quote:
Originally Posted by zarzac View Post
Hey Xan, sent feedback also (just to test it really).
When I click the link I get invalid attachment message.
Thanks for catching another one! I'll try to figure this one out.

Quote:
Originally Posted by zarzac View Post
Request :
Could you put in a Help legend lists names of the adps abbreviations used beside names?
Quote:
Originally Posted by zarzac View Post
Going to be all bothersome with questions.
What is "magic" is that something the parser can't attribute to an exact spell?
Hehe I wanted to make sure attachments were working so threw this post together ASAP when I really should give a much better breakdown. I'll do that now and hopefully address your questions within.



How the parser/analyzer works (which should explain a lot of questions about it)

EQ's messaging system works in such a way that different messages come before others or after them, some give spell casting messages, some give a line of text, some give nothing at all, and all manner of in between messages.

A few Examples...

Spell crit messages come afterwards:
000327 [Fri Mar 11 21:57:04 2016] Xanathol hit Dread for 3235 points of non-melee damage.
000328 [Fri Mar 11 21:57:04 2016] Xanathol delivers a critical blast! (3235)

Melee crit messages come before:
000815 [Fri Mar 11 21:57:07 2016] Xanathol scores a critical hit! (27126)
000816 [Fri Mar 11 21:57:07 2016] You pierce Dread for 27162 points of damage.

Casting:
005110 [Fri Mar 11 21:57:24 2016] You begin casting Visage of Decay VI.
A discipline started:
011702 [Fri Mar 11 21:57:42 2016] An unholy aura envelops your body.

There's a lot more complications than that - lifetaps from weapon damages, heal messages, some procs that give no message at all when they fire and some disciplines that don't give a unique starting message or ending message to everyone.


So here's what the parser does

Every message the parser can figure out is broken down into an object with name, target, value, 'action' (slash, cast, etc) and such. When it comes to disciplines or 'effects', the parser uses the information in xaneff.info as a 'what to watch for' list. The format of the file is commented at the top of it:

// spell id abbreviation T/F for melee T/F for spells T/F for lifetap from weapon T/F for ignore duration

1. The spell ID
2. Abbreviation used (this is your legend here)
3. true / false if this affects melee damage
4. true / false if this affects spell damage
5. true / false if this generates a lifetap from weapon damage effect
6. true / false if the duration should be ignored and an end message monitored for instead.

Note that for the last one, many disciplines only send a wears off message to the person under it and no one else, meaning if you set it to true and that is the case, the effect will never end as far as the parser is concerned (hard capped at 5 minutes). On the other hand, setting it to false could lose time for those effects that may be extended.

From here, the messages that were parsed & processed are then flagged for what effects they were under at the time. After that is done, a tree structure adding up the sums is built.

Important: The more effects in the file, the longer the parsing process and the more memory it will consume!

Ex:
000815 [Fri Mar 11 21:57:07 2016] Xanathol scores a critical hit! (27126)
000816 [Fri Mar 11 21:57:07 2016] You pierce Dread for 27162 points of damage.


That alone will produce a tree view of:
Xanathol-->
-----------> pierce
---------------> critical

Where each of the three categories is tracked separately and child categories are added to the parent (heals are excluded from adding to the parent fyi), and so on.

Let's say during the fight I hit VoD and then the SK epic. Chances are I would now have:
Xanathol-->
-----------> pierce
---------------> critical
---------------> -
---------------> VoD
------------------> critical
------------------> -
---------------> VoD -SK
------------------> critical
------------------> -
---------------> SK
------------------> critical
------------------> -

So using 2 monitored effects that both last about a minute means entries for each and time they overlapped.

It should now be easy to see why the parser can take up so much memory so fast.

If there are affects you are not interested in, you can comment them out with two forward slashes. Alternatively, you can add effects as well, using the format outlined above (fields must be tab deliminated). At times, you may have to update the file as well, as spells are seldomly but sometimes given new IDs.

Moving on, the next piece I should describe is the use of the spells_us.txt file. As this changes, just copy the one from the EQ directory to wherever you have the parser. The parser will use it to look up data on a spell or disc, such as its start & wears off message, as well as try to calculate the number of hits it can deliver.

I bolded that last part as it is significant. We already know that some procs (weapon, skill, etc) produce no spell casting message. The same is true for some buffs that you can have that add casting procs (procs when you cast), for example. Some twincasts have no messages. Last but not least, the parser may not have calculated all SPAs that can add a hit as it should have.

Example - damage aura / proc while casting Touch of Falsin:
078551 [Fri Mar 11 22:00:26 2016] Your Pauldrons of the Dark Side flickers with a pale light.
078552 [Fri Mar 11 22:00:26 2016] The gift of magic fades.
078553 [Fri Mar 11 22:00:26 2016] Your Suppressed Etheric Soulrender Helm feels alive with power. 078554 [Fri Mar 11 22:00:26 2016] Xanathol hit Dread for 38162 points of non-melee damage.
078555 [Fri Mar 11 22:00:26 2016] Xanathol delivers a critical blast! (38162)
078556 [Fri Mar 11 22:00:26 2016] You deliver a critical blast! (38162)
078557 [Fri Mar 11 22:00:26 2016] Dread staggers and turns pale.
078558 [Fri Mar 11 22:00:26 2016] Xanathol performs an exceptional heal! (78054)
078559 [Fri Mar 11 22:00:26 2016] You perform an exceptional heal! (78054)
078560 [Fri Mar 11 22:00:26 2016] Xanathol hit Dread for 101920 points of non-melee damage.
078561 [Fri Mar 11 22:00:26 2016] Xanathol delivers a critical blast! (101920)
078562 [Fri Mar 11 22:00:26 2016] You deliver a critical blast! (101920)
078563 [Fri Mar 11 22:00:26 2016] Dread is burned by fire.


Note in the above that Touch crit'ed for 38162 (under 1st spire, Unholy & Carmine, I might add) but then a new DD shows up that crits for 101920 and leaves the message 'Dread is burned by fire', which sadly, is way too common among various spells to parse for.


Any of the above scenarios (and probably a few more) can lead to no known cast associated with a non-melee attack. That damage is put into magic. You can see the total number of hits, min & maxes, and use that to determine what they may have been if so inclined.


Hopefully this sheds some light on the parser and how to use it. Other things of note are:

1. If you want to export a fight, be sure to click the target name first.

2. The xanspell.info file is used to help ID classes and entries can be added via the dialog from Spells-> Aux Spell Info in the menu.

3. Some effects have the same message. In such a case, the first one defined in the effects file that matches the message is used.

4. A cool thing maybe to do is have two separate directories with the parser - one with a blank / commented out effects file and one with the full deal. Open parses with the first, export a fight, and examine with the second.


Let me know if there's any questions, requests, or bugs!

Last edited by Xanathol; 04-26-2016 at 10:51 AM.
Xanathol is offline   Reply With Quote
Old 04-26-2016, 03:32 PM   #7
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Thanks Xan that explains most everything.
__________________

Last edited by zarzac; 04-26-2016 at 03:55 PM.
zarzac is offline   Reply With Quote
Old 04-26-2016, 03:45 PM   #8
Xanathol
Administrator
 
Xanathol's Avatar
 
Join Date: Apr 2016
Posts: 237
Rep Power: 68
Xanathol has disabled reputation
Default

Quote:
Originally Posted by zarzac View Post
Thanks Xan that explains most everything.

Only question I still have is on a wizzy I see

WizzyName 292892
- magic 101625
- SpellName xxx
- SpellName xxx
- SpellName xxx
- SpellName xxx

magic has 0 casts but 106 spell hits

what does the "magic" category include?
It will be anything it could not tie specifically to a casting message. Casts are going to be 0 because it could be a proc of some sort (not actually casted by the caster).

FYI, if there's a log you'd like me to review, feel free to send it to me - there's so much for each class that I can't possibly catch 'em all.
Xanathol is offline   Reply With Quote
Old 04-26-2016, 05:21 PM   #9
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Suggestions:

Add a "timer" column in xaneff.info for each ability.

As most raid game stuff is maxed it will have a fixed time it will usually last in game. For example, you could set our epic for 1:46 or whatever it is (think that's close).

There are quite a few newer important adps things missing (IoG and RF jump out). If I get time to add those in and I'll send you back my updated info file.

One of the "magic" things was manaburn procs. Not sure how you want to do those but all those will be under the new 484 SPA. Max will be 19200 if you wanted to maybe softcode that in somewhere with a "maxManaBurnAmount=###" in a .ini or the .info file somewhere. That way you could have a "manaburn" line item for each person.

All items [SPA 484] Modify incoming spell damage by Base1 points. Applies post-crit for both instant damage and DoTs.
Differs from 297 which applies pre-crit to both instant damage and DoTs.
__________________

Last edited by zarzac; 04-26-2016 at 05:35 PM.
zarzac is offline   Reply With Quote
Old 04-26-2016, 05:25 PM   #10
zarzac
OK just this one more time
 
zarzac's Avatar
 
Join Date: Dec 2005
Posts: 1,025
Rep Power: 200
zarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond reputezarzac has a reputation beyond repute
Default

Quote:
Originally Posted by Xanathol View Post
It will be anything it could not tie specifically to a casting message. Casts are going to be 0 because it could be a proc of some sort (not actually casted by the caster).

FYI, if there's a log you'd like me to review, feel free to send it to me - there's so much for each class that I can't possibly catch 'em all.
lol you quoted me before I could delete.

When I RTFM'd again I saw where you explained magic.
__________________
zarzac is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -5. The time now is 06:46 PM.


Powered by vBulletin®
Copyright ©2000 - 2019, vBulletin Solutions, Inc.