public void SendHandshake(ushort pVersion, string pPatchLocation, byte pLocale) { _encryptIV = new byte[4]; rnd.NextBytes(_encryptIV); _decryptIV = new byte[4]; rnd.NextBytes(_decryptIV); Packet packet = new Packet(); packet.WriteUShort(pVersion); packet.WriteString(pPatchLocation); packet.WriteBytes(_decryptIV); packet.WriteBytes(_encryptIV); packet.WriteByte(pLocale); SendPacket(packet); _mapleVersion = pVersion; _maplePatchLocation = pPatchLocation; _mapleLocale = pLocale; }
private void ConnectToChannelServer(Packet pPacket) { ushort status = pPacket.ReadUShort(); string ip = string.Format("{0}.{1}.{2}.{3}", pPacket.ReadByte(), pPacket.ReadByte(), pPacket.ReadByte(), pPacket.ReadByte()); // Ignore IP ushort port = pPacket.ReadUShort(); byte[] leftover = pPacket.ReadLeftoverBytes(); CCing = true; NextPort = port; Packet packet = new Packet(); packet.WriteUShort(0x000B); packet.WriteShort(0); packet.WriteBytes(Constants.MapleStory_LoginIP_Bytes); packet.WriteUShort(8484); packet.WriteBytes(leftover); ClientSession.Instance.SendPacket(packet); Console.WriteLine("Status " + status + " ConnectToChannelServer: " + packet.ToString()); }