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

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


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

Impact.txt 是“实例效果”表:一条效果持续多久、发作几次、最多叠几层,以及最多 8 段原子操作(每段一个操作编号加两个参数再加一个修正公式),再加上触发/伤害特效与图标。样本 17 条记录、46 列。本表当前不生效(见下)。

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

文件位置与生效

项目 说明
运行文件 ../Public/Config/Impact.txt,相对于客户端工作目录。服务端工作目录下没有这份文件。
读取程序 客户端 GMDataBase.cpp 注册的是 SkillAddImpact.txt(DBC_SKILL_ADDIMPACT)、ImpactSEData_V1.txt(DBC_BUFF_IMPACT)与 ImpactDirectly.txt(DBC_DIRECTLY_IMPACT),并未把 Impact.txt 注册为任何 DBC id;服务端 FileDef.h 也没有 FILE_IMPACT 宏
生效方法 改的是客户端资源表现;但因客户端并未注册 Impact.txt,改后随客户端资源更新也不会被读取。服务端不需要重启。
样本格式 GB18030-compatibleCRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。

第 1 到 8 列是一条效果的固定属性:ID、分类、互斥标记、是否同步、最大叠加次数、发作间隔、持续时间、持续时间修正公式。第 9 到 40 列是 8 组四段结构,每组由原子操作 ID、参数1、参数2、修正公式 ID 组成(共 32 列);中间插列会让后面所有组整体错位。第 41 到 46 列是触发特效、伤害特效及其绑定点、图标与描述。

第 1 列是主键,客户端按它查询;ATOI 失败或重复会触发读取错误。互斥标记 -1 表示不参与互斥。8 段原子操作真正解释数值的是第 3 列 Class_ID 对应的逻辑,不要只按列名猜算法。

文件格式

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

字段详解

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

字段与类型 含义与修改要点 缺项或特殊值
第 1 列
INT:ID
客户端按此 ID 查询实例效果。服务端不读取本表。 空首列使数据行被跳过;须唯一。
第 2 列
INT:Class_ID
效果分类编号,区分不同类别的实例效果。 空为 0。
第 3 列
INT:互斥标记
同互斥组的实例效果互相排斥;-1 表示不参与互斥。 -1 为不参与。
第 4 列
INT:是否同步(0/1)
非 0 表示效果状态需要向其它客户端同步。 空为 0,不同步。
第 5 列
INT:最大叠加次数
同一条效果在一身最多叠加的次数。 空为 0,不叠加。
第 6 列
INT:发作时间间隔(ms)
两次发作之间的间隔(毫秒)。 空为 0,只发作一次。
第 7 列
INT:持续时间(ms)
效果总持续时间(毫秒)。 空为 0,瞬发。
第 8 列
INT:持续时间修正公式ID
修正持续时间的公式编号;-1 表示不修正。 -1 为不修正。
第 9 列
INT:原子操作ID(1)
第 1 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 10 列
INT:参数1(1)
第 1 段原子操作的第一个参数。 空为 0。
第 11 列
INT:参数2(1)
第 1 段原子操作的第二个参数。 空为 0。
第 12 列
INT:修正公式ID(1)
第 1 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 13 列
INT:原子操作ID(2)
第 2 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 14 列
INT:参数1(2)
第 2 段原子操作的第一个参数。 空为 0。
第 15 列
INT:参数2(2)
第 2 段原子操作的第二个参数。 空为 0。
第 16 列
INT:修正公式ID(2)
第 2 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 17 列
INT:原子操作ID(3)
第 3 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 18 列
INT:参数1(3)
第 3 段原子操作的第一个参数。 空为 0。
第 19 列
INT:参数2(3)
第 3 段原子操作的第二个参数。 空为 0。
第 20 列
INT:修正公式ID(3)
第 3 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 21 列
INT:原子操作ID(4)
第 4 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 22 列
INT:参数1(4)
第 4 段原子操作的第一个参数。 空为 0。
第 23 列
INT:参数2(4)
第 4 段原子操作的第二个参数。 空为 0。
第 24 列
INT:修正公式ID(4)
第 4 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 25 列
INT:原子操作ID(5)
第 5 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 26 列
INT:参数1(5)
第 5 段原子操作的第一个参数。 空为 0。
第 27 列
INT:参数2(5)
第 5 段原子操作的第二个参数。 空为 0。
第 28 列
INT:修正公式ID(5)
第 5 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 29 列
INT:原子操作ID(6)
第 6 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 30 列
INT:参数1(6)
第 6 段原子操作的第一个参数。 空为 0。
第 31 列
INT:参数2(6)
第 6 段原子操作的第二个参数。 空为 0。
第 32 列
INT:修正公式ID(6)
第 6 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 33 列
INT:原子操作ID(7)
第 7 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 34 列
INT:参数1(7)
第 7 段原子操作的第一个参数。 空为 0。
第 35 列
INT:参数2(7)
第 7 段原子操作的第二个参数。 空为 0。
第 36 列
INT:修正公式ID(7)
第 7 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 37 列
INT:原子操作ID(8)
第 8 段原子操作的编号,决定这一段做什么数值变化。 空为 0。
第 38 列
INT:参数1(8)
第 8 段原子操作的第一个参数。 空为 0。
第 39 列
INT:参数2(8)
第 8 段原子操作的第二个参数。 空为 0。
第 40 列
INT:修正公式ID(8)
第 8 段效果的修正公式编号;-1 表示不修正。 -1 为不修正。
第 41 列
STRING:触发特效ID
效果触发时播放的特效资源名。 空表示不播特效。
第 42 列
INT:触发特效的绑定点
触发特效挂到哪个骨骼绑定点。 空为 0。
第 43 列
STRING:伤害特效ID
产生伤害时播放的特效资源名。 空表示不播特效。
第 44 列
INT:伤害特效的绑定点
伤害特效的绑定点编号。 空为 0。
第 45 列
INT:图标ID
效果在界面上显示的图标资源编号。 空为 0。
第 46 列
STRING:效果描述$1$
中文描述,$1$ 是客户端格式化占位符,只供阅读。 空值原样存入。

常用修改实例

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

把 10 号实例效果的最大叠加次数从 1 改成 3(教学用,实际不生效)

修改前:

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	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	STRING	INT	INT	INT	STRING
ID	Class_ID	互斥标记	是否同步(0/1)	最大叠加次数	发作时间间隔(ms)	持续时间(ms)	持续时间修正修正公式ID	原子操作ID(1)	参数1(1)	参数2(1)	修正公式ID(1)	原子操作ID(2)	参数1(2)	参数2(2)	修正公式ID(2)	原子操作ID(3)	参数1(3)	参数2(3)	修正公式ID(3)	原子操作ID(4)	参数1(4)	参数2(4)	修正公式ID(4)	原子操作ID(5)	参数1(5)	参数2(5)	修正公式ID(5)	原子操作ID(6)	参数1(6)	参数2(6)	修正公式ID(6)	原子操作ID(7)	参数1(7)	参数2(7)	修正公式ID(7)	原子操作ID(8)	参数1(8)	参数2(8)	修正公式ID(8)	触发特效ID	触发特效的绑定点	伤害特效ID	伤害特效的绑定点	图标ID	效果描述$1$
10	-1	-1	0	1	0	0	-1	0	18	30	1	4	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	12	0	-1	金刚附魔圈的伤害

修改后:

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	INT	INT	INT	INT	INT	INT	INT	INT	INT	INT	STRING	INT	INT	INT	STRING
ID	Class_ID	互斥标记	是否同步(0/1)	最大叠加次数	发作时间间隔(ms)	持续时间(ms)	持续时间修正修正公式ID	原子操作ID(1)	参数1(1)	参数2(1)	修正公式ID(1)	原子操作ID(2)	参数1(2)	参数2(2)	修正公式ID(2)	原子操作ID(3)	参数1(3)	参数2(3)	修正公式ID(3)	原子操作ID(4)	参数1(4)	参数2(4)	修正公式ID(4)	原子操作ID(5)	参数1(5)	参数2(5)	修正公式ID(5)	原子操作ID(6)	参数1(6)	参数2(6)	修正公式ID(6)	原子操作ID(7)	参数1(7)	参数2(7)	修正公式ID(7)	原子操作ID(8)	参数1(8)	参数2(8)	修正公式ID(8)	触发特效ID	触发特效的绑定点	伤害特效ID	伤害特效的绑定点	图标ID	效果描述$1$
10	-1	-1	0	3	0	0	-1	0	18	30	1	4	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	-1	12	0	-1	金刚附魔圈的伤害

按第一列定位 10 号效果。样本第 5 列最大叠加次数为 1,改为 3。只改第 5 列,保留 46 列和其余 16 行。本片段含类型行、列名行与该行,不能覆盖整表。

该列是实例属性;由于本表当前不被任何加载入口读取,改完之后运行也不会受影响。

验证与排查

服务端启动日志不会出现本文件名,服务端日志与本表无关;客户端是否生效要看它是否注册了本表——经核对客户端注册的是 SkillAddImpact.txt / ImpactSEData_V1.txt / ImpactDirectly.txt,没有 Impact.txt,因此本表不会被客户端读取。判断依据是 DBC 注册表与 FileDef.h,不是日志。

客户端注册的是别的文件名

客户端把“技能追加效果”登记为 SkillAddImpact.txt(DBC_SKILL_ADDIMPACT)、“Buff 效果”登记为 ImpactSEData_V1.txt(DBC_BUFF_IMPACT)、“直接效果”登记为 ImpactDirectly.txt(DBC_DIRECTLY_IMPACT)。Impact.txt 不在其中,是未接入的旧/备用表。

与服务端表区分

服务端的效果数值来自 StandardImpact 与 ImpactSEData_V1;本表的 8 段原子操作结构像是某种效果实例格式,但当前没有任何加载入口。

关联与依据

Public/ImpactSEData_V1.txt · Server/StandardImpact.txt · Public/ImpactDirectly.txt · Public/SkillData_V1.txt · Public/ImpactCollections.txt

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

  • Common/DataBase/TLBB_DBC.cpp:实际加载、解析、字段使用或示例关联依据
  • Common/ServerBase/FileDef.h:实际加载、解析、字段使用或示例关联依据
  • Client/Client/Game/DBC/GMDataBase.cpp:实际加载、解析、字段使用或示例关联依据
  • resources/Public/Config/Impact.txt:实际加载、解析、字段使用或示例关联依据

本页核对客户端 GMDataBase.cpp 的 DBC 注册项(确认无 Impact.txt)、FileDef.h 无 FILE_IMPACT 宏,以及样本列结构;未运行客户端,也未在服务端找到读取入口。