SQLStats 将有关游戏内内容的各种统计信息记录到 MySQL数据库中
原创地址SQLStats |混沌
- 必需的依赖项
- MySQL 服务器(版本:5.7.x)(可从托管 RustDedicated 的任何位置访问)
- 可选依赖项
- https://www.chaoscode.io/resources/sqlstatistics.116/ https://www.chaoscode.io/resources/sqlranks.115/
为了减少设置 MySQL 的过程,请使用不高于 ‘5.7.x’ 的 MySQL 版本(例如可以使用 ‘5.7.41’)。
如果出于某种原因,您使用的是 MySQL 8 及更高版本,请使用旧版身份验证方法(此处为手动)。此限制来自 Oxide,而不是插件本身。
数据插件记录为:
- 连接/断开连接到服务器的玩家及其最后一个 IP 以及他们在服务器上花费了多少时间(此擦除和总体)
- 玩家杀死的动物(动物名称、杀死的日期和时间、距离和用于杀死的武器)。
- [1] 玩家制作的物品(物品名称、日期、制作物品的数量)
- 玩家死亡(原因、日期和时间、位置 x、y 和网格位置)
- 玩家摧毁的建筑物(建筑物名称、日期和时间、建筑物等级、使用的武器、网格位置)
- 玩家销毁容器(容器名称、日期和时间、使用的武器、位置 x、y 和网格位置)
- 玩家摧毁了门/门/栅栏(建筑名称、日期和时间、武器、x、y 和网格位置)
- [1] 玩家射击的子弹(子弹名称、使用的武器、日期、数量)
- [1] 收集的玩家资源(资源名称、数量、日期)
- [1] 玩家杀戮(杀手、受害者、战斗日志链接、使用的武器、最后一次击中身体部位、日期和时间、距离和点数[2])
- [3] 来自两个角度(杀手和受害者)的战斗日志(与控制台中键入 combatlog 时提供的数据相同)
- [1] 玩家放置建筑(建筑名称、日期、数量)
- [1] 玩家放置的可部署物(可部署物名称、日期、数量)
[1] – 每天
汇总 [2] – 积分是根据受害者的装备计算的,他的装备越多,杀戮获得的积分就越多,是排行榜的完美解决方案,而不会导致瞄准击杀成为排行榜第一名。
[3] – 战斗日志在 PvP 密集型服务器上生成大量数据,因此请谨慎
启用除玩家统计数据 (1) 之外的所有数据。在地图更改时被擦除,如果有人想要这样的功能,将来可以很容易地更改。
默认配置:
{
"Config": {
"SaveCombatLog": "0",
"WipeStatsOnMapChange": "1",
"PreservePlayersTable": "1",
},
"MySQL": {
"Database": "rust",
"Host": "127.0.0.1",
"Password": "password",
"Port": 3306,
"Username": "username"
}
}
* – SaveCombatLog 可能会占用大量资源,但启用它会将每个战斗日志保存到 PvP Kill 的数据库中,这样您就可以更轻松地找到黑客!
以下脚本将删除名为 rust 的数据库(如果存在),然后使用所有必需的空表从头开始创建它:
-- --------------------------------------------------------
-- Server version: 5.7.16-log - MySQL Community Server (GPL)
-- Server OS: Win64
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- Dumping database structure for rust
DROP DATABASE IF EXISTS `rust`;
CREATE DATABASE IF NOT EXISTS `rust` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `rust`;
-- Dumping structure for table rust.stats_player
DROP TABLE IF EXISTS `stats_player`;
CREATE TABLE IF NOT EXISTS `stats_player` (
`id` bigint(20) NOT NULL,
`name` text NOT NULL,
`online_seconds` bigint(20) DEFAULT '0',
`ip` varchar(50) NOT NULL,
`online` bit(1) NOT NULL DEFAULT b'0',
`lastconnection` datetime DEFAULT CURRENT_TIMESTAMP,
`online_seconds_lastwipe` bigint(20) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_animal_kill
DROP TABLE IF EXISTS `stats_player_animal_kill`;
CREATE TABLE IF NOT EXISTS `stats_player_animal_kill` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`animal` varchar(32) NOT NULL,
`date` datetime NOT NULL,
`distance` int(11) DEFAULT NULL,
`weapon` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_craft_item
DROP TABLE IF EXISTS `stats_player_craft_item`;
CREATE TABLE IF NOT EXISTS `stats_player_craft_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`item` varchar(32) NOT NULL,
`date` date NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `PlayerItemDate` (`player`,`item`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_death
DROP TABLE IF EXISTS `stats_player_death`;
CREATE TABLE IF NOT EXISTS `stats_player_death` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`cause` varchar(32) NOT NULL,
`date` datetime NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
`x` int(11) DEFAULT NULL,
`z` int(11) DEFAULT NULL,
`grid` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `PlayerCauseDate` (`player`,`cause`,`date`,`x`,`z`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_destroy_building
DROP TABLE IF EXISTS `stats_player_destroy_building`;
CREATE TABLE IF NOT EXISTS `stats_player_destroy_building` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`owner` bigint(20) DEFAULT NULL,
`building` varchar(128) NOT NULL,
`date` datetime NOT NULL,
`tier` varchar(20) DEFAULT NULL,
`weapon` varchar(128) DEFAULT NULL,
`grid` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_destroy_container
DROP TABLE IF EXISTS `stats_player_destroy_container`;
CREATE TABLE IF NOT EXISTS `stats_player_destroy_container` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`owner` bigint(20) DEFAULT NULL,
`title` varchar(128) NOT NULL,
`date` datetime NOT NULL,
`weapon` varchar(128) DEFAULT NULL,
`x` int(11) DEFAULT NULL,
`z` int(11) DEFAULT NULL,
`grid` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_fire_bullet
DROP TABLE IF EXISTS `stats_player_fire_bullet`;
CREATE TABLE IF NOT EXISTS `stats_player_fire_bullet` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`bullet` varchar(32) NOT NULL,
`weapon` varchar(128) NOT NULL,
`date` date NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `PlayerBulletWeaponDate` (`player`,`bullet`,`weapon`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_gather_resource
DROP TABLE IF EXISTS `stats_player_gather_resource`;
CREATE TABLE IF NOT EXISTS `stats_player_gather_resource` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`resource` varchar(32) NOT NULL,
`count` bigint(20) NOT NULL,
`date` date NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `PlayerResourceCountDate` (`player`,`resource`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_kill
DROP TABLE IF EXISTS `stats_player_kill`;
CREATE TABLE IF NOT EXISTS `stats_player_kill` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`killid` char(36) NOT NULL DEFAULT '0',
`killer` bigint(20) NOT NULL,
`victim` bigint(20) NOT NULL,
`weapon` varchar(128) NOT NULL,
`bodypart` varchar(2000) NOT NULL DEFAULT '',
`date` datetime NOT NULL,
`distance` int(11) DEFAULT NULL,
`points` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_kill_combatlog
DROP TABLE IF EXISTS `stats_player_kill_combatlog`;
CREATE TABLE IF NOT EXISTS `stats_player_kill_combatlog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`killid` char(36) NOT NULL DEFAULT '0',
`time` char(64) NOT NULL DEFAULT '0',
`attacker` char(128) NOT NULL DEFAULT '0',
`attacker_id` int(11) NOT NULL DEFAULT '0',
`target` char(128) NOT NULL DEFAULT '0',
`target_id` int(11) NOT NULL DEFAULT '0',
`weapon` char(128) NOT NULL DEFAULT '0',
`ammo` char(128) NOT NULL DEFAULT '0',
`area` char(64) NOT NULL DEFAULT '0',
`distance` char(32) NOT NULL DEFAULT '0',
`old_hp` decimal(10,2) NOT NULL DEFAULT '0.00',
`new_hp` decimal(10,2) NOT NULL DEFAULT '0.00',
`info` char(128) NOT NULL DEFAULT '0',
`dataFrom` char(32) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_place_building
DROP TABLE IF EXISTS `stats_player_place_building`;
CREATE TABLE IF NOT EXISTS `stats_player_place_building` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`building` varchar(128) NOT NULL,
`date` date NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `PlayerBuildingDate` (`player`,`building`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_place_deployable
DROP TABLE IF EXISTS `stats_player_place_deployable`;
CREATE TABLE IF NOT EXISTS `stats_player_place_deployable` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`deployable` varchar(128) NOT NULL,
`date` date NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `PlayerDeployableDate` (`player`,`deployable`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
-- Dumping structure for table rust.stats_player_destroy_door
DROP TABLE IF EXISTS `stats_player_destroy_door`;
CREATE TABLE IF NOT EXISTS `stats_player_destroy_door` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`player` bigint(20) NOT NULL,
`owner` bigint(20) DEFAULT NULL,
`title` varchar(128) NOT NULL,
`date` datetime NOT NULL,
`weapon` varchar(128) DEFAULT NULL,
`x` int(11) DEFAULT NULL,
`z` int(11) DEFAULT NULL,
`grid` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data exporting was unselected.
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容