二七王:群组 206 改名为主牌统计条,与 design §8.2 的「亮牌」消歧义

群组 206 原名「亮牌条 / LIANGPAI_BAR」,但它的实际用途与坐标 (35,400) 对应的是
清单 §2.5「自己的主牌统计条」——手牌上方显示 x对 x主、前端本地统计、有手牌时常显。
而 design §8.2 真正的「亮牌」是庄家埋牌后向两个闲家亮出自己全部固定主牌的具体牌面,
走遮罩面板(群组 242,复用 HIST_* 精灵)。清单 §0.0 专门用一节区分「亮牌 / 余主公示 /
明牌 / 开底」四类公开信息,名字撞车极易把渲染写到错误的界面上。

统一改名(ID 一律不变,只改名字):
- 群组   EQW_Groups.LIANGPAI_BAR   → ZHU_STAT_BAR (206)
- View   EQW_Sprites.LiangPaiView  → ZhuStatView,容器 LiangPaiBar → ZhuStatBar
- 精灵   LIANGPAI_BG/_TEXT (1030/1031) → ZHU_STAT_BG / ZHU_STAT_TEXT
- 布局   EQW_Layout.LIANGPAI_BG    → ZHU_STAT_BG
- 资源   EQW_Images.BAR_LIANGPAI   → BAR_ZHU_STAT (605)

同步清单 §0.0 / §0.3 群组表与号段表 / §1.6 / §2.5 / §3.5 / §3.6 / §5.1 / §5.7b /
§6.5 / §7.2 T-9 / §7.3 第 5 条,并在 §0.3 群组表下加修订说明(2026-08-27 + 缘由)。

一并订正清单 §1.6 的一处笔误:收到 liangpai 时应弹出亮牌遮罩面板(群组 242),
原文写的是「渲染 §2.5 亮牌信息条」——正是同名异实造成的串位。
EQW_Anim.LIANGPAI_AUTO_CLOSE 属真正的亮牌面板,保持原名,仅补注释说明归属。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-27 08:40:09 +08:00
co-authored by Claude Opus 5
parent dc08513886
commit f982460c9c
6 changed files with 55 additions and 39 deletions
+21 -14
View File
@@ -86,7 +86,7 @@
> **「亮主」不是术语**——它是**选主界面的标题文案**(庄家选主牌花色那一步,见 `亮主.png`),与上表四项都无关。文档与代码里不要拿它指代任何规则。
>
> 另:**自己**的主牌统计条(手牌上方 `x对 x主`,§2.5)**不属于上表任何一项**——那是本地统计、始终显示,不涉及"公开"。
> 另:**自己**的主牌统计条(手牌上方 `x对 x主`,§2.5)**不属于上表任何一项**——那是本地统计、始终显示,不涉及"公开"。它在代码里叫 `ZHU_STAT_*`(群组 206);**2026-08-27 前叫 `LIANGPAI_*`,因与上表第一项「亮牌」同名异实而改名**,见 §0.3 群组表下的修订说明。
---
@@ -179,7 +179,7 @@ get_nextseat: function(seat){ return (seat + 1) % 3; }
| 图层 | 名称 | 用途 |
| --- | --- | --- |
| **101** | `EQW_Table_Static` | 牌桌常驻:顶部信息条、玩家位附加标记、亮牌信息条、底栏(局数 + 功能钮) |
| **101** | `EQW_Table_Static` | 牌桌常驻:顶部信息条、玩家位附加标记、**主牌统计条**、底栏(局数 + 功能钮) |
| **102** | `EQW_Hand` | 自己手牌区(单排 / 埋牌双排) |
| **103** | `EQW_TableCards` | 桌面牌:底牌区、三家已出牌区、埋牌底牌展示区 |
| **104** | `EQW_Action` | 阶段操作区:叫分面板、选主/投降面板、埋牌/出牌操作条、倒计时 |
@@ -199,7 +199,7 @@ get_nextseat: function(seat){ return (seat + 1) % 3; }
| 201 | 顶部信息条(主 / 叫分 / 抓分) |
| 202 / 203 / 204 | 左上家 / 右上家 / 自己 的附加标记(庄印章、主N对N、状态文字) |
| 205 | 底栏功能按钮组(明牌 / 已出牌 / 上一轮 / 底牌) |
| 206 | 亮牌信息条 |
| 206 | **主牌统计条**(自己的 `x对 x主`,§2.5)—— 常量名 `ZHU_STAT_BAR` |
| 210 | 自己手牌 |
| 211 | 底牌区(发牌留桌 8 张) |
| 212 / 213 / 214 | 自己 / 左上家 / 右上家 的已出牌区 |
@@ -216,11 +216,15 @@ get_nextseat: function(seat){ return (seat + 1) % 3; }
| 243 | 明牌面板 |
| 250 | 建房规则选项 |
> **2026-08-27 修订 · 群组 206 改名**:原名「亮牌信息条 / `LIANGPAI_BAR`」,实为 §2.5 的**自己的主牌统计条**(手牌上方 `x对 x主`,本地统计、有手牌时常显),与 design §8.2 的「**亮牌**」(庄家埋牌后向两个闲家亮出自己全部固定主牌的**具体牌面**,走遮罩面板、群组 242)**同名异实**——§0.0 已专门花一节区分「亮牌 / 余主公示 / 明牌 / 开底」四类公开信息,名字撞车极易把渲染写到错误的界面上。
> 故统一改名为**主牌统计条**:群组 `ZHU_STAT_BAR`、精灵 `ZHU_STAT_BG` / `ZHU_STAT_TEXT`、布局节点 `ZHU_STAT_BG`、图片资源 `BAR_ZHU_STAT`(605,ID 不变)。
> 「亮牌」一词自此**只指** design §8.2 的那件事(协议字段 `liangpai`、群组 242、`EQW_Anim.LIANGPAI_AUTO_CLOSE`),不再指本条。
#### 精灵(Sprite,1001–2999)
| 号段 | 用途 | 预估用量 |
| --- | --- | --- |
| 1001–1099 | 顶部信息条 + 亮牌条 + 底栏(局数、功能钮) | ~30 |
| 1001–1099 | 顶部信息条 + 主牌统计条 + 底栏(局数、功能钮) | ~30 |
| 1100–1199 | 三家玩家位附加标记 + 三处倒计时 | ~24 |
| 1200–1249 | 自己手牌 36 张 + 牌上标记 | ~45 |
| 1250–1299 | 底牌 8 张 + 埋牌底牌 8 张 | 16 |
@@ -619,7 +623,7 @@ EQW_RoomOptions = {
**收到 `maipai` 推送后**(字段 `cards`、`bottomcards`、`seat`、`countdown`、`liangpai`):
- 庄家手牌回到单排 28 张;
- **闲家**若收到 `liangpai`(仅可查牌模式 + 庄家达标),渲染 §2.5 亮牌信息条;
- **闲家**若收到 `liangpai`(仅可查牌模式 + 庄家达标),弹出下方「亮牌」**遮罩面板**(群组 242,精灵 `HIST_*`,见 §5.7b)——**不是** §2.5 那条主牌统计条(原表述「渲染 §2.5 亮牌信息条」是同名异实造成的笔误,2026-08-27 订正);
- 进入出牌,`seat` = 首出者(必为庄家)。
**亮牌**(design §8.2,协议 `liangpai`):
@@ -988,11 +992,12 @@ EQW_RoomOptions = {
| **自己的主牌统计** | 手牌**上方偏左**(x≈35 y≈400 那条) | **有手牌时始终显示**,与报无主无关 | 前端据 `flower` 本地统计自己手牌 |
| **他家的主牌数 / 对数**(**余主公示**) | 左上、右上家**头像下方**的 `主N` `对N` 角标 | **仅可查牌模式 + 已报无主**(design §9) | `seatlist[seat][4]` = `[剩余主牌数, 剩余主对数]` |
**自己的主牌统计条**(群组 206):
**自己的主牌统计条**(群组 206 `ZHU_STAT_BAR`,精灵 `ZHU_STAT_BG` / `ZHU_STAT_TEXT`):
- 文案 **`x对 x主`**(暂定,见 §7.2 T-9),例如 `3对 12主`。
- **始终显示、本地计算**——自己的手牌自己完全可见,不需要服务端下发,也不受查牌模式与报无主影响。
- 参考图里的 `主牌对子: 1对` 即此条。
- **2026-08-27 改名**:本条原名「亮牌条 / `LIANGPAI_*`」,与下方「亮牌」同名异实,已统一改为 `ZHU_STAT_*`(详见 §0.3 群组表下的修订说明)。
**余主公示:他家的 `主N` / `对N` 角标**(群组 202 / 203,结构见 §2.2):
@@ -1000,7 +1005,8 @@ EQW_RoomOptions = {
- 初始 `[-1,-1]` 时隐藏;一旦全场有人报无主,服务端整表刷新 `seatlist` 并下发,两家的角标同时出现。
- 不可查牌模式下**永不出现**。
> **「亮牌」(`liangpai`)与上面两者都不是一回事**:它是 design §8.2 的规则——庄家达门槛时向**闲家**亮出自己**全部固定主牌的具体牌面**,用遮罩面板展示(§1.6),不是这里的统计条。
> **「亮牌」(`liangpai`)与上面两者都不是一回事**:它是 design §8.2 的规则——庄家达门槛时向**闲家**亮出自己**全部固定主牌的具体牌面**,用遮罩面板展示(§1.6,群组 **242**,复用 `HIST_*` 精灵),不是这里的统计条。
> 正因两者曾经同名,本条统计条在 2026-08-27 改名为 `ZHU_STAT_*`;代码里凡 `LIANGPAI` 字样自此**只属于**亮牌那一侧(协议字段 `liangpai`、`EQW_Anim.LIANGPAI_AUTO_CLOSE`)。
### 2.6 底栏 【图:全部】
@@ -1164,7 +1170,7 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
| 602 | `PANEL_CALL_SCORE` | 叫分面板底 | 1 | 575 × 170 |
| 603 | `BAR_HINT_TOP` | `70分坐庄才可投降` 提示条底 | 1 | 345 × 33 |
| 604 | `BAR_CHOOSE_MAIN` | `亮主` 斜角标题条 | 1 | 425 × 50 |
| 605 | `BAR_LIANGPAI` | 亮牌信息条底(半透圆角) | 1 | 210 × 35 |
| 605 | `BAR_ZHU_STAT` | 主牌统计条底(半透圆角,§2.5;2026-08-27 由 `BAR_LIANGPAI` 改名,ID 不变) | 1 | 210 × 35 |
| 606 | `PANEL_BOTTOM_CARDS` | 结算底牌区面板底 | 1 | 420 × 148 |
| 607 | `GLOW_RESULT` | 结算分数光晕背景 | 2 | 帧1=赢(橙) 帧2=输(蓝) | 225 × 100 |
| 608 | `BAR_FOOTER` | 底栏深色条 | 1 | 1280 × 72 |
@@ -1198,7 +1204,7 @@ y≈648–720 深色条。左侧头像/昵称/分数由平台渲染(§0.2)
> **出图要求**:16 帧**等宽**(后缀字与数字同宽,因为宽度按"字符数 × 单字宽"算);帧序严格照上表,用不到的帧位(如某些套的 `.` `x` `/`)**仍要占位**。
> **带描边/渐变的美术字用多帧图数字精灵 + `setNumberImage`**(倒计时、结算得分、叫分分数、选主张数),文字精灵做不出这种效果——631–636 都要出图。
> **纯数据型小字用文字精灵**(`SpriteManager.setText` / `setTextWithWidth`):叫分角标的子数(值域 2–15,随爬坡开关变)、`主N`/`对N` 角标、局数、亮牌统计等。
> **纯数据型小字用文字精灵**(`SpriteManager.setText` / `setTextWithWidth`):叫分角标的子数(值域 2–15,随爬坡开关变)、`主N`/`对N` 角标、局数、主牌统计条文案等。
> **2026-08-26 新增 636**:选主张数原计划走文字精灵,但美术侧单独出了一套数字图(字号配色不同于既有几套);同日一度定为「十位/个位各一个精灵」,**现已撤销**——`setNumberImage` 一个精灵就能显示 `26张`。
### 3.7 浮层与气泡
@@ -1269,8 +1275,8 @@ design 与协议均**未定义任何音效**。以下是按牌类游戏常规推
| | 1006 | `TOP_GRADE_TEXT` | 文字 | 抓分数值 | —— |
| | 1007 | `TOP_GRADE_BADGE_BG` | 图片 | 抓分角标底 | `BADGE_MULTIPLE` 帧2 |
| | 1008 | `TOP_GRADE_BADGE_TEXT` | 文字 | `N倍`【T-16】 | —— |
| **206** 亮牌条 | 1030 | `LIANGPAI_BG` | 图片 | 半透圆角条 | `BAR_LIANGPAI` |
| | 1031 | `LIANGPAI_TEXT` | 文字 | 亮牌统计文案 | —— |
| **206** 主牌统计条 | 1030 | `ZHU_STAT_BG` | 图片 | 半透圆角条 | `BAR_ZHU_STAT` |
| | 1031 | `ZHU_STAT_TEXT` | 文字 | 自己主牌统计文案 `x对 x主` | —— |
| **205** 底栏 | 1040 | `FOOTER_BG` | 图片 | 底栏深色条 | `BAR_FOOTER` |
| | 1041 | `FOOTER_ASET_TEXT` | 文字 | `1/4 局` | —— |
| | 1042 | `BTN_MINGPAI` | 图片 | `明牌` | `BTN_BOTTOM_FUNC` |
@@ -1478,6 +1484,7 @@ for (var i = 0; i < cards.length; i++) {
- **上一轮**:同一套精灵,数据只取 `pushlist` 末尾一项。
- **明牌**:只显示另两家,数据 = `mingpai.others[].zhucards`(§1.7 D-6)。
- **亮牌**:只显示一排(庄家的固定主牌),数据 = `liangpai.cards`(§1.6)。复用同一套遮罩 + 容器 + 牌模板,仅数据源与排数不同。
⚠ 这里的「亮牌」是 design §8.2 那件事,**与 §2.5 手牌上方的主牌统计条(群组 206 `ZHU_STAT_*`)无关**——后者 2026-08-27 前也叫「亮牌条」,已改名以消歧义。
> 解散投票由平台提供(Layer 420),子游戏无需精灵。
@@ -1671,7 +1678,7 @@ CARD_SIZE: {
| 顶部 · 花色图标 | `attach` | `target:TOP_INFO_BG, hAlign:left, vAlign:bottom, offsetX:20, offsetY:-8` |
| 顶部 · 叫分角标 | `attach` | `target:TOP_CALL_TEXT, corner:topRight, offsetX:4, offsetY:6` |
| 顶部 · 抓分角标 | `attach` | `target:TOP_GRADE_TEXT, corner:topRight, offsetX:4, offsetY:6` |
| 亮牌信息条 | `point` | `x:35 y:400 w:210 h:35` |
| 主牌统计条(节点 `ZHU_STAT_BG`) | `point` | `x:35 y:400 w:210 h:35` |
| 底栏条 | `point` | `x:0 y:648 w:1280 h:72` |
| 底栏 · 局数文字 | `point` | `x:635 y:672 w:65 h:26`,`textStyle{fontSize:20, align:center}` |
| 底栏 · 功能钮组(明牌/已出牌/上一轮/底牌) | `line` + `items` | `direction:horizontal, anchorX:1250, anchorY:672, itemHeight:30, spacing:15, anchor:right`,`items:[74,87,93,78]`(逐项不等宽,见 §6.1) |
@@ -1872,7 +1879,7 @@ codes/config/
| 编号 | 结论 |
| --- | --- |
| ~~T-9~~ | ~~亮牌条文案~~ | **已定**:自己的主牌统计条显示 `x对 x主`、有手牌时常显(§2.5)。注意这条**不是** design §8.2 的亮牌 |
| ~~T-9~~ | ~~主牌统计条文案(原称"亮牌条")~~ | **已定**:自己的主牌统计条显示 `x对 x主`、有手牌时常显(§2.5)。注意这条**不是** design §8.2 的亮牌——2026-08-27 已把该条改名为 `ZHU_STAT_*` 以杜绝混用 |
| ~~T-1~~ | `class.paiju.js:264` `get_nextseat = (seat+1)%3`,下家显示在右上(§0.1) |
| ~~T-2~~ | 解散投票**平台全包**(Layer 420 + `GameUI.openCheck` + `Desk.*_free_room`),子游戏只处理结算包 |
| ~~T-3~~ | 建房界面 = **Layer 27 `CreateRoom_Layer`**(Layer 28 是代开房/抽水,无关) |
@@ -1925,7 +1932,7 @@ codes/config/
| 2 | 三家显示位映射正确:下家 `(mySeat+1)%3` 在右上 | §0.1 |
| 3 | 提示按钮顺序(踩/有分/没分)与 `tip` 编号(1踩/2没分/3有分)的映射未按下标硬推 | §1.7 |
| 4 | 气泡帧号 = `(箭头向右?3:0)+tip`,朝向按头像相对位置取 | §1.7 / §6.6 |
| 5 | 不可查牌模式下:`明牌`/`已出牌`/`上一轮` 按钮不出现、亮牌条不出现、`主N`/`对N` 角标不出现 | design §9 |
| 5 | 不可查牌模式下:`明牌`/`已出牌`/`上一轮` 按钮不出现、**亮牌面板不弹出**(design §8.2 那个遮罩面板,群组 242)、`主N`/`对N` 角标不出现。⚠ §2.5 **自己的主牌统计条(群组 206)不在此列——它任何模式下都常显** | design §9 / §2.5 |
| 6 | 投降结算(无 `bottom`)与解散结算(无 `deskfree` 的情形)都不崩、不显示空框 | §1.8 / §1.10 |
| 7 | 解散包从 `data.deskfree.data.aset` 取值,不是 `data.aset` | §1.10 |
| 8 | 倒计时归零不做任何界面推进 | 协议 §0.3 |