表概述

playercreateinfo_action表配置新角色的动作栏按钮布局。每种种族-职业组合都有独立的动作栏配置,决定了角色创建后在动作条上预置哪些技能物品

主键为 (race, class, button),每条记录对应一个动作栏按钮位置的配置。

表结构

字段名数据类型默认值说明
raceTINYINT UNSIGNED0种族ID
classTINYINT UNSIGNED0职业ID
buttonSMALLINT UNSIGNED0动作栏按钮编号(0-119)
actionINT UNSIGNED0放置的动作ID(技能ID或物品ID)
typeSMALLINT UNSIGNED0动作类型: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来简化操作。