// ==UserScript== // @name HWM_AutoReportMGTasks // @namespace Небылица // @version 1.24 // @description Автосдача заданий ГН // @author Небылица // @include /^https{0,1}:\/\/((www|qrator)\.heroeswm\.ru|178\.248\.235\.15)\/(map|mercenary_guild|home)\.php/ // @grant GM_setValue // @grant GM_getValue // @downloadURL none // ==/UserScript== (function() { "use strict"; // Вспомогательные функции function sendGETRequest(url, callback){ // Универсалка для отправки GET-запроса к url с исполнением функции callback при получении ответа var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onreadystatechange = function(){ if (xhr.readyState === 4 && xhr.status === 200){ if (typeof callback === "function"){ callback.apply(xhr); } } }; xhr.send(); } // // Код для страницы карты if (location.pathname.indexOf("map.php") !== -1){ // проверяем наличие активного задания ГН и нахождение в секторе гильдии if (GM_getValue("taskActive") && document.querySelector("img[src*='merc.gif'][title='Гильдия Наемников']") !== null){ // запрашиваем страницу ГН sendGETRequest("mercenary_guild.php", function(){ // получаем ответ и проверяем, было ли задание сдано var response = this.responseText; if (response.indexOf("Статус") !== -1 && response.indexOf("минут") === -1){ // убираем флаг активного задания GM_setValue("taskActive", false); // запоминаем текст награды и переходим в ГН var rewardArr = response.match(/

([\S\s]+?)/); if (rewardArr !== null){ GM_setValue("reward", rewardArr[1]); } window.open("mercenary_guild.php", "_self"); } }); } } // Код для страницы ГН if (location.pathname.indexOf("mercenary_guild.php") !== -1){ // если имеется сохранённый текст только что сданного задания, то вставляем его в страницу и убираем прежнее значение if (GM_getValue("reward") !== "-1"){ var tdRowspan2 = document.querySelector("td[rowspan='2']"); tdRowspan2.innerHTML = tdRowspan2.innerHTML.split("Проигравшая\sсторона:<\/b><\/font>(.+?)<\/font>/)[1].indexOf("разбойники") !== -1){ // сдаём груз и забываем текущее задание GM_setValue("ifRogues", false); window.open("map.php?action=accept_merc_task3", "_self"); } }); } } })();