public override byte[] WritedData()
        {
            using (var stream = new MemoryStream())
            using (var writer = new BinaryWriter(stream))
            {
                writer.WriteQ(_character.Uid);
                writer.WriteD(1);
                writer.WriteH(1);
                writer.WriteD(_character.GameSessionId);

                writer.Write("8014BCC7".ToBytes()); //x
                writer.Write("000072C5".ToBytes()); //y
                writer.Write("80F99747".ToBytes()); //z
                writer.Write("046788BE".ToBytes()); //cosinus
                writer.WriteD(0);
                writer.Write("80BF763F".ToBytes()); //sinus

                writer.WriteD(_character.DatabaseCharacterData.ClassType.Ordinal());
                writer.Write("0000803F00004743ABE7FFFFFFFFFFFFABE7FFFFFFFFFFFF02946DE4950000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000FFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000000000FE00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFF000000000000000000000000000000000000000000000000000000000000FEFFFF00000000000000000000000000000000000000000000000000000000FFFFFF0000000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FF0000FF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FF00000000000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000FFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFF00000000000000000000000000000000000000000000000000000000000000FE00000000000000000000000000000000000000000000000000000000FFFFFFFFD3090000000000006F09170000000000".ToBytes());
                writer.WriteD(1);
                writer.WriteQ(_character.Uid);

                writer.WriteD(1);
                writer.WriteD(1);
                writer.WriteD(2);
                writer.WriteD(1);

                writer.WriteD(0);
                writer.WriteD(0);
                writer.WriteD(0);

                writer.Write("3B34000005FCFFFF2500000000000000000000000005511D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FCFFFF01".ToBytes());
                writer.WriteD(_character.DatabaseCharacterData.Level);
                writer.WriteD(0);
            
                writer.Write("030000000000000000000000000000000000000000000000A05100000000000000000000000000000000000000FCFFFF000000000000000000000000020000000000000000000000000000000200000000000000000000000000".ToBytes());

                writer.WriteD(1);
                writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.Surname, Encoding.Unicode, 62));
                writer.Skip(402); //zeros
                writer.WriteD(1);
                writer.Write(BinaryExt.WriteFixedString(_character.DatabaseCharacterData.CharacterName, Encoding.Unicode, 62));
                writer.Write(_character.DatabaseCharacterData.AppearancePresets);

                //TODO - inventory
                writer.Write("3B340000FFFFFFFFFFFFFFFF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF002E330000FFFFFFFFFFFFFFFF6400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00F72C0000FFFFFFFFFFFFFFFF2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00F82C0000FFFFFFFFFFFFFFFF3200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00382A0000FFFFFFFFFFFFFFFF6400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00F62C0000FFFFFFFFFFFFFFFF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FEFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000060C9F67F0000000000000100FFFF18CE4A490100000000000000000000000019E9070000000040F3B8611800000052C460C8F67F00000000000000000000F018E9070000000000000000F10C000080C928C8FFFFFFFFFEFFFFFFFFFFFFFF38F4B86118000000010000000000000031EA5FC8F67F0000F08617091800000000000000000000001300000000000000000000000000000000000000FFFFFFFF18CE4A49010000000000000000000000B8F4B86118000000FEFFFFFFFFFFFFFF29E85FC8F67F00000100".ToBytes());
                writer.WriteH(_character.DatabaseCharacterData.Zodiac.GetHashCode());
                writer.Write("FCFFFF37010000000000001301000000000000000000000000000037010000000000000000000000000000000000000000FEFF01".ToBytes());

                return stream.ToArray();
            }
        }
Beispiel #2
0
        public override byte[] WritedData()
        {
            using (var stream = new MemoryStream())
            using (var writer = new BinaryWriter(stream))
            {
                var inventory = _player.Inventory;
                
                writer.WriteC(1);
                writer.WriteC(1);
                writer.WriteD(_player.GameSessionId);
                writer.Skip(12);
                writer.WriteH(inventory.Items.Count);
                writer.WriteC(0);

                for (short i = 0; i < inventory.Items.Count; i++)
                {
                    var item = inventory.Items[(short) (i + 1)];
                   
                    writer.WriteC(i);
                    writer.WriteD(item.ItemId);
                    writer.WriteQ(item.Count);
                    writer.Write("FFFFFFFFFFFFFFFF".ToBytes());
                    writer.WriteD(i == 0 ? 0 : 1);
                    writer.WriteD(0);
                    writer.WriteC(0);
                    writer.Write("0100FF7FFF7F3A38E56FF2862300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000".ToBytes());
                }

                return stream.ToArray();
            }
        }
        public override byte[] WritedData()
        {
            using (var stream = new MemoryStream())
            using (var writer = new BinaryWriter(stream))
            {
                writer.WriteH(_info.ClassType.Ordinal());

                writer.WriteQ(_info.CharacterId);
                writer.WriteC(0);//possible slot
                writer.Write(BinaryExt.WriteFixedString(_info.CharacterName, Encoding.Unicode, 62));
                writer.WriteD(_info.Level);
                writer.WriteD(0);

                writer.Write(_inventoryField);

                writer.Write(_info.AppearancePresets);//10
                writer.WriteC((byte)_info.Zodiac);
                writer.Write(_info.AppearanceOptions);//800

                writer.Write(BinaryExt.WriteFixedString(_info.Surname, Encoding.Unicode, 62));

                writer.Write("FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000309F055BF67F0000701ED5DA150000000000000000000000000000FFFFFFFFFFE86FC2A10A".ToBytes());

                return stream.ToArray();
            }
        }      
Beispiel #4
0
 public override byte[] WritedData()
 {
     using (var stream = new MemoryStream())
     {
         using (var writer = new BinaryWriter(stream))
         {
             writer.WriteH(_chatType.GetHashCode());
             writer.WriteD(_sessionId);
             writer.Write(BinaryExt.WriteFixedString(_characterName, Encoding.Unicode, 62));
             writer.WriteH(1);
             writer.WriteH(0);
             writer.Write(Encoding.Unicode.GetBytes(_message));
             writer.WriteH(0);
         }
         return stream.ToArray();
     }
 }
        public override byte[] WritedData()
        {
            using (var stream = new MemoryStream())
            using (var writer = new BinaryWriter(stream))
            {
                writer.Skip(4);
                writer.WriteD(DateTime.Now.Millisecond);
                writer.Skip(4);

                var realms = NetworkService.WorldServers.Values.ToList();

                writer.WriteH(realms.Count);

                for (int i = 0; i < realms.Count; i++)
                {
                    var realm = realms[i];

                    writer.WriteH(realm.ChannelId); 
                    writer.WriteH(realm.Id);

                    writer.Write(BinaryExt.WriteFixedString($" {realm.ChannelName}", Encoding.Unicode, 62));
                    writer.Write(BinaryExt.WriteFixedString($" {realm.RealmName}", Encoding.Unicode, 62));

                    writer.Write("CB4B00".ToBytes());

                    writer.Write(BinaryExt.WriteFixedString(realm.RealmIp, Encoding.ASCII, 16));
                    writer.WriteH(realm.RealmPort);

                    writer.WriteC(1);
                    writer.WriteC(1);
                    writer.WriteC(1);

                    writer.WriteC(AuthProcessor.GetCharacterCount(_accInfo.Id));
                    writer.WriteC(_accInfo.MaxSlotCount);

                    writer.Write("0000FEFFFFFFFFFFFFFFD48D6155000000000000000000000000000000000000".ToBytes());
                }

                return stream.ToArray();
            }
        }
        public override byte[] WritedData()
        {
            using (var stream = new MemoryStream())
            using (var writer = new BinaryWriter(stream))
            {
                writer.Write("04A4C200".ToBytes());
                writer.Write("D309000000000000".ToBytes()); 
                writer.Write("46B2C16FF2862300".ToBytes());
                //writer.WriteQ(_character.CharacterId);
                writer.Write("B1E57656".ToBytes()); //todo - static server date time
                writer.Skip(12);
                writer.Write("1E000000".ToBytes());
                writer.Write(BinaryExt.WriteFixedString(_character.CharacterName, Encoding.Unicode, 62));
                writer.Write(_character.Level);
                writer.Write("ABE7FFFFFFFFFFFF".ToBytes());
                writer.Write(BinaryExt.WriteFixedString(_character.Surname, Encoding.Unicode, 62));
                writer.WriteH(4); //unk
                writer.WriteH(_character.ClassType.Ordinal());

                return stream.ToArray();
            }
        }
        public override byte[] WritedData()
        {
            using (var stream = new MemoryStream())
            using (var writer = new BinaryWriter(stream))
            {
                writer.Skip(24);
                writer.Write(BinaryExt.WriteFixedString(_account.FamilyName, Encoding.Unicode, 62));
               
                /*GAG || If charaters not exist */

                if (!_characters.Any())
                {
                    writer.WriteH(65535);
                    writer.WriteD(0);
                    writer.WriteQ(-1);
                    writer.WriteQ(0);
                    writer.WriteC(0);
                    writer.WriteQ(0);
                    writer.WriteH(0);
                    writer.WriteC(254);
                    writer.WriteD(65535);
                    writer.WriteC(0);
                    writer.WriteC(254);
                    writer.WriteQ(-1);
                    writer.WriteQ(0);
                    writer.WriteQ(0);
                    writer.WriteQ(0);
                    writer.WriteC(0);
                    writer.WriteC(254);
                    writer.WriteC(255);
                    writer.WriteH(65535);
                    writer.WriteQ(-1);
                    writer.Skip(51);

                    return stream.ToArray();
                }

                writer.Write(_staticField);
                writer.WriteC(_characters.Count);

                for (int index = 0; index < _characters.Count; index++)
                {
                    var characterInfo = _characters[index];
                    var equipment = (EquipmentStorage)characterInfo.EquipmentData;

                    writer.WriteH(characterInfo.ClassType.Ordinal());
                    writer.WriteQ(characterInfo.CharacterId);
                    writer.WriteC(0); //unk flag
                    writer.Write(BinaryExt.WriteFixedString(characterInfo.CharacterName, Encoding.Unicode, 62));
                    writer.WriteD(characterInfo.Level);
                    writer.WriteD(0); //unk

                    using (equipment)
                        if (equipment.Items.Count != 0)
                        {
                            byte[] equipmentData = equipment.GetEquipmentData();

                            writer.Write(equipmentData);
                            writer.Skip(107);
                        }
                        else
                            writer.Write(_inventoryField);

                    writer.Write(characterInfo.AppearancePresets);
                    writer.WriteC((byte)characterInfo.Zodiac);
                    writer.Write(characterInfo.AppearanceOptions);
                    writer.Skip(62);
                    writer.Write("FFFFFFFFFFFFFFFF001E69745600000000717A715600000000805FF2C70000B8C40028DD47FFFFFFFFFFFFFFFF0000040E7456000000000000000000000000000000000000000000000000000000000000D0FFFF43".ToBytes());
                }

                return stream.ToArray();
            }
        }