表概述

character_action 表存储每个角色的动作条(技能栏)按键绑定数据,记录每个按键位置对应的技能/物品/宏。支持双天赋时各自的按键布局。

核心概念:每个角色的每个天赋(spec)下的每个按键(button)都有一条记录,关联到具体的action(技能ID/物品ID/宏ID)和type(操作类型)。

表结构

字段名数据类型默认值说明
guidINT UNSIGNED0角色GUID,关联 → characters.guid
specTINYINT UNSIGNED0天赋组编号(0=主天赋 1=副天赋)
buttonTINYINT UNSIGNED0动作条按键位置(0-119)
actionINT UNSIGNED0动作ID(技能ID/物品ID/宏ID)
typeTINYINT UNSIGNED0动作类型(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; 清空后角色登录时动作条为空白,需要重新拖拽技能。