public void Append(DataPacket buffer, int offset, out int nextoffset)
 {
     nextoffset = offset;
     buffer.WriteString(Name, offset);
     buffer.WriteUInt32(Unknown16, offset + 16);
     buffer.WriteUInt32(Unknown20, offset + 20);
     buffer.WriteUInt32(Level, offset + 24);
     buffer.WriteUInt16((ushort)Rank, offset + 28);
     buffer.WriteUInt16(Unknown30, offset + 30);
     buffer.WriteUInt32(Unknown32, offset + 32);
     buffer.WriteInt32(Donation, offset + 36);
     buffer.WriteBool(IsOnline, offset + 40);
     buffer.WriteUInt32(Unknown44, offset + 44);
     nextoffset += 48;
 }
 public static DataPacket GeneralDataA(uint UID, uint A, uint B, uint C, ushort Type, ushort E, ushort X, ushort Y)
 {
     DataPacket Packet = new DataPacket(45, 10010);
     Packet.WriteUInt32(UID, 4);
     Packet.WriteUInt32(A, 8);
     Packet.WriteUInt32(B, 12);
     Packet.WriteUInt32(C, 16);
     Packet.WriteUInt16(Type, 20);
     Packet.WriteUInt16(E, 22);
     Packet.WriteUInt16(X, 24);
     Packet.WriteUInt16(Y, 26);
     Packet.WriteUInt32(0, 28);
     Packet.WriteUInt32(0, 32);
     Packet.WriteByte(0, 36);
     return Packet;
 }