工程参考/配置文件/Server/SkillObjData_V1.txt
SkillObjData_V1.txt 登记技能“发招”表现相关的几个编号:特效挂点、模型、图标、友好度、目标类型限制、是否仅对队友有效。样本仅含类型行与列名行(0 条数据记录)、7 列。本表当前不生效(见下)。
文件位置与生效
| 项目 | 说明 |
|---|---|
| 运行文件 | ./Config/SkillObjData_V1.txt,相对于 Server 工作目录。服务端不读取,客户端资源目录也无同名生效项。
|
| 读取程序 | Common/Combat 定义了 SkillObjData_T 结构与 InitFromDB(DataRecords.cpp:416),但 DataRecords.h:440 标注 //暂时不用,全树检索不到实例化/调用入口;客户端 Obj_SkillObj 相关代码也已注释 |
| 生效方法 | 当前启动不加载本文件。即使修改并重启也不会产生运行影响;它复用子弹数据结构 _DBC_BULLET_DATA(GameStruct_Skill.h 将其 typedef 为 SSkillObjData),但没有任何管理器实例化它。 |
| 样本格式 | GB18030-compatible,CRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。
|
第 1 列是发招特效绑定点,给出客户端播放发招特效时挂到哪个骨骼点;第 2、3 列是模型与图标资源编号;第 4 列友好度区分中性/正面/负面技能;第 5 列是目标类型限制的判断 ID;第 6 列标记是否只对队友有效;第 7 列是中文说明。
整表除第 7 列外都是整数。它和 Public/SkillBullet.txt 共用 _DBC_BULLET_DATA 结构(GameStruct_Skill.h:75 定义该结构,93/94 行把 SkillObjData 与 BulletData 都 typedef 成它),但两者当前都没有生效的加载入口。
文件格式
首行是类型行:INT INT INT INT INT INT STRING;第二行是列名行,程序跳过其内容;从第三行开始读取数据。各列用真实 Tab 分隔,保留首列、空列及行尾,不用空格代替。数据行行首 # 表示注释,分号不是此表的注释规则。首列为空的行被跳过;不足的尾列补为空值,多余列不参与本页字段读取。空整数和非数字经 atoi 可能成为 0,空字符串仍为空,不把解析成功当作业务合法。第一列须唯一,重复会触发读取器错误。
字段详解
列号从 1 开始,源码列下标从 0 开始。
| 字段与类型 | 含义与修改要点 | 缺项或特殊值 |
|---|---|---|
第 1 列INT:发招特效绑定点 |
技能释放(发招)时播放的特效所挂的骨骼绑定点编号;客户端按此编号选择挂点。服务端不读取本表。 | 空为 0。 |
第 2 列INT:模型ID |
技能对应角色/法术模型的资源编号,指向模型资源文件。 | 空为 0。 |
第 3 列INT:图标ID |
技能在界面上显示的图标资源编号。 | 空为 0。 |
第 4 列INT:友好度 |
=0 为中性技能,>0 为正面技能,<0 为负面技能;决定效果对目标的阵营倾向。 | 空为 0,按中性处理。 |
第 5 列INT:目标类型限制判断ID |
参考相应子表格判定本技能可作用于哪一类目标;0 表示不限制。 | 空为 0,不限制。 |
第 6 列INT:是否仅对队友有效 |
1 表示只对本方队友(含队友珍兽)生效,0 表示无此限制。 | 空为 0,无限制。 |
第 7 列STRING:效果说明 |
中文说明,只供阅读。 | 空值原样存入。 |
常用修改实例
示例为局部教学片段,先备份原运行文件,再修改对应行并保留其余配置。教学值不是程序默认值。 以下代码块保留真实 Tab;本地示例文件为 ASCII/CRLF,列名用英文便于核对分隔符。
把 1 号发招数据的友好度从 0(中性)改成 1(正面,教学用,实际不生效)
修改前:
INT INT INT INT INT INT STRING CastBindPoint ModelID IconID Friendliness TargetLimit AllyOnly Desc 1 100 200 0 -1 0 SampleDesc
修改后:
INT INT INT INT INT INT STRING CastBindPoint ModelID IconID Friendliness TargetLimit AllyOnly Desc 1 100 200 1 -1 0 SampleDesc
本片段是教学示例(类型行 + 英文列名 + 一行数据),原文件 SkillObjData_V1.txt 当前 0 条数据记录,这里给出其一行的样子。按第一列定位 1 号,把第 4 列友好度从 0(中性)改成 1(正面)。只改第 4 列,保留 7 列。
本片段含类型行、列名行与该行,不能覆盖整表。改完之后运行仍然按 StandardImpact/ImpactSEData_V1 结算,本文件不被读取,因此本改动没有任何运行效果。
验证与排查
服务端启动日志不会出现本文件名,服务端日志与本表无关。判断依据是 DataRecords.h 的 //暂时不用 注释和全树无调用点,不是启动日志。修改本文件后如果技能发招表现没变,属预期现象。
复用子弹结构
本表与 Public/SkillBullet.txt 共用 _DBC_BULLET_DATA 结构;但两者当前都没有生效的加载入口,改它们都没有运行效果。
服务端不读
服务端的效果表现来自 StandardImpact 与 ImpactSEData_V1,本表不参与。
关联与依据
Public/SkillTemplate_V1.txt · Public/SkillData_V1.txt · Public/ImpactDirectly.txt
其他配置及整理状态 · 服务端外网设置 · Lua 接口索引
Common/Combat/DataRecords.cpp:实际加载、解析、字段使用或示例关联依据Common/Combat/DataRecords.h:实际加载、解析、字段使用或示例关联依据Common/GameStruct_Skill.h:实际加载、解析、字段使用或示例关联依据Common/ServerBase/FileDef.h:实际加载、解析、字段使用或示例关联依据resources/Server/Config/SkillObjData_V1.txt:实际加载、解析、字段使用或示例关联依据
本页核对 SkillObjData_T::InitFromDB 的定义(DataRecords.cpp:416)、DataRecords.h 的 //暂时不用 注释、GameStruct_Skill.h 的结构复用(typedef 为 _DBC_BULLET_DATA),以及 FileDef.h 无对应宏;未启动服务端,也未找到任何实例化/调用入口。