工程参考/龙纹配置
来自天龙知识库
跳到导航跳到搜索
龙纹配置
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),区间超出这两端要同步改代码。