<?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%2FPublic%2FRandShop</id>
	<title>工程参考/配置文件/Public/RandShop - 版本历史</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%2FPublic%2FRandShop"/>
	<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/Public/RandShop&amp;action=history"/>
	<updated>2026-09-10T12:16:54Z</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/Public/RandShop&amp;diff=1317&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/Public/RandShop&amp;diff=1317&amp;oldid=prev"/>
		<updated>2026-09-10T07:53:46Z</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;工程参考/配置文件/Public/RandShop&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;
RandShop 目录是随机 NPC 商店的商品池。ShopTable 只决定哪家店随机、抽出几件、用哪种货币；具体候选物品在对应 INI。15 个样本文件共用同一套读取规则，集中在本页说明。不要按文件名猜测用途，也不要把未引用的 petskillshop.ini 当成已上架商店。&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;../Public/Config/RandShop/&amp;lt;/code&amp;gt; 下各 INI，路径写在 ShopTable 第 14 列，相对于 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; | Server 在 ShopTable 第 13 列非 0 时按第 14 列路径加载；NPC 场景 shop0..shop3 绑定后抽选上架&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; | 与 ShopTable 一起备份。停服后修改实际 Public 副本，再重启 Server。当前检索范围未发现独立重载。客户端不读这些 INI。改权重后须重新绑定或刷新动态商店才抽新列表。&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;
=== 怎样接到 ShopTable ===&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; | ShopTable 列&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; | 第 13 列非 0&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 跳过表内 50 组商品，改读第 14 列 INI。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 第 14 列路径&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 例如 ../Public/Config/RandShop/60wufang.ini，大小写按实际路径。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 第 12 列 Num&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 抽出件数 nCountForSell，不是 INI 的 Total。&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 第 8 列货币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 金币/交子仍用物品基础价；善恶值等用 INI 的 Value。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
加载时按 [General] Total 读取 Merchandise0..Merchandise(Total-1)。随后 NPC 初始化若填写 shop0..shop3，会复制该店并按权重抽出 Num 件上架。只调用 DispatchShopItem 打开静态表、NPC 没有动态商店时，随机店货架标记全为未出售，结果是空店。&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: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;span id=&amp;quot;file-d8b83ba70aa3&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/60wufang.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 75，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 14，抽出 5，Odds；60 级武防图样池&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-738f92a50fd5&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/70wufang.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 76，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 24，抽出 10，Odds；70 级武防图样池&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-a46385521f76&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/80wufang.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 77，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 38，抽出 15，Odds；80 级武防图样池&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-75203b089586&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/90wufang.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 78，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 52，抽出 20，Odds；90 级武防图样池&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-d5814f827113&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/100wufang.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 79，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 66，抽出 25，Odds；100 级武防图样池&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-747ad4989ba1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/randgemshop.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 101，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 20，抽出 5，Odds；随机宝石&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-7fa998803b52&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/dazaotu.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 103，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 80，抽出 5，Odds；打造图&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-b19b5fc11b58&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/shanedian.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 104，2 善恶值&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 84，抽出 10，Odds；善恶值商品；购买用显式 Value&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-c2817596e73e&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/xunluozawu.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 105，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 21，抽出 5，混用；Merchandise0 为 odds，其余为 Odds&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-00d2dc1dd773&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/shide.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 106，2 善恶值&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 9，抽出 5，odds；键名全小写；Total=9 但还有 Merchandise9&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-9c5f89606502&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/miaojiang_randgemshop.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 109，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 6，抽出 3，Odds；苗疆宝石，Rebate=7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-7e091b7d5dc7&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/qiongzhou_randgemshop.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 110，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 9，抽出 3，Odds；琼州宝石&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-6413babc436c&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/huanglong_randgemshop.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 111，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 5，抽出 3，Odds；黄龙宝石，Rebate=7&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-afa2dd2568a9&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/shuhe_randgemshop.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 商店 186，1 金币&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | Total 20，抽出 2，Odds；蜀河宝石&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | &amp;lt;span id=&amp;quot;file-8ace1d3c295b&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;code style=&amp;quot;white-space:normal;overflow-wrap:anywhere;&amp;quot;&amp;gt;Public/RandShop/petskillshop.ini&amp;lt;/code&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; | Total 9，抽出 —，Odds；当前 ShopTable 未引用&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;
=== [General] ===&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;Total&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; | 循环 0..Total-1 读取对应 Merchandise 节。样本须从 0 连续编号。超过 1024 先截成 1024，再按 BYTE 作为列表长度，256 会变成 0。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 缺项断言失败。shide.ini 写 Total=9 却另有 Merchandise9，第 10 条不会加载。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== [Merchandise[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;ID&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; | n 从 0 到 Total-1。须能在对应物品表查到。不是商店编号、GUID 或背包格。&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;CountPerUnit&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; | 缺项断言。小于 0 改为 1，大于 100 改为 100。&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;Count&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; | 加载后的有限库存。0 改为 -1 表示不按有限库存。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 缺项断言。静态下发 MaxNumber 仍为 -1，有限库存主要在动态店。&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;Odds&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; | 键名必须是 Odds。抽选权重为 AppearRate×rand()。读不到则为 0。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 大小写敏感。shide.ini 与 xunluozawu.ini 的 Merchandise0 写成 odds，当前读成 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;Value&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; | 缺项断言。60wufang 的 1000 不会改金币价。&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;Rebate&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; | 缺项或非正数按 100。BuyRate=100/Rebate，再参与售价。样本部分宝石店为 7。&lt;br /&gt;
| style=&amp;quot;padding:8px;vertical-align:top;overflow-wrap:anywhere;&amp;quot; | 不是百分比写法。0 或负数记日志后改回 100。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 常用修改实例 ==&lt;br /&gt;
示例为局部教学片段，先备份原运行文件，再修改对应行并保留其余配置。教学值不是程序默认值。&lt;br /&gt;
&lt;br /&gt;
=== 把 60 级武防随机池第一件图样的出现权重从 1 改为 10 ===&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;General&amp;amp;#93;&lt;br /&gt;
Total=14&lt;br /&gt;
&amp;amp;#91;Merchandise0&amp;amp;#93;&lt;br /&gt;
ID=30300006&lt;br /&gt;
Count=1&lt;br /&gt;
CountPerUnit=1&lt;br /&gt;
Odds=1&lt;br /&gt;
Value=1000&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;General&amp;amp;#93;&lt;br /&gt;
Total=14&lt;br /&gt;
&amp;amp;#91;Merchandise0&amp;amp;#93;&lt;br /&gt;
ID=30300006&lt;br /&gt;
Count=1&lt;br /&gt;
CountPerUnit=1&lt;br /&gt;
Odds=10&lt;br /&gt;
Value=1000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在完整 60wufang.ini 中定位 [Merchandise0]，确认 ID=30300006（金顶枣阳槊图样）。只把 Odds=1 改成 Odds=10，保留 Count、CountPerUnit、Value、Total=14 以及 Merchandise1..13。键名必须是 Odds，不能写成 odds。本片段去掉了原行尾中文注释，编辑原文件时保留注释和编码。&lt;br /&gt;
&lt;br /&gt;
该文件由 ShopTable 商店 75 引用，货币为金币，抽出数量 5。Odds 是相对权重，只有 NPC 绑定动态商店并执行抽选后才影响哪 5 件出现；金币购买仍用物品基础价 6000，不读 Value=1000。隔离加载确认该条 AppearRate 由 1 变为 10。实际窗口和每次刷新结果需要实测。&lt;br /&gt;
&lt;br /&gt;
== 验证与排查 ==&lt;br /&gt;
启动无 RandomShop 读取断言。商店 75 池 14 条、抽出 5，Merchandise0 的 Odds 为 10。NPC 须在场景初始化 shop0..shop3 绑定 75 后打开，确认图样仍在池中且权重变化。odds 小写不会生效。空店先查是否走了静态表而不是动态店。恢复 INI 与 ShopTable 后重启。&lt;br /&gt;
&lt;br /&gt;
=== 抽选 ===&lt;br /&gt;
权重为 Odds×rand()，选出 Num 件。全为 0 时比较用严格大于，结果是池中前 Num 件。不能把单次刷新当成概率证明。&lt;br /&gt;
&lt;br /&gt;
=== 键名 ===&lt;br /&gt;
节名、键名大小写必须与源码一致：General、Merchandise0、Odds、Rebate。IniFile 用 strncmp，odds 不等于 Odds。&lt;br /&gt;
&lt;br /&gt;
=== 未引用文件 ===&lt;br /&gt;
petskillshop.ini 当前检索范围未发现 ShopTable 或其他启动路径引用。只有把第 14 列指过来才会加载。&lt;br /&gt;
&lt;br /&gt;
打开接口仍是 [[Lua接口/服务端/DispatchShopItem|DispatchShopItem]]，ShopId 是 ShopTable 第一列，不是 INI 文件名。&lt;br /&gt;
&lt;br /&gt;
== 关联与依据 ==&lt;br /&gt;
[[工程参考/配置文件/Public/ShopTable.txt|Public/ShopTable.txt]] · [[工程参考/配置文件/Public/ShopSceneLimiti.txt|Public/ShopSceneLimiti.txt]] · [[工程参考/配置文件/Public/CommonItem.txt|Public/CommonItem.txt]]&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;Server/Server/GameServer/Server/Other/ShopManager.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/Other/ShopManager.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;Server/Server/GameServer/Server/Obj/Obj_Monster.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/MonsterManager.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.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/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/GameDefine2.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;resources/Public/Config/RandShop/60wufang.ini&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/Public/Config/RandShop/70wufang.ini&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/Public/Config/RandShop/80wufang.ini&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/Public/Config/RandShop/90wufang.ini&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/Public/Config/RandShop/100wufang.ini&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/Public/Config/RandShop/randgemshop.ini&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/Public/Config/RandShop/dazaotu.ini&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/Public/Config/RandShop/shanedian.ini&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/Public/Config/RandShop/xunluozawu.ini&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/Public/Config/RandShop/shide.ini&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/Public/Config/RandShop/miaojiang_randgemshop.ini&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/Public/Config/RandShop/qiongzhou_randgemshop.ini&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/Public/Config/RandShop/huanglong_randgemshop.ini&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/Public/Config/RandShop/shuhe_randgemshop.ini&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/Public/Config/RandShop/petskillshop.ini&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/Public/Config/ShopTable.txt&amp;lt;/code&amp;gt;：实际加载、解析、字段使用或示例关联依据&lt;br /&gt;
&lt;br /&gt;
原始 IniFile 与 LoadRandShopFromIni 隔离测试，覆盖 Total、Odds 大小写、缺 Rebate 与显式 Rebate。抽选、NPC 绑定和购买为源码核对；未启动游戏。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Category:工程参考]]&lt;/div&gt;</summary>
		<author><name>雪舞</name></author>
	</entry>
</feed>