工程参考/配置文件/Server/CopyScene.ini
CopyScene.ini 是一份只有两个小节、五个键的副本数量样本。当前维护源码里检索不到任何读取它的代码:既没有 FileDef.h 宏指向它,也没有 TableInit 或 Config 的加载函数按这个名字打开它,copyscenecount 与 maxscenecount 这两个键名在全树检索里同样没有命中读取点。请不要把它当作调整副本数量或副本场景上限的配置。
文件位置与生效
| 项目 | 说明 |
|---|---|
| 运行文件 | ./Config/CopyScene.ini,只作为样本存在于 Server/Config 目录。请按实际运行的 Server 工作目录核对是否存在同名文件;即使存在,当前检索也没有代码读取它。
|
| 读取程序 | 无。当前源码里没有任何一处按这个文件名或按 copyscenecount / maxscenecount 打开或读取它 |
| 生效方法 | 当前启动不加载本文件。改它并重启不会改变任何副本行为,除非同时改动源码。副本场景在 Server/SceneInfo.ini 里以 type=1 标记,副本实例由运行时创建,与这个文件无关。 |
| 样本格式 | GB18030-compatible,CRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。
|
文件结构很简单:[sys] 给出副本数量,随后每个副本一个 [copy<n>] 节,节内是副本号与该副本可配置的场景数量上限。样本两个副本(copy0、copy1),maxscenecount 都是 56。
| 检查项 | 结论 |
|---|---|
| 本文件名出现在源码里的次数 | 0 次。检索 CopyScene.ini 只命中样本目录与配置索引,没有读取代码。 |
| copyscenecount / maxscenecount 的读取点 | 0 处。两个键名都没有出现在任何 C++ 源文件里。 |
| 启动是否读取 | 不读取。 |
| 改本文件能否生效 | 不能,除非同时改动源码。 |
| 副本实际由谁决定 | SceneInfo.ini 里 type=1 的场景节,以及运行时的副本实例创建逻辑。 |
文件格式
使用 [节名] 与 Key=Value,节名和键名区分大小写,保持节标题位于行首。用单独一行分号写注释,保留原编码及 CRLF 换行;重复节或键取先匹配项,不依赖后写覆盖。缺项、空值与 0 分别按下表处理。
字段详解
模板 [n] 表示从 0 开始的序号,写入时应展开为实际数字;不是字面键名。
[sys]
| 字段与类型 | 含义与修改要点 | 缺项或特殊值 |
|---|---|---|
copyscenecount整数,副本数量 |
样本里写的是副本总数,后面跟着同样数量的 [copy<n>] 节。当前没有任何代码读取它。 | 样本保留项;当前检索范围未发现此键的加载依据。 |
[copy[n]]
| 字段与类型 | 含义与修改要点 | 缺项或特殊值 |
|---|---|---|
id整数,副本号 |
副本的编号,样本与节序号一致(copy0 的 id 是 0)。 | 样本保留项;当前检索范围未发现此键的加载依据。 |
maxscenecount整数,场景数量上限 |
样本注释写的是「此副本可以配置的场景数量最大值」,两个节都是 56。 | 样本保留项;当前检索范围未发现此键的加载依据。 |
常用修改实例
示例为局部教学片段,先备份原运行文件,再修改对应行并保留其余配置。教学值不是程序默认值。
不建议修改:本文件当前没有任何读取方
修改前:
[sys] copyscenecount=2
修改后:
[sys] copyscenecount=2
这一条刻意不给“修改示例”:把 copyscenecount 改成别的值不会带来任何可观察的变化,因为当前没有代码读取它。真正需要调整副本时,去 Server/SceneInfo.ini 核对 type=1 的场景节,以及创建副本实例的运行时逻辑。
如果确实要在本文件里记录副本数量,请保留 [sys] 与 [copy<n>] 的结构一致性,并先确认目标版本是否新增了读取方。
验证与排查
因为当前没有读取方,也就不存在可用的验证路径。判断依据是全树检索:CopyScene.ini、copyscenecount、maxscenecount 三个词都只命中样本文件本身与配置索引,没有命中任何 C++ 源文件。若将来某个版本新增了加载函数,需要重新核对本节与字段表。
不要把“文件里有这个键”当成“程序会用它”
本文件是典型的遗留样本:结构与注释都完整,但读取代码已经不在当前源码里。修改前先用文件名与键名各检索一次,确认有加载方再动手。
与副本相关的实际配置在别处
副本场景在 Server/SceneInfo.ini 中以 type=1 标记;副本实例的创建与销毁由运行时的副本管理逻辑负责。要调副本,从那里入手。
如果确实需要这份配置
只有在自行新增读取代码之后它才会生效。新增时要自己定义路径与节名解析,本页字段表描述的是样本现状,不是已实现的行为。
关联与依据
其他配置及整理状态 · 服务端外网设置 · Lua 接口索引
Common/ServerBase/Ini.cpp:实际加载、解析、字段使用或示例关联依据Common/ServerBase/Ini.h:实际加载、解析、字段使用或示例关联依据Common/ServerBase/Config.cpp:实际加载、解析、字段使用或示例关联依据Common/ServerBase/Config.h:实际加载、解析、字段使用或示例关联依据Common/ServerBase/FileDef.h:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Main/GameTable.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Main/GameTable.h:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Scene/CopySceneManager.cpp:实际加载、解析、字段使用或示例关联依据resources/Server/Config/CopyScene.ini:实际加载、解析、字段使用或示例关联依据
本页结论来自全树文本检索:CopyScene.ini、copyscenecount、maxscenecount 三个词在源码范围内均只命中样本文件本身,没有命中任何 C++ 源文件;同时核对了 FileDef.h 的宏清单与 TableInit / Config 的加载函数清单。未启动服务端与游戏,也不排除其它版本或外部工具读取它的可能。