您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds an estimate of energy required to level gyms
// ==UserScript== // @name Gym energy estimate // @namespace http://tampermonkey.net/ // @version 0.4.8 // @description Adds an estimate of energy required to level gyms // @author Sam // @match https://www.torn.com/gym.php* // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js // @require https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js // ==/UserScript== /* globals jQuery, $, waitForKeyElements */ const gymEnergies = [200, 500, 1000, 2000, 2750, 3000, 3500, 4000, 6000, 7000, 8000, 11000, 12420, 18000, 18100, 24140, 31260, 36610, 46640, 56520, 67775, 84535, 106305] var musicStore = 0 if (window.localStorage.getItem('musicStore') == null){ musicStore = false } else { musicStore = (window.localStorage.getItem('musicStore') == 'true') } function findPercentage() { var divs = document.getElementsByTagName('div') for (var i = 0; i<divs.length; i++){ if (divs[i].className.startsWith("percentage")){ return divs[i]; } } return -1 } function parseNum(numIn){ return String(numIn).replace(/\B(?=(\d{3})+(?!\d))/g, ",") } function hoverToolTip(energyIn){ if (musicStore == true){ return "Music store: On (click to change)<br>~"+String(Math.round(energyIn/(720+750)))+" days" } else { return "Music store: Off (click to change)<br>~"+String(Math.round(energyIn/(720+750)))+" days" } } function clickToolTip(gymNum,gymPercentage){ musicStore = !musicStore window.localStorage.setItem('musicStore', musicStore) var eToGym = gymEnergies[gymNum-2] if (musicStore){ eToGym = Math.round(eToGym/1.3) } var energyLeft = document.getElementById("EnergyLeft") var stringGym = energyLeft.innerHTML.split(" ") var energyIn = Math.round(eToGym*((100-gymPercentage)/100)/100)*100 stringGym[1] = parseNum(energyIn) + "E/" + parseNum(eToGym) energyLeft.innerHTML = stringGym.join(" ") console.log(energyLeft.innerHTML) document.getElementById("toolMusic").addEventListener("mouseover", function() { document.getElementById("toolMusic").title = hoverToolTip(energyIn)} ) document.getElementById("toolMusic").addEventListener("mousedown", function() { clickToolTip(gymNum,gymPercentage)} ) document.getElementById("toolMusic").addEventListener("mouseout", function() { removeToolTips()} ) } function removeToolTips(){ var divs = document.getElementsByTagName("div") for ( var i in divs ){ if (divs[i].id != undefined) { if (divs[i].id.includes("tooltip")){ divs[i].remove() } } } } $(window).load(function() { setTimeout(function(){ var gymPercentID = findPercentage(); if (gymPercentID == -1) {return -1} var gymPercentage = Number(gymPercentID.innerText.replace("%", "")); var buttonID = gymPercentID.parentElement.parentElement.parentElement; var gymNum = Number(buttonID.id.replace("gym-", "")); var eToGym = gymEnergies[gymNum-2] if (musicStore){ eToGym = Math.round(eToGym/1.3) } var gymListID = buttonID.parentElement.parentElement; $(gymListID).append($('<div class="title-black top-round" id="EnergyLeft" aria-level="5" style="margin-top: 10px; text-align: center">Sam was here</div>')) var energyLeft = document.getElementById("EnergyLeft") var energyIn = Math.round(eToGym*((100-gymPercentage)/100)/100)*100 energyLeft.innerHTML = "Estimated " + parseNum(energyIn) + "E/" + parseNum(eToGym) + "E to next gym<sup id='toolMusic' title='test' href='#'><i>[?]</i></sup>" document.getElementById("toolMusic").addEventListener("mouseover", function() { document.getElementById("toolMusic").title = hoverToolTip(energyIn)} ) document.getElementById("toolMusic").addEventListener("mousedown", function() { clickToolTip(gymNum,gymPercentage)} ) document.getElementById("toolMusic").addEventListener("mouseout", function() { removeToolTips()} ) }, 1000); })