SpellDescriptionVariables.dbc
法术描述变量定义表。控制法术提示文本中的动态变量替换规则,如$s1(伤害值)、$d(持续时间)、$m1(数值1)等占位符与游戏数据的映射关系。该表共30条记录,2个字段。
文件概述
SpellDescriptionVariables.dbc 定义了法术描述文本中的变量替换规则。DBC文件头信息:30条记录,2个字段,每条记录8字节,字符串块2527字节。
当游戏显示法术提示信息时(鼠标悬停在技能图标上),描述文本中包含各种变量占位符,如:
$s1— 第1个效果的值$m1— 第1个效果的数值$d— 持续时间$t1— 第1个效果的持续时间$a1— 半径$o1— 目标类型
该表将这些占位符与 Spell.dbc 中实际的效果数值关联,确保玩家看到的描述文本与实际效果一致。通过此表,同一个法术模板可以自动适配不同等级的数值变化。
列结构
| 列号 | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | ID | int | 编号。变量规则唯一标识符 |
| 2 | Variables | string | 变量定义字符串。包含变量占位符与数据源的映射规则文本,如"$s1;$m1:spell_effect_1;$d:duration" |
变量类型速查表
| 变量前缀 | 含义 | 数据来源 | 示例 |
|---|---|---|---|
$s1 - $s3 | 效果基础值(缩放前) | Spell.dbc EffectBasePoints | "造成 $s1 点伤害" |
$m1 - $m3 | 效果数值(缩放后) | Spell.dbc EffectBasePoints+法强加成 | "治疗 $m1 点伤害" |
$d | 持续时间 | SpellDuration.dbc | "持续 $d 秒" |
$t1 - $t3 | 效果持续时间 | Spell.dbc EffectDuration | "冷却 $t1 秒" |
$a1 - $a3 | 效果半径 | SpellRadius.dbc | "$a1 码内的敌人" |
$o1 - $o3 | 效果目标类型 | SpellTargets | "对 $o1 施放" |
$i | 物品数量/层数 | 物品或叠加层数 | "消耗 $i 点法力" |
$u | 消耗资源值 | Spell.dbc ManaCost | "需要 $u 点怒气" |
重要字段详解
Variables / 变量定义字符串(第2列)
该字段存储的是变量映射规则的文本描述。每个变量通过特定的语法引用 Spell.dbc 中的效果数据。系统在渲染法术描述时,将这些变量动态替换为当前法术等级的实际数值。
变量规则定义了变量的数据来源路径,告诉游戏引擎如何从 Spell.dbc 效果字段中提取数值并格式化显示。
公式与变量交互
当法术效果使用计算公式(而非固定值)时,$s 和 $m 变量会自动根据角色属性重新计算。例如:
法术:火球术
描述:"对目标造成 $s1 到 $s2 点火焰伤害"
渲染后:"对目标造成 596 到 760 点火焰伤害"
描述:"对目标造成 $s1 到 $s2 点火焰伤害"
渲染后:"对目标造成 596 到 760 点火焰伤害"
其中 $s1 和 $s2 的值来源于 Spell.dbc 中 EffectBasePoints[0] 和 EffectBasePoints[1]。
使用技巧
自定义法术描述变量的常见模式
在 Spell.dbc 的 Description 字段中使用以下变量格式:
-- 简单伤害法术 --
"对敌人造成 $s1 点火焰伤害"
-- 持续效果法术 --
"在 $d 秒内每 $t1 秒造成 $s1 点伤害"
-- 多效果法术 --
"造成 $s1 伤害,并减速 $s2% 持续 $d 秒"
关联表
- Spell.dbc(Description字段中使用变量)——法术描述文本
- SpellDuration.dbc($d 变量)——持续时间定义
- SpellRadius.dbc($a 变量)——效果半径