using PSO2SERVER.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PSO2SERVER.Packets.PSOPackets { public class MinimapRevealPacket : Packet { private ObjectHeader unk1 { get; set; } private ObjectHeader party { get; set; } private uint zone_id { get; set; } private byte[] unk2 { get; set; } = new byte[10]; // 构造函数,允许在创建时初始化字段 public MinimapRevealPacket(ObjectHeader unk1, ObjectHeader party, uint zone_id, byte[] unk2) { this.unk1 = unk1; this.party = party; this.zone_id = zone_id; // 如果传入的 unk2 长度小于 10,则填充剩余部分为 0 if (unk2.Length <= 10) { this.unk2 = unk2.Concat(new byte[10 - unk2.Length]).ToArray(); } else { // 如果传入的 unk2 长度大于 10,则截取前 10 字节 this.unk2 = unk2.Take(10).ToArray(); } } public MinimapRevealPacket() { } #region implemented abstract members of Packet public override byte[] Build() { var pkt = new PacketWriter(); pkt.WriteStruct(unk1); pkt.WriteStruct(party); pkt.Write(zone_id); for (var i = 0; i < 10; i++) pkt.Write(unk2[i]); return pkt.ToArray(); } public override PacketHeader GetHeader() { return new PacketHeader(0x0B, 0x13, PacketFlags.None); } #endregion } }