二七王:S-4 拆分 bottomcards 字段名,S-5 术语同步收口
S-4(服务端改动):底牌与埋牌底牌不再共用一个字段名。 - bottomcards = 底牌(发牌留桌 8 张)—— shangzhuang / ChooseMain / BuryCards,保持不变 - burycards = 埋牌底牌(庄家埋下 8 张)—— maipai(mod.js)、PushCards(class.export.js) - 结算 bottom.cards 未改名(分组名已表明是抠底相关),文档注明其语义 测试: - test_leak.js 的 CARD_FIELDS 白名单加入 burycards。这一步是必须的——不加的话 新字段会静默脱离下发面审计,闲家误收也发现不了。 - test_rpc.js 新增 11 条正反用例:庄家有 burycards 且为 8 张、庄家不再有 bottomcards(抓改名漏改)、闲家两个字段皆无、重连 PushCards 同上。 验证(不止「跑过了」): - 改动前基线 16 个文件全绿;改动后仍全绿,新增后 rpc 从 89 → 100 checks。 - 反向验证一:把 mod.js 的 burycards 改回 bottomcards → test_rpc 新用例 FAIL, 且 test_leak 报出真实泄露(赋值改了而 delete 没改时,闲家会收到庄家埋的牌)。 - 反向验证二:删掉闲家侧的 delete msg.data.burycards → test_leak 立刻抓出 5 张越权牌,确认 burycards 确已纳入审计白名单。 两次验证后均已还原并复跑全绿。 S-5:术语同步收口。design.md / packet_protocol.md / 代码注释均已改用 「底牌 / 埋牌底牌」;compliance 三份历史核对记录有意不改(反映当时的 design 表述,下轮核对按新 design 重做)。 另:T-9 亮牌条文案暂定「x对 x主」(取 liangpai.zhupair 与 zhu,其余档位 先不渲染、协议不变)。至此 29 项待确认规格全部有结论。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -155,7 +155,7 @@ youle_erqiwang.jiaofen = function(pack){
|
||||
} else {
|
||||
msg.data.touxiang = 1;
|
||||
}
|
||||
//70分坐庄:庄家摸暗牌前,8张暗牌向所有玩家亮3秒(design §4/§7.1)
|
||||
//70分坐庄:庄家摸底牌前,8张底牌向所有玩家亮3秒(design §4/§7.1)
|
||||
if (o_paiju.call == 70){
|
||||
msg.data.ancard3s = 1;
|
||||
}
|
||||
@@ -165,12 +165,12 @@ youle_erqiwang.jiaofen = function(pack){
|
||||
msg.conmode = o_room.seatlist[i].conmode;
|
||||
msg.fromid = o_room.seatlist[i].fromid;
|
||||
if (i == o_paiju.banker){
|
||||
//庄家:手牌(含摸起的暗牌)与暗牌本身都可见
|
||||
//庄家:手牌(含摸起的底牌)与底牌本身都可见
|
||||
msg.data.cards = o_paiju.method.get_seat_cards(i);
|
||||
msg.data.bottomcards = _bottomcards;
|
||||
} else {
|
||||
delete msg.data.cards;
|
||||
//闲家:仅70分坐庄时才下发暗牌(供亮3秒),否则暗牌只有庄家可见
|
||||
//闲家:仅70分坐庄时才下发底牌(供亮3秒),否则底牌只有庄家可见
|
||||
if (o_paiju.call == 70){
|
||||
msg.data.bottomcards = _bottomcards;
|
||||
} else {
|
||||
@@ -322,11 +322,13 @@ youle_erqiwang.maipai = function(pack){
|
||||
msg.fromid = o_room.seatlist[i].fromid;
|
||||
if (i == o_paiju.banker){
|
||||
msg.data.cards = o_paiju.method.get_seat_cards(i);
|
||||
msg.data.bottomcards = cards;
|
||||
//埋牌底牌(本次埋下的 8 张)。与 shangzhuang.bottomcards(底牌,发牌留桌 8 张)
|
||||
//是两批不同的牌,字段名刻意区分,勿混用
|
||||
msg.data.burycards = cards;
|
||||
delete msg.data.liangpai;
|
||||
} else {
|
||||
delete msg.data.cards;
|
||||
delete msg.data.bottomcards;
|
||||
delete msg.data.burycards;
|
||||
//闲家:可查牌且庄家达标时亮牌
|
||||
if (_liangpai){
|
||||
msg.data.liangpai = _liangpai;
|
||||
|
||||
Reference in New Issue
Block a user