1 путь сложный но наиболее мощный - переписать код исходников сервака, так чтобы при старте сервере (с нуля если) он сам создает новые таблицы связанные со статистикой(например Stats_games, Stats_players, Stats_races) и потом в ходе игр сам заносит туда все результаты, ну в общем как в обычные стандартные таблицы в реалтайме. Здесь я Нубас и не шарю как там писать.
2 пусть простой я считаю. PVPGN сервер генерирует текстовые файлы с отчетом каждой игры (я называю это файлами репортов, они имею как правило формат такой gr_20040927125400_008882 ). Эти файлы выкладываются сервером в указанной bnetd.conf директории. Мы эту диру указали на том же серваке где и сама страница статистики.
Кстате вот типичный репорт:
- Код: Выделить всё
name="1x1" id=#008882
clienttag=SEXP type="melee" option="normal"
created="Mon Sep 27 12:39:15 GMT" started="Mon Sep 27 12:53:57 GMT" ended="Mon Sep 27 12:54:00 GMT"
mapfile="<WCG>The Lost Temple" mapauth="Self-Made" mapsize=128x128 tileset="Unknown"
joins=2 maxplayers=4
host=212.115.227.12:6112
babu WIN rating=1030 [#00318] prob=46.8% K=50 adj=+31
Black_Dancer LOSS rating=1052 [#00241] prob=53.2% K=50 adj=-26
<map><WCG>The Lost Temple</map>
<race>Zerg</race>
<time>860</time>
<score overall="27035" units="13250" structures="2255" resources="11530"/>
<units score="13250" produced="99" killed="36" lost="53"/>
<structures score="2255" constructed="6" razed="4" lost="1"/>
<resources score="11530" gas="2392" minerals="9138" spent="9725"/>
<map><WCG>The Lost Temple</map>
<race>Protoss</race>
<time>856</time>
<score overall="26675" units="13475" structures="3550" resources="9650"/>
<units score="13475" produced="41" killed="53" lost="36"/>
<structures score="3550" constructed="29" razed="1" lost="4"/>
<resources score="9650" gas="1976" minerals="7674" spent="8960"/>
babu's normal record is now 0/0/0 (0 draws)
Black_Dancer's normal record is now 0/0/0 (0 draws)
babu's standard ladder record is now 2/0/0 (rating 1061 [#00223]) (0 draws)
Black_Dancer's standard ladder record is now 2/2/0 (rating 1026 [#00340]) (0 draws)
This game lasted 0 minutes (elapsed).
Что делаю я?
Беру пишу парсер вот такого текстового файлика. Разбираю где значения а где названия. Значения заношу в предварительно придуманную таблицу базы. Я разделил структура записи на общую статистику игры и детальну по игрокам. Короче говоря отпарсил я файлик, удалил и все!