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/models/game_switch_codec.go
T

32 lines
1.1 KiB
Go
Raw Normal View History

package models
import (
"encoding/json"
"sync"
)
var _ = json.RawMessage{}
var _ = sync.Mutex{}
//
// 手写字节的 SyncGameSwitchToClient_3(53940944) 载荷。
// 为什么不能用 UxSerializer:payload 是 Dictionary<string, UXObject>,
// value 是多态静态对象(tp 单字节 + payload),UxSerializer 不支持。
// 线格式由 donor 反汇编 UXRPCMethodArgs53940944.Read @ RVA 0x9AB5450 确认,别再改:
// <code>
// [Int7 计数] // Read7BitEncodedInt(),无 0xFF、无终止符
// 计数 × { [UxString key]; [tp:1][payload] } // value 前没有存在标记
// </code>
// tp = 2 是 bool(跳转表 RVA 0x1DAC878,tp∈[2,8]),payload 为 1 字节。
// 203 项 → 约 4.9 KB。
// ⛔⛔ 发送时必须走 Connection.NotifyRawAsync(methodId, byte[]):
// 用 NotifyAsync&lt;T&gt; 且 T = byte[] 会按 UX 缓冲区多写 3 字节(0xFF + varint(len+1)),
// 客户端把 FF 8A 26 当计数 ⇒ 整体错位。
//
type GameSwitchCodec struct {
}
const (
GameSwitchCodec_TypeTagBool byte = 2
)