Example #1
0
        public override void Deserialize(ref PacketInStream Data)
        {
            long ListData = Data.ReadEncoded7Bit();
            int ListType;
            int ListCount;
            PacketInStream.Decode2Parameters(ListData, out ListType, out ListCount);
            List<ISerializableField> Fields = new List<ISerializableField>();

            Log.Debug("Packet", "------> List : " + ListType + "("+ListCount+")");
            for (int i = 0; i < ListCount; ++i)
            {
                ISerializableField Field = PacketProcessor.GetFieldType((EPacketFieldType)ListType);
                if (Field != null)
                {
                    Field.Deserialize(ref Data);
                    Fields.Add(Field);
                }
            }

            val = Fields;
        }
        public static void BytesToField(ISerializablePacket Packet, byte[] Bytes, string FieldName)
        {
            if (Bytes == null || Bytes.Length <= 0)
                return;

            FieldInfo Info = Packet.GetType().GetField(FieldName);
            ISerializableFieldAttribute[] FieldsAttr = Info.GetCustomAttributes(typeof(ISerializableFieldAttribute), true) as ISerializableFieldAttribute[];
            if (FieldsAttr != null && FieldsAttr.Length > 0)
            {
                ISerializableField Field = Activator.CreateInstance(FieldsAttr[0].GetSerializableType()) as ISerializableField;
                Field.Index = FieldsAttr[0].Index;
                Field.val = Info.GetValue(Packet);
                Field.PacketType = PacketProcessor.GetFieldType(Field);

                PacketInStream Str = new PacketInStream(Bytes, Bytes.Length);
                Field.Deserialize(ref Str);
                Field.ApplyToFieldInfo(Info, Packet, Info.FieldType);
            }
            else
                Info.SetValue(Packet, null);
        }
Example #3
0
        public override void Deserialize(ref PacketInStream Data)
        {
            long Opcode = Data.ReadEncoded7Bit();
            PacketHandlerDefinition Handler = PacketProcessor.GetPacketHandler(Opcode);
            ISerializablePacket Packet = Activator.CreateInstance(Handler.GetClass()) as ISerializablePacket;

            ISerializableField Field = null;

            Log.Debug("Packet", "----------------------> New " + Opcode.ToString("X8"));
            Packet.Opcode = Opcode;

            while ((Field = PacketProcessor.ReadField(ref Data)) != null)
            {
                Log.Debug("Packet", "------> ++T : " + Field.PacketType);
                Packet.AddField(Field.Index, Field);
            }

            Log.Debug("Packet", "----------------------> End ");

            Packet.ApplyToFieldInfo();
            val = Packet;
        }
Example #4
0
        public override void Deserialize(ref PacketInStream Data)
        {
            long DicData = Data.ReadEncoded7Bit();

            int KeyType;
            int ValueType;
            int Count;
            PacketInStream.Decode3Parameters(DicData, out KeyType, out ValueType, out Count);
            Dictionary<ISerializableField, ISerializableField> Dic = new Dictionary<ISerializableField, ISerializableField>();

            Log.Debug("DicBitField", "KeyType = " + KeyType + ",ValueType=" + ValueType + ",Count=" + Count);

            for (int i = 0; i < Count; ++i)
            {
                ISerializableField Key = PacketProcessor.ReadField(ref Data,i,KeyType);
                ISerializableField Value = PacketProcessor.ReadField(ref Data, i, ValueType);

                if (Key != null && Value != null)
                    Dic.Add(Key, Value);
            }

            val = Dic;
        }
Example #5
0
        public static ISerializableField ReadField(ref PacketInStream Stream)
        {
            long FieldData = Stream.ReadEncoded7Bit();
            if (FieldData < 0)
                return null;

            int FieldType;
            int FieldIndex;

            if (!PacketInStream.Decode2Parameters(FieldData, out FieldType, out FieldIndex))
                return null;

            return ReadField(ref Stream, FieldIndex, FieldType);
        }
Example #6
0
 public override void Deserialize(ref PacketInStream Data)
 {
     long Size = Data.ReadEncoded7Bit();
     val = Data.Read((int)Size);
 }
Example #7
0
 public override void Deserialize(ref PacketInStream Data)
 {
     val = Data.Read(4);
 }
Example #8
0
        public override void OnRead(RiftClient From)
        {
            long CharacterId = From.Char.Id;

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0x90, 0x01, 0x07, 0xAE, 0x05, 0x9E, 0x02, 0x00, 0x9F,
                    0x12, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0x12, 0x24,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
                    0x05, 0xD8, 0x05, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x07, 0x07
                };
                From.SendSerialized(Update);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1973;
                From.SendSerialized(Packet);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1E7F;
                Packet.AddField(0, EPacketFieldType.False, false);
                Packet.AddField(1, EPacketFieldType.False, false);
                Packet.AddField(2, EPacketFieldType.False, false);

                Packet.AddField(3, EPacketFieldType.List, new List <ISerializablePacket>());

                Packet.AddField(4, EPacketFieldType.Unsigned7BitEncoded, (long)3);
                Packet.AddField(5, EPacketFieldType.Unsigned7BitEncoded, (long)30);

                Packet.AddField(6, EPacketFieldType.False, false);

                Packet.AddField(7, EPacketFieldType.List, new List <long>());
                Packet.AddField(8, EPacketFieldType.List, new List <long>());
                From.SendSerialized(Packet);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Niveau 1-9";
                Channel.CharacterName = From.Char.Name;
                Channel.Field2        = 5;
                From.SendSerialized(Channel);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Mathosia";
                Channel.CharacterName = From.Char.Name;
                Channel.Field2        = 2;
                From.SendSerialized(Channel);
            }

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0xE7, 0x02, 0xBB, 0x99, 0x01, 0x4E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x56, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x58, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x5E, 0xA0, 0x1F, 0x19, 0x07, 0x60, 0xA0, 0x1F, 0x19, 0x07, 0x66, 0xA0, 0x1F, 0x19, 0x07, 0x70, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xEA, 0xBA, 0xC9, 0x65, 0xA0, 0x1F, 0x19, 0x07, 0xAC, 0xBA, 0xEE, 0x78, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA0, 0x8C, 0x88, 0x9C, 0x01, 0xA0, 0x1F, 0x19, 0x07, 0x90, 0xD6, 0xBA, 0x88, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xD2, 0x84, 0xAA, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x9E, 0x83, 0x90, 0x87, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xE7, 0xF5, 0x8E, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x86, 0xDE, 0x9D, 0xE9, 0x03, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xD4, 0xCE, 0xF4, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xA8, 0xF2, 0x8A, 0x04, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD2, 0x92, 0xCB, 0xB3, 0x05, 0xA0, 0x1F, 0x19, 0x07, 0xE0, 0xFD, 0xF3, 0x92, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE6, 0xB7, 0xF4, 0x94, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xAE, 0xBA, 0xFD, 0xC6, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xB6, 0xA5, 0xF2, 0x8C, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xC2, 0xE4, 0xA7, 0x9A, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xDE, 0x9A, 0xE4, 0xCA, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xEC, 0xF9, 0xF1, 0xDF, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA4, 0xDE, 0xC0, 0xB1, 0x08, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE8, 0xCE, 0xFA, 0x81, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x94, 0xB1, 0xA8, 0xBB, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8A, 0x95, 0x8E, 0xC8, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xF7, 0xF3, 0xFD, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xFA, 0xF1, 0xE0, 0xBA, 0x0A, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xCE, 0xDA, 0xE7, 0xEE, 0x0B, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xA2, 0x94, 0xC1, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xD0, 0xE6, 0xD0, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x88, 0xFD, 0xC2, 0xD6, 0x0D, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xA8, 0xAA, 0xF8, 0x0D, 0xA0, 0x1F, 0x19, 0x07, 0x88, 0xBF, 0x82, 0xFE, 0x0E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xBA, 0xC4, 0xB6, 0x90, 0x0F, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE7, 0x03, 0xBB, 0x05, 0x0A, 0xAF, 0x02, 0x01, 0x07, 0x90, 0x01, 0x07, 0x94, 0x05, 0xE7, 0x05, 0xBB, 0x21, 0x02, 0xBF, 0x1B, 0x24, 0xDF, 0x92, 0xC3, 0x45, 0x2C, 0xC8, 0x23, 0xCF, 0x7D, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x9B, 0xEC, 0x3E, 0x73, 0x07, 0x07, 0x04, 0xBF, 0x1B, 0x24, 0xEB, 0x36, 0xDE, 0x44, 0x2C, 0x33, 0x45, 0x7A, 0x77, 0x32, 0x15, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5F, 0x2D, 0x02, 0x4F, 0x07, 0x07, 0x0A, 0xBF, 0x1B, 0x24, 0x87, 0xD4, 0x3F, 0x5B, 0x3A, 0x02, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x1E, 0x3B, 0xD5, 0x2D, 0x07, 0x07, 0x0E, 0xBF, 0x1B, 0x24, 0x62, 0x00, 0xDB, 0x11, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x7F, 0xC2, 0xC0, 0x7C, 0x07, 0x07, 0x10, 0xBF, 0x1B, 0x24, 0x9A, 0x41, 0xDC, 0x01, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5E, 0x8B, 0x6F, 0x26, 0x07, 0x07, 0x12, 0xBF, 0x1B, 0x24, 0x9E, 0xFC, 0x62, 0x77, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0xB7, 0x94, 0xB3, 0x29, 0x07, 0x07, 0x16, 0xBF, 0x1B, 0x24, 0x48, 0xF1, 0xD4, 0x0D, 0x32, 0x14, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x8A, 0x09, 0x42, 0x17, 0x07, 0x07, 0x2E, 0xBF, 0x1B, 0x24, 0xE6, 0x82, 0x84, 0x33, 0x3C, 0xB3, 0xCD, 0x6F, 0x6A, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x53, 0x58, 0x26, 0x30, 0x07, 0x07, 0x9F, 0x06, 0x57, 0xA9, 0x0E, 0x02, 0x03, 0x2A, 0xE8, 0x07, 0x41, 0x07, 0xDF, 0x06, 0x57, 0x94, 0x0E, 0x07, 0xD7, 0x07, 0xC2, 0x05, 0x12, 0x05, 0xDF, 0x05, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0xDF, 0x06, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x07, 0xDA, 0x01, 0x0F, 0xE4, 0x01, 0x82, 0x86, 0x19, 0x66, 0x07, 0xAE, 0x05, 0x97, 0x04, 0xF4, 0x05, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x9F, 0x1E, 0x97, 0x02, 0xB6, 0x0E, 0x01, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x0F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x84, 0x9A, 0xCC, 0xE1, 0x0C, 0x07, 0x4F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x1E, 0x07, 0x07, 0x9F, 0x07, 0x2B, 0x06, 0x08, 0x18, 0x04, 0x02, 0x07
                };
                From.SendSerialized(Update);
            }

            {
                byte[]            data   = CharacterMgr.Instance.GetBuild(1);
                PacketInStream    ps     = new PacketInStream(data, data.Length);
                WorldEntityUpdate EntPck = (WorldEntityUpdate)PacketProcessor.ReadPacket(ref ps); //new WorldEntityUpdate();
                EntPck.BuildChar(From.Char);
                From.SendSerialized(EntPck);
            }

            WorldServerMOTD Motd = new WorldServerMOTD();

            Motd.Text = ConfigMgr.GetConfig <WorldConfig>().ServerMOTD;
            From.SendSerialized(Motd);
        }
        public override void OnRead(RiftClient From)
        {
            Log.Success("CharacterListRequest", "Characters Requested For : " + From.GetIp);

            Character[] Chars = CharacterMgr.Instance.GetCharacters(From.Acct.Id, From.Realm.RealmId);

            LobbyCharacterListResponse Rp = new LobbyCharacterListResponse();

            foreach (Character Char in Chars)
            {
                LobbyCharacterEntry Entry = new LobbyCharacterEntry();
                Entry.AccountId     = Char.AccountId;
                Entry.Email         = From.Acct.Email;
                Entry.CharacterId   = Char.Id;
                Entry.CharacterName = Char.Name;

                Entry.Field5 = new LobbyCharacterInfoBase();

                if (Char.Sex > 1)
                {
                    Entry.Field5.AddField(2, EPacketFieldType.False, (bool)false);
                }

                Entry.Field5.Race = Char.Race;
                Entry.Field5.AddField(15, EPacketFieldType.Unsigned7BitEncoded, (long)Char.Class);
                Entry.Field5.AddField(9, EPacketFieldType.Unsigned7BitEncoded, (long)Char.Level);

                Entry.Field5.Field6 = (uint)CharacterMgr.Instance.GetMaskForRaceSex(Char.Race, Char.Sex).Mask;

                byte[]         CustomData   = Shared.NetWork.Marshal.StringToUTF8ByteArray(Char.Data);
                PacketInStream CustomStream = new PacketInStream(CustomData, CustomData.Length);
                Entry.Field5.Custom = PacketProcessor.ReadPacket(ref CustomStream) as CharacterCustom;

                Items_Template[] Templates = CharacterMgr.Instance.GetEquipedItems(Char.Id);

                foreach (Items_Template Template in Templates)
                {
                    Model_Info model = CharacterMgr.Instance.GetItemModel(Template.ModelEntry, Char.Race, Char.Sex);

                    CharacterDesc Desc = new CharacterDesc();

                    Desc.AddField(4, EPacketFieldType.Raw4Bytes, (uint)model.Field_4);

                    if (model.Field_5 != 0)
                    {
                        Desc.AddField(5, EPacketFieldType.Raw4Bytes, model.Field_5);
                    }

                    if (model.Field_6 != 0)
                    {
                        Desc.AddField(6, EPacketFieldType.Raw4Bytes, model.Field_6);
                    }

                    if (Template.Slot == 10)
                    {
                        Desc.AddField(7, EPacketFieldType.Unsigned7BitEncoded, (long)model.Field_7);
                    }
                    else
                    {
                        Desc.AddField(7, EPacketFieldType.Raw4Bytes, (uint)model.Field_7);
                    }

                    Desc.Field8 = new CharacterInfoCache();
                    Desc.Field8.CacheIdentifier = (uint)model.CacheID;

                    Entry.Field5.Field7.Add((long)Template.Slot, Desc);
                }

                Model_Info HairEntry = CharacterMgr.Instance.GetModelForCacheID(Char.HairModelID);

                if (HairEntry != null)
                {
                    CharacterDesc DescHair = new CharacterDesc();

                    DescHair.AddField(4, EPacketFieldType.Raw4Bytes, (uint)HairEntry.Field_4);
                    DescHair.AddField(7, EPacketFieldType.Raw4Bytes, (uint)HairEntry.Field_7);

                    DescHair.Field8 = new CharacterInfoCache();
                    DescHair.Field8.CacheIdentifier = (uint)HairEntry.CacheID;

                    Entry.Field5.Field7.Add((long)46, DescHair);
                }

                Rp.Characters.Add(Entry);
            }

            From.SendSerialized(Rp);
        }
Example #10
0
        static void Main(string[] args)
        {
            Log.Texte("", "-------------------------------", ConsoleColor.DarkBlue);
            Log.Texte("", "          _____   _____ ", ConsoleColor.Cyan);
            Log.Texte("", "    /\\   |  __ \\ / ____|", ConsoleColor.Cyan);
            Log.Texte("", "   /  \\  | |__) | (___  ", ConsoleColor.Cyan);
            Log.Texte("", "  / /\\ \\ |  ___/ \\___ \\ ", ConsoleColor.Cyan);
            Log.Texte("", " / ____ \\| |     ____) |", ConsoleColor.Cyan);
            Log.Texte("", "/_/    \\_\\_|    |_____/ Rift", ConsoleColor.Cyan);
            Log.Texte("", "http://AllPrivateServer.com", ConsoleColor.DarkCyan);
            Log.Texte("", "-------------------------------", ConsoleColor.DarkBlue);

            // Loading all configs files
            ConfigMgr.LoadConfigs();
            Config = ConfigMgr.GetConfig <ExtractorConfig>();

            // Loading log level from file
            if (!Log.InitLog(Config.LogLevel, "Cache"))
            {
                ConsoleMgr.WaitAndExit(2000);
            }

            WorldDB = DBManager.Start(Config.WorldDB.Total(), ConnectionType.DATABASE_MYSQL, "World");
            if (WorldDB == null)
            {
                ConsoleMgr.WaitAndExit(2000);
            }

            PacketProcessor.RegisterDefinitions();

            int Count = 0;

            foreach (string FileDir in Directory.EnumerateFiles(Config.CacheFolder))
            {
                Log.Success("Extractor", "Opening Cache : " + FileDir);

                FileStream Str = File.Open(FileDir, FileMode.Open);

                byte[] Buff = new byte[Str.Length];
                Str.Read(Buff, 0, Buff.Length);

                PacketInStream      Pack   = new PacketInStream(Buff, Buff.Length);
                ISerializablePacket Packet = PacketProcessor.ReadPacket(ref Pack);


                if (Packet != null && Packet is CacheUpdate)
                {
                    CacheUpdate Cache = Packet as CacheUpdate;

                    CacheTemplate Template = Cache.CacheDatas.Find(info => info.Opcode == (long)Opcodes.CacheTemplate) as CacheTemplate;
                    CacheData     Data     = Cache.CacheDatas.Find(info => info.Opcode == (long)Opcodes.CacheData) as CacheData;

                    if (Template != null)
                    {
                        Template.CacheID   = Cache.CacheID;
                        Template.CacheType = Cache.CacheType;
                        WorldDB.AddObject(Template);
                    }

                    if (Data != null)
                    {
                        Data.CacheID   = Cache.CacheID;
                        Data.CacheType = Cache.CacheType;
                        WorldDB.AddObject(Data);
                    }
                    ++Count;
                }

                Str.Dispose();
            }

            Log.Success("Extractor", "" + Count + " Caches extracted");

            ConsoleMgr.Start();
        }
Example #11
0
        static void Main(string[] args)
        {
            Log.Texte("", "-------------------------------", ConsoleColor.DarkBlue);
            Log.Texte("", "          _____   _____ ", ConsoleColor.Cyan);
            Log.Texte("", "    /\\   |  __ \\ / ____|", ConsoleColor.Cyan);
            Log.Texte("", "   /  \\  | |__) | (___  ", ConsoleColor.Cyan);
            Log.Texte("", "  / /\\ \\ |  ___/ \\___ \\ ", ConsoleColor.Cyan);
            Log.Texte("", " / ____ \\| |     ____) |", ConsoleColor.Cyan);
            Log.Texte("", "/_/    \\_\\_|    |_____/ Rift", ConsoleColor.Cyan);
            Log.Texte("", "http://AllPrivateServer.com", ConsoleColor.DarkCyan);
            Log.Texte("", "-------------------------------", ConsoleColor.DarkBlue);

            // Loading all configs files
            ConfigMgr.LoadConfigs();
            Config = ConfigMgr.GetConfig<ExtractorConfig>();

            // Loading log level from file
            if (!Log.InitLog(Config.LogLevel, "Cache"))
                ConsoleMgr.WaitAndExit(2000);

            WorldDB = DBManager.Start(Config.WorldDB.Total(), ConnectionType.DATABASE_MYSQL, "World");
            if (WorldDB == null)
                ConsoleMgr.WaitAndExit(2000);

            PacketProcessor.RegisterDefinitions();

            int Count = 0;

            foreach (string FileDir in Directory.EnumerateFiles(Config.CacheFolder))
            {
                Log.Success("Extractor", "Opening Cache : " + FileDir);

                FileStream Str = File.Open(FileDir, FileMode.Open);

                byte[] Buff = new byte[Str.Length];
                Str.Read(Buff,0,Buff.Length);

                PacketInStream Pack = new PacketInStream(Buff, Buff.Length);
                ISerializablePacket Packet = PacketProcessor.ReadPacket(ref Pack);

                if (Packet != null && Packet is CacheUpdate)
                {
                    CacheUpdate Cache = Packet as CacheUpdate;

                    CacheTemplate Template = Cache.CacheDatas.Find(info => info.Opcode == (long)Opcodes.CacheTemplate) as CacheTemplate;
                    CacheData Data = Cache.CacheDatas.Find(info => info.Opcode == (long)Opcodes.CacheData) as CacheData;

                    if (Template != null)
                    {
                        Template.CacheID = Cache.CacheID;
                        Template.CacheType = Cache.CacheType;
                        WorldDB.AddObject(Template);
                    }

                    if (Data != null)
                    {
                        Data.CacheID = Cache.CacheID;
                        Data.CacheType = Cache.CacheType;
                        WorldDB.AddObject(Data);
                    }
                    ++Count;
                }

                Str.Dispose();
            }

            Log.Success("Extractor", "" + Count + " Caches extracted");

            ConsoleMgr.Start();
        }
Example #12
0
        public bool ReadPacket()
        {
            if (Received.Count <= 0)
                return false;

            if (!ReceiveCompress && !Crypted)
            {
                PacketInStream Packet = new PacketInStream(Received.ToArray(), Received.Count);
                long Size = Packet.ReadEncoded7Bit();

                if (Size > Packet.Length)
                    return false;

                Received.RemoveRange(0, (int)(Packet.Position+Size));

                ISerializablePacket Pack = PacketProcessor.ReadPacket(ref Packet);
                if (Pack != null)
                    Pack.OnRead(this);

                return true;
            }

            if (Crypted)
            {
                byte[] Packet = Received.ToArray();
                Received.Clear();
                Decrypt(Packet);
            }

            if (ReceiveCompress)
            {
               int End = -1;
                while ((End = GetEndCompression(ref Decrypted)) >= 0)
                {
                    byte[] ToUnCompress = new byte[End];
                    Buffer.BlockCopy(Decrypted.ToArray(), 0, ToUnCompress, 0, End);
                    Decrypted.RemoveRange(0, End);

                    byte[] Result = UnCompress(ToUnCompress);

                    Log.Dump("Decrypted", Result, 0, Result.Length);
                    PacketInStream Packet = new PacketInStream(Result, Result.Length);
                    long Size = Packet.ReadEncoded7Bit();

                    if (Size > Packet.Length)
                    {
                        Log.Error("ReadPacket", "Size > Packet.Lenght,Size=" + Size + ",Lenght=" + Packet.Length);
                        Packet.Dispose();
                        continue;
                    }

                    ISerializablePacket Pack = PacketProcessor.ReadPacket(ref Packet);
                    if (Pack != null)
                        Pack.OnRead(this);

                    Packet.Dispose();
                }
            }

            return false;
        }
Example #13
0
        public override void OnRead(RiftClient From)
        {
            Log.Info("WorldMapLoaded", "Map loaded for : " + From.Character.CharacterName);
            long CharacterId = From.Character.CharacterId;

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB,0x04,0x4F,0x1F,0x02,0x5F,0x17,0x07,0x90,0x01,0x07,0xAE,0x05,0x9E,0x02,0x00,0x9F,
                    0x12,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDF,0x12,0x24,
                    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,
                    0x05,0xD8,0x05,0x07,0xC1,0x1E,0x57,0xF5,0x05,0x07,0x07
                };
                From.SendSerialized(Update);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1973;
                From.SendSerialized(Packet);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1E7F;
                Packet.AddField(0, EPacketFieldType.False, false);
                Packet.AddField(1, EPacketFieldType.False, false);
                Packet.AddField(2, EPacketFieldType.False, false);

                Packet.AddField(3, EPacketFieldType.List, new List<ISerializablePacket>());

                Packet.AddField(4, EPacketFieldType.Unsigned7BitEncoded, (long)3);
                Packet.AddField(5, EPacketFieldType.Unsigned7BitEncoded, (long)30);

                Packet.AddField(6, EPacketFieldType.False, false);

                Packet.AddField(7, EPacketFieldType.List, new List<long>());
                Packet.AddField(8, EPacketFieldType.List, new List<long>());
                From.SendSerialized(Packet);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName = "Niveau 1-9";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2 = 5;
                From.SendSerialized(Channel);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName = "Mathosia";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2 = 2;
                From.SendSerialized(Channel);
            }

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB,0x04,0x4F,0x1F,0x02,0x5F,0x17,0x07,0xE7,0x02,0xBB,0x99,0x01,0x4E,0xA0,0x1F,0x1A,0x02,0x07,0x56,0xA0,0x1F,0x1A,0x02,0x07,0x58,0xA0,0x1F,0x1A,0x02,0x07,0x5E,0xA0,0x1F,0x19,0x07,0x60,0xA0,0x1F,0x19,0x07,0x66,0xA0,0x1F,0x19,0x07,0x70,0xA0,0x1F,0x1A,0x02,0x07,0xEA,0xBA,0xC9,0x65,0xA0,0x1F,0x19,0x07,0xAC,0xBA,0xEE,0x78,0xA0,0x1F,0x1A,0x02,0x07,0xA0,0x8C,0x88,0x9C,0x01,0xA0,0x1F,0x19,0x07,0x90,0xD6,0xBA,0x88,0x02,0xA0,0x1F,0x1A,0x02,0x07,0xD8,0xD2,0x84,0xAA,0x02,0xA0,0x1F,0x1A,0x02,0x07,0x9E,0x83,0x90,0x87,0x03,0xA0,0x1F,0x1A,0x02,0x07,0x8C,0xE7,0xF5,0x8E,0x03,0xA0,0x1F,0x1A,0x02,0x07,0x86,0xDE,0x9D,0xE9,0x03,0xA0,0x1F,0x19,0x07,0xF6,0xD4,0xCE,0xF4,0x03,0xA0,0x1F,0x1A,0x02,0x07,0xE2,0xA8,0xF2,0x8A,0x04,0xA0,0x1F,0x1A,0x02,0x07,0xD2,0x92,0xCB,0xB3,0x05,0xA0,0x1F,0x19,0x07,0xE0,0xFD,0xF3,0x92,0x06,0xA0,0x1F,0x1A,0x02,0x07,0xE6,0xB7,0xF4,0x94,0x06,0xA0,0x1F,0x1A,0x02,0x07,0xAE,0xBA,0xFD,0xC6,0x06,0xA0,0x1F,0x1A,0x02,0x07,0xB6,0xA5,0xF2,0x8C,0x07,0xA0,0x1F,0x19,0x07,0xC2,0xE4,0xA7,0x9A,0x07,0xA0,0x1F,0x1A,0x02,0x07,0xDE,0x9A,0xE4,0xCA,0x07,0xA0,0x1F,0x19,0x07,0xEC,0xF9,0xF1,0xDF,0x07,0xA0,0x1F,0x1A,0x02,0x07,0xA4,0xDE,0xC0,0xB1,0x08,0xA0,0x1F,0x1A,0x02,0x07,0xE8,0xCE,0xFA,0x81,0x09,0xA0,0x1F,0x1A,0x02,0x07,0x94,0xB1,0xA8,0xBB,0x09,0xA0,0x1F,0x1A,0x02,0x07,0x8A,0x95,0x8E,0xC8,0x09,0xA0,0x1F,0x1A,0x02,0x07,0xD8,0xF7,0xF3,0xFD,0x09,0xA0,0x1F,0x1A,0x02,0x07,0xFA,0xF1,0xE0,0xBA,0x0A,0xA0,0x1F,0x1A,0x02,0x07,0xCE,0xDA,0xE7,0xEE,0x0B,0xA0,0x1F,0x19,0x07,0xF6,0xA2,0x94,0xC1,0x0C,0xA0,0x1F,0x1A,0x02,0x07,0xE2,0xD0,0xE6,0xD0,0x0C,0xA0,0x1F,0x1A,0x02,0x07,0x88,0xFD,0xC2,0xD6,0x0D,0xA0,0x1F,0x1A,0x02,0x07,0x8C,0xA8,0xAA,0xF8,0x0D,0xA0,0x1F,0x19,0x07,0x88,0xBF,0x82,0xFE,0x0E,0xA0,0x1F,0x1A,0x02,0x07,0xBA,0xC4,0xB6,0x90,0x0F,0xA0,0x1F,0x1A,0x02,0x07,0xE7,0x03,0xBB,0x05,0x0A,0xAF,0x02,0x01,0x07,0x90,0x01,0x07,0x94,0x05,0xE7,0x05,0xBB,0x21,0x02,0xBF,0x1B,0x24,0xDF,0x92,0xC3,0x45,0x2C,0xC8,0x23,0xCF,0x7D,0x3C,0x82,0x9B,0xBB,0x22,0x97,0x04,0x90,0x1C,0x04,0x9B,0xEC,0x3E,0x73,0x07,0x07,0x04,0xBF,0x1B,0x24,0xEB,0x36,0xDE,0x44,0x2C,0x33,0x45,0x7A,0x77,0x32,0x15,0x3C,0x82,0x9B,0xBB,0x22,0x97,0x04,0x90,0x1C,0x04,0x5F,0x2D,0x02,0x4F,0x07,0x07,0x0A,0xBF,0x1B,0x24,0x87,0xD4,0x3F,0x5B,0x3A,0x02,0x97,0x04,0x90,0x1C,0x04,0x1E,0x3B,0xD5,0x2D,0x07,0x07,0x0E,0xBF,0x1B,0x24,0x62,0x00,0xDB,0x11,0x3C,0x6F,0x69,0x28,0x59,0x97,0x04,0x90,0x1C,0x04,0x7F,0xC2,0xC0,0x7C,0x07,0x07,0x10,0xBF,0x1B,0x24,0x9A,0x41,0xDC,0x01,0x3C,0x6F,0x69,0x28,0x59,0x97,0x04,0x90,0x1C,0x04,0x5E,0x8B,0x6F,0x26,0x07,0x07,0x12,0xBF,0x1B,0x24,0x9E,0xFC,0x62,0x77,0x3C,0x82,0x9B,0xBB,0x22,0x97,0x04,0x90,0x1C,0x04,0xB7,0x94,0xB3,0x29,0x07,0x07,0x16,0xBF,0x1B,0x24,0x48,0xF1,0xD4,0x0D,0x32,0x14,0x3C,0x6F,0x69,0x28,0x59,0x97,0x04,0x90,0x1C,0x04,0x8A,0x09,0x42,0x17,0x07,0x07,0x2E,0xBF,0x1B,0x24,0xE6,0x82,0x84,0x33,0x3C,0xB3,0xCD,0x6F,0x6A,0x97,0x04,0x90,0x1C,0x04,0x53,0x58,0x26,0x30,0x07,0x07,0x9F,0x06,0x57,0xA9,0x0E,0x02,0x03,0x2A,0xE8,0x07,0x41,0x07,0xDF,0x06,0x57,0x94,0x0E,0x07,0xD7,0x07,0xC2,0x05,0x12,0x05,0xDF,0x05,0x93,0x07,0x06,0xC6,0x01,0x14,0x14,0x1A,0x14,0x12,0x00,0x14,0x14,0x14,0x14,0x14,0x02,0x16,0x1A,0x00,0x00,0x00,0x00,0x8C,0x02,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xCC,0x0B,0xD0,0x0F,0xC8,0x01,0x14,0x04,0x00,0x00,0x14,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0x00,0x00,0x06,0x00,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x14,0x00,0x14,0x00,0x00,0xD0,0x0F,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0x01,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0xC8,0x01,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0xDF,0x06,0x93,0x07,0x06,0xC6,0x01,0x14,0x14,0x1A,0x14,0x12,0x00,0x14,0x14,0x14,0x14,0x14,0x02,0x16,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xCC,0x0B,0xD0,0x0F,0xC8,0x01,0x14,0x04,0x00,0x00,0x14,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0x00,0x00,0x06,0x00,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x14,0x00,0x14,0x00,0x00,0xD0,0x0F,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0x01,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0xC8,0x01,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x07,0xDA,0x01,0x0F,0xE4,0x01,0x82,0x86,0x19,0x66,0x07,0xAE,0x05,0x97,0x04,0xF4,0x05,0x0C,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x07,0x9F,0x1E,0x97,0x02,0xB6,0x0E,0x01,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0xB6,0x0E,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0xB6,0x0E,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0xB6,0x0E,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0x07,0xC1,0x1E,0x57,0xF5,0x05,0x0F,0x1F,0x0A,0x01,0x5F,0x0B,0x84,0x9A,0xCC,0xE1,0x0C,0x07,0x4F,0x1F,0x0A,0x01,0x5F,0x0B,0x1E,0x07,0x07,0x9F,0x07,0x2B,0x06,0x08,0x18,0x04,0x02,0x07
                };
                From.SendSerialized(Update);
            }

            // Character Information
            {
                PacketInStream Entity = new PacketInStream(Program.BuildPlayer, Program.BuildPlayer.Length);
                WorldEntityUpdate Update = PacketProcessor.ReadPacket(ref Entity) as WorldEntityUpdate;
                if(Update.Build(From.Character))
                    From.SendSerialized(Update);
            }

            WorldServerMOTD Motd = new WorldServerMOTD();
            Motd.Text = "Welcome to Strawberry-Pr0jcts RiftEMU for patch 1.2";
            From.SendSerialized(Motd);
        }
Example #14
0
        public static ISerializableField ReadField(ref PacketInStream Stream, int FieldIndex, int FieldType)
        {
            if (FieldType == (int)EPacketFieldType.Terminator)
                return null;

            ISerializableField Field = GetFieldType((EPacketFieldType)FieldType);
            if (Field == null)
            {
                Log.Error("PacketProcessor", "Unhandled Field : Type = " + FieldType);
                return null;
            }

            Log.Debug("ReadField", "Index = " + FieldIndex + ",Type=" + FieldType);
            Field.Index = FieldIndex;
            Field.PacketType = (EPacketFieldType)FieldType;
            Field.Deserialize(ref Stream);

            return Field;
        }
        public override void OnRead(RiftClient From)
        {
            Log.Info("WorldMapLoaded", "Map loaded for : " + From.Character.CharacterName);
            long CharacterId = From.Character.CharacterId;

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0x90, 0x01, 0x07, 0xAE, 0x05, 0x9E, 0x02, 0x00, 0x9F,
                    0x12, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0x12, 0x24,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
                    0x05, 0xD8, 0x05, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x07, 0x07
                };
                From.SendSerialized(Update);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1973;
                From.SendSerialized(Packet);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1E7F;
                Packet.AddField(0, EPacketFieldType.False, false);
                Packet.AddField(1, EPacketFieldType.False, false);
                Packet.AddField(2, EPacketFieldType.False, false);

                Packet.AddField(3, EPacketFieldType.List, new List <ISerializablePacket>());

                Packet.AddField(4, EPacketFieldType.Unsigned7BitEncoded, (long)3);
                Packet.AddField(5, EPacketFieldType.Unsigned7BitEncoded, (long)30);

                Packet.AddField(6, EPacketFieldType.False, false);

                Packet.AddField(7, EPacketFieldType.List, new List <long>());
                Packet.AddField(8, EPacketFieldType.List, new List <long>());
                From.SendSerialized(Packet);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Niveau 1-9";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2        = 5;
                From.SendSerialized(Channel);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Mathosia";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2        = 2;
                From.SendSerialized(Channel);
            }

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0xE7, 0x02, 0xBB, 0x99, 0x01, 0x4E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x56, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x58, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x5E, 0xA0, 0x1F, 0x19, 0x07, 0x60, 0xA0, 0x1F, 0x19, 0x07, 0x66, 0xA0, 0x1F, 0x19, 0x07, 0x70, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xEA, 0xBA, 0xC9, 0x65, 0xA0, 0x1F, 0x19, 0x07, 0xAC, 0xBA, 0xEE, 0x78, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA0, 0x8C, 0x88, 0x9C, 0x01, 0xA0, 0x1F, 0x19, 0x07, 0x90, 0xD6, 0xBA, 0x88, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xD2, 0x84, 0xAA, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x9E, 0x83, 0x90, 0x87, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xE7, 0xF5, 0x8E, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x86, 0xDE, 0x9D, 0xE9, 0x03, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xD4, 0xCE, 0xF4, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xA8, 0xF2, 0x8A, 0x04, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD2, 0x92, 0xCB, 0xB3, 0x05, 0xA0, 0x1F, 0x19, 0x07, 0xE0, 0xFD, 0xF3, 0x92, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE6, 0xB7, 0xF4, 0x94, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xAE, 0xBA, 0xFD, 0xC6, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xB6, 0xA5, 0xF2, 0x8C, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xC2, 0xE4, 0xA7, 0x9A, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xDE, 0x9A, 0xE4, 0xCA, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xEC, 0xF9, 0xF1, 0xDF, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA4, 0xDE, 0xC0, 0xB1, 0x08, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE8, 0xCE, 0xFA, 0x81, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x94, 0xB1, 0xA8, 0xBB, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8A, 0x95, 0x8E, 0xC8, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xF7, 0xF3, 0xFD, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xFA, 0xF1, 0xE0, 0xBA, 0x0A, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xCE, 0xDA, 0xE7, 0xEE, 0x0B, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xA2, 0x94, 0xC1, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xD0, 0xE6, 0xD0, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x88, 0xFD, 0xC2, 0xD6, 0x0D, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xA8, 0xAA, 0xF8, 0x0D, 0xA0, 0x1F, 0x19, 0x07, 0x88, 0xBF, 0x82, 0xFE, 0x0E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xBA, 0xC4, 0xB6, 0x90, 0x0F, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE7, 0x03, 0xBB, 0x05, 0x0A, 0xAF, 0x02, 0x01, 0x07, 0x90, 0x01, 0x07, 0x94, 0x05, 0xE7, 0x05, 0xBB, 0x21, 0x02, 0xBF, 0x1B, 0x24, 0xDF, 0x92, 0xC3, 0x45, 0x2C, 0xC8, 0x23, 0xCF, 0x7D, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x9B, 0xEC, 0x3E, 0x73, 0x07, 0x07, 0x04, 0xBF, 0x1B, 0x24, 0xEB, 0x36, 0xDE, 0x44, 0x2C, 0x33, 0x45, 0x7A, 0x77, 0x32, 0x15, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5F, 0x2D, 0x02, 0x4F, 0x07, 0x07, 0x0A, 0xBF, 0x1B, 0x24, 0x87, 0xD4, 0x3F, 0x5B, 0x3A, 0x02, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x1E, 0x3B, 0xD5, 0x2D, 0x07, 0x07, 0x0E, 0xBF, 0x1B, 0x24, 0x62, 0x00, 0xDB, 0x11, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x7F, 0xC2, 0xC0, 0x7C, 0x07, 0x07, 0x10, 0xBF, 0x1B, 0x24, 0x9A, 0x41, 0xDC, 0x01, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5E, 0x8B, 0x6F, 0x26, 0x07, 0x07, 0x12, 0xBF, 0x1B, 0x24, 0x9E, 0xFC, 0x62, 0x77, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0xB7, 0x94, 0xB3, 0x29, 0x07, 0x07, 0x16, 0xBF, 0x1B, 0x24, 0x48, 0xF1, 0xD4, 0x0D, 0x32, 0x14, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x8A, 0x09, 0x42, 0x17, 0x07, 0x07, 0x2E, 0xBF, 0x1B, 0x24, 0xE6, 0x82, 0x84, 0x33, 0x3C, 0xB3, 0xCD, 0x6F, 0x6A, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x53, 0x58, 0x26, 0x30, 0x07, 0x07, 0x9F, 0x06, 0x57, 0xA9, 0x0E, 0x02, 0x03, 0x2A, 0xE8, 0x07, 0x41, 0x07, 0xDF, 0x06, 0x57, 0x94, 0x0E, 0x07, 0xD7, 0x07, 0xC2, 0x05, 0x12, 0x05, 0xDF, 0x05, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0xDF, 0x06, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x07, 0xDA, 0x01, 0x0F, 0xE4, 0x01, 0x82, 0x86, 0x19, 0x66, 0x07, 0xAE, 0x05, 0x97, 0x04, 0xF4, 0x05, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x9F, 0x1E, 0x97, 0x02, 0xB6, 0x0E, 0x01, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x0F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x84, 0x9A, 0xCC, 0xE1, 0x0C, 0x07, 0x4F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x1E, 0x07, 0x07, 0x9F, 0x07, 0x2B, 0x06, 0x08, 0x18, 0x04, 0x02, 0x07
                };
                From.SendSerialized(Update);
            }

            // Character Information
            {
                PacketInStream    Entity = new PacketInStream(Program.BuildPlayer, Program.BuildPlayer.Length);
                WorldEntityUpdate Update = PacketProcessor.ReadPacket(ref Entity) as WorldEntityUpdate;
                if (Update.Build(From.Character))
                {
                    From.SendSerialized(Update);
                }
            }

            WorldServerMOTD Motd = new WorldServerMOTD();

            Motd.Text = "Welcome to APS-Rift";
            From.SendSerialized(Motd);
        }
Example #16
0
 public static ISerializablePacket ReadPacket(ref PacketInStream Stream)
 {
     return (ISerializablePacket)ReadField(ref Stream, 0, (int)EPacketFieldType.Packet).val;
 }
Example #17
0
 public abstract void Deserialize(ref PacketInStream Data);