Ok, made a version that has a slight edit to it, to make it easier to see what we have to work with. Rather then print the stuff to a console, it dumps it all into a text file the name of the demo file. The program don't have anything to update you on its progress, but it should be working working fine. Can take a good minute or two to work with larger replays. The changed files are included in the zip file, along with a rebuilt version of the executable for Windows.
http://dl.dropbox.com/u/3496710/Game...nfo2Update.zip
You realize you can just do "demoinfo2.exe 12345.dem > output.txt" right?![]()
I made some minor changes to make it compile on OS X. Repo is on github: https://github.com/mitsuhiko/dota2-demoinfo2
It should also compile on linux. Just make sure that protobuf and snappy are installed. Same goes for OS X. If you have brew just "brew install snappy" and "brew install protobuf". Then compile with "make".
@Zoid: I also found a bug with the original code. There is a broken printf statement in the code:
DebugString() returns a std::string and not a char*, so a .c_str() is necessary there.Code:'printf( "%s", msg.DebugString() );'
http://screensnapr.com/v/qUh10t.png It trashes 100% of disk IO and you can barely review the output. Without recompiling it into only useful output this is pointless, 10x 100MB = 1GB upload per 10 replays. I hope some smart coders will be kind enough to share there final parser for other leagues, not being a coder and giving this mess to paid programmers would cost a fortune to make a decent parser.
Also if only greed runs you, send me a PM after you are done with your final work, maybe we will be able to negotiate on some donation for your work that I would be interested in purchasing.
Just some questions on what the parser can do, as I am a noob with these kind of things.
-Can it parse GPM/XPM values for a specific minute in the game? If yes, there could be charts for which hero has which GPM/XPM at which point in the game, which should be interesting.
-Does it parse how much gold someone lost when using buyback/on death? Would be nice to know how much the total Gold Lost is for a really long game with several buybacks. (This should be in the ingame Observer/replay interface too by the way)
I took a look at it and it looks like its dumping information about every tick in the game. For example,
So far I've only been able to get the match details like player names and their heroes and game mode/winner etc. This is found at the end of the replay file that I dumped for anyone that is interested. I've not been able to dump end game data other than the winner so far. If anyone else can figure out how to dump out data like cs/kd/gpm/xpm it'd be nice.Code:==== #38040: Tick:75968 'DEM_Packet' Size:951 UncompressedSize:1149 ====
And a 25 something mb replay file when dumped will be like 125 mb so its a bit inconvenient imo, atleast for parsers that only want to get end game info.