你是否在为用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 支持总榜、年榜、月榜、日榜、赛季榜
所有免费资源均来自互联网,为保证您的电脑安全,请您下载文件后对该文件进行一次病毒扫描或木马查杀以确保该资源的安全性,包括但不限于(360、金山、腾讯杀毒、瑞星、火绒)等等杀毒软件,如未按本站要求进行以上操作,发生的风险由用户自行承担。资源是否有描述中确切的作用或实际效果本站并不知情,用户可自行斟酌使用,本站只提供一个技术分享平台,不提供有关免费资源的任何相关咨询。凡以任何方式登陆本网站或直接、间接使用本站资料者,均应仔细阅读本申明,一旦使用本站任何教程和资源,即被视为您已接受本站的免责申明。