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/pkg/protocol/methods/map_entrance_methods4229938.go
T

28 lines
1.7 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 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)。
//