HLDEMO解析

CSのデモからほしい情報を抜き出すようなものを作ろうとしてます。
いつものように途中で投げると思います。


HLDEMOのフォーマットは誰かが解析したものがここから入手できます。
https://svn.sukimashita.com/repos/hldemo/trunk/doc/

  • いつ誰が誰を倒したか
  • 時間間隔

この辺を抽出したいと考えています。
これらの情報を抽出できれば、山ほどあるデモからでもフラグシーンを見つけやすくなるでしょう。
(複数fragを出している、時間間隔が狭い, ヘッドショットが出ている等)
超反応壁抜きなどのフラグシーンは、マップデータやユニットの向き等の情報が必要なことから複雑になるので見ないことにします。
また、統計を取る上でも使えるツールに出来ると思います。
1つのデモを見るためには4倍速でも約10分程度かかりますから、こういったツールでほしい情報をすぐに得られるのは利点でしょう。


問題は、ウォーミングアップ時と試合時の区別の仕方や、途中で切断してしまった場合の扱いをどうするか、というところでしょうか。
ラウンド数がお互い0になったら前半と後半の開始を識別し、
それぞれからラウンドのカウント(15ラウンド毎16本先取)を見て、内容を判断できそうです。


POV,HLTVと共にデータブロックの切り出しは出来るようになったので、
あとはデータブロックが持つ内容を解析するぐらい。ここが一番面倒なんですけどね。