Greasy Fork is available in English.
Показ последнего задания такого типа
// ==UserScript== // @name GN_ShowLastTask // @namespace Gradient // @description Показ последнего задания такого типа // @include /^https{0,1}:\/\/(www\.heroeswm\.ru|178\.248\.235\.15)\/mercenary_guild\.php/ // @version 1.0.4 // ==/UserScript== "use strict"; //----------------------------------------------------------------------------// var script_name = 'GN_ShowLastTask'; // Enter your script name here //----------------------------------------------------------------------------// (function(){ try{ // wrapper start //----------------------------------------------------------------------------// // UnifiedLibrary 1.7.0 start //----------------------------------------------------------------------------// //----------------------------------------------------------------------------// // SysUtils //----------------------------------------------------------------------------// var GN_SysUtils = new SysUtils(script_name); var SU = GN_SysUtils; //----------------------------------------------------------------------------// function SysUtils(name){ // wrapper start //----------------------------------------------------------------------------// this.show_error = function(error_string, use_alert){ if(use_alert) alert(error_string); throw new Error(error_string); }; if(arguments.length != 1) this.show_error('Wrong SysUtils arguments'); if(!arguments[0]) this.show_error('Empty SysUtils argument'); //----------------------------------------------------------------------------// this.load_value = function(value, def){ var div = document.getElementById('GN_GM_Handler'); div.setAttribute('desc', value); div.setAttribute('operation', 'load'); div.click(); if(div.getAttribute('state') != 'complete') this.show_error('Ошибка при загрузке значения'); return (div.getAttribute('is_null') == 'true' ? def : div.getAttribute('value')); }; //----------------------------------------------------------------------------// var current_id = null; this.current_id = function(){ return current_id; }; //----------------------------------------------------------------------------// function check_mandatory_scripts(alerter){ var persistent_storage_sign = document.getElementById('GN_GM_Handler'); var common_values_sign = document.getElementById('GN_CommonValuesSign'); var alert_sign = document.getElementById('GN_AlertSign'); if(!alert_sign){ alert_sign = document.createElement('div'); alert_sign.id = 'GN_AlertSign'; alert_sign.setAttribute('alerted', 'false'); document.body.appendChild(alert_sign); } var alerted = alert_sign.getAttribute('alerted') != 'false'; if(!persistent_storage_sign){ alert_sign.setAttribute('alerted', 'true'); alerter('Скрипт ' + name + ' требует для своей работы скрипт управления данными (GN_PersistentStorage), который должен стоять первым в порядке выполнения скриптов.\n' + 'Подробнее здесь: "https://greasyfork.org/ru/scripts/14049-Как-устанавливать-скрипты-читать-здесь"', !alerted); } if(!common_values_sign){ alert_sign.setAttribute('alerted', 'true'); alerter('Скрипт ' + name + ' требует для своей работы скрипт, хранящий данные (GN_CommonValuesFiller), который должен стоять вторым в порядке выполнения скриптов.\n' + 'Подробнее здесь: "https://greasyfork.org/ru/scripts/14049-Как-устанавливать-скрипты-читать-здесь"', !alerted); } } this.check_login = function(){ var re = /.*?pl_id=(\d+)[^\d]*?/gmi; var matches = re.exec(document.cookie.toString()); if(matches){ current_id = +matches[1]; check_mandatory_scripts(this.show_error); } }; //----------------------------------------------------------------------------// this.check_login(); //----------------------------------------------------------------------------// } // wrapper end //----------------------------------------------------------------------------// // UnifiedLibrary end //----------------------------------------------------------------------------// var current_user_id = SU.current_id(); var completed_tasks = JSON.parse(SU.load_value('GN_ShowLastTask_Tasks' + current_user_id, '[]')); var merc_table = document.querySelector('table[width="970"] table.wbwhite td[valign="top"][align="left"]'); var b = merc_table.querySelectorAll('b'); var tasks = []; for(var i = 0; i < b.length; ++i) if(/.+?\s{\d+}/.test(b[i].innerHTML)) tasks.push(b[i]); for(var i = 0; i < tasks.length; ++i){ var task = tasks[i]; var str = /(.+)\s{\d+}/.exec(task.innerHTML)[1]; for(var j = 0; j < completed_tasks.length; ++j){ var c_task = completed_tasks[j]; if(c_task.str == str){ var a = document.createElement('a'); a.href = '/war.php?lt=-1&warid=' + c_task.battle; a.textContent = ' (пред. бой, уровень ' + c_task.lvl + ')'; task.parentNode.insertBefore(a, task.nextSibling); } } } //----------------------------------------------------------------------------// } catch(e){ alert('Ошибка в скрипте ' + script_name + ', обратитесь к разработчику:\n' + e); throw e; }}()); // wrapper end //----------------------------------------------------------------------------//