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.