/// <summary>
        /// Encodes the <see cref="Message" />, using the <see cref="Writer" /> instance.
        /// </summary>
        internal override void Encode()
        {
            this.Data.AddVInt(2);
            this.Data.AddVInt(0);
            this.Data.AddString(null);

            this.Data.AddVInt(this.Clans.Count());

            foreach (Clan Clan in this.Clans)
            {
                this.Data.AddVInt(Clan.HighID);
                this.Data.AddVInt(Clan.LowID);

                this.Data.AddVInt(1);
                this.Data.AddVInt(Clan.Trophies);
                this.Data.AddVInt(2);

                this.Data.AddString(Clan.Name);
                this.Data.AddVInt(Clan.Members.Entries.Count);

                this.Data.AddVInt(GlobalID.GetType(Clan.Badge));
                this.Data.AddVInt(GlobalID.GetID(Clan.Badge));
            }

            this.Data.AddHexa("05-02-01-00");
            this.Data.AddString(this.Device.Player.Region);

            // 02-00  FF-FF-FF-FF        02  01  01  01  29  02  00-00-00-05  74-65-73-74-69  02  08  0E  00  03  02  05  02  00-00-00-0C  54-72-69-62-65  20-47-61-6D-69-6E-67-03-08-05  05-02-01-00  00-00-00-02-46-52
            // 02-00  00-00-00-02-46-49  02  01  01  01  29  02  00-00-00-05  74-65-73-74-69  02  08  0E  00  03  02  05  02  00-00-00-0C  54-72-69-62-65  20-47-61-6D-69-6E-67-03-08-05  05-02-01-00  00-00-00-02-46-52
        }
Ejemplo n.º 2
0
        // 02  01  19  01  00-00-00-00  00-00-15-DD  00-00-00-08  42-75-73-68-2D-6D-65-6E  08  05  01  02  A4-03  00-00

        /// <summary>
        /// Encodes the <see cref="Message" />, using the <see cref="Writer" /> instance.
        /// </summary>
        internal override void Encode()
        {
            if (this.Clan != null)
            {
                this.Data.AddVInt(this.Clan.Members.Entries.Count); // Online F****t

                this.Data.AddBool(true);
                {
                    this.Data.AddVInt(25);
                    this.Data.AddVInt((int)this.Clan.Members.Entries[this.Device.Player.LowID].Role);

                    this.Data.AddInt(this.Clan.HighID);
                    this.Data.AddInt(this.Clan.LowID);

                    this.Data.AddString(this.Clan.Name);

                    this.Data.AddVInt(GlobalID.GetType(this.Clan.Badge));
                    this.Data.AddVInt(GlobalID.GetID(this.Clan.Badge));

                    this.Data.AddVInt((int)this.Clan.Type);

                    this.Data.AddVInt(this.Clan.Members.Entries.Count);

                    this.Data.AddVInt(this.Clan.Trophies);
                    this.Data.AddVInt(this.Clan.Required_Trophies);

                    this.Data.AddVInt(0);
                }
            }
            else
            {
                this.Data.AddVInt(0);
                this.Data.AddVInt(0);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates the compressed.
        /// </summary>
        /// <param name="Data">The data.</param>
        /// <param name="BaseType">Type of the base.</param>
        /// <returns></returns>
        internal static int CreateCompressed(int Data, int BaseType)
        {
            int ID   = GlobalID.GetID(Data) + 1;
            int Type = GlobalID.GetType(Data);

            if (Type > BaseType)
            {
                while (Type > BaseType)
                {
                    ID += CSV.Tables.Get(BaseType++).Datas.Count;
                }
            }

            return(ID);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates the compressed data from the specified base type.
        /// </summary>
        internal static int CreateCompressed(int data, int baseType)
        {
            int id   = GlobalID.GetID(data) + 1;
            int type = GlobalID.GetType(data);

            if (type > baseType)
            {
                while (type > baseType)
                {
                    id += CSV.Tables.Get(baseType++).Datas.Size;
                }
            }

            return(id);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Encodes the <see cref="Message" />, using the <see cref="Writer" /> instance.
        /// </summary>
        internal override void Encode()
        {
            this.Data.AddInt(this.Clan.HighID);
            this.Data.AddInt(this.Clan.LowID);

            this.Data.AddString(this.Clan.Name);

            this.Data.AddVInt(GlobalID.GetType(this.Clan.Badge));
            this.Data.AddVInt(GlobalID.GetID(this.Clan.Badge));

            this.Data.AddVInt((int)this.Clan.Type);

            this.Data.AddVInt(this.Clan.Members.Entries.Count);
            this.Data.AddVInt(this.Clan.Trophies);

            this.Data.AddVInt(this.Clan.Required_Trophies);
            this.Data.AddVInt(0);

            this.Data.AddString(this.Clan.Description);

            this.Data.AddVInt(this.Clan.Members.Entries.Count);

            foreach (Member Member in this.Clan.Members.Entries.Values.ToArray())
            {
                this.Data.AddInt(Member.HighID);
                this.Data.AddInt(Member.LowID);

                this.Data.AddString(Member.Username);

                this.Data.AddVInt((int)Member.Role);

                this.Data.AddVInt(Member.Level);
                this.Data.AddVInt(Member.Trophies);

                this.Data.AddVInt(28); // Thumbnail Type
                this.Data.AddVInt(Member.Thumbnail);
            }

            // 01  00-00-00-00  00-00-39-84  00-00-00-09-EC-95-84-EC-9D-B4-EC-9C-A0  02  06  A1-01  1C  00
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Encodes the <see cref="Message" />, using the <see cref="Writer" /> instance.
        /// </summary>
        internal override void Encode()
        {
            this.Data.AddVInt(this.Player.HighID);
            this.Data.AddVInt(this.Player.LowID);

            this.Data.AddString(this.Player.Name);
            this.Data.AddBool(false);

            this.Data.AddVInt(this.Player.Deck.Count);
            {
                this.Data.AddRange(this.Player.Deck.ToBytes);
            }

            this.Data.AddVInt(8);
            {
                this.Data.AddVInt(1);
                this.Data.AddVInt(this.Player.Wins);

                this.Data.AddVInt(2);
                this.Data.AddVInt(this.Player.Info.Experience);

                this.Data.AddVInt(3);
                this.Data.AddVInt(this.Player.Info.Trophies);

                this.Data.AddVInt(4);
                this.Data.AddVInt(this.Player.Info.HighTrophies);

                this.Data.AddVInt(5);
                this.Data.AddVInt(this.Player.Deck.Count);

                this.Data.AddVInt(6);
                this.Data.AddVInt(0);

                this.Data.AddVInt(7);
                this.Data.AddVInt(this.Player.Info.Thumbnail);

                this.Data.AddVInt(8);
                this.Data.AddVInt(this.Player.Info.SurvTrophies);
            }

            if (this.Player.ClanLowID > 0)
            {
                Clan Clan = this.Player.Clan;

                if (Clan != null)
                {
                    Member Member;

                    if (Clan.Members.Entries.TryGetValue(this.Player.PlayerID, out Member))
                    {
                        this.Data.AddBool(true);

                        this.Data.AddInt(Clan.HighID);
                        this.Data.AddInt(Clan.LowID);

                        this.Data.AddString(Clan.Name);

                        this.Data.AddVInt(GlobalID.GetType(Clan.Badge));
                        this.Data.AddVInt(GlobalID.GetID(Clan.Badge));

                        this.Data.AddVInt((int)Clan.Type);

                        this.Data.AddVInt(Clan.Members.Entries.Count);
                        this.Data.AddVInt(Clan.Trophies);
                        this.Data.AddVInt(Clan.Required_Trophies);
                        this.Data.AddVInt(0);

                        this.Data.AddVInt(0x19);             // Role Type
                        this.Data.AddVInt((int)Member.Role); // Role ID
                    }
                    else
                    {
                        Logging.Error(this.GetType(), "Member was null.");

                        this.Data.AddBool(false);
                        this.Data.AddBool(false);
                    }
                }
                else
                {
                    Logging.Error(this.GetType(), "Clan was null.");

                    this.Data.AddBool(false);
                    this.Data.AddBool(false);
                }
            }
            else
            {
                this.Data.AddBool(false);
                this.Data.AddBool(false);
            }
        }
Ejemplo n.º 7
0
 public static void AddGlobalID(this List <byte> _Packet, int _Value)
 {
     _Packet.AddVInt(GlobalID.GetID(_Value));
     _Packet.AddVInt(GlobalID.GetType(_Value));
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Encodes the specified packet.
        /// </summary>
        /// <param name="Packet">The packet.</param>
        public void Encode(List <byte> Packet)
        {
            DateTime UTCNow = DateTime.UtcNow;

            Packet.AddVInt(UTCNow.Year * 1000 + UTCNow.DayOfYear);
            Packet.AddVInt(UTCNow.Second + UTCNow.Minute * 60 + UTCNow.Hour * 3600);

            Packet.AddVInt(this.Trophies);
            Packet.AddVInt(this.Trophies);

            Packet.AddVInt(999999999); // Exp
            Packet.AddVInt(0);

            Packet.AddVInt(GlobalID.GetType(this.Thumbnail));
            Packet.AddVInt(GlobalID.GetID(this.Thumbnail));

            Packet.AddVInt(1); // Array
            {
                Packet.AddVInt(1);
            }

            Packet.AddVInt(0); // Array (data reference)
            Packet.AddVInt(0); // Array (data reference)

            Packet.AddBool(false);

            int GoldReward = this.Player.Resources.Get(5000001) - this.Gold;

            if (GoldReward < 0)
            {
                GoldReward = 0;
            }

            Packet.AddVInt(GoldReward);

            Packet.AddVInt(this.JoystickMode);
            Packet.AddBool(this.HintsEnabled);

            Packet.AddVInt(0);
            Packet.AddVInt((int)TimeSpan.FromHours(0).TotalSeconds);

            Packet.AddBool(false);

            {
                Packet.AddHexa("8C-01");
                Packet.AddHexa("1E");

                Packet.AddHexa("90-01");
                Packet.AddHexa("28");
            }

            {
                Packet.AddHexa("8C-04");
                Packet.AddHexa("28");

                Packet.AddHexa("A1-04");
                Packet.AddHexa("32");
            }

            Packet.AddData(2, 6);

            Packet.AddVInt(0);

            Packet.AddBools(true, true);
        }