二七王:补齐 data.success 成败标志与失败回包

此前全仓(除协议文档开头一句说明外)没有任何下发包携带
data.success,且所有失败路径一律裸 return、不回任何包:前端点了
没反应,只能干等倒计时,同时违反 server dev-guide「成败标志唯一
是 data.success,主动推送的 data 必须自带 success」与 client
dev-guide「发包只请求、收包才表现」两条硬红线。

本次:
- 成功包一律补 data.success=true:fapai、zhunbei(class.desk.js)、
  jiaofen、shangzhuang、xuanzhu、maipai、chupai1/2/3、mingpai、
  tishi(mod.js),jiesuan 在 get_paiju_account 统一注入(覆盖
  正常/投降/解散三种结算来源)。
- 新增 youle_erqiwang.ERR 失败码表与 do_sendfail 统一回包封装:
  PLAYER/NODESK/STEP/SEAT/PARAM/RULE,失败只回发给请求者
  (conmode/fromid 取自请求包),data.success=false + errcode。
- 每个 handler 的每条失败分支都改为「回失败包 + return」,含
  check_player 不通过(平台侧只返回 null、不回包,前端会干等)。

tishi 成功时仍按 design §11 只转发给对家、不给发送者回执(该包不
含对局状态,属 fire-and-forget 提示),失败才回给发送者。

test_rpc 中原先以「不发包」表示被拒的断言,同步改为断言「恰好回
1 个 success=false 且 errcode 正确的包」——是随行为修正而加强,
不是软化。新增 test_success.js 29 项覆盖成功包 success 字段与各
handler 失败回包。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-12 04:15:31 +08:00
co-authored by Claude Opus 5
parent a4a8eb8408
commit c2a375eef5
5 changed files with 244 additions and 15 deletions
+2
View File
@@ -89,6 +89,7 @@ var cls_youle_erqiwang_desk = cls_youle_erqiwang_desk || {
msg.route = "erqiwang";
msg.rpc = "fapai";
msg.data = {};
msg.data.success = true;
msg.data.asetidx = o_desk.paiju_list.length;
msg.data.asetcount = o_desk.o_room.asetcount;
msg.data.seat = o_desk.method.curr_paiju().method.get_callgrade_seat();
@@ -118,6 +119,7 @@ var cls_youle_erqiwang_desk = cls_youle_erqiwang_desk || {
msg.route = "erqiwang";
msg.rpc = "zhunbei";
msg.data = {};
msg.data.success = true;
msg.data.seat = seat;
o_desk.o_room.method.sendpack_toother(msg, -1);
}