您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Помощник ГО. (2016.06.21)
当前为
// ==UserScript== // @name hwm_GO_exp // @description Помощник ГО. (2016.06.21) // @author ElMarado (Based on script Mantens) // @version 3.65 // @include http://178.248.235.15/group_wars.php* // @include http://178.248.235.15/plstats_hunters.php* // @include http://178.248.235.15/home.php* // @include http://178.248.235.15/map.php* // @include http://*.heroeswm.*/group_wars.php* // @include http://*.heroeswm.*/plstats_hunters.php* // @include http://*.heroeswm.*/home.php* // @include http://*.heroeswm.*/map.php* // @grant GM_getValue // @grant GM_setValue // @icon https://app.box.com/representation/file_version_34029013909/image_2048/1.png?shared_name=hz97b2qwo2ycc5ospb7ccffn13w3ehc4 // @namespace https://greasyfork.org/users/14188 // ==/UserScript== (function () { var max_exp = 0; var version = "3.65 (2016.06.21)"; var url_cur = location.href; var url_home = "home.php"; var url_map = "map.php"; var url_war = "group_wars.php"; var url_1 = "www.heroeswm.ru"; var url_2 = "178.248.235.15"; var url_3 = "qrator.heroeswm.ru"; var url_1_home = "www.heroeswm.ru/home.php"; var url_2_home = "178.248.235.15/home.php"; var url_3_home = "qrator.heroeswm.ru/home.php"; var str_url = "https://greasyfork.org/ru/scripts/11692-hwm-go-exp"; var all_tables = document.getElementsByTagName('table'); var short_button = GM_getValue("short_button" , false); var enable_Exp_Half = GM_getValue("enable_Exp_Half" , true); var enable_5_procent = GM_getValue("enable_5_procent" , false); var only_Gud_ExpUm = GM_getValue("only_Gud_ExpUm", true); var alarm_Green_Hunt = GM_getValue("alarm_Green_Hunt", false); var show_archive = GM_getValue("show_archive", true); var grin_Pis = GM_getValue("grin_Pis", false); var show_HP = GM_getValue("show_HP", false); var show_registr = GM_getValue("show_registr", false); if(url_cur.indexOf(url_1) != -1) { var pl_level = GM_getValue("hunt_exp_pl_1_level", "none"); //ур.героя var koef = GM_getValue("koef_dop_exp_1", 1.0); //коэф перекача www var limit_exp = GM_getValue("limit_exp_1", 0); //С какого порога опыта пропускать охоты var google_str = GM_getValue("google_str_1", ""); //строка фильтра var skip_mode = GM_getValue("skip_mode_1", true); //Пропускать по опыту или по имени } if(url_cur.indexOf(url_2) != -1) { var pl_level = GM_getValue("hunt_exp_pl_2_level", "none"); var koef = GM_getValue("koef_dop_exp_2", 1.0); var limit_exp = GM_getValue("limit_exp_2", 0); var google_str = GM_getValue("google_str_2", ""); var skip_mode = GM_getValue("skip_mode_2", true); } if(url_cur.indexOf(url_3) != -1) { var pl_level = GM_getValue("hunt_exp_pl_3_level", "none"); var koef = GM_getValue("koef_dop_exp_3", 1.0); var limit_exp = GM_getValue("limit_exp_3", 0); var google_str = GM_getValue("google_str_3", ""); var skip_mode = GM_getValue("skip_mode_3", true); } //******************** var str_pl_lvl = ustring("Боевой уровень: "); var str_kol = ustring('шт.'); var str_sum_exp = ustring("За них дадут <B> STR1dopSTR </B> опыта. Потом их будет ~STR6 шт."); var str_kill_now = ustring("Убей сейчас! На STR9 уровне за них дадут <B> STR10 </B> опыта."); var str_hlp_exp = ustring("За убийство с помощником (50/50) Вам дадут <B> STR2 </B> опыта. В следующий раз предложат ~STR7 шт."); var str_min_kol = ustring("Для Min (~5%) прироста надо убить не более STR3 шт (STR4 опыта). В следующий раз предложат ~STR8 шт."); var str_exp_helper = ustring("Опыт помощника: [70..133]*Уровень*Набранная умка*[1.1-Зелье]."); var str_green_hunt = ustring("Выгодная охота"); var str_exp = ustring(" опыта."); var str_settings_1 = ustring(" Настройки ГО "); var str_settings_2 = ustring(" ГО "); var str_start = ustring("Скрипт: Помощник ГО. Версия: "); var str_show_1 = ustring("Отображать опыт с помощником, если убьёте по 50%"); var str_show_2 = ustring("Отображать сколько убить мобов для минимального прироста"); var str_show_3 = ustring("Отображать формулу опыта помощника (при выгодных охотах)"); var str_hilight = ustring("Подсвечивать охоты с выгодной экспоумкой (на странице групповых боёв)"); var str_alarm_hunt = ustring("Предупреждать если есть незаполненная выгодная охота (в групповых боях)"); var str_show_archive = ustring("Отображать ссылки на рекорды из архива."); var str_Grin_Pis = ustring("Включить Грин Пис (скрывать предложения охот)"); var str_show_HP = ustring("Отображать суммарное HP мобов."); var str_short_button = ustring("Сделать кнопку настроек короткую."); var str_koef_0 = ustring("Текущий коэффициент перекача: "); var str_koef_1 = ustring("Введите новый коэффициент перекача от 1.0 до 9.9999: "); var str_skip_select_1 = ustring("Пропускать мобов: "); var str_skip_select_2 = ustring("по опыту (1)"); var str_skip_select_3 = ustring("по имени (2)"); var str_skip_hunt = ustring("1. Пропускать охоты с опытом больше чем:"); var str_title_1 = ustring("Если значение 0, то опыт не учитывается."); var str_skip_hunt_txt = ustring("2. Пропускать мобов не имеющих в имени сочетания букв:"); var str_registr = ustring("Учитывать регистр"); var str_title_2 = ustring("Всё кроме русских букв, цифр, пробелов и '-' удаляется. Если пусто - никого не пропускает."); var str_info = ustring("После нажатия во всплывающей подсказке будет список поиска мобов."); var str_info2 = ustring("Не пропускать следующих существ:") var str_no_skip = ustring("Вы уже в заявке!"); var str_skip_enable = ustring("Пройти мимо"); var str_arh_record = ustring("Рекорд из архива (до 01.03.2015)"); var str_need_skip = ustring("ГO. Охоты можно пропустить."); var str_auto_skip = ustring("ГO. Охоту пропускаю."); var str_hunt_found = ustring("ГO. Охота найдена."); var str_no_found_in_base= ustring("Не найдено в базе существ. Возможно опечатались или стоит не тот язык."); var str_show_archive_r = ustring("Архив рекордов до 01.03.2015"); var str_hide_archive_r = ustring("Текущие рекорды"); var str_update = ustring("Проверить обновление скрипта."); var str_autor = ustring("Сообщить автору о найденной ошибке."); var str_url_aut = ustring("/sms-create.php?mailto=ElMarado&subject=Скрипт: Помощник ГО v")+version+ustring(". Найдена ошибка:"); //************ Начало фрагментов кода от (C) Demin с моими вставками и комментариями ********************************** function showSettings() { if (url_cur.indexOf('map.php') == -1) return; var x1= document.querySelector("td >a[href*='ecostat.php']"); if (x1 == null) return; x1 = x1.parentNode; var str_settings, width_but, left_pos; if (short_button==0) { str_settings = str_settings_1; width_but = 80; left_pos = 393;} else { str_settings = str_settings_2; width_but = 20; left_pos = 468;} var d = document.createElement('div'); d.setAttribute('style', 'position: absolute; margin: -5px 0px 0px '+left_pos+'px; text-align: center;');//Положение кнопки, для вызова настроек d.innerHTML = '<style> .hwm_go * {font-size: 12px; color: #FFFF00;} .cell_go {white-space: nowrap; height: 18px; background: #4190FF; font-weight: bold;} </style>' + '<table class="hwm_go" width='+width_but+'px> <tr height=20>' + // Размер кнопки и фон, для вызова настроек '<td class="cell_go" style="cursor:pointer" id="set_go"><font style="font-size:12px;">'+str_settings+'</font></td>' + '</tr> </table>'; x1.insertBefore(d,x1.firstChild); //Вставка куска addEvent( $("set_go"), "click", settings_go ); //Привязка к куску на клик вызов функции //************ function settings_go_close() { var bg = $('bgOverlay'); var bgc = $('bgCenter'); bg.parentNode.removeChild(bg); bgc.parentNode.removeChild(bgc); } function settings_go() { var bg = $('bgOverlay'); var bgc = $('bgCenter'); var bg_height = ScrollHeight(); if ( !bg ) { bg = document.createElement('div'); document.body.appendChild( bg ); bgc = document.createElement('div'); document.body.appendChild( bgc ); } bg.id = 'bgOverlay'; bg.style.position = 'absolute'; bg.style.left = '0px'; bg.style.width = '100%'; bg.style.background = "#000000"; bg.style.opacity = "0.5"; bg.style.zIndex = "1100"; bgc.id = 'bgCenter'; bgc.style.position = 'absolute'; bgc.style.left = ( ( ClientWidth() - 580 ) / 2 ) + 'px'; bgc.style.width = '600px'; bgc.style.background = "#F6F3EA"; bgc.style.zIndex = "1105"; addEvent(bg, "click", settings_go_close); //форма и внешний вид окно настроек bgc.innerHTML = '<div style="border:1px solid #abc;padding:5px;margin:2px;"><div style="float:right;border:1px solid #abc;width:15px;height:15px;text-align:center;cursor:pointer;" id="bt_close_tr" title="Close">x</div><table>'+ //заголовок окна настроек '<tr><td colspan=3><b>'+str_start+'<font style="color:#0070FF;">'+version+'</font></b><hr/></td></tr>' + //Опыт с помощником 50/50 '<tr><td colspan=3><label><input type=checkbox '+(enable_Exp_Half=="1"?"checked":"")+' id=set_enable_Exp_Half title=""> '+str_show_1+'</label><br></td></tr>'+ //кол-во для мин.прироста '<tr><td colspan=3><label><input type=checkbox '+(enable_5_procent=="1"?"checked":"")+' id=set_enable_5_procent title=""> '+str_show_2+'</label><br></td></tr>'+ //подсвечивать выгодные охоты '<tr><td colspan=3><label><input type=checkbox '+(only_Gud_ExpUm=="1"?"checked":"")+' id=set_only_Gud_ExpUm title=""> '+str_hilight+'</label><br></td></tr>'+ //Предупреждать если есть незапоненная выгодная охота. '<tr><td colspan=3><label><input type=checkbox '+(alarm_Green_Hunt=="1"?"checked":"")+' id=set_alarm_Green_Hunt title=""> '+str_alarm_hunt+'</label><br></td></tr>'+ //Рекорд из архива. '<tr><td colspan=3><label><input type=checkbox '+(show_archive=="1"?"checked":"")+' id=set_show_archive title=""> '+str_show_archive+'</label><br></td></tr>'+ //Суммарное HP. '<tr><td colspan=3><label><input type=checkbox '+(show_HP=="1"?"checked":"")+' id=set_show_HP title=""> '+str_show_HP+'</label><br></td></tr>'+ //Грин Пис. '<tr><td colspan=3><label><input type=checkbox '+(grin_Pis=="1"?"checked":"")+' id=set_Grin_Pis title=""> '+str_Grin_Pis+'</label><br><hr/></td></tr>'+ //коэфициент перекача '<tr><td colspan=3>'+str_koef_0+'<font style="color:#0070FF;"><b id=k_p>'+Number(koef).toFixed(4) +'</b></font><br></td></tr>' + '<tr><td colspan=3>'+str_koef_1+' <input id="set_koef" value="'+ Number(koef).toFixed(4) +'"size="4" maxlength="6"> <input type="submit" id="set_koef_ok" value="OK"><br><hr/></td></tr>'+ //Выбор пропусков str_skip_select_3 '<tr><td colspan=3>'+str_skip_select_1+ '<label><input type=checkbox '+(skip_mode=="1"?"checked":"")+' id=set_skip_mode1 title="">'+str_skip_select_2+'</label>'+ '<label><input type=checkbox '+(skip_mode=="0"?"checked":"")+' id=set_skip_mode2 title="">'+str_skip_select_3+'</label></td></tr>'+ //пропуск охот по опыту '<tr><td width="52%">'+str_skip_hunt+'</td><td colspan=2 width="48%" align="left" title="'+str_title_1+'"> '+ '<input id="set_limit_exp" value="'+limit_exp+'" size="3" maxlength="5"><input type="submit" id="set_limit_exp_ok" value="OK"></td></tr>'+ //пропуск охот по тексту '<tr><td colspan=3>'+str_skip_hunt_txt+' <label><input type=checkbox '+(show_registr=="1"?"checked":"")+' id=set_registr title="">'+str_registr+'</label><br></td></tr>'+ //текстоввый ввод '<tr><td colspan=2 title="'+str_title_2+'"><input id="set_google_str" value="'+google_str+'" size="70" maxlength="100"><input type="submit" id="set_google_str_ok" value="OK"></td>'+ //кнопка i(info) '<td width="10%" title="'+str_info+'" id="info"><input type="submit" id="set_info_ok" value="i"></td></tr>'+ '<tr><td colspan=3><hr/></td></tr>'+ //Сделать кнопку настройки короткую/длинную '<tr><td colspan=3><label><input type=checkbox '+(short_button=="1"?"checked":"")+' id=set_short_button title=""> <font size="1" color="blue">'+str_short_button+'</font></label><br><hr/></td></tr>'+ //ссылка на сайт скрипта '<tr><td><a href="'+str_url+'">'+str_update+'</a></td><td colspan=2 align="right"><a href="'+str_url_aut+'">'+str_autor+'</a></td></tr></table>'; //концовка //назначение вызова функция при событиях кнопок и чекбоксов addEvent($("bt_close_tr"), "click", settings_go_close); //крестик в углу addEvent($("set_enable_Exp_Half"), "click", change_enable_Exp_Half); //чек-бокс addEvent($("set_enable_5_procent"), "click", change_enable_5_procent); //чек-бокс addEvent($("set_only_Gud_ExpUm"), "click", change_only_Gud_ExpUm); //чек-бокс addEvent($("set_alarm_Green_Hunt"), "click", change_alarm_Green_Hunt); //чек-бокс addEvent($("set_show_archive"), "click", change_show_archive); //чек-бокс addEvent($("set_show_HP"), "click", change_show_HP); //чек-бокс addEvent($("set_Grin_Pis"), "click", change_Grin_Pis); //чек-бокс addEvent($("set_short_button"), "click", change_short_button); //чек-бокс addEvent($("set_registr"), "click", change_registr); //чек-бокс addEvent($("set_koef_ok"), "click", change_koef); //поле ввода addEvent($("set_info_ok"), "click", change_info); //поле ввода addEvent($("set_limit_exp_ok"), "click", change_limit_exp); //поле ввода addEvent($("set_google_str_ok"), "click", change_google_str); //строка ввода addEvent($("set_skip_mode1"), "click", change_skip_mode); //радио addEvent($("set_skip_mode2"), "click", change_skip_mode); //радио bg.style.top = '0px'; bg.style.height = bg_height + 'px'; bgc.style.top = ( window.pageYOffset + 155 ) + 'px'; bg.style.display = ''; bgc.style.display = ''; } //********* обработчики полей ввода ******* function change_skip_mode() { skip_mode = !skip_mode; document.getElementById('set_skip_mode1').checked = skip_mode; document.getElementById('set_skip_mode2').checked = !skip_mode; if ( url_cur.indexOf(url_1) != -1) GM_setValue("skip_mode_1", skip_mode); if ( url_cur.indexOf(url_2) != -1) GM_setValue("skip_mode_2", skip_mode); if ( url_cur.indexOf(url_3) != -1) GM_setValue("skip_mode_3", skip_mode); } function change_koef() { if ( Number( $("set_koef").value ) >= 1 ) koef = $("set_koef").value; else koef = Number(1.0); document.getElementById('k_p').innerHTML = Number(koef).toFixed(4); if ( url_cur.indexOf(url_1) != -1) GM_setValue("koef_dop_exp_1", koef); if ( url_cur.indexOf(url_2) != -1) GM_setValue("koef_dop_exp_2", koef); if ( url_cur.indexOf(url_3) != -1) GM_setValue("koef_dop_exp_3", koef); } function change_info() { var name_mob, s_name_mob, sprt; var google_array = google_str.split(" "); var first_el; var new_title=str_skip_select_1; if (skip_mode) new_title +=ustring('Откл.'); else new_title +=ustring('Вкл.'); new_title +='\n---\n'+str_info2; for (var i in google_array) { //перебор слов поиска new_title +='\n'+ustring('Для "')+google_array[i]+'": '; first_el = true; for (var key in mob_rus_exp) { //перебор имен существ из базы name_mob = key.replace(/\s+/g, '');//удаляем все пробелы в имени s_name_mob = ustring(name_mob); // меняем кодировку имени мобов if (!show_registr) {s_name_mob = s_name_mob.toLocaleLowerCase();} // Если не учитывать регистр, то преобразуем в маль.символы if (s_name_mob.indexOf(google_array[i]) != -1) { if (first_el) { sprt=""; first_el = false;} else sprt=", "; new_title +=sprt+ustring(key); } } } document.getElementById('info').title = new_title; } function change_limit_exp() { if ( Number( $("set_limit_exp").value ) >= 0 ) limit_exp = Number($("set_limit_exp").value).toFixed(0); else limit_exp = 0; if ( url_cur.indexOf(url_1) != -1) GM_setValue("limit_exp_1", limit_exp); if ( url_cur.indexOf(url_2) != -1) GM_setValue("limit_exp_2", limit_exp); if ( url_cur.indexOf(url_3) != -1) GM_setValue("limit_exp_3", limit_exp); } function change_google_str() { var name_mob, s_name_mob; google_str = ustring($ustring($("set_google_str").value).replace(/[^ 0-9А-Яа-яЁё\-)]/g, ""));//удаление лишних символов google_str = google_str.trim();//убираем пробелы в конце и начале. google_str = google_str.replace(/ {1,}/g," "); //удаление множественных пробелов document.getElementById('set_google_str').value = google_str; var google_array = google_str.split(" "); for (var i in google_array) { //перебор слов поиска if (!show_registr) {google_array[i] = google_array[i].toLocaleLowerCase()};//конвертируем в маленькие символы. for (var key in mob_rus_exp) { //перебор имен существ из базы name_mob = key.replace(/\s+/g, '');//удаляем все пробелы в имени s_name_mob = ustring(name_mob); // меняем кодировку имени мобов if (!show_registr) {s_name_mob = s_name_mob.toLocaleLowerCase();} // Если не учитывать регистр, то преобразуем в маль.символы if ((google_str.length == 0) || (s_name_mob.indexOf(google_array[i]) != -1)) { //если пусто или слово подходит для поиска if ( url_cur.indexOf(url_1) != -1) GM_setValue("google_str_1", google_str); if ( url_cur.indexOf(url_2) != -1) GM_setValue("google_str_2", google_str); if ( url_cur.indexOf(url_3) != -1) GM_setValue("google_str_3", google_str); change_info(); return; } } } alert('"'+google_str+'" '+str_no_found_in_base); change_info(); } //*********** обработчики чек-боксов ***** function change_enable_Exp_Half() {GM_setValue("enable_Exp_Half", enable_Exp_Half = !enable_Exp_Half);} function change_enable_5_procent() {GM_setValue("enable_5_procent",enable_5_procent = !enable_5_procent);} function change_only_Gud_ExpUm() {GM_setValue("only_Gud_ExpUm", only_Gud_ExpUm = !only_Gud_ExpUm);} function change_alarm_Green_Hunt() {GM_setValue("alarm_Green_Hunt",alarm_Green_Hunt = !alarm_Green_Hunt);} function change_show_archive() {GM_setValue("show_archive", show_archive = !show_archive);} function change_show_HP() {GM_setValue("show_HP", show_HP = !show_HP);} function change_registr() {GM_setValue("show_registr", show_registr = !show_registr);} function change_Grin_Pis() {GM_setValue("grin_Pis", grin_Pis = !grin_Pis);} function change_short_button() {GM_setValue("short_button",short_button = !short_button); if (short_button==0) { str_settings = str_settings_1; width_but = 80; left_pos = 393;} else { str_settings = str_settings_2; width_but = 20; left_pos = 468;} d.setAttribute('style', 'position: absolute; margin: -5px 0px 0px '+left_pos+'px; text-align: center;');//Положение кнопки, для вызова настроек d.innerHTML = '<style> .hwm_go * {font-size: 12px; color: #FFFF00;} .cell_go {white-space: nowrap; height: 18px; background: #4190FF; font-weight: bold;} </style>' + '<table class="hwm_go" width='+width_but+'px> <tr height=20>' + // Размер кнопки и фон, для вызова настроек '<td class="cell_go" style="cursor:pointer" id="set_go"><font style="font-size:12px;">'+str_settings+'</font></td>' + '</tr> </table>'; addEvent( $("set_go"), "click", settings_go ); //Привязка к куску на клик вызов функции } //********** непонятно что, взято 1:1 у Demin ****** function $(id) { return document.querySelector("#"+id); } function addEvent(elem, evType, fn) { if (elem.addEventListener) elem.addEventListener(evType, fn, false); else if (elem.attachEvent) elem.attachEvent("on" + evType, fn); else elem["on" + evType] = fn; } function ClientWidth() {return document.compatMode=='CSS1Compat' && document.documentElement?document.documentElement.clientWidth:document.body.clientWidth;} function ScrollHeight() {return Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);} } //************ Конец фрагментов кода от (C) Demin ********************************** var sectors = { "cx=50&cy=50":1, //Empire Capital "cx=51&cy=50":2, //East River "cx=50&cy=49":3, //Tiger Lake "cx=51&cy=49":4, //Rogues' Wood "cx=50&cy=51":5, //Wolf Dale "cx=50&cy=48":6, //Peaceful Camp "cx=49&cy=51":7, //Lizard Lowland "cx=49&cy=50":8, //Green Wood "cx=49&cy=48":9, //Eagle Nest "cx=50&cy=52":10, //Portal Ruins "cx=51&cy=51":11, //Dragon Caves "cx=49&cy=49":12, //Shining Spring "cx=48&cy=49":13, //Sunny Sity "cx=52&cy=50":14, //Magma Mines "cx=52&cy=49":15, //Bear Mountain "cx=52&cy=48":16, //Fairy Trees "cx=53&cy=50":17, //Harbour City (Port City) "cx=53&cy=49":18, //Mithril Coast "cx=51&cy=52":19, //GreatWall "cx=51&cy=53":20, //Titans' Valley "cx=52&cy=53":21, //Fishing Village "cx=52&cy=54":22, //Kingdom Capital "cx=48&cy=48":23, //Ungovernable Steppe "cx=51&cy=48":24, //Crystal Garden "cx=53&cy=52":25, //East Island "cx=49&cy=52":26, //The Wilderness "cx=48&cy=50":27 //Sublime Arbor } //**************************************************** var mob_rus_exp = {//229 существ. Cтруктура: Опыт,HP "Адепты": [121,80], "Адские жеребцы": [136,50], "Адские жнецы": [250,99], "Адские псы": [33,15], "Ангелы": [330,180], "Арбалетчики": [19,10], "Архангелы": [390,220], "Архидемоны": [312,211], "Архидьяволы": [311,199], "Архиличи": [110,55], "Архимаги": [70,30], "Ассасины": [33,14], "Астральные драконы": [310,150], "Баньши": [205,110], "Бегемоты": [350,210], "Берсерки": [42,25], "Бестии": [30,16], "Бесы": [6,4], "Бехолдеры": [33,22], "Боевые грифоны": [45,35], "Боевые единороги": [135,77], "Боевые кентавры": [21,10], "Боевые маги": [72,29], "Вампиры": [68,30], "Вармонгеры": [36,20], "Ведьмы-призраки": [30,20], "Великие левиафаны": [300,250], "Верховные друиды": [101,38], "Вестники смерти": [205,100], "Виверны": [170,90], "Визири джиннов": [110,50], "Владычицы тени": [185,90], "Водные элементали": [57,43], "Вожаки": [100,48], "Воздушные элементали": [59,30], "Воины-наёмники": [25,24], "Воители": [12,12], "Воры-колдуны": [35,30], "Воры-разведчики": [35,45], "Воры-убийцы": [35,40], "Высшие ангелы": [390,220], "Высшие вампиры": [70,35], "Высшие личи": [100,55], "Гарпии": [29,15], "Гарпии-ведьмы": [45,15], "Гарпунеры": [18,10], "Гигантские ящеры": [25,25], "Гидры": [108,80], "Глубоководные черти": [140,105], "Гниющие зомби": [17,23], "Гоблины": [5,3], "Гоблины-лучники": [9,3], "Гоблины-маги": [9,3], "Гоблины-трапперы": [15,7], "Гоги": [13,13], "Големы смерти": [329,350], "Головорезы": [6,8], "Горные стражи": [24,12], "Гремлины": [5,5], "Гремлины-вредители": [9,6], "Грифоны": [59,30], "Громовержцы": [162,120], "Демонессы": [67,30], "Детёныши ящера": [13,13], "Джинны": [103,40], "Джинны султаны": [110,45], "Дикие энты": [210,175], "Дочери земли": [72,35], "Дочери неба": [75,35], "Древние бегемоты": [390,250], "Древние энты": [210,181], "Дриады": [20,6], "Друиды": [74,34], "Духи": [27,20], "Дьяволы": [245,166], "Дьяволята": [10,6], "Единороги": [124,57], "Железные големы": [33,18], "Жрецы рун": [59,60], "Защитники веры": [20,23], "Защитники гор": [7,7], "Зелёные драконы": [350,200], "Земные элементали": [63,75], "Злобные глаза": [33,22], "Злой Козел 2015": [35,45], "Зомби": [11,17], "Изумрудные драконы": [400,200], "Имперские грифоны": [62,35], "Инквизиторы": [121,80], "Искусительницы": [65,26], "Ифриты": [200,90], "Ифриты султаны": [250,100], "Каменные горгульи": [16,15], "Камнегрызы": [67,55], "Камнееды": [56,45], "Кентавры": [13,6], "Князья вампиров": [70,40], "Колоссы": [350,175], "Кони преисподней": [138,66], "Костоломы": [27,20], "Костяные драконы": [280,150], "Кочевые кентавры": [20,9], "Кошмары": [140,66], "Крестьяне": [5,4], "Кристальные драконы": [400,200], "Кровавые ящеры": [30,35], "Кровоглазые циклопы": [500,235], "Кшатрии ракшасы": [162,135], "Лазутчики": [20,10], "Латники": [21,26], "Левиафаны": [250,200], "Лесные снайперы": [42,12], "Личи": [87,50], "Лучники": [15,7], "Маги": [63,18], "Магма драконы": [329,280], "Магнитные големы": [57,28], "Магоги": [16,13], "Мастера копья": [17,12], "Мастера лука": [42,14], "Мегеры": [49,24], "Медведи": [22,22], "Метатели копья": [11,10], "Минотавры": [39,31], "Минотавры-стражи": [56,35], "Минотавры-надсмотрщики": [56,40], "Могильные големы": [400,400], "Монахи": [101,54], "Морские черти": [120,90], "Мумии": [115,50], "Мумии фараонов": [135,70], "Мятежники": [10,7], "Наездники на волках": [20,10], "Наездники на кабанах": [31,14], "Наездники на медведях": [24,25], "Наездники на ящерах": [65,40], "Налётчики на волках": [31,12], "Нимфы": [20,6], "Обсидиановые горгульи": [26,20], "Огненные гончие": [36,15], "Огненные демоны": [23,13], "Огненные драконы": [255,230], "Огненные птицы": [117,65], "Огненные элементали": [60,43], "Огры": [60,50], "Огры-маги": [74,65], "Огры-ветераны": [75,70], "Ополченцы": [7,6], "Орки": [29,12], "Орки-вожди": [38,18], "Орки-тираны": [38,20], "Орки-шаманы": [33,13], "Паладины": [262,100], "Палачи": [83,40], "Пауки": [15,9], "Пехотинцы": [17,16], "Пещерные владыки": [195,120], "Пещерные гидры": [115,125], "Пещерные демоны": [157,110], "Пещерные отродья": [165,140], "Привидения": [26,8], "Призраки": [27,19], "Призрачные драконы": [310,160], "Принцессы ракшас": [155,120], "Проворные наездники": [94,60], "Птицы грома": [115,65], "Птицы тьмы": [120,60], "Раджи ракшас": [160,140], "Рогатые демоны": [14,13], "Рогатые жнецы": [200,99], "Роки": [104,55], "Рыцари": [232,90], "Рыцари смерти": [190,100], "Рыцари тьмы": [160,90], "Светлые единороги": [135,80], "Свирепые бегемоты": [410,280], "Свободные циклопы": [700,225], "Сирены": [60,20], "Сирены-искусительницы": [70,24], "Скелеты": [6,4], "Скелеты-арбалетчики": [12,6], "Скелеты-воины": [10,5], "Скелеты-лучники": [10,4], "Стальные големы": [54,24], "Старейшины рун": [100,70], "Старшие гремлины": [9,6], "Старшие демоны": [20,13], "Старшие друиды": [101,34], "Степные бойцы": [23,12], "Степные воины": [21,12], "Степные волки": [20,25], "Степные гоблины": [5,3], "Степные циклопы": [390,220], "Стихийные горгульи": [25,16], "Стрелки": [16,8], "Стрелки-наёмники": [15,8], "Суккубы": [61,20], "Сумеречные ведьмы": [157,80], "Сумеречные драконы": [350,200], "Танцующие с ветром": [33,14], "Танцующие с клинками": [20,12], "Танцующие со смертью": [33,12], "Таны": [131,100], "Тёмные виверны": [195,105], "Тёмные всадники": [94,50], "Титаны": [400,190], "Титаны шторма": [400,190], "Тролли": [150,150], "Убийцы": [70,34], "Умертвия": [165,95], "Феи": [12,5], "Фениксы": [600,777], "Фурии": [49,16], "Хобгоблины": [9,4], "Хозяева медведей": [36,30], "Церберы": [41,15], "Циклопы": [172,85], "Циклопы-короли": [182,95], "Циклопы-генералы": [187,100], "Чародеи-наёмники": [35,36], "Чемпионы": [252,100], "Черные тролли": [180,180], "Черти": [10,6], "Чёрные драконы": [400,240], "Чумные зомби": [15,17], "Шаманки": [66,30], "Штурмовые грифоны": [62,52], "Эльфийские лучники": [38,10], "Энты": [187,175], "Ядовитые пауки": [30,14] }; //**************************************************** /** Библиотека юникода * * Реализует функции работы с юникодом. * @file lib_unicode.js * @version 1.1.0 * @author DrunkenStranger * @link http://userscripts.org/users/362572 * @license GPL */ function uchar(s) { switch (s[0]) { case "А": return "\u0410"; case "Б": return "\u0411"; case "В": return "\u0412"; case "Г": return "\u0413"; case "Д": return "\u0414"; case "Е": return "\u0415"; case "Ж": return "\u0416"; case "З": return "\u0417"; case "И": return "\u0418"; case "Й": return "\u0419"; case "К": return "\u041a"; case "Л": return "\u041b"; case "М": return "\u041c"; case "Н": return "\u041d"; case "О": return "\u041e"; case "П": return "\u041f"; case "Р": return "\u0420"; case "С": return "\u0421"; case "Т": return "\u0422"; case "У": return "\u0423"; case "Ф": return "\u0424"; case "Х": return "\u0425"; case "Ц": return "\u0426"; case "Ч": return "\u0427"; case "Ш": return "\u0428"; case "Щ": return "\u0429"; case "Ъ": return "\u042a"; case "Ы": return "\u042b"; case "Ь": return "\u042c"; case "Э": return "\u042d"; case "Ю": return "\u042e"; case "Я": return "\u042f"; case "а": return "\u0430"; case "б": return "\u0431"; case "в": return "\u0432"; case "г": return "\u0433"; case "д": return "\u0434"; case "е": return "\u0435"; case "ж": return "\u0436"; case "з": return "\u0437"; case "и": return "\u0438"; case "й": return "\u0439"; case "к": return "\u043a"; case "л": return "\u043b"; case "м": return "\u043c"; case "н": return "\u043d"; case "о": return "\u043e"; case "п": return "\u043f"; case "р": return "\u0440"; case "с": return "\u0441"; case "т": return "\u0442"; case "у": return "\u0443"; case "ф": return "\u0444"; case "х": return "\u0445"; case "ц": return "\u0446"; case "ч": return "\u0447"; case "ш": return "\u0448"; case "щ": return "\u0449"; case "ъ": return "\u044a"; case "ы": return "\u044b"; case "ь": return "\u044c"; case "э": return "\u044d"; case "ю": return "\u044e"; case "я": return "\u044f"; case "Ё": return "\u0401"; case "ё": return "\u0451"; default: return s[0]; } } function ustring(s) { s = String(s); var result = ""; for (var i = 0; i < s.length; i++) result += uchar(s[i]); return result; } //**************************************************** function $uchar(s) { switch (s[0]) { case "\u0410": return "А"; case "\u0411": return "Б"; case "\u0412": return "В"; case "\u0413": return "Г"; case "\u0414": return "Д"; case "\u0415": return "Е"; case "\u0416": return "Ж"; case "\u0417": return "З"; case "\u0418": return "И"; case "\u0419": return "Й"; case "\u041a": return "К"; case "\u041b": return "Л"; case "\u041c": return "М"; case "\u041d": return "Н"; case "\u041e": return "О"; case "\u041f": return "П"; case "\u0420": return "Р"; case "\u0421": return "С"; case "\u0422": return "Т"; case "\u0423": return "У"; case "\u0424": return "Ф"; case "\u0425": return "Х"; case "\u0426": return "Ц"; case "\u0427": return "Ч"; case "\u0428": return "Ш"; case "\u0429": return "Щ"; case "\u042a": return "Ъ"; case "\u042b": return "Ы"; case "\u042c": return "Ь"; case "\u042d": return "Э"; case "\u042e": return "Ю"; case "\u042f": return "Я"; case "\u0430": return "а"; case "\u0431": return "б"; case "\u0432": return "в"; case "\u0433": return "г"; case "\u0434": return "д"; case "\u0435": return "е"; case "\u0436": return "ж"; case "\u0437": return "з"; case "\u0438": return "и"; case "\u0439": return "й"; case "\u043a": return "к"; case "\u043b": return "л"; case "\u043c": return "м"; case "\u043d": return "н"; case "\u043e": return "о"; case "\u043f": return "п"; case "\u0440": return "р"; case "\u0441": return "с"; case "\u0442": return "т"; case "\u0443": return "у"; case "\u0444": return "ф"; case "\u0445": return "х"; case "\u0446": return "ц"; case "\u0447": return "ч"; case "\u0448": return "ш"; case "\u0449": return "щ"; case "\u044a": return "ъ"; case "\u044b": return "ы"; case "\u044c": return "ь"; case "\u044d": return "э"; case "\u044e": return "ю"; case "\u044f": return "я"; case "\u0401": return "Ё"; case "\u0451": return "ё"; default: return s[0]; } } function $ustring(s) { s = String(s); var result = ""; for (var i = 0; i < s.length; i++) result += $uchar(s[i]); return result; } // ********* считывание уровня героя ********** function getLevel() { if(url_cur.indexOf(url_home) == -1){ return; } for (var k = 0; k < all_tables.length; k++) { if (!all_tables[k]) continue; if (!all_tables[k].childNodes[0]) continue; if (!all_tables[k].childNodes[0].childNodes[0]) continue; if (!all_tables[k].childNodes[0].childNodes[0].childNodes[0]) continue; if (!all_tables[k].childNodes[0].childNodes[0].childNodes[0].innerHTML) continue; var str_tbl_info = all_tables[k].childNodes[0].childNodes[0].childNodes[0].innerHTML; if (str_tbl_info.indexOf(str_pl_lvl) > 0) { str_tbl_info = str_tbl_info.substring(str_tbl_info.indexOf(str_pl_lvl) + str_pl_lvl.length); pl_level = str_tbl_info.substring(0, str_tbl_info.search(/\D/)); break; } } if(url_cur.indexOf(url_1_home) != -1) { GM_setValue("hunt_exp_pl_1_level", pl_level); return; } if(url_cur.indexOf(url_2_home) != -1) { GM_setValue("hunt_exp_pl_2_level", pl_level); return; } if(url_cur.indexOf(url_3_home) != -1) { GM_setValue("hunt_exp_pl_3_level", pl_level); return; } } // *************************************************** function needSkip(skip,mob,expirience) { //нужно ли пропускать моба? if (skip_mode) { if ((limit_exp == 0) || (expirience*1 <= limit_exp*1)) skip = false; } else { if (google_str.length == 0) { skip = false; return skip; } var str_mob = mob.replace(/\s+/g, ''); //удаляем все пробелы в имени if (!show_registr) {str_mob = str_mob.toLocaleLowerCase();} // Если не учитывать регистр, то преобразуем в маль.символы var google_array = google_str.split(" "); for (var i in google_array) { if (str_mob.indexOf(google_array[i]) != -1) skip = false; } } return skip; } //**************************************************** function skip_hunt(hunt) { var x= document.querySelector("td >a[href*='ecostat.php']"); if (x == null) return; document.title = str_auto_skip; setTimeout(function() { window.location.href = 'http://'+location.hostname+'/'+'map.php?action=skip'; }, 3000); } //**************************************************** function skip_en() { var x = document.querySelectorAll("tr > td[colspan*='2']"); if (x.length == 0) return; for (var k = 0; k < x.length; k++) { if (x[k].innerHTML == str_no_skip) { x[k].align = 'right'; x[k].innerHTML ='<a href="map.php?action=skip">'+str_skip_enable+'</a>'; } } } //**************************************************** function link2arh_record() { var link_record, s, el; var x = document.querySelectorAll("td > a[href*='mid=']"); if (x.length == 0) return; for (var k = 0; k < x.length; k++) { link_record = x[k].href; s = link_record.split('&mid'); link_record = s[0]+'&show_archive=1&mid'+s[1]; x[k].insertAdjacentHTML("afterEnd" ,'<br><a href="'+link_record+'"><img border="0" title="'+str_arh_record +'" src="http://dcdn.heroeswm.ru/i/s_knowledge.gif"></a>'); } } // *************************************************** function showExperience() { skip_en(); if (show_archive) {link2arh_record();} if(url_cur.indexOf(url_map) == -1){ return; } var my_td_danger, total_exp, full_exp, next_count, exp_with_helper, next_half_count, min_count, exp_min_count, next_min_count, mob_HP; var str_hunt, str_total_exp, next_level;//, min_kills, exp_min_kills; var mob_name =""; var str_dop =""; var mob_exp = 0; var temp = 0; var hunt_available = false; var skip_all_mob = true; for (var k = 0; k < all_tables.length; k++) { if (all_tables[k].className == "wbwhite") { if (all_tables[k].childNodes[0].childNodes[0].childNodes[0].childNodes[0].tagName != "DIV") continue; //alert(); if (all_tables[k].childNodes[0].childNodes[0].children.length < 2) {break;} my_td_danger = all_tables[k].childNodes[0].childNodes[0].childNodes[2]; if (!my_td_danger){ return; } //no hunt... str_hunt = all_tables[k].childNodes[0].childNodes[0].childNodes[1].innerHTML; mob_count = str_hunt.substring(str_hunt.indexOf("(")+1, str_hunt.indexOf(str_kol)-1); mob_name = str_hunt.substring(str_hunt.indexOf(">")+1, str_hunt.indexOf("</")); if (show_HP) { mob_HP = mob_rus_exp[$ustring(mob_name)][1] * mob_count; str_hunt = str_hunt.replace(str_kol,str_kol+' <font style="font-size:10px;color:#CD00CD">HP:<B>'+mob_HP+'</B></font>'); all_tables[k].childNodes[0].childNodes[0].childNodes[1].innerHTML = str_hunt; } mob_exp = mob_rus_exp[$ustring(mob_name)][0]; hunt_available = true; total_exp = Math.floor(mob_exp * mob_count / 5); //Полный опыт в одиночку full_exp = total_exp; next_count = (mob_count*1.3).toFixed(0); //Прирост при победе в одиночку exp_with_helper = (total_exp / 2).toFixed(0); //Опыт с помощником (50/50) next_half_count = (mob_count*Math.pow(1.3, 0.5)).toFixed(0); //Прирост при победе с помощником (50/50) min_count = (mob_count / 5 - 0.5).toFixed(0); //Для минимального 5% прироста exp_min_count = (Math.floor(mob_exp * min_count / 5)).toFixed(0); //Опыт при минимальном приросте next_min_count = (mob_count*Math.pow(1.3, 0.2)).toFixed(0); //Прирост при убийстве <=20% будет ~5.4% total_exp = total_exp > pl_level*500 ? pl_level*500 : total_exp; //Если опыт больше верхней отсечки по уровню exp_with_helper = exp_with_helper > pl_level*500 ? pl_level*500 : exp_with_helper; exp_min_count = exp_min_count > pl_level*500 ? pl_level*500 : exp_min_count; if (pl_level > 2) { //Если опыт меньше нижней отсечки по уровню (3+ уровни) total_exp = total_exp < pl_level*70 ? pl_level*70 : total_exp; exp_with_helper = exp_with_helper < pl_level*35 ? pl_level*35 : exp_with_helper; exp_min_count = exp_min_count < pl_level*14 ? pl_level*14 : exp_min_count; } total_exp = (total_exp * koef).toFixed(0); exp_with_helper = (exp_with_helper * koef).toFixed(0); exp_min_count = (exp_min_count * koef).toFixed(0); //-------------- Вставим кусок кода --------------- // total_exp - опыт с учетом коэф. перекача skip_all_mob = needSkip(skip_all_mob,mob_name,full_exp); //------------------------------------------------- str_total_exp = total_exp; next_level = Number(pl_level)+1; if (total_exp > max_exp && max_exp > 0) { all_tables[k].childNodes[0].style.background = '#FFA07A' ; } if (total_exp != full_exp) str_dop = ustring(' (из ')+full_exp+ustring(')'); else str_dop =""; str_total_exp ='<br> <font style="font-size:10px;color:#0000CD">'+str_sum_exp.replace('STR1', str_total_exp).replace('dopSTR', str_dop).replace('STR6', next_count)+'</font>'; if ((total_exp < next_level*70) && (pl_level > 1)) {str_total_exp +='<br> <font style="color:#0000CD">'+str_kill_now.replace('STR9', next_level).replace('STR10',next_level*70)+'</font>';} if (enable_Exp_Half) {str_total_exp = str_total_exp + '<br> <font style="font-size:10px;color:#CD00CD">'+str_hlp_exp.replace('STR2', exp_with_helper).replace('STR7', next_half_count)+'</font>'}; if (enable_5_procent) {str_total_exp = str_total_exp + '<font style="font-size:11px;color:#007FFF"><i><center>'+str_min_kol.replace('STR3', min_count).replace('STR4', exp_min_count).replace('STR8', next_min_count)+'</center></i></font>'}; all_tables[k].childNodes[0].childNodes[0].childNodes[1].innerHTML = str_hunt + str_total_exp; } } if (skip_all_mob && hunt_available) skip_hunt(); // alert(skip_all_mob+' '+hunt_available+' '+limit_exp+' '+google_str.length+' '+skip_mode); if (!skip_all_mob && hunt_available && ((limit_exp != 0) || (!skip_mode && (google_str.length != 0)) ) ) document.title = str_hunt_found; } //**************************************************** function helpers() { if(url_cur.indexOf(url_war) == -1){ return; } var ems, elem, elem2, str_hunt, mob_count, mob_name, total_exp, backgrn, sect, s_sect; var alr = 0; for (var k = 0; k < all_tables.length; k++) { if (all_tables[k].className == "wb") { ems = all_tables[k].querySelectorAll( "td > a[href*='map.php?cx']"); for (var i = 0; i < ems.length; i++) { if (!ems[i].parentNode.parentNode.childNodes[6].childNodes[4]) { elem = ems[i].parentNode.parentNode.childNodes[6].childNodes[3].childNodes[0]; //odin v drugom sektore ili inoi level } else if (!ems[i].parentNode.parentNode.childNodes[6].childNodes[6]) { elem = ems[i].parentNode.parentNode.childNodes[6].childNodes[5].childNodes[0]; //odin v moem sektore elem2 = ems[i].parentNode.parentNode.childNodes[6].childNodes[4]; //odin v moem sektore } else { elem = ems[i].parentNode.parentNode.childNodes[6].childNodes[6].childNodes[0]; //dvoe v drugom sektore } str_hunt = elem.innerHTML; mob_count = str_hunt.substring(str_hunt.search(/\(/)+1, str_hunt.search(/\)/)); mob_name = str_hunt.substring(0, str_hunt.search(/\(/)); total_exp = Math.floor(mob_rus_exp[$ustring(mob_name)][0] * mob_count / 5); backgrn = ''; if (elem.parentNode.parentNode.childElementCount != 5) { s_sect = ems[i].href; sect = s_sect.substring(s_sect.lastIndexOf("?")+1,s_sect.length); s_sect =s_sect.replace("map.php?"+sect,"move_sector.php?id="+sectors[sect]); ems[i].innerHTML += ustring('<br><font style="color:#FF3244;"><b>Перейти</b></font>'); ems[i].href = s_sect; } if (only_Gud_ExpUm && (total_exp< pl_level*133) ){ backgrn = ' background:#cfd';} if (only_Gud_ExpUm && (total_exp< pl_level*70) ){ backgrn = ' background:#0f0';} if (alarm_Green_Hunt && (total_exp< pl_level*133) && (elem.parentNode.parentNode.childElementCount != 5)){ alr = 1;} elem.innerHTML += '<font style="font-size:12px; color:#013220;'+ backgrn+'"><b>'+' '+total_exp+'</b></font>'+str_exp; } } } if (alr == 1) alert(str_green_hunt); if (alarm_Green_Hunt) setTimeout(function(){ window.location.href = 'http://'+location.hostname+'/'+'group_wars.php?filter=hunt'; }, 5000); } //**************************************************** function hideHunt() { var tb; if(url_cur.indexOf(url_map) == -1){ return; } for (var k = 0; k < all_tables.length; k++) { tb = all_tables[k]; if (tb.className == "wbwhite") { if (tb.childNodes[0].childNodes[0].children.length < 2) {break;} tb.parentNode.removeChild(tb.nextSibling); tb.parentNode.removeChild(tb); k--; } } } //**************************************************************************************** function add_archive() { var ems, s_full, spl, s, s_url; if (url_cur.indexOf('level') == -1) return; if (url_cur.indexOf('show_archive=1') == -1) { if (url_cur.indexOf('mid') == -1) { s_url = url_cur+'&show_archive=1'; } else { spl = url_cur.split('&mid'); s_url = spl[0]+'&show_archive=1&mid'+spl[1]; } s = str_show_archive_r; } else { spl = url_cur.split('&show_archive=1'); s_url = spl[0]+spl[1]; s = str_hide_archive_r; } ems = document.querySelectorAll( "td > center > a[href*='plstats_hunters.php?level']"); if (ems.length != 0) { s_full = '<br><center><a href="'+s_url+'"><b><font color="blue">'+s+'</font></b></a></center>'; ems[0].parentNode.insertAdjacentHTML("afterEnd" ,s_full); } } //**************************************************** getLevel(); showSettings(); if (!grin_Pis) showExperience() else hideHunt(); helpers(); if (url_cur.indexOf('plstats_hunters') != -1) add_archive(); })();