hwm_GO_exp

Помощник ГО. (2019.02.20)

当前为 2019-02-20 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name           hwm_GO_exp
// @namespace      https://greasyfork.org/users/14188
// @description    Помощник ГО. (2019.02.20)
// @author         ElMarado (Based on script Mantens)
// @version        4.53
// @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        https://www.heroeswm.ru/group_wars.php*
// @include        https://www.heroeswm.ru/plstats_hunters.php*
// @include        https://www.heroeswm.ru/home.php*
// @include        https://www.heroeswm.ru/map.php*
// @grant          GM_getValue
// @grant          GM_setValue
// @icon           https://app.box.com/representation/file_version_34029013909/image_2048/1.png?shared_name=hz97b2qwo2ycc5ospb7ccffn13w3ehc4
// ==/UserScript==
(function () {
var max_exp	= 0;
var version	= "4.53 (2019.02.20)";
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_1_home	= "www.heroeswm.ru/home.php";
var url_2_home	= "178.248.235.15/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 find_Hunt		= GM_getValue("find_Hunt", false);
var beep_if_free	= GM_getValue("beep_if_free", false);
var show_archive	= GM_getValue("show_archive", true);
var grin_Pis		= GM_getValue("grin_Pis", false);
var pic_enable		= GM_getValue("pic_enable", true);
var show_HP		= GM_getValue("show_HP", false);
var skip_no_half	= GM_getValue("skip_no_half", 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);		//коэф перекача
	var limit_exp	= GM_getValue("limit_exp_1", 0);		//С какого порога опыта пропускать охоты
	var skip_mode	= GM_getValue("skip_mode_1", true);		//Пропускать по опыту или по списку: 1 - опыт, 0 - список
	var skip_base	= GM_getValue("skip_base_1", ""); 		//h база пропусков на существ: 0 - пропускать, 1 - оставить
}
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 skip_mode	= GM_getValue("skip_mode_2", true);
	var skip_base	= GM_getValue("skip_base_2", "");
}
//********************
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_exp	 	= ustring("&nbspопыта.");
var str_settings_1	= ustring("&nbspНастройки ГО&nbsp");
var str_settings_2	= ustring("&nbspГО&nbsp");
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_find_hunt	= ustring("Поиск чужих охот (групповые бои). Обновление: 5с. ");
var str_beep_if_free	= 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("Текущий коэффициент перекача:&nbsp");
var str_koef_1		= ustring("Введите новый коэффициент перекача от 1.0 до 9.9999: ");
var str_skip_select_1	= ustring("Пропускать мобов: ");
var str_skip_select_2	= ustring("по опыту ");
var str_skip_select_3	= ustring("по списку ");
var str_skip_hunt	= ustring("Пропускать охоты с опытом больше чем:");
var str_title_1 	= ustring("Если значение 0, то опыт не учитывается.");
var str_pic_enable	= 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_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(". Найдена ошибка:");
var str_zagl1_list	= ustring("Выберите существ для охоты. Всего ");
var str_zagl2_list	= ustring("существ.");
var str_all_mark	= ustring("Пометить всех");
var str_all_unmark	= ustring("Снять у всех");
var str_all_flying	= ustring("Все летающие");
var str_skip_no_half	= ustring(" и <B>(</B>оставлять [1/2] или ");
var str_diamond_search	= ustring(" бриллианта");
//*************** Конвертация ********************************
function hex_2_bin(hex) {
var hex2bin = {
	0: "0000",	1: "0001",	2: "0010",	3: "0011",
	4: "0100",	5: "0101",	6: "0110",	7: "0111",
	8: "1000",	9: "1001",	A: "1010",	B: "1011",
	C: "1100",	D: "1101",	E: "1110",	F: "1111"
};
	var str_bin = "";
	for (var i=0; i<hex.length;i++) str_bin +=hex2bin[hex[i]];
	return str_bin;
}
//*************** Конвертация ********************************
function bin_2_hex(bin) {
var bin2hex = {
	"0000": "0",	"0001": "1",	"0010": "2",	"0011": "3",
	"0100": "4",	"0101": "5",	"0110": "6",	"0111": "7",
	"1000": "8",	"1001": "9",	"1010": "A",	"1011": "B",
	"1100": "C",	"1101": "D",	"1110": "E",	"1111": "F"
};
	var n_hex_sym = Math.ceil(bin.length/4);
	var str_hex = "";
	var sym4;
	for (var i=0; i< n_hex_sym; i++) {
		sym4 = bin.substr(i*4,4);
		str_hex += bin2hex[sym4];
	}
	return str_hex;
}
//***********************************************************
function fill_hex_massive (n, s) {
	var arr = "";
	for (var i = 0; i < n; i++) arr += s;
	return arr;
}
//***********************************************************
function show_List() {
	if (url_cur.indexOf('map.php') == -1) return;
	if (skip_mode) {						//если пропуск по опыту, то кнопку вызова списка не отображать
	        var elem = document.getElementById("get_list_go");
		if (elem != null) elem.parentNode.removeChild(elem);	//если кнопка уже есть, то её убрать.
		return;
	}
	var x2= document.querySelector("td >a[href*='ecostat.php']");
	if (x2 == null)	return;
	x2 = x2.parentNode;
	var str_settings = "\u21B4"; 
	var d = document.createElement('div');
	d.id="get_list_go";
	d.setAttribute('style', 'position: absolute; margin: -5px 0px 0px 500px; text-align: center;');		//Положение кнопки, для вызова настроек
	d.innerHTML = '<style> .list_go * {font-size: 18px; color: #FFFF00;} .cell_list {white-space: nowrap; height: 18px; background: #4190FF; font-weight: bold;} </style>' +
	'<table class="list_go" width=20px> <tr height=20>' +								// Размер кнопки и фон, для вызова настроек
	'<td class="cell_list" style="cursor:pointer" id="set_list"><font style="font-size:14px;">'+str_settings+'</font></td>' +
	'</tr> </table>';
	x2.insertBefore(d,x2.firstChild); 									//Вставка куска
	addEvent( $("set_list"), "click", settings_list );							//Привязка к куску на клик вызов функции
//************
function list_close()
{
	var bg = $('bgOverlay');
	var bgc = $('bgCenter');
	bg.parentNode.removeChild(bg);
	bgc.parentNode.removeChild(bgc);
}
//************
function settings_list()
{
	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() - 420 ) / 2 ) + 'px';
	bgc.style.width = '420px';
	bgc.style.height = '475px';
	bgc.style.overflow = 'auto';						//scrolling
	bgc.style.background = "#F6F3EA";
	bgc.style.zIndex = "1105";
	addEvent(bg, "click", list_close);                                      //клик вне окна
	//форма и внешний вид окно настроек
	var s_style = "<style>.cre_mon_image2 {  position: absolute;  top: 0;  left: 0;}.cre_creature {   font-weight: 400;   font-family: 'Arial',sans-serif;   width: 60px; position: relative;	letter-spacing: normal;    font-size: 16px;	-moz-user-select: none;	-webkit-user-select: none; -ms-user-select: none; display:inline-block;}</style>";
	var s_innerHTML = s_style+'<div style="border:0px 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_tr2" title="Close">x</div>'+
	//заголовок окна настроек
	'<table cellspacing="0" ><tr><td colspan=2><b>'+str_zagl1_list+'<font style="color:#0070FF;"> '+n_monstrs+'</font> '+str_zagl2_list+'</b><hr/></td></tr>'+
	//пропуск охот по опыту
	'<tr><td colspan=2>'+
		'<input type="submit" id="set_all_mark_ok"   value="'+str_all_mark  +'">'+
		'<input type="submit" id="set_all_unmark_ok" value="'+str_all_unmark+'">'+
		'<input type="submit" id="set_all_flying_ok" value="'+str_all_flying+'">'+
	'</td></tr>';
	var n_m = 0;
	var s_bgcolor;
	var s_pic_out="";
	for (var key in mob_rus_exp) { //перебор существ из базы и выводим чекбоксы с именем существа
		if (skip_bin_base[n_m]=="1") s_bgcolor="style=background-color:#B0FFB0;"; else s_bgcolor="";
		if (pic_enable) s_pic_out = '<tr><td><div class="cre_creature"><img width="60" height="50" border="0" src="http://hwm.cdnvideo.ru/i/portraits/'+mob_rus_exp[$ustring(key)][2]+'anip33.png"> <img class="cre_mon_image2" width="60" height="50" border="0" src="http://hwm.cdnvideo.ru/i/army_html/frame_lvl1_120x100_woa.png?v=1"></td>';//выводим картинку
		s_innerHTML += s_pic_out+
		'<td '+s_bgcolor+' id=cell_'+n_m+'><label><input type=checkbox '+(skip_bin_base[n_m]==1?"checked":"")+' id=set_monstr_'+n_m+'>'+ 	//выводим чекбокс
		'<font style="font-size:16px; vertical-align:center">'+ustring(key)+'</font></label></div></td></tr>';					//выводим имя существа
		n_m++;
	}
	s_innerHTML +='</table>'; 								//концовка
	bgc.innerHTML = s_innerHTML;
	n_m = 0;
//********* назначение событий *******
	for (var key in mob_rus_exp) {	appendEvent(n_m++); } 					//назначаем на события на каждый чек бокс
	document.getElementById('set_all_mark_ok').onclick = function(){all_mark_ok("F")};	//Пометить все
	document.getElementById('set_all_unmark_ok').onclick = function(){all_mark_ok("0")};	//Сбросить все
	document.getElementById('set_all_flying_ok').onclick = function(){all_flying_mark()};	//Пометить летающих
	addEvent($("bt_close_tr2"),		"click", list_close);				//крестик в углу

	bg.style.top = '0px';
	bg.style.height = bg_height + 'px';
	bgc.style.top = ( window.pageYOffset + 155 ) + 'px';
	bg.style.display = '';
	bgc.style.display = '';
}
//********* обработчики полей ввода *******
	function appendEvent(n) { document.getElementById('set_monstr_'+n).onclick = function(){change_enable_mostr(n)};}
	function change_enable_mostr(n)	{						//Обработка чекбоксов с изменением массивов
		var s_bgcolor;
		skip_bin_base = skip_bin_base.substr(0,n)+ (1-skip_bin_base[n]) +skip_bin_base.substr(n+1);
		skip_base = bin_2_hex(skip_bin_base);
		if (skip_bin_base[n]=="1") s_bgcolor="#B0FFB0"; else s_bgcolor="";
		document.getElementById("cell_"+n).style.backgroundColor = s_bgcolor;
		if ( url_cur.indexOf(url_1) != -1) GM_setValue("skip_base_1", skip_base);
		if ( url_cur.indexOf(url_2) != -1) GM_setValue("skip_base_2", skip_base);
	}
//************
	function all_mark_ok(zn){ 							//заполняем массив значением zn
		skip_base = fill_hex_massive(skip_base.length, zn);
		skip_bin_base = hex_2_bin(skip_base);
		var n = 0;
		var s_bgcolor;
		var bool = true;
		if (zn == "0") bool = false;
		for (var key in mob_rus_exp) {
			if (skip_bin_base[n]=="1") s_bgcolor="#B0FFB0"; else s_bgcolor="";
			document.getElementById("cell_"+n).style.backgroundColor = s_bgcolor;
			document.getElementById('set_monstr_'+n++).checked = bool;
		}
		if ( url_cur.indexOf(url_1) != -1) GM_setValue("skip_base_1", skip_base);
		if ( url_cur.indexOf(url_2) != -1) GM_setValue("skip_base_2", skip_base);
	}
//************
	function all_flying_mark(){ 							//заполняем летающих существ
		var n = 0;
		for (var key in mob_rus_exp) {
			if (mob_rus_exp[key][3] == 1) {
				skip_bin_base[n]=true;
				document.getElementById("cell_"+n).style.backgroundColor = "#B0FFB0";
				document.getElementById('set_monstr_'+n).checked = true;
			} 
		n++;
		}
		skip_base = bin_2_hex(skip_bin_base);
		if ( url_cur.indexOf(url_1) != -1) GM_setValue("skip_base_1", skip_base);
		if ( url_cur.indexOf(url_2) != -1) GM_setValue("skip_base_2", skip_base);
	}
//************
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 с моими вставками и комментариями **********************************
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() - 590 ) / 2 ) + 'px';
	bgc.style.width = '590px';
	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;">'+
	//заголовок окна настроек
	'<table><tr><td colspan=3><b>'+str_start+'<font style="color:#0070FF;">'+version+'</font></b>'+
	//кнопка закрытия
	'<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><hr/>'+
	//Опыт с помощником 50/50
	'<label><input type=checkbox '+(enable_Exp_Half==1?"checked":"")+' id=set_enable_Exp_Half title=""> '+str_show_1+'</label><br>'+
        //кол-во для мин.прироста
	'<label><input type=checkbox '+(enable_5_procent==1?"checked":"")+' id=set_enable_5_procent title=""> '+str_show_2+'</label><br>'+
        //подсвечивать выгодные охоты
	'<label><input type=checkbox '+(only_Gud_ExpUm==1?"checked":"")+' id=set_only_Gud_ExpUm title=""> '+str_hilight+'</label><br>'+
        //Искать чужие охоты (в групповых боях). Обновление: 5с. 
	'<label><input type=checkbox '+(find_Hunt==1?"checked":"")+' id=set_find_Hunt title=""> '+str_find_hunt+'</label>'+
        //Предупреждать, если есть незапоненная охота. 
	'<label>'+str_beep_if_free+'<input type=checkbox '+(beep_if_free==1?"checked":"")+' id=set_beep_if_free title=""></label><br>'+
        //Рекорд из архива. 
	'<label><input type=checkbox '+(show_archive==1?"checked":"")+' id=set_show_archive title=""> '+str_show_archive+'</label><br>'+
        //Суммарное HP. 
	'<label><input type=checkbox '+(show_HP==1?"checked":"")+' id=set_show_HP title=""> '+str_show_HP+'</label><br>'+
        //Грин Пис. 
	'<label><input type=checkbox '+(grin_Pis==1?"checked":"")+' id=set_Grin_Pis title=""> '+str_Grin_Pis+'</label><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>' +
	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"><hr/>'+
	//Выбор пропусков str_skip_select_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>'+
	'<label>'+str_skip_no_half+'<img width="16" height="16" border="0" title="Бриллианты" src="http://hwm.cdnvideo.ru/i/diamond.gif">'+
	'<input type=checkbox '+(skip_no_half==1?"checked":"")+' id=set_skip_no_half title=""><b>)</b></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="5" maxlength="6"><input type="submit" id="set_limit_exp_ok" value="OK"></td></tr>'+
	'<tr><td colspan=3>'+
        //Выбор Отображать картинки в списке или нет
	'<label><input type=checkbox '+(pic_enable==1?"checked":"")+' id=set_pic_enable title=""> '+str_pic_enable+'</label><hr/>'+
        //Сделать кнопку настройки короткую/длинную
	'<label><input type=checkbox '+(short_button==1?"checked":"")+' id=set_short_button title=""> <font size="1" color="blue">'+str_short_button+'</font></label><hr/></td></tr>'+
	//ссылка на сайт скрипта
	'<tr><td width="40%"><a href="'+str_url+'">'+str_update+'</a></td><td colspan=2 width="60%" 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_find_Hunt"),		"click", change_find_Hunt);		//чек-бокс
	addEvent($("set_beep_if_free"),		"click", change_beep_if_free);		//чек-бокс
	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_koef_ok"),		"click", change_koef);			//поле ввода
	addEvent($("set_limit_exp_ok"),		"click", change_limit_exp);		//поле ввода
	addEvent($("set_skip_mode1"),		"click", change_skip_mode);		//радио
	addEvent($("set_skip_mode2"),		"click", change_skip_mode);		//радио
	addEvent($("set_skip_no_half"),		"click", change_skip_no_half);		//радио
	addEvent($("set_pic_enable"),		"click", change_pic_enable);		//чек-бокс
	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;
	show_List();
	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);
}
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);
}
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);
}
//*********** обработчики чек-боксов *****
function change_skip_no_half()		{GM_setValue("skip_no_half",	skip_no_half		= !skip_no_half);}
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_find_Hunt()		{GM_setValue("find_Hunt",	find_Hunt		= !find_Hunt);}
function change_beep_if_free()		{GM_setValue("beep_if_free",	beep_if_free		= !beep_if_free);}
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_Grin_Pis()		{GM_setValue("grin_Pis",	grin_Pis		= !grin_Pis);}
function change_pic_enable()		{GM_setValue("pic_enable",	pic_enable		= !pic_enable);}
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 = {//249 существ. Cтруктура: [Опыт,HP,link on picture,flying] 
		"Абордажники":			[30,16	,"bpirate"         ,0],
		"Адепты":			[121,80	,"zealot"          ,0],
		"Адские жеребцы":		[136,50	,"nightmare"       ,0],
		"Адские жнецы":			[250,99	,"zhryak"          ,0],
		"Адские псы":			[33,15	,"demondog"        ,0],
		"Ангелы":			[330,180,"angel"           ,1],
		"Арбалетчики":			[19,10	,"marksman"        ,0],
		"Архангелы":			[390,220,"archangel"       ,1],
		"Архидемоны":			[312,211,"archdemon"       ,0],
		"Архидьяволы":			[311,199,"archdevil"       ,0],
		"Архиличи":			[110,55	,"archlich"        ,0],
		"Архимаги":			[70,30	,"archmage"        ,0],
		"Ассасины":			[33,14	,"assasin"         ,0],
		"Астральные драконы":		[310,150,"ghostdragon"     ,1],
		"Баньши":			[205,110,"banshee"         ,0],
		"Бегемоты":			[350,210,"behemoth"        ,0],
		"Берсерки":			[42,25	,"berserker"       ,0],
		"Бестии":			[30,16	,"maiden"          ,0],
		"Бесы":				[6,4	,"imp"             ,0],
		"Бехолдеры":			[33,22	,"beholder"        ,0],
		"Боевые грифоны":		[45,35	,"battlegriffin"   ,1],
		"Боевые единороги":		[135,77	,"silverunicorn"   ,0],
		"Боевые кентавры":		[21,10	,"mcentaur"        ,0],
		"Боевые маги":			[72,29	,"battlemage"      ,0],
		"Вампиры":			[68,30	,"vampire"         ,0],
		"Вармонгеры":			[36,20	,"warmong"         ,0],
		"Ведьмы-призраки":		[30,20	,"cursed_"         ,1],
		"Ведьмы моря":			[70,35	,"priestessup"     ,0],
		"Великаны-лучники":		[130,100,"giantarch"       ,0],
		"Великие левиафаны":		[300,250,"upleviathan"     ,0],
		"Верховные друиды":		[101,38	,"ddeld"           ,0],
		"Вестники смерти":		[205,100,"wraith"          ,0],
		"Виверны":			[170,90	,"wyvern"          ,1],
		"Визири джиннов":		[110,50	,"djinn_vizier"    ,1],
		"Владычицы тени":		[185,90	,"matriarch"       ,0],
		"Водные элементали":		[57,43	,"water"           ,0],
		"Вожаки":			[100,48	,"chieftain"       ,0],
		"Воздушные элементали":		[59,30	,"air"             ,1],
		"Воины-наёмники":		[25,24	,"mercfootman"     ,0],
		"Воители":			[12,12	,"shieldguard"     ,0],
		"Воры-колдуны":			[35,30	,"thiefmage"       ,0],
		"Воры-разведчики":		[35,45	,"thiefwarrior"    ,0],
		"Воры-убийцы":			[35,40	,"thiefarcher"     ,0],
		"Высшие ангелы":		[390,220,"seraph2"         ,1],
		"Высшие вампиры":		[70,35	,"vampirelord"     ,0],
		"Высшие личи":			[100,55	,"masterlich"      ,0],
		"Гарпии":			[29,15	,"harpy"           ,1],
		"Гарпии-ведьмы":		[45,15	,"harpyhag"        ,1],
		"Гарпунеры":			[18,10	,"harpooner"       ,0],
		"Гигантские ящеры":		[25,25	,"lizard_"         ,0],
		"Гидры":			[108,80	,"hydra"           ,0],
		"Глубоководные черти":		[140,105,"upseamonster"    ,0],
		"Гниющие зомби":		[17,23	,"rotzombie"       ,0],
		"Гоблины":			[5,3	,"goblin"          ,0],
		"Гоблины-лучники":		[9,3	,"goblinarcher"    ,0],
		"Гоблины-маги":			[9,3	,"goblinmag"       ,0],
		"Гоблины-трапперы":		[15,7	,"trapper"         ,0],
		"Гоги":				[13,13	,"gog"             ,0],
		"Големы смерти":		[329,350,"dgolem"          ,0],
		"Головорезы":			[6,8	,"brute"           ,0],
		"Горные стражи":		[24,12	,"mountaingr"      ,0],
		"Гремлины":			[5,5	,"gremlin"         ,0],
		"Гремлины-вредители":		[9,6	,"saboteurgremlin" ,0],
		"Грифоны":			[59,30	,"griffon"         ,1],
		"Громовержцы":			[162,120,"thunderlord"     ,0],
		"Демонессы":			[67,30	,"succubusm"       ,0],
		"Детёныши ящера":		[13,13	,"smalllizard_"    ,0],
		"Джинны":			[103,40	,"djinn"           ,1],
		"Джинны-султаны":		[110,45	,"djinn_sultan"    ,1],
		"Дикие энты":			[210,175,"savageent"       ,0],
		"Дочери земли":			[72,35	,"eadaughter"      ,0],
		"Дочери неба":			[75,35	,"sdaughter"       ,0],
		"Древние бегемоты":		[390,250,"abehemoth"       ,0],
		"Древние мумии":		[135,80 ,"amummy"          ,0],
		"Древние энты":			[210,181,"ancienent"       ,0],
		"Дриады":			[20,6	,"sprite"          ,1],
		"Друиды":			[74,34	,"dd_"             ,0],
		"Духи":				[27,20	,"poltergeist"     ,1],
		"Дьяволы":			[245,166,"devil"           ,0],
		"Дьяволята":			[10,6	,"vermin"          ,0],
		"Единороги":			[124,57	,"unicorn"         ,0],
		"Железные големы":		[33,18	,"golem"           ,0],
		"Жрецы рун":			[59,60	,"runepriest"      ,0],
		"Защитники веры":		[20,23	,"vindicator"      ,0],
		"Защитники гор":		[7,7	,"defender"        ,0],
		"Зелёные драконы":		[350,200,"greendragon"     ,1],
		"Земные элементали":		[63,75	,"earth"           ,0],
		"Злобные глаза":		[33,22	,"evileye"         ,0],
		"Злой пёс 2018":		[100,88	,"evildog"         ,0],
		"Зомби":			[11,17	,"zombie"          ,0],
		"Изумрудные драконы":		[400,200,"emeralddragon"   ,1],
		"Имперские грифоны":		[62,35	,"impergriffin"    ,1],
		"Инквизиторы":			[121,80	,"inquisitor"      ,0],
		"Искусительницы":		[65,26	,"seducer"         ,0],
		"Ифриты":			[200,90	,"efreeti"         ,1],
		"Ифриты султаны":		[250,100,"efreetisultan"   ,1],
		"Каменные горгульи":		[16,15	,"gargoly"         ,1],
		"Камнегрызы":			[67,55	,"kamnegryz"       ,0],
		"Камнееды":			[56,45	,"kamneed"         ,0],
		"Кентавры":			[13,6	,"fcentaur"        ,0],
		"Князья вампиров":		[70,40	,"vampireprince"   ,0],
		"Колоссы":			[350,175,"colossus"        ,0],
		"Кони преисподней":		[138,66	,"hellstallion"    ,0],
		"Костоломы":			[27,20	,"brawler"         ,0],
		"Костяные драконы":		[280,150,"bonedragon"      ,1],
		"Кочевые кентавры":		[20,9	,"ncentaur"        ,0],
		"Кошмары":			[140,66	,"stallion"        ,0],
		"Красные драконы":		[400,235,"reddragon"       ,1],
		"Крестьяне":			[5,4	,"paesant"         ,0],
		"Кристальные драконы":		[400,200,"crystaldragon"   ,1],
		"Кровавые ящеры":		[30,35	,"redlizard_"      ,0],
		"Кровоглазые циклопы":		[500,235,"bloodeyecyc"     ,0],
		"Кшатрии ракшасы":		[162,135,"rakshasa_kshatra",0],
		"Лазутчики":			[20,10	,"scout"           ,0],
		"Латники":			[21,26	,"swordman"        ,0],
		"Левиафаны":			[250,200,"leviathan"       ,0],
		"Лепреконы":			[11,7	,"lepr"            ,0],
		"Лесные снайперы":		[42,12	,"arcaneelf"       ,0],
		"Личи":				[87,50	,"lich"            ,0],
		"Ловчие":			[34,15	,"stalker"         ,0],
		"Лучники":			[15,7	,"archer"          ,0],
		"Маги":				[63,18	,"mage"            ,0],
		"Магма драконы":		[329,280,"magmadragon"     ,0],
		"Магнитные големы":		[57,28	,"magneticgolem"   ,0],
		"Магоги":			[16,13	,"magog"           ,0],
		"Мастера копья":		[17,12	,"skirmesher"      ,0],
		"Мастера лука":			[42,14	,"hunterelf"       ,0],
		"Мегеры":			[49,24	,"bloodsister"     ,0],
		"Медведи":			[22,22	,"bear"            ,0],
		"Метатели копья":		[11,10	,"spearwielder"    ,0],
		"Минотавры":			[39,31	,"minotaur"        ,0],
		"Минотавры-стражи":		[56,35	,"minotaurguard_"  ,0],
		"Минотавры-надсмотрщики":	[56,40	,"taskmaster"      ,0],
		"Могильные големы":		[400,400,"dgolemup"        ,0],
		"Монахи":			[101,54	,"priest"          ,0],
		"Морские дьяволы":		[300,190,"piratemonster"   ,0],
		"Морские черти":		[120,90	,"seamonster"      ,0],
		"Мумии":			[115,50	,"mummy"           ,0],
		"Мумии фараонов":		[135,70	,"pharaoh"         ,0],
		"Мятежники":			[10,7	,"enforcer"        ,0],
		"Наги":				[160,110,"naga"            ,0],
		"Наездники на волках":		[20,10	,"wolfrider"       ,0],
		"Наездники на гиенах":		[31,13	,"hyenarider"      ,0],
		"Наездники на кабанах":		[31,14	,"boarrider"       ,0],
		"Наездники на медведях":	[24,25	,"bearrider"       ,0],
		"Наездники на ящерах":		[65,40	,"lizardrider"     ,0],
		"Налётчики на волках":		[31,12	,"hobwolfrider"    ,0],
		"Нимфы":			[20,6	,"dryad_"          ,1],
		"Обсидиановые горгульи":	[26,20	,"obsgargoly"      ,1],
		"Огненные гончие":		[36,15	,"firehound"       ,0],
		"Огненные демоны":		[23,13	,"fdemon"          ,0],
		"Огненные драконы":		[255,230,"firedragon"      ,0],
		"Огненные птицы":		[117,65	,"firebird_"       ,1],
		"Огненные элементали":		[60,43	,"fire"            ,0],
		"Огры":				[60,50	,"ogre"            ,0],
		"Огры-ветераны":		[75,70	,"ogrebrutal"      ,0],
		"Огры-маги":			[74,65	,"ogremagi"        ,0],
		"Огры-шаманы":			[74,55	,"ogreshaman"      ,0],
		"Одноглазые пираты":		[190,120,"fatpirateup"     ,0],
		"Ополченцы":			[7,6	,"conscript"       ,0],
		"Орки":				[29,12	,"orc"             ,0],
		"Орки-вожди":			[38,18	,"orcchief"        ,0],
		"Орки-тираны":			[38,20	,"orcrubak"        ,0],
		"Орки-шаманы":			[33,13	,"orcshaman"       ,0],
		"Паладины":			[262,100,"paladin"         ,0],
		"Палачи":			[83,40	,"executioner"     ,0],
		"Пауки":			[15,9	,"spider"          ,0],
		"Пехотинцы":			[17,16	,"footman"         ,0],
		"Пещерные владыки":		[195,120,"pitlord_"        ,0],
		"Пещерные гидры":		[115,125,"deephydra"       ,0],
		"Пещерные демоны":		[157,110,"pitfiend_"       ,0],
		"Пещерные отродья":		[165,140,"pitspawn"        ,0],
		"Привидения":			[26,8	,"ghost"           ,1],
		"Призраки":			[27,19	,"spectre"         ,1],
		"Призраки пираток":		[17,8	,"gpiratka"        ,1],
		"Призрачные драконы":		[310,160,"spectraldragon"  ,1],
		"Принцессы ракшас":		[155,120,"rakshas"         ,0],
		"Проворные наездники":		[94,50	,"briskrider"      ,0],
		"Проклятые бегемоты":		[400,250,"dbehemoth"       ,0],
		"Проклятые горгульи":		[25,35	,"hgarg"	   ,1],
		"Птицы грома":			[115,65	,"thunderbird"     ,1],
		"Птицы тьмы":			[120,60	,"darkbird"        ,1],
		"Раджи ракшас":			[160,140,"rakshasa_raja"   ,0],
		"Рогатые демоны":		[14,13	,"hdemon"          ,0],
		"Рогатые жнецы":		[200,99	,"rapukk"          ,0],
		"Роки":				[104,55	,"roc"             ,1],
		"Рыцари":			[232,90	,"knight"          ,0],
		"Рыцари смерти":		[190,100,"deadknight"      ,0],
		"Рыцари тьмы":			[160,90	,"blackknight"     ,0],
		"Светлые единороги":		[135,80	,"pristineunicorn" ,0],
		"Свирепые бегемоты":		[410,280,"dbehemoth"       ,0],
		"Свободные циклопы":		[700,225,"untamedcyc"      ,0],
		"Сирены":			[60,20	,"siren"           ,0],
		"Сирены-искусительницы":	[70,24	,"upsiren"         ,0],
		"Скелеты":			[6,4	,"sceleton"        ,0],
		"Скелеты-арбалетчики":		[12,6	,"skmarksman"      ,0],
		"Скелеты-воины":		[10,5	,"sceletonwar"     ,0],
		"Скелеты-лучники":		[10,4	,"sceletonarcher"  ,0],
		"Скелеты-моряки":		[6,4	,"cpirate"  	   ,0],
		"Стальные големы":		[54,24	,"steelgolem"      ,0],
		"Старейшины рун":		[100,70	,"runepatriarch"   ,0],
		"Старшие гремлины":		[9,6	,"mastergremlin"   ,0],
		"Старшие демоны":		[20,13	,"jdemon"          ,0],
		"Старшие друиды":		[101,34	,"ddhigh"          ,0],
		"Степные бойцы":		[23,12	,"mauler"          ,0],
		"Степные воины":		[21,12	,"warrior"         ,0],
		"Степные волки":		[20,25	,"swolf"           ,0],
		"Степные гоблины":		[5,3	,"goblinus"        ,0],
		"Степные циклопы":		[390,220,"cyclopus"        ,0],
		"Стихийные горгульи":		[25,16	,"elgargoly"       ,1],
		"Стрелки":			[16,8	,"crossbowman"     ,0],
		"Стрелки-наёмники":		[15,8	,"mercarcher"      ,0],
		"Суккубы":			[61,20	,"succub"	   ,0],
		"Сумеречные ведьмы":		[157,80	,"witch"           ,0],
		"Сумеречные драконы":		[350,200,"shadowdragon"    ,1],
		"Танцующие с ветром":		[33,14	,"winddancer"      ,0],
		"Танцующие с клинками":		[20,12	,"dancer"          ,0],
		"Танцующие со смертью":		[33,12	,"bladedancer"     ,0],
		"Таны":				[131,100,"thane"           ,0],
		"Тёмные виверны":		[195,105,"foulwyvern"      ,1],
		"Тёмные всадники":		[94,50	,"grimrider"       ,0],
		"Тёмные гидры":			[115,125,"foulhydra"       ,0],
		"Тёмные горгульи":		[21,30	,"burbuly"         ,1],
		"Титаны":			[400,190,"titan"           ,0],
		"Титаны шторма":		[400,190,"stormtitan"      ,0],
		"Тролли":			[150,150,"troll"           ,0],
		"Убийцы":			[70,34	,"slayer"          ,0],
		"Умертвия":			[165,95	,"wight"           ,0],
		"Феи":				[12,5	,"pp"              ,1],
		"Фениксы":			[600,777,"phoenix"         ,1],
		"Фурии":			[49,16	,"fury"            ,0],
		"Хобгоблины":			[9,4	,"hobgoblin"       ,0],
		"Хозяева медведей":		[36,30	,"blackbearrider"  ,0],
		"Хозяйки ночи":			[185,100,"mistress"        ,0],
		"Церберы":			[41,15	,"cerberus"        ,0],
		"Циклопы":			[172,85	,"cyclop"          ,0],
		"Циклопы-генералы":		[187,100,"cyclopod_"       ,0],
		"Циклопы-короли":		[182,95	,"cyclopking"      ,0],
		"Циклопы-шаманы":		[190,105,"cyclopshaman"    ,0],
		"Чародеи-наёмники":		[35,36	,"mercwizard"      ,0],
		"Чемпионы":			[252,100,"champion"        ,0],
		"Черные тролли":		[180,180,"blacktroll"      ,0],
		"Черти":			[10,6	,"familiar"        ,0],
		"Чёрные драконы":		[400,240,"blackdragon"     ,1],
		"Чумные зомби":			[15,17	,"plaguezombie"    ,0],
		"Шаманки":			[66,30	,"shamaness"       ,0],
		"Штурмовые грифоны":		[62,52	,"battlegriffon"   ,1],
		"Эльфийские лучники":		[38,10	,"elf"             ,0],
		"Энты":				[187,175,"ent"             ,0],
		"Ядовитые пауки":		[30,14	,"spiderpois"	   ,0]
};
var n_monstrs	= 0; 
for (var key in mob_rus_exp) {n_monstrs++} 				//считаем кол-во существ в базе
if (skip_base.length*4 < n_monstrs) {					//если существ стало больше, чем в хранящемся массиве с пропусками,
	skip_base = fill_hex_massive(Math.ceil(n_monstrs/4), "0");	//то расширяем массив вверх до кол-ва кратного 4 и сбрасываем hex массив
}
var skip_bin_base = hex_2_bin(skip_base);				//создаем bin массив
//****************************************************
/** Библиотека юникода
*
* Реализует функции работы с юникодом.
* @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;
	 }
}
// ***************************************************
function needSkip(skip,mob,expirience,half)  //нужно ли пропускать моба?
{
	if ( (!skip_no_half) || (half) ) {  //Если режим поиска половинок, а это не половинка, то пропускаем
		if (skip_mode) {
			if ((limit_exp == 0) || (expirience*1 <= limit_exp*1)) skip = false;
		}  else {
			var n = 0;
			for (var key in mob_rus_exp) {
				if ((ustring(key) == mob) && (skip_bin_base[n] == "1")) { skip = false; return skip; }
				n++;
			}
		}
	}
	return skip;
}
//****************************************************
function skip_hunt() {  //пропустить охоту
	var x= document.querySelector("td >a[href*='ecostat.php']");
	if (x == null)	return;
	document.title = str_auto_skip;
	setTimeout(function() { window.location.href = location.protocol+'//'+location.hostname+'/'+'map.php?action=skip'; }, 2000);
}
//****************************************************
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 half_hunt = false;
	var diamand_hunt = false;
	var half_diamond_hunt = 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;
			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;
			if (str_hunt.indexOf("[1/2]") !=-1) {half_hunt = true} else {half_hunt = false}; //это половинка?
			if (str_hunt.indexOf(str_diamond_search) !=-1) {diamand_hunt = true} else {diamand_hunt = false}; //это brilliant?
			half_diamond_hunt = diamand_hunt || half_hunt;

			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.round(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);
//-------------- Вставим кусок кода ---------------
                        skip_all_mob  = needSkip(skip_all_mob,mob_name,full_exp,half_diamond_hunt);
//alert(needSkip(true,mob_name,full_exp,half_hunt)+' skip_mode: '+skip_mode);
			if ((!needSkip(true,mob_name,full_exp,half_diamond_hunt)) ){//&& (!skip_mode)) { //Если есть ли моб в нашем списке
				all_tables[k].childNodes[0].childNodes[0].childNodes[1].style.background = "#D1FFD1";
			}
//-------------------------------------------------
// total_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();
	if (!skip_all_mob && hunt_available && ((limit_exp != 0) || (!skip_mode )) ) 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 dt = 3000;
//	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 = elem.parentNode.parentNode.childNodes[3].childNodes[0]; //   
					if ((beep_if_free) && (elem2.tagName == 'B')) {
						new Audio("http://www.soundjay.com/button//button-46.mp3").play(); //button-46,47, beep-027
						dt = 15000;
					}
				}  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';}
				elem.innerHTML += '<font style="font-size:12px; color:#013220;'+ backgrn+'"><b>'+' '+total_exp+'</b></font>'+str_exp;
			}
		}
	} 
	if (find_Hunt) setTimeout(function(){ window.location.href = location.protocol+'//'+location.hostname+'/'+'group_wars.php?filter=hunt'; }, dt);
}
//****************************************************
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);
	}
}
//****************************************************
function hunt_hilight() { //заменяет ссылку в групповые бои на такую же с выделением свободных охот
	var link_old = "group_wars.php";
	var link_new = "group_wars.php?filter=hunt";
	var nodeList = document.getElementsByTagName("a");
	for (var i = 0; i < nodeList.length; i++)
	{
	  if (nodeList[i].href.indexOf(link_old)!=-1)
	  {
		nodeList[i].href = nodeList[i].href.replace(link_old,link_new);
		return;
	  }
	}
}
//****************************************************
getLevel();
showSettings();
show_List();
if (!grin_Pis) showExperience()
else hideHunt();
helpers();
hunt_hilight();
if (url_cur.indexOf('plstats_hunters') != -1) add_archive();
})();