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

27 lines
1.7 KiB
Go
Raw Permalink Normal View History

package methods
//
// 大地图入口(传送点 / 地铁站)的四条 S2C —— 2026-09-27 从 kpect 捐赠端移植。
// ⛑ 字段与线宽一律以客户端 RPCDeserializeAuto.lua 的 midToReader[n] 为准
// (硬规则 209),不是 dump.cs:
// <code>
// [64067363] openEntrance = ReadList7Bit(u32); displayableEntrances = ReadList7Bit(u32)
// [64239821] mapEntranceId = ReadUInt32; isOpen = ReadBoolean; isShow = ReadBoolean
// [64660858] fare = ReadUInt32
// </code>
// 全是裸基本类型 / 列表,没有 complex 头 ⇒ 契约必须 Inline = true,
// 多一个 0xFF 就会把第一个入口 id 整体错位。
// ⛑ SyncPrepareMapEntrance(64610549) 在客户端 lua 里没有 reader
// (只在 RPCMethodIdToName / MethodIds.json 出现),kpect 是靠
// UXRPCMethodArgs64610549.entrance 的 typeIdx 反查成 uint32 的。
// 所以它有可能是 C# 侧消费(CSharpOnly)—— 这条只能实机验,故做成可关开关。
//
// SyncMapEntrance (64067363):全量清单。openEntrance = 已解锁,displayableEntrances = 可见。
// UpdateMapEntrance (64239821):单点开关(isOpen = 解锁,isShow = 可见)。
// SyncPrepareMapEntrance (64610549):单点「准备」(推测是交通层入口的注册步骤)。
// SyncSubwayFare (64660858):地铁票价。客户端流程「选站 → 搭乘 → 支付 → 过场 → 传送」。
//
// AskTouchMapEntrance (63284182) 的 C2S 载荷:raidId @0 + mapEntranceId @4(小端裸值)。
// 客户端 ClientToGameDelegate.AskTouchMapEntrance 是 Notify(void,不等回包),
// 调用点是 MapCsApi.Legacy_DoFightMapEntrance(gRaidDataManager.RaidId, mapEntranceId)。
//