工程参考/武器坐骑外观配置
这一组是装备与坐骑的外观体系:幻饰武器换皮肤、坐骑换模型与速度、染色抽款式、飞行坐骑登记。服务端三个加载器分别位于 Common/ExteriorWeaponTables.h、Common/ExteriorRideTables.h、Common/DressColor.h 与 Common/MountFlightMounts.h,全部在 GameServer 启动时加载校验。
幻饰武器:Exterior_Weapon.txt(13 列,70 行)=
| 列 | 内容 | 说明 |
|---|---|---|
| 1 | 武器外观 ID | 主键,正数不重复。 |
| 2 | 名称 | 字符串。 |
| 3 | 图标 | 字符串。 |
| 4 | 描述 | 字符串。 |
| 5 | 排序权重 | 越大越前。 |
| 6 | 品质 | |
| 7 | 阶段数 | 1..4,超出直接加载失败。 |
| 8 | 类型 | 0..7。 |
| 9 | 关联装备 | 正数;指向使用此外观的装备。 |
| 10–13 | 四阶视觉 | 阶段数内的每一阶都必须是正数;阶段数之外的列仍要有值但按阶段取。 |
激活与升级
Exterior_WeaponItem.txt(5 列,87 行)
物品→外观的激活映射。列为 物品编号、外观 ID、小时数、剩余标记。约束:物品与外观都必须为正;小时数要么 -1(永久)要么 >0;剩余标记只能 0 或 1。
ExteriorWeaponLevelUp.txt(10 列,67 行)
三组升级费用,列为 外观 ID,随后每组三列(金钱、物品、数量)共 9 列。主键只查重,不校验数值范围——填错不会在启动时报,只会在升级时扣不到或扣错。
EquipMoodAction.txt(10 列,409 行)
装备动作表只消费被武器外观实际引用的行:加载器逐行检查该行是否为某个 equipment 匹配、且 visual[level] 命中当前外观的阶段视觉,未引用的行直接跳过。第 4 列必须为 0;第 5–10 列是六个动作 ID。不要按动作列判断归属,否则编号时装会被误判成幻饰武器动作。
ChatMood.txt(14 列,59 行)
聊天表情。14 列有三种历史布局,加载器按类型行判别(实现位于 Common/ChatMoodRecord.h 的 GetLayout):官服旧版 11 列、项目扩展 14 列、经典 14 列——两种 14 列的差别在第 7 列是整数还是字符串,看错布局会把整数当指针。列为 编号、指令、三条消息文本、状态标记,随后是 开始/循环/结束/图标/提示 与排序。
WeaponVisualLocator.txt(5 列,6 行)
背部视觉定位表,样本仅 6 行。
坐骑:Exterior_Ride.txt(26 列,113 行)=
| 列 | 内容 | 说明 |
|---|---|---|
| 1 | 坐骑外观 ID | 主键。 |
| 2 | 类型 | |
| 3 | 等级 | ≥0。 |
| 4 | 品质 | |
| 5 | 是否上架 | 1 才允许选用。 |
| 6 | 排序权重 | |
| 7 | 门派限制 | 负数为全门派。 |
| 8 | 名称 | 字符串。 |
| 9 | 图标 | 字符串。 |
| 10 | 描述 | 字符串。 |
| 11 | 坐骑编号 | ≥0,对应坐骑数据。 |
| 12 | 速度 | 必须 >0。 |
| 13 | 豪华标记 | |
| 14 | 反向兑换物品 | |
| 15 | 坐骑卡专属 | 注意:这一列是坐骑卡专属标记,不是 10% 加成。 |
| 16–25 | 十档速度加成 | 按速度档位取,见下。 |
速度档位写死在 ExteriorRideTables.h:{10, 20, 40, 60, 70, 75, 80, 85, 90, 95}。当前速度命中某一档才取该档的加成列,命中不到返回 -1。改速度档位要改代码。
Exterior_ExchangeItem.txt(4 列,1085 行)
兑换物品→坐骑外观映射。只收第 3 列等于 3 的行,其余整行跳过;有效行按 物品编号(第 2 列)→ 外观 ID(第 4 列)建索引,物品必须为正、外观必须已存在、不允许重复物品。
染色:DressColorRate.txt(33 列,31 行)=
武道二配表的十组款式,加载器 TableInit::InitDressColorRate(实现位于 Server/GameServer/Server/Main/GameTable.cpp),必须正好 33 列。列为 材料物品编号,随后十组(视觉、权重):
- 第 1 组(默认款式):视觉必须 0..65535,权重必须为 -1;默认款不参与累计权重抽取。
- 第 2–10 组:视觉 -1..65535、权重 0..100000;视觉填 -1 时权重必须为 0;十组内视觉不能重复;累计权重不得超过 100000,且总权重必须 >0。
- 抽取:输入
roll ∈ [1, 总权重],按权重逐项扣减,包含最后一种颜色。
相关常量写死在 Common/DressColor.h:款式数 10、金钱 50000、材料 30503140、NPC 脚本 157。
飞行坐骑:MountFlightMounts.txt(5 列,49 行)=
全 INT 五列,最多 512 行。列为 坐骑编号(0..511)、采集点(>0)、借用坐骑、借用加成(>0)、来源(≥0)。坐骑编号重复即失败;CanFly(坐骑号) 为真才允许飞行(实现位于 Common/MountFlightMounts.h)。
修改清单
- 加幻饰武器:Exterior_Weapon 加行(阶段数 1..4、类型 0..7、每阶视觉为正),再用 Exterior_WeaponItem 登记激活物品,需要升级就在 ExteriorWeaponLevelUp 加费用行。
- 加坐骑:Exterior_Ride 加行(速度必须 >0),兑换入口在 Exterior_ExchangeItem 加行且第 3 列必须是 3。
- 加染色款式:DressColorRate 对应行补一组(视觉,权重),保持视觉不重复、总权重 ≤100000。
- 这三组表的行数列数都是启动硬校验,动结构前先备份。