Code:
class PacketBuilder
{
private byte[] buffer;
public PacketBuilder(byte[] Buffer)
{
buffer = Buffer;
}
public void ZeroFill(byte[] Buffer, ushort Offset, ushort Count)
{
for (ushort i = 0; i < Count; i++)
Buffer[i + Offset] = 0x00;
}
public void WriteStringWithLength(string Arg, ushort Offset)
{
buffer[Offset] = (byte)Arg.Length;
Offset++;
ushort i = 0;
while (i < Arg.Length)
{
buffer[(ushort)(i + Offset)] = (byte)Arg[i];
i = (ushort)(i + 1);
}
}
public void WriteString(string Arg, ushort Offset)
{
ushort i = 0;
while (i < Arg.Length)
{
buffer[(ushort)(i + Offset)] = (byte)Arg[i];
i = (ushort)(i + 1);
}
}
public void WriteUshort(ushort Arg, ushort Offset)
{
buffer[Offset] = (byte)(Arg);
buffer[Offset + 1] = (byte)(Arg >> 8);
}
public void WriteUInt(uint Arg, ushort Offset)
{
buffer[Offset] = (byte)(Arg);
buffer[Offset + 1] = (byte)(Arg >> 8);
buffer[Offset + 2] = (byte)(Arg >> 16);
buffer[Offset + 3] = (byte)(Arg >> 24);
}
public void WriteUlong(ulong Arg, ushort Offset)
{
buffer[Offset] = (byte)(Arg);
buffer[Offset + 1] = (byte)(Arg >> 8);
buffer[Offset + 2] = (byte)(Arg >> 16);
buffer[Offset + 3] = (byte)(Arg >> 24);
buffer[Offset + 4] = (byte)(Arg >> 32);
buffer[Offset + 5] = (byte)(Arg >> 40);
buffer[Offset + 6] = (byte)(Arg >> 48);
buffer[Offset + 7] = (byte)(Arg >> 56);
}
}






