/// <summary> /// Creates a empty ready-to-use copy of a given implementation of DBSRVPackets. /// </summary> public static T CreatePacket <T>(ushort opcode) where T : struct, DBSRVPackets { MSG_HEADER validHeader = new MSG_HEADER(); T packet = W2Marshal.CreateEmpty <T>(); // Set the default values to the packet header. validHeader.Size = (ushort)Marshal.SizeOf(packet); validHeader.PacketID = opcode; validHeader.Key = (byte)W2Random.Instance.Next(127); validHeader.TimeStamp = (uint)Environment.TickCount; packet.Header = validHeader; return(packet); }
/// <summary> /// Creates a empty ready-to-use copy of a given implementation of IGamePacket. /// </summary> public static T GetEmptyValid <T>(ushort opcode) where T : struct, IGamePacket { MPacketHeader validHeader = new MPacketHeader(); T packet = W2Marshal.CreateEmpty <T>(); // Set the default values to the packet header. validHeader.Size = (ushort)Marshal.SizeOf(packet); validHeader.Opcode = opcode; validHeader.Key = (byte)W2Random.Instance.Next(127); validHeader.TimeStamp = (uint)Environment.TickCount; packet.Header = validHeader; return(packet); }