1 Star 4 Fork 0

mwy5ym / AllStats

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
================================================================
功能亮点:
    更新更全面的网页版统计信息(可统计单个地图或全图, 页面内容可自定义)
    详尽的实时战况(双方HP, 每枪命中多少伤害, 是否穿墙, 是否爆头, 是否击杀等)
    数据采集和插件本身分离(换图等均不影响服务器)
    得分、评级、战力三排行(计算方式均可自定义)
    兼容有论坛和无论坛模式(修改个别文件即可)
    杀敌徽章和音效: 多杀、爆头、穿墙、穿墙爆头、刀杀等
    右上角向导信息(默认显示统计信息, 可自定义)
    第一人称观战时显示被观察者信息(可自定义)
    实现从网页到游戏的数据传输(猜猜这意味着什么?)
    网页显示服务器实时状态

支持多个命令(top等命令本身也可自定义):
    按Y输入 top     显示排行榜(可切换地图或全图)
    按Y输入 as      显示本局实时排名战况
    按Y输入 ms      显示我的战况和统计详情(可切换地图或全图)
    按Y输入 hs      显示被观察者的战况和统计详情(可切换地图或全图)
    按Y输入 #123456 注册用户(仅限无论坛模式)
    按Y输入 *123456 修改密码
    按Y输入 !cser   修改签名

STEAM正版用户自动登录(无论坛模式、或论坛注册用户已关联好steamid)
STEAM正版用户自动注册(仅限无论坛模式)
================================================================
文件说明:
--------------------------------
|-center
|   |-as_*.py ------------------ 数据中心核心, 可用记事本打开编辑配置项, 接收并存储数据, 可向指定服务器发送命令, 其他功能待扩展
|   |-as_tables.sql ------------ 数据库表, 建库后导入使用, 包含内容见下文
|   |-as_views.sql ------------- 数据库视图, 建库后导入使用, 包含内容见下文
|    
|                                  表 as_users:              用户信息, 记录用户姓名、头像、签名、注册时间、登录时间, 可以换成论坛等其他系统的用户表
|                                  表 as_fights:             实时战况
|    
|                                  表 as_map_ranking:        地图排名数据
|                                  表 as_map_bombs:          地图炸弹数据
|                                  表 as_map_rounds:         地图回合数据
|                                  表 as_map_weapons:        地图各武器数据
|                                  表 as_map_bodyhits:       地图各武器命中部位数据
|                                视图 as_map_weapons_sum:    地图全武器数据
|                                视图 as_map_bodyhits_sum:   地图全武器命中部位数据
|                                视图 as_map_stats:          地图所有数据
|    
|                                  表 as_all_ranking:        全图排名数据
|                                视图 as_all_bombs:          全图炸弹数据
|                                视图 as_all_rounds:         全图回合数据
|                                视图 as_all_weapons:        全图各武器数据
|                                视图 as_all_bodyhits:       全图各武器命中部位数据
|                                视图 as_all_weapons_sum:    全图全武器数据
|                                视图 as_all_bodyhits_sum:   全图全武器命中部位数据
|                                视图 as_all_stats:          全图所有数据
|
|-web -------------------------- 网页展示部分, 使用IIS等web服务器挂载目录, 请将网址配置在as.cfg文件中, 建议把文件夹移动到网站目录
|
|-cstrike
    |-gfx resource sound sprites ----- 插件资源文件
    |-addons/amxmodx
        |
        |-configs
        |   |-as.cfg --------------- 插件参数设置, 网站地址配置等
        |
        |-data
        |   |-myip.txt ------------- 自定义ip地址数据
        |   |-wry.dat -------------- 纯真IP数据库
        |   |-lang
        |       |-as.txt ----------- 插件语言设置(个别消息内容部分(即等号=后面)如果添加减号-开头, 则不显示该条消息, 例如: USAGE = -使用说明)
        |
        |-modules
        |   |-as_amxx.dll ---------- 插件核心, 采集和发布数据, 提供多个forward和native
        |   |-ipseeker_amxx.dll ---- ip地址查询模块
        |
        |-plugins
        |   |-as.amxx -------------- 插件命令和功能, 并提供第一视角观察时显示被观察者信息
        |   |-as_custom.amxx ------- 登录、改密码、改签名、得分、评级、战力计算模块, 附源码, 可自定义
        |
        |-scripting
            |-as_custom.sma -------- 登录、改密码、改签名、得分、评级、战力计算模块源码
            |-include
                |-as.inc ----------- 插件提供的头文件, 供编写自定义插件使用
--------------------------------
================================================================
请不要使用记事本修改文件(会导致文件格式被修改成UTF-8 BOM, 正确的应该是UTF8), 建议使用notepad++
安装说明:(我在软件目录放了一些需要的安装包)
0. 写在前面
建议用win7或win10或server系统的自带的IIS + PHP + mariadb进行部署
非win7或win10或server的老系统, 因为我没测试过, 建议用wampserver进行部署
如果需要使用"网页到游戏的数据传输", 请安装php_zmq这个扩展

1.复制cstrike下各文件夹到游戏安装目录的cstrike对应文件夹中(省事一点直接复制cstrike, 会自动合并同名文件夹的)

2.在modules.ini 的third party modules部分添加
as

3.在plugins.ini 最后添加
as.amxx debug
as_custom.amxx debug

4.数据存储部分需要安装 Python 3.7.x 或 3.8.x
安装时记得勾上add to path, 如果忘了请手动添加2个内容[安装路径和Scripts路径]到环境变量path
安装模块, 在命令行执行以下内容(可跳过, 现在as.py会自动判断并安装所需模块了, linux因权限问题还需手动)
pip3 install requests dbutils pymysql pyzmq --upgrade -i https://mirrors.aliyun.com/pypi/simple/

5.建立数据库(我的环境mariadb-10.3.11-winx64), 强烈推荐使用MariaDB(本项目实测效率比MySQL高好多)
然后依次导入as_tables.sql和as_views.sql文件, 如使用navicat导入的话, 记得导入后F5刷新下

6.运行as.py开始接收并保存数据到数据库
如果报错, 用记事本打开as.py, 修改数据库连接信息(地址、端口、用户、密码、库名、字符集)

7.安装web服务程序(以Windows系统自带的IIS为例), 记得先添加php文件格式支持(自行百度)
打开IIS管理器, 在网站默认站点中添加虚拟目录
别名: as
物理路径: 选择web文件夹

8.添加php文件格式支持(自行百度)
添加php_zmq支持, 相关的文件在软件目录内有(这3行可选操作, 仅console.php和servers.php用到这个库)
复制libzmq.dll到php安装目录, 比如d:\php(如果是用apache等其他web服务程序, 就放到执行文件对应的路径, 比如apache\bin)
复制php_zmq.dll到php安装目录\ext文件夹, 比如d:\php\ext

php.ini查找放开注释或添加以下内容(新手首次安装, 嫌麻烦的话可以直接用我的php.ini, 复制到C:\Windows目录)
extension_dir = "ext"
extension=gd2
extension=mbstring
extension=mysqli
extension=zmq

9.设置部分参考图片
设置1.png
设置2.png
设置3.png
设置4-1.png
设置4-2.png
设置5.png

使用:
运行as.py采集数据
运行服务器1
运行服务器2
运行服务器3
...

PS: 登录部分请自行修改as_custom.sma
================================================================
更新日志:
----------------------------------------------------------------
20210101
修正一处bug

20201208
新增linux版本
新增获取排名总数
新增as_custom的say命令改名功能
新增as_custom的数据库掉线自动重连
新增as_custom的可自定义声音和徽章
修正servers.php的计分板
修正玩家被kick时未清空数据的bug
修正as_custom的中文引起的sql回调问题
改进as.py的清理效率

----------------------------------------------------------------
20201101
修改穿墙判定(一枪穿多人时命中每人的部位更准确)
as.inc新增获取排名总数
as.cfg新增参数as_sync_interval, 设置数据同步的周期用于死亡竞赛同步数据
as_custom.sma添加自定义观察者信息示例
添加amxmodx 1.9.0的版本支持
修正as.amxx和as_custom.amxx几处bug

20201015
添加MVP、助攻(伤害助攻和闪光灯助攻)、KAST数据
添加残局获胜(1vs1、1vs2、1vs3、1vs4、1vs5)数据
as.py增加calc命令, 用于计算公式修改后, 重新计算并更新数据
新增as.cfg配置项as_assist_damage, 设置助攻所需的伤害
新增as.cfg配置项as_traded_delay, 设置判定换人的延迟
修正as_socket_filter未能正确生效的问题, 并扩展了filter的内容
强化修正中文名乱码问题, 详情见as_custom.sma
rws的计算公式有所修改, 详情见as_custom.sma
as.inc新增as_player_assist助攻回调
as_tables.sql和as_views.sql添加mvp、assist、kast等内容

PS: 数据更新部分参考上个版本的方法,
    因mvp、助攻、kast数据与游戏局数相关,
    算上之前没有统计的局数会导致总体数值较差,
    这边建议直接放弃旧的数据

----------------------------------------------------------------
20200901
添加新的数据维度mode(即游戏模式, 例如休闲、竞技等), 不同模式各自统计
添加RWS战力排行, 可在as_custom.sma中的native_calc_rws函数中自定义算法
升级zmq版本到4.3.2, 现在hlds和as.py放不同机子不会报Protocol wrong type错误了
修正按TAB键右上角广告牌无法正确出现的问题
修正as_custom.sma注册时名字中文乱码问题, 加上了强制set names 'utf8';
修正as_custom.sma禁止玩家改名
添加未参战玩家更换队伍并马上死后, 统计数据改为观战者
添加论坛模式, STEAM正版用户自动登录(需先在论坛里关联好STEAMID)
添加网页上的RWS战力数据
as.cfg添加as_valid控制数据统计手动开关(方便比赛服热身时不记录)
现在as_tutor_flag、as_badge_flag、as_badge_sound_flag关闭时不再缓冲相应文件

PS: 因as_tables.sql有更新, 请自行做好数据备份与导出导入
    推荐做法(以navicat为例):
    1.备份数据: 右键数据库, 转储SQL文件, 结构和数据
    2.导出表: 右键表, 导出向导, SQL脚本, 勾选8个表, 下一步, 下一步, 下一步, 开始
    3.导入as_tables.sql和as_views.sql
    4.导入步骤2中的每个sql
----------------------------------------------------------------
1.3+ (相比上个版本更新文件: 修改as_amxx.dll、新增as.py、删除as.ini、as.pyc)
新增自动清理功能(表as_fights), 可自定义清理频率和保留的记录数, 详情见as.py
新增数据库配置项: 字符集, 建议采用utf8mb4, 历史原因这里就保持utf8不修改了
数据库采用连接池方式
合并as.ini和as.pyc到as.py
删除'版本未生效'的提示

PS: 如有兴趣, 请自行操作: (其实极个别生僻字的出现概率不大, utf8够用了)
建库时选择utf8mb4
as_tables.sql中搜索utf8修改成utf8mb4
as_views.sql中搜索utf8修改成utf8mb4
core.php搜索utf8修改成utf8mb4
as_custom.sma中搜索utf8修改成utf8mb4, 记得重新编译替换as_custom.amxx

----------------------------------------------------------------
1.3
改进了数据传输部分, 由旧的2通道(一收一发)改成新的4通道(数据发、数据收、命令发、命令收)
新增服务器状态显示功能, 详情见servers.php(请自行修改其中的内外网IP转换部分)
新增数据包过滤功能, 减少通信数据量, 详情见as.cfg中的as_socket_filter
新增一个防止刷分的参数, 详情见as.cfg中的as_player_limit
新增点击top.php标题可以按该分类进行排序
修正一处fights.php时间戳有误的bug(重要修正)

----------------------------------------------------------------
1.2
新增从网页到游戏的数据传输, 并提供演示, 抛砖引玉, 用这个还可以做什么? 大家发挥一下自己的想象力
分离出weapons.php, 改成iframe的方式嵌入stats.php中, 并新增点击标题可以按该分类进行排序
修改网页配色, 替换网页的武器图片
新增禁止用户同时多处登录

PS: weapons.php 和 fights.php 都可以单独查看, 分别表示所有玩家的武器数据统计和全服战况

----------------------------------------------------------------
1.1 release
新增数据同步
新增游戏中注册(仅限无论坛模式)、登录、修改密码、修改签名
添加网页界面top stats fights
添加say命令 top as allstats ms mystats hs hisstats, 可自定义
添加多杀、爆头杀敌、穿墙杀敌等语音和图标提示(仿CF)
添加右上方信息面板(向导)

----------------------------------------------------------------
1.0d
添加as.ini配置文件, as.py编译成as.pyc
as.pyc添加命令功能, 数据收集改成多线程方式

----------------------------------------------------------------
1.0c
修正死亡竞赛模式时, 每次杀敌都触发一血的bug
规范化as_amxx.dll和as.py之间的通讯报文
扩展as.py, 注明所有报文参数说明

----------------------------------------------------------------
1.0b
修正获取中文名时乱码的bug

----------------------------------------------------------------
1.0a
初版AllStats, 核心采用module的方式编写

空文件

简介

AllStats 展开 收起
Python 等 5 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/mwy5ym/AllStats.git
git@gitee.com:mwy5ym/AllStats.git
mwy5ym
AllStats
AllStats
master

搜索帮助