playercreateinfo_skills - 玩家创建技能表

玩家创建技能表定义了新创建的玩家角色在进入游戏时自动获得的技能。这些技能包括武器技能、专业技能、语言技能等,为不同种族和职业的新角色提供基础的技能配置。

表结构

字段名 类型 描述
raceMask int unsigned 种族掩码
详细说明:使用位掩码表示适用的种族。可以同时指定多个种族,使用位运算组合不同种族的掩码值。
取值范围:1 - 4294967295 (int unsigned的范围)
种族掩码值:
  • 1 (0x1) - 人类 (Human)
  • 2 (0x2) - 兽人 (Orc)
  • 4 (0x4) - 矮人 (Dwarf)
  • 8 (0x8) - 暗夜精灵 (Night Elf)
  • 16 (0x10) - 亡灵 (Undead)
  • 32 (0x20) - 牛头人 (Tauren)
  • 64 (0x40) - 侏儒 (Gnome)
  • 128 (0x80) - 巨魔 (Troll)
  • 512 (0x200) - 血精灵 (Blood Elf)
  • 1024 (0x400) - 德莱尼 (Draenei)

组合示例:
  • 3 (1+2) - 人类和兽人
  • 1023 - 所有种族
  • 690 (2+16+32+128+512) - 所有部落种族

计算方法:将需要的种族掩码值相加,或使用位运算OR操作
classMask int unsigned 职业掩码
详细说明:使用位掩码表示适用的职业。可以同时指定多个职业,使用位运算组合不同职业的掩码值。
取值范围:1 - 4294967295 (int unsigned的范围)
职业掩码值:
  • 1 (0x1) - 战士 (Warrior)
  • 2 (0x2) - 圣骑士 (Paladin)
  • 4 (0x4) - 猎人 (Hunter)
  • 8 (0x8) - 盗贼 (Rogue)
  • 16 (0x10) - 牧师 (Priest)
  • 32 (0x20) - 死亡骑士 (Death Knight)
  • 64 (0x40) - 萨满 (Shaman)
  • 128 (0x80) - 法师 (Mage)
  • 256 (0x100) - 术士 (Warlock)
  • 1024 (0x400) - 德鲁伊 (Druid)

组合示例:
  • 3 (1+2) - 战士和圣骑士
  • 1535 - 所有职业
  • 400 (16+128+256) - 法系职业

注意:职业掩码必须与种族掩码形成有效的种族职业组合
skill smallint unsigned 技能ID
详细说明:指定要给予的技能ID。对应SkillLine.dbc文件中的技能定义,决定了角色将学会哪种技能。
取值范围:1 - 65535 (smallint unsigned的范围)
常用技能类型:
  • 武器技能 - 各种武器的使用技能
  • 防御技能 - 格挡、招架、闪避等
  • 专业技能 - 采矿、草药学、锻造等
  • 语言技能 - 各种种族语言
  • 骑术技能 - 骑乘技能

常用技能ID示例:
  • 43 - 剑类武器
  • 44 - 斧类武器
  • 45 - 弓类武器
  • 46 - 枪械
  • 54 - 法杖
  • 95 - 防御
  • 98 - 语言:通用语
  • 109 - 语言:兽人语
  • 113 - 语言:矮人语

注意:确保技能ID在SkillLine.dbc中存在且适合指定的种族职业
rank smallint unsigned 技能等级
详细说明:指定技能的初始等级。决定了角色在获得技能时的熟练度水平。
取值范围:1 - 65535 (smallint unsigned的范围,但实际受技能最大等级限制)
等级设置原则:
  • 武器技能 - 通常设置为1,表示刚学会
  • 防御技能 - 通常设置为1
  • 专业技能 - 通常设置为1,表示学徒级别
  • 语言技能 - 母语设置为300,其他语言设置为1
  • 骑术技能 - 根据版本设置,如75(学徒)、150(熟练)

等级限制:
  • 不能超过技能的最大等级
  • 不能超过角色等级对应的技能上限
  • 1级角色的技能上限通常为5

建议设置:
  • 新手技能 - 设置为1,让玩家从基础开始
  • 种族天赋 - 可以设置稍高的等级体现种族特色
  • 职业核心技能 - 设置为1,通过游戏过程提升
comment varchar(255) 备注说明
详细说明:可选的备注字段,用于记录这个技能配置的说明、用途或特殊注意事项。这个字段不影响游戏功能,仅用于开发和维护时的参考。
字符限制:最大255个字符,可以为空(NULL)
建议用途:
  • 技能说明 - 描述技能的作用和重要性
  • 种族特色 - 说明为什么特定种族有这个技能
  • 职业需求 - 解释职业为什么需要这个技能
  • 版本信息 - 记录添加或修改的版本
  • 平衡考虑 - 记录设置这个等级的原因

示例备注:
  • "所有职业基础防御技能"
  • "种族母语 - 最高熟练度"
  • "战士职业核心武器技能"
  • "3.3.5版本调整 - 提升新手体验"

注意:良好的备注有助于团队协作和后续维护

功能说明

主要用途

工作机制

当玩家创建新角色时,系统会:

  1. 根据角色的种族和职业检查raceMask和classMask
  2. 如果匹配,将对应的技能添加到角色技能列表
  3. 设置技能的初始等级为rank字段的值
  4. 更新角色的技能面板显示
  5. 记录技能学习日志

配置示例

所有种族的通用语言技能

-- 所有种族都会通用语
INSERT INTO playercreateinfo_skills (raceMask, classMask, skill, rank, comment) VALUES
(1023, 1535, 98, 300, '通用语 - 所有种族母语级别');

战士职业的武器技能

-- 战士可以使用多种武器
INSERT INTO playercreateinfo_skills (raceMask, classMask, skill, rank, comment) VALUES
(1023, 1, 43, 1, '剑类武器 - 战士基础武器'),
(1023, 1, 44, 1, '斧类武器 - 战士基础武器'),
(1023, 1, 45, 1, '弓类武器 - 战士远程武器'),
(1023, 1, 95, 1, '防御技能 - 战士核心技能');

种族特定语言技能

-- 兽人种族的兽人语
INSERT INTO playercreateinfo_skills (raceMask, classMask, skill, rank, comment) VALUES
(2, 1535, 109, 300, '兽人语 - 兽人种族母语');

-- 矮人种族的矮人语
INSERT INTO playercreateinfo_skills (raceMask, classMask, skill, rank, comment) VALUES
(4, 1535, 113, 300, '矮人语 - 矮人种族母语');

查询示例

查看特定种族职业的技能配置

-- 查看人类战士的技能 (raceMask包含1, classMask包含1)
SELECT pcs.*, sl.name as skill_name
FROM playercreateinfo_skills pcs
LEFT JOIN skillline_template sl ON pcs.skill = sl.ID
WHERE (pcs.raceMask & 1) > 0 AND (pcs.classMask & 1) > 0
ORDER BY pcs.skill;

统计各技能的使用频率

SELECT skill, COUNT(*) as usage_count, 
       GROUP_CONCAT(DISTINCT comment) as descriptions
FROM playercreateinfo_skills
GROUP BY skill
ORDER BY usage_count DESC;

查找所有种族都有的通用技能

SELECT skill, rank, comment
FROM playercreateinfo_skills
WHERE raceMask = 1023  -- 所有种族
ORDER BY skill;

注意事项

⚠️ 重要提醒