📋 字段结构

索引字段名类型说明
0IDuint32弹道唯一标识符
1Flagsuint32弹道行为标志
2DefaultPitchMinfloat默认最小俯仰角
3DefaultPitchMaxfloat默认最大俯仰角
4DefaultSpeedMinfloat默认最小飞行速度
5DefaultSpeedMaxfloat默认最大飞行速度
6RandomizeFacingMinfloat随机朝向最小值
7RandomizeFacingMaxfloat随机朝向最大值
8RandomizePitchMinfloat随机俯仰角最小值
9RandomizePitchMaxfloat随机俯仰角最大值
10RandomizeSpeedMinfloat随机速度最小值
11RandomizeSpeedMaxfloat随机速度最大值
12Gravityfloat重力系数
13MaxDurationfloat最大飞行时间(秒)
14CollisionRadiusfloat碰撞检测半径

📌 关键字段详解

ID - 弹道ID

被 Spell.dbc 的效果字段中的 SpellMissileID 引用。每个飞行法术对应一个弹道配置。常见:1=火球弹道、2=寒冰箭弹道、3=奥术飞弹弹道。

DefaultSpeedMin/Max - 飞行速度

投射物从施法者飞向目标的速度。单位:码/秒。火球约 24、寒冰箭约 22、暗影箭约 20、弓箭约 50。速度越快,命中延迟越短。

Gravity - 重力系数

控制弹道是否受重力影响而下坠。0=直线飞行(火球、暗影箭)、正数=抛物线轨迹(猎人射箭有一定下坠效果)。

CollisionRadius - 碰撞半径

投射物的碰撞检测范围。用于判断投射物是否命中目标或碰到地形。过大可能导致"穿墙"命中,过小可能导致视觉偏差。

🔧 使用示例

查询投射物配置

-- 查询所有投射物速度 > 30 的法术
SELECT DISTINCT s.ID AS SpellID, s.Name, sm.ID AS MissileID, sm.DefaultSpeedMin
FROM spell_dbc s
JOIN spell_missile sm ON s.EffectMissileID_1 = sm.ID
WHERE sm.DefaultSpeedMin > 30;

修改弹道速度

-- 将火球弹道(ID=1)速度提升50%
UPDATE spell_missile SET DefaultSpeedMin = 36, DefaultSpeedMax = 36 WHERE ID = 1;

💡 使用技巧