EQMac_LogAnalyzer.plThis is a script I've been working on here and there for the last year or so. It's written in Perl and reads and analyzes your log file. It's reasonable good at summarizing melee combat and tracking spells cast. You should be comfortable using
Terminal to use it, since there is no real GUI, and only one forum post for a manual.
How to Install:1.
Download Parser2. Open
Terminal3. Extract the files from where ever you saved the download, to where ever you want to run it:
Code:
tar -zxvf ~/Downloads/Parser.tgz /Applications/EverQuest/
Three files will be created:
EQMac_LogAnalyzer.pl -- This is the main program.
EQLogParser.pm -- This handle categorizing each line. Adapted from an EQLive CPAN module.
spell_table.pl -- A big database with information on almost every the spells in the game (Thanks Dwin).
How to Run:1. Open
Terminal2. Go to the directory where the script is installed:
Code:
cd /Applications/EverQuest/
3. Run the script on the file you want to parse. It will print out information about each fight it's able to identify with who did melee damage and how much. Non-melee damage is included but only for yourself and not others:
Code:
./EQMac_LogAnalyzer.pl game/eqlog_CHARNAME_52.txt | less
If you want to save everything it prints to a file named parser_results.txt run:
Code:
./EQMac_LogAnalyzer.pl game/eqlog_CHARNAME_52.txt > parser_results.txt
Now if you want to limit it to the last day (the script recognizes any of these 1w = 7d, 1d = 24h, 1h = 60m -- dont put a space between the number and units):
Code:
./EQMac_LogAnalyzer.pl -most_recent 24h game/eqlog_CHARNAME_52.txt | less
There is a filter to summarize only certain fights. For example if you only want to report fights against mobs with Zek in their name from the last half hour:
Code:
./EQMac_LogAnalyzer.pl -most_recent 30m game/eqlog_CHARNAME_52.txt -filter Zek
Or you can summarize your whole session, and not just individual fights:
Code:
./EQMac_LogAnalyzer.pl -most_recent 6h game/eqlog_CHARNAME_52.txt -stats | less
You could even summarize other players and mobs (or use "-stats all" to get summaries for everyone):
Code:
./EQMac_LogAnalyzer.pl -most_recent 1w game/eqlog_CHARNAME_52.txt -stats NAME | less
For reference, I get about 0.5MB/sec or 8000 lines/sec performance. If you want it to run in seconds instead of minutes (hours if you have a GB+ log file) you could do something like this to look at only the last 25000 lines:
Code:
tail -25000 game/eqlog_CHARNAME_52.txt | ./EQMac_LogAnalyzer.pl - -stats all
But I already use a parser:Now most of this can be done better by Era appropriate Windows/EQLive parsers. However they can't do this:
Code:
./EQMac_LogAnalyzer.pl -monitor game/eqlog_CHARNAME_52.txt
The program starts but instead of reading all the old lines, it waits for new lines to be added. In this mode you get a realtime fight summary at then end of each fight. Also, it tracks all the spells you cast and reminds you when they are going to fade. If you cast single buffs or short duration debuffs, this can be very helpful.
Todo list:1.The spell timer currently doesn't handle buff extension AA and focus. The focus items do show up in the log file, but AA would have to provided as an option. I could use some log file snippets with popular focus items to test.
2. It would be nice to estimate spell damage based on emotes, to guess what damage other casters are doing.
3. DOT damage could be estimated based on cast time, fight duration and spell database.
4. Currently there is no real mitigation analysis. A lot of the information is there, but hasn't been extracted and summarized.
5. Crit rates aren't tracked.
6. The combat parser gets confused with charmed mobs fight another mob, then suddenly turn and attack you. The log file doesn't really show which is the pet.
7. Some of the reports it dumps are ugly. I had planned to dump HTML or something that would look nicer. I even thought about writing a GUI on top, but I'm not much of a GUI programmer.
Disclaimer:This software is freely available to copy and use and redistribute. If you find a bug or make an improvement, I would appreciate if you would post back here or send me a PM so others can benefit.
Let the DPS wars begin!