// ==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;">© <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> <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;
}
})();