Ejemplo n.º 1
0
        /// <summary>
        /// Gets the achievement levels.
        /// </summary>
        /// <param name="achievements">The achievements.</param>
        /// <param name="dbClient">The database client.</param>
        internal static void GetAchievementLevels(out Dictionary <string, Achievement> achievements, IQueryAdapter dbClient)
        {
            achievements = new Dictionary <string, Achievement>();
            dbClient.SetQuery("SELECT * FROM achievements_data");
            DataTable table = dbClient.GetTable();

            foreach (DataRow dataRow in table.Rows)
            {
                uint id           = Convert.ToUInt32(dataRow["id"]);
                var  category     = (string)dataRow["category"];
                var  text         = (string)dataRow["group_name"];
                var  level        = (int)dataRow["level"];
                var  rewardPixels = (int)dataRow["reward_pixels"];
                var  rewardPoints = (int)dataRow["reward_points"];
                var  requirement  = (int)dataRow["progress_needed"];
                var  level2       = new AchievementLevel(level, rewardPixels, rewardPoints, requirement);
                if (!achievements.ContainsKey(text))
                {
                    var achievement = new Achievement(id, text, category);
                    achievement.AddLevel(level2);
                    achievements.Add(text, achievement);
                }
                else
                {
                    achievements[text].AddLevel(level2);
                }
            }
        }
Ejemplo n.º 2
0
        public static void GetAchievementLevels(out Dictionary<string, Achievement> Achievements)
        {
            Achievements = new Dictionary<string, Achievement>();

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `achievements`");
                DataTable dTable = dbClient.getTable();

                if (dTable != null)
                {
                    foreach (DataRow dRow in dTable.Rows)
                    {
                        int id = Convert.ToInt32(dRow["id"]);
                        string category = Convert.ToString(dRow["category"]);
                        string groupName = Convert.ToString(dRow["group_name"]);
                        int level = Convert.ToInt32(dRow["level"]);
                        int rewardPixels = Convert.ToInt32(dRow["reward_pixels"]);
                        int rewardPoints = Convert.ToInt32(dRow["reward_points"]);
                        int progressNeeded = Convert.ToInt32(dRow["progress_needed"]);

                        AchievementLevel AchievementLevel = new AchievementLevel(level, rewardPixels, rewardPoints, progressNeeded);

                        if (!Achievements.ContainsKey(groupName))
                        {
                            Achievement Achievement = new Achievement(id, groupName, category, Convert.ToInt32(dRow["game_id"]));
                            Achievement.AddLevel(AchievementLevel);
                            Achievements.Add(groupName, Achievement);
                        }
                        else
                            Achievements[groupName].AddLevel(AchievementLevel);
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public AchievementProgressedComposer(Achievement Achievement, int TargetLevel, AchievementLevel TargetLevelData,int TotalLevels, UserAchievement UserData)
     : base(ServerPacketHeader.AchievementProgressedMessageComposer)
 {
     base.WriteInteger(Achievement.Id); // Unknown (ID?)
     base.WriteInteger(TargetLevel); // Target level
    base.WriteString(Achievement.GroupName + TargetLevel); // Target name/desc/badge
     base.WriteInteger(1); // Progress req/target 
     base.WriteInteger(TargetLevelData.Requirement); // Reward in Pixels
     base.WriteInteger(TargetLevelData.RewardPixels); // Reward Ach Score
     base.WriteInteger(0); // ?
     base.WriteInteger(UserData != null ? UserData.Progress : 0); // Current progress
     base.WriteBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false); // Set 100% completed(??)
    base.WriteString(Achievement.Category); // Category
    base.WriteString(string.Empty);
     base.WriteInteger(TotalLevels); // Total amount of levels 
     base.WriteInteger(0);
 }
Ejemplo n.º 4
0
        public async Task <Dictionary <string, Achievement> > GetAchievementLevelsAsync()
        {
            Dictionary <string, Achievement> achievements = new Dictionary <string, Achievement>();

            using (IAsyncDbClient client = ConnectionProvider.GetConnection())
            {
                using (IQuery query = client.CreateQuery("SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `achievements`"))
                {
                    using (var reader = await query.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            uint   id             = reader.GetData <uint>("id");
                            string category       = reader.GetData <string>("category");
                            string groupName      = reader.GetData <string>("group_name");
                            int    rewardPixels   = reader.GetData <int>("reward_pixels");
                            int    rewardPoints   = reader.GetData <int>("reward_points");
                            int    progressNeeded = reader.GetData <int>("progress_needed");

                            AchievementLevel level = new AchievementLevel(reader.GetData <int>("level"), rewardPixels, rewardPoints, progressNeeded);

                            if (!achievements.ContainsKey(groupName))
                            {
                                Achievement achievement = new Achievement((int)id, groupName, category, reader.GetData <int>("game_id"));
                                achievement.AddLevel(level);
                                achievements.Add(groupName, achievement);
                            }
                            else
                            {
                                achievements[groupName].AddLevel(level);
                            }
                        }
                    }
                }
            }

            return(achievements);
        }
        public static void GetAchievementLevels(out Dictionary <string, Achievement> Achievements)
        {
            Achievements = new Dictionary <string, Achievement>();

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `achievements`");
                DataTable dTable = dbClient.GetTable();

                if (dTable != null)
                {
                    foreach (DataRow dRow in dTable.Rows)
                    {
                        int    id             = Convert.ToInt32(dRow["id"]);
                        string category       = Convert.ToString(dRow["category"]);
                        string groupName      = Convert.ToString(dRow["group_name"]);
                        int    level          = Convert.ToInt32(dRow["level"]);
                        int    rewardPixels   = Convert.ToInt32(dRow["reward_pixels"]);
                        int    rewardPoints   = Convert.ToInt32(dRow["reward_points"]);
                        int    progressNeeded = Convert.ToInt32(dRow["progress_needed"]);

                        AchievementLevel AchievementLevel = new AchievementLevel(level, rewardPixels, rewardPoints, progressNeeded);

                        if (!Achievements.ContainsKey(groupName))
                        {
                            Achievement Achievement = new Achievement(id, groupName, category, Convert.ToInt32(dRow["game_id"]));
                            Achievement.AddLevel(AchievementLevel);
                            Achievements.Add(groupName, Achievement);
                        }
                        else
                        {
                            Achievements[groupName].AddLevel(AchievementLevel);
                        }
                    }
                }
            }
        }
Ejemplo n.º 6
0
        internal static void GetAchievementLevels(out Dictionary <string, Achievement> achievements)
        {
            achievements = new Dictionary <string, Achievement>();
            using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery(
                    "SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `achievements`");
                var dTable = dbClient.GetTable();

                if (dTable == null)
                {
                    return;
                }

                foreach (DataRow dRow in dTable.Rows)
                {
                    var id               = Convert.ToInt32(dRow["id"]);
                    var category         = Convert.ToString(dRow["category"]);
                    var groupName        = Convert.ToString(dRow["group_name"]);
                    var level            = Convert.ToInt32(dRow["level"]);
                    var rewardPixels     = Convert.ToInt32(dRow["reward_pixels"]);
                    var rewardPoints     = Convert.ToInt32(dRow["reward_points"]);
                    var progressNeeded   = Convert.ToInt32(dRow["progress_needed"]);
                    var achievementLevel = new AchievementLevel(level, rewardPixels, rewardPoints, progressNeeded);
                    if (!achievements.ContainsKey(groupName))
                    {
                        var achievement = new Achievement(id, groupName, category, Convert.ToInt32(dRow["game_id"]));
                        achievement.AddLevel(achievementLevel);
                        achievements.Add(groupName, achievement);
                    }
                    else
                    {
                        achievements[groupName].AddLevel(achievementLevel);
                    }
                }
            }
        }
Ejemplo n.º 7
0
 public void AddLevel(AchievementLevel level)
 {
     Levels.Add(level.Level, level);
 }
Ejemplo n.º 8
0
        public bool ProgressAchievement(GameClient Session, string AchievementGroup, int ProgressAmount, bool FromZero = false)
        {
            if (!_achievements.ContainsKey(AchievementGroup) || Session == null)
            {
                return(false);
            }

            Achievement AchievementData = null;

            AchievementData = _achievements[AchievementGroup];

            UserAchievement UserData = Session.GetHabbo().GetAchievementData(AchievementGroup);

            if (UserData == null)
            {
                UserData = new UserAchievement(AchievementGroup, 0, 0);
                Session.GetHabbo().Achievements.TryAdd(AchievementGroup, UserData);
            }

            int TotalLevels = AchievementData.Levels.Count;

            if (UserData != null && UserData.Level == TotalLevels)
            {
                return(false); // done, no more.
            }
            int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);

            if (TargetLevel > TotalLevels)
            {
                TargetLevel = TotalLevels;
            }

            AchievementLevel TargetLevelData = AchievementData.Levels[TargetLevel];
            int NewProgress = 0;

            if (FromZero)
            {
                NewProgress = ProgressAmount;
            }
            else
            {
                NewProgress = (UserData != null ? UserData.Progress + ProgressAmount : ProgressAmount);
            }

            int NewLevel  = (UserData != null ? UserData.Level : 0);
            int NewTarget = NewLevel + 1;

            if (NewTarget > TotalLevels)
            {
                NewTarget = TotalLevels;
            }

            if (NewProgress >= TargetLevelData.Requirement)
            {
                NewLevel++;
                NewTarget++;

                int ProgressRemainder = NewProgress - TargetLevelData.Requirement;

                NewProgress = 0;

                if (TargetLevel == 1)
                {
                    Session.GetHabbo().GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel, true, Session);
                }
                else
                {
                    Session.GetHabbo().GetBadgeComponent().RemoveBadge(Convert.ToString(AchievementGroup + (TargetLevel - 1)));
                    Session.GetHabbo().GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel, true, Session);
                }

                if (NewTarget > TotalLevels)
                {
                    NewTarget = TotalLevels;
                }


                Session.SendPacket(new AchievementUnlockedComposer(AchievementData, TargetLevel, TargetLevelData.RewardPoints, TargetLevelData.RewardPixels));
                Session.GetHabbo().GetMessenger().BroadcastAchievement(Session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.ACHIEVEMENT_UNLOCKED, AchievementGroup + TargetLevel);

                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("REPLACE INTO `user_achievements` VALUES ('" + Session.GetHabbo().Id + "', @group, '" + NewLevel + "', '" + NewProgress + "')");
                    dbClient.AddParameter("group", AchievementGroup);
                    dbClient.RunQuery();
                }

                UserData.Level    = NewLevel;
                UserData.Progress = NewProgress;

                Session.GetHabbo().Duckets += TargetLevelData.RewardPixels;
                Session.GetHabbo().GetStats().AchievementPoints += TargetLevelData.RewardPoints;
                Session.SendPacket(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, TargetLevelData.RewardPixels));
                Session.SendPacket(new AchievementScoreComposer(Session.GetHabbo().GetStats().AchievementPoints));

                AchievementLevel NewLevelData = AchievementData.Levels[NewTarget];
                Session.SendPacket(new AchievementProgressedComposer(AchievementData, NewTarget, NewLevelData, TotalLevels, Session.GetHabbo().GetAchievementData(AchievementGroup)));

                return(true);
            }
            else
            {
                UserData.Level    = NewLevel;
                UserData.Progress = NewProgress;
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("REPLACE INTO `user_achievements` VALUES ('" + Session.GetHabbo().Id + "', @group, '" + NewLevel + "', '" + NewProgress + "')");
                    dbClient.AddParameter("group", AchievementGroup);
                    dbClient.RunQuery();
                }

                Session.SendPacket(new AchievementProgressedComposer(AchievementData, TargetLevel, TargetLevelData, TotalLevels, Session.GetHabbo().GetAchievementData(AchievementGroup)));
            }
            return(false);
        }
Ejemplo n.º 9
0
 public void AddLevel(AchievementLevel Level)
 {
     Levels.Add(Level.Level, Level);
 }
Ejemplo n.º 10
0
        public async void ProgressAchievement(GameClient session, string group, int progress, bool fromBeginning = false)
        {
            if (!Achievements.ContainsKey(group) || session == null)
            {
                return;
            }

            Achievement data = Achievements[group];

            if (data == null)
            {
                return;
            }

            UserAchievement userData = session.Habbo.GetAchievementData(group);

            if (userData == null)
            {
                userData = new UserAchievement(group, 0, 0);
                session.Habbo.Achievements.TryAdd(group, userData);
            }

            int totalLevels = data.Levels.Count;

            if (userData.Level == totalLevels)
            {
                return; // done, no more.
            }
            int targetLevel = userData.Level + 1;

            if (targetLevel > totalLevels)
            {
                targetLevel = totalLevels;
            }

            AchievementLevel level = data.Levels[targetLevel];
            int newProgress;

            if (fromBeginning)
            {
                newProgress = progress;
            }
            else
            {
                newProgress = userData.Progress + progress;
            }

            int newLevel  = userData.Level;
            int newTarget = newLevel + 1;

            if (newTarget > totalLevels)
            {
                newTarget = totalLevels;
            }

            if (newProgress >= level.Requirement)
            {
                newLevel++;
                newTarget++;
                newProgress = 0;

                if (targetLevel == 1)
                {
                    session.Habbo.GetBadgeComponent().GiveBadge(group + targetLevel, true, session);
                }
                else
                {
                    session.Habbo.GetBadgeComponent().RemoveBadge(Convert.ToString(group + (targetLevel - 1)));
                    session.Habbo.GetBadgeComponent().GiveBadge(group + targetLevel, true, session);
                }

                if (newTarget > totalLevels)
                {
                    newTarget = totalLevels;
                }

                session.SendPacket(new AchievementUnlockedComposer(data, targetLevel, level.RewardPoints, level.RewardPixels));
                session.Habbo.GetMessenger().BroadcastAchievement(session.Habbo.Id, Users.Messenger.MessengerEventTypes.AchievementUnlocked, group + targetLevel);

                await _dao.ProgressAchievement(session.Habbo.Id, group, newLevel, newProgress);

                userData.Level    = newLevel;
                userData.Progress = newProgress;

                session.Habbo.Duckets += level.RewardPixels;
                session.Habbo.GetStats().AchievementPoints += level.RewardPoints;
                session.SendPacket(new HabboActivityPointNotificationComposer(session.Habbo.Duckets, level.RewardPixels));
                session.SendPacket(new AchievementScoreComposer(session.Habbo.GetStats().AchievementPoints));

                AchievementLevel newLevelData = data.Levels[newTarget];
                session.SendPacket(new AchievementProgressedComposer(data, newTarget, newLevelData, totalLevels, session.Habbo.GetAchievementData(group)));

                return;
            }
            else
            {
                userData.Level    = newLevel;
                userData.Progress = newProgress;

                await _dao.ProgressAchievement(session.Habbo.Id, group, newLevel, newProgress);

                session.SendPacket(new AchievementProgressedComposer(data, targetLevel, level, totalLevels, session.Habbo.GetAchievementData(group)));
            }
            return;
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Progresses the user achievement.
        /// </summary>
        /// <param name="Session">The session.</param>
        /// <param name="AchievementGroup">The achievement group.</param>
        /// <param name="ProgressAmount">The progress amount.</param>
        /// <param name="FromZero">if set to <c>true</c> [from zero].</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        internal bool ProgressUserAchievement(GameClient Session, string AchievementGroup, int ProgressAmount, bool FromZero = false)
        {
            if (!this.Achievements.ContainsKey(AchievementGroup) || Session == null)
            {
                return(false);
            }
            Achievement achievement = null;

            achievement = this.Achievements[AchievementGroup];
            UserAchievement userAchievement = Session.GetHabbo().GetAchievementData(AchievementGroup);

            if (userAchievement == null)
            {
                userAchievement = new UserAchievement(AchievementGroup, 0, 0);
                Session.GetHabbo().Achievements.Add(AchievementGroup, userAchievement);
            }
            int count = achievement.Levels.Count;

            if (userAchievement != null && userAchievement.Level == count)
            {
                return(false);
            }

            {
                int num = (userAchievement != null) ? (userAchievement.Level + 1) : 1;
                if (num > count)
                {
                    num = count;
                }
                AchievementLevel targetLevelData = achievement.Levels[num];
                int num2 = 0;
                if (FromZero)
                {
                    num2 = ProgressAmount;
                }
                else
                {
                    num2 = ((userAchievement != null) ? (userAchievement.Progress + ProgressAmount) : ProgressAmount);
                }
                int num3 = (userAchievement != null) ? userAchievement.Level : 0;
                int num4 = num3 + 1;
                if (num4 > count)
                {
                    num4 = count;
                }
                if (num2 >= targetLevelData.Requirement)
                {
                    num3++;
                    num4++;
                    int argE60 = num2 - targetLevelData.Requirement;
                    num2 = 0;
                    if (num == 1)
                    {
                        Session.GetHabbo().GetBadgeComponent().GiveBadge(string.Format("{0}{1}", AchievementGroup, num), true, Session, false);
                    }
                    else
                    {
                        Session.GetHabbo().GetBadgeComponent().RemoveBadge(Convert.ToString(string.Format("{0}{1}", AchievementGroup, num - 1)), Session);
                        Session.GetHabbo().GetBadgeComponent().GiveBadge(string.Format("{0}{1}", AchievementGroup, num), true, Session, false);
                    }
                    if (num4 > count)
                    {
                        num4 = count;
                    }
                    Session.GetHabbo().ActivityPoints += targetLevelData.RewardPixels;
                    Session.GetHabbo().NotifyNewPixels(targetLevelData.RewardPixels);
                    Session.GetHabbo().UpdateActivityPointsBalance();
                    Session.SendMessage(AchievementUnlockedComposer.Compose(achievement, num, targetLevelData.RewardPoints, targetLevelData.RewardPixels));
                    using (IQueryAdapter queryReactor = Plus.GetDatabaseManager().GetQueryReactor())
                    {
                        queryReactor.SetQuery(string.Concat(new object[]
                        {
                            "REPLACE INTO users_achievements VALUES (",
                            Session.GetHabbo().Id,
                            ", @group, ",
                            num3,
                            ", ",
                            num2,
                            ")"
                        }));
                        queryReactor.AddParameter("group", AchievementGroup);
                        queryReactor.RunQuery();
                    }
                    userAchievement.Level    = num3;
                    userAchievement.Progress = num2;
                    Session.GetHabbo().AchievementPoints += targetLevelData.RewardPoints;
                    Session.GetHabbo().NotifyNewPixels(targetLevelData.RewardPixels);
                    Session.GetHabbo().ActivityPoints += targetLevelData.RewardPixels;
                    Session.GetHabbo().UpdateActivityPointsBalance();
                    Session.SendMessage(AchievementScoreUpdateComposer.Compose(Session.GetHabbo().AchievementPoints));
                    AchievementLevel targetLevelData2 = achievement.Levels[num4];
                    Session.SendMessage(AchievementProgressComposer.Compose(achievement, num4, targetLevelData2, count, Session.GetHabbo().GetAchievementData(AchievementGroup)));
                    Talent talent = null;
                    if (Plus.GetGame().GetTalentManager().TryGetTalent(AchievementGroup, out talent))
                    {
                        Plus.GetGame().GetTalentManager().CompleteUserTalent(Session, talent);
                    }
                    return(true);
                }
                userAchievement.Level    = num3;
                userAchievement.Progress = num2;
                using (IQueryAdapter queryreactor2 = Plus.GetDatabaseManager().GetQueryReactor())
                {
                    queryreactor2.SetQuery(string.Concat(new object[]
                    {
                        "REPLACE INTO users_achievements VALUES (",
                        Session.GetHabbo().Id,
                        ", @group, ",
                        num3,
                        ", ",
                        num2,
                        ")"
                    }));
                    queryreactor2.AddParameter("group", AchievementGroup);
                    queryreactor2.RunQuery();
                }
                Session.SendMessage(AchievementProgressComposer.Compose(achievement, num, targetLevelData, count, Session.GetHabbo().GetAchievementData(AchievementGroup)));
                Session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
                Session.GetMessageHandler().GetResponse().AppendInteger(-1);
                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look);
                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower());
                Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto);
                Session.GetMessageHandler().GetResponse().AppendInteger(Session.GetHabbo().AchievementPoints);
                Session.GetMessageHandler().SendResponse();
                return(false);
            }
        }
Ejemplo n.º 12
0
        public bool ProgressAchievement(GameClient session, string group, int progress, bool fromBeginning = false)
        {
            if (!_achievements.ContainsKey(group) || session == null)
            {
                return(false);
            }

            Achievement data = null;

            data = _achievements[group];

            UserAchievement userData = session.GetHabbo().GetAchievementData(group);

            if (userData == null)
            {
                userData = new UserAchievement(group, 0, 0);
                session.GetHabbo().Achievements.TryAdd(group, userData);
            }

            int TotalLevels = data.Levels.Count;

            if (userData != null && userData.Level == TotalLevels)
            {
                return(false); // done, no more.
            }
            int TargetLevel = (userData != null ? userData.Level + 1 : 1);

            if (TargetLevel > TotalLevels)
            {
                TargetLevel = TotalLevels;
            }

            AchievementLevel TargetLevelData = data.Levels[TargetLevel];
            int NewProgress = 0;

            if (fromBeginning)
            {
                NewProgress = progress;
            }
            else
            {
                NewProgress = (userData != null ? userData.Progress + progress : progress);
            }

            int NewLevel  = (userData != null ? userData.Level : 0);
            int NewTarget = NewLevel + 1;

            if (NewTarget > TotalLevels)
            {
                NewTarget = TotalLevels;
            }

            if (NewProgress >= TargetLevelData.Requirement)
            {
                NewLevel++;
                NewTarget++;

                int ProgressRemainder = NewProgress - TargetLevelData.Requirement;

                NewProgress = 0;

                if (TargetLevel == 1)
                {
                    session.GetHabbo().GetBadgeComponent().GiveBadge(group + TargetLevel, true, session);
                }
                else
                {
                    session.GetHabbo().GetBadgeComponent().RemoveBadge(Convert.ToString(group + (TargetLevel - 1)));
                    session.GetHabbo().GetBadgeComponent().GiveBadge(group + TargetLevel, true, session);
                }

                if (NewTarget > TotalLevels)
                {
                    NewTarget = TotalLevels;
                }


                session.SendPacket(new AchievementUnlockedComposer(data, TargetLevel, TargetLevelData.RewardPoints, TargetLevelData.RewardPixels));
                session.GetHabbo().GetMessenger().BroadcastAchievement(session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.AchievementUnlocked, group + TargetLevel);

                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("REPLACE INTO `user_achievements` VALUES ('" + session.GetHabbo().Id + "', @group, '" + NewLevel + "', '" + NewProgress + "')");
                    dbClient.AddParameter("group", group);
                    dbClient.RunQuery();
                }

                userData.Level    = NewLevel;
                userData.Progress = NewProgress;

                session.GetHabbo().Duckets += TargetLevelData.RewardPixels;
                session.GetHabbo().GetStats().AchievementPoints += TargetLevelData.RewardPoints;
                session.SendPacket(new HabboActivityPointNotificationComposer(session.GetHabbo().Duckets, TargetLevelData.RewardPixels));
                session.SendPacket(new AchievementScoreComposer(session.GetHabbo().GetStats().AchievementPoints));

                AchievementLevel NewLevelData = data.Levels[NewTarget];
                session.SendPacket(new AchievementProgressedComposer(data, NewTarget, NewLevelData, TotalLevels, session.GetHabbo().GetAchievementData(group)));

                return(true);
            }
            else
            {
                userData.Level    = NewLevel;
                userData.Progress = NewProgress;
                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("REPLACE INTO `user_achievements` VALUES ('" + session.GetHabbo().Id + "', @group, '" + NewLevel + "', '" + NewProgress + "')");
                    dbClient.AddParameter("group", group);
                    dbClient.RunQuery();
                }

                session.SendPacket(new AchievementProgressedComposer(data, TargetLevel, TargetLevelData, TotalLevels, session.GetHabbo().GetAchievementData(group)));
            }
            return(false);
        }
Ejemplo n.º 13
0
 public void AddLevel(AchievementLevel Level)
 {
     Levels.Add(Level.Level, Level);
 }