// ==UserScript== // @name HWM_AutoReportMGTasks // @namespace Небылица // @version 1.31 // @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, mimeType, callback){ // Универсалка для отправки GET-запроса к url с выставлением заданного MIME Type и исполнением функции callback при получении ответа var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); if (typeof mimeType === "string"){ xhr.overrideMimeType(mimeType); } if (typeof callback === "function"){ xhr.onreadystatechange = function(){ if (xhr.readyState === 4 && xhr.status === 200){ callback.apply(xhr); } }; } xhr.send(); } function reportTask(){ // Сдача задания с проверкой успешности и переходом на страницу гильдии для показа награды // отправляем запрос к странице ГН sendGETRequest("mercenary_guild.php", "text/html; charset=windows-1251", function(){ // получаем ответ и проверяем, было ли задание сдано var response = this.responseText; if (response.indexOf("мин.") !== -1){ // запоминаем текст награды и переходим в ГН var rewardArr = response.match(/

([\S\s]+?)/); if (rewardArr !== null){ GM_setValue("reward", rewardArr[1]); } window.open("mercenary_guild.php", "_self"); } }); } // // Код для страницы карты if (location.pathname.indexOf("map.php") !== -1){ // проверяем наличие активного задания ГН и нахождение в секторе гильдии if (GM_getValue("taskActive") && document.querySelector("img[src*='merc.gif'][title='Гильдия Наемников']") !== null){ // запускаем функцию сдачи задания reportTask(); } } // Код для страницы ГН if (location.pathname.indexOf("mercenary_guild.php") !== -1){ var documentInnerHTHL = document.documentElement.innerHTML; // если имеется сохранённый текст награды за только что сданное задание и ещё идёт отсчёт времени до нового, то вставляем текст в страницу if (GM_getValue("reward") !== "-1"){ if (documentInnerHTHL.indexOf("мин.") !== -1){ var tdRowspan2 = document.querySelector("td[rowspan='2']"); tdRowspan2.innerHTML = tdRowspan2.innerHTML.split("



" + GM_getValue("reward") + "

<Отдать груз.<") !== -1){ // сдаём груз window.open("map.php?action=accept_merc_task3", "_self"); } }); } else if (GM_getValue("ifSameLocale")){ // проверяем, не было ли задание дано в сектор с отделением ГН // запускаем функцию сдачи задания reportTask(); } } } })();