command - 命令表

命令表存储了游戏中所有可用的GM命令及其安全等级。这个表定义了哪些账号可以使用哪些命令,基于账号的安全等级(在account_access表中设置)。

表结构

字段名 类型 属性 描述
name varchar(50) 主键,不为空 命令名称
security tinyint(3) unsigned 不为空,默认0 使用命令所需的最低安全等级
help text 命令帮助文本

安全等级说明

安全等级决定了账号可以使用哪些命令。以下是常见的安全等级:

安全等级 描述 典型用户
0 玩家 普通玩家
1 游戏管理员 可以处理基本游戏问题的GM
2 主管理员 可以处理大多数游戏问题的高级GM
3 管理员 可以执行几乎所有命令的管理员
4 控制台 服务器控制台和SOAP接口

使用示例

修改命令的安全等级

以下SQL语句将修改"additem"命令的安全等级为2:

UPDATE command
SET security = 2
WHERE name = 'additem';

添加新命令

以下SQL语句将添加一个新的自定义命令:

INSERT INTO command (name, security, help)
VALUES ('mycustomcommand', 3, '语法: .mycustomcommand [参数]\n这是一个自定义命令的帮助文本。');

注意: 添加新命令后,还需要在服务器代码中实现该命令的功能。仅在数据库中添加命令不会使其生效。

删除命令

以下SQL语句将删除"mycustomcommand"命令:

DELETE FROM command
WHERE name = 'mycustomcommand';

警告: 删除官方命令可能会导致某些功能无法正常使用。请谨慎操作。

常见问题

如何查看所有可用的命令?

使用以下SQL语句查询所有命令:

SELECT name, security, help FROM command ORDER BY name;

或者在游戏中使用以下命令:

.help

如何查看特定安全等级可用的命令?

使用以下SQL语句查询特定安全等级可用的命令:

SELECT name, security, help FROM command
WHERE security <= 安全等级
ORDER BY name;

如何查找特定功能的命令?

使用以下SQL语句按关键词搜索命令:

SELECT name, security, help FROM command
WHERE name LIKE '%关键词%' OR help LIKE '%关键词%'
ORDER BY name;

或者在游戏中使用以下命令:

.lookup command 关键词

修改命令后需要重启服务器吗?

不需要完全重启服务器,但需要重新加载命令数据:

.reload command

为什么我无法使用某些命令?

可能的原因包括:

可以使用以下命令查看您的账号安全等级:

.account

如何为特定玩家提供使用某个命令的权限?

有两种方法:

  1. 提高该玩家账号的安全等级(在account_access表中设置)
  2. 降低特定命令的安全等级(不推荐,因为这会影响所有玩家)

以下SQL语句将为特定账号设置安全等级:

INSERT INTO auth.account_access (id, gmlevel, RealmID)
VALUES (账号ID, 安全等级, -1)
ON DUPLICATE KEY UPDATE gmlevel = 安全等级;

提示: 在游戏中,可以使用以下命令为账号设置安全等级:

.account set gmlevel 账号名 安全等级 -1