|
发表于 2003-10-25 18:09:58
|
显示全部楼层
|阅读模式
来自 中国–江西–南昌
CSSTATS默认达到2500人时就会清空csstats.dat数据文件,我就吃2次亏了,搞的排名全没了。今天终于研究出了csstats.dat的格式,就写了个PHP程序用来删除1500名以后的排名,这样就永远无法达到2500名而不会自动清空。
因为CSSTATS是把csstats.dat完全调入内存处理的,所以必须要在HLDS关掉后运行才有用。也就是说CSSTATS正在运行时即使删掉csstats.dat也不会影响排名,因为它已经把这个文件放进了内存,而在换地图时才把内容写入文件。
<?//clearstats.php
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<=1500;$i++)
{if(!$namelen=bin2int(fread($fp,2))) exit();
fseek($fp,$namelen*2+62,SEEK_CUR);
}
ftruncate($fp,ftell($fp));
fwrite($fp,"\0\0");
fclose($fp);
?> |
|