internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0) { return; } var UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId); if (UserQuest == null || UserQuest.GoalType != QuestType) { return; } var CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id); var NewProgress = CurrentProgress; var PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) { PassQuest = true; } break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = (int)UserQuest.GoalData; PassQuest = true; break; } using (var dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + UserQuest.Id); } Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress; Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest)); if (PassQuest) { Session.GetHabbo().CurrentQuestId = 0; Session.GetHabbo().LastCompleted = UserQuest.Id; Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest)); GetList(Session, null); } }
public void ProgressUserQuest(GameClient Session, QuestType QuestType, int EventData = 0) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0) { return; } Quest quest = this.GetQuest(Session.GetHabbo().CurrentQuestId); if (quest == null || quest.GoalType != QuestType) { return; } int questProgress = Session.GetHabbo().GetQuestProgress(quest.Id); bool flag = false; int num; if (QuestType != QuestType.EXPLORE_FIND_ITEM) { num = questProgress + 1; if ((long)num >= (long)quest.GoalData) { flag = true; } } else { if (EventData != quest.GoalData) { return; } num = quest.GoalData; flag = true; } using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) { queryreactor.RunQuery("UPDATE user_quests SET progress = " + num + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + quest.Id); } Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = num; Session.SendPacket(QuestStartedComposer.Compose(Session, quest)); if (!flag) { return; } Session.GetHabbo().CurrentQuestId = 0; Session.GetHabbo().LastCompleted = quest.Id; Session.SendPacket(QuestCompletedComposer.Compose(Session, quest)); Session.GetHabbo().Duckets += quest.Reward; Session.GetHabbo().UpdateActivityPointsBalance(); this.GetList(Session, (ClientPacket)null); }
internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0u) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0u) { return; } Quest quest = this.GetQuest(Session.GetHabbo().CurrentQuestId); if (quest == null || quest.GoalType != QuestType) { return; } int questProgress = Session.GetHabbo().GetQuestProgress(quest.Id); int num = questProgress; bool flag = false; checked { if (QuestType != QuestType.EXPLORE_FIND_ITEM) { switch (QuestType) { case QuestType.STAND_ON: if (EventData != quest.GoalData) { return; } num = (int)quest.GoalData; flag = true; goto IL_DC; case QuestType.GIVE_ITEM: if (EventData != quest.GoalData) { return; } num = (int)quest.GoalData; flag = true; goto IL_DC; case QuestType.GIVE_COFFEE: case QuestType.WAVE_REINDEER: num++; if (unchecked ((long)num >= (long)((ulong)quest.GoalData))) { flag = true; goto IL_DC; } goto IL_DC; case QuestType.XMAS_PARTY: num++; if (unchecked ((long)num == (long)((ulong)quest.GoalData))) { flag = true; goto IL_DC; } goto IL_DC; } } if (EventData != quest.GoalData) { return; } num = (int)quest.GoalData; flag = true; IL_DC: using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor.runFastQuery(string.Concat(new object[] { "UPDATE user_quests SET progress = ", num, " WHERE user_id = ", Session.GetHabbo().Id, " AND quest_id = ", quest.Id })); if (flag) { queryreactor.runFastQuery("UPDATE user_stats SET quest_id = 0 WHERE id = " + Session.GetHabbo().Id); } } Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = num; Session.SendMessage(QuestStartedComposer.Compose(Session, quest)); if (flag) { Session.GetHabbo().CurrentQuestId = 0u; Session.GetHabbo().LastQuestCompleted = quest.Id; Session.SendMessage(QuestCompletedComposer.Compose(Session, quest)); Session.GetHabbo().ActivityPoints += quest.Reward; Session.GetHabbo().NotifyNewPixels(quest.Reward); Session.GetHabbo().UpdateSeasonalCurrencyBalance(); this.GetList(Session, null); } } }
internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0) { return; } Quest UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId); if (UserQuest == null || UserQuest.GoalType != QuestType) { return; } int CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id); int NewProgress = CurrentProgress; bool PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) { PassQuest = true; } break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = (int)UserQuest.GoalData; PassQuest = true; break; } using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + UserQuest.Id); if (PassQuest) { dbClient.runFastQuery("UPDATE users SET currentquestid = 0 WHERE id = " + Session.GetHabbo().Id); //Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1); //if (NextQuest != null) // dbClient.runFastQuery("INSERT INTO user_quests (user_id, quest_id, progress) VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ", 0)"); } } Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress; Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest)); if (PassQuest) { Session.GetHabbo().CurrentQuestId = 0; Session.GetHabbo().LastCompleted = UserQuest.Id; Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest)); Session.GetHabbo().ActivityPoints += UserQuest.Reward; Session.GetHabbo().UpdateActivityPointsBalance(false); GetList(Session, null); } }
/// <summary> /// Progresses the user quest. /// </summary> /// <param name="session">The session.</param> /// <param name="questType">Type of the quest.</param> /// <param name="eventData">The event data.</param> internal void ProgressUserQuest(GameClient session, QuestType questType, uint eventData = 0u) { if (session == null || session.GetHabbo() == null || session.GetHabbo().CurrentQuestId <= 0u) { return; } var quest = GetQuest(session.GetHabbo().CurrentQuestId); if (quest == null || quest.GoalType != questType) { return; } var questProgress = session.GetHabbo().GetQuestProgress(quest.Id); var num = questProgress; var flag = false; { if (questType != QuestType.ExploreFindItem) { switch (questType) { case QuestType.StandOn: if (eventData != quest.GoalData) { return; } num = (int)quest.GoalData; flag = true; goto IL_DC; case QuestType.GiveItem: if (eventData != quest.GoalData) { return; } num = (int)quest.GoalData; flag = true; goto IL_DC; case QuestType.GiveCoffee: case QuestType.WaveReindeer: num++; if ((num >= quest.GoalData)) { flag = true; } goto IL_DC; case QuestType.XmasParty: num++; if ((num == quest.GoalData)) { flag = true; } goto IL_DC; } } if (eventData != quest.GoalData) { return; } num = (int)quest.GoalData; flag = true; IL_DC: using (var queryReactor = Plus.GetDatabaseManager().GetQueryReactor()) { queryReactor.RunFastQuery(string.Concat(new object[] { "UPDATE users_quests_data SET progress = ", num, " WHERE user_id = ", session.GetHabbo().Id, " AND quest_id = ", quest.Id })); if (flag) { queryReactor.RunFastQuery(string.Format("UPDATE users_stats SET quest_id = 0 WHERE id = {0}", session.GetHabbo().Id)); } } session.GetHabbo().Quests[session.GetHabbo().CurrentQuestId] = num; session.SendMessage(QuestStartedComposer.Compose(session, quest)); if (!flag) { return; } session.GetHabbo().CurrentQuestId = 0u; session.GetHabbo().LastQuestCompleted = quest.Id; session.SendMessage(QuestCompletedComposer.Compose(session, quest)); session.GetHabbo().ActivityPoints += quest.Reward; session.GetHabbo().NotifyNewPixels(quest.Reward); session.GetHabbo().UpdateSeasonalCurrencyBalance(); GetList(session, null); } }
public static void ProgressUserQuest(Session Session, QuestType QuestType, uint EventData = 0) { if (Session.QuestCache.CurrentQuestId <= 0) { return; } Quest UserQuest = GetQuest(Session.QuestCache.CurrentQuestId); if (UserQuest == null || UserQuest.GoalType != QuestType) { return; } int CurrentProgress = Session.QuestCache.GetQuestProgress(UserQuest.Id); int NewProgress = CurrentProgress; bool PassQuest = false; switch (QuestType) { default: NewProgress++; if (NewProgress >= UserQuest.GoalData) { PassQuest = true; } break; case QuestType.EXPLORE_FIND_ITEM: if (EventData != UserQuest.GoalData) { return; } NewProgress = (int)UserQuest.GoalData; PassQuest = true; break; } using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { Session.QuestCache.AddOrUpdateData(MySqlClient, UserQuest.Id, NewProgress, !PassQuest); if (PassQuest) { Session.CharacterInfo.UpdateActivityPointsBalance(MySqlClient, UserQuest.Reward); Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1); if (NextQuest != null) { Session.QuestCache.AddOrUpdateData(MySqlClient, NextQuest.Id, 0, true); } } } Session.SendData(QuestStartedComposer.Compose(Session, UserQuest)); if (PassQuest) { Session.SendData(QuestCompletedComposer.Compose(Session, UserQuest)); Session.SendData(ActivityPointsBalanceComposer.Compose(Session.CharacterInfo.ActivityPointsBalance, UserQuest.Reward)); GetList(Session, null); Session.MessengerFriendCache.BroadcastToFriends(MessengerFriendEventComposer.Compose(Session.CharacterId, MessengerFriendEventType.QuestCompleted, UserQuest.Category + "." + UserQuest.QuestName)); } }