你是否在为用MySQL做排名系统导致的换图慢死服而苦恼?


恭喜你,这款基于高效率Redis数据库的排名系统VGStats将非常适合你,它采用高速缓存技术,无论是读取还是个人数据读取、计算并显示前一千名也仅仅只需要0.01秒左右!

这是一款基于Redis + PHP的CS1.6排名统计系统,使用于HLDS系列的游戏,本插件完全免费,如果遇到什么bug请加官方QQ群:529777716

特别注意:这款排名系统最重要的是免费!免费!免费!重要的事情说三次

(同时支持Windows和Linux游戏服务器,同时支持HLDS与ReHLDS)

可以在观察模式显示当前玩家、当前武器的独立数据:

最重要的一点是你的插件需要提供以下几个接口函数:

// 获取游戏数据
// 参数:
// id: 游戏序号(1-32)
// uid: 数据库编号(大于0)
// nWeapon: 武器编号(CSW_NONE代表总榜, 范围0-32)
// nType: 数据类型
//
// 读取个人总榜示例:
// 读取总人数: new val = vs_get_rank_data(id, CSW_NONE, VS_MAX_PLAYER);
// 读取排名: new val = vs_get_rank_data(id, CSW_NONE, VS_RANK);
// 读取总杀敌: new val = vs_get_rank_data(id, CSW_NONE, VS_KILL);
// 读取总死亡: new val = vs_get_rank_data(id, CSW_NONE, VS_DEATH);
// 读取总射击: new val = vs_get_rank_data(id, CSW_NONE, VS_SHOT);
// 读取总命中: new val = vs_get_rank_data(id, CSW_NONE, VS_HIT);
// 读取总爆头次数: new val = vs_get_rank_data(id, CSW_NONE, VS_HEADSHOT);
// 读取总穿墙命中次数: new val = vs_get_rank_data(id, CSW_NONE, VS_WALL_HIT);
// 读取总穿墙爆头次数: new val = vs_get_rank_data(id, CSW_NONE, VS_WALL_HEAD);
// 读取总穿墙击杀次数: new val = vs_get_rank_data(id, CSW_NONE, VS_WALL_KILL);
// 读取总场次: new val = vs_get_rank_data(id, CSW_NONE, VS_ROUND);
// 读取T杀完胜利: new val = vs_get_rank_data(id, CSW_NONE, VS_RWIN_T);
// 读取T爆炸胜利: new val = vs_get_rank_data(id, CSW_NONE, VS_RWIN_BOOM);
// 读取残局场次: new val = vs_get_rank_data(id, CSW_NONE, VS_1ROUND);
// 读取残局胜利场次: new val = vs_get_rank_data(id, CSW_NONE, VS_1RWIN);
// 读取残1v1胜利场次: new val = vs_get_rank_data(id, CSW_NONE, VS_1V1);
// 读取残回合1杀场次: new val = vs_get_rank_data(id, CSW_NONE, VS_KILL_1);
//
// 
// 读取个人武器数据示例:
// 读取AK射击次数: new val = vs_get_rank_data(id, CSW_AK47, VS_SHOT);
// 读取AK命中总次数: new val = vs_get_rank_data(id, CSW_AK47, VS_HIT);
// 读取AK爆头总次数: new val = vs_get_rank_data(id, CSW_AK47, VS_HEADSHOT);
// 读取AK击中头总次数: new val = vs_get_rank_data(id, CSW_AK47, VS_HIT_HEAD);
// 读取AK击胸部总次数: new val = vs_get_rank_data(id, CSW_AK47, VS_HIT_CHEST);
// 所有击中胸部总次数: new val = vs_get_rank_data(id, CSW_NONE, VS_HIT_CHEST);


// 读取AK穿墙命中次数: new val = vs_get_rank_data(id, CSW_AK47, VS_WALL_HIT);
// 读取AK穿墙爆头次数: new val = vs_get_rank_data(id, CSW_AK47, VS_WALL_HEAD);
// 读取AK穿墙击杀次数: new val = vs_get_rank_data(id, CSW_AK47, VS_WALL_KILL);
// 读取AK总伤害: new val = vs_get_rank_data(id, CSW_AK47, VS_DAMAGE);native vs_get_rank_data(id, nWeapon, nType);


// 这个函数是在你的登录主插件后调用
public client_login(id, uid)
{
 static param[4]
 param[0] = id
 param[1] = uid


 new enname[33], chs[33], sig[64], qq[33], flag[33], expdate[33], regdate[33], lastlogin[33], ip[33]
 new year, month, day
 
 g_Uid[id] = uid
 
 ////////////////////////////////////////////////////////////////
 // 这里的接口是我原先插件的,需要你自行实现
 ////////////////////////////////////////////////////////////////
 
 // 获取在VGStatsWeb中显示的"玩家英文名"
 //get_user_engname(id, enname, 32)
 
 // 获取在VGStatsWeb中显示的"玩家中文名"
 //get_user_chsname(id, chs, 32)
 
 // 获取在VGStatsWeb中显示的"个性签名"
 //get_user_signature(id, sig, 63)
 
 // 获取在VGStatsWeb中显示的"玩家qq"
 //get_user_qq(id ,qq, 32)
 
 // 获取在VGStatsWeb中显示的"玩家VIP权限字母abcdef-z"
 //get_vip_flag(id, flag, 32)
 
 // 获取在VGStatsWeb中显示的VIP时间,格式: 2022-06-01
 //get_exp_date(id, expdate, 32)
 
 // 获取在VGStatsWeb中显示的注册时间,格式: 2022-06-01
 //get_reg_date(id, regdate, 32)
 
 // 获取上次登录时间
 date(year, month, day)
 formatex(lastlogin, 31, "%04d-%02d-%02d", year, month, day)
 get_user_ip(id, ip, 32, 1)


 
 
 ////////////////////////////////////////////////////////////////
 // 最终调用函数:
 ////////////////////////////////////////////////////////////////
 
 // 更新VGStats的英文名
 vs_set_user_data(id, uid, ECT_SET_NAMEEN, enname, 32)
 
 // 更新VGStats的中文名
 vs_set_user_data(id, uid, ECT_SET_NAMECH, chs, 32)
 
 // 更新VGStats的VIP权限字母abcdefg
 vs_set_user_data(id, uid, ECT_SET_FLAGS, flag, 32)
 
 // 更新VGStats的注册日期,格式: 2022-06-01
 vs_set_user_data(id, uid, ECT_SET_REG_DATE, regdate, 32)
 
 // 更新VGStats的qq,格式: 12345678
 vs_set_user_data(id, uid, ECT_SET_QQ, qq, 32)
 
 // 更新VGStats的个性签名
 vs_set_user_data(id, uid, ECT_SET_SIGNATURE, sig, 32)


 // 从VGCenter读取排名信息
 vs_load_rank(id, uid)
 
 // 更新VGStats中的VIP到期时间
 if(strlen(expdate))
 vs_set_user_data(id, uid, ECT_SET_EXP_DATE, expdate, 32)
 else
 vs_set_user_data(id, uid, ECT_SET_EXP_DATE, expdate, 0)
 
 // 更新VGStats的上次登录时间
 vs_set_user_data(id, uid, ECT_SET_LAST_LOGIN, lastlogin, 32)
 
 // 更新VGStats的上次登录IP
 vs_set_user_data(id, uid, ECT_SET_LAST_IP, ip, 32)
 
 #if DEBUG
 client_print(id, print_chat, "提交: %s / %s / %s / %s", enname, chs, sig, ip)
 #endif
}


功能介绍
基于Redis+PHP的CS1.6排名统计系统,使用于HLDS系列的混战、比赛模式


安装方法
安装方法如下:
1、在cstrike\server.cfg中添加以下参数:
     // 排名服务器 vs_ip "127.0.0.1" 
     // 排名服务器端口 vs_port "27001"
     // 验证密码 vs_auth "123456"
     // 服务器序号 vs_sid "1"
     // 是否忽略BOT vs_ignore_bot "0"
2、将VGStats_amxx.dll拷贝至以下目录: cstrike\addons\amxmodx\modules
3、在module.ini中添加一行VGStats cstrike\addons\amxmodx\configs\module.ini
4、重启HLDS服务器,输入meta list查看是否成功 如果有一个VGStats System显示RUN则说明正常
5、运行“启动redis.bat”
6、运行VGCenter.exe点启动即可
7、Redis使用的是tcp:6379端口,VGCenter使用到udp:27001端口 如果Redis或VGCenter在其他服务器运行,需要注意放行!
8、将wwwroot拷贝至服务器运行,测试环境为PHP7.0,其他版本未测试 需要自行修改MTPublic.php中的get_access_str获取VIP类型



网页预览
【VGStats】 - 总排行榜
V3.02 支持总榜、年榜、月榜、日榜、赛季榜

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源