59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
using PSO2SERVER.Models;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
|
||
namespace PSO2SERVER.Protocol.Packets
|
||
{
|
||
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
|
||
}
|
||
} |