SpellCastTimes.dbc
施法时间表(单位是毫秒)。CHM 详解:包含编号、施法时间、每级施法时间、最少施法时间。该文件控制法术的基础施法时间、每等级施法时间增量以及最小施法时间限制。
字段结构 - CHM详解
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 1 | ID | uint32 | 编号(CHM:编号)。施法时间唯一标识符,被 Spell.dbc 的 CastingTimeIndex 引用 |
| 2 | Base | uint32 | 施法时间(CHM:施法时间)。基础施法时间(毫秒),0 表示瞬发 |
| 3 | PerLevel | uint32 | 每级施法时间(CHM:每级施法时间)。每等级增加的施法时间(毫秒) |
| 4 | Minimum | uint32 | 最少施法时间(CHM:最少施法时间)。最小施法时间(毫秒),施法时间不能低于此值 |
关键字段详解
ID / 编号 - 施法时间索引
CHM 详解说明该列为"编号"。该 ID 在 Spell.dbc 的 CastingTimeIndex(第 22 列)字段中被引用。常见值:1=瞬发(0ms)、2=微弱(250ms)、3=短(500ms)、4=中等(1000ms)、5=稍长(1500ms)、6=长(2000ms)、7=较长(3000ms)、8=超长(5000ms)。
Base / 施法时间
CHM 详解说明该列为"施法时间"。以毫秒为单位的原始施法时间。例如 1500 表示 1.5 秒施法,0 表示瞬发法术。常见值:1500(1.5秒火球术)、2000(2秒寒冰箭)、3000(3秒炎爆术)、10000(10秒炉石)。
PerLevel / 每级施法时间
CHM 详解说明该列为"每级施法时间"。施法时间随角色等级提升而增加的毫秒数。大多数值为 0,意味着施法时间不随等级变化。
Minimum / 最少施法时间
CHM 详解说明该列为"最少施法时间"。施法时间的最低限制值。即使通过急速属性降低施法时间,也不会低于此值。通常为 0 或与 Base 值相同。
使用示例
查询法术施法时间
-- 查询法术ID 133(火球术)的施法时间
SELECT s.ID AS SpellID, s.Name, ct.Base AS CastTimeMs, ct.PerLevel, ct.Minimum
FROM spell_dbc s
JOIN spell_cast_times ct ON s.CastingTimeIndex = ct.ID
WHERE s.ID = 133;
使用技巧
- 瞬发法术:将 Spell.dbc 的 CastingTimeIndex 设为 1(Base=0)即可实现瞬发。
- 通道法术:通道类法术不使用此表,而是在 Spell.dbc 的 DurationIndex 中定义持续时间。
- 急速影响:施法时间 = Base / (1 + 法术急速百分比)。最终结果受 Minimum 值约束。