character_action 动作条表
基于 AzerothCore 官方数据库 · Characters 库 · 存储角色动作条按键配置
表概述
character_action 表存储每个角色的动作条(技能栏)按键绑定数据,记录每个按键位置对应的技能/物品/宏。支持双天赋时各自的按键布局。
核心概念:每个角色的每个天赋(spec)下的每个按键(button)都有一条记录,关联到具体的action(技能ID/物品ID/宏ID)和type(操作类型)。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guid | INT UNSIGNED | 0 | 角色GUID,关联 → characters.guid |
| spec | TINYINT UNSIGNED | 0 | 天赋组编号(0=主天赋 1=副天赋) |
| button | TINYINT UNSIGNED | 0 | 动作条按键位置(0-119) |
| action | INT UNSIGNED | 0 | 动作ID(技能ID/物品ID/宏ID) |
| type | TINYINT UNSIGNED | 0 | 动作类型(0=空 64=宏 128=SPELL 等) |
重要字段详解
spec - 天赋组
详细说明:双天赋系统下,两个天赋组可以有完全不同的按键布局。
- 0 = 主天赋的按键布局
- 1 = 副天赋的按键布局(双天赋开启后)
type - 动作类型
详细说明:决定action字段的含义。常用值
- 0 = 空动作
- 64 = 宏
- 128 = 物品 (ITEM)
- 其他值对应不同技能类型
button - 按键位置
详细说明:对应客户端的动作条格子位置。
- 0~11 = 主动作条第1页(12个格子)
- 12~23 = 主动作条第2页
- 24~35 = 左侧动作条
- 36~47 = 右侧动作条
- 48~59 = 右侧动作条2
SQL示例:查看角色主天赋按键 →
SELECT * FROM character_action WHERE guid=1 AND spec=0 ORDER BY button;SQL查询示例
-- 查看角色所有动作条配置
SELECT spec, button, action, CASE type
WHEN 0 THEN '空'
WHEN 64 THEN '宏'
WHEN 128 THEN '物品'
ELSE '技能'
END AS type_desc
FROM character_action
WHERE guid = 1
ORDER BY spec, button;-- 清除角色的动作条(重置按键)
DELETE FROM character_action WHERE guid = 1;-- 复制主天赋按键到副天赋
INSERT INTO character_action (guid, spec, button, action, type)
SELECT guid, 1, button, action, type
FROM character_action
WHERE guid = 1 AND spec = 0;常见问题
Q: 角色切换天赋后技能栏变空怎么办?
检查 character_action 表中是否存在 spec=1 的记录。如果副天赋没有配置动作条,可以复制主天赋的按键:INSERT INTO character_action SELECT guid, 1, button, action, type FROM character_action WHERE guid=1 AND spec=0;
Q: 如何清空角色的所有动作条?
DELETE FROM character_action WHERE guid=角色GUID; 清空后角色登录时动作条为空白,需要重新拖拽技能。