[分享] 显示CSSTATS的TOP15的PHP程序
早就想了解csstats.dat的格式,可是官方网站现在还是提供0.93的源代码。没办法,我只好自己试验了一上午,终于知道csstats.dat的格式,发出来给大家共享,同时也写了一个PHP程序可以直接在网站显示CSSTATS的TOP15//top15.php
<table border><caption>CS排行榜</caption><tr><th>排名<th>名字<th>杀人数<th>爆头(%)<th>死<th>命中/子弹数(命中率)<th>得分(爆头*2+杀人数-死)
<?function bin2int($bin)
{return ord($bin)+ord($bin)*256;
}
$fp=fopen("D:\\HLServer\\cstrike\\addons\\amx\\csstats.dat","rb");
if(bin2int(fread($fp,2))!=5) exit("请安装CSStats 0.97");
for($i=1;$i<=15;$i++)
{if(!$namelen=bin2int(fread($fp,2))) break;//WORD名字长度(包括\0)
$player=fread($fp,$namelen-1);
fseek($fp,$namelen+3,SEEK_CUR);
$a=unpack("V15stats",fread($fp,60));
//15个DWORD依次为1?,2Damage,3Death,4Kill,5Shots,6Hits,7Headshots,8?,9head,10chest,11stomach,12leftarm,13rightarm,14leftleg,15rightleg
echo "<tr><td>$i<td>$player<td>".$a["stats4"]."<td>".$a["stats7"]."(".round($a["stats7"]/$a["stats4"]*100,1)."%)<td>".$a["stats3"]."<td>".$a["stats6"]."/".$a["stats5"]."=".round($a["stats6"]/$a["stats5"]*100,1)."%)<td>".($a["stats4"]+$a["stats7"]*2-$a["stats3"]);
}
fclose($fp);
?></table> harrypotter的那个查询地址是:
http://my.ncusc.com/cs
大家可以看看。。。 在这里可以找到csstats.dat的格式
包括amx最新版本的Source
http://cvs.sourceforge.net/viewcvs.py/amxmod/
不过有时可能连接不上~ 哈哈!找到了源代码,一下就明朗了
void RankSystem::loadRank( const char* filename )
{
FILE *bfp = fopen( filename , "rb" );
if ( !bfp ) return;
short int i = 0;
fread(&i, 1 , sizeof(short int) , bfp);
if (i == RANK_VERSION)
{
Stats d;
char unique, name;
fread(&i , 1, sizeof(short int), bfp);
while( i )
{
fread(name , i,sizeof(char) , bfp);
fread(&i , 1, sizeof(short int), bfp);
fread(unique , i,sizeof(char) , bfp);
fread(&d.tks, 1,sizeof(int), bfp);
fread(&d.damage, 1,sizeof(int), bfp);
fread(&d.deaths, 1,sizeof(int), bfp);
fread(&d.kills, 1,sizeof(int), bfp);
fread(&d.shots, 1,sizeof(int), bfp);
fread(&d.hits, 1,sizeof(int), bfp);
fread(&d.hs, 1,sizeof(int), bfp);
fread(d.bodyHits, 1,sizeof(d.bodyHits), bfp);
fread(&i , 1, sizeof(short int), bfp);
RankSystem::RankStats* a = findEntryInRank( unique , name );
if ( a ) a->updatePosition( &d );
}
}
fclose(bfp);
} nice~ 好顶呀 这里面有没有武器使用的数据? 谢谢大大的分享! 你把statme的格式也搞出来吧 我记得谁放了个statmeTOhtml的exe文件。
我看楼主也作一个吧。:)
页:
[1]
2