玩家创建动作表定义了新创建的玩家角色在进入游戏时自动执行的动作。这些动作可以包括学习法术、获得技能、执行特定行为等,用于为不同种族和职业的新角色提供初始化设置。
字段名 | 类型 | 描述 |
---|---|---|
race | tinyint unsigned | 种族ID |
详细说明:指定这个动作适用的种族。对应CharRaces.dbc文件中的种族ID,决定了哪个种族的新角色会执行这个动作。
取值范围:1 - 255 (tinyint unsigned的范围) 常用种族ID:
注意:必须与playercreateinfo表中的race字段对应 |
||
class | tinyint unsigned | 职业ID |
详细说明:指定这个动作适用的职业。对应CharClasses.dbc文件中的职业ID,与种族ID组合确定具体的角色类型。
取值范围:1 - 255 (tinyint unsigned的范围) 常用职业ID:
组合限制:种族和职业的组合必须是游戏中允许的有效组合 |
||
button | smallint unsigned | 动作栏位置 |
详细说明:指定动作在玩家动作栏中的位置。动作栏是玩家界面底部的技能快捷栏,这个字段决定了动作被放置在哪个位置。
取值范围:0 - 143 (对应动作栏的不同位置) 位置分布:
设计建议:将重要的基础技能放在主动作栏的前几个位置(0-5) |
||
action | int unsigned | 动作ID |
详细说明:指定要执行的动作的ID。这个ID的含义取决于type字段的值,可以是法术ID、物品ID、宏ID等。
取值范围:0 - 4294967295 (int unsigned的范围) 根据type字段的不同含义:
常用法术示例:
注意:确保action ID与type字段匹配,且在对应的数据表中存在 |
||
type | smallint unsigned | 动作类型 |
详细说明:定义动作的类型,决定了action字段应该如何解释。不同的类型对应不同的游戏功能。
取值范围:0 - 65535 (smallint unsigned的范围) 常用动作类型:
使用场景:
注意:最常用的是type=0(法术),用于设置新角色的初始技能栏 |
当玩家创建新角色时,系统会:
-- 为人类战士设置基础动作栏
INSERT INTO playercreateinfo_action (race, class, button, action, type) VALUES
(1, 1, 0, 6603, 0), -- 自动攻击放在位置0
(1, 1, 1, 78, 0), -- 英勇打击放在位置1
(1, 1, 2, 2457, 0); -- 战斗姿态放在位置2
-- 为暗夜精灵猎人设置动作栏
INSERT INTO playercreateinfo_action (race, class, button, action, type) VALUES
(4, 3, 0, 6603, 0), -- 自动攻击
(4, 3, 1, 75, 0), -- 自动射击
(4, 3, 2, 2973, 0), -- 猛禽一击
(4, 3, 3, 1494, 0), -- 追踪野兽
(4, 3, 4, 58984, 0); -- 影遁 (暗夜精灵种族技能)
SELECT pca.*, s.SpellName
FROM playercreateinfo_action pca
LEFT JOIN spell_template s ON pca.action = s.ID AND pca.type = 0
WHERE pca.race = 1 AND pca.class = 1 -- 人类战士
ORDER BY pca.button;
SELECT action, COUNT(*) as class_count
FROM playercreateinfo_action
WHERE type = 0
GROUP BY action
HAVING class_count > 5 -- 超过5个职业都有的技能
ORDER BY class_count DESC;