您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds additional settings for hiding some visual things to help out with performance.
当前为
// ==UserScript== // @name [Pokeclicker] Additional Visual Settings // @namespace Pokeclicker Scripts // @match https://www.pokeclicker.com/ // @grant none // @version 1.9 // @author Ephenia // @description Adds additional settings for hiding some visual things to help out with performance. // ==/UserScript== var checkWildPokeName; var checkWildPokeDefeat; var checkWildPokeImg; var checkWildPokeHealth; var checkWildPokeCatch; var checkAllNotification; var notificFunc = Notifier.notify; var newSave; var trainerCards; function initVisualSettings() { var getMenu = document.getElementById('startMenu'); var quickSettings = document.createElement("img"); quickSettings.id = "quick-settings" quickSettings.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAQAAABLCVATAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfmAQcLFCMs4grwAAACzUlEQVRIx63WvWtbVxgG8J+Vkjgp9hKDwbTBcQoOBIINQUsnDe1gGy8h1VDswUMG4+4hYNwhpv4LumQ2d+gWSqnUwdZQUKFZDIUa4RqiYNyPLMEoUezodNDV7ZUsq1Xq507nvM957/t5zksvTCuqC4K6omnviFElQc0LL9QEJaPvpigvqJhz221zKoL82eT3Omz41Id2/eAlruNn34Idn/vIdTDsE5OeK/i9u9JbtgXBiUjOI3uCTQNgwKZgz7qcyIkg2Haru5qyoCJyKDgSNOxbSuRL9jViyaFIRfDTaVWjtgU7sphXVVewaFwmYWSMW1BQVzWPrB3BdmcCFgQV2XiVNWOoq/tDZlKsimChnfBQEPWd10jwsGVwE7veypnvQs644krKxX8wL+etX9s3h0WCamJ2ExNWREpKIl+40SbLqgoiw536c47UzSTrQcsqQuqrWDaYyGfVHcmdNnRdUEhCPGjDsaBs1T33rCoLjm0kqoYUBOvtqc97YE8jlYFlx2rWjCQ7V62pObac7Cxq2PNAvlkC00qx6fvGY8oNFcFaR4gz1gQVE/F63H58smSaYlzPm5aSgyuCsqun3B9RFqwkipdsxjVepK5mjrinmoRIsNq1clYFUcrSAcypqWdc9MozhFS+xuisjxi7GEvlLuCZVy5mnBMy3rjsWptrrx3gZlf+JA68bnPtmsve9Ar2yCk1PYM91SX9E32nf4p0QS4mh5oF+WXKqpF/K8gWerXIZ6kWuRQzmi3y6HQYO5v2Un9N23pFht33vuf+Soh1X/vejI+N4cCPvvNb6sd/+sMH7nvqZdqeu04c9n2xHTpxt0Vr1ccFW550oTfU1DS6SJ7YcsFku6Iq7qSu9dkzL//ZFOtOfDKFc3uOzu2BbKr6H092eoj4RT41RGw58pVMfL0EGTy2gae+cVNV8awhohN9jTW9cG6DFlP/ffT7G1t3ayJm6d3nAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTAxLTA3VDExOjIwOjI2KzAwOjAwMddkKgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wMS0wN1QxMToyMDoyNiswMDowMECK3JYAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC" quickSettings.setAttribute("href", "#settingsModal") quickSettings.setAttribute("data-toggle", "modal") getMenu.prepend(quickSettings) var quickPokedex = document.createElement("img"); quickPokedex.id = "quick-pokedex" quickPokedex.src = "data:image/png;base64,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" quickPokedex.setAttribute("href", "#pokedexModal") quickPokedex.setAttribute("data-toggle", "modal") getMenu.prepend(quickPokedex) document.querySelectorAll('tr[data-bind*="currencyMainDisplayReduced"')[0].outerHTML += `<tr> <td class="p-2"> <label class="m-0">Show wild Pokémon Name</label> </td> <td class="p-2"> <input id="poke-name" type="checkbox"> </td> </tr> <tr> <td class="p-2"> <label class="m-0">Show wild Pokémon Defeated</label> </td> <td class="p-2"> <input id="poke-defeat" type="checkbox"> </td> </tr> <tr> <td class="p-2"> <label class="m-0">Show wild Pokémon Image</label> </td> <td class="p-2"> <input id="poke-image" type="checkbox"> </td> </tr> <tr> <td class="p-2"> <label class="m-0">Show Pokémon Health</label> </td> <td class="p-2"> <input id="poke-health" type="checkbox"> </td> </tr> <tr> <td class="p-2"> <label class="m-0">Show Catch Icon</label> </td> <td class="p-2"> <input id="poke-catch" type="checkbox"> </td> </tr>` var notifiyHTML = document.createElement("tr"); notifiyHTML.innerHTML = `<td class="p-2"> <label class="m-0">Disable all Notifications</label> </td> <td class="p-2 tight"> <input id="all-notify" type="checkbox"> </td>` //Moved to async function because it fails to execute on loading screen so we keep trying until the element exists //Settings screen changed, this is where the option should go now document.querySelector('[id="settingsNotificationGeneral"] table tbody').prepend(notifiyHTML) //Add 'Disable all notifications' option document.querySelector('#all-notify').addEventListener('change', event => { if (event.target.checked == false) { checkAllNotification = "OFF"; localStorage.setItem("checkAllNotification", "OFF"); Notifier.notify = notificFunc; } else { checkAllNotification = "ON"; localStorage.setItem("checkAllNotification", "ON"); remNotifications(); } }); checkWildPokeName = localStorage.getItem('checkWildPokeName'); checkWildPokeDefeat = localStorage.getItem('checkWildPokeDefeat'); checkWildPokeImg = localStorage.getItem('checkWildPokeImg'); checkWildPokeHealth = localStorage.getItem('checkWildPokeHealth'); checkWildPokeCatch = localStorage.getItem('checkWildPokeCatch'); checkAllNotification = localStorage.getItem('checkAllNotification'); addGlobalStyle('.pageItemTitle { height:38px }'); addGlobalStyle('#quick-settings { height:36px;background-color:#eee;border:4px solid #eee;cursor:pointer; }'); addGlobalStyle('#quick-settings:hover { background-color:#ddd;border: 4px solid #ddd; }'); addGlobalStyle('#quick-pokedex { height:36px;background-color:#eee;border:4px solid #eee;cursor:pointer; }'); addGlobalStyle('#quick-pokedex:hover { background-color:#ddd;border: 4px solid #ddd; }'); addGlobalStyle('#shortcutsContainer { display: block !important; }'); addGlobalStyle('.gyms-leaders { display: flex;pointer-events: none;position: absolute;height: 36px;top: 0;left: 0;image-rendering: pixelated; }'); addGlobalStyle('.gyms-badges { position: absolute;height: 36px;display: flex;top: 0;right: 0; }'); //The elements removed by the scripts don't ever get added back after a restart, waiting a second before removing makes them load properly if (checkWildPokeName == "OFF") { document.querySelector('#poke-name').checked = true } else { remPokeName(); } if (checkWildPokeDefeat == "OFF") { document.querySelector('#poke-defeat').checked = true } else { remPokeDefeat(); } if (checkWildPokeImg == "OFF") { document.querySelector('#poke-image').checked = true } else { remPokeImg(); } if (checkWildPokeHealth == "OFF") { document.querySelector('#poke-health').checked = true } else { remPokeHealth(); } if (checkWildPokeCatch == "OFF") { document.querySelector('#poke-catch').checked = true } else { remPokeCatch(); } if (checkAllNotification == "ON") { document.querySelector('#all-notify').checked = true remNotifications(); } document.getElementById('map').addEventListener('click', event => { if (event.target.matches('[data-route]')) { if (checkWildPokeName == "ON") { remPokeName(); } if (checkWildPokeDefeat == "ON") { remPokeDefeat(); } if (checkWildPokeImg == "ON") { remPokeImg(); } if (checkWildPokeHealth == "ON") { remPokeHealth(); } if (checkWildPokeCatch == "ON") { remPokeCatch(); } } }); document.querySelector('#poke-name').addEventListener('change', event => { if (event.target.checked == true) { checkWildPokeName = "OFF"; localStorage.setItem("checkWildPokeName", "OFF"); } else { checkWildPokeName = "ON"; localStorage.setItem("checkWildPokeName", "ON"); } }); document.querySelector('#poke-defeat').addEventListener('change', event => { if (event.target.checked == true) { checkWildPokeDefeat = "OFF"; localStorage.setItem("checkWildPokeDefeat", "OFF"); } else { checkWildPokeDefeat = "ON"; localStorage.setItem("checkWildPokeDefeat", "ON"); } }); document.querySelector('#poke-image').addEventListener('change', event => { if (event.target.checked == true) { checkWildPokeImg = "OFF"; localStorage.setItem("checkWildPokeImg", "OFF"); } else { checkWildPokeImg = "ON"; localStorage.setItem("checkWildPokeImg", "ON"); } }); document.querySelector('#poke-health').addEventListener('change', event => { if (event.target.checked == true) { checkWildPokeHealth = "OFF"; localStorage.setItem("checkWildPokeHealth", "OFF"); } else { checkWildPokeHealth = "ON"; localStorage.setItem("checkWildPokeHealth", "ON"); } }); document.querySelector('#poke-catch').addEventListener('change', event => { if (event.target.checked == true) { checkWildPokeCatch = "OFF"; localStorage.setItem("checkWildPokeCatch", "OFF"); } else { checkWildPokeCatch = "ON"; localStorage.setItem("checkWildPokeCatch", "ON"); } }); function remPokeName() { var enemyName = document.querySelectorAll('knockout[data-bind*="text: Battle.enemyPokemon().name"]'); if (enemyName.length > 0) { enemyName[0].remove() } var caughtStatus = document.querySelectorAll('knockout[data-bind*="caughtStatusTemplate"'); if (caughtStatus.length > 0) { caughtStatus[0].remove() } } function remPokeDefeat() { var pokeDefeat = document.querySelectorAll('knockout[data-bind*="App.game.statistics.routeKills"]'); if (pokeDefeat.length > 0) { pokeDefeat[0].remove() } } function remPokeImg() { var enemyPoke = document.querySelectorAll('img.enemy'); if (enemyPoke.length > 0) { enemyPoke[0].remove() } } function remPokeHealth() { var healthBar = document.querySelectorAll('.progress.hitpoints'); if (healthBar.length > 0) { healthBar[0].remove() } } function remPokeCatch() { var catchIcon = document.querySelectorAll('.catchChance'); if (catchIcon.length > 0) { catchIcon[0].remove() } } function remNotifications() { Notifier.notify = function(message) { const sound = message.sound; if (typeof sound != 'undefined') { sound.play(); } } } //Add dock button var dockButton = document.createElement('button') dockButton.style = 'position: absolute; left: 32px; top: 0px; width: auto; height: 41px; font-size: 11px;' dockButton.className = 'btn btn-block btn-success' dockButton.id = 'dock-button' dockButton.textContent = 'Dock' document.getElementById('townMap').appendChild(dockButton) document.getElementById('dock-button').addEventListener('click', MapHelper.openShipModal, false) //Add Gyms button const gymsButton = document.createElement('button'); gymsButton.style = 'position: absolute;left: 75px;top: -8px;width: auto;height: 41px;font-size: 11px;'; gymsButton.className = 'btn btn-block btn-success'; gymsButton.id = 'gyms-button'; gymsButton.textContent = 'Gyms'; document.getElementById('townMap').appendChild(gymsButton); document.getElementById('gyms-button').addEventListener('click', () => { generateGymsList();$('#GymsModal').modal('show'); }, false); createGymModal(); function createGymModal() { const gymModal = document.createElement('div'); gymModal.setAttribute('id', 'GymsModal'); gymModal.setAttribute('class', 'modal noselect fade'); gymModal.setAttribute('tabindex', '-1'); gymModal.setAttribute('role', 'dialogue'); gymModal.setAttribute('aria-labelledby', 'GymsModalLabel'); gymModal.innerHTML = `<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered modal-sm" role="document"> <div class="modal-content"> <div class="modal-header" style="justify-content: space-around;"> <h5 id="gyms-title" class="modal-title"></h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body bg-ocean"> <div id="gyms-buttons"></div> </div> </div> </div>` document.getElementById('ShipModal').after(gymModal); } function generateGymsList() { const gymBtns = document.getElementById('gyms-buttons'); const gymsHead = document.getElementById('gyms-title'); gymsHead.textContent = `Gym Select (${GameConstants.camelCaseToString(GameConstants.Region[player.region])})` gymBtns.innerHTML = ''; const fragment = new DocumentFragment(); for (const gym in GymList) { let region; try { region = GymList[gym].parent.region } catch (err) { region = null }; if (player.region == region) { const selGym = GymList[gym]; const btn = document.createElement('button'); btn.setAttribute('style', 'position: relative;'); btn.setAttribute('class', 'btn btn-block btn-success'); btn.addEventListener('click', () => { $("#GymsModal").modal("hide");GymRunner.startGym(selGym, false); }) selGym.isUnlocked() && MapHelper.calculateTownCssClass(selGym.parent.name) != 'locked' ? btn.disabled = false : btn.disabled = true; btn.innerHTML = `<div class="gyms-leaders"> <img src="assets/images/gymLeaders/${selGym.leaderName}.png" onerror="this.onerror=null;this.style.display='none';"> </div> <div class="gyms-badges"> <img src="assets/images/badges/${BadgeEnums[selGym.badgeReward]}.png" onerror="this.onerror=null;this.style.display='none';"> </div> ${selGym.leaderName}`; fragment.appendChild(btn); } } gymBtns.appendChild(fragment); } } if (localStorage.getItem('checkWildPokeName') == null) { localStorage.setItem("checkWildPokeName", "OFF"); } if (localStorage.getItem('checkWildPokeDefeat') == null) { localStorage.setItem("checkWildPokeDefeat", "OFF"); } if (localStorage.getItem('checkWildPokeImg') == null) { localStorage.setItem("checkWildPokeImg", "OFF"); } if (localStorage.getItem('checkWildPokeHealth') == null) { localStorage.setItem("checkWildPokeHealth", "OFF"); } if (localStorage.getItem('checkWildPokeCatch') == null) { localStorage.setItem("checkWildPokeCatch", "OFF"); } if (localStorage.getItem('checkAllNotification') == null) { localStorage.setItem("checkAllNotification", "OFF"); } function loadScript(){ var oldInit = Preload.hideSplashScreen Preload.hideSplashScreen = function(){ var result = oldInit.apply(this, arguments) initVisualSettings() return result } } var scriptName = 'additionalvisualsettings' 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(); } function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址