您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Display curency rate
// ==UserScript== // @name CurrencyRate // @namespace Pokeclicker Scripts // @version 0.3 // @description Display curency rate // @author Maxteke // @match https://www.pokeclicker.com/ // @grant none // @license MIT // ==/UserScript== function currencyCard() { var card = document.createElement('div'); card.id = 'curencyRate'; card.classList.add('card') card.classList.add('sortable') card.classList.add('border-secondary') card.classList.add('mb-3') var header = document.createElement('div'); header.classList.add('card-header'); header.classList.add('p-0'); header.setAttribute('data-toggle', 'collapse'); header.setAttribute('href', '#curencyRateBody'); var title = document.createElement('span'); title.innerHTML = 'Currency rate'; header.appendChild(title); card.appendChild(header); var bodyDiv = document.createElement('div'); bodyDiv.id = 'curencyRateBody' bodyDiv.classList.add('card-body'); bodyDiv.classList.add('p-0'); bodyDiv.classList.add('collapse'); bodyDiv.classList.add('show'); var container = document.createElement('div'); container.style.display = 'flex'; container.style.flexDirection = 'column'; container.style.alignContent = 'center'; container.style.alignItems = 'center'; var range = 1; if (localStorage.getItem("range") != null){ range = parseInt(localStorage.getItem("range")); } else { localStorage.setItem("range", range); } var input = document.createElement('input'); input.id = 'currency-rate-input'; input.type = 'number'; input.value = range; input.min = '1'; input.max = '60'; input.name = 'refreshRange'; input.classList.add('outline-dark'); input.classList.add('form-control'); input.classList.add('form-control-number'); container.appendChild(input); bodyDiv.appendChild(container); card.appendChild(bodyDiv); document.getElementById('left-column').prepend(card); return {"container": container, "input": input}; } function currencyMoneyDiv(card) { var span = document.createElement('span'); span.style.display = 'inline'; span.style.position = 'relative'; var img = document.createElement('img'); img.title = 'Money'; img.src = 'assets/images/currency/money.svg'; img.setAttribute('height', '25px'); span.appendChild(img); var value = document.createElement('span'); value.id = 'currency-rate-money'; value.style.paddingLeft = '5px'; value.innerHTML = '0/10s'; span.appendChild(value); card.appendChild(span); return value; } function currencyDungeonDiv(card) { var span = document.createElement('span'); span.style.display = 'inline'; span.style.position = 'relative'; var img = document.createElement('img'); img.title = 'Dungeon Tokens Gained by capturing Pokémon'; img.src = 'assets/images/currency/dungeonToken.svg'; img.setAttribute('height', '25px'); span.appendChild(img); var value = document.createElement('span'); value.id = 'currency-rate-dungeon'; value.style.paddingLeft = '5px'; value.innerHTML = '0/10s'; span.appendChild(value); card.appendChild(span); return value; } function setMoneyRate(moneyRate, span, range) { var mean = 0; for (var rate of moneyRate) { mean += rate; } mean /= moneyRate.length; span.innerHTML = Math.round(mean * range).toLocaleString('en-US') + ' / ' + range + 's'; } function setDungeonRate(dungeonRate, span, range) { var mean = 0; for (var rate of dungeonRate) { mean += rate; } mean /= dungeonRate.length; span.innerHTML = Math.round(mean * range).toLocaleString('en-US') + ' / ' + range + 's'; } function currencyLoop(money, dungeon, range) { var oldMonyCurrency = App.game.wallet.currencies[GameConstants.Currency.money](); var moneyRate = []; var moneyIndex = 0; var oldDungeonCurrency = App.game.wallet.currencies[GameConstants.Currency.dungeonToken](); var dungeonRate = []; var dungeonIndex = 0; setInterval(function () { if (parseInt(range.value) < 1) range.value = 1; var mRate = App.game.wallet.currencies[GameConstants.Currency.money]() - oldMonyCurrency; var dRate = App.game.wallet.currencies[GameConstants.Currency.dungeonToken]() - oldDungeonCurrency; if (mRate >= 0) { moneyRate[moneyIndex] = mRate; moneyIndex = (moneyIndex + 1) % 10; } if (dRate >= 0) { dungeonRate[dungeonIndex] = dRate; dungeonIndex = (dungeonIndex + 1) % 10; } setMoneyRate(moneyRate, money, parseInt(range.value)); oldMonyCurrency = App.game.wallet.currencies[GameConstants.Currency.money](); setDungeonRate(dungeonRate, dungeon, parseInt(range.value)); oldDungeonCurrency = App.game.wallet.currencies[GameConstants.Currency.dungeonToken](); localStorage.setItem("range", parseInt(range.value)); }, 1000); } function initCurrencyRate() { var card = currencyCard(); var money = currencyMoneyDiv(card.container); var dungeon = currencyDungeonDiv(card.container); currencyLoop(money, dungeon, card.input); } function loadScript(){ var oldInit = Preload.hideSplashScreen Preload.hideSplashScreen = function(){ var result = oldInit.apply(this, arguments) initCurrencyRate() console.log(`[${GameConstants.formatDate(new Date())}] %cCurrency rate loaded`, 'color:#8e44ad;font-weight:900;'); return result } } var scriptName = 'currencyRate' if (document.getElementById('scriptHandler') != undefined){ var scriptElement = document.createElement('div') scriptElement.id = scriptName document.getElementById('scriptHandler').appendChild(scriptElement) if (localStorage.getItem(scriptName) != null){ if (localStorage.getItem(scriptName) == 'true'){ loadScript() } } else{ localStorage.setItem(scriptName, 'true') loadScript() } } else{ loadScript(); }