Beispiel #1
0
        /// <summary>
        /// Сохраняет и обновляет общий опыт за сессию.
        /// </summary>
        /// <param name="Type">Тип операции.</param>
        /// <param name="Result">Исходный HTML-код.</param>
        /// <param name="BotID">Индентификатор бота (вкладки).</param>
        /// <param name="Form">Ссылка на экземпляр класса <see cref="Form1"/>.</param>
        private static void SaveExpirience(string Type, string Result, int BotID, Form1 Form)
        {
            // Параметры для парсинга
            string param = "";

            // Получаем ссылку на нижний статус лог
            ToolStrip toolstript_session = HelpMethod.findControl.FindToolStrip("toolstrip_bottom_log", BotID, Form);

            // Переменная для хранения общего опыта
            int exp = (int)toolstript_session.Items[4].Tag;

            // Ставим параметры для парсинга по типу
            switch (Type)
            {
            case "Travel":
                param = @"expirience.png\"" />(.*?)<br />";
                break;

            case "Glade":
                param = @"expirience.png\"" />(.*?)</span>";
                break;

            case "Tasks":
                param = @"expirience.png\"" />(.*?)</span>";
                break;

            case "Food":
                param = @"expirience.png\"" class=\""ml2\"">(.*?)</div>";
                break;

            case "Play":
                param = @"expirience.png\"" class=\""ml2\"">(.*?)</div>";
                break;

            case "Showing":
                param = @"expirience.png\"" />(.*?)</td>";
                break;
            }

            // Парсим опыт
            string expirience = new Regex(param).Match(Result).Groups[1].Value.Replace("+", "");

            // Если тип Travel, выполняем ещё один парсинг
            if (Type == "Travel")
            {
                if (expirience.Contains("heart"))
                {
                    expirience = new Regex(@"(.*?),").Match(expirience).Groups[1].Value;
                }
            }

            // Прибавляем опыт
            if (expirience.Length > 0)
            {
                exp += Convert.ToInt32(expirience);
            }

            // Сохраняем общее число и выводим его
            toolstript_session.Items[4].Tag         = exp;
            toolstript_session.Items[4].Text        = $"{HelpMethod.StringNumberFormat(exp.ToString())} собрано";
            toolstript_session.Items[4].ToolTipText = $"{HelpMethod.StringNumberFormat(exp.ToString(), false)} собрано";
        }
Beispiel #2
0
        /// <summary>
        /// Запускает задачу, которая обновляет основую статистику питомца, а так же за сессию.
        /// </summary>
        /// <param name="BotID">Индентификатор бота (вкладки).</param>
        /// <param name="HttpClient">Ссылка на экземпляр класса <see cref="HttpClient"/>.</param>
        /// <param name="Form">Ссылка на экземпляр класса <see cref="Form1"/>.</param>
        /// <param name="Setting">Ссылка на экземпляр класса <see cref="IniFiles"/>.</param>
        /// <returns></returns>
        public static async Task Statistics(int BotID, HttpClient HttpClient, Form1 Form, IniFiles Setting)
        {
            // Информируем в статус лог
            HelpMethod.StatusLog("Обновление статистики...", BotID, Form, Properties.Resources.update);

            // Делаем запрос на профиль
            string result = await HelpMethod.GET("/profile", HttpClient);

            // Парсим основную статистику
            string beauty_string   = new Regex(@"Красота: (.*?)</div>").Match(result).Groups[1].Value;
            string coin_string     = new Regex(@"Монеты: (.*?)</div>").Match(result).Groups[1].Value;
            string heart_string    = new Regex(@"Сердечки: (.*?)</div>").Match(result).Groups[1].Value;
            string level_string    = new Regex("height=\"16\" width=\"16\" alt=\"\"/>([0-9].*?)</td>").Match(result).Groups[1].Value;
            string avatar_string   = new Regex(@"avatar([0-9][0-9]?).png").Match(result).Groups[1].Value;
            string isVip_string    = new Regex(@"category(.*?)effect").Match(result).Groups[1].Value;
            string nickname_string = new Regex("<a class=\"darkgreen_link\" href=\"/avatars\">(.*?)</a>").Match(result).Groups[1].Value;

            // Получаем ссылку на нижний статус лог
            ToolStrip toolstript_session = HelpMethod.findControl.FindToolStrip("toolstrip_bottom_log", BotID, Form);

            // Получаем сохраненный массив значений
            string[] beauty = (string[])toolstript_session.Items[1].Tag;
            string[] heart  = (string[])toolstript_session.Items[2].Tag;
            string[] coin   = (string[])toolstript_session.Items[3].Tag;

            if (beauty_string.Length > 0)
            {
                // Обновляем текущее количество красоты
                HelpMethod.findControl.FindToolStrip("toolstrip_top_log", BotID, Form).Items[1].Text = $"Красота: {HelpMethod.StringNumberFormat(beauty_string, false)}";

                // Высчитываем красоту
                if (!Convert.ToBoolean(beauty[2]))
                {
                    beauty[0] = beauty_string;
                    beauty[2] = true.ToString().ToLower();
                }
                else
                {
                    beauty[1] = (Convert.ToInt32(beauty_string) - Convert.ToInt32(beauty[0])).ToString();
                }
            }

            if (coin_string.Length > 0)
            {
                // Обновляем текущее количество монет
                HelpMethod.findControl.FindToolStrip("toolstrip_top_log", BotID, Form).Items[2].Text = $"Монет: {HelpMethod.StringNumberFormat(coin_string, false)}";

                // Высчитываем монеты
                if (!Convert.ToBoolean(coin[2]))
                {
                    coin[0] = coin_string;
                    coin[2] = true.ToString().ToLower();
                }
                else
                {
                    coin[1] = (Convert.ToInt32(coin_string) - Convert.ToInt32(coin[0])).ToString();
                }
            }

            if (heart_string.Length > 0)
            {
                // Обновляем текущее количество сердечек
                ToolStrip heart_current = HelpMethod.findControl.FindToolStrip("toolstrip_top_log", BotID, Form);

                heart_current.Items[0].Text        = $"Сердечек: {HelpMethod.StringNumberFormat(heart_string)}";
                heart_current.Items[0].ToolTipText = $"Сердечек: {HelpMethod.StringNumberFormat(heart_string, false)}";

                // Высчитываем сердечки
                if (!Convert.ToBoolean(heart[2]))
                {
                    heart[0] = heart_string;
                    heart[2] = true.ToString().ToLower();
                }
                else
                {
                    heart[1] = (Convert.ToInt32(heart_string) - Convert.ToInt32(heart[0])).ToString();
                }
            }

            // Проверка на VIP Аккаунт
            HelpMethod.findControl.FindLabel("label_isVip", BotID, Form).Tag = isVip_string.Length > 0;

            // Обновляем в сохранение
            toolstript_session.Items[1].Tag = beauty;
            toolstript_session.Items[2].Tag = heart;
            toolstript_session.Items[3].Tag = coin;

            // Обновляем текст
            toolstript_session.Items[1].Text        = $"{HelpMethod.StringNumberFormat(beauty[1], false)} собрано";
            toolstript_session.Items[2].Text        = $"{HelpMethod.StringNumberFormat(heart[1])} собрано";
            toolstript_session.Items[2].ToolTipText = $"{HelpMethod.StringNumberFormat(heart[1], false)} собрано";
            toolstript_session.Items[3].Text        = $"{HelpMethod.StringNumberFormat(coin[1], false)} собрано";


            // Обновляем аватар
            Form.Invoke((MethodInvoker) delegate
            {
                TabPage tabPage = HelpMethod.findControl.FindTabPage("tabPage", BotID, Form);

                tabPage.Text       = $"{nickname_string} [ {level_string} ]";
                tabPage.ImageIndex = Form.imageList1.Images.IndexOfKey($"avatar{avatar_string}");

                HelpMethod.findControl.FindLabel("label_nickname", BotID, Form).Tag = nickname_string;

                Setting.Write($"PETS{BotID}", "AVATAR", $"avatar{avatar_string}");
                Setting.Write($"PETS{BotID}", "LEVEL", $"{level_string}");
            });
        }