using System; using PSO2SERVER.Models; using PSO2SERVER.Protocol.Packets; namespace PSO2SERVER.Protocol.Handlers { [PacketHandlerAttr(0x0B, 0x09)] public class MinimapRevealRequest : PacketHandler { // 定义 MinimapRevealRequestPacket 数据包结构 public struct MinimapRevealRequestPacket { // 未知字段,32位无符号整数 public uint unk1; // 玩家进入的区域块的ID public uint chunk_id; // 地图上区域块的列坐标 public uint map_column; // 地图上区域块的行坐标 public uint map_row; } public override void HandlePacket(Client context, byte flags, byte[] data, uint position, uint size) { //var info = string.Format("[<--] 接收到的数据 (hex): {0} 字节", data.Length); //Logger.WriteHex(info, data); if (context.Character == null) return; var reader = new PacketReader(data, position, size); // 从接收到的字节数组中解析数据到结构体 MinimapRevealRequestPacket packet = new MinimapRevealRequestPacket { unk1 = reader.ReadUInt32(), // 从数据包中解析unk1 chunk_id = reader.ReadUInt32(), // 从数据包中解析chunk_id map_column = reader.ReadUInt32(), // 从数据包中解析map_column map_row = reader.ReadUInt32() // 从数据包中解析map_row }; // 打印解析后的数据 Logger.Write($"解析的地图数据包: unk1 = {packet.unk1}, Chunk ID = {packet.chunk_id}, Column = {packet.map_column}, Row = {packet.map_row}"); } } }