2024-11-27 18:05:53 +08:00
|
|
|
|
using PSO2SERVER.Models;
|
|
|
|
|
using static PSO2SERVER.Models.PSOPalette;
|
|
|
|
|
|
|
|
|
|
namespace PSO2SERVER.Protocol.Packets
|
|
|
|
|
{
|
|
|
|
|
public class LoadPalettePacket : Packet
|
|
|
|
|
{
|
|
|
|
|
#region implemented abstract members of Packet
|
|
|
|
|
|
|
|
|
|
public uint CurPalette { get; set; }
|
|
|
|
|
public uint CurSubpalette { get; set; }
|
|
|
|
|
public uint CurBook { get; set; }
|
|
|
|
|
public WeaponPalette[] Palettes { get; set; } = new WeaponPalette[6];
|
|
|
|
|
public SubPalette[] Subpalettes { get; set; } = new SubPalette[6];
|
|
|
|
|
|
|
|
|
|
public LoadPalettePacket()
|
|
|
|
|
{
|
|
|
|
|
CurPalette = 1;
|
|
|
|
|
CurSubpalette = 0;
|
|
|
|
|
CurBook = 0;
|
|
|
|
|
|
|
|
|
|
// 初始化 Palettes
|
|
|
|
|
for (int i = 0; i < Palettes.Length; i++)
|
|
|
|
|
{
|
2024-12-10 13:33:57 +08:00
|
|
|
|
Palettes[i] = new WeaponPalette();
|
2024-11-27 18:05:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 初始化 Subpalettes(根据需要可以进行自定义初始化)
|
|
|
|
|
for (int i = 0; i < Subpalettes.Length; i++)
|
|
|
|
|
{
|
2024-12-10 13:33:57 +08:00
|
|
|
|
Subpalettes[i] = new SubPalette(); // 这里可以根据需要进行初始化
|
2024-11-27 18:05:53 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override byte[] Build()
|
|
|
|
|
{
|
|
|
|
|
var pkt = new PacketWriter();
|
|
|
|
|
pkt.Write(CurPalette);
|
|
|
|
|
pkt.Write(CurSubpalette);
|
|
|
|
|
pkt.Write(CurBook);
|
|
|
|
|
|
|
|
|
|
// 初始化 Palettes
|
|
|
|
|
for (int i = 0; i < Palettes.Length; i++)
|
|
|
|
|
{
|
2024-12-10 13:33:57 +08:00
|
|
|
|
Palettes[i].WriteToStream(pkt);
|
2024-11-27 18:05:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 初始化 Subpalettes(根据需要可以进行自定义初始化)
|
|
|
|
|
for (int i = 0; i < Subpalettes.Length; i++)
|
|
|
|
|
{
|
2024-12-10 13:33:57 +08:00
|
|
|
|
Subpalettes[i].WriteToStream(pkt);
|
2024-11-27 18:05:53 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//// Enable flag
|
|
|
|
|
//pkt.Write((byte) 1);
|
|
|
|
|
|
|
|
|
|
//// Blank out the rest (skills)
|
|
|
|
|
//for (var i = 0; i < 1091; i++)
|
|
|
|
|
// pkt.Write((byte) 0);
|
|
|
|
|
|
|
|
|
|
return pkt.ToArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override PacketHeader GetHeader()
|
|
|
|
|
{
|
|
|
|
|
return new PacketHeader(0x21, 0x01, PacketFlags.None);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|