This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Ananta-ps/internal/gameserver/routers/game_router_darts.go
T

50 lines
2.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// 飞镖(DartsGame,prefab 上的笼子小游戏;lua LX6/MiniGame/DartsGame/DartsGame.lua)。
// <para>★ 只解决「await 拿不到回执」,治不了 T-pose。</para>
// 角色 T-pose 的根因不在这里:
// 动画整条链在客户端 —— DartsGame.lua:51 定 timelineName = "Gameplay_Dart",
// :1447 Timeline_LoadAndPlay,底层 L50.L50App.L50Game.CutsceneManager
// (LX6/Manager/Timeline/TimelineManager.lua:37),而这个 LoadAndPlay 是 void
// ⇒ 失败一个字节的日志都不留。2026-09-24 22:0x 已证资源不缺
// (Blocks 93G、本局零 AssetBundle/timeline 加载失败、BindRealUnitFeature 0 次),
// ⇒ 要确认 timeline 到底播没播,只能 frida 实锤(脚本 _frida_dart_probe.py)。
// <para>取证:2026-09-24 22:13:09 ~ 22:14:31 真机一局(handler 生效后首局,dartId=14):</para>
// <code>
// INVOKE StartDarts 63777955 bytes=12 hex=0E000000 14000000 03000000
// dartId=14 challengeId=20 dartMode=3
// INVOKE TriggerDartTiming 67926798 bytes=1 hex=00 / 01 / 02
// INVOKE RecordDarts 63225711 bytes=15 hex=14000000 A8000000 00000000 00 FF01
// challengeId=20 score=168 goal=0 finish=false []
// </code>
// ⛑ **`dartMode` 不是常量**:三局实测 20:26局=1 / 21:48局=1 / 22:13局=3,
// challengeId 恒 20。将来若要做"按模式给不同结算",第三个 u32 就是分支依据,
// 别照注释里的某一局写死。
// <para>接之前服务端走的是框架兜底
// ! [RPC4229938] unimplemented TriggerDartTiming -> typed-default void 0b,
// console 看着 e=0 0b 像是过了,但 typed-default 不是语义应答;
// dump.cs 三条都是非泛型 UXRPCTask(void)⇒ 空包 + err=0 就是客户端要的 OK。
// 22:13 那局已验:接上后 grep "unimplemented.*Dart" console-latest.log → 空。</para>
// <para>⛑ 为什么只接这三条(硬规则 112):</para>
// 另外五条 LeaveDart(67039599) / RecordDartEnd(67097646) /
// RecordDartScore(67483394) / RecordDartId(67567529) /
// RecordDartPerformEnd(67921918) 在 unknown-methods.log 里是 0 次
// —— 客户端从没发过,注册它们只是增加维护面。等日志里真出现再照下面抄一行。
// <para>⛑ 回滚:从 GameRouter.cs 的 Enabled4229938MethodIds 里删掉这三条即可
// (handler 不注册 = 走 typed-neutral 兜底),不用删本文件。</para>
//
func GameRouter_Darts_DartsAccept(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Darts_DartsAccept
var zero any; return zero
}