求生排行榜是参考SOURCEMOD上的L4DSTATS插件代码自己重新改进的,很多复杂的详细统计数据其实用不上太多,所以仅供学习参考使用
由于我的求生服务器环境一直改变,会不断添加一些技术东西进行完善,所以本文内容也会不断调整更新
更新日志:
2014-7-8日 已经通过SyncNavigator工具解决了2个数据库数据同步的问题
环境配置
服务器环境:WIN2003
数据库环境:双数据库(本地+远程)
本地数据库:记录排行成绩(主要考虑玩家游戏流畅感,以前尝试过远程数据库,每次读写游戏都会有延迟现象,越是频繁情况越严重)
远程数据库:用来同步并备份本地数据库的数据(基本排行网站显示,及辅助工具都是从此处读取,虽然信息不是即时更新,但安全稳定性比较好)
配置说明:
1.安装MYSQL服务器+PHP服务器
http://blog.csdn.net/zbzibing/article/details/8333073
2.建立数据库l4dstats
3.databases.cfg 放到插件的config目录
DataBases.cfg文件配置(已经加入了l4dstats数据库)
<span style="font-family:Microsoft YaHei;">"Databases"
{
"driver_default" "mysql"
"default"
{
"driver" "default"
"host" "localhost"
"database" "sourcemod"
"user" "root"
"pass" ""
//"timeout" "0"
//"port" "0"
}
"storage-local"
{
"driver" "sqlite"
"database" "sourcemod-local"
}
"clientprefs"
{
"driver" "sqlite"
"host" "localhost"
"database" "clientprefs-sqlite"
"user" "root"
"pass" ""
//"timeout" "0"
//"port" "0"
}
"l4dstats"
{
"driver" "mysql"
"host" "localhost"
"database" "l4dstats"
"user" "****"
"pass" "****"
}
}</span>
注意:l4dstats中user和pass的值为你设置的数据库用户名和密码
MYSQL常用语句:
更新PLAYERS表中CNAME字段与USERS表中CNAME字段数据相同
UPDATE players,users
SET players.cname = users.cname
WHERE users.steamid = players.steamid
转换数据格式
alter database l4dstats default character set 'utf8';
注意事项:
1.l4d_stat.SP源代码ANSI下才能编译,在UTF-8模式下编辑,但不能转成UFT-8格式
2.用户名称数据库内显示为乱码(查看是否连接时是否已UTF8查看)
3.数据库格式表的格式为UTF8
4.使用ODBC连接,ASP仅支持32位