public static void HandleCommandPacket(INetworkClient client, ConanPacket packet)
        {
            var recObjTyp     = packet.Data.ReadUInt32();
            var recClientInst = packet.Data.ReadUInt32();
            var unk0          = packet.Data.ReadByte();
            var recDataLength = packet.Data.ReadUInt32();
            var unk2          = packet.Data.ReadUInt32();
            var unk3          = packet.Data.ReadByte();
            var runByte       = packet.Data.ReadByte();

            uint recVal = 0;
            var  runId  = 0;

            while (runByte != 0x22)
            {
                if (runId == 0)
                {
                    recVal = runByte;
                }
                if (runId == 1)
                {
                    recVal += runByte * 0x100u;
                }
                if (runId == 2)
                {
                    recVal += runByte * 0x10000u;
                }
                if (runId == 3)
                {
                    recVal += runByte * 0x1000000u;
                }

                runByte = packet.Data.ReadByte();
                runId++;
            }

            var recCmd    = packet.Data.ReadShortString();
            var strend    = packet.Data.ReadByte();
            var unk4      = packet.Data.ReadUInt16(); // MELVIN
            var recSecCmd = packet.Data.ReadShortString();

            switch (recCmd)
            {
            case "IntroDone":
            {
                var aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(0x00000019);
                aBuffer.WriteUInt32(0x96b8dc59);
                aBuffer.WriteUInt32(0x0000c350);
                aBuffer.WriteUInt32(client.Account.ClientInstance);
                aBuffer.WriteByte(0);
                aBuffer.WriteUInt32(0x00000001);
                aBuffer.WriteUInt32(0x000000ba);
                aBuffer.WriteUInt32(0);
                aBuffer.Send(client);
            }
            break;

            case "ChangeSex":
                client.Character.Sex = (byte)recVal;
                break;

            case "ChangeRace":
                client.Character.Race = (byte)recVal;
                break;

            case "ChangeHeadMesh":
                client.Character.HeadMesh = recVal;
                break;

            case "ChangeSize":
                client.Character.Size = (byte)recVal;
                break;

            case "ChangeClass":
                client.Character.Class = (byte)recVal;
                break;

            case "ChangeVoice":
                client.Character.Voice = (byte)recVal;
                break;

            case "SetMorphValue":
                Logger.Info("Second Command: " + recSecCmd + " with value: " + recVal);
                if (recSecCmd.Length > 0)
                {
                    //vector<string> scriptData = String::splitString(recSecCmd, "_");
                    //Logger.Info("Splitted String: %s - " + scriptData[0], scriptData[1]);
                    client.Account.CreateCounter++;
                    client.Account.CreateState = 1;

                    new PacketStream().WriteHeader(GameServerListener.Sender2,
                                                   GameServerListener.Receiver2, null, 0x2000)
                    .WriteArrayPrependLengthUInt32(new ConanStream()
                                                   //aBuffer.WriteUInt32(recSecCmd.Length + (5*4) + (1*2) + (2*1)); // length
                                                   .WriteUInt32(0xbadf5a4b)
                                                   .WriteUInt32(0x0000c350)
                                                   .WriteUInt32(client.Account.ClientInstance)
                                                   .WriteByte(0)
                                                   .WriteString(recSecCmd)
                                                   .WriteUInt32(0x3f800000)
                                                   .WriteByte(0)
                                                   .WriteUInt32(client.Account.CreateCounter + 1))
                    .Send(client);
                }
                else
                {
                    client.Account.CreateCounter = 0;
                }

                break;

            case "TheNameIs":
            {
                Logger.Info("Attempt to create Char with the name: " + recSecCmd);
                client.Character.Name = recSecCmd;

                //MELVIN

                /*if (!Database.isValidCharName(client.client.Account.charInfo.Name))
                 * {
                 *  //TODO add missing return packet
                 *  Logger.Info("Charname is incorrect !");
                 *  closesocket(client.client.Account.clientSocket);
                 *  break;
                 */

                var aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(client.Character.Name.Length + 5 * 4 + 1 * 2 + 1 * 1);
                aBuffer.WriteUInt32(0xadce0cda);
                aBuffer.WriteUInt32(0x0000c350);
                aBuffer.WriteUInt32(client.Account.ClientInstance);
                aBuffer.WriteUInt32(0);
                aBuffer.WriteUInt32(0x03010000);
                aBuffer.WriteByte(0);
                aBuffer.WriteString(client.Character.Name);
                aBuffer.Send(client);

                var data = new byte[]
                {
                    0x00, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x05, 0x10, 0x02, 0x18, 0x00, 0x22
                };
                aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(client.Character.Name.Length + 10 + 1 + data.Length + 4 * 4 + 1 * 2 + 2 * 1);
                aBuffer.WriteUInt32(0xa36d3b74);
                aBuffer.WriteUInt32(0x0000c350);
                aBuffer.WriteUInt32(client.Account.ClientInstance);
                aBuffer.WriteArray(data);
                aBuffer.WriteString("NicknameOk");
                aBuffer.WriteByte(0x2a);
                aBuffer.WriteString(client.Character.Name);
                aBuffer.WriteUInt32(0x32040800);
                aBuffer.WriteUInt16(0x1000);
                aBuffer.Send(client);

                var data2 = new byte[]
                {
                    0x00, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
                    0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x46, 0x37, 0x00, 0x00, 0x00, 0x00,
                    0x00
                };
                aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(data2.Length + 3 * 4);
                aBuffer.WriteUInt32(0xf508f4c1);
                aBuffer.WriteUInt32(0x0000c350);
                aBuffer.WriteUInt32(client.Account.ClientInstance);
                aBuffer.WriteArray(data2);
                aBuffer.Send(client);

                var data3 = new byte[]
                {
                    0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x05, 0x10, 0x02, 0x18, 0x00, 0x22, 0x14,
                    0x43, 0x68, 0x61, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6e,
                    0x69, 0x73, 0x68, 0x65, 0x64,
                    0x2a, 0x00, 0x32, 0x04, 0x08, 0x00, 0x10, 0x00
                };
                aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(data3.Length + 3 * 4);
                aBuffer.WriteUInt32(0xa36d3b74);
                aBuffer.WriteUInt32(0x0000c350);
                aBuffer.WriteUInt32(client.Account.ClientInstance);
                aBuffer.WriteArray(data3);

                aBuffer.Send(client);

                var data4 = new byte[]
                {
                    0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27, 0xf6, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00,
                    0x00, 0x00, 0x0a, 0x08, 0xc5, 0xc3, 0x02, 0x18, 0x01, 0x28, 0x18, 0x30, 0x00
                };
                aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(data4.Length + 1 * 4);
                aBuffer.WriteUInt32(0x642cd3d6);
                aBuffer.WriteArray(data4);

                aBuffer.Send(client);

                var data5 = new byte[]
                {
                    0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27, 0xf7, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00,
                    0x00, 0x00, 0x0a, 0x08, 0xc5, 0xc3, 0x02, 0x18, 0x01, 0x28, 0x18, 0x30, 0x00
                };
                aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(data5.Length + 1 * 4);
                aBuffer.WriteUInt32(0x642cd3d6);
                aBuffer.WriteArray(data5);

                aBuffer.Send(client);

                var data6 = new byte[]
                {
                    0x01, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x14
                };
                aBuffer = new PacketStream();
                aBuffer.WriteHeader(GameServerListener.Sender2, GameServerListener.Receiver2,
                                    null, 0x2000);
                aBuffer.WriteUInt32(data6.Length + 3 * 4);
                aBuffer.WriteUInt32(0xf98e10b3);
                aBuffer.WriteUInt32(0x0000c350);
                aBuffer.WriteUInt32(client.Account.ClientInstance);
                aBuffer.WriteArray(data6);

                aBuffer.Send(client);
            }
            break;

            default:
                Logger.Info("Receive unknown command: {0} with value {1}", recCmd, recVal);
                break;
            }
        }
예제 #2
0
        private static void HandleNewCharacter(INetworkClient client, ConanPacket packet)
        {
            var blobData7 = new byte[]
            {
                0x00, 0x00, 0x00, 0x89, 0xf5, 0x08, 0xf4, 0xc1, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData71 = new byte[]
            {
                0x00, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x00, 0xd0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x39, 0xbf, 0x93
            };

            var aBuffer = new PacketStream();

            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData7);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData71);
            aBuffer.WriteString("MaleTemplate=50000:10232;FemaleTemplate=50000:10233;StygianSlaver=50000:10234");
            aBuffer.WriteByte(0);
            aBuffer.WriteUInt32(0);
            aBuffer.Send(client);

            var blobData81 = new byte[]
            {
                0x00, 0x00, 0x00, 0x07, 0xe2, 0x00, 0x00, 0xd0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x9d, 0xd1, 0x00, 0x4d, 0x4d, 0x61,
                0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x35, 0x30, 0x30, 0x30,
                0x30, 0x3a, 0x31, 0x30, 0x32, 0x33, 0x32, 0x3b, 0x46, 0x65, 0x6d, 0x61, 0x6c, 0x65, 0x54,
                0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x3a, 0x31,
                0x30, 0x32, 0x33, 0x33, 0x3b, 0x53, 0x74, 0x79, 0x67, 0x69, 0x61, 0x6e, 0x53, 0x6c, 0x61,
                0x76, 0x65, 0x72, 0x3d, 0x35, 0x30, 0x30, 0x30, 0x30, 0x3a, 0x31, 0x30, 0x32, 0x33, 0x34,
                0x00, 0x00, 0x00, 0x00, 0x00
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteUInt32(0x00000089);
            aBuffer.WriteUInt32(0xf508f4c1);
            aBuffer.WriteUInt32(0x0000c350);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData81);
            aBuffer.Send(client);

            var blobData4 = new byte[]
            {
                0x00, 0x00, 0x00, 0x15, 0xf9, 0x8e, 0x10, 0xb3, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData41 = new byte[]
            {
                0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x00, 0x02
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData4);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData41);
            aBuffer.Send(client);

            var blobData5 = new byte[]
            {
                0x00, 0x00, 0x00, 0x4c, 0x6b, 0x87, 0xe3, 0x16, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData51 = new byte[]
            {
                0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData52 = new byte[]
            {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x27, 0x10,
                0x00, 0x01,
                0x00, 0x00, 0x00, 0x01,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x0b, 0x90,
                0x00, 0x00, 0x00, 0x01,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x01,
                0x00, 0x00, 0x00, 0x00,
                0x02, 0x3c, 0x4b, 0xa3
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData5);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData51);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData52);
            aBuffer.Send(client);

            var blobData6 = new byte[]
            {
                0x00, 0x00, 0x00, 0x11, 0x40, 0x74, 0x9b, 0x8a, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData61 = new byte[]
            {
                0x01, 0x00, 0x00, 0x00, 0x00
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData6);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData61);
            aBuffer.Send(client);

            var blobData9 = new byte[]
            {
                0x00, 0x00, 0x03, 0x06, 0xa3, 0x6d, 0x3b, 0x74, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData91 = new byte[]
            {
                0x00, 0x00, 0x00, 0x02, 0xf5, 0x08, 0x05, 0x10, 0x07, 0x18, 0x00, 0x22, 0xb9, 0x01, 0x3c,
                0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x74, 0x6f,
                0x6b, 0x65, 0x6e, 0x3d, 0x22, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x72, 0x73, 0x6b, 0x69, 0x70,
                0x28, 0x37, 0x32, 0x29, 0x7c, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x63, 0x6f,
                0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x28, 0x31, 0x29, 0x7c, 0x4e, 0x45, 0x57, 0x5f,
                0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
                0x69, 0x6f, 0x6e, 0x20, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x20, 0x47, 0x61, 0x6c, 0x6c, 0x65,
                0x79, 0x20, 0x28, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2d, 0x73, 0x69, 0x64, 0x65, 0x29,
                0x22, 0x20, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x3d, 0x22, 0x35, 0x30, 0x30,
                0x32, 0x33, 0x22, 0x20, 0x6b, 0x65, 0x79, 0x3d, 0x22, 0x26, 0x71, 0x75, 0x6f, 0x74, 0x3b,
                0x42, 0x5d, 0x53, 0x5a, 0x2e, 0x41, 0x47, 0x52, 0x47, 0x72, 0x41, 0x79, 0x4f, 0x47, 0x65,
                0x2a, 0x42, 0x47, 0x2d, 0x22, 0x20, 0x6b, 0x6e, 0x75, 0x62, 0x6f, 0x74, 0x3d, 0x22, 0x30,
                0x22, 0x20, 0x20, 0x3e, 0x3c, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x66, 0x6f, 0x72,
                0x6d, 0x61, 0x74, 0x3e, 0x2a, 0xa6, 0x04, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a,
                0x37, 0x39, 0x33, 0x37, 0x31, 0x33, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a,
                0x37, 0x39, 0x33, 0x37, 0x31, 0x34, 0x3b, 0x31, 0x30, 0x37, 0x30, 0x30, 0x30, 0x33, 0x3a,
                0x34, 0x30, 0x30, 0x30, 0x3b, 0x31, 0x30, 0x30, 0x30, 0x30, 0x39, 0x37, 0x3a, 0x34, 0x30,
                0x30, 0x30, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x33, 0x30, 0x3a, 0x31, 0x35, 0x36, 0x32,
                0x31, 0x31, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x33, 0x30, 0x3a, 0x32, 0x33, 0x39, 0x34,
                0x34, 0x38, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x33, 0x30, 0x3a, 0x35, 0x36, 0x35, 0x39,
                0x31, 0x33, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x37, 0x32, 0x38,
                0x35, 0x33, 0x33, 0x3b, 0x31, 0x30, 0x36, 0x30, 0x36, 0x36, 0x38, 0x3a, 0x34, 0x30, 0x30,
                0x30, 0x3b, 0x31, 0x30, 0x30, 0x30, 0x30, 0x35, 0x39, 0x3a, 0x34, 0x30, 0x30, 0x30, 0x3b,
                0x31, 0x30, 0x36, 0x30, 0x36, 0x36, 0x37, 0x3a, 0x31, 0x36, 0x37, 0x33, 0x36, 0x38, 0x3b,
                0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x30, 0x37, 0x35, 0x34, 0x34, 0x35,
                0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x31, 0x38, 0x30, 0x30, 0x32,
                0x35, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x32, 0x32, 0x31, 0x32, 0x38,
                0x35, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x36, 0x36, 0x33, 0x31,
                0x39, 0x30, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x32, 0x30, 0x38, 0x39,
                0x32, 0x33, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x32, 0x30, 0x38, 0x32,
                0x36, 0x36, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x32, 0x32, 0x36, 0x38,
                0x39, 0x31, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x36, 0x36, 0x33,
                0x31, 0x39, 0x31, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x36, 0x35,
                0x36, 0x31, 0x30, 0x39, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x33, 0x30, 0x3a, 0x32, 0x31,
                0x30, 0x30, 0x36, 0x39, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x31, 0x3a, 0x32, 0x31,
                0x30, 0x30, 0x37, 0x30, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33, 0x30,
                0x37, 0x35, 0x34, 0x35, 0x32, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a, 0x33,
                0x30, 0x37, 0x35, 0x34, 0x35, 0x30, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x34, 0x3a,
                0x33, 0x30, 0x37, 0x35, 0x34, 0x35, 0x31, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x33, 0x30, 0x30,
                0x3a, 0x34, 0x30, 0x30, 0x30, 0x3b, 0x31, 0x30, 0x30, 0x30, 0x30, 0x34, 0x39, 0x3a, 0x34,
                0x30, 0x30, 0x30, 0x3b, 0x31, 0x30, 0x36, 0x36, 0x36, 0x31, 0x31, 0x3a, 0x34, 0x30, 0x30,
                0x30, 0x3b, 0x31, 0x30, 0x30, 0x30, 0x30, 0x31, 0x33, 0x3a, 0x34, 0x30, 0x30, 0x30, 0x30,
                0x30, 0x30, 0x30, 0x3b, 0x31, 0x30, 0x30, 0x30, 0x30, 0x31, 0x35, 0x3a, 0x34, 0x30, 0x30,
                0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x35, 0x30, 0x36, 0x3a, 0x34,
                0x30, 0x30, 0x30, 0x3b, 0x31, 0x30, 0x30, 0x30, 0x30, 0x35, 0x38, 0x3a, 0x34, 0x30, 0x30,
                0x30, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x32, 0x30, 0x37, 0x3a, 0x31, 0x31, 0x30, 0x30, 0x30,
                0x36, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x32, 0x30, 0x37, 0x3a, 0x32, 0x36, 0x32, 0x32, 0x34,
                0x31, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x32, 0x30, 0x37, 0x3a, 0x35, 0x36, 0x38, 0x38, 0x30,
                0x36, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x32, 0x30, 0x37, 0x3a, 0x33, 0x34, 0x32, 0x30, 0x33,
                0x33, 0x31, 0x3b, 0x31, 0x30, 0x31, 0x30, 0x32, 0x30, 0x37, 0x3a, 0x31, 0x36, 0x37, 0x31,
                0x38, 0x33, 0x32, 0x08, 0x08, 0x95, 0xb1, 0x27, 0x10, 0x99, 0xf7, 0x31
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData9);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData91);
            aBuffer.Send(client);

            var blobData10 = new byte[]
            {
                0x00, 0x00, 0x00, 0x2b, 0xa3, 0x6d, 0x3b, 0x74, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData101 = new byte[]
            {
                0x00, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x05, 0x10, 0x02, 0x18, 0x00, 0x22, 0x0a, 0x50, 0x6c,
                0x61, 0x79, 0x4f, 0x72, 0x53, 0x6b, 0x69, 0x70, 0x2a, 0x00, 0x32, 0x04, 0x08, 0x00, 0x10,
                0x00
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData10);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteArray(blobData101);
            aBuffer.Send(client);

            var blobData11 = new byte[]
            {
                0x00, 0x00, 0x00, 0x28, 0xba, 0xdf, 0x5a, 0x4b,
                0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27, 0xf8,
                0x00, 0x00, 0x10, 0x2a, 0x68, 0x61, 0x69, 0x72, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x32, 0x30,
                0x37, 0x39, 0x32, 0x30, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData11);
            aBuffer.Send(client);

            var blobData12 = new byte[]
            {
                0x00, 0x00, 0x00, 0x28, 0xba, 0xdf, 0x5a, 0x4b, 0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27,
                0xf9, 0x00, 0x00, 0x10, 0x2a, 0x68, 0x61, 0x69, 0x72, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x32,
                0x30, 0x33, 0x36, 0x36, 0x36, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData12);
            aBuffer.Send(client);

            var blobData13 = new byte[]
            {
                0x00, 0x00, 0x00, 0x20, 0x64, 0x2c, 0xd3, 0xd6,
                0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27, 0xf8,
                0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0a, 0x08, 0xd3, 0x9e, 0x05, 0x18,
                0x02, 0x28, 0x18, 0x30, 0x00
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData13);
            aBuffer.Send(client);

            var blobData14 = new byte[]
            {
                0x00, 0x00, 0x00, 0x29, 0xba, 0xdf, 0x5a, 0x4b, 0x00, 0x00, 0xc3, 0x50
            };
            var blobData141 = new byte[]
            {
                //0x00,
                //0x00, 0x11,
                //0x2a, 0x74, 0x65, 0x78, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x31, 0x38, 0x33, 0x38, 0x37, 0x35,
                0x3f, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData14);
            aBuffer.WriteUInt32(client.Account.ClientInstance);
            aBuffer.WriteByte(0);
            aBuffer.WriteString("*texscript_183875");
            aBuffer.WriteArray(blobData141);
            aBuffer.Send(client);

            var blobData15 = new byte[]
            {
                0x00, 0x00, 0x00, 0x29, 0xba, 0xdf, 0x5a, 0x4b, 0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27,
                0xf9, 0x00, 0x00,
                0x11, 0x2a, 0x74, 0x65, 0x78, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x31, 0x38, 0x33,
                0x38, 0x37, 0x35, 0x3f, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData15);
            aBuffer.Send(client);

            var blobData16 = new byte[]
            {
                0x00, 0x00, 0x00, 0x29, 0xba, 0xdf, 0x5a, 0x4b, 0x00, 0x00, 0xc3, 0x50, 0x00, 0x00, 0x27,
                0xf8, 0x00, 0x00,
                0x11, 0x2a, 0x74, 0x65, 0x78, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x31, 0x38, 0x33,
                0x38, 0x37, 0x35, 0x3f, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02
            };

            aBuffer = new PacketStream();
            aBuffer.WriteHeader(Sender2, Receiver2, null, 0x2000);
            aBuffer.WriteArray(blobData16);
            aBuffer.Send(client);
        }
예제 #3
0
        public PacketWrapper(uint id, IPv4Packet ipv4, ushort sourcePort, ushort destPort, ConanPacket conanPacket)
        {
            Id          = id;
            ConanPacket = conanPacket;

            EthernetPacket = new EthernetPacket(NullAddress, NullAddress, EthernetPacketType.IpV4)
            {
                PayloadPacket = ipv4
            };
            Ipv4Packet.PayloadPacket = new UdpPacket(sourcePort, destPort); // conandata
        }