<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.waylee.net/index.php?action=history&amp;feed=atom&amp;title=%E5%B7%A5%E7%A8%8B%E5%8F%82%E8%80%83%2F%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%2FServer%2FSceneInfo.ini</id>
	<title>工程参考/配置文件/Server/SceneInfo.ini - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.waylee.net/index.php?action=history&amp;feed=atom&amp;title=%E5%B7%A5%E7%A8%8B%E5%8F%82%E8%80%83%2F%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%2FServer%2FSceneInfo.ini"/>
	<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=%E5%B7%A5%E7%A8%8B%E5%8F%82%E8%80%83/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Server/SceneInfo.ini&amp;action=history"/>
	<updated>2026-09-11T18:16:04Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://www.waylee.net/index.php?title=%E5%B7%A5%E7%A8%8B%E5%8F%82%E8%80%83/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Server/SceneInfo.ini&amp;diff=1427&amp;oldid=prev</id>
		<title>雪舞：​维护配置文件知识库：完整字段、读取范围、手工修改实例与核对状态</title>
		<link rel="alternate" type="text/html" href="https://www.waylee.net/index.php?title=%E5%B7%A5%E7%A8%8B%E5%8F%82%E8%80%83/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/Server/SceneInfo.ini&amp;diff=1427&amp;oldid=prev"/>
		<updated>2026-09-11T12:40:27Z</updated>

		<summary type="html">&lt;p&gt;维护配置文件知识库：完整字段、读取范围、手工修改实例与核对状态&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;font-size:24px;line-height:1.4;overflow-wrap:anywhere;&amp;quot;&amp;gt;工程参考/配置文件/Server/SceneInfo.ini&amp;lt;/span&amp;gt;}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;div class=&amp;quot;config-file-reference&amp;quot; style=&amp;quot;max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,&amp;#039;Microsoft YaHei&amp;#039;,sans-serif;letter-spacing:0;overflow-wrap:anywhere;&amp;quot;&amp;gt;&lt;br /&gt;
[[首页|首页]] · [[工程参考/配置文件索引|配置文件索引]] · [[工程参考/配置文件修改约定|修改约定]]&lt;br /&gt;
&lt;br /&gt;
SceneInfo.ini 是场景登记表。 [system] 的 scenenumber 决定有多少个场景；随后每个场景一节 &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;&amp;amp;#91;scene0&amp;amp;#93;&amp;lt;/code&amp;gt; 到 &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;&amp;amp;#91;scene&amp;amp;lt;N-1&amp;amp;gt;&amp;amp;#93;&amp;lt;/code&amp;gt;，节内给出场景名、场景文件、所属 Server、驱动线程、客户端资源与若干开关。场景 ID 就是节名里的数字，从头到尾连续编号。&lt;br /&gt;
&lt;br /&gt;
这份表决定「Server 起来时要加载哪些场景、交给哪个线程、分到哪个服务器进程」，也决定任务指引里的场景名与副本标记。它不描述场景内的地形与刷怪，那部分在 &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;file&amp;lt;/code&amp;gt; 指向的场景文件里。&lt;br /&gt;
&lt;br /&gt;
[[#文件位置与生效|位置与生效]] · [[#文件格式|文件格式]] · [[#字段详解|字段详解]] · [[#常用修改实例|修改实例]]&lt;br /&gt;
&lt;br /&gt;
== 文件位置与生效 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:24%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 项目&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:76%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 说明&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 运行文件&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;./Config/SceneInfo.ini&amp;lt;/code&amp;gt;，由 FileDef.h 的 FILE_SCENE_INFO 定义，相对于 Server 工作目录。源码 resources/Server/Config 是样本位置，实际部署可能另有副本。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 读取程序&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Server 游戏进程：Config::LoadSceneInfo_Only 用 Ini ini(FILE_SCENE_INFO) 打开&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 生效方法&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 正常保存并停服后，重启读取此文件的 Server。多份运行目录分别核对。当前检索未发现单独重载本文件的可用入口；不需要把本文件复制到玩家客户端。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 样本格式&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;GB18030-compatible&amp;lt;/code&amp;gt;，&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;CRLF&amp;lt;/code&amp;gt;。保留原编码；源码读取器不会自动把中文转为 UTF-8。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
加载流程是：读 &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;&amp;amp;#91;system&amp;amp;#93; scenenumber&amp;lt;/code&amp;gt;，按它分配场景数组，再循环 i 从 0 到 scenenumber-1，用 &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;sprintf(szSection, &amp;quot;scene%d&amp;quot;, i)&amp;lt;/code&amp;gt; 拼节名逐节读取。七个键（active、name、file、serverid、type、threadindex、clientres）是必读项：读不到就触发 AssertEx，日志里出现 “read sceneN::键名 failed!!”。其余七个键用 ReadIntIfExist 读取，缺失时保持代码里的默认值，不会中断启动。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:24%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 检查项&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:76%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 结论&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 读取多少个场景节&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 只读取 0 到 scenenumber-1。样本 scenenumber=723，但文件里一直写到 scene922，多出来的 200 个节不会被读取，也不会报错。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读键&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | active、name、file、serverid、type、threadindex、clientres 共 7 个，缺一即断言。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选键&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | commerce、PvpRuler、NoPkPenalty、IsReLive、BeginPlus、EndPlus、_clientres，缺失用默认值。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 场景 ID&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 就是节名里的数字，从 0 连续编号；脚本、传送与任务指引都用这个 ID。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | type 取值&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | SCENE_TYPE 枚举：0 普通游戏逻辑场景、1 副本、2 战场、3 擂台、4 城市、5 庭院、6 房屋内部。样本注释把 4 写作“帮会城市”。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 时间附加项&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;BeginPlus&amp;lt;/code&amp;gt; / &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;EndPlus&amp;lt;/code&amp;gt; 是 YYMMDDHH 编码的整数，由 &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;(年%100)*1000000 + 月*10000 + 日*100 + 时&amp;lt;/code&amp;gt; 拼成，命中区间时客户端资源改用 _clientres。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 文件格式 ==&lt;br /&gt;
使用 [节名] 与 Key=Value，节名和键名区分大小写，保持节标题位于行首。用单独一行分号写注释，保留原编码及 CRLF 换行；重复节或键取先匹配项，不依赖后写覆盖。缺项、空值与 0 分别按下表处理。&lt;br /&gt;
&lt;br /&gt;
== 字段详解 ==&lt;br /&gt;
模板 [n] 表示从 0 开始的序号，写入时应展开为实际数字；不是字面键名。&lt;br /&gt;
&lt;br /&gt;
=== [system] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:34%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 字段与类型&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:42%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 含义与修改要点&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:24%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 缺项或特殊值&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;scenenumber&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;正整数，场景总数&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 决定分配多大的场景数组，以及读取 [scene0] 到 [scene&amp;lt;N-1&amp;gt;] 的循环次数。必须大于 0，且不超过 MAX_SCENE。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必填。缺失或为 0 会触发 AssertEx；比文件里实际的节数小则后面的节全部被忽略。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [scene[n]] ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:34%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 字段与类型&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:42%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 含义与修改要点&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:24%;text-align:left;background:#edf3f2;padding:8px;&amp;quot; | 缺项或特殊值&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;active&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，0 或非 0&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 场景是否激活。为 0 时 ThreadManager 直接跳过这个场景，不创建场景线程，玩家也无法进入。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。0 表示停用，非 0 表示启用。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;name&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;字符串，场景名&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 场景显示名。任务指引与界面上的场景名来自这里。缓冲为 _MAX_PATH。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。空字符串虽然能读到，但界面上会显示空白。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;字符串，场景文件名&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 场景数据文件（例如 luoyang.scn）。加载时按它拼出地图资源路径。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。文件名写错会让整个场景加载失败。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;serverid&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，服务器 ID&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 这个场景由哪个 Server 进程驱动。ThreadManager 只处理 serverid 等于本进程 ServerID 的场景，其余跳过。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。与 ServerInfo.ini 里的 ServerID 对应，填错会让本进程不加载该场景。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;type&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，SCENE_TYPE&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 场景类型：0 普通、1 副本、2 战场、3 擂台、4 城市、5 庭院、6 房屋内部。副本类型还会改变客户端资源与切场景检查的分支。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。取值来自 Common/GameDefine_Scene.h 的 SCENE_TYPE 枚举。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;threadindex&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，线程索引&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 驱动该场景的线程池索引。同一索引的场景共用一个线程；索引不存在时新建线程。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。修改会改变场景的线程归属，影响负载分布。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;clientres&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，客户端资源号&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 客户端使用的场景资源号，对应客户端 SceneDefine.txt 的首列。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 必读。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;_clientres&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，替换用客户端资源号&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 在 BeginPlus 到 EndPlus 的时间区间内，用这个值替换 clientres。副本类型（type=1）不参与这个替换，直接用动态资源。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。缺失为 INVALID_ID，即不替换。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;BeginPlus&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，YYMMDDHH&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 附加资源生效的起始时刻，编码为 (年%100)*1000000 + 月*10000 + 日*100 + 时。区间判定是 BeginPlus &amp;lt;= 当前 &amp;lt; EndPlus。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。缺失为 0。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;EndPlus&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，YYMMDDHH&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 附加资源生效的结束时刻，编码同上，区间右开。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。缺失为 0，此时区间不成立。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;PvpRuler&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，PK 规则编号&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 该场景使用的 PK 规则，对应 Server/Config/PvpRuler.txt 里的规则。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。缺失为 0。规则内容在 PvpRuler.txt 那一页。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;NoPkPenalty&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，0 或 1&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 是否为无 PK 惩罚场景。等于 1 时场景的 IsNoPkPenalty 为真。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。缺失为 0，即照常惩罚。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;IsReLive&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，0 或非 0&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 是否允许低等级角色在本场景原地复活。需要同时满足角色等级不超过配置的新手复活等级上限。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。缺失为 0，即不允许原地复活。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;commerce&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;整数，商业系数相关&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 读取后存进场景数据的 m_Commerce，缺省为 INVALID_ID。当前检索在 SceneManager、Scene_Core 与 Obj_Human 里都没有找到消费这个字段的代码。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 可选。样本没有这一项；不要指望改它能改变商业收益。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 常用修改实例 ==&lt;br /&gt;
示例为局部教学片段，先备份原运行文件，再修改对应行并保留其余配置。教学值不是程序默认值。&lt;br /&gt;
&lt;br /&gt;
=== 临时停用一个场景（把它标记为未激活） ===&lt;br /&gt;
修改前：&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;&amp;quot;&amp;gt;&amp;amp;#91;system&amp;amp;#93;&lt;br /&gt;
scenenumber=723&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#91;scene5&amp;amp;#93;&lt;br /&gt;
threadindex=30&lt;br /&gt;
clientres=5&lt;br /&gt;
name=SampleScene&lt;br /&gt;
active=1&lt;br /&gt;
file=sample.scn&lt;br /&gt;
serverid=0&lt;br /&gt;
type=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
修改后：&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;&amp;quot;&amp;gt;&amp;amp;#91;system&amp;amp;#93;&lt;br /&gt;
scenenumber=723&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#91;scene5&amp;amp;#93;&lt;br /&gt;
threadindex=30&lt;br /&gt;
clientres=5&lt;br /&gt;
name=SampleScene&lt;br /&gt;
active=0&lt;br /&gt;
file=sample.scn&lt;br /&gt;
serverid=0&lt;br /&gt;
type=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
把 scene5 的 active 从 1 改成 0。ThreadManager 在启动时会跳过 active 为 0 的场景，不再为它创建或分配线程，玩家也就无法进入。&lt;br /&gt;
&lt;br /&gt;
注意 scenenumber 仍然是 723：编号没有变，后面的场景编号也没有偏移，这一节依然会被读取（只是被判定为未激活）。要彻底移除一个场景，必须同时减少 scenenumber 并把后面所有节的编号往前挪，否则编号断裂会让整批场景错位。&lt;br /&gt;
&lt;br /&gt;
示例里的场景名与文件名是教学值，操作时保留自己文件里的中文场景名与真实 .scn 文件名。&lt;br /&gt;
&lt;br /&gt;
== 验证与排查 ==&lt;br /&gt;
重启 Server 后查看启动日志：“Load SceneInfo.ini ...Only OK!” 表示读取完成；必读键缺失会出现 “read sceneN::键名 failed!!” 的断言。再核对：目标场景能否进入、停用的场景是否确实进不去、多 Server 部署下每个进程是否只加载了 serverid 属于自己的场景、任务指引显示的场景名与坐标是否正确。时间附加项需要把系统时间调到区间内外分别验证。失败时恢复备份并重启。&lt;br /&gt;
&lt;br /&gt;
=== 只读取前 scenenumber 个场景节 ===&lt;br /&gt;
样本 scenenumber=723，而文件里有 scene0 到 scene922 共 923 个节。多出来的 200 个节不读、不报错，是纯粹的死配置。判断一个场景是否生效，先确认它的编号小于 scenenumber。&lt;br /&gt;
&lt;br /&gt;
=== 七个必读键缺一即断言 ===&lt;br /&gt;
active、name、file、serverid、type、threadindex、clientres 用的是带返回值的 ReadInt/ReadText，读不到就 AssertEx。新增一个场景节必须把这七项写全。&lt;br /&gt;
&lt;br /&gt;
=== 移除场景要压紧编号，不能只删节 ===&lt;br /&gt;
场景 ID 就是节名里的数字，代码中到处按 ID 引用。删除 scene5 而不改 scenenumber、不把 scene6 及之后的节往前挪，会让原本的 scene6 失去配置（因为循环只到 scenenumber-1，且编号 5 的那一节已不存在）。临时停用请优先用 active=0。&lt;br /&gt;
&lt;br /&gt;
=== BeginPlus/EndPlus 是七位时间整数 ===&lt;br /&gt;
样本注释写的是 YYMMDDHH，代码按 (年%100)*1000000 + 月*10000 + 日*100 + 时 拼出当前时刻再做比较。区间是左闭右开，且副本类型不参与替换。&lt;br /&gt;
&lt;br /&gt;
=== commerce 目前没有消费方 ===&lt;br /&gt;
字段会被读取并保存，但当前检索在 SceneManager、Scene_Core 与 Obj_Human 里都没有找到使用它的代码。不要把它当作商业收益开关。&lt;br /&gt;
&lt;br /&gt;
== 关联与依据 ==&lt;br /&gt;
[[工程参考/配置文件/Server/ServerInfo.ini|Server/ServerInfo.ini]] · [[工程参考/配置文件/Server/PvpRuler.txt|Server/PvpRuler.txt]] · [[工程参考/配置文件/Public/MonsterAITable.ini|Public/MonsterAITable.ini]]&lt;br /&gt;
&lt;br /&gt;
[[工程参考/配置文件索引|其他配置及整理状态]] · [[工程参考/服务端外网设置|服务端外网设置]] · [[Lua接口/服务端函数索引|Lua 接口索引]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/ServerBase/Ini.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/ServerBase/Ini.h&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/ServerBase/Config.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/ServerBase/Config.h&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/ServerBase/FileDef.h&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/GameDefine_Scene.h&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Common/ServerBase/TimeManager.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Server/Server/GameServer/Server/Scene/SceneManager.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Server/Server/GameServer/Server/Scene/Scene_Core.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Server/Server/GameServer/Server/Main/ThreadManager.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Server/Server/GameServer/Server/Obj/Obj_Human.cpp&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
* &amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;resources/Server/Config/SceneInfo.ini&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
&lt;br /&gt;
本页核对源码读取、字段使用与样本格式，未启动游戏、服务端或数据库。解析验证不等于游戏实测；广播、权限、客户端交互等运行结果需要实测。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:工程参考]]&lt;/div&gt;</summary>
		<author><name>雪舞</name></author>
	</entry>
</feed>