工程参考/配置文件/Server/PetApperceiveSkillTable.txt

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


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

PetApperceiveSkillTable.txt 按“技能总数、已有主动数、已有被动数”给出领悟主动或被动技能的权重。候选技能来自 PetAttrTable 的手动/自动技能池,不在本表。单位是 1/10 万。

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

文件位置与生效

项目 说明
运行文件 ./Config/PetApperceiveSkillTable.txt,相对于 Server 工作目录。源码宏 FILE_PET_APPERCEIVESKILLTBL。
读取程序 Server 在 TableInit::InitPetApperceiveSkillTable 加载;Obj_Pet::Skill_Apperceive 按技能总数和已学数量匹配
生效方法 停服后备份并修改实际 Server/Config 副本,再重启 Server。当前检索范围未发现独立重载。列数必须 ≥6。客户端不加载本表。没有启动成功日志。
样本格式 GB18030-compatibleCRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。

样本 57 行,正好顶满容量 PET_APPERCEIVESKILLRATE_NUM=57。第 1 列编号参与 DBC 索引,加载循环不写入结构体。变异宠把两列概率各乘 10。随机用 rand()%100000。

文件格式

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

字段详解

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

字段与类型 含义与修改要点 缺项或特殊值
第 1 列
INT:编号
DBC 索引列。样本 0..56。加载循环不把本列写入结构体。 空首列跳行。改它不会改变匹配键。
第 2 列
INT:珍兽技能总数
匹配键之一。主动槽上限加自动槽上限。样本从 3 到 12。 空为 0。对不上则本行不命中。
第 3 列
INT:已有主动技能数
匹配键。已学会的手动技能数。样本 0..2。 空为 0。
第 4 列
INT:已有被动技能数
匹配键。已学会的自动技能数。样本随总数变化。 空为 0。
第 5 列
INT:领悟主动技能概率(单位1/10w)
主动领悟权重。样本全空 3 槽为 500。随机 < 本值时从手动技能池取第一个未学会的。 空为 0。变异宠再乘 10。
第 6 列
INT:领悟被动技能概率(单位1/10w)
被动领悟权重,与主动权重累加后比较。样本全空 3 槽为 1500,即 500 主动、再 1500 被动、其余失败。 空为 0。变异宠再乘 10。

常用修改实例

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

把 3 技能且全空时领悟主动的权重从 500 改为 1000

修改前:

INT	INT	INT	INT	INT	INT
编号	珍兽技能总数	已有主动技能数	已有被动技能数	领悟主动技能概率(单位1/10w)	领悟被动技能概率(单位1/10w)
0	3	0	0	500	1500

修改后:

INT	INT	INT	INT	INT	INT
编号	珍兽技能总数	已有主动技能数	已有被动技能数	领悟主动技能概率(单位1/10w)	领悟被动技能概率(单位1/10w)
0	3	0	0	1000	1500

按第一列定位编号 0。样本总数 3、主动 0、被动 0、主动权重 500、被动 1500。只改第 5 列,保留 6 列和其余 56 行。本片段含表头与该行。

匹配该组合时主动区间变为 1000/100000。隔离加载读回 1000。实际领悟需要实测。

验证与排查

启动没有本表专用 OK 日志。57 行,编号 0 的主动权重 1000。对不上三键时领悟失败。恢复备份后重启。

候选来自种类表手动 2 槽、自动 10 槽,遇到已学会的跳过。没有候选时返回失败。

关联与依据

Public/PetAttrTable.txt · Server/PetStudySkllTable.txt · Server/PetConfigTable.ini

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

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

原始 InitPetApperceiveSkillTable 隔离测试。领悟随机未在游戏中执行。