表概述

command表是GM命令管理系统的核心,属于Chat System。表中定义了所有可用的GM命令名称、所需的最低GM权限等级以及对应的帮助文本。

主键为 name(命令名称),GM在聊天框中使用 .命令名 的格式执行命令。

表结构

字段名数据类型默认值说明
nameVARCHAR(50)''GM命令名称(主键),使用时加 .前缀
securityTINYINT UNSIGNED0使用该命令所需的最低GM等级
helpLONGTEXTNULL命令帮助文本,参数说明

重要字段详解

security (GM权限等级)

定义使用该命令所需的最低GM安全等级:

  • 0 - 普通玩家(可用的命令极少)
  • 1 - 初级GM(基础管理命令)
  • 2 - 中级GM(大部分管理命令)
  • 3 - 高级GM(高级管理命令)
  • 4 - 管理员(服务器核心配置)

在account_access表中设置账号的GM等级后,该账号就可以使用对应等级及以下的所有命令。

help (帮助文本)

当GM输入 .help 命令名 时显示的帮助信息。通常包含命令的语法格式、参数说明和使用示例。

格式通常为:语法:.命令名 $参数1 $参数2

name (命令名称)

命令的唯一标识符,不能重复。使用格式为 .name。支持子命令格式如 honor add

常见命令分类:

  • account系列 - 账号管理(account create, account set gmlevel)
  • tele系列 - 传送(tele, go, namego)
  • npc系列 - NPC管理(npc add, npc delete)
  • modify系列 - 属性修改(modify hp, modify gold)

实战案例

查询所有可用GM命令:
SELECT name, security, help
FROM command
ORDER BY security, name;
查询特定安全等级可用的命令:
SELECT name, help
FROM command
WHERE security <= 1
ORDER BY name;
添加自定义GM命令:
INSERT INTO command (name, security, help)
VALUES ('custom broadcast', 3, '语法: .custom broadcast $message\n向全服发送自定义广播消息。');

常见问题

Q: 如何给某个账号添加GM权限?

使用命令或在account_access表中添加记录:

INSERT INTO account_access (AccountId, SecurityLevel, RealmID)
VALUES ([账号ID], [权限等级], -1);

Q: GM命令不生效怎么排查?

检查以下几点:

  1. 确认账号的GM等级(account_access.SecurityLevel) >= 命令的security值
  2. 确认命令名输入正确(区分大小写)
  3. 使用 .help 命令名 查看语法是否正确
  4. 检查RBAC权限系统是否启用了额外限制