账号权限表存储了账号的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) | 可为空 | 备注信息 |
账号的唯一标识符,对应account表中的id字段。这个字段是表的主键,用于标识哪个账号拥有GM权限。
示例值: 1, 42, 1337
GM等级,决定了账号在游戏中拥有的权限级别。不同的GM等级可以执行不同的命令和操作。
常见的GM等级设置:
示例值: 0, 1, 2, 3
注意: 具体的权限级别可以在配置文件中自定义,上述只是常见的设置。
指定GM权限适用的服务器ID。如果设置为-1,则表示该权限适用于所有服务器;如果设置为特定的服务器ID,则只在该服务器上有效。
示例值: -1(所有服务器), 1(ID为1的服务器)
注意: 服务器ID对应realmlist表中的id字段。
备注信息,用于记录为什么给予该账号GM权限,或者该账号的用途。这个字段纯粹是为了管理方便,不影响游戏功能。
示例值: "主管理员", "测试账号", "活动GM"
以下SQL语句将为ID为42的账号授予GM等级2的权限,适用于所有服务器:
INSERT INTO account_access (id, gmlevel, RealmID, comment)
VALUES (42, 2, -1, '活动GM账号');
以下SQL语句将ID为42的账号的GM等级从2修改为3:
UPDATE account_access
SET gmlevel = 3
WHERE id = 42;
以下SQL语句将移除ID为42的账号的GM权限:
DELETE FROM account_access
WHERE id = 42;
使用以下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等级。例如:
-- 在服务器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权限设置后立即生效,账号下次登录时就会拥有相应的权限。如果账号当前已登录,可能需要重新登录才能使新的权限设置生效。