|
楼主 |
发表于 2005-8-1 00:38:19
|
显示全部楼层
来自 中国–安徽–合肥
[分享] 显示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[1])*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> |
|