文件概述

CharTitles.dbc 存储了玩家可以在游戏中获得并使用的所有头衔(如"纳鲁的勇士"、"火车王"等)。每个头衔有唯一的编号(ID),通过第2列的标识关联服务端获取条件,并通过第37列的头衔排列编号控制在角色界面的头衔下拉菜单中的显示顺序(最大不能超过186)。根据 CHM 中文详解,第2列为"标识",客户端不使用,也许是服务端使用的,第37列为"头衔排列编号",上限186

数据库对应表:world.chartitles_dbc。服务端通过 character_titles 表记录玩家已获得的头衔。

列结构

序号字段名类型说明
1IDint头衔编号(主键)。头衔的唯一编号
2Condition_IDint标识(CHM:标识,客户端不使用,也许是服务端使用的)。在 AzerothCore 中用作获取条件ID,关联 conditions 表
3-18Name_Lang_*varchar(100)头衔名称(CHM:头衔名称,男性角色使用)。多语言文本(16种语言)
19Name_Lang_Maskint名称分隔标识(CHM:未使用)。固定值标记
20-35Name_Female_Lang_*varchar(100)女性角色使用的头衔名称(CHM:头衔名称,女性角色使用)。多语言文本(16种语言)
36Female_Name_Maskint女性名称分隔标识(CHM:未使用)。固定值标记
37Mask_IDint头衔排列编号(CHM:头衔排列编号,在游戏中的头衔下拉菜单里使用,最大不能超过186)。用于排序和分组

重要字段详解

头衔名称结构
CHM 详解指出名称分男性/女性两组:
  • 前后缀模式:名称为 "%s, 部落的勇士" 表示前缀 "部落的勇士 %s",格式为 "位置标记, 头衔名" 则头衔在前
  • 普通模式:名称不含 %s,直接显示为头衔文本
  • 大多数头衔使用 "%s" 占位符来表示角色名的位置
  • 第3-18列:男性角色使用的头衔名称(16种语言)
  • 第20-35列:女性角色使用的头衔名称(16种语言),某些头衔在不同性别下有不同表述
Condition_ID / 标识(获取条件)
CHM 指出该列为"标识,客户端不使用,也许是服务端使用的"。在 AzerothCore 中关联 conditions 表定义头衔的获取条件:
常见条件类型说明
CONDITION_ACHIEVEMENT (25)完成特定成就后获得
CONDITION_QUESTREWARDED (8)完成特定任务后获得
CONDITION_RANK_REPUTATION (14)达到特定声望等级
0无条件获得或通过脚本授予
Mask_ID / 头衔排列编号
CHM 详解说明该列用于"在游戏中的头衔下拉菜单里使用",最大不能超过186。在游戏中用于:
  • 头衔下拉列表的排序和分组
  • 同一位掩码区域内的头衔按 ID 顺序排列
  • PvP 头衔、成就头衔、声望头衔各分配不同的排列编号区域
  • 该编号相当于游戏内头衔下拉菜单的位置索引

使用技巧

查询所有中文头衔名称:
SELECT ID, Name_Lang_zhCN AS 头衔名, Condition_ID, Mask_ID AS 排列编号
FROM chartitles_dbc
ORDER BY Mask_ID, ID;
授予玩家头衔(GM命令):
-- 方法1: GM命令
.character titles known 1     -- 获得ID=1的头衔
.character titles set 1       -- 设置当前头衔为ID=1
.character titles current 1   -- 同上
-- 方法2: 直接修改数据库
INSERT INTO character_titles (guid, title, known)
VALUES (玩家GUID, 头衔ID, 1)
ON DUPLICATE KEY UPDATE known = 1;