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

来自天龙知识库
雪舞留言 | 贡献2026年9月11日 (五) 17:03的版本 (维护配置文件知识库:完整字段、读取范围、手工修改实例与核对状态)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航跳到搜索


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

ImpactCollections.txt 把效果标识按分类归组:每一行是一个分类,第 1 列是分类编号,第 2 列是说明,第 3 列是本类包含多少个 ID,第 4 到 33 列最多 30 个效果标识 ID,第 34 列是测试用结尾说明。样本 11 条记录、34 列。本表当前不生效(见下)。

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

文件位置与生效

项目 说明
运行文件 ../Public/Config/ImpactCollections.txt,相对于服务端工作目录。
读取程序 服务端 GameTable.cpp 的 InitIdCollectionMgr 加载的是 FILE_ID_COLLECTION(日志写“Load IDCollections.txt”),文件名是复数 IDCollections.txt;本文件名为 ImpactCollections.txt,与加载入口不一致,全树检索不到 ImpactCollections.txt 的读取入口
生效方法 服务端加载的是 IDCollections.txt 而不是本文件;修改本文件并重启不会产生影响。
样本格式 GB18030-compatibleCRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。

第 3 列“本类中的 ID 数量”决定读取器实际取前 N 个 ID 列;超过 N 的列即使写了值也不会被读到。第 4 到 33 列是固定的 30 个 ID 槽位,读取时按第 3 列截断。第 2、34 列是说明文字,只供阅读。

这种“分类 + 数量 + 定长 ID 数组”的布局与运行时的 IDCollection_T / g_IDCollectionMgr 一致,但本文件并未被加载——服务端加载的是文件名不同的 IDCollections.txt。

文件格式

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

字段详解

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

字段与类型 含义与修改要点 缺项或特殊值
第 1 列
INT:标识ID的分类ID
本分类的编号,用于归类一组效果标识。 空为 0。
第 2 列
STRING:分类说明$1$
分类的中文说明,$1$ 是客户端格式化占位符,只供阅读。 空值原样存入。
第 3 列
INT:本类中的ID数量
实际读取的 ID 个数;读取器只取前 N 个 ID 列。 空为 0,不读任何 ID。
第 4 列
INT:ID1
第 1 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 5 列
INT:ID2
第 2 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 6 列
INT:ID3
第 3 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 7 列
INT:ID4
第 4 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 8 列
INT:ID5
第 5 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 9 列
INT:ID6
第 6 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 10 列
INT:ID7
第 7 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 11 列
INT:ID8
第 8 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 12 列
INT:ID9
第 9 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 13 列
INT:ID10
第 10 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 14 列
INT:ID11
第 11 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 15 列
INT:ID12
第 12 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 16 列
INT:ID13
第 13 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 17 列
INT:ID14
第 14 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 18 列
INT:ID15
第 15 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 19 列
INT:ID16
第 16 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 20 列
INT:ID17
第 17 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 21 列
INT:ID18
第 18 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 22 列
INT:ID19
第 19 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 23 列
INT:ID20
第 20 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 24 列
INT:ID21
第 21 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 25 列
INT:ID22
第 22 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 26 列
INT:ID23
第 23 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 27 列
INT:ID24
第 24 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 28 列
INT:ID25
第 25 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 29 列
INT:ID26
第 26 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 30 列
INT:ID27
第 27 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 31 列
INT:ID28
第 28 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 32 列
INT:ID29
第 29 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 33 列
INT:ID30
第 30 个效果标识 ID,归类到本分类下。读取数量由第 3 列决定。 空为 0。
第 34 列
STRING:结尾说明,测试用
样本标注“测试用”的结尾说明,只供阅读。 空值原样存入。

常用修改实例

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

把 1 号分类的第 1 个 ID 从 0 改成 100(教学用,实际不生效)

修改前:

INT	STRING	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	STRING
标识ID的分类ID	分类说明$1$	本类中的ID数量	ID1	ID2	ID3	ID4	ID5	ID6	ID7	ID8	ID9	ID10	ID11	ID12	ID13	ID14	ID15	ID16	ID17	ID18	ID19	ID20	ID21	ID22	ID23	ID24	ID25	ID26	ID27	ID28	ID29	ID30	结尾说明,测试用
1	持续伤害	20	0	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16	17	18	19											

修改后:

INT	STRING	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	STRING
标识ID的分类ID	分类说明$1$	本类中的ID数量	ID1	ID2	ID3	ID4	ID5	ID6	ID7	ID8	ID9	ID10	ID11	ID12	ID13	ID14	ID15	ID16	ID17	ID18	ID19	ID20	ID21	ID22	ID23	ID24	ID25	ID26	ID27	ID28	ID29	ID30	结尾说明,测试用
1	持续伤害	20	100	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16	17	18	19											

按第一列定位 1 号分类。样本第 4 列 ID1 为 0,改为 100。只改第 4 列,保留 34 列和其余 10 行。本片段含类型行、列名行与该行,不能覆盖整表。

该列是效果标识 ID;由于本表不被加载(服务端读的是 IDCollections.txt),改完之后运行也不会受影响。

验证与排查

服务端启动日志出现的是“Load IDCollections.txt”,不是本文件名;本表不会影响运行。判断依据是 InitIdCollectionMgr 的宏与文件名,不是日志是否报错。

文件名差异

服务端运行时加载“IDCollections.txt”(复数),本仓库里对应的生效文件若是那个名字才能被读到;ImpactCollections.txt 是未被加载的备用/旧文件,改它没有运行效果。

与服务端集合逻辑的关系

效果互斥/集合判定走 IDCollection_T 与 g_IDCollectionMgr(Impact_IsImpactInCollection 等),数据来自 IDCollections.txt,不是本表。

关联与依据

Public/Impact.txt · Public/ImpactSEData_V1.txt · Server/StandardImpact.txt

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

  • Server/Server/GameServer/Server/Main/GameTable.cpp:实际加载、解析、字段使用或示例关联依据
  • Common/ServerBase/FileDef.h:实际加载、解析、字段使用或示例关联依据
  • resources/Public/Config/ImpactCollections.txt:实际加载、解析、字段使用或示例关联依据

本页核对 GameTable.cpp 的 InitIdCollectionMgr 加载入口(FILE_ID_COLLECTION → IDCollections.txt 复数)与 FileDef.h 宏,确认 ImpactCollections.txt 无读取入口;未启动服务端。