您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
7/22/2024, 10:36:27 PM
// ==UserScript== // @name Distance and Speed by Glyrrin // @namespace Violentmonkey Scripts // @match https://elgea.illyriad.co.uk/* // @grant none // @version 1.6 // @author Glyrrin // @description 7/22/2024, 10:36:27 PM // ==/UserScript== window.init = false; window.addEventListener('load', function () { if (window.location.href.indexOf("https://elgea.illyriad.co.uk/#/World/Map") !== -1) { window.customSpeed = 7; window.distance = function (x0, y0, x1, y1) { return Math.sqrt(Math.pow(Math.abs(x0 - x1), 2) + Math.pow(Math.abs(y0 - y1), 2)); }; window.getAngle = function (x0, y0, x1, y1) { var angle = Math.atan2(y1 - y0, x1 - x0); //radians // you need to devide by PI, and MULTIPLY by 180: var degrees = 180 * angle / Math.PI; //degrees return (360 + degrees) % 360; //round number, avoid decimal fragments }; window.distanceToTown = function () { window.coords = document.querySelector("#coords").innerText.split("|").map(elem => Number(elem)); window.selX = window.coords[0]; window.selY = window.coords[1]; return window.distance(window.selX, window.selY, window.townX, window.townY); }; window.angleToTown = function () { window.coords = document.querySelector("#coords").innerText.split("|").map(elem => Number(elem)); window.selX = window.coords[0]; window.selY = window.coords[1]; return window.getAngle(window.selX, window.selY, window.townX, window.townY); }; window.timeSignature = function (hours) { let seconds = hours * 3600; let h = Math.floor(seconds / 3600); seconds -= h * 3600; let m = Math.floor(seconds / 60); seconds -= m * 60; let s = Math.floor(seconds); return (`${h}h ${m}m ${s}s`); }; window.updateAddon = function () { if (document.querySelector("#distDiv") == null) { document.body.addEventListener("keydown", window.changeCustomSpeed); let distDiv = document.createElement("div"); distDiv.id = "distDiv"; let cotterTimeDiv = document.createElement("div"); cotterTimeDiv.id = "cotterTime"; let gathererTimeDiv = document.createElement("div"); gathererTimeDiv.id = "gathererTime"; let customTimeDiv = document.createElement("div"); customTimeDiv.id = "customTime"; let explainSpan = document.createElement("span"); explainSpan.style.fontWeight = "bold"; explainSpan.innerText = "Use the - and = keys to adjust speed"; document.querySelector("#tileTerrainOverall").insertAdjacentElement("afterEnd", customTimeDiv); document.querySelector("#tileTerrainOverall").insertAdjacentElement("afterEnd", explainSpan); document.querySelector("#tileTerrainOverall").insertAdjacentElement("afterEnd", gathererTimeDiv); document.querySelector("#tileTerrainOverall").insertAdjacentElement("afterEnd", cotterTimeDiv); document.querySelector("#tileTerrainOverall").insertAdjacentElement("afterEnd", distDiv); } else { document.querySelector("#distDiv").innerText = `Dist: ${window.distanceToTown().toFixed(1)}, ${window.angleToTown().toFixed(2)}deg`; document.querySelector("#cotterTime").innerText = `Cotters: ${window.timeSignature(window.distanceToTown() / 10)}`; document.querySelector("#gathererTime").innerText = `Gatherers: ${window.timeSignature(window.distanceToTown() / 12)}`; document.querySelector("#customTime").innerText = `(+/-) Speed ${window.customSpeed}: ${window.timeSignature(window.distanceToTown() / window.customSpeed)}`; } 1; }; window.changeCustomSpeed = function (e) { if (e.code === "Minus" || e.code === "NumpadSubtract") { window.customSpeed--; window.updateAddon(); } else if (e.code === "Equal" || e.code === "NumpadAdd") { window.customSpeed++; window.updateAddon(); } }; updateAddon(); init = true; } }); if (window.location.href.indexOf("https://elgea.illyriad.co.uk/#/World/Map") !== -1) { document.querySelector("#MainContentDiv").addEventListener("mousemove", () => { window.updateAddon(); }); }