1.4 account_muted - 账号禁言表

账号禁言表存储了被禁言账号的信息,包括禁言时间、禁言持续时长、禁言原因等。禁言是一种较轻的惩罚措施,被禁言的玩家可以登录游戏,但无法在公共频道发言。

表结构

字段名 类型 属性 描述
guid int(10) unsigned 主键 账号ID,对应account表中的id字段
mutedate int(10) unsigned 主键 禁言日期 (Unix时间戳)
mutetime int(10) unsigned 不为空 禁言时长 (分钟)
mutedby varchar(50) 不为空 禁言操作者
mutereason varchar(255) 不为空 禁言原因

字段详解

guid

被禁言的账号ID,对应account表中的id字段。这个字段是表的主键之一,用于标识被禁言的账号。

示例值: 1, 42, 1337

mutedate

账号被禁言的日期和时间,以Unix时间戳格式存储(从1970年1月1日UTC开始的秒数)。这个字段是表的主键之一,允许记录同一账号的多次禁言历史。

示例值: 1609459200(2021年1月1日 00:00:00 UTC)

注意: 可以使用FROM_UNIXTIME()函数将时间戳转换为可读的日期时间格式。

mutetime

禁言的持续时间,以分钟为单位。如果设置为0,表示永久禁言。

示例值:

mutedby

执行禁言操作的管理员或系统名称。通常是GM的角色名或账号名,也可以是自动禁言系统的标识。

示例值: "Admin", "GameMaster", "ChatFilter"

mutereason

禁言账号的原因,用于记录为什么对该账号执行禁言操作。这个信息通常会显示给被禁言的玩家。

示例值: "刷屏", "辱骂其他玩家", "发布广告", "不当言论"

使用示例

禁言账号

以下SQL语句将禁言ID为42的账号,为期24小时:

INSERT INTO account_muted (guid, mutedate, mutetime, mutedby, mutereason)
VALUES (42, UNIX_TIMESTAMP(), 1440, 'Admin', '辱骂其他玩家');

永久禁言账号

以下SQL语句将永久禁言ID为42的账号:

INSERT INTO account_muted (guid, mutedate, mutetime, mutedby, mutereason)
VALUES (42, UNIX_TIMESTAMP(), 0, 'Admin', '严重违规言论');

解除禁言

以下SQL语句将解除ID为42的账号的禁言:

DELETE FROM account_muted
WHERE guid = 42;

相关表

常见问题

如何查看当前所有被禁言的账号?

使用以下SQL语句查询:

SELECT a.username,
       FROM_UNIXTIME(am.mutedate) AS mute_date,
       am.mutetime,
       FROM_UNIXTIME(am.mutedate + (am.mutetime * 60)) AS unmute_date,
       am.mutedby,
       am.mutereason
FROM account_muted am
JOIN account a ON am.guid = a.id
WHERE am.mutedate + (am.mutetime * 60) > UNIX_TIMESTAMP() OR am.mutetime = 0;

如何查看某个账号的禁言历史?

使用以下SQL语句查询:

SELECT FROM_UNIXTIME(mutedate) AS mute_date,
       mutetime,
       FROM_UNIXTIME(mutedate + (mutetime * 60)) AS unmute_date,
       mutedby,
       mutereason
FROM account_muted
WHERE guid = 42
ORDER BY mutedate DESC;

禁言和账号中的mutetime字段有什么区别?

account表中的mutetime字段存储的是禁言到期的Unix时间戳,而account_muted表中的mutetime字段存储的是禁言的持续时间(分钟)。两者配合使用,account表中的字段用于游戏服务器判断玩家是否被禁言,而account_muted表用于记录禁言历史和详细信息。

禁言设置后需要重启服务器吗?

不需要。禁言设置后立即生效,如果玩家当前已登录,他们将立即无法在公共频道发言。

禁言是否会影响玩家的游戏体验?

禁言只会限制玩家在公共频道(如世界频道、交易频道等)发言的能力,不会影响玩家的其他游戏体验。被禁言的玩家仍然可以: