工程参考/龙纹配置

来自天龙知识库
Waylee​(留言 | 贡献)2026年10月26日 (一) 19:20的版本 (新增龙纹配置(LongWenBase/RateBase/AddAttr 三表结构与启动校验))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航跳到搜索
龙纹配置
3 张表 · LongWenBase / LongWenRateBase / LongWenAddAttr · 仅服务端读取

龙纹是暗器位(装备点 HEQUIP_LONGWEN)的成长装备:物品编号 10157001、10157002 两件,标志位 m_bytDarksFlag = 3。它的等级、星级、属性条数、扩展属性全部由 Public/Config 下三张表驱动。三张表只在服务端加载(实现位于 Server/GameServer/Server/Main/GameTable.cpp 的表初始化段),客户端不读同名文件。

加载与启动校验

加载器在 Common/LongwenTables.h。GameServer 启动时依次加载三张表并立即校验,任何一项不符都直接拒绝启动(函数返回 FALSE,服务起不来):

  • 行列数硬约束:LongWenBase 必须 13 列 100 行,LongWenRateBase 必须 12 列 9 行,LongWenAddAttr 必须 21 列 90 行。多一行少一行都不行。
  • 主键约束:首列从 1 连续编号、不重复、不越界(1..100 / 1..9 / 1..90)。
  • 业务约束(Validate):
    • Base 每级:第 4 列(成长段编号)= 4000+等级;属性条数下限 ≥1 且 ≤ 上限;上限 ≤16;累计成长值非负且严格递增;1 级成长值=0,100 级=2397。
    • Extra 每条:除整十级外,第 9 列(下一级编号)必须 = 当前编号+1。

改这三张表后先在本地启动一次 GameServer 确认加载通过,再往线上放。

LongWenBase.txt · 等级主表(13 列 × 100 行)

每级一行,驱动等级成长、属性条数与命中闪避。

列 内容 说明
1 等级 ID 1..100 连续编号,主键;加载时按此列建索引。
2 保留 样本全为 1,当前源码未读取。
3 累计成长值 1 级=0、100 级=2397,必须严格递增。龙纹吃下材料后按累计值反查等级(LevelForStuff);进度条按相邻两级差值显示(GrowthWeight)。
4 成长段编号 必须 = 4000+等级(4001..4100)。重算属性数值时用它查 ItemSegValue.txt 的属性段值。
5 属性条数下限 该级至少几条属性,≥1。升级补足属性条数时按此值(Grow)。
6 属性条数上限 该级至多几条属性,≤16 且 ≥ 下限。重抽属性时在 [下限, 上限] 间随机(Roll)。
7–10 保留 样本全为 -1,当前源码未读取。
11 命中 龙纹的命中值,覆盖装备模板表 EquipBase 的 m_Hit。
12 闪避 龙纹的闪避值,覆盖装备模板表的 m_Miss。
13 保留 样本为 20,当前源码未读取。

LongWenRateBase.txt · 升星表(12 列 × 9 行)

按星级(m_Equip.m_Qual,1..9)一行,驱动升星操作(operation=2)的材料与费用。9 星封顶:当前星级 ≥9 时拒绝升星。

列 内容 说明
1 星级 ID 1..9 连续编号,主键。
7 升星材料 材料物品编号(样本为勾天彩 20310176)。
8 材料数量 消耗个数(样本 1 星→20,2 星→60)。
9 替代材料起点 替代材料编号区间的起点;-1 表示没有替代材料。高档普通勾天彩可替代低档,幻色勾天彩不能替代普通材料。
10 替代材料数量 用替代材料时需要的个数。
11 费用 升星收取的金钱(样本 10000)。
2–6、12 保留/待确认 样本有值(如第 2 列 11、15),当前服务端升星路径未读取。

LongWenAddAttr.txt · 扩展属性表(21 列 × 90 行)

龙纹三个扩展槽(血上限 m_HPId、减抗 m_ResistId、属性攻 m_BuffId)各挂一行,角色属性重算时逐槽读取(实现位于 Obj_Human_Calc.cpp)。

列 内容 说明
1 扩展 ID 1..90 连续编号,主键。编码规则见下。
2 名称 字符串列,如「血上限(1级)」。用于学习/升级后的系统提示。
4 关联 Buff 关联的技能/Buff 编号(样本 20310181)。
9 下一级 ID 升级链:除整十级外必须 = 当前 ID+1;整十级(10、20…90)是该链终点。
13 血上限加成 百分比(IATTRIBUTE_RATE_MAXHP),大于 0 才生效。
14–17 四系减抗下限 冰、火、玄、毒各一列,累加进 m_LongwenLowerResist。
18–21 四系属性攻击 冰、火、玄、毒各一列,大于 0 才生效。
3、5–8、10–12 待确认 样本有值,属性重算路径未读取。

扩展 ID 编码规则

ExtraId(slot, element, level) 把槽位、元素、等级折成 1..90 的行号:

  • 槽 0(血上限):ID = 等级(1..10)。
  • 槽 1(减抗):ID = 10 + 元素×10 + 等级,元素 1..4。
  • 槽 2(属性攻):冰系(元素 1)从 10+等级 起;其余三系从 40+元素×10+等级 起——冰系与其余三系不是连续分组,排布见 LongwenTables.h 的 ExtraId。

修改清单

  • 三张表的行数、列数、主键连续性是启动硬校验,动行数等于改校验代码。
  • 调等级成长曲线只改 Base 第 3 列,保持严格递增与端点 0/2397,否则启动失败。
  • 调属性数值走 Base 第 4 列指向的 ItemSegValue 段,不要在 Base 里直接写数值。
  • 升星材料与费用在 Rate 表;改材料编号注意替代区间(第 9 列)的边界编号是写死在代码里的(20310179 / 20310196),区间超出这两端要同步改代码。