DeletedUser
Guest
Nombre del script: Script de proximidad
Descripción: Ordena los pueblos propios por distancia a las coordenadas que le pones. No necesita premium. Pongo 3 versiones del script. La primera, enlaza a la plaza de reuniones y ordena los pueblos. El segundo hace lo mismo, pero sin enlazar a la plaza de reuniones. El tercero, en lugar de decir la distancia, calcula el tiempo que tardaria (en minutos) en llegar al pueblo en cuestión la unidad deseada. Este tampoco enlaza a la plaza de reuniones.
1. ENLAZA A LA PLAZA DE REUNIONES
[spoil]
[/spoil]
2. NO ENLAZA A LA PLAZA DE REUNIONES
[spoil]
[/spoil]
3. VELOCIDAD UNIDADES
Para modificar la unidad con que se quiere saber el tiempo que tardaria, se tiene que modificar el texto en rojo con la unidad deseada.
Este script está configurado para un mundo con velocidad 1.5 y a velocidad de las unidades 0.8 (el 16, vamos). Para que esté configurado para otros mundos, es cuestión de poner la velocidad por campo de cada unidad en el mundo en que queramos usar este script.
[spoil]
[/spoil]
Descripción: Ordena los pueblos propios por distancia a las coordenadas que le pones. No necesita premium. Pongo 3 versiones del script. La primera, enlaza a la plaza de reuniones y ordena los pueblos. El segundo hace lo mismo, pero sin enlazar a la plaza de reuniones. El tercero, en lugar de decir la distancia, calcula el tiempo que tardaria (en minutos) en llegar al pueblo en cuestión la unidad deseada. Este tampoco enlaza a la plaza de reuniones.
1. ENLAZA A LA PLAZA DE REUNIONES
[spoil]
Código:
javascript:
var targetCoord = prompt('Coordenadas', '');
if (targetCoord) {
function fnDistance(a, b) {
var a = a.split('|');
var b = b.split('|');
var c = b[0] - a[0];
var d = b[1] - a[1];
return Math.sqrt(c * c + d * d)
}
var win = (window.main || self),
$ = win.$;
var table = $('[id$=_table]').filter(':not(#group_table)').get(0);
var rows = [];
var ii = ($('[src*="note.png"],[class*="note-icon"]').length > 0) ? 1 : 0;
var qq, coord, row, cell, villageID, distance;
$('.dsm').remove();
$('<th class="dsm">Distancia</th><th class="dsm">Plaza de reuniones</th>').insertAfter($(table.tBodies[0].rows[0]).find('th:eq(' + ii + ')'));
for (qq = 1; qq < table.tBodies[0].rows.length; qq++) {
row = table.tBodies[0].rows[qq];
coord = $.trim($(row.cells[ii]).text()).match(/\d+\|\d+/g);
coord = coord ? coord[coord.length - 1] : null;
distance = fnDistance(coord, targetCoord);
villageID = $(row.cells[ii]).html().match(/village\=\d+/);
cell = row.insertCell(ii + 1);
cell.className = 'dsm';
cell.innerHTML = distance.toFixed(2);
cell = row.insertCell(ii + 2);
cell.className = 'dsm';
cell.innerHTML = '<a href="' + win.game_data.link_base_pure.replace(/village\=\d*/i, villageID).replace(/screen\=\w*/i, 'screen=place') + '" target="_blank"><img src="graphic/buildings/place.png" alt="Rally point" width="16" height="16"/></a>';
rows[qq - 1] = [distance, row];
}
rows = rows.sort(function (a, b) {
return a[0] - b[0];
});
for (qq = 0; qq < rows.length; qq++) {
table.tBodies[0].appendChild(rows[qq][1]);
}
}
void(0);
2. NO ENLAZA A LA PLAZA DE REUNIONES
[spoil]
Código:
javascript:
var targetCoord = prompt('Coordenadas', '');
if (targetCoord) {
function fnDistance(a, b) {
var a = a.split('|');
var b = b.split('|');
var c = b[0] - a[0];
var d = b[1] - a[1];
return Math.sqrt(c * c + d * d)
}
var win = (window.main || self),
$ = win.$;
var table = $('[id$=_table]').filter(':not(#group_table)').get(0);
var rows = [];
var ii = ($('[src*="note.png"],[class*="note-icon"]').length > 0) ? 1 : 0;
var qq, coord, row, cell, villageID, distance;
$('.dsm').remove();
$('<th class="dsm">Distancia</th>').insertAfter($(table.tBodies[0].rows[0]).find('th:eq(' + ii + ')'));
for (qq = 1; qq < table.tBodies[0].rows.length; qq++) {
row = table.tBodies[0].rows[qq];
coord = $.trim($(row.cells[ii]).text()).match(/\d+\|\d+/g);
coord = coord ? coord[coord.length - 1] : null;
distance = fnDistance(coord, targetCoord);
villageID = $(row.cells[ii]).html().match(/village\=\d+/);
cell = row.insertCell(ii + 1);
cell.className = 'dsm';
cell.innerHTML = distance.toFixed(2);
rows[qq - 1] = [distance, row];
}
rows = rows.sort(function (a, b) {
return a[0] - b[0];
});
for (qq = 0; qq < rows.length; qq++) {
table.tBodies[0].appendChild(rows[qq][1]);
}
}
void(0);
3. VELOCIDAD UNIDADES
Para modificar la unidad con que se quiere saber el tiempo que tardaria, se tiene que modificar el texto en rojo con la unidad deseada.
return Math.sqrt(c * c + d * d)*lanza
Este script está configurado para un mundo con velocidad 1.5 y a velocidad de las unidades 0.8 (el 16, vamos). Para que esté configurado para otros mundos, es cuestión de poner la velocidad por campo de cada unidad en el mundo en que queramos usar este script.
var lanza = 15;
var espada = 18;
var hacha = 15;
var espia = 8;
var ligera = 8;
var pesada = 9;
var paladin = 9;
var ariete = 25;
var catapulta = 25;
var noble = 29;
[spoil]
Código:
javascript:
var targetCoord = prompt('Coordenadas', '');
if (targetCoord) {
function fnDistance(a, b) {
var a = a.split('|');
var b = b.split('|');
var c = b[0] - a[0];
var d = b[1] - a[1];
var lanza = 15;
var espada = 18;
var hacha = 15;
var espia = 8;
var ligera = 8;
var pesada = 9;
var paladin = 9;
var ariete = 25;
var catapulta = 25;
var noble = 29;
return Math.sqrt(c * c + d * d)*lanza
}
var win = (window.main || self),
$ = win.$;
var table = $('[id$=_table]').filter(':not(#group_table)').get(0);
var rows = [];
var ii = ($('[src*="note.png"],[class*="note-icon"]').length > 0) ? 1 : 0;
var qq, coord, row, cell, villageID, distance;
$('.dsm').remove();
$('<th class="dsm">Tiempo (min)</th>').insertAfter($(table.tBodies[0].rows[0]).find('th:eq(' + ii + ')'));
for (qq = 1; qq < table.tBodies[0].rows.length; qq++) {
row = table.tBodies[0].rows[qq];
coord = $.trim($(row.cells[ii]).text()).match(/\d+\|\d+/g);
coord = coord ? coord[coord.length - 1] : null;
distance = fnDistance(coord, targetCoord);
villageID = $(row.cells[ii]).html().match(/village\=\d+/);
cell = row.insertCell(ii + 1);
cell.className = 'dsm';
cell.innerHTML = distance.toFixed(2);
rows[qq - 1] = [distance, row];
}
rows = rows.sort(function (a, b) {
return a[0] - b[0];
});
for (qq = 0; qq < rows.length; qq++) {
table.tBodies[0].appendChild(rows[qq][1]);
}
}
void(0);
Última edición por un moderador: