Auxilium_Server.Classes.UserState.AddPoints C# (CSharp) Метод

AddPoints() публичный Метод

public AddPoints ( int points ) : void
points int
Результат void
        public void AddPoints(int points)
        {
            Points = Math.Min(Points + points, 2812000);

            if (Rank >= 37)
            {
                Percentage = 100;
                ExperienceRequired = 0;
                return;
            }

            int nextRank = ((Rank / 2) + 1) * (Rank + 1) * 4000;

            int previousRank = (((Rank - 1) / 2) + 1) * Rank * 4000;

            if (Points >= nextRank)
            {
                Rank += 1;
            }

            Percentage = (int)Math.Round((((double)Points - (double)previousRank) / ((double)nextRank - (double)previousRank)) * 100);

            ExperienceRequired = nextRank - Points;
        }

Usage Example

Пример #1
0
        static object[] GetProfile(ServerPacket header, string username)
        {
            List<object> profile = new List<object> {(byte) header};

            MySqlCommand q = new MySqlCommand("SELECT * FROM users WHERE Username=@Username;", SQL);
            q.Parameters.AddWithValue("@Username", username);

            MySqlDataReader r = q.ExecuteReader();
            bool success = r.Read();

            if (success)
            {

                string link = r.GetString("ProfileLink");
                int points = r.GetInt32("Points");
                byte rank = r.GetByte("Rank");
                string bio = r.GetString("Bio");
                string avatar = r.GetString("Avatar");

                UserState state = new UserState()
                {
                    Points = points,
                    Rank = rank
                };

                state.AddPoints(0);

                profile.AddRange(new object[] { username, link, rank, bio, avatar, state.Percentage });

                r.Close();
                r.Dispose();
            }
            else
            {
                profile.AddRange(new object[] { username, "", 0, "", "", 0 });
                r.Close();
                r.Dispose();
            }

            return profile.ToArray();
        }