工程参考/修炼配置

来自天龙知识库
跳到导航跳到搜索
修炼配置
7 张表 · 三本宝典 × 十五卷秘籍 · 经验以字符串读取避免 32 位截断

修炼系统由三本宝典(BOOK_COUNT=3)各辖若干秘籍卷(VOLUME_COUNT=15)组成:Book(卷号) 规定卷 0–4 属第一本、5–10 属第二本、其余属第三本。每卷独立记等级与境界,境界决定等级上限:MaxLevel(境界) 为 境界 1–6 时 = 境界×10,境界 7–12 时 = 60+(境界−6)×15(最高 150)。

七张表中五张由服务端 TLBBXiuLian::LoadTables(实现位于 Common/CultivationTables.h,调用点在 Server/GameServer/Server/Main/GameTable.cpp)加载,另两张(宝典、秘籍)由客户端 Game.exe 自己读。

加载与启动校验

五张服务端表列数必须精确相等:明细 63、概率 3、评分 16、规则 4、宝石评分 2。随后:

  • 明细按(门派, 等级)建键,重复即失败;门派必须是 0..8 或 10(9 无效,非门派行整行跳过);等级 0..150。
  • 概率表必须正好 150 行(1..150 各一行)。
  • 评分表每个门派只能出现一次,且 0..8 与 10 十个门派必须全部齐备;同时每个门派的 0..150 级在明细表里都要有行——少一级就启动失败。
  • 规则表必须正好 31 行,等级 119..149。
  • 宝石评分表不能为空。

XiuLianDetail.txt(63 列,2416 行)=

每行一个「门派 × 等级」的修炼消耗。第 1 列索引、第 2 列等级、第 3 列门派;从第 4 列起每 4 列一卷,共 15 卷:

组内列 类型 说明
经验 STRING 以十进制字符串读取(TLBBExp::TableValue),避开 DBC 32 位整型截断;必须 ≥0。
金钱 INT ≥0。
加成 FLOAT 有限且 ≥0。
系数 FLOAT 有限且 ≥0。

注意类型行:本文件第一行把经验列标为 STRING、第二行却是 INT 样式——加载器按第一行取类型并走 pString,改类型行会让经验读错。样本里大量行的经验为 0,表示该等级不消耗经验。

XiuLianRate.txt(3 列,150 行)=

按等级两列概率(均为 FLOAT,≥0,有限),等级 1..150 各一行、不重复。

XiuLianNewScore.txt(16 列,16 行)=

门派 + 15 卷的基础评分,每卷 0..1000。样本 0 8 1 12 1 2 25 1 15 6 8 5 11 6 17 8。十个门派(0..8、10)各一行,缺一即启动失败。

XiuLianRule.txt(4 列,31 行)=

等级 119..149 每行三个宝典的境界上限(1..12)。样本首行 119 9 9 9 表示 119 级时三本宝典最高到 9 阶。

XiuLianGemScore.txt(2 列,1231 行)=

宝石编号 → 进阶评分。编号必须落在 50000001..59999999 之间(开区间),评分 0..10000,编号不重复。样本 50101001 1。

XiuLianBook.txt(4 列,3 行,客户端)=

三本宝典的定义。列为 编号、名称、图标、说明;编号必须小于 3。客户端接口 GetXiuLianBookInfo(id, key)(实现位于 Client/Game/Interface/GMGameInterface_Script_PlayerMySelf.cpp)按 key 取 Name/Icon/IconName/Explain,另外 Level 与 HasActived 来自角色数据不是本表。样本名称带颜色码,如 #cfff263五行宝典。

XiuLianMiJi.txt(5 列,15 行,客户端)=

十五卷秘籍的定义。列为 编号、所属宝典、名称、图标、说明;编号必须小于 15,所属宝典取值 0/1/2 且与 Book(卷号) 的划分一致(卷 0–4→0、5–10→1、11–14→2)。接口 GetXiuLianMiJiInfo(id, key) 取 Name/Icon/IconName/Explain,等级与境界同样来自角色数据;UpLevelNeedExp/UpLevelNeedMoney 会去查明细表的下一级行。

修改清单

  • 调某一卷的消耗:改 XiuLianDetail 对应(门派, 等级)行、该卷那一组的四列;经验列保持字符串写法。
  • 加新门派:需要在评分表补一行、明细表补 0..150 全部 151 行,还要改 IsSchool 代码(写死 0..8 与 10)。
  • 调境界上限:改 XiuLianRule 对应等级行的三列;境界上限的代码常量 MAX_REALM=12。
  • 客户端不同步时,界面上的宝典与秘籍名称图标仍是旧值;改这两张表要按客户端资源更新流程同步并重启 Game.exe。