您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lets you choose if you want to drive or map when playing coop.
// ==UserScript== // @name GeoGuessr Co-op // @namespace http://tampermonkey.net/ // @version 3 // @description Lets you choose if you want to drive or map when playing coop. // @author Rotski // @match https://www.geoguessr.com/* // @license MIT // @icon https://www.svgrepo.com/show/421676/gps-location-maps.svg // @grant none // ==/UserScript== (function () { 'use strict'; // Load the last mode from local storage or default to driving mode let mapOnlyMode = localStorage.getItem('mapOnlyMode') === 'true'; let intervalId; let hoverIntervalId; function applyStyles(mapContainer) { mapContainer.style.position = 'fixed'; mapContainer.style.top = '0'; mapContainer.style.left = '0'; mapContainer.style.width = '100%'; mapContainer.style.height = '100%'; mapContainer.style.zIndex = '10000'; mapContainer.style.backgroundColor = '#000'; mapContainer.style.opacity = '1'; mapContainer.style.transition = 'none'; mapContainer.style.pointerEvents = 'auto'; mapContainer.style.setProperty('opacity', '1', 'important'); } function fixTransparency(mapContainer) { const hoverEvent = new MouseEvent('mouseover', { bubbles: true, cancelable: true }); mapContainer.dispatchEvent(hoverEvent); } function simulateHover(mapContainer) { hoverIntervalId = setInterval(() => { if (mapOnlyMode) { fixTransparency(mapContainer); } }, 500); } function stopSimulatingHover() { clearInterval(hoverIntervalId); } function toggleMode(isMap) { mapOnlyMode = isMap; localStorage.setItem('mapOnlyMode', mapOnlyMode); // Save the mode to local storage adjustMapVisibility(); } function adjustMapVisibility() { const mapContainer = document.querySelector('.guess-map_canvasContainer__s7oJp'); const streetView = document.querySelector('.game_panorama__1moRf'); const body = document.body; const guessButton = document.querySelector('.button_button__aR6_e.button_variantBlack__UsxpK.button_disabled__rTguF'); if (mapOnlyMode) { if (streetView) streetView.style.display = 'none'; if (mapContainer) { applyStyles(mapContainer); fixTransparency(mapContainer); simulateHover(mapContainer); } body.style.overflow = 'hidden'; if (guessButton) { guessButton.style.position = 'fixed'; guessButton.style.bottom = '20px'; guessButton.style.left = '50%'; guessButton.style.transform = 'translateX(-50%)'; // Center the button horizontally guessButton.style.zIndex = '10001'; // Make sure it's visible above the map } } else { if (streetView) streetView.style.display = 'block'; if (mapContainer) { mapContainer.removeAttribute('style'); } body.style.overflow = ''; if (guessButton) { guessButton.removeAttribute('style'); // Reset styles to default } stopSimulatingHover(); } } function updateButtonStyles(mapButton, driveButton) { if (mapOnlyMode) { mapButton.style.backgroundColor = 'green'; mapButton.style.opacity = '1'; driveButton.style.backgroundColor = 'red'; driveButton.style.opacity = '0.5'; } else { mapButton.style.backgroundColor = 'red'; mapButton.style.opacity = '0.5'; driveButton.style.backgroundColor = 'green'; driveButton.style.opacity = '1'; } } function addButtons() { const mapButton = document.createElement('button'); const driveButton = document.createElement('button'); mapButton.innerText = "Map"; driveButton.innerText = "Drive"; [mapButton, driveButton].forEach(button => { button.style.position = "absolute"; button.style.top = "160px"; // Set vertical offset button.style.zIndex = "99999"; button.style.padding = "10px"; button.style.color = "white"; button.style.border = "none"; button.style.borderRadius = "5px"; button.style.cursor = "pointer"; }); mapButton.style.right = "50px"; driveButton.style.right = "50px"; driveButton.style.top = "220px"; // Additional offset for the second button mapButton.onclick = () => { toggleMode(true); updateButtonStyles(mapButton, driveButton); }; driveButton.onclick = () => { toggleMode(false); updateButtonStyles(mapButton, driveButton); }; document.body.appendChild(mapButton); document.body.appendChild(driveButton); updateButtonStyles(mapButton, driveButton); // Set initial button styles } function init() { addButtons(); adjustMapVisibility(); // Apply initial map visibility based on mode } window.addEventListener('load', init); // Observers to handle dynamic content const observer = new MutationObserver(() => { if (mapOnlyMode) { adjustMapVisibility(); } }); observer.observe(document.body, { childList: true, subtree: true }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址