public static void LoadCollectors() { lock (DatabaseProvider.Locker) { var sqlText = "SELECT * FROM collectors"; var sqlCommand = new MySqlCommand(sqlText, DatabaseProvider.Connection); var sqlResult = sqlCommand.ExecuteReader(); while (sqlResult.Read()) { var mappos = sqlResult.GetString("Mappos").Split(';'); var map = MapsRequests.MapsList.First(x => x.Model.ID == int.Parse(mappos[0])); var character = SunDofus.World.Entities.Requests.CharactersRequests.CharactersList.First(x => x.ID == sqlResult.GetInt32("OwnerID")); var collector = new Game.Guilds.GuildCollector(map, character, sqlResult.GetInt32("ID")) { IsNewCollector = false }; collector.Name[0] = int.Parse(sqlResult.GetString("Name").Split(';')[0]); collector.Name[1] = int.Parse(sqlResult.GetString("Name").Split(';')[1]); collector.Map = map; collector.Cell = int.Parse(mappos[1]); collector.Dir = int.Parse(mappos[2]); if (character.Guild == null || character.Guild.ID != sqlResult.GetInt32("GuildID")) collector.Guild = GuildsRequest.GuildsList.First(x => x.ID == sqlResult.GetInt32("GuildID")); collector.Guild.Collectors.Add(collector); CollectorsList.Add(collector); } sqlResult.Close(); } Utilities.Loggers.Status.Write(string.Format("Loaded '{0}' collectors from the database !", CollectorsList.Count)); }
private void LetCollectorGuild(string datas) { var map = Client.Player.GetMap(); if (Client.Player.Guild == null || map == null) { Client.Send("BN"); return; } var guild = Client.Player.Guild; if (!guild.Members.First(x => x.Character == Client.Player).CanHireTaxCollector) { Client.Send("Im1101"); return; } if (guild.CollectorMax <= guild.Collectors.Count) { Client.Player.NClient.SendMessage("Vous avez trop de percepteurs !"); return; } if (map.Collector != null) { Client.Player.NClient.SendMessage("Un percepteur est déjà présent sur la map !"); return; } var ID = Client.Player.GetMap().NextNpcID(); var collector = new Game.Guilds.GuildCollector(map, Client.Player, ID) { IsNewCollector = true }; guild.Collectors.Add(collector); Entities.Requests.CollectorsRequests.CollectorsList.Add(collector); Client.Player.Guild.SendMessage(string.Format("Un percepteur vient d'être posé par <b>{0}</b> en [{1},{2}] !", Client.Player.Name, Client.Player.GetMap().Model.PosX, Client.Player.GetMap().Model.PosY)); GetGuildInfos("B"); }