예제 #1
0
        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));
        }
예제 #2
0
        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");
        }