HWM_DuelAlert

Смена цвета значка ГТ, если в текущей заявке есть минимум 1 дуэлянт

目前为 2017-11-27 提交的版本。查看 最新版本

// ==UserScript==
// @name         HWM_DuelAlert
// @namespace    Небылица
// @version      1.14
// @description  Смена цвета значка ГТ, если в текущей заявке есть минимум 1 дуэлянт
// @author       Небылица
// @include      /^https{0,1}:\/\/((www|qrator)\.heroeswm\.ru|178\.248\.235\.15)\/.+/
// @exclude      /^https{0,1}:\/\/((www|qrator)\.heroeswm\.ru|178\.248\.235\.15)\/(login|war|cgame|frames|chat|chatonline|ch_box|chat_line|ticker|chatpost)\.php.*/
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

(function() {
    'use strict';

    var icon = document.querySelector("img[src*=\"team_ev_top.gif\"][title=\"Гильдия Тактиков\"]");
    var currentDate = new Date();
    var currentMoment = Date.now()-currentDate.getTimezoneOffset()*60000;

    if (icon !== null && (currentDate.getUTCMinutes() % 10) !== 9){ // проверка по времени (запускать ли вообще скрипт)
        // если нет валидной по времени информации, что дуэлянт есть, то запрашиваем данные
        if (!(GM_getValue("duelistsPresent") && (currentMoment-GM_getValue("checkMoment")) < 540000)){
            GM_setValue("duelistsPresent", false);

            // если находимся не на странице ГТ, то запрашиваем её код с сервера
            if (location.pathname.indexOf("pvp_guild.php") === -1){
                var xhr = new XMLHttpRequest();
                var response;

                xhr.open('GET', "pvp_guild.php", true);
                xhr.send();
                xhr.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        response = xhr.responseText;

                        var duelistsNumber;
                        // считаем кол-во дуэлянтов (кроме себя в случае нахождения в заявке)
                        if (response.match(/<\/b>\s([\d]+?)<br>/) !== null){
                            duelistsNumber = parseInt(response.match(/<\/b>\s([\d]+?)<br>/)[1]) - 1; // для наблюдения изнутри заявки
                        } else if (response.match(/\s\(([\d]+?)\)/) !== null){
                            duelistsNumber = parseInt(response.match(/\s\(([\d]+?)\)/)[1]); // для наблюдения извне заявки
                        } else {duelistsNumber = -1;}

                        // если есть другие дуэлянты, то меняем значок и запоминаем результат
                        if (duelistsNumber > 0){
                            icon.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAA6ElEQVR42n2RvwrCMBDG+wIKahAdVEQEqbYIogguIqYgIuIg2Hcq9Gk6d1Bwyea/tbtL3uDzmqagxfbgI1y43+XynWH8CXmycZ0zBJNqck4rMIpC7q3iAm9UhjcoweuRuqQ25a0vUf7b8WirC2ExdQbdZATRS3K5zLwoDxYiZwjXWcPlv4qmJuQiC9DM0cpUAF43vC9n4HGDuyZgTMAsC+wIWJqqI54auGvAImCSA/hbrqAYiIt9zouB+JP+hifFDoeosxxA+y76DGGnhqBZQdioQTS1S7OcvQhT29rStrZZ8QLTSPfwLz6syKeScQa/4wAAAABJRU5ErkJggg==";
                            GM_setValue("duelistsPresent", true);
                            GM_setValue("checkMoment", currentMoment);
                        }
                    }
                };
            } else { // если находимся на странице ГТ, то получаем её код сразу в браузере
                var response = document.documentElement.outerHTML;

                var duelistsNumber;
                // считаем кол-во дуэлянтов (кроме себя в случае нахождения в заявке)
                if (response.match(/<\/b>\s([\d]+?)<br>/) !== null){
                    duelistsNumber = parseInt(response.match(/<\/b>\s([\d]+?)<br>/)[1]) - 1; // для наблюдения изнутри заявки
                } else if (response.match(/\s\(([\d]+?)\)/) !== null){
                    duelistsNumber = parseInt(response.match(/\s\(([\d]+?)\)/)[1]); // для наблюдения извне заявки
                } else {duelistsNumber = -1;}

                // если есть другие дуэлянты, то меняем значок и запоминаем результат
                if (duelistsNumber > 0){
                    icon.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAA6ElEQVR42n2RvwrCMBDG+wIKahAdVEQEqbYIogguIqYgIuIg2Hcq9Gk6d1Bwyea/tbtL3uDzmqagxfbgI1y43+XynWH8CXmycZ0zBJNqck4rMIpC7q3iAm9UhjcoweuRuqQ25a0vUf7b8WirC2ExdQbdZATRS3K5zLwoDxYiZwjXWcPlv4qmJuQiC9DM0cpUAF43vC9n4HGDuyZgTMAsC+wIWJqqI54auGvAImCSA/hbrqAYiIt9zouB+JP+hifFDoeosxxA+y76DGGnhqBZQdioQTS1S7OcvQhT29rStrZZ8QLTSPfwLz6syKeScQa/4wAAAABJRU5ErkJggg==";
                    GM_setValue("duelistsPresent", true);
                    GM_setValue("checkMoment", currentMoment);
                }
            }
        } else { // если есть валидная по времени информация, что дуэлянт есть, то меняем значок сразу
            icon.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAA6ElEQVR42n2RvwrCMBDG+wIKahAdVEQEqbYIogguIqYgIuIg2Hcq9Gk6d1Bwyea/tbtL3uDzmqagxfbgI1y43+XynWH8CXmycZ0zBJNqck4rMIpC7q3iAm9UhjcoweuRuqQ25a0vUf7b8WirC2ExdQbdZATRS3K5zLwoDxYiZwjXWcPlv4qmJuQiC9DM0cpUAF43vC9n4HGDuyZgTMAsC+wIWJqqI54auGvAImCSA/hbrqAYiIt9zouB+JP+hifFDoeosxxA+y76DGGnhqBZQdioQTS1S7OcvQhT29rStrZZ8QLTSPfwLz6syKeScQa/4wAAAABJRU5ErkJggg==";
        }
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址