MapDifficulty.dbc
地图难度定义文件。定义了副本/团本地图在不同难度下的配置参数,包括重置时间、最大玩家数、难度说明文字等
文件概述
MapDifficulty.dbc 为每张地图定义不同难度模式的配置。每个难度对应独立的记录,控制副本重置周期、允许的玩家数量、以及不满足进入条件时向玩家显示的区域触发文字。
列结构
| 列号 | 字段 | 类型 | 详细说明 |
|---|---|---|---|
| 1 | 编号 | 整数 | 难度配置唯一标识符 |
| 2 | 地图编号 | 整数 | 对应的地图编号,参考 Map.dbc |
| 3 | 难度 | 整数 | 难度等级。对于竞技场地图为竞技场槽位。值:0=5人普通、1=5人英雄、2=10人普通团本、3=25人普通团本、4=10人英雄团本 |
| 4~19 | 区域触发文字 | 字符串 | 传送进入地图失败时显示的文字(即不满足进入要求时),支持各国语言版本 |
| 20 | 文字标识 | 整数 | 区域触发文字的标志位 |
| 21 | 重置时间 | 整数 | 副本锁定重置时间(秒)。86400=1天、259200=3天、604800=7天(大部分团本) |
| 22 | 最大玩家数量 | 整数 | 实例最大允许的玩家数。5人副本=5、10人团本=10、25人团本=25 |
| 23 | 难度说明 | 字符串 | 难度显示文本,如"10 Player"、"25 Player"、"Heroic"等 |
关键字段详解
难度等级
WotLK 定义如下:
| 值 | 难度 | 说明 |
|---|---|---|
| 0 | 5人普通 (DUNGEON_NORMAL) | 普通5人副本 |
| 1 | 5人英雄 (DUNGEON_HEROIC) | 英雄5人副本 |
| 2 | 10人普通团本 | RAID_10MAN_NORMAL |
| 3 | 25人普通团本 | RAID_25MAN_NORMAL |
| 4 | 10人英雄团本 | RAID_10MAN_HEROIC |
对于竞技场地图,难度字段表示竞技场槽位编号。
区域触发文字(列4~19)
玩家试图传送到地图但条件不满足时,显示对应的提示文字告知玩家无法进入的原因。例如等级不足、未完成前置任务、副本已锁定等。支持多种语言的本地化。
重置时间
常见设置:
- 0:5人普通模式,可随时手动重置
- 86400(1天):5人英雄模式,每天凌晨重置
- 259200(3天):部分特殊副本
- 604800(7天):大部分团本,每周重置
最大玩家数量
超出上限的玩家无法进入实例。如果此字段未定义或为0,则回退到 Map.dbc 中设置的最大玩家数。
使用示例
查询团本重置时间
-- 查询所有7天重置的团本
SELECT m.MapName_enUS, md.难度, md.重置时间, md.最大玩家数量
FROM map_difficulty md
JOIN map_dbc m ON md.地图编号 = m.ID
WHERE md.重置时间 = 604800;
使用技巧
- 重置计时:向世界配置中 ResetSchedule 时间点对齐
- 难度限制:玩家不能进入未在此定义难度的副本地图
- 自定义重置:修改重置时间可调整副本重置周期
- 参考:AzerothCore Wiki - map_difficulty