using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Blizzard.HabboHotel.Users; namespace Blizzard { class QuestData { internal int Id; internal string Type; internal string SubType; internal string UsersActive; internal string ExtraType; internal string Category; internal List Users; internal int Award; internal int CountFurnis; public static List Quests; public static void InitQuests() { Quests = new List(); DataRow Quest = BlizzardSystem.MySQL.ReadDataRow("SELECT * FROM quests"); foreach (DataRow Row in Quest.Table.Rows) { QuestData Q = new QuestData(); Q.Id = (int)Row["id"]; Q.Type = (string)Row["type"]; Q.SubType = (string)Row["secondtype"]; Q.ExtraType = (string)Row["extravalue"]; Q.Category = Row["category"].ToString(); Q.UsersActive = (string)Row["usersactive"]; Q.Users = new List(); if (Q.UsersActive.Contains(";")) { string[] rf = Q.UsersActive.Split(';'); foreach (string rfs in rf) { if (rfs == "") continue; if (Q.Users.Contains(int.Parse(rfs))) continue; Q.Users.Add(int.Parse(rfs)); } } Q.Award = (int)Row["award"]; Q.CountFurnis = (int)Row["countfurnis"]; Quests.Add(Q); } BlizzardSystem.WriteLine("@Server >> " + Quests.Count + " quests loaded"); } public static QuestData GetQuestForID(int QuestId) { foreach (QuestData q in Quests) { if (q.Id == QuestId) return q; else continue; } return null; } public static int GetLastIdForCategory(string Category) { List Q = GetQuestForCategory(Category); int LastId = 0; foreach (QuestData q in Q) { if (q.Id > LastId) LastId = q.Id; else continue; } return LastId; } public static List GetQuestForCategory(string Category) { List Q = new List(); foreach (QuestData q in Quests) { if (q.Category == Category) Q.Add(q); else continue; } return Q; } public static List GetCompletedQuestForUserAndCategory(Habbo User, string Category) { List Q = new List(); List Qq = QuestData.GetQuestForCategory(Category); UsersData Us = UsersData.UsersRegister[User.Id]; foreach (QuestData q in Qq) { if (User.QuestCompleted.Contains(q.Id)) Q.Add(q); else continue; } return Q; } } }