public static void LoadNPCs() { lock (DatabaseProvider.Locker) { var sqlText = "SELECT * FROM npcs"; var sqlCommand = new MySqlCommand(sqlText, DatabaseProvider.Connection); var sqlReader = sqlCommand.ExecuteReader(); while (sqlReader.Read()) { var npcModel = new Models.NPC.NoPlayerCharacterModel() { ID = sqlReader.GetInt32("ID"), GfxID = sqlReader.GetInt32("Gfx"), Size = sqlReader.GetInt32("Size"), Sex = sqlReader.GetInt32("Sex"), Color = sqlReader.GetInt32("Color1"), Color2 = sqlReader.GetInt32("Color2"), Color3 = sqlReader.GetInt32("Color3"), Name = sqlReader.GetString("Name"), Items = sqlReader.GetString("Items"), Question = (sqlReader.GetInt32("initQuestion") != -1 ? QuestionsList.First (x => x.QuestionID == sqlReader.GetInt32("initQuestion")) : null), }; foreach (var itemToSell in sqlReader.GetString("SellingList").Split(',')) { if (itemToSell == "") continue; npcModel.SellingList.Add(int.Parse(itemToSell)); } var infosMap = sqlReader.GetString("Mapinfos").Split(';'); var npc = new Game.Characters.NPC.NPCMap(npcModel) { MapID = int.Parse(infosMap[0]), MapCell = int.Parse(infosMap[1]), Dir = int.Parse(infosMap[2]), MustMove = bool.Parse(infosMap[3]), }; if (MapsRequests.MapsList.Any(x => x.Model.ID == npc.MapID)) { var map = MapsRequests.MapsList.First(x => x.Model.ID == npc.MapID); npc.ID = MapsRequests.MapsList.First(x => x.Model.ID == npc.MapID).NextNpcID(); map.Npcs.Add(npc); npc.StartMove(); } NpcsList.Add(npc); } sqlReader.Close(); } Utilities.Loggers.Status.Write(string.Format("Loaded '{0}' npcs from the database !", NpcsList.Count)); }
public static void LoadNPCs() { var sqlText = "SELECT * FROM npcs"; var sqlCommand = new MySqlCommand(sqlText, Program.DBHelper.Use()); var sqlReader = sqlCommand.ExecuteReader(); while (sqlReader.Read()) { var npcModel = new Models.NPC.NoPlayerCharacterModel() { ID = sqlReader.GetInt32("ID"), GfxID = sqlReader.GetInt32("Gfx"), Size = sqlReader.GetInt32("Size"), Sex = sqlReader.GetInt32("Sex"), Color = sqlReader.GetInt32("Color1"), Color2 = sqlReader.GetInt32("Color2"), Color3 = sqlReader.GetInt32("Color3"), Name = sqlReader.GetString("Name"), Items = sqlReader.GetString("Items"), Question = (sqlReader.GetInt32("initQuestion") != -1 ? QuestionsList.First (x => x.QuestionID == sqlReader.GetInt32("initQuestion")) : null), }; foreach (var itemToSell in sqlReader.GetString("SellingList").Split(',')) { if (itemToSell == "") { continue; } npcModel.SellingList.Add(int.Parse(itemToSell)); } var infosMap = sqlReader.GetString("Mapinfos").Split(';'); var npc = new NPCMap(npcModel) { MapID = int.Parse(infosMap[0]), MapCell = int.Parse(infosMap[1]), Dir = int.Parse(infosMap[2]), MustMove = bool.Parse(infosMap[3]), }; if (MapsRequests.MapsList.Any(x => x.Model.ID == npc.MapID)) { var map = MapsRequests.MapsList.First(x => x.Model.ID == npc.MapID); npc.ID = MapsRequests.MapsList.First(x => x.Model.ID == npc.MapID).NextNpcID(); map.Npcs.Add(npc); npc.StartMove(); } NpcsList.Add(npc); } sqlReader.Close(); Utilities.Loggers.Status.Write(string.Format("Loaded '{0}' npcs from the database !", NpcsList.Count)); }
public static void LoadNPCs() { lock (DatabaseHandler.ConnectionLocker) { var sqlText = "SELECT * FROM datas_npcs"; var sqlCommand = new MySqlCommand(sqlText, DatabaseHandler.Connection); var sqlReader = sqlCommand.ExecuteReader(); while (sqlReader.Read()) { var npcModel = new Models.NPC.NoPlayerCharacterModel(); { npcModel.ID = sqlReader.GetInt32("ID"); npcModel.GfxID = sqlReader.GetInt32("Gfx"); npcModel.Size = sqlReader.GetInt32("Size"); npcModel.Sex = sqlReader.GetInt32("Sex"); npcModel.Color = sqlReader.GetInt32("Color1"); npcModel.Color2 = sqlReader.GetInt32("Color2"); npcModel.Color3 = sqlReader.GetInt32("Color3"); if(sqlReader.GetInt32("initQuestion") != -1) npcModel.Question = QuestionsList.First(x => x.QuestionID == sqlReader.GetInt32("initQuestion")); npcModel.Name = sqlReader.GetString("Name"); npcModel.Items = sqlReader.GetString("Items"); } foreach (var itemToSell in sqlReader.GetString("SellingList").Split(',')) { if (itemToSell == "") continue; lock(npcModel.SellingList) npcModel.SellingList.Add(int.Parse(itemToSell)); } var npc = new Realm.Characters.NPC.NPCMap(npcModel); { var infosMap = sqlReader.GetString("Mapinfos").Split(';'); npc.MapID = int.Parse(infosMap[0]); npc.MapCell = int.Parse(infosMap[1]); npc.Dir = int.Parse(infosMap[2]); npc.mustMove = bool.Parse(infosMap[3]); if (MapsCache.MapsList.Any(x => x.GetModel.ID == npc.MapID)) { var map = MapsCache.MapsList.First(x => x.GetModel.ID == npc.MapID); npc.ID = MapsCache.MapsList.First(x => x.GetModel.ID == npc.MapID).NextNpcID(); lock(map.Npcs) map.Npcs.Add(npc); npc.StartMove(); } } lock(NpcsList) NpcsList.Add(npc); } sqlReader.Close(); } Utilities.Loggers.StatusLogger.Write(string.Format("Loaded @'{0}' npcs@ from the database !", NpcsList.Count)); }