工程参考/配置文件/Public/SkillBullet.txt

来自天龙知识库
跳到导航跳到搜索


首页 · 配置文件索引 · 修改约定

SkillBullet.txt 描述技能子弹(投射物)的表现:飞行特效、飞行音效、速度、爆炸特效、爆炸音效、击中绑定点,以及 5 个预留列。样本 4 条记录、15 列。本表当前不生效(见下)。

位置与生效 · 文件格式 · 字段详解 · 修改实例

文件位置与生效

项目 说明
运行文件 ../Public/Config/SkillBullet.txt,相对于客户端工作目录。客户端实际加载的是同目录的 Bullet.txt。
读取程序 客户端 GMDataBase.cpp 把子弹数据注册为 DBC_BULLET_DATA(id 129)并指向 “Bullet.txt”,不是 SkillBullet.txt;全树检索不到 SkillBullet.txt 的读取入口
生效方法 客户端读取的是 Bullet.txt;修改 SkillBullet.txt 并随客户端资源更新也不会被读取。服务端不需要重启。
样本格式 GB18030-compatibleCRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。

第 1 列是子弹编号,客户端按它查询;第 2、3 列是子弹类型与初始位置类型;第 4 到 9 列是表现信息(飞行特效/音效、速度、爆炸特效/音效、击中绑定点),其中特效与音效是资源名或路径,绑定点如“身体受击点”;第 10 到 14 列是预留列,样本为空;第 15 列是中文描述。

整表除编号/类型/速度外多为字符串,写进去的是资源名或路径。本表与 Server/SkillObjData_V1.txt 都基于 _DBC_BULLET_DATA 结构,但客户端实际读取的是 Bullet.txt,本文件同名不同命。

文件格式

首行是类型行:INT INT INT STRING STRING FLOAT STRING STRING STRING STRING STRING STRING STRING STRING STRING;第二行是列名行,程序跳过其内容;从第三行开始读取数据。各列用真实 Tab 分隔,保留首列、空列及行尾,不用空格代替。数据行行首 # 表示注释,分号不是此表的注释规则。首列为空的行被跳过;不足的尾列补为空值,多余列不参与本页字段读取。空整数和非数字经 atoi 可能成为 0,空字符串仍为空,不把解析成功当作业务合法。第一列须唯一,重复会触发读取器错误。

字段详解

列号从 1 开始,源码列下标从 0 开始。

字段与类型 含义与修改要点 缺项或特殊值
第 1 列
INT:ID
子弹数据的编号,客户端按此查询。服务端不读取本表。 空首列使数据行被跳过;须唯一。
第 2 列
INT:类型
子弹类型,区分不同的子弹行为。 空为 0。
第 3 列
INT:初始位置类型
子弹生成的初始位置类型(如施法者、目标)。 空为 0。
第 4 列
STRING:子弹飞行特效ID
飞行过程中播放的特效资源名。 空表示不播飞行特效。
第 5 列
STRING:飞行音效ID
飞行音效资源路径;样本多为空。 空表示不出声。
第 6 列
FLOAT:速度(m/s)
子弹飞行速度,单位米/秒。 空为 0,子弹不移动。
第 7 列
STRING:子弹爆炸特效ID
子弹到达/爆炸时播放的特效资源名。 空表示不播爆炸特效。
第 8 列
STRING:爆炸音效ID
爆炸音效资源路径。 空表示不出声。
第 9 列
STRING:击中特效的绑定点
命中特效挂到的骨骼绑定点名称(如“身体受击点”)。 空按默认绑定。
第 10 列
STRING:预留1
样本为空。 未使用。
第 11 列
STRING:预留2
样本为空。 未使用。
第 12 列
STRING:预留3
样本为空。 未使用。
第 13 列
STRING:预留4
样本为空。 未使用。
第 14 列
STRING:预留5
样本为空。 未使用。
第 15 列
STRING:描述$1$
中文描述,$1$ 是客户端格式化占位符,只供阅读。 空值原样存入。

常用修改实例

示例为局部教学片段,先备份原运行文件,再修改对应行并保留其余配置。教学值不是程序默认值。 以下代码块保留真实 Tab;本地示例文件保留原样本编码、中文表头与 CRLF。网页文字使用浏览器编码显示,不表示运行文件应改存 UTF-8。

把 1 号子弹的速度从 1000 改成 1200(教学用,实际不生效)

修改前:

INT	INT	INT	STRING	STRING	FLOAT	STRING	STRING	STRING	STRING	STRING	STRING	STRING	STRING	STRING
ID	类型	初始位置类型	子弹飞行特效ID	飞行音效ID	速度(m/s)	子弹爆炸特效ID	爆炸音效ID	击中特效的绑定点	预留1	预留2	预留3	预留4	预留5	描述$1$
1	0	0	g01_zd_yueluoxishan		1000	g01_zdo_yueluoxishan_01		身体受击点						月落西山

修改后:

INT	INT	INT	STRING	STRING	FLOAT	STRING	STRING	STRING	STRING	STRING	STRING	STRING	STRING	STRING
ID	类型	初始位置类型	子弹飞行特效ID	飞行音效ID	速度(m/s)	子弹爆炸特效ID	爆炸音效ID	击中特效的绑定点	预留1	预留2	预留3	预留4	预留5	描述$1$
1	0	0	g01_zd_yueluoxishan		1200	g01_zdo_yueluoxishan_01		身体受击点						月落西山

按第一列定位 1 号子弹。样本第 6 列速度为 1000(米/秒),改为 1200。只改第 6 列,保留 15 列和其余 3 行。本片段含类型行、列名行与该行,不能覆盖整表。

该列是飞行速度;由于客户端读的是 Bullet.txt 不是本文件,改完之后运行也不会受影响。

验证与排查

客户端启动日志加载的是 Bullet.txt(DBC_BULLET_DATA),不是本文件名;本表不会影响运行。判断依据是 DBC 注册表指向的文件名,不是日志是否报错。

客户端用 Bullet.txt,不是 SkillBullet.txt

客户端 GMDataBase.cpp:176 把 DBC_BULLET_DATA(129) 映射到 “Bullet.txt”,Obj_Bullet.cpp 用 Search_Index_EQU 按子弹 ID 查 Bullet.txt。SkillBullet.txt 同名不同命,是未被加载的备用/旧文件。

与 SkillObjData 共用结构

本表与 Server/SkillObjData_V1.txt 都基于 _DBC_BULLET_DATA 结构;两者当前都没有生效的加载入口。

关联与依据

Public/ImpactDirectly.txt · Public/Impact.txt · Public/ImpactSEData_V1.txt

其他配置及整理状态 · 服务端外网设置 · Lua 接口索引

  • Client/Client/Common/TDDBC_Struct.h:实际加载、解析、字段使用或示例关联依据
  • Client/Client/Game/DBC/GMDataBase.cpp:实际加载、解析、字段使用或示例关联依据
  • Client/Client/Game/Object/Surface/Obj_Bullet.cpp:实际加载、解析、字段使用或示例关联依据
  • Common/GameStruct_Skill.h:实际加载、解析、字段使用或示例关联依据
  • resources/Public/Config/SkillBullet.txt:实际加载、解析、字段使用或示例关联依据

本页核对客户端 GMDataBase.cpp 的 DBC_BULLET_DATA 注册(指向 Bullet.txt)、Obj_Bullet.cpp 的使用,以及 GameStruct_Skill.h 的 _DBC_BULLET_DATA 结构;确认 SkillBullet.txt 无读取入口;未运行客户端。