Greasy Fork

Greasy Fork is available in English.

HWM_DuelAlert

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

当前为 2017-11-27 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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==";
        }
    }
})();