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

36 lines
2.2 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
//
// 改装店(Smokey Drift / ApplyCar)购买链的 wire 契约。
// <para>每一个字段顺序都对着客户端自己的读写器核过(LuaGen/AutoGen):
// C2S 看 ClientToGameDelegate.lua 的 *_Serializer,S2C 看
// RPCDeserializeAuto.lua 的 midToReturnMessageReader。</para>
// <para>⛑⛑ 上游 donor(repair-shop.zip)在 63699253 上把 inline/complex 标反了:
// 它把返回体 NpcShopCommodityInfo 标成非 inline(会写 0xFF),把里面的
// RefreshState 标成 inline(不写 0xFF);而客户端是
// Base.ReadStruct(reader, Auto.Reader[638]) + Base.ReadComplex(reader, Auto.Reader[328])
// —— 正好相反。这里按客户端为准(取证第一优先),donor 那份照抄会导致整条返回体错位。</para>
//
// Args of AskNpcShopCommodityInfo (63699253, Invoke): {shopid:u32}
// (ClientToGameDelegate.lua:5242,只有一个 WritePrimitive u32)。
// 店铺刷新状态 = Auto.Reader[328],9 个 u32。
// 客户端用 Base.ReadComplex 读它 ⇒ 单独出现时要带 0xFF。
//
// Return of AskNpcShopCommodityInfo = Auto.Reader[638]。
// 客户端是 Base.ReadStruct ⇒ 整个返回体没有 presence 字节,所以这里必须 Inline。
//
// Args of AskBuyModifyParts (63701165, Invoke → void):
// {shopid, vehicleid, commodityiddict(dict7), removedparttypes(list7)}
// (ClientToGameDelegate.lua:5267 —— WriteDict7Bit + WriteList7Bit)。
// Args of AskBuyCommodities (63614427, Invoke → void):{shopid, commodityiddict(dict7)}
// (ClientToGameDelegate.lua:4612)。4S 店的整单购买;回调只读错误码。
// Args of AskBuyCommodity (63970007, Invoke → void):{shopid, commodityid, count}
// (ClientToGameDelegate.lua:7216;09-24 实机 12 字节:70DA9B05 30789D05 01000000)。
// Args of AskVehicleShopDestroyParking (63613647, Invoke → void):{shopid}
// (ClientToGameDelegate.lua:4604)。客户端把停在那的预览车收掉了。
//
// Return of AskVehicleShopSpawnVehicle (63497070):
// midToReturnMessageReader[63497070] = function(reader) local r0 = reader.ReadUInt64(reader) end
// ⇒ 返回体就是裸 8 字节 u64,不能带 presence 字节(所以 Inline + 单字段)。
//