工程参考/配置文件/Public/ShopTable.txt:修订间差异
维护配置文件知识库:完整字段、读取范围、手工修改实例与核对状态 |
维护配置文件知识库:完整字段、读取范围、手工修改实例与核对状态 |
||
| 第1,437行: | 第1,437行: | ||
== 关联与依据 == | == 关联与依据 == | ||
[[工程参考/配置文件/Public/ShopSceneLimiti.txt|Public/ShopSceneLimiti.txt]] · [[工程参考/配置文件/Public/CommonItem.txt|Public/CommonItem.txt]] · [[工程参考/配置文件/Public/RepairRate.txt|Public/RepairRate.txt]] | [[工程参考/配置文件/Public/ShopSceneLimiti.txt|Public/ShopSceneLimiti.txt]] · [[工程参考/配置文件/Public/RandShop|Public/RandShop]] · [[工程参考/配置文件/Public/CommonItem.txt|Public/CommonItem.txt]] · [[工程参考/配置文件/Public/RepairRate.txt|Public/RepairRate.txt]] | ||
[[工程参考/配置文件索引|其他配置及整理状态]] · [[工程参考/服务端外网设置|服务端外网设置]] · [[Lua接口/服务端函数索引|Lua 接口索引]] | [[工程参考/配置文件索引|其他配置及整理状态]] · [[工程参考/服务端外网设置|服务端外网设置]] · [[Lua接口/服务端函数索引|Lua 接口索引]] | ||
2026年9月10日 (四) 15:53的最新版本
ShopTable.txt 定义 NPC 静态商店:用哪一种货币、能否修理或收购、货架上有哪些物品模板。它不是玩家商店收购白名单,也不是寄售行。改价前先看第 8 列货币:金币和交子走物品基础价,商票、元宝等走本表显式价格。打开商店还要经过 ShopSceneLimiti.txt 的场景授权。
文件位置与生效
| 项目 | 说明 |
|---|---|
| 运行文件 | ../Public/Config/ShopTable.txt,相对于 Server 工作目录。客户端另从 General 资源组加载同名文件,不直接读取服务端目录。
|
| 读取程序 | Server 游戏进程启动加载;Game.exe 从 General 资源读取同名表,仅缓存商品模板号与末列文本,价格以下发消息为准 |
| 生效方法 | 正常保存并停服,备份实际 Public 副本并修改,再重启 Server。商品名称、附加文本或客户端目录还须同步客户端实际加载的 ShopTable.txt,并重启 Game.exe。必须与 ShopSceneLimiti.txt 保持相同行数,且同行第一列商店编号一致,否则启动断言。当前检索范围未发现本表独立重载入口。 |
| 样本格式 | GB18030-compatible,CRLF。保留原编码;源码读取器不会自动把中文转为 UTF-8。
|
样本 172 行,第一列商店编号 1..207,编号唯一且递增,但中间有缺号,不能按行号当商店编号。每行 325 列:前 25 列是商店属性,从第 26 列起每 6 列一组,最多 50 组商品。
先辨认要改的编号
| 位置或编号 | 怎样使用 |
|---|---|
| 第 1 列 Index | 商店编号,Lua 的 ShopId 和 GetShopByID 都用它,不是数据行号、NPC 对象 ID 或 GUID。 |
| 第 8 列货币单位 | 决定走基础价还是显式价,以及扣哪种数值。表头把 4 写成帮贡、把 8 写成交子,与源码枚举不符,以源码为准。 |
| 第 12 列 Num 与第 26 列起商品组 | Num 是循环上限;真正货架在遇到模板号 0 时结束。样本大量行 Num=50 但实际商品少于此数。 |
| ShopSceneLimiti 同行 | 两表按行对齐,且同行第一列必须等于本表商店编号。 |
货币单位以源码为准
| 表值 | 源码枚举 | 购买计价 |
|---|---|---|
| 1 | CU_MONEY 游戏币 | 物品基础价 × 第 10 列系数 × 杀气折扣 × BuyRate;件数再乘 PNUM。 |
| 2 | CU_GOODBAD 善恶值 | 显式价格 × BuyRate。 |
| 3 | CU_MORALPOINT 师德点 | 样本无此货币商店。购买分支没有对应 case,当前不能承诺可用。 |
| 4 | CU_TICKET 商票 | 显式价格 × BuyRate。表头“帮贡”是错的。 |
| 5 | CU_YUANBAO 元宝 | 显式价格 × BuyRate。 |
| 6 | CU_ZENGDIAN 赠点 | 显式价格 × BuyRate。 |
| 7 | CU_MENPAIPOINT 门派贡献度 | 显式价格 × BuyRate。 |
| 8 | CU_MONEY_JZ 游戏币,优先扣交子 | 与金币相同的基础价公式;表头“交子”不能理解成只扣交子。 |
修理等级、修理类型、收购类型、修理花费、成功率和价格系数,只在货币为 1、4、8 时从本表加载;其他货币保留结构默认值。收购类型作用于玩家卖给 NPC,修理类型作用于 NPC 修理,都不决定货架出售清单。
文件格式
首行是类型行:INT INT INT INT INT FLOAT FLOAT INT INT FLOAT INT INT INT STRING INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING;第二行是列名行,程序跳过其内容;从第三行开始读取数据。各列用真实 Tab 分隔,保留首列、空列及行尾,不用空格代替。数据行行首 # 表示注释,分号不是此表的注释规则。首列为空的行被跳过;不足的尾列补为空值,多余列不参与本页字段读取。空整数和非数字经 atoi 可能成为 0,空字符串仍为空,不把解析成功当作业务合法。第一列须唯一,重复会触发读取器错误。
字段详解
列号从 1 开始,源码列下标从 0 开始。
| 字段与类型 | 含义与修改要点 | 缺项或特殊值 |
|---|---|---|
第 1 列INT:Index |
商店编号。启动按数据行顺序保存,查询按本列匹配。Lua DispatchShopItem 等第 4 或第 3 个商店参数填这个数。 | 必须唯一。空首列跳过整行,会使本表与 ShopSceneLimiti 行对错位。缺号合法,不要为了连续而改已有编号。 |
第 2 列INT:修理等级 |
货币 1/4/8 时加载。装备需求等级超过本值则该 NPC 不能修。不是人物等级。 | 其他货币不加载,保持 0。0 几乎不能修需要等级的装备。 |
第 3 列INT:收购等级 |
货币 1/4/8 时加载。玩家把物品卖给 NPC 时,装备比需求等级、其他物品比物品等级。 | 其他货币不加载,保持 0。 |
第 4 列INT:RepairType(修理类型) |
货币 1/4/8 时加载。1 全部装备,2 防具,3 饰品,4 武器。按穿戴位置判断,不是物品大类号。 | 其他值当前修理检查失败。其他货币不加载,默认 -1。 |
第 5 列INT:收购类型 |
货币 1/4/8 时加载。1 全部,2 防具,3 饰品,4 武器,5 食物,6 材料,7 药品,8 仅跑商货物,9 除跑商货物外。Shop 33 的 8 表示 NPC 收购跑商货物,不是货架只卖这些。 | 不是货币种类。其他货币不加载,默认 -1。 |
第 6 列FLOAT:修理花费 |
货币 1/4/8 时加载,下发给客户端。普通修理费主要看 RepairRate 与商店倍率,不能把本列当成 RepairRate 的替代。 | 空值或非数字可为 0。具体客户端如何显示本值需要实测。 |
第 7 列FLOAT:修理成功几率 |
货币 1/4/8 时加载并下发。不是 RepairRate 的费用系数,也不是百分号写法。 | 0 到 1 的用法及失败是否仍扣费需要实测。 |
第 8 列INT:货币单位 |
商店扣费种类,见上文枚举。金币/交子用基础价;商票/元宝/赠点/善恶值/门派贡献用显式价。 | 0 或未列出的值在购买入口直接拒绝。不要按表头把 4 当帮贡、把 8 当只收交子。 |
第 9 列INT:能否回购 |
非 0 允许该 NPC 商店走回购列表。 | 0 关闭。回购物品来自角色本次已售出缓存,不来自本表商品组。 |
第 10 列FLOAT:Scale(价格系数) |
货币 1/4/8 时加载。金币/交子购买:基础价乘本值后再乘杀气折扣和 BuyRate。商票购买不乘本值。也下发给客户端。 | 加载时其他货币保持 0。购买入口要求金币/交子的系数在 0..10,否则拒绝。样本多数为 1,少数为 2。 |
第 11 列INT:Time(刷新时间) |
毫秒。静态表本身不按它刷新货架;复制到 NPC 动态商店且大于 0 时作为刷新计时。 | 0 不开始该动态计时。100000 为 100 秒。随机静态店的刷新另见随机商店 INI。 |
第 12 列INT:Num(商品数量) |
非随机店:商品组循环上限,随后仍按模板号 0 截断。随机店:写入 nCountForSell,表示从 INI 池抽出的出售数量,不是本表商品组个数。 | 样本常见 50,但表只有 50 组;152 等行填 60。若前 50 组都有正模板号仍继续循环,会读到下一行首列。不要把 Num 填到超过 50。随机店另有 1024 再转 BYTE 的截断。 |
第 13 列INT:是否随机商店 |
非 0 时跳过本表商品组,改读第 14 列 INI。 | 0 为普通表商店。随机店文件仍待单独核对,本页示例不改随机店。 |
第 14 列STRING:随机商店配置文件路径 |
随机店 INI 路径,例如 ../Public/Config/RandShop/60wufang.ini,相对于 Server 工作目录。 | 普通店可空。路径错误会在随机加载断言。不把本列当商品名。 |
第 15 列INT:是否能够购买多个物品 |
非 0 允许一次购买数量大于 1,上限仍受协议 1..20 及本组 PNUM 约束。 | 0 时购买数量被改成 1。 |
第 16 列INT:是否随机排序 |
非 0 时下发 Reorder 标记,供客户端打乱显示。 | 0 保持配置顺序。服务端货架下标仍按加载顺序,不能靠本列改价格。 |
第 17 列INT:是否受杀气值影响 |
非 0 才按第 18..25 列杀气折扣改金币/交子价。样本 172 行均为 0,因此这些折扣列当前不会生效。 | 0 时 GetAgioByPKValue 恒为 1。不能靠只改后面的折扣列降价。 |
第 18 列INT:杀气折扣(-3) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 19 列INT:杀气折扣(-2) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 20 列INT:杀气折扣(-1) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 21 列INT:杀气折扣(0) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 22 列INT:杀气折扣(1) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 23 列INT:杀气折扣(2) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 24 列INT:杀气折扣(3) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 25 列INT:杀气折扣(>3) |
仅第 17 列非 0 且货币为金币/交子时,按角色 PK 值选用。100 表示 1.0,其他值按本值/100。 | 样本有 96..500 等值,但第 17 列全为 0。空值可为 0,相当于免费,须与第 17 列一起核对。 |
第 26 列INT:PID(商品编号1) |
第 1 组商品,起始列为第 26 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 27 列INT:PNUM(每组多少个) |
第 1 组商品,起始列为第 26 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 28 列INT:PMAX(有限商品的数量上限) |
第 1 组商品,起始列为第 26 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 29 列INT:商品1价格 |
第 1 组商品,起始列为第 26 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 30 列INT:商品折扣 |
第 1 组商品,起始列为第 26 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 31 列STRING:商品颜色 |
第 1 组商品,起始列为第 26 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 32 列INT:PID(商品编号2) |
第 2 组,规则与第 1 组相同,起始列为第 32 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 33 列INT:PNUM(每组多少个) |
第 2 组,规则与第 1 组相同,起始列为第 32 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 34 列INT:PMAX(有限商品的数量上限) |
第 2 组,规则与第 1 组相同,起始列为第 32 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 35 列INT:商品2价格 |
第 2 组,规则与第 1 组相同,起始列为第 32 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 36 列INT:商品折扣 |
第 2 组,规则与第 1 组相同,起始列为第 32 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 37 列STRING:商品颜色 |
第 2 组,规则与第 1 组相同,起始列为第 32 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 38 列INT:PID(商品编号3) |
第 3 组,规则与第 1 组相同,起始列为第 38 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 39 列INT:PNUM(每组多少个) |
第 3 组,规则与第 1 组相同,起始列为第 38 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 40 列INT:PMAX(有限商品的数量上限) |
第 3 组,规则与第 1 组相同,起始列为第 38 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 41 列INT:商品3价格 |
第 3 组,规则与第 1 组相同,起始列为第 38 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 42 列INT:商品折扣 |
第 3 组,规则与第 1 组相同,起始列为第 38 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 43 列STRING:商品颜色 |
第 3 组,规则与第 1 组相同,起始列为第 38 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 44 列INT:PID(商品编号4) |
第 4 组,规则与第 1 组相同,起始列为第 44 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 45 列INT:PNUM(每组多少个) |
第 4 组,规则与第 1 组相同,起始列为第 44 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 46 列INT:PMAX(有限商品的数量上限) |
第 4 组,规则与第 1 组相同,起始列为第 44 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 47 列INT:商品4价格 |
第 4 组,规则与第 1 组相同,起始列为第 44 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 48 列INT:商品折扣 |
第 4 组,规则与第 1 组相同,起始列为第 44 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 49 列STRING:商品颜色 |
第 4 组,规则与第 1 组相同,起始列为第 44 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 50 列INT:PID(商品编号5) |
第 5 组,规则与第 1 组相同,起始列为第 50 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 51 列INT:PNUM(每组多少个) |
第 5 组,规则与第 1 组相同,起始列为第 50 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 52 列INT:PMAX(有限商品的数量上限) |
第 5 组,规则与第 1 组相同,起始列为第 50 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 53 列INT:商品5价格 |
第 5 组,规则与第 1 组相同,起始列为第 50 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 54 列INT:商品折扣 |
第 5 组,规则与第 1 组相同,起始列为第 50 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 55 列STRING:商品颜色 |
第 5 组,规则与第 1 组相同,起始列为第 50 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 56 列INT:PID(商品编号6) |
第 6 组,规则与第 1 组相同,起始列为第 56 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 57 列INT:PNUM(每组多少个) |
第 6 组,规则与第 1 组相同,起始列为第 56 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 58 列INT:PMAX(有限商品的数量上限) |
第 6 组,规则与第 1 组相同,起始列为第 56 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 59 列INT:商品6价格 |
第 6 组,规则与第 1 组相同,起始列为第 56 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 60 列INT:商品折扣 |
第 6 组,规则与第 1 组相同,起始列为第 56 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 61 列STRING:商品颜色 |
第 6 组,规则与第 1 组相同,起始列为第 56 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 62 列INT:PID(商品编号7) |
第 7 组,规则与第 1 组相同,起始列为第 62 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 63 列INT:PNUM(每组多少个) |
第 7 组,规则与第 1 组相同,起始列为第 62 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 64 列INT:PMAX(有限商品的数量上限) |
第 7 组,规则与第 1 组相同,起始列为第 62 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 65 列INT:商品7价格 |
第 7 组,规则与第 1 组相同,起始列为第 62 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 66 列INT:商品折扣 |
第 7 组,规则与第 1 组相同,起始列为第 62 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 67 列STRING:商品颜色 |
第 7 组,规则与第 1 组相同,起始列为第 62 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 68 列INT:PID(商品编号8) |
第 8 组,规则与第 1 组相同,起始列为第 68 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 69 列INT:PNUM(每组多少个) |
第 8 组,规则与第 1 组相同,起始列为第 68 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 70 列INT:PMAX(有限商品的数量上限) |
第 8 组,规则与第 1 组相同,起始列为第 68 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 71 列INT:商品8价格 |
第 8 组,规则与第 1 组相同,起始列为第 68 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 72 列INT:商品折扣 |
第 8 组,规则与第 1 组相同,起始列为第 68 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 73 列STRING:商品颜色 |
第 8 组,规则与第 1 组相同,起始列为第 68 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 74 列INT:PID(商品编号9) |
第 9 组,规则与第 1 组相同,起始列为第 74 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 75 列INT:PNUM(每组多少个) |
第 9 组,规则与第 1 组相同,起始列为第 74 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 76 列INT:PMAX(有限商品的数量上限) |
第 9 组,规则与第 1 组相同,起始列为第 74 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 77 列INT:商品9价格 |
第 9 组,规则与第 1 组相同,起始列为第 74 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 78 列INT:商品折扣 |
第 9 组,规则与第 1 组相同,起始列为第 74 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 79 列STRING:商品颜色 |
第 9 组,规则与第 1 组相同,起始列为第 74 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 80 列INT:PID(商品编号10) |
第 10 组,规则与第 1 组相同,起始列为第 80 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 81 列INT:PNUM(每组多少个) |
第 10 组,规则与第 1 组相同,起始列为第 80 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 82 列INT:PMAX(有限商品的数量上限) |
第 10 组,规则与第 1 组相同,起始列为第 80 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 83 列INT:商品10价格 |
第 10 组,规则与第 1 组相同,起始列为第 80 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 84 列INT:商品折扣 |
第 10 组,规则与第 1 组相同,起始列为第 80 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 85 列STRING:商品颜色 |
第 10 组,规则与第 1 组相同,起始列为第 80 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 86 列INT:PID(商品编号11) |
第 11 组,规则与第 1 组相同,起始列为第 86 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 87 列INT:PNUM(每组多少个) |
第 11 组,规则与第 1 组相同,起始列为第 86 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 88 列INT:PMAX(有限商品的数量上限) |
第 11 组,规则与第 1 组相同,起始列为第 86 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 89 列INT:商品11价格 |
第 11 组,规则与第 1 组相同,起始列为第 86 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 90 列INT:商品折扣 |
第 11 组,规则与第 1 组相同,起始列为第 86 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 91 列STRING:商品颜色 |
第 11 组,规则与第 1 组相同,起始列为第 86 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 92 列INT:PID(商品编号12) |
第 12 组,规则与第 1 组相同,起始列为第 92 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 93 列INT:PNUM(每组多少个) |
第 12 组,规则与第 1 组相同,起始列为第 92 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 94 列INT:PMAX(有限商品的数量上限) |
第 12 组,规则与第 1 组相同,起始列为第 92 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 95 列INT:商品12价格 |
第 12 组,规则与第 1 组相同,起始列为第 92 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 96 列INT:商品折扣 |
第 12 组,规则与第 1 组相同,起始列为第 92 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 97 列STRING:商品颜色 |
第 12 组,规则与第 1 组相同,起始列为第 92 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 98 列INT:PID(商品编号13) |
第 13 组,规则与第 1 组相同,起始列为第 98 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 99 列INT:PNUM(每组多少个) |
第 13 组,规则与第 1 组相同,起始列为第 98 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 100 列INT:PMAX(有限商品的数量上限) |
第 13 组,规则与第 1 组相同,起始列为第 98 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 101 列INT:商品13价格 |
第 13 组,规则与第 1 组相同,起始列为第 98 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 102 列INT:商品折扣 |
第 13 组,规则与第 1 组相同,起始列为第 98 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 103 列STRING:商品颜色 |
第 13 组,规则与第 1 组相同,起始列为第 98 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 104 列INT:PID(商品编号14) |
第 14 组,规则与第 1 组相同,起始列为第 104 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 105 列INT:PNUM(每组多少个) |
第 14 组,规则与第 1 组相同,起始列为第 104 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 106 列INT:PMAX(有限商品的数量上限) |
第 14 组,规则与第 1 组相同,起始列为第 104 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 107 列INT:商品14价格 |
第 14 组,规则与第 1 组相同,起始列为第 104 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 108 列INT:商品折扣 |
第 14 组,规则与第 1 组相同,起始列为第 104 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 109 列STRING:商品颜色 |
第 14 组,规则与第 1 组相同,起始列为第 104 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 110 列INT:PID(商品编号15) |
第 15 组,规则与第 1 组相同,起始列为第 110 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 111 列INT:PNUM(每组多少个) |
第 15 组,规则与第 1 组相同,起始列为第 110 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 112 列INT:PMAX(有限商品的数量上限) |
第 15 组,规则与第 1 组相同,起始列为第 110 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 113 列INT:商品15价格 |
第 15 组,规则与第 1 组相同,起始列为第 110 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 114 列INT:商品折扣 |
第 15 组,规则与第 1 组相同,起始列为第 110 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 115 列STRING:商品颜色 |
第 15 组,规则与第 1 组相同,起始列为第 110 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 116 列INT:PID(商品编号16) |
第 16 组,规则与第 1 组相同,起始列为第 116 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 117 列INT:PNUM(每组多少个) |
第 16 组,规则与第 1 组相同,起始列为第 116 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 118 列INT:PMAX(有限商品的数量上限) |
第 16 组,规则与第 1 组相同,起始列为第 116 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 119 列INT:商品16价格 |
第 16 组,规则与第 1 组相同,起始列为第 116 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 120 列INT:商品折扣 |
第 16 组,规则与第 1 组相同,起始列为第 116 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 121 列STRING:商品颜色 |
第 16 组,规则与第 1 组相同,起始列为第 116 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 122 列INT:PID(商品编号17) |
第 17 组,规则与第 1 组相同,起始列为第 122 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 123 列INT:PNUM(每组多少个) |
第 17 组,规则与第 1 组相同,起始列为第 122 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 124 列INT:PMAX(有限商品的数量上限) |
第 17 组,规则与第 1 组相同,起始列为第 122 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 125 列INT:商品17价格 |
第 17 组,规则与第 1 组相同,起始列为第 122 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 126 列INT:商品折扣 |
第 17 组,规则与第 1 组相同,起始列为第 122 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 127 列STRING:商品颜色 |
第 17 组,规则与第 1 组相同,起始列为第 122 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 128 列INT:PID(商品编号18) |
第 18 组,规则与第 1 组相同,起始列为第 128 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 129 列INT:PNUM(每组多少个) |
第 18 组,规则与第 1 组相同,起始列为第 128 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 130 列INT:PMAX(有限商品的数量上限) |
第 18 组,规则与第 1 组相同,起始列为第 128 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 131 列INT:商品18价格 |
第 18 组,规则与第 1 组相同,起始列为第 128 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 132 列INT:商品折扣 |
第 18 组,规则与第 1 组相同,起始列为第 128 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 133 列STRING:商品颜色 |
第 18 组,规则与第 1 组相同,起始列为第 128 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 134 列INT:PID(商品编号19) |
第 19 组,规则与第 1 组相同,起始列为第 134 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 135 列INT:PNUM(每组多少个) |
第 19 组,规则与第 1 组相同,起始列为第 134 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 136 列INT:PMAX(有限商品的数量上限) |
第 19 组,规则与第 1 组相同,起始列为第 134 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 137 列INT:商品19价格 |
第 19 组,规则与第 1 组相同,起始列为第 134 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 138 列INT:商品折扣 |
第 19 组,规则与第 1 组相同,起始列为第 134 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 139 列STRING:商品颜色 |
第 19 组,规则与第 1 组相同,起始列为第 134 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 140 列INT:PID(商品编号20) |
第 20 组,规则与第 1 组相同,起始列为第 140 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 141 列INT:PNUM(每组多少个) |
第 20 组,规则与第 1 组相同,起始列为第 140 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 142 列INT:PMAX(有限商品的数量上限) |
第 20 组,规则与第 1 组相同,起始列为第 140 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 143 列INT:商品20价格 |
第 20 组,规则与第 1 组相同,起始列为第 140 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 144 列INT:商品折扣 |
第 20 组,规则与第 1 组相同,起始列为第 140 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 145 列STRING:商品颜色 |
第 20 组,规则与第 1 组相同,起始列为第 140 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 146 列INT:PID(商品编号21) |
第 21 组,规则与第 1 组相同,起始列为第 146 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 147 列INT:PNUM(每组多少个) |
第 21 组,规则与第 1 组相同,起始列为第 146 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 148 列INT:PMAX(有限商品的数量上限) |
第 21 组,规则与第 1 组相同,起始列为第 146 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 149 列INT:商品21价格 |
第 21 组,规则与第 1 组相同,起始列为第 146 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 150 列INT:商品折扣 |
第 21 组,规则与第 1 组相同,起始列为第 146 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 151 列STRING:商品颜色 |
第 21 组,规则与第 1 组相同,起始列为第 146 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 152 列INT:PID(商品编号22) |
第 22 组,规则与第 1 组相同,起始列为第 152 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 153 列INT:PNUM(每组多少个) |
第 22 组,规则与第 1 组相同,起始列为第 152 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 154 列INT:PMAX(有限商品的数量上限) |
第 22 组,规则与第 1 组相同,起始列为第 152 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 155 列INT:商品22价格 |
第 22 组,规则与第 1 组相同,起始列为第 152 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 156 列INT:商品折扣 |
第 22 组,规则与第 1 组相同,起始列为第 152 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 157 列STRING:商品颜色 |
第 22 组,规则与第 1 组相同,起始列为第 152 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 158 列INT:PID(商品编号23) |
第 23 组,规则与第 1 组相同,起始列为第 158 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 159 列INT:PNUM(每组多少个) |
第 23 组,规则与第 1 组相同,起始列为第 158 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 160 列INT:PMAX(有限商品的数量上限) |
第 23 组,规则与第 1 组相同,起始列为第 158 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 161 列INT:商品23价格 |
第 23 组,规则与第 1 组相同,起始列为第 158 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 162 列INT:商品折扣 |
第 23 组,规则与第 1 组相同,起始列为第 158 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 163 列STRING:商品颜色 |
第 23 组,规则与第 1 组相同,起始列为第 158 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 164 列INT:PID(商品编号24) |
第 24 组,规则与第 1 组相同,起始列为第 164 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 165 列INT:PNUM(每组多少个) |
第 24 组,规则与第 1 组相同,起始列为第 164 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 166 列INT:PMAX(有限商品的数量上限) |
第 24 组,规则与第 1 组相同,起始列为第 164 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 167 列INT:商品24价格 |
第 24 组,规则与第 1 组相同,起始列为第 164 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 168 列INT:商品折扣 |
第 24 组,规则与第 1 组相同,起始列为第 164 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 169 列STRING:商品颜色 |
第 24 组,规则与第 1 组相同,起始列为第 164 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 170 列INT:PID(商品编号25) |
第 25 组,规则与第 1 组相同,起始列为第 170 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 171 列INT:PNUM(每组多少个) |
第 25 组,规则与第 1 组相同,起始列为第 170 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 172 列INT:PMAX(有限商品的数量上限) |
第 25 组,规则与第 1 组相同,起始列为第 170 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 173 列INT:商品25价格 |
第 25 组,规则与第 1 组相同,起始列为第 170 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 174 列INT:商品折扣 |
第 25 组,规则与第 1 组相同,起始列为第 170 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 175 列STRING:商品颜色 |
第 25 组,规则与第 1 组相同,起始列为第 170 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 176 列INT:PID(商品编号26) |
第 26 组,规则与第 1 组相同,起始列为第 176 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 177 列INT:PNUM(每组多少个) |
第 26 组,规则与第 1 组相同,起始列为第 176 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 178 列INT:PMAX(有限商品的数量上限) |
第 26 组,规则与第 1 组相同,起始列为第 176 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 179 列INT:商品26价格 |
第 26 组,规则与第 1 组相同,起始列为第 176 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 180 列INT:商品折扣 |
第 26 组,规则与第 1 组相同,起始列为第 176 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 181 列STRING:商品颜色 |
第 26 组,规则与第 1 组相同,起始列为第 176 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 182 列INT:PID(商品编号27) |
第 27 组,规则与第 1 组相同,起始列为第 182 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 183 列INT:PNUM(每组多少个) |
第 27 组,规则与第 1 组相同,起始列为第 182 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 184 列INT:PMAX(有限商品的数量上限) |
第 27 组,规则与第 1 组相同,起始列为第 182 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 185 列INT:商品27价格 |
第 27 组,规则与第 1 组相同,起始列为第 182 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 186 列INT:商品折扣 |
第 27 组,规则与第 1 组相同,起始列为第 182 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 187 列STRING:商品颜色 |
第 27 组,规则与第 1 组相同,起始列为第 182 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 188 列INT:PID(商品编号28) |
第 28 组,规则与第 1 组相同,起始列为第 188 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 189 列INT:PNUM(每组多少个) |
第 28 组,规则与第 1 组相同,起始列为第 188 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 190 列INT:PMAX(有限商品的数量上限) |
第 28 组,规则与第 1 组相同,起始列为第 188 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 191 列INT:商品28价格 |
第 28 组,规则与第 1 组相同,起始列为第 188 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 192 列INT:商品折扣 |
第 28 组,规则与第 1 组相同,起始列为第 188 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 193 列STRING:商品颜色 |
第 28 组,规则与第 1 组相同,起始列为第 188 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 194 列INT:PID(商品编号29) |
第 29 组,规则与第 1 组相同,起始列为第 194 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 195 列INT:PNUM(每组多少个) |
第 29 组,规则与第 1 组相同,起始列为第 194 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 196 列INT:PMAX(有限商品的数量上限) |
第 29 组,规则与第 1 组相同,起始列为第 194 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 197 列INT:商品29价格 |
第 29 组,规则与第 1 组相同,起始列为第 194 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 198 列INT:商品折扣 |
第 29 组,规则与第 1 组相同,起始列为第 194 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 199 列STRING:商品颜色 |
第 29 组,规则与第 1 组相同,起始列为第 194 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 200 列INT:PID(商品编号30) |
第 30 组,规则与第 1 组相同,起始列为第 200 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 201 列INT:PNUM(每组多少个) |
第 30 组,规则与第 1 组相同,起始列为第 200 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 202 列INT:PMAX(有限商品的数量上限) |
第 30 组,规则与第 1 组相同,起始列为第 200 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 203 列INT:商品30价格 |
第 30 组,规则与第 1 组相同,起始列为第 200 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 204 列INT:商品折扣 |
第 30 组,规则与第 1 组相同,起始列为第 200 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 205 列STRING:商品颜色 |
第 30 组,规则与第 1 组相同,起始列为第 200 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 206 列INT:PID(商品编号31) |
第 31 组,规则与第 1 组相同,起始列为第 206 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 207 列INT:PNUM(每组多少个) |
第 31 组,规则与第 1 组相同,起始列为第 206 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 208 列INT:PMAX(有限商品的数量上限) |
第 31 组,规则与第 1 组相同,起始列为第 206 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 209 列INT:商品31价格 |
第 31 组,规则与第 1 组相同,起始列为第 206 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 210 列INT:商品折扣 |
第 31 组,规则与第 1 组相同,起始列为第 206 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 211 列STRING:商品颜色 |
第 31 组,规则与第 1 组相同,起始列为第 206 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 212 列INT:PID(商品编号32) |
第 32 组,规则与第 1 组相同,起始列为第 212 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 213 列INT:PNUM(每组多少个) |
第 32 组,规则与第 1 组相同,起始列为第 212 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 214 列INT:PMAX(有限商品的数量上限) |
第 32 组,规则与第 1 组相同,起始列为第 212 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 215 列INT:商品32价格 |
第 32 组,规则与第 1 组相同,起始列为第 212 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 216 列INT:商品折扣 |
第 32 组,规则与第 1 组相同,起始列为第 212 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 217 列STRING:商品颜色 |
第 32 组,规则与第 1 组相同,起始列为第 212 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 218 列INT:PID(商品编号33) |
第 33 组,规则与第 1 组相同,起始列为第 218 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 219 列INT:PNUM(每组多少个) |
第 33 组,规则与第 1 组相同,起始列为第 218 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 220 列INT:PMAX(有限商品的数量上限) |
第 33 组,规则与第 1 组相同,起始列为第 218 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 221 列INT:商品33价格 |
第 33 组,规则与第 1 组相同,起始列为第 218 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 222 列INT:商品折扣 |
第 33 组,规则与第 1 组相同,起始列为第 218 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 223 列STRING:商品颜色 |
第 33 组,规则与第 1 组相同,起始列为第 218 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 224 列INT:PID(商品编号34) |
第 34 组,规则与第 1 组相同,起始列为第 224 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 225 列INT:PNUM(每组多少个) |
第 34 组,规则与第 1 组相同,起始列为第 224 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 226 列INT:PMAX(有限商品的数量上限) |
第 34 组,规则与第 1 组相同,起始列为第 224 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 227 列INT:商品34价格 |
第 34 组,规则与第 1 组相同,起始列为第 224 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 228 列INT:商品折扣 |
第 34 组,规则与第 1 组相同,起始列为第 224 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 229 列STRING:商品颜色 |
第 34 组,规则与第 1 组相同,起始列为第 224 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 230 列INT:PID(商品编号35) |
第 35 组,规则与第 1 组相同,起始列为第 230 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 231 列INT:PNUM(每组多少个) |
第 35 组,规则与第 1 组相同,起始列为第 230 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 232 列INT:PMAX(有限商品的数量上限) |
第 35 组,规则与第 1 组相同,起始列为第 230 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 233 列INT:商品35价格 |
第 35 组,规则与第 1 组相同,起始列为第 230 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 234 列INT:商品折扣 |
第 35 组,规则与第 1 组相同,起始列为第 230 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 235 列STRING:商品颜色 |
第 35 组,规则与第 1 组相同,起始列为第 230 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 236 列INT:PID(商品编号36) |
第 36 组,规则与第 1 组相同,起始列为第 236 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 237 列INT:PNUM(每组多少个) |
第 36 组,规则与第 1 组相同,起始列为第 236 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 238 列INT:PMAX(有限商品的数量上限) |
第 36 组,规则与第 1 组相同,起始列为第 236 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 239 列INT:商品36价格 |
第 36 组,规则与第 1 组相同,起始列为第 236 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 240 列INT:商品折扣 |
第 36 组,规则与第 1 组相同,起始列为第 236 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 241 列STRING:商品颜色 |
第 36 组,规则与第 1 组相同,起始列为第 236 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 242 列INT:PID(商品编号37) |
第 37 组,规则与第 1 组相同,起始列为第 242 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 243 列INT:PNUM(每组多少个) |
第 37 组,规则与第 1 组相同,起始列为第 242 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 244 列INT:PMAX(有限商品的数量上限) |
第 37 组,规则与第 1 组相同,起始列为第 242 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 245 列INT:商品37价格 |
第 37 组,规则与第 1 组相同,起始列为第 242 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 246 列INT:商品折扣 |
第 37 组,规则与第 1 组相同,起始列为第 242 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 247 列STRING:商品颜色 |
第 37 组,规则与第 1 组相同,起始列为第 242 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 248 列INT:PID(商品编号38) |
第 38 组,规则与第 1 组相同,起始列为第 248 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 249 列INT:PNUM(每组多少个) |
第 38 组,规则与第 1 组相同,起始列为第 248 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 250 列INT:PMAX(有限商品的数量上限) |
第 38 组,规则与第 1 组相同,起始列为第 248 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 251 列INT:商品38价格 |
第 38 组,规则与第 1 组相同,起始列为第 248 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 252 列INT:商品折扣 |
第 38 组,规则与第 1 组相同,起始列为第 248 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 253 列STRING:商品颜色 |
第 38 组,规则与第 1 组相同,起始列为第 248 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 254 列INT:PID(商品编号39) |
第 39 组,规则与第 1 组相同,起始列为第 254 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 255 列INT:PNUM(每组多少个) |
第 39 组,规则与第 1 组相同,起始列为第 254 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 256 列INT:PMAX(有限商品的数量上限) |
第 39 组,规则与第 1 组相同,起始列为第 254 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 257 列INT:商品39价格 |
第 39 组,规则与第 1 组相同,起始列为第 254 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 258 列INT:商品折扣 |
第 39 组,规则与第 1 组相同,起始列为第 254 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 259 列STRING:商品颜色 |
第 39 组,规则与第 1 组相同,起始列为第 254 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 260 列INT:PID(商品编号40) |
第 40 组,规则与第 1 组相同,起始列为第 260 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 261 列INT:PNUM(每组多少个) |
第 40 组,规则与第 1 组相同,起始列为第 260 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 262 列INT:PMAX(有限商品的数量上限) |
第 40 组,规则与第 1 组相同,起始列为第 260 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 263 列INT:商品40价格 |
第 40 组,规则与第 1 组相同,起始列为第 260 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 264 列INT:商品折扣 |
第 40 组,规则与第 1 组相同,起始列为第 260 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 265 列STRING:商品颜色 |
第 40 组,规则与第 1 组相同,起始列为第 260 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 266 列INT:PID(商品编号41) |
第 41 组,规则与第 1 组相同,起始列为第 266 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 267 列INT:PNUM(每组多少个) |
第 41 组,规则与第 1 组相同,起始列为第 266 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 268 列INT:PMAX(有限商品的数量上限) |
第 41 组,规则与第 1 组相同,起始列为第 266 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 269 列INT:商品41价格 |
第 41 组,规则与第 1 组相同,起始列为第 266 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 270 列INT:商品折扣 |
第 41 组,规则与第 1 组相同,起始列为第 266 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 271 列STRING:商品颜色 |
第 41 组,规则与第 1 组相同,起始列为第 266 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 272 列INT:PID(商品编号42) |
第 42 组,规则与第 1 组相同,起始列为第 272 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 273 列INT:PNUM(每组多少个) |
第 42 组,规则与第 1 组相同,起始列为第 272 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 274 列INT:PMAX(有限商品的数量上限) |
第 42 组,规则与第 1 组相同,起始列为第 272 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 275 列INT:商品42价格 |
第 42 组,规则与第 1 组相同,起始列为第 272 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 276 列INT:商品折扣 |
第 42 组,规则与第 1 组相同,起始列为第 272 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 277 列STRING:商品颜色 |
第 42 组,规则与第 1 组相同,起始列为第 272 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 278 列INT:PID(商品编号43) |
第 43 组,规则与第 1 组相同,起始列为第 278 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 279 列INT:PNUM(每组多少个) |
第 43 组,规则与第 1 组相同,起始列为第 278 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 280 列INT:PMAX(有限商品的数量上限) |
第 43 组,规则与第 1 组相同,起始列为第 278 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 281 列INT:商品43价格 |
第 43 组,规则与第 1 组相同,起始列为第 278 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 282 列INT:商品折扣 |
第 43 组,规则与第 1 组相同,起始列为第 278 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 283 列STRING:商品颜色 |
第 43 组,规则与第 1 组相同,起始列为第 278 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 284 列INT:PID(商品编号44) |
第 44 组,规则与第 1 组相同,起始列为第 284 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 285 列INT:PNUM(每组多少个) |
第 44 组,规则与第 1 组相同,起始列为第 284 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 286 列INT:PMAX(有限商品的数量上限) |
第 44 组,规则与第 1 组相同,起始列为第 284 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 287 列INT:商品44价格 |
第 44 组,规则与第 1 组相同,起始列为第 284 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 288 列INT:商品折扣 |
第 44 组,规则与第 1 组相同,起始列为第 284 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 289 列STRING:商品颜色 |
第 44 组,规则与第 1 组相同,起始列为第 284 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 290 列INT:PID(商品编号45) |
第 45 组,规则与第 1 组相同,起始列为第 290 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 291 列INT:PNUM(每组多少个) |
第 45 组,规则与第 1 组相同,起始列为第 290 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 292 列INT:PMAX(有限商品的数量上限) |
第 45 组,规则与第 1 组相同,起始列为第 290 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 293 列INT:商品45价格 |
第 45 组,规则与第 1 组相同,起始列为第 290 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 294 列INT:商品折扣 |
第 45 组,规则与第 1 组相同,起始列为第 290 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 295 列STRING:商品颜色 |
第 45 组,规则与第 1 组相同,起始列为第 290 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 296 列INT:PID(商品编号46) |
第 46 组,规则与第 1 组相同,起始列为第 296 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 297 列INT:PNUM(每组多少个) |
第 46 组,规则与第 1 组相同,起始列为第 296 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 298 列INT:PMAX(有限商品的数量上限) |
第 46 组,规则与第 1 组相同,起始列为第 296 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 299 列INT:商品46价格 |
第 46 组,规则与第 1 组相同,起始列为第 296 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 300 列INT:商品折扣 |
第 46 组,规则与第 1 组相同,起始列为第 296 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 301 列STRING:商品颜色 |
第 46 组,规则与第 1 组相同,起始列为第 296 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 302 列INT:PID(商品编号47) |
第 47 组,规则与第 1 组相同,起始列为第 302 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 303 列INT:PNUM(每组多少个) |
第 47 组,规则与第 1 组相同,起始列为第 302 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 304 列INT:PMAX(有限商品的数量上限) |
第 47 组,规则与第 1 组相同,起始列为第 302 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 305 列INT:商品47价格 |
第 47 组,规则与第 1 组相同,起始列为第 302 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 306 列INT:商品折扣 |
第 47 组,规则与第 1 组相同,起始列为第 302 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 307 列STRING:商品颜色 |
第 47 组,规则与第 1 组相同,起始列为第 302 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 308 列INT:PID(商品编号48) |
第 48 组,规则与第 1 组相同,起始列为第 308 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 309 列INT:PNUM(每组多少个) |
第 48 组,规则与第 1 组相同,起始列为第 308 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 310 列INT:PMAX(有限商品的数量上限) |
第 48 组,规则与第 1 组相同,起始列为第 308 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 311 列INT:商品48价格 |
第 48 组,规则与第 1 组相同,起始列为第 308 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 312 列INT:商品折扣 |
第 48 组,规则与第 1 组相同,起始列为第 308 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 313 列STRING:商品颜色 |
第 48 组,规则与第 1 组相同,起始列为第 308 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 314 列INT:PID(商品编号49) |
第 49 组,规则与第 1 组相同,起始列为第 314 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 315 列INT:PNUM(每组多少个) |
第 49 组,规则与第 1 组相同,起始列为第 314 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 316 列INT:PMAX(有限商品的数量上限) |
第 49 组,规则与第 1 组相同,起始列为第 314 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 317 列INT:商品49价格 |
第 49 组,规则与第 1 组相同,起始列为第 314 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 318 列INT:商品折扣 |
第 49 组,规则与第 1 组相同,起始列为第 314 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 319 列STRING:商品颜色 |
第 49 组,规则与第 1 组相同,起始列为第 314 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
第 320 列INT:PID(商品编号50) |
第 50 组,规则与第 1 组相同,起始列为第 320 列。物品模板编号,不是商店编号、场景对象 ID、GUID 或背包格。加载时遇 0 即停止后续组,即使第 12 列声明了更多数量。 | 0 结束本组及后续组;空值或非数字经 atoi 可为 0。负数会进入物品类型解析,不是安全停用。保留已有正模板号,并核对对应物品基础表。 |
第 321 列INT:PNUM(每组多少个) |
第 50 组,规则与第 1 组相同,起始列为第 320 列。每次购买得到的件数。金币/交子计价时还会用它乘价格;商票、元宝等显式价格路径按购买次数计费,不再乘本组件数。 | 小于 0 改为 1,大于 100 改为 100。购买时本组件数还须为 1..20;0 或过大在购买入口会被拒绝。 |
第 322 列INT:PMAX(有限商品的数量上限) |
第 50 组,规则与第 1 组相同,起始列为第 320 列。静态商店加载后的库存上限。0 在加载时改为 -1,表示不按有限库存处理。运行中变为 0 才是卖完。 | -1 为无限。静态打开商店时下发给客户端的 MaxNumber 固定为 -1;有限库存主要影响服务端售罄判断,界面数量需要实测。 |
第 323 列INT:商品50价格 |
第 50 组,规则与第 1 组相同,起始列为第 320 列。非金币/交子商店的显式单价,单位为该店第 8 列货币。金币与交子店购买不读本列,而用物品基础价乘第 10 列系数。 | 须为 0..100000000。空值可为 0。不能靠改金币店本列降价。 |
第 324 列INT:商品折扣 |
第 50 组,规则与第 1 组相同,起始列为第 320 列。服务端存为 DisplayRate,并换算 BuyRate=本值/100。购买价再乘 BuyRate。表头写“折扣”,不是单独的另一张折扣表。金币/交子且非随机店时,购买入口还把低于 0.25 的 BuyRate 提到 0.25;列表下发没有同一下限。 | 金币/交子加载时要求 25..999,其他货币 0..999,否则断言。大于 10 的 BuyRate 在购买时钳到 10。随机商店改走 INI 的 Rebate,不能套用本列。 |
第 325 列STRING:商品颜色 |
第 50 组,规则与第 1 组相同,起始列为第 320 列。客户端按商店 ID 扫描后,把本组模板号和本列文本一并缓存。Server 业务加载器不读本列。样本中可见 #G 这类界面色标记,不是注释。 | 当前检索范围未发现读取该缓存文本的界面消费;不能承诺改本列就会改变价格、名称或图标。空值仍保留为空串。保留原编码,不要插入 Tab 或换行。 |
常用修改实例
示例为局部教学片段,先备份原运行文件,再修改对应行并保留其余配置。教学值不是程序默认值。 以下代码块保留真实 Tab;本地示例文件保留原样本编码、中文表头与 CRLF。网页文字使用浏览器编码显示,不表示运行文件应改存 UTF-8。
把商店 33 的大理石商票单价从 3800 改为 4000
修改前:
INT INT INT INT INT FLOAT FLOAT INT INT FLOAT INT INT INT STRING INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING Index 修理等级 收购等级 RepairType(修理类型) 收购类型 修理花费 修理成功几率 货币单位(1代表金币,2代表善恶值,4,帮贡,3代表师德点,5元宝,6赠点,7师门贡献度,8代表交子) 能否回购 Scale(价格系数) Time(刷新时间) Num(商品数量) 是否随机商店 随机商店配置文件路径 是否能够购买多个物品 是否随机排序 是否受杀气值影响 杀气折扣(-3) 杀气折扣(-2) 杀气折扣(-1) 杀气折扣(0) 杀气折扣(1) 杀气折扣(2) 杀气折扣(3) 杀气折扣(4) PID(商品编号1) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品1价格 商品折扣 商品颜色 PID(商品编号2) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品2价格 商品折扣 商品颜色 PID(商品编号3) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品3价格 商品折扣 商品颜色 PID(商品编号4) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品4价格 商品折扣 商品颜色 PID(商品编号5) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品5价格 商品折扣 商品颜色 PID(商品编号6) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品6价格 商品折扣 商品颜色 PID(商品编号7) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品7价格 商品折扣 商品颜色 PID(商品编号8) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品8价格 商品折扣 商品颜色 PID(商品编号9) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品9价格 商品折扣 商品颜色 PID(商品编号10) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品10价格 商品折扣 商品颜色 PID(商品编号11) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品11价格 商品折扣 商品颜色 PID(商品编号12) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品12价格 商品折扣 商品颜色 PID(商品编号13) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品13价格 商品折扣 商品颜色 PID(商品编号14) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品14价格 商品折扣 商品颜色 PID(商品编号15) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品15价格 商品折扣 商品颜色 PID(商品编号16) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品16价格 商品折扣 商品颜色 PID(商品编号17) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品17价格 商品折扣 商品颜色 PID(商品编号18) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品18价格 商品折扣 商品颜色 PID(商品编号19) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品19价格 商品折扣 商品颜色 PID(商品编号20) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品20价格 商品折扣 商品颜色 PID(商品编号21) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品21价格 商品折扣 商品颜色 PID(商品编号22) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品22价格 商品折扣 商品颜色 PID(商品编号23) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品23价格 商品折扣 商品颜色 PID(商品编号24) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品24价格 商品折扣 商品颜色 PID(商品编号25) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品25价格 商品折扣 商品颜色 PID(商品编号26) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品26价格 商品折扣 商品颜色 PID(商品编号27) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品27价格 商品折扣 商品颜色 PID(商品编号28) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品28价格 商品折扣 商品颜色 PID(商品编号29) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品29价格 商品折扣 商品颜色 PID(商品编号30) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品30价格 商品折扣 商品颜色 PID(商品编号31) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品31价格 商品折扣 商品颜色 PID(商品编号32) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品32价格 商品折扣 商品颜色 PID(商品编号33) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品33价格 商品折扣 商品颜色 PID(商品编号34) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品34价格 商品折扣 商品颜色 PID(商品编号35) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品35价格 商品折扣 商品颜色 PID(商品编号36) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品36价格 商品折扣 商品颜色 PID(商品编号37) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品37价格 商品折扣 商品颜色 PID(商品编号38) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品38价格 商品折扣 商品颜色 PID(商品编号39) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品39价格 商品折扣 商品颜色 PID(商品编号40) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品40价格 商品折扣 商品颜色 PID(商品编号41) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品41价格 商品折扣 商品颜色 PID(商品编号42) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品42价格 商品折扣 商品颜色 PID(商品编号43) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品43价格 商品折扣 商品颜色 PID(商品编号44) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品44价格 商品折扣 商品颜色 PID(商品编号45) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品45价格 商品折扣 商品颜色 PID(商品编号46) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品46价格 商品折扣 商品颜色 PID(商品编号47) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品47价格 商品折扣 商品颜色 PID(商品编号48) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品48价格 商品折扣 商品颜色 PID(商品编号49) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品49价格 商品折扣 商品颜色 PID(商品编号50) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品50价格 商品折扣 商品颜色 33 40 120 1 8 1 1 4 0 1 600000 50 0 0 1 0 96 97 98 100 200 300 400 500 20400001 1 -1 3800 100 0 1 -1 1000 100 0 1 -1 1000 100 0 1 -1 1000 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100
修改后:
INT INT INT INT INT FLOAT FLOAT INT INT FLOAT INT INT INT STRING INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING INT INT INT INT INT STRING Index 修理等级 收购等级 RepairType(修理类型) 收购类型 修理花费 修理成功几率 货币单位(1代表金币,2代表善恶值,4,帮贡,3代表师德点,5元宝,6赠点,7师门贡献度,8代表交子) 能否回购 Scale(价格系数) Time(刷新时间) Num(商品数量) 是否随机商店 随机商店配置文件路径 是否能够购买多个物品 是否随机排序 是否受杀气值影响 杀气折扣(-3) 杀气折扣(-2) 杀气折扣(-1) 杀气折扣(0) 杀气折扣(1) 杀气折扣(2) 杀气折扣(3) 杀气折扣(4) PID(商品编号1) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品1价格 商品折扣 商品颜色 PID(商品编号2) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品2价格 商品折扣 商品颜色 PID(商品编号3) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品3价格 商品折扣 商品颜色 PID(商品编号4) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品4价格 商品折扣 商品颜色 PID(商品编号5) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品5价格 商品折扣 商品颜色 PID(商品编号6) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品6价格 商品折扣 商品颜色 PID(商品编号7) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品7价格 商品折扣 商品颜色 PID(商品编号8) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品8价格 商品折扣 商品颜色 PID(商品编号9) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品9价格 商品折扣 商品颜色 PID(商品编号10) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品10价格 商品折扣 商品颜色 PID(商品编号11) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品11价格 商品折扣 商品颜色 PID(商品编号12) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品12价格 商品折扣 商品颜色 PID(商品编号13) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品13价格 商品折扣 商品颜色 PID(商品编号14) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品14价格 商品折扣 商品颜色 PID(商品编号15) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品15价格 商品折扣 商品颜色 PID(商品编号16) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品16价格 商品折扣 商品颜色 PID(商品编号17) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品17价格 商品折扣 商品颜色 PID(商品编号18) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品18价格 商品折扣 商品颜色 PID(商品编号19) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品19价格 商品折扣 商品颜色 PID(商品编号20) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品20价格 商品折扣 商品颜色 PID(商品编号21) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品21价格 商品折扣 商品颜色 PID(商品编号22) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品22价格 商品折扣 商品颜色 PID(商品编号23) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品23价格 商品折扣 商品颜色 PID(商品编号24) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品24价格 商品折扣 商品颜色 PID(商品编号25) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品25价格 商品折扣 商品颜色 PID(商品编号26) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品26价格 商品折扣 商品颜色 PID(商品编号27) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品27价格 商品折扣 商品颜色 PID(商品编号28) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品28价格 商品折扣 商品颜色 PID(商品编号29) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品29价格 商品折扣 商品颜色 PID(商品编号30) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品30价格 商品折扣 商品颜色 PID(商品编号31) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品31价格 商品折扣 商品颜色 PID(商品编号32) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品32价格 商品折扣 商品颜色 PID(商品编号33) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品33价格 商品折扣 商品颜色 PID(商品编号34) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品34价格 商品折扣 商品颜色 PID(商品编号35) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品35价格 商品折扣 商品颜色 PID(商品编号36) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品36价格 商品折扣 商品颜色 PID(商品编号37) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品37价格 商品折扣 商品颜色 PID(商品编号38) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品38价格 商品折扣 商品颜色 PID(商品编号39) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品39价格 商品折扣 商品颜色 PID(商品编号40) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品40价格 商品折扣 商品颜色 PID(商品编号41) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品41价格 商品折扣 商品颜色 PID(商品编号42) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品42价格 商品折扣 商品颜色 PID(商品编号43) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品43价格 商品折扣 商品颜色 PID(商品编号44) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品44价格 商品折扣 商品颜色 PID(商品编号45) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品45价格 商品折扣 商品颜色 PID(商品编号46) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品46价格 商品折扣 商品颜色 PID(商品编号47) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品47价格 商品折扣 商品颜色 PID(商品编号48) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品48价格 商品折扣 商品颜色 PID(商品编号49) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品49价格 商品折扣 商品颜色 PID(商品编号50) PNUM(每组多少个) PMAX(有限商品的数量上限) 商品50价格 商品折扣 商品颜色 33 40 120 1 8 1 1 4 0 1 600000 50 0 0 1 0 96 97 98 100 200 300 400 500 20400001 1 -1 4000 100 0 1 -1 1000 100 0 1 -1 1000 100 0 1 -1 1000 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100 0 1 -1 100 100
定位第一列为 33 的完整行。该店第 8 列为 4,源码是商票而不是帮贡;第 1 组商品模板 20400001 为 CommonItem 中的“大理石”,每组 1 件,PMAX=-1,商品折扣 100。只把第 29 列 3800 改成 4000,保留 325 列、Tab、原编码和其余 171 行。本片段含表头与该行,不能覆盖整表。
商票走显式价格:BuyRate=100/100=1,购买 1 次应收 4000 商票,不再乘物品基础价 5000,也不乘第 10 列系数 1。原始加载与计价隔离测试已读回 4000。客户端价格以下发消息为准;当前 Client 样本数据行与 Public 一致,第二行列名文本不同,程序会跳过列名行。
打开该店仍须 ShopSceneLimiti 允许当前场景,并由脚本调用 DispatchShopItem(sceneId, selfId, targetId, 33) 或无 NPC 接口。targetId 是 NPC 场景对象 ID。实际窗口、扣商票和背包需要实测。
验证与排查
启动日志确认两表都加载成功,没有 Version 断言。检查 172 行、商店 33 仍为商票、仅第 29 列为 4000、模板仍为 20400001。用已授权场景的测试角色打开商店 33,核对立刻显示与扣费是否为 4000 商票;不够商票、未授权场景、错误 ShopId 应失败。恢复时还原两端备份并重启。配置恢复不退还已扣货币或已售物品。
打开商店的 Lua 入口
DispatchShopItem 参数顺序是 DispatchShopItem(sceneId, selfId, targetId, ShopId)。sceneId 为场景配置编号,须通过 ShopSceneLimiti;selfId 为玩家场景对象 ID;targetId 为 NPC 场景对象 ID;ShopId 为本表第一列。无返回值。
DispatchNoNpcShopItem、DispatchYuanbaoShopItem 为 (sceneId, selfId, ShopId),仍检查场景授权。DispatchNpcYuanbaoShopItem 与有 NPC 接口相同参数。元宝接口只改变下发的商店类型标记,货币仍由第 8 列决定。
金币价与显式价
金币/交子:基础价来自对应物品表,乘第 10 列,再乘杀气折扣(第 17 列开启时),再乘 BuyRate;购买数量再乘 PNUM。商票等:显式价乘 BuyRate,购买数量不乘 PNUM。结果为 0 且原价非 0 时收 1。列表下发与购买入口对 BuyRate 下限处理不完全相同,不能只看客户端报价。
随机商店
第 13 列非 0 时本表商品组不加载,改读 Public/Config/RandShop 下 INI。那些 INI 仍待单独核对。不要把随机店的 Num 理解成本表商品组数。
客户端副本
客户端以 General 资源加载 ShopTable.txt。查看实际 FairyResources.cfg:FileSystem=*../Data/Config 对应 Client/Data/Config/ShopTable.txt。收到商店消息后按商店 ID 扫描,只缓存每组第 1 列模板号和第 6 列文本。当前检索范围未发现该文本缓存的界面消费。ShopSceneLimiti 的客户端文件存在,但当前客户端源码未找到加载。
关联与依据
Public/ShopSceneLimiti.txt · Public/RandShop · Public/CommonItem.txt · Public/RepairRate.txt
其他配置及整理状态 · 服务端外网设置 · Lua 接口索引
Server/Server/GameServer/Server/Other/ShopManager.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Other/ShopManager.h:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Main/Server.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Packets/CGShopBuyHandler.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Packets/CGShopSellHandler.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Packets/CGShopRepairHandler.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Script/LuaFnTbl_Shop.h:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Script/LuaFnRegister.cpp:实际加载、解析、字段使用或示例关联依据Server/Server/GameServer/Server/Item/ItemHelper.h:实际加载、解析、字段使用或示例关联依据Common/ServerBase/FileDef.h:实际加载、解析、字段使用或示例关联依据Common/GameDefine2.h:实际加载、解析、字段使用或示例关联依据Common/GameStruct_Item.h:实际加载、解析、字段使用或示例关联依据Common/DataBase/TLBB_DBC.cpp:实际加载、解析、字段使用或示例关联依据Common/DataBase/TLBB_DBC.h:实际加载、解析、字段使用或示例关联依据Client/Client/Common/TDDBC_Struct.h:实际加载、解析、字段使用或示例关联依据Client/Client/Game/DBC/GMDataBase.cpp:实际加载、解析、字段使用或示例关联依据Client/Client/Game/DataPool/GMDataPool.cpp:实际加载、解析、字段使用或示例关联依据Client/Client/Game/DataPool/GMDataPool.h:实际加载、解析、字段使用或示例关联依据Client/Client/Game/Network/PacketHandler/GCShopMerchandiseListHandler.cpp:实际加载、解析、字段使用或示例关联依据Client/Client/Render/ResourceProvider.cpp:实际加载、解析、字段使用或示例关联依据Client/Client/Render/RenderSystem.cpp:实际加载、解析、字段使用或示例关联依据Client/Client/Core/Core/FairySystem.cpp:实际加载、解析、字段使用或示例关联依据resources/Client/Bin/FairyResources.cfg:实际加载、解析、字段使用或示例关联依据resources/Public/Config/ShopTable.txt:实际加载、解析、字段使用或示例关联依据resources/Public/Config/ShopSceneLimiti.txt:实际加载、解析、字段使用或示例关联依据resources/Public/Config/CommonItem.txt:实际加载、解析、字段使用或示例关联依据resources/Client/Data/Config/ShopTable.txt:实际加载、解析、字段使用或示例关联依据resources/Client/Data/Config/ShopSceneLimiti.txt:实际加载、解析、字段使用或示例关联依据resources/Server/Config/SceneInfo.ini:实际加载、解析、字段使用或示例关联依据resources/Public/Data/Script/city0_building5.lua:实际加载、解析、字段使用或示例关联依据
原始 DBC、商店与场景限制加载、按编号查询、场景授权、杀气折扣和商票显式计价在隔离夹具验证。随机 INI、动态商店刷新、扣费与界面为源码核对或测试壳;未启动游戏、数据库或真实交易。