Geoguessr Blink Mode

Shows the round briefly, then screen goes black and you have unlimited time to make your guess.

2022-05-08 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Geoguessr Blink Mode
// @description  Shows the round briefly, then screen goes black and you have unlimited time to make your guess.
// @version      0.2.3
// @author       macca#8949
// @license      MIT
// @include      https://www.geoguessr.com/*
// @run-at       document-start
// @grant        none
// @namespace    https://greatest.deepsurf.us/en/scripts/438579-geoguessr-blink-mode
// ==/UserScript==

const timeLimit = 1.5
//                ^^^ Modify this number above to change the time



// --------- DON'T MODIFY ANYTHING BELOW THIS LINE -------- //



let previousTransform = '';

function onScreen(element) {
    let rect = element.getBoundingClientRect();
    let topElement = document.elementFromPoint(rect.left + (rect.width / 2), rect.top + (rect.height / 2));
    if (element.isSameNode(topElement) & previousTransform != topElement.style.transform) {
        previousTransform = topElement.style.transform;
        return true;
    }
    return false;
}

let observer = new MutationObserver((mutations) => {
    if (document.querySelector('.compass__indicator')) {
        if (onScreen(document.querySelector('.compass__indicator'))) {
            setTimeout(() => {
                document.querySelector('.widget-scene-canvas').style.display = 'none';
            }, timeLimit * 1000);
        }
    }
});

observer.observe(document.body, {
  characterDataOldValue: false,
  subtree: true,
  childList: true,
  characterData: false
});