playercreateinfo_action 表
playercreateinfo_action表定义新角色创建时动作栏的初始配置,包括技能和物品在动作条上的位置。
表概述
playercreateinfo_action表配置新角色的动作栏按钮布局。每种种族-职业组合都有独立的动作栏配置,决定了角色创建后在动作条上预置哪些技能、物品或宏。
主键为 (race, class, button),每条记录对应一个动作栏按钮位置的配置。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| race | TINYINT UNSIGNED | 0 | 种族ID |
| class | TINYINT UNSIGNED | 0 | 职业ID |
| button | SMALLINT UNSIGNED | 0 | 动作栏按钮编号(0-119) |
| action | INT UNSIGNED | 0 | 放置的动作ID(技能ID或物品ID) |
| type | SMALLINT UNSIGNED | 0 | 动作类型:0=技能,64=宏,128=物品 |
重要字段详解
button (按钮编号)
动作栏按钮编号范围 0-119,对应游戏界面中的动作条位置:
- 0-11 - 主动作条(第1行,12个按钮)
- 12-23 - 第2行动作条
- 24-35 - 第3行动作条
- 以此类推,共120个按钮位
type (动作类型)
定义action字段的含义:
- 0 - 技能/法术(action为SpellID)
- 64 - 宏(action为宏ID)
- 128 - 物品(action为ItemID)
最常见的是type=0(技能),用于在动作条上预置职业初始技能。
action (动作内容)
根据type不同,action的含义也不同。例如type=0时action为技能ID:
- 战士 - 自动攻击(6603)、英勇打击(78)
- 法师 - 火球术(133)、冰箭术(116)
- 牧师 - 惩击(585)、快速治疗(2061)
实战案例
查询人类战士的动作栏初始配置:
SELECT button, action, type
FROM playercreateinfo_action
WHERE race = 1 AND class = 1
ORDER BY button;
查询所有职业初始动作条上的技能(带名称):
SELECT pca.race, pca.class, pca.button, pca.action, s.SpellName
FROM playercreateinfo_action pca
LEFT JOIN spell_dbc s ON pca.action = s.Id
WHERE pca.type = 0
ORDER BY pca.race, pca.class, pca.button;
为血精灵法师添加初始技能到动作栏:
INSERT INTO playercreateinfo_action (race, class, button, action, type)
VALUES (10, 8, 0, 133, 0); -- 火球术放在第1个按钮
常见问题
Q: 新建角色动作栏为空,如何排查?
检查playercreateinfo_action表中是否存在该(race, class)组合的button配置。缺少记录时动作栏将为空白。
Q: 如何为所有种族统一配置动作栏?
需要为每种(race, class)组合分别配置,但可以通过SQL批量INSERT来简化操作。