账号权限表存储了账号的GM权限级别信息,用于控制玩家在游戏中的管理权限。
表结构
| 字段名 | 类型 | 属性 | 描述 |
|---|---|---|---|
| id | int(10) unsigned | 主键 | 账号ID,对应account表中的id字段 |
| gmlevel | tinyint(3) unsigned | 不为空 | GM等级 (0=玩家, 1=助手, 2=GM, 3=管理员) |
| RealmID | int(11) | 不为空,默认-1 | 服务器ID (-1=所有服务器,或特定服务器ID) |
| comment | varchar(255) | 可为空 | 备注信息 |
字段详解
id
账号的唯一标识符,对应account表中的id字段。这个字段是表的主键,用于标识哪个账号拥有GM权限。
示例值: 1, 42, 1337
gmlevel
GM等级,决定了账号在游戏中拥有的权限级别。不同的GM等级可以执行不同的命令和操作。
常见的GM等级设置:
- 0 - 玩家:普通玩家,没有特殊权限
- 1 - 助手:可以查看一些基本信息,处理简单的玩家问题
- 2 - GM:可以执行大多数GM命令,如传送、生成物品、处理玩家问题等
- 3 - 管理员:拥有所有权限,包括服务器管理命令
示例值: 0, 1, 2, 3
注意: 具体的权限级别可以在配置文件中自定义,上述只是常见的设置。
RealmID
指定GM权限适用的服务器ID。如果设置为-1,则表示该权限适用于所有服务器;如果设置为特定的服务器ID,则只在该服务器上有效。
示例值: -1(所有服务器), 1(ID为1的服务器)
注意: 服务器ID对应realmlist表中的id字段。
comment
备注信息,用于记录为什么给予该账号GM权限,或者该账号的用途。这个字段纯粹是为了管理方便,不影响游戏功能。
示例值: "主管理员", "测试账号", "活动GM"
使用示例
为账号授予GM权限
以下SQL语句将为ID为42的账号授予GM等级2的权限,适用于所有服务器:
INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 2, -1, '活动GM账号');
修改账号的GM权限
以下SQL语句将ID为42的账号的GM等级从2修改为3:
UPDATE account_access
SET gmlevel = 3
WHERE id = 42;
移除账号的GM权限
以下SQL语句将移除ID为42的账号的GM权限:
DELETE FROM account_access
WHERE id = 42;
相关表
常见问题
如何查看某个账号的GM权限?
使用以下SQL语句查询:
SELECT a.username, aa.gmlevel, aa.RealmID, r.name AS realm_name
FROM account_access aa
JOIN account a ON aa.id = a.id
LEFT JOIN realmlist r ON aa.RealmID = r.id
WHERE aa.id = 42;
一个账号可以在不同服务器有不同的GM等级吗?
是的,可以为同一个账号在不同的服务器设置不同的GM等级。例如:
-- 在服务器1上设置为GM等级2
INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 2, 1, 'GM on Realm 1');
-- 在服务器2上设置为GM等级1
INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 1, 2, 'Helper on Realm 2');
GM权限设置后需要重启服务器吗?
不需要。GM权限设置后立即生效,账号下次登录时就会拥有相应的权限。如果账号当前已登录,可能需要重新登录才能使新的权限设置生效。