HWM Map Move

HWM Mod - Перемещение по карте в один клик

目前为 2015-04-24 提交的版本。查看 最新版本

// ==UserScript==
// @name 		HWM Map Move
// @version 	2.02.3
// @description 	HWM Mod - Перемещение по карте в один клик
// @namespace	xo4yxa  &  fix Mefistophel_Gr
// @homepage 	http://hwm.xo4yxa.ru/js/mapmove/
// @include 	http://*heroeswm.ru/map.php*
// @include 	http://*lordswm.com/map.php*
// @include 	http://178.248.235.15/map.php*
// @grant 		GM_getValue
// @grant 		GM_setValue
// @grant 		GM_deleteValue
// ==/UserScript==

// (c) 2008-2013, xo4yxa - оригинальный скрипт
// 2014-2015, Mefistophel_Gr - последняя модификация 

(function() {

var ver = '2.02.3'

if (typeof GM_getValue != 'function') {
	this.GM_getValue=function (key,def) {return localStorage[key] || def;};
	this.GM_setValue=function (key,value) {return localStorage[key]=value;};
	this.GM_deleteValue=function (key) {return delete localStorage[key];};
}

var coop = '<center style="font-size:10px;">&#169; <a href="http://www.heroeswm.ru/pl_info.php?id=130" target=_blank style="font-size:10px;">xo4yxa</a> 2011-13   |   <a href="http://www.heroeswm.ru/pl_info.php?id=2287844" target=_blank style="font-size:10px;">Mefistophel_Gr</a> 2014-15   |    <a href="http://heroeswm.ru/forum_messages.php?tid=1401609&page=last" target=_blank style="font-size:10px;">HWM Map Move</a> v.' + ver + '   |    <span style="text-decoration:underline;cursor:pointer;font-weight:bold;" id="hwmmm_options">Настройки</span> <br><br> </center>' ;

var url = 'http://www.heroeswm.ru/' ;
var url_cur = location.href ;
var url_ref = document.referrer ;
//var ems = getI( "//embed[@name='map']" ).snapshotItem(0) ;
//var pl =  ems.getAttribute( 'FlashVars' ).split('=')[1].split(':') ;
var ems;
var els = document.getElementsByTagName('param');
for (var i = 0; i < els.length; i++) {
    var el = els[i];
    if (el.getAttribute('value').contains('map.swf')) {
        ems = els[i+1];
        break; 
    }
}

var pl =  ems.getAttribute( 'value' ).split('=')[1].split(':') ;
var road = new Array() ;
var transp = GM_getValue( "transport" , 3 ) ;

var trtime = new Array( 120 , 84 , 60 , 36 , 24 , 12 ) ; 	// время перемещения по прямой
var trtimed = new Array( 169 , 118 , 84 , 50 , 33 , 16 ) ; 	// время перемещения по диагонали
var plgn = [ 2 , 6 , 16 , 21 ] ; 			// сектора с ГН

var b = document.getElementsByTagName( 'body' ) ;

// вступать в бой ГРж
if( pl[14] == 0 && b[0].innerHTML.indexOf( 'ranger_attack.php' ) > 0 && ( GM_getValue( "checkgv" , 0 ) == 1 ) )
	window.location.href = url + 'ranger_attack.php' ;

//если в столице и ГРж нонстоп
/*
if( pl[14] == 0 && pl[0] == 1 && ( GM_getValue( "checkgvn" , 0 ) == 1 ) && url_ref == 'http://www.heroeswm.ru/map.php' )
	window.location.href = url + 'ranger_guild.php' ;
*/

// если было задание ГН и пришли в сектор где есть ГН
if( pl[14] == 0 && pl[13] == -1 && in_array( pl[0] , plgn ) && GM_getValue( "checkgn" , 0 ) == 1 )
    window.location.href = url + 'mercenary_guild.php' ;


/* карта локаций
 -- x
|
y
  47   48   49   50   51   52   53   54
  --   --   --   --   --   --   --   --   --   --
| 00 | 23 | 09 | 06 | 24 | 16 | 00 | 00 | 48 	//Непокор. степь, Орл. Гнездо, Мирн. Лагерь, Крист. Сад, Маг. Лес
  --   --   --   --   --   --   --   --   --   -- 
| 00 | 13 | 12 | 03 | 04 | 15 | 18 | 00 | 49 	//Солн. Город, Сияющ. Родн., Тигр. Озеро, Лес Разбойн., Медв. Гора, Мифр. Берег
  --   --   --   --   --   --   --   --   --   --
| 00 | 27 | 08 | 01 | 02 | 14 | 17 | 00 | 50 	//Великое Древо, Зел. Лес, Стол. Империи, Вост. Река, Магма Шахты, Порт. Город
  --   --   --   --   --   --   --   --   --   --
| 00 | 00 | 07 | 05 | 11 | 00 | 00 | 00 | 51 	//Равнина Ящеров, Долина Волков, Пещеры Драконов
  --   --   --   --   --   --   --   --   --   --
| 00 | 00 | 26 | 10 | 19 | 00 | 25 | 00 | 52 	//Дикие земли, Руины Портала, Великая Стена,   море  , Вост. Остров
  --   --   --   --   --   --   --   --   --   --
| 00 | 00 | 00 | 00 | 20 | 21 | 00 | 00 | 53 	//Равнина Титанов, Рыбачье село
  --   --   --   --   --   --   --   --   --   --
| 00 | 00 | 00 | 00 | 00 | 22 | 00 | 00 | 54 	//Замок Королевства
  --   --   --   --   --   --   --   --   --   --
*/

// отрисовка карты
var dm = document.createElement( 'div' );
dm.innerHTML = '<br><center> <a href="http://www.heroeswm.ru/ranger_guild.php"><img src="http://im.heroeswm.ru/i/houses/ranger.gif" border="0" title="Гильдия Рейнджеров"></a> <a href="http://www.heroeswm.ru/hunter_guild.php"><img src="http://im.heroeswm.ru/i/houses/hunter.gif" border="0" title="Гильдия Охотников"></a> <a href="http://www.heroeswm.ru/mercenary_guild.php"><img src="http://im.heroeswm.ru/i/houses/merc.gif" border="0" title="Гильдия Наёмников"></a> <a href="http://www.heroeswm.ru/thief_guild.php"><img src="http://im.heroeswm.ru/i/houses/thief.gif" border="0" title="Гильдия Воров"></a> &nbsp;&nbsp; <a href="http://www.heroeswm.ru/map.php?action=skip"><img src="http://i.imgur.com/rDyCmwf.png" border="0" title="Пропустить охоту"></a></center> <table>' +
'<tr>' +
'<td><div id="loc_23"></div></td>' +
'<td><div id="loc_9"></div></td>' +
'<td><div id="loc_6"></div></td>' +
'<td><div id="loc_24"></div></td>' +
'<td><div id="loc_16"></div></td>' +
'<td></td>' +
'</tr>' +
'<tr>' +
'<td><div id="loc_13"></div></td>' +
'<td><div id="loc_12"></div></td>' +
'<td><div id="loc_3"></div></td>' +
'<td><div id="loc_4"></div></td>' +
'<td><div id="loc_15"></div></td>' +
'<td><div id="loc_18"></div></td>' +
'</tr>' +
'<tr>' +
'<td><div id="loc_27"></div></td>' +
'<td><div id="loc_8"></div></td>' +
'<td><div id="loc_1"></div></td>' +
'<td><div id="loc_2"></div></td>' +
'<td><div id="loc_14"></div></td>' +
'<td><div id="loc_17"></div></td>' +
'</tr>' +
'<tr>' +
'<td></td>' +
'<td><div id="loc_7"></div></td>' +
'<td><div id="loc_5"></div></td>' +
'<td><div id="loc_11"></div></td>' +
'<td></td>' +
'<td></td>' +
'</tr>' +
'<tr>' +
'<td><div id="loc_25"></div></td>' +
'<td><div id="loc_26"></div></td>' +
'<td><div id="loc_10"></div></td>' +
'<td><div id="loc_19"></div></td>' +
'<td></td>' +
'<td></td>' +
'</tr>' +
'<tr>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td><div id="loc_20"></div></td>' +
'<td><div id="loc_21"></div></td>' +
'<td></td>' +
'</tr>' +
'<tr>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td></td>' +
'<td><div id="loc_22"></div></td>' +
'<td></td>' +
'</tr>' +
'</table><br>' +
coop + '<br>' ;

if( GM_getValue( "checklng" ) && GM_getValue( "checklng" ) == 1 ) {
    var check_lng_v = 1 ;
    var lng = 2 + 3 ;
} else {
    var check_lng_v = 0 ;
    var lng = 1 + 3 ;
}


// cX_Y  координаты по карте
var locX =
{
    c50_50:	1,	//Empire Capital
    c51_50:	2,	//East River
    c50_49:	3,	//Tiger's Lake
    c51_49:	4,	//Rogue's Wood
    c50_51:	5,	//Wolf's Dale
    c50_48:	6,	//Peaceful Camp
    c49_51:	7,	//Lizard's Lowland
    c49_50:	8,	//Green Wood
    c49_48:	9,	//Eagle's Nest 	//Inferno portal 2
    c50_52:	10,	//Portal Ruins 	//Inferno portal 1
    c51_51:	11,	//Dragon's Caves
    c49_49:	12,	//Shining Spring
    c48_49:	13,	//Sunny City
    c52_50:	14,	//Magma Mines
    c52_49:	15,	//Bear' Mountain
    c52_48:	16,	//Fairy Trees
    c53_50:	17,	//Harbour City
    c53_49:	18,	//Mythril Coast 	//Inferno portal 3
    c51_52:	19,	//Great Wall
    c51_53:	20,	//Titans' Valley
    c52_53:	21,	//Fishing Village
    c52_54:	22,	//Kingdom Castle
    c48_48:	23,	//Ungovernable Steppe
    c51_48:	24,	//Crystal Garden
    c49_52:	25,	//Empty 		//East Island (Old Location)
    c49_52:	26,	//The Wilderness
    c48_50:	27	//Sublime Arbor

}

// Массив локаций
var locArr = new Array(
//  0i	1x	2y	3r	4ne			5nr
    [] ,
    [ 1 , 	50 ,	50 ,	1 ,	'Empire Capital' ,		'Столица Империи' ] ,
    [ 2 ,	51 ,	50 ,	1 ,	'East River' ,		'Восточная Река' ] ,
    [ 3 ,	50 ,	49 ,	1 ,	'Tiger\'s Lake' ,		'Тигриное Озеро' ] ,
    [ 4 ,	51 ,	49 ,	1 ,	'Rogue\'s Wood' ,		'Лес Разбойников' ] ,
    [ 5 ,	50 ,	51 ,	1 ,	'Wolf\'s Dale' ,		'Долина Волков' ] ,
    [ 6 ,	50 ,	48 ,	1 ,	'Peaceful Camp' ,		'Мирный Лагерь' ] ,
    [ 7 ,	49 ,	51 ,	1 ,	'Lizard\'s Lowland' ,		'Равнина Ящеров' ] ,
    [ 8 ,	49 ,	50 ,	1 ,	'Green Wood' ,		'Зелёный Лес' ] ,
    [ 9 ,	49 ,	48 ,	1 ,	'Eagle\'s Nest' ,		'Орлиное Гнездо' ] ,
    [ 10 ,	50 ,	52 ,	1 ,	'Portal\'s ruins' ,		'Руины Портала' ] ,
    [ 11 ,	51 ,	51 ,	1 ,	'Dragon\'s Caves' ,		'Пещеры Драконов' ] ,
    [ 12 ,	49 ,	49 ,	1 ,	'Shining Spring' ,		'Сияющий Родник' ] ,
    [ 13 ,	48 ,	49 ,	1 ,	'Sunny City' ,		'Солнечный Город' ] ,
    [ 14 ,	52 ,	50 ,	1 ,	'Magma Mines' ,		'Магма Шахты' ] ,
    [ 15 ,	52 ,	49 ,	1 ,	'Bear\' Mountain' ,		'Медвежья Гора' ] ,
    [ 16 ,	52 ,	48 ,	1 ,	'Fairy Trees' ,		'Магический Лес' ] ,
    [ 17 ,	53 ,	50 ,	1 ,	'Harbour City ' ,		'Портовый Город' ] ,
    [ 18 ,	53 ,	49 ,	1 ,	'Mythril Coast' ,		'Мифриловый Берег' ] ,
    [ 19 ,	51 ,	52 ,	1 ,	'Great Wall' ,		'Великая Стена' ] ,
    [ 20 ,	51 ,	53 ,	1 ,	'Titans\' Valley' ,		'Равнина Титанов' ] ,
    [ 21 ,	52 ,	53 ,	1 ,	'Fishing Village' ,		'Рыбачье Село' ] ,
    [ 22 ,	52 ,	54 ,	1 ,	'Kingdom Castle' ,		'Замок Королевства' ] ,
    [ 23 ,	48 ,	48 ,	1 ,	'Ungovernable Steppe' ,	'Непокорная Степь' ] ,
    [ 24 ,	51 ,	48 ,	1 ,	'Crystal Garden' ,		'Кристальный Сад' ] ,
    [ 25 ,	49 ,	52 ,	1 ,	'Empty' ,			'Пусто' ] ,
    [ 26 ,	49 ,	52 ,	1 ,	'The Wilderness' ,		'Дикие Земли' ] ,
    [ 27 ,	48 ,	50 ,	1 ,	'Sublime Arbor' ,		'Великое Древо' ]
)

// location error
// сначала путь берёт диагональ, а потом катет
var locP =
{
    l1_14: 11 ,
    l1_17: 11 ,
    l1_26: 5 ,
    l1_27: 8 ,

    l2_14: 15 ,
    l2_17: 15 ,
    l2_18: 15 ,
    l2_21: 11 ,
    l2_22: 11 ,
    l2_27: 1 ,

    l3_14: 4 ,
    l3_16: 4 ,
    l3_17: 4 ,
    l3_26: 1 ,
    l3_27: 12 ,

    l4_14: 15 ,
    l4_16: 15 ,
    l4_17: 15 ,
    l4_21: 2 ,
    l4_22: 2 ,
    l4_26: 2 ,
    l4_27: 3 ,

    l5_14: 11 ,
    l5_17: 11 ,
    l5_19: 10 ,
    l5_20: 10 ,
    l5_21: 10 ,
    l5_22: 10 ,
    l5_27: 8 ,

    l6_2: 4 ,
    l6_16: 4 ,
    l6_26: 3 ,
    l6_27: 12 ,

    l7_13: 8 ,
    l7_14: 5 ,
    l7_17: 5 ,
    l7_23: 8 ,
    l7_26: 5 ,

    l8_14: 5 ,
    l8_17: 5 ,
    l8_26: 5 ,

    l9_16: 3 ,
    l9_26: 3 ,

    l10_27: 7 ,

    l11_3: 2 ,
    l11_6: 2 ,
    l11_9: 2 ,
    l11_21: 19 ,
    l11_22: 19 ,
    l11_26: 10 ,
    l11_27: 5 ,

    l12_14: 3 ,
    l12_16: 3 ,
    l12_17: 3 ,
    l12_26: 1 ,

    l13_14: 12 ,
    l13_16: 12 ,
    l13_17: 12 ,

    l14_1: 11 ,
    l14_2: 15 ,
    l14_3: 15 ,
    l14_4: 15 ,
    l14_6: 15 ,
    l14_8: 11 ,
    l14_9: 15 ,
    l14_12: 15 ,
    l14_13: 15 ,
    l14_18: 15 ,
    l14_21: 11 ,
    l14_22: 11 ,
    l14_23: 15 ,
    l14_24: 15 ,
    l14_27: 11 ,

//    l15_6: 4 ,
//    l15_9: 4 ,
    l15_23: 24 ,
    l15_26: 2 ,
    l15_27: 4 ,

    l16_1: 15 ,
    l16_2: 15 ,
    l16_3: 15 ,
    l16_4: 15 ,
    l16_5: 15 ,
    l16_6: 15 ,
    l16_7: 15 ,
    l16_8: 15 ,
    l16_9: 15 ,
    l16_10: 15 ,
    l16_11: 15 ,
    l16_12: 15 ,
    l16_13: 15 ,
    l16_19: 15 ,
    l16_20: 15 ,
    l16_23: 15 ,
    l16_24: 15 ,
    l16_26: 15 ,
    l16_27: 15 ,

    l17_2: 15 ,
    l17_5: 14 ,
    l17_7: 14 ,
    l17_10: 14 ,
    l17_11: 14 ,
    l17_19: 14 ,
    l17_20: 14 ,
    l17_21: 14 ,
    l17_22: 14 ,
    l17_26: 14 ,
    l17_27: 14 ,

    l18_1: 15 ,
    l18_2: 15 ,
    l18_5: 15 ,
    l18_6: 15 ,
    l18_7: 15 ,
    l18_8: 15 ,
    l18_9: 15 ,
    l18_10: 17 ,
    l18_11: 17 ,
    l18_14: 17 ,
    l18_19: 17 ,
    l18_20: 17 ,
    l18_21: 17 ,
    l18_22: 17 ,
    l18_23: 15 ,
    l18_24: 15 ,
    l18_26: 17 ,
    l18_27: 15 ,

    l19_1: 11 ,
    l19_3: 11 ,
    l19_5: 10 ,
    l19_6: 11 ,
    l19_7: 10 ,
    l19_8: 10 ,
    l19_9: 11 ,
    l19_12: 10 ,
    l19_13: 10 ,
    l19_14: 11 ,
    l19_15: 11 ,
    l19_16: 11 ,
    l19_17: 11 ,
    l19_18: 11 ,
    l19_23: 10 ,
    l19_27: 5 ,

    l20_14: 19 ,
    l20_15: 19 ,
    l20_16: 19 ,
    l20_17: 19 ,
    l20_18: 19 ,
    l20_27: 19 ,

    l21_14: 19 ,
    l21_15: 19 ,
    l21_16: 19 ,
    l21_17: 19 ,
    l21_18: 19 ,
    l21_27: 20 ,

    l22_17: 21 ,
    l22_18: 21 ,
    l22_27: 20 ,

    l23_16: 15 ,
    l23_26: 1 ,
    l23_27: 13 ,

    l24_16: 15 ,
    l24_21: 2 ,
    l24_22: 2 ,
    l24_26: 2 ,
    l24_27: 3 ,

    l26_7: 5 ,
    l26_8: 5 ,
    l26_9: 5 ,
    l26_11: 10 ,
    l26_12: 5 ,
    l26_13: 5 ,
    l26_14: 10 ,
    l26_17: 10 ,
    l26_20: 10 ,
    l26_21: 10 ,
    l26_22: 10 ,
    l26_23: 5 ,
    l26_24: 5 , 
    l26_27: 5 , 

    l27_1: 8 ,
    l27_2: 8 ,
    l27_3: 12 ,
    l27_4: 12 ,
    l27_5: 7 ,
    l27_6: 12 ,
    l27_9: 12 ,
    l27_10: 7 ,
    l27_11: 7 ,
    l27_14: 11 ,
    l27_15: 4 ,
    l27_16: 15 ,
    l27_17: 15 ,
    l27_18: 12 ,
    l27_19: 10 ,
    l27_20: 10 ,
    l27_21: 20 ,
    l27_22: 20 ,
    l27_23: 13 ,
    l27_24: 12 ,
    l27_26: 8

}


init();

function init() {
try {
   var el = ems;
   nado = el.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode
/*
0 - cur place
1 - view place
2-10 - have move
11 - gO
12 - gV
13 - gN
14 - loc from move (only move)
15 - last time move (only move)
16 - all time move (only move)
17 - ?
18 - clan id
19 - ?
20 - ?
*/

//+ отображение карты
    var vm = GM_getValue( "checkvm" ) ;
    if( vm == 1 ) {
        //ems.style.display = 'none' ; 	//старый формат
         document.getElementsByName('movie')[2].parentNode.parentNode.style.display = 'none';
    } else {
//        ems.width = 500; 	// широкая карта, убрана в 1.16.4
    }
//-

    // происходит передвижение
    if( pl[14] > 0 ) {
        div = document.createElement( 'div' );
        div.innerHTML = '<br><center><div id="hint_move">Пункт назначения: <b>' + locArr[pl[0]][lng] + '</b></center></div><br>' + coop ;
        nado.appendChild( div );
        $("hwmmm_options").addEventListener( "click", setting , false );

        var mTitle = document.title ;
        var start_time = new Date() ;
        update_time( start_time.getTime() , mTitle ) ;
    }
    // стоим в секторе
    else {
        nado.appendChild( dm ) ;
        $("hwmmm_options").addEventListener( "click", setting , false );
        for( l = 1 ; l < locArr.length; l++ ) {
            if(l!=25) {
                var d = $( 'loc_' + l ) ;
                d.parentNode.style.textAlign = 'center' ;
                d.style.padding = '1px 3px' ;
                d.style.fontSize = '11px' ;
                d.parentNode.style.border = pl[1] == l ? '1px solid #00f' : '1px solid #abc' ;
                // если текущий сектор
                if( l == pl[0] ) {
                    d.style.fontWeight = 'bold' ;
                    d.parentNode.style.backgroundColor = 'FFF8DC' ;
                    if( pl[13] != 0 && l == pl[13] ) {
                        d.style.color = 'FF0000' ;
                    }
                    d.innerHTML = locArr[l][lng] ;
                }
                // если какой другой
                else {
                    a = document.createElement( 'a' );
                    a.style.fontSize = '11px' ;
                    a.href = 'http://www.heroeswm.ru/move_sector.php?id='+l ;
                    // если задание Наёмников
                    if( pl[13] != 0 && l == pl[13] ) {
                        a.style.color = 'FF0000' ;
                    }
                    a.innerHTML = locArr[l][lng] ;
                    a.setAttribute( 'tZ' , l ) ;

                    a.addEventListener( "mouseover", viewPath , false );
                    a.addEventListener( "mouseout", hidePath , false );

                    a.title = locArr[l][lng] + ' (' + getTimeL( pl[0] , l , 0 ) + ')' ;
                    d.appendChild( a );
                }

                if( pl[13] == -1 && in_array( l , plgn ) ) {
                    b = document.createElement( 'b' );
                    b.style.color = '#00F' ;
                    b.innerHTML = ' X' ;
                    d.appendChild( b ) ;
                }

                if( GM_getValue( "checkvs" ) ) {
                    if( pl[1] != l ) {
                        a = document.createElement( 'a' );
                        a.href= 'http://www.heroeswm.ru/map.php?cx=' + locArr[l][1] + '&cy=' + locArr[l][2] ;
                        a.style.display = 'block' ;
                        a.style.width = '100%';
                        a.title = 'Осмотреть сектор '+locArr[l][lng] ;
                        vi = document.createElement( 'img' );
                        vi.src = "data:image/gif,GIF89a%10%00%10%00%D5%00%00B%40B%15%15%18((-PPUzz%7FHHJ%5D%5D_--.zz%7BWWX23%3BEHS%80%88%A2rx%8C%DA%DD%E7bj%80sx%87%88%8C%97%7D%85%98HO_%7D%85%97%88%8C%95psz%DC%DD%DF%D4%D5%D7x%7F%8C%2B-0%C2%DF%FF%DF%F4%FFMOPmop%EF%F1%F2%E7%F9%FF%EA%FD%FF%E7%FF%FF%13%15%15%E9%FF%FF%18%1A%1A%FA%FF%FFmoo%FC%FF%FF%FD%FF%FFZ%5B%5B%5D%5D%5B%40%3F%3F%FF%FF%FF%16%16%16%10%10%10%05%05%05%00%00%00%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%002%00%2C%00%00%00%00%10%00%10%00%00%06%5C%40%99pH%2C%12%13%01%8D%80e%24%02ZP%A8%A2)k%C8%A2%D1As%01Ma'%CDF%D4%14%7D4!-%94%A8%95%BAJ%9A%07P%8B%E4mm%2C%D4H(%CA%A9%AC%A82%05%19%0C%14%041*%17%80E0%1D%18%8AD%2F%06%89%8FB%25'%1F%94B.%08-%992%23%1E%9ECA%00%3B" ;
                        vi.style.border = '0px' ;
                        a.appendChild( vi ) ;
                        d.parentNode.appendChild( a ) ;
                    }
                }
            }
        }
    }
                    } catch(e) {
                       alert(e)
                    }
}

function update_time( start , title ) {
    new_time=new Date();
    s=pl[15]-Math.round((new_time.getTime()-start)/1000.);
    m=0;h=0;
    if(s<0) {
    } else {
      if(s>59) {
        m=Math.floor(s/60);
        s=s-m*60;
      }
      if(m>59) { 
        h=Math.floor(m/60);
        m=m-h*60;
      }
      if(s<10) { s="0"+s; }
      if(m<10) { m="0"+m; }
//        document.title=" ["+h+":"+m+":"+s+"] " + title;
        document.title=" ["+m+":"+s+"] " + title;
        setTimeout( function(){ update_time(start,title)},999);
    }
}


function setCheck(ch) {
    if( GM_getValue( ch ) && GM_getValue( ch ) == 1 )
        GM_setValue( ch , 0 );
    else
        GM_setValue( ch , 1 );
}

function setTransport(id) {
    $("transp"+transp).style.background="#F6F3EA";
    $("transp"+id).style.background="#0000ff";
    GM_setValue( "transport" , id );
    transp = id ;
}

function getTimeL( cz , mz , t ) {
/*  cz	текущий сектор обсчёта
    mz	конечный сектор обсчёта
    t	сумма времени
*/
    // если прибыли в конечный пункт
    if( mz == cz ) {
        var myT = new Date(t*1000)
        myTs = myT.getSeconds()
        return myT.getMinutes() + ':' + ( myTs < 10 ? '0' : '' ) + myTs ;
    }

    var nz = 0; 		// следующий сектор, к которому надо действительно двигаться

    var kC = locArr[cz]; 	//координаты текущие
    if(kC == undefined) return 0;
    var kM = locArr[mz]; 	//координаты назначения

    id1 = eval( 'locP.l' + cz + '_' + mz ) //id исключение

    // если есть исключения, следующий сектор будет равен ид исключения
    if( id1 && id1 > 0 ) {
        nz = id1 ;
    }

    // если исключения, то переназначаем координаты назначения
    if( nz != 0 ) var kM = locArr[nz] ;

    tx = kM[1] > kC[1] ? 1 : ( kM[1] == kC[1] ? 0 : -1 ) ;
    ty = kM[2] > kC[2] ? 1 : ( kM[2] == kC[2] ? 0 : -1 ) ;
    nx = parseInt( kC[1] ) + tx ;
    ny = parseInt( kC[2] ) + ty ;

//    t = ( ty == 0 || tx == 0 ) ? t + 120 : t + 169 ;
    t = ( ty == 0 || tx == 0 ) ? t + trtime[transp] : t + trtimed[transp] ;
    id = eval( 'locX.c' + nx + '_' + ny ) ;
//    t = t + ' ' + id + '(' + nz + ')' ;

    return getTimeL( id , mz , t );
}


function viewPath() {
    mz = this.getAttribute( 'tz' ) ;

    path( pl[0] , mz ) ;
    function path( cz , mz ) {
        if ( mz == cz )	return ;
        var nz = 0; 			// следующий сектор, к которому надо действительно двигаться
        var kC = locArr[cz]; 		//координаты текущие
        var kM = locArr[mz]; 		//координаты назначения
        id1 = eval( 'locP.l' + cz + '_' + mz ) 	//ID исключение
        // если есть исключения, следующий сектор будет равен id исключения
        if( id1 && id1 > 0 ) {
            nz = id1 ;
        }

        // если исключения, то переназначаем координаты назначения
        if( nz != 0 ) var kM = locArr[nz] ;
        tx = kM[1] > kC[1] ? 1 : ( kM[1] == kC[1] ? 0 : -1 ) ;
        ty = kM[2] > kC[2] ? 1 : ( kM[2] == kC[2] ? 0 : -1 ) ;
        nx = parseInt( kC[1] ) + tx ;
        ny = parseInt( kC[2] ) + ty ;
        id = eval( 'locX.c' + nx + '_' + ny ) ;

        td = $('loc_'+id)
        td.parentNode.style.backgroundColor = 'F0E68C' ;
        road[road.length] = id ;
        path( id , mz );
    }
    return ;
}

function hidePath() {
    for( i = 0; i < road.length ; i ++ ) {
        $('loc_'+road[i]).parentNode.style.backgroundColor = 'DDD9CD' ;
    }
    road = new Array() ;
}


//+ закрытие форм
function form_close() {
    bg = $('bgOverlay') ;
    bgc = $('bgCenter') ;
    if( bg ) {
        bg.style.display = bgc.style.display = 'none' ;
    }
}
//-


//+ форма настроек
function setting() {
    bg = $('bgOverlay') ;
    bgc = $('bgCenter') ;
    if( !bg ) {
        bg = document.createElement('div') ;
        bg.id = 'bgOverlay' ;
        document.body.appendChild( bg );
        bg.style.position = 'absolute' ;
        bg.style.left = '0';
        bg.style.width = '100%';
        bg.style.height = '100%';
        bg.style.background = "#000000";
        bg.style.opacity = "0.5";
        bg.addEventListener( "click", form_close , false );

        bgc = document.createElement('div') ;
        bgc.id = 'bgCenter' ;
        document.body.appendChild( bgc );
        bgc.style.position = 'absolute' ;
        bgc.style.width = '400px';
        bgc.style.background = "#F6F3EA";
        bgc.style.left = ( ( document.body.offsetWidth - 400 ) / 2 ) + 'px' ;
    }

    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" title="Закрыть">x</div> <center><table> <tr><td><b>Настройки:</b></td></tr><tr><td><div><label style="cursor:pointer;"><input type="checkbox" id="id_check_vm"> Не отображать flash-карту</lable></div>' +
    '<div><label style="cursor:pointer;"><input type="checkbox" id="id_check_vs"> Отображать кнопки осмотра секторов</lable></div>' +
    '<div><label style="cursor:pointer;"><input type="checkbox" id="id_check_lng" title=""lng ru> Названия секторов по-русски</lable></div>' +
    '<div><label style="cursor:pointer;"><input type="checkbox" id="id_check_gn"> Сдавать задания Гильдии Наёмников с дороги</lable></div>' +
    '<div><label style="cursor:pointer;"><input type="checkbox" id="id_check_gv"> Автоматически вступать в бои Гильдии Рейнджеров</lable></div>' +
    '<div><label style="cursor:pointer;"><input type="checkbox" id="id_check_gvn"> Заходить в Гильдию Рейнджеров</lable></div><br><div>Ваш транспорт (<a href="http://www.heroeswm.ru/shop.php?cat=transport">транспорт в магазине</a>):<br><table><tr><td style="padding:5px;cursor:pointer;" id="transp3"><img src="http://www.heroeswm.ru/i/transport/3.jpg"></td><td style="padding:5px;cursor:pointer;" id="transp4"><img src="http://www.heroeswm.ru/i/transport/4.jpg"></td><td style="padding:5px;cursor:pointer;" id="transp5"><img src="http://www.heroeswm.ru/i/transport/5.jpg"></td></tr></table></div></td></tr></table></center></div>' ;

    $("transp"+transp).style.background="#0000ff";
    $("transp3").addEventListener( "click", function(){setTransport(3)} , false );
    $("transp4").addEventListener( "click", function(){setTransport(4)} , false );
    $("transp5").addEventListener( "click", function(){setTransport(5)} , false );

    $("bt_close").addEventListener( "click", form_close , false );

    var check_gv = $('id_check_gv')
    check_gv.checked = GM_getValue( "checkgv" , 0 ) == 1 ? 'checked' : '' ;
    check_gv.addEventListener( "click", function(){setCheck('checkgv')} , false );

    var check_gvn = $('id_check_gvn')
    check_gvn.checked = GM_getValue( "checkgvn" , 0 ) == 1 ? 'checked' : '' ;
    check_gvn.addEventListener( "click", function(){setCheck('checkgvn')} , false );

    var check_gn = $('id_check_gn')
    check_gn.checked = GM_getValue( "checkgn" , 0 ) == 1 ? 'checked' : '' ;
    check_gn.addEventListener( "click", function(){setCheck('checkgn')} , false );

    var check_vm = $('id_check_vm')
    check_vm.checked = GM_getValue( "checkvm" , 0 ) == 1 ? 'checked' : '' ;
    check_vm.addEventListener( "click", function(){setCheck('checkvm')} , false );

    var check_vs = $('id_check_vs')
    check_vs.checked = GM_getValue( "checkvs" , 0 ) == 1 ? 'checked' : '' ;
    check_vs.addEventListener( "click", function(){setCheck('checkvs')} , false );

    var check_lng = $('id_check_lng') ;
    check_lng.checked = check_lng_v == 1 ? 'checked' : '' ;
    check_lng.addEventListener( "click", function(){setCheck('checklng')} , false );

    bg.style.top = (-document.body.scrollTop)+'px';
    bgc.style.top = ( document.body.scrollTop + 100 ) + 'px';
    bg.style.display = bgc.style.display = 'block' ;
}
//-


function getI( xpath ) {
    return document.evaluate( xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
}

function $( id ) { return document.getElementById( id ); }

function in_array(needle, haystack, strict) {
    var found = false, key, strict = !!strict;
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
    return found;
}

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址