Ejemplo n.º 1
0
        private void World_OnRecieve(object sender, ClientConnection clientConnection, Packet e)
        {
            Logging.WriteDebug("FROM WORLD");
            //HexViewer.View(e.AsByte, 0, e.AsByte.Length);

            /*PacketCrypto _packetCrypto = new PacketCrypto(clientConnection.Account.AccountHash);
             * if (clientConnection.Encrypted)
             * {
             *  _packetCrypto.Decrypt(e, 0, e.Data.Length);
             * }*/

            switch ((RealmServerOpCode)e.OpCode)
            {
            case RealmServerOpCode.CMSG_AUTH_SESSION:     //move this into a new .cs?
                e.Writer.BaseStream.Position     += 8;
                clientConnection.Account.Username = e.Reader.ReadCString();
                uint unk302 = e.Reader.ReadUInt32();
                clientConnection.Account.SessionID = e.Reader.ReadBytes(4);
                var p = new WorldPacket(RealmServerOpCode.SMSG_AUTH_RESPONSE);
                p.Writer.Write(0x0C);
                p.Writer.Write();
                p.Writer.Write((byte)2); //billing plan flags
                p.Writer.Write();        //billing plan rested
                p.Writer.Write();        //Expansion
                Send(clientConnection, p.GetCompressedOutPacket());
                //Addon packet info will go here

                /*List<String> AddonNames = new List<String>();
                 * List<uint> AddonHashes = new List<uint>();
                 * uint AddonCount = e.Reader.ReadUInt32();
                 * for (int i = 0; i < AddonCount; i++)
                 * {
                 *  AddonNames.Add(e.Reader.ReadCString());
                 *  e.Reader.ReadByte();
                 *  AddonHashes.Add(e.Reader.ReadUInt32());
                 *  e.Reader.ReadUInt32();
                 * }
                 *
                 * var addon = new Network.Packets.WorldPacket(RealmServerOpCode.SMSG_ADDON_INFO);
                 * for(int i = 0; i < AddonNames.Count; i++)
                 * {
                 *  addon.Writer.Write((byte)2); // addon type
                 *  addon.Writer.Write((byte)1); //unk
                 *  addon.Writer.Write(); // hash
                 *  addon.Writer.Write((UInt32)0);
                 *  addon.Writer.Write(); //3.0.8 unknown
                 * }
                 * Send(clientConnection, addon.GetCompressedOutPacket());*/
                break;

            default:
                PacketHandler.RunIncoming(clientConnection, e);
                break;
            }
        }
Ejemplo n.º 2
0
        private void World_OnConnect(object sender, ClientConnection clientConnection)
        {
            Logging.WriteDebug("WORLD CONNECT");
            var p = new WorldPacket(RealmServerOpCode.SMSG_AUTH_CHALLENGE);

            p.Writer.Write(_connectionSeed);
            //var p = new Packet();
            //p.Write(RealmServerOpCode.SMSG_AUTH_CHALLENGE);
            //p.Write(_connectionSeed);
            Send(clientConnection, p.GetCompressedOutPacket());
        }