工程参考/配置文件/Server/WorldInfo.ini

来自天龙知识库
雪舞留言 | 贡献2026年9月9日 (三) 21:47的版本 (维护配置文件知识库:完整字段、读取范围、手工修改实例与核对状态)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航跳到搜索


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

WorldInfo.ini 保存 World 和大区标识,以及帮会、邮件等共享数据的键。World 监听的 IP 和 Port 在 ServerInfo.ini 的 [World],不在本文件。

位置与生效 · 字段详解 · 修改实例 · 验证与排查

文件位置与生效

项目 说明
服务器运行路径 Server/Config/WorldInfo.ini,以程序实际工作目录为准;源码 resources 中的文件是样本。
主要使用者 主要使用者为 World;其他服务也会使用区服标识
生效方法 这六份文件通过公共初始化流程读取,主要使用者在本页标明;不需要把它们复制到玩家客户端。重新加载配置的入口没有重读本页字段。修改后按正常流程保存并停服,再重启使用这份配置的程序;服务共用同一 Config 目录时,相关进程须使用一致配置。
样本格式 GB18030-compatible,换行为 CRLF;保留原编码、节名、键名与换行,不自动改成 UTF-8。

所有项目都在 [System]。WorldID 与 ZoneID 属于区服标识;SMKey 项属于存储关联,二者都不是网络端口。

文件格式

使用 [节名] 与 Key=Value。节名和键名按源码拼写保留;本读取器按大小写精确匹配,节标题从行首开始。推荐沿用原有 CRLF 换行,在单独一行用分号写注释,不向值里插入制表符,也不依赖引号转义。详细读取边界见修改约定。

字段详解

表中“必填”表示读取代码要求存在,并不表示程序已校验业务取值合法。序号字段中的 [n] 表示按数量展开,不能原样写成带 [n] 的键。

[System]

项目与类型 含义与修改要点 缺项或特殊值
Desc
说明文字
当前加载函数未读取,供维护者备注,不改变 World 的名称或行为。 样本说明项。
ZoneID
整数,大区标识
与 WorldID 一起用于区服标识;向 Mother 发送的组合编号为 WorldID + 1000 × ZoneID。不是地图或场景编号。更改现有区服标识前需要核对关联数据。 缺失时默认 0。
WorldID
整数,World 标识
标识当前 World,其他服务须使用同一区服配置。不能用它代替 ServerInfo.ini 中的游戏 ServerID。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
GuildSMKey
整数,共享内存键
帮会数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=2。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
MailSMKey
整数,共享内存键
邮件数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=3。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
PetSMKey
整数,共享内存键
珍兽创建数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=8。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
CitySMKey
整数,共享内存键
城市数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=9。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
GlobalDataSMKey
整数,共享内存键
全局数据数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=5。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
LeagueSMKey
整数,共享内存键
帮会联盟数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=10。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
FindFriendADKey
整数,共享内存键
交友广告数据键,与 ShareMemInfo.ini 中的 Key[n] 相同,配对的 Type[n]=11。不要随意修改正在使用的键。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。
EnableShareMem
整数,0/非0
控制 World 使用共享内存的分支;须与 ShareMemory 配套。关闭它并不等于保存当前共享内存数据。 原配置必填;读取失败会进入断言/错误路径,不把缺项视为采用默认值。

常用修改实例

以下均是局部教学片段,修改原文件对应位置,不能覆盖整份文件。IP、编号、周期均为教学值。

为新建测试区设置 World 标识

修改前的教学片段:

[System]
ZoneID=0
WorldID=1

修改后:

[System]
ZoneID=0
WorldID=2

仅用于尚未投入使用的新测试区,确认编号 2 未与关联环境冲突后修改。使用该区配置的各服务保持同一份 WorldID/ZoneID,保留全部共享内存键;向 Mother 发送的组合标识由 1 变为 2。现有带角色数据的区服不要照此直接改号,需另行核对关联数据和迁移流程。

验证与排查

检查 World 和 ShareMemory 使用的共享内存键及类型逐项一致,再观察 World 启动、邮件和帮会相关功能。运行效果需要实测。

修改玩家连接地址通常不需要改本文件。调整区服标识和共享内存键属于跨文件操作,不能用替换整个文件的方式修复单项问题。

关联与依据

ServerInfo.ini · ShareMemInfo.ini

服务端外网设置 · 登录器配置 · Lua 接口索引

  • Common/ServerBase/Config.cpp:加载位置、字段读取与重新加载范围
  • Common/ServerBase/Config.h:初始化值与配置结构
  • Common/ServerBase/Ini.cpp:INI 实际解析规则
  • Common/ServerBase/Ini.h:读取失败与返回方式
  • Common/ServerBase/FileDef.h:运行时相对路径
  • Common/GameDefine2.h:程序类型与共享内存类型枚举
  • Server/Server_2026_Project.props:当前 Windows 工程的条件编译定义
  • Server/Server/WorldServer/World/Main/World.cpp:字段使用、连接或数据处理分支
  • Server/Server/WorldServer/World/Main/MotherClient.cpp:字段使用、连接或数据处理分支
  • Server/Server/GameServer/Server/Main/ServerManager.cpp:字段使用、连接或数据处理分支

核对范围为当前维护源码与配置样本;未启动游戏、服务端或数据库。配置解析测试与游戏业务测试分开记录;文中运行效果仍需要实测。