//Shorthand for SubPacket with gamepacket type public SubPacket(GamePacketOpCode opCode, uint sourceId, uint targetId, byte[] data, SubPacketTypes spt) { header = new SubPacketHeader(); gameMessage = new GameMessageHeader(); gameMessage.opcode = (ushort)opCode; header.sourceId = sourceId; header.targetId = targetId; gameMessage.timestamp = Utils.UnixTimeStampUTC(); header.type = (ushort)spt; header.subpacketMisc = 0x00; gameMessage.gamepacketMisc = 0x0; gameMessage.gamepacketMisc2 = 0; gameMessage.gamepacketMisc3 = 0; this.data = data; header.subpacketSize = (ushort)(SUBPACKET_SIZE + GAMEMESSAGE_SIZE + data.Length); }
public SubPacket buildPacket(GamePacketOpCode opCode, ErrorCodes errorId, string message) { byte[] msg = Encoding.Unicode.GetBytes(message); var errorIdConv = (ushort)errorId; MemoryStream memStream = new MemoryStream(); BinaryWriter binWriter = new BinaryWriter(memStream); try { binWriter.Write(errorIdConv); binWriter.Write(msg); byte[] data = memStream.GetBuffer(); memStream.Dispose(); binWriter.Close(); SubPacket subPacket = new SubPacket(opCode, 0, 0, data, SubPacketTypes.ErrorPacket); return(subPacket); } catch (Exception) { Console.WriteLine("something went wrong in writing to error packet, check buffers"); } throw new Exception("something went wrong in writing to error packet, check buffers"); }