private void QueueLoginServerResponse(Queue <byte[]> queueList) { var encoding = Encoding.UTF8; using (var stream = new MemoryStream()) { using (var output = new SwgOutputStream(stream)) { output.WriteShort((short)SoeOpCodes.SoeChlDataA); output.WriteShort(0); output.WriteShort((short)SoeOpCodes.WorldUpdate); output.WriteInt(Constants.Constants.LoginServer.LoginServerString); output.WriteUtf(Constants.Constants.LoginServer.LoginServerInfo); stream.Position = 0; queueList.Enqueue(stream.ToArray()); } } using (var stream = new MemoryStream()) { using (var output = new SwgOutputStream(stream)) { output.SetOpCode((short)SoeOpCodes.SoeChlDataA); output.SetSequence(0); output.WriteShort((short)SoeOpCodes.WorldUpdate); output.WriteInt(Constants.Constants.LoginServer.LoginServerID); output.WriteInt(29411); stream.Position = 0; queueList.Enqueue(stream.ToArray()); } } }
private void GenerateAck(short sequence) { using (var stream = new MemoryStream()) { using (var output = new SwgOutputStream(stream)) { output.WriteShort((short)SoeOpCodes.SoeChlDataA); output.WriteByte(0); output.WriteShort(0); output.GenerateCrCSeed(stream.ToArray(), 0); _systemMessage.SendMessage(stream.ToArray()); } } }
private static byte[] GenerateNetStatusRequest() { using (var memoryStream = new MemoryStream()) using (var outputStream = new SwgOutputStream(memoryStream)) { outputStream.WriteShort((short)SoeOpCodes.SoeNetStatusRes); outputStream.ReverseBytes(0); // Client Tick (TODO: Implement client tick) outputStream.ReverseBytes(0); // Tick Count (TODO: Implement tick count) outputStream.ReverseBytes(0); // ClientPacketsSent (TODO: Implement tick count) outputStream.ReverseBytes(0); // ClientPacketsReceived (TODO: Implement tick count) outputStream.ReverseBytes(0); // ClientPacketsReceived (TODO: Implement tick count) outputStream.ReverseBytes(0); // serverPacketsReceivedThisClient (TODO: Implement) return(memoryStream.ToArray()); } }
private static void QueueServerSessionResponse(Queue <byte[]> queueList, SoeBaseObject sessionRecived) { using (var stream = new MemoryStream()) { using (var output = new SwgOutputStream(stream)) { output.SetOpCode((short)SoeOpCodes.SoeSessionResponse); // OPCode output.WriteInt(sessionRecived.ClientId); // Client Id output.ReverseBytes(sessionRecived.CsrSeed); // CsrSeed output.WriteByte(2); // CsrLength output.WriteByte(1); // Use compression output.WriteByte(4); // SeedSize output.WriteInt(Constants.Constants.LoginServer.MaxPacketSize); // Server UDP Size stream.Position = 0; var byterray = stream.ToArray(); queueList.Enqueue(byterray); } } }