40 lines
2.4 KiB
Go
40 lines
2.4 KiB
Go
package methods
|
||
|
||
//
|
||
// Teleport wire contracts for client 4229938. Field order is the wire order,
|
||
// verified against lua/LuaGen/AutoGen/RPCSerializeAuto.lua (WriteTeleportOption,
|
||
// WritePreTeleportOption, WriteUXVector3) and dump.cs TeleportOption (33016) /
|
||
// PreTeleportOption (33015).
|
||
//
|
||
//
|
||
// Server -> client SyncTeleport (64030755) payload.
|
||
// ⛑⛑ 不是 Inline(2026-09-26 14:1x 实机修):客户端
|
||
// RPCDeserializeAuto.lua:1674 是
|
||
// Base.ReadComplex(reader, Auto.Reader[287]) ⇒ 载荷前面必须有一个 0xFF presence 字节。
|
||
// 之前标成 Inline ⇒ 少 1 字节 ⇒ 客户端报
|
||
// UXBinaryReader ReadBuffer invalid size=4 remain=3 at ReadTeleportOption
|
||
// (想读 4 字节的 MapEntranceId 时只剩 3 字节,正好差那 1 字节)。
|
||
// 顶层非 Inline 后 UxSerializer.Serialize 会自动写 0xFF,推送侧不用改。
|
||
// donor(repair-shop.zip)的 TeleportOption 同样是 [UxContract](非 Inline)。
|
||
//
|
||
//
|
||
// Server -> client SyncPreTeleportOption (64167855) payload, 同时也是 AskTeleport 的参数。
|
||
// Same layout as the client arg.
|
||
// ⛑⛑ 不是 Inline(2026-09-26 14:1x 实机修,改装店进不去的根因):
|
||
// C2S 侧客户端 ClientToGameDelegate.lua:1475 用
|
||
// SerializeBase.WriteComplex(writer, option, WritePreTeleportOption, "option", false)
|
||
// ⇒ 参数体第一个字节就是 0xFF。之前标成 Inline ⇒ TryGetArgs 整体错位 1 字节 ⇒
|
||
// 服务端一路打 [TELEPORT] AskTeleport undecodable bytes=128,
|
||
// 既不记 PendingTeleportId 也不 echo,客户端卡在 loading 事务里(连带主驾驶的下车交互一起没了)。
|
||
// 实机抓包(2026-09-26 14:13:01,前 64B)逐字段对得上:
|
||
// FF 08000000(configId=8) 00×8(teleportId=0) 01(ForceClear)
|
||
// 1E000000(TimeLineDration=30) 00×12(position 全零) 00000000(facing)
|
||
// 14+"loading_garage_in02"(Int7 长度 20 ⇒ 19 字符) 01(customBeforeTrans) …
|
||
// ⛑ 字符串用 string?(默认 null):null 写 00、空串写 01,
|
||
// 与 donor 一致,也保证「读进来什么就 echo 回去什么」。
|
||
//
|
||
// Client -> server AskTeleport (63175104) invoke arg. Parsed with TryGetArgs (best-effort).
|
||
// Client -> server ReportPreTeleportFinish (63032762) invoke arg.
|
||
// Client -> server ReportPostTeleportFinish (63682240) notify args.
|
||
// Client -> server GM Teleport (62733679): UXRPCMethodArgs62733679 = (x, z) floats.
|