wangningyu
|
分享:
▼
x2
|
[插件] [VGStats]基于Redis+php高效率的免费CS1.6排名系统 V3.02
|
|
|
|
【插件资讯】插件来源:原创 使用指令:vgstatus 安装路径:cstrike\addons\amxmodx\modules 【插件介绍】 你是否在为用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系列的混战、比赛模式 安装方法预览测试效果: https://game.cs2701...gstats/官方网站: https://gitee.com/link?target=ht...w.cs27015.com 专业定制CS反作弊系统QQ277460272 安装方法如下: 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类型 网页预览https://game.cs2701...gstats/V3.02 支持总榜、年榜、月榜、日榜、赛季榜 Bug反馈本插件完全免费,如果遇到什么bug请加官方QQ群:529777716 (如果有哪位兄弟熟悉PHP可联系我共同改善一个WEB前端效果!) 更新版本https://gitee.com/wan...vgstats
[ 此文章被wangningyu在2023-10-08 01:11重新编辑 ] |
|
|
|
|
|
One Code , One Dream !
|
x1
[楼 主]
From:未知地址 | Posted:2023-09-13 14:48 |
|
|
|