Hola a todos, esta es una clase que quizas a alguien le sirva, es para construir paquetes que son enviados a traves de la internet, solo he testeado agregar bytes y ints, pero deberia funcionar con el resto, habran maneras mejores pero me siento feliz por haber hecho esto ^^
Lo hice ya que como proyecto de aprendizaje estoy programando un servidor de Conquer online desde "0" (los sockets y la criptografia son copiadas)
Esta en ingles porque la comunidad mas desarrollada en servidores de este juego es de E.E.U.U
public class Builder
{
public static void WriteByte(byte val, int offset, byte[] Data)
{
Data[offset] = val;
}
public static void WriteUInt16(ushort val, int offset, byte[] Data)
{
Data[offset] = (byte)val;
Data[++offset] = (byte)(val >> 8);
}
public static void WriteUInt32(uint val, int offset, byte[] Data)
{
Data[offset] = (byte)val;
Data[++offset] = (byte)(val >> 8);
Data[++offset] = (byte)(val >> 16);
Data[++offset] = (byte)(val >> 24);
}
public static void WriteUInt64(ulong val, int offset, byte[] Data)
{
Data[offset] = (byte)val;
Data[++offset] = (byte)(val >> 8);
Data[++offset] = (byte)(val >> 16);
Data[++offset] = (byte)(val >> 24);
Data[++offset] = (byte)(val >> 32);
Data[++offset] = (byte)(val >> 40);
Data[++offset] = (byte)(val >> 48);
Data[++offset] = (byte)(val >> 56);
}
public static void WriteString(string val, int offset, byte[] Data)
{
for (int i = 0; i < val.Length; i++)
{
Data[offset + i] = (byte)val[i];
}
}
}