二七王:不可查牌模式屏蔽出牌历史(design §9 消歧义 + 代码门控)
design §9 原文把可查牌模式的四项功能列成无序列表,不可查牌只写 「不提供以上任何查看 / 明牌功能」,随后展开的例子却只提了主牌数量、 对子结构、明牌按钮、亮牌统计,没提第一条「已经打出的牌可以查看」, 导致"以上"的范围有歧义。代码据此照发出牌历史,前一轮核对把它记为 待确认项(01 表 D6)。 规则设计者已确认:**不可查牌模式必须屏蔽出牌历史,只有可查牌模式 才能查看**。据此: - design §9 改写为无歧义表述:先给出「查牌 = 回看不该随时可见的信 息」的定义,把可查牌的四项功能编号列出(① 出牌历史 ② 报无主后的 他家主牌数/对子数 ③ 明牌 ④ 庄家亮牌),不可查牌逐条对应说明一项 都不提供;并补一段边界说明——**当前这一轮桌面上的牌两种模式下都 必须可见**,否则后出的人无从跟牌、无从判断本轮谁最大,断线重连同 理(当前轮照常恢复,往轮历史按模式开关给不给)。 - class.export.js:get_deskinfo 的 PushCards.pushlist 构建与排序整 体移入 `if (!cfg.nocheck)`,不查牌时不带该属性;当前轮桌面牌由 PushCards.playproc.cards 恢复,两种模式都有。 - 协议文档:pushlist 补「仅可查牌模式下有此属性」,playproc 补「两 种模式恒有」及其原因。 - 合规文档:01 表 D6 由「待确认/未修」改为已确认并修复,从「尚未处 置」移出;02 测试计划断言总数 357→361 并新增该维度覆盖行。 test_rpc 新增 4 项:不查牌房无 pushlist、可查牌房有 pushlist,且两 种模式下当前轮桌面牌 playproc.cards 都能恢复。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -466,10 +466,10 @@
|
||||
| bottomcards | 数组 | 埋的牌,只有庄家有此属性 |
|
||||
| grade | 整数 | 当前的捡分分数 |
|
||||
| gradecards | 数组 | 当前的捡分分牌,只有闲家有此属性 |
|
||||
| playproc | json | 当前出牌情况 `o_paiju.playproc`:`round` 第几轮、`start` 本轮首出位置、`currseat` 当前出牌位置、`startcount` 首出张数、`startflower` 首出花色、`starttype` 首出牌型、`maxseat` 本轮最大者位置、`maxcard` 最大牌编码、`cards` 本轮三家各自出的牌(数组下标=位置序号)、`shuai_demand` 首家甩牌的分量需求 `{tractors:[连对数...],pairs,singles}`(非甩牌为 null,供跟牌逐分量强制匹配,design §5.4.4)|
|
||||
| playproc | json | 当前出牌情况 `o_paiju.playproc`:`round` 第几轮、`start` 本轮首出位置、`currseat` 当前出牌位置、`startcount` 首出张数、`startflower` 首出花色、`starttype` 首出牌型、`maxseat` 本轮最大者位置、`maxcard` 最大牌编码、`cards` 本轮三家各自出的牌(数组下标=位置序号)、`shuai_demand` 首家甩牌的分量需求 `{tractors:[连对数...],pairs,singles}`(非甩牌为 null,供跟牌逐分量强制匹配,design §5.4.4)。**两种查牌模式下恒有此属性**——`cards` 是当前这一轮桌面上的牌,不属于「查牌」,屏蔽了后出的人就无从跟牌(design §9 末尾)|
|
||||
| seatlist | 数组 | 三家座位牌况,元素结构同上文 chupai 包的 `info`(每个玩家一个 5 元素数组:4 个花色的 `[无该花色,无对]` + 报副 `[剩余主牌数,剩余主对数]`)。**仅可查牌模式下有此属性**(design §9)|
|
||||
| liangpai | json | 庄家亮牌信息,结构同 maipai 包的 `liangpai`;**仅可查牌模式、且请求者为闲家、且庄家达标时有**(供闲家重连后仍能看到亮牌,design §8.2)|
|
||||
| pushlist | 数组 | 出牌历史 `[[[], [], []], [[], [], []], ...]`,外层下标=轮次(从第 1 轮起,含进行中的当前轮),内层**恒为 3 个数组**、按位置序号存该轮各家出的牌id,各自已按**本局主牌花色**从大到小排序 |
|
||||
| pushlist | 数组 | 出牌历史 `[[[], [], []], [[], [], []], ...]`,外层下标=轮次(从第 1 轮起,含进行中的当前轮),内层**恒为 3 个数组**、按位置序号存该轮各家出的牌id,各自已按**本局主牌花色**从大到小排序。**仅可查牌模式下有此属性**——往轮打出、已被收走的牌属于「查牌」范畴,不查牌模式一律不下发(design §9)。注意当前这一轮桌面上的牌由 `playproc.cards` 恢复,**两种模式下都有**,否则后出的人无从跟牌 |
|
||||
|
||||
**Balance(不在结算阶段无此属性)**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user