您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Always visible tiny "See Location" button in the bottom-left corner for WorldGuessr. Made by DarkShadow44. Updated 2025. Undetected.
- // ==UserScript==
- // @name Worldguessr Cheat/Hack 2025
- // @namespace http://tampermonkey.net/
- // @version 2.5
- // @description Always visible tiny "See Location" button in the bottom-left corner for WorldGuessr. Made by DarkShadow44. Updated 2025. Undetected.
- // @author DarkShadow44 & CheatGuessr
- // @match https://www.worldguessr.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=worldguessr.com
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- let seeLocationButton = null;
- let loadingIndicator = null;
- let dotInterval = null;
- let blockAdsSetting = true;
- let initMessageElement = null; // Für die Initialisierungsnachricht
- // Funktion zum Anzeigen der Initialisierungsnachricht
- function showInitializationMessage() {
- if (initMessageElement) return; // Nur einmal anzeigen
- initMessageElement = document.createElement('div');
- initMessageElement.id = 'cheat-init-message';
- initMessageElement.innerHTML = `
- WorldGuessr Cheat Initialized, made by DarkShadow44 2025.<br>
- <span class="untdctd">✔</span>Undetected<span class="untdctd">✔</span><br>
- (Small button to see your location is at the bottom left)
- `;
- document.body.appendChild(initMessageElement);
- // Nachricht nach 5 Sekunden ausblenden und entfernen
- setTimeout(() => {
- if (initMessageElement) {
- initMessageElement.style.opacity = '0';
- // Warten bis die Opacity-Transition vorbei ist, bevor das Element entfernt wird
- setTimeout(() => {
- if (initMessageElement && initMessageElement.parentNode) {
- initMessageElement.parentNode.removeChild(initMessageElement);
- }
- initMessageElement = null; // Zurücksetzen für den Fall eines Neuladens (obwohl das Skript dann neu startet)
- }, 500); // Muss zur CSS-Transition-Dauer passen
- }
- }, 5000); // 5 Sekunden anzeigen
- }
- // Funktion zum Erstellen des "See Location"-Knopfes
- function createSeeLocationButton() {
- if (seeLocationButton) return;
- seeLocationButton = document.createElement('button');
- seeLocationButton.id = 'tiny-see-location-button';
- seeLocationButton.textContent = 'See Location';
- document.body.appendChild(seeLocationButton);
- seeLocationButton.onclick = () => {
- if (window.location.pathname !== '/banned' && window.location.pathname !== '/banned2') {
- const loc = extractLocationFromIframe();
- if (loc) {
- window.open(`https://www.google.com/maps?q=${loc.lat},${loc.long}&z=18&output=embed`, "_blank");
- } else {
- alert('Could not determine current location. Please ensure you are in a game round.');
- }
- } else {
- alert("This function is not available on the 'banned' page.");
- }
- };
- }
- // Banned page handler
- if (window.location.pathname === '/banned' || window.location.pathname === '/banned2') {
- const handleBannedPage = () => {
- // ... (Banned Page Code bleibt unverändert) ...
- const backdrop = document.createElement('div');
- backdrop.style.position = 'fixed';
- backdrop.style.top = '0';
- backdrop.style.left = '0';
- backdrop.style.right = '0';
- backdrop.style.bottom = '0';
- backdrop.style.backgroundColor = 'rgba(0,0,0,0.5)';
- backdrop.style.zIndex = '10000';
- const modal = document.createElement('div');
- modal.style.position = 'fixed';
- modal.style.top = '50%';
- modal.style.left = '50%';
- modal.style.transform = 'translate(-50%, -50%)';
- modal.style.backgroundColor = '#1f2937';
- modal.style.padding = '20px';
- modal.style.borderRadius = '8px';
- modal.style.color = 'white';
- modal.style.zIndex = '10001';
- const message = document.createElement('p');
- message.textContent = 'The Cheat has been detected!\nPlease Enter 10-20 random characters to bypass the anti-cheat.\n\nExample (do not use the example):\ndf89aj3n4r98nd9';
- message.style.margin = '0 0 15px 0';
- const input = document.createElement('input');
- input.type = 'text';
- input.style.width = '100%';
- input.style.marginBottom = '15px';
- input.style.padding = '8px';
- input.style.borderRadius = '4px';
- input.style.border = '1px solid #4b5563';
- input.style.backgroundColor = '#374151';
- input.style.color = 'white';
- const submitButton = document.createElement('button');
- submitButton.textContent = 'Submit';
- submitButton.style.padding = '8px 16px';
- submitButton.style.backgroundColor = '#3b82f6';
- submitButton.style.color = 'white';
- submitButton.style.border = 'none';
- submitButton.style.borderRadius = '4px';
- submitButton.style.cursor = 'pointer';
- submitButton.onmouseenter = () => submitButton.style.backgroundColor = '#2563eb';
- submitButton.onmouseleave = () => submitButton.style.backgroundColor = '#3b82f6';
- submitButton.onclick = () => {
- const chars = input.value.trim();
- if (chars) {
- if (chars === 'df89aj3n4r98nd9') {
- alert('You cannot use the example!');
- return;
- }
- const history = JSON.parse(localStorage.getItem('mapDivClassHistory') || '[]');
- if (history.includes(chars)) {
- alert('You cannot reuse a previous map div name!');
- return;
- }
- localStorage.removeItem('banned');
- localStorage.setItem('mapDivClass', chars);
- history.push(chars);
- localStorage.setItem('mapDivClassHistory', JSON.stringify(history));
- window.location.href = 'https://www.worldguessr.com/';
- }
- };
- modal.appendChild(message);
- modal.appendChild(input);
- modal.appendChild(submitButton);
- document.body.appendChild(backdrop);
- document.body.appendChild(modal);
- };
- handleBannedPage();
- // Initialisierungsnachricht und Knopf auch auf der Banned-Seite anzeigen
- }
- // Styles
- const style = document.createElement('style');
- style.textContent = `
- #cheat-init-message {
- position: fixed;
- top: 20px;
- left: 50%;
- transform: translateX(-50%);
- background-color: #28a745; /* Grün */
- color: white;
- padding: 12px 20px;
- border-radius: 8px;
- border: 2px solid white;
- box-shadow: 0 4px 12px rgba(0,0,0,0.2);
- z-index: 10005; /* Sehr hoch */
- text-align: center;
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
- font-size: 14px;
- opacity: 1;
- transition: opacity 0.5s ease-out;
- }
- #cheat-init-message .untdctd { /* Styling für die Häkchen */
- color: #c3e6cb; /* Helleres Grün für die Häkchen innerhalb des grünen Kastens */
- font-weight: bold;
- margin: 0 2px;
- }
- #tiny-see-location-button {
- position: fixed;
- bottom: 10px;
- left: 10px;
- padding: 5px 10px;
- font-size: 11px;
- background-color: #3b82f6;
- color: white;
- border: none;
- border-radius: 5px;
- cursor: pointer;
- z-index: 10003;
- box-shadow: 0 1px 4px rgba(0,0,0,0.3);
- opacity: 0.9;
- transition: opacity 0.2s, background-color 0.2s;
- }
- #tiny-see-location-button:hover {
- opacity: 1;
- background-color: #2563eb;
- }
- .loading-indicator {
- position: fixed;
- left: 10px;
- bottom: 50px;
- padding: 5px 10px;
- background: rgba(0,0,0,0.7);
- color: white;
- border-radius: 4px;
- z-index: 9999;
- font-family: Arial, sans-serif;
- }
- `;
- document.head.appendChild(style);
- // Nur wenn NICHT auf der Banned-Seite, werden Adblock und Ladeindikator initialisiert
- if (window.location.pathname !== '/banned' && window.location.pathname !== '/banned2') {
- try {
- const savedSettings = JSON.parse(localStorage.getItem('worldGuessrHelperMinimal'));
- if (savedSettings && typeof savedSettings.blockAds === 'boolean') {
- blockAdsSetting = savedSettings.blockAds;
- }
- } catch (e) { /* Ignoriere Fehler, Standardwert wird verwendet */ }
- function blockAdsIfEnabled() {
- // ... (blockAdsIfEnabled Code bleibt unverändert) ...
- if (!blockAdsSetting) return;
- const adSelectors = [
- '[id^="google_ads_iframe"]',
- '[id^="worldguessr-com_"]',
- '.video-ad'
- ];
- const removeAds = () => {
- adSelectors.forEach(selector => {
- document.querySelectorAll(selector).forEach(ad => ad.remove());
- });
- };
- removeAds();
- const observer = new MutationObserver(removeAds);
- observer.observe(document.body, { childList: true, subtree: true });
- }
- function createLoadingIndicator() {
- // ... (createLoadingIndicator Code bleibt unverändert) ...
- if (loadingIndicator) return;
- loadingIndicator = document.createElement('div');
- loadingIndicator.className = 'loading-indicator';
- loadingIndicator.style.display = 'none';
- document.body.appendChild(loadingIndicator);
- let dots = 0;
- if (dotInterval) clearInterval(dotInterval);
- dotInterval = setInterval(() => {
- dots = (dots + 1) % 4;
- if (loadingIndicator) {
- loadingIndicator.textContent = 'Loading location' + '.'.repeat(dots);
- }
- }, 500);
- }
- function showLoadingIndicator() {
- if (loadingIndicator) loadingIndicator.style.display = 'block';
- }
- function hideLoadingIndicator() {
- if (loadingIndicator) loadingIndicator.style.display = 'none';
- }
- window.extractLocationFromIframe = function() {
- // ... (extractLocationFromIframe Code bleibt unverändert) ...
- showLoadingIndicator();
- const iframe = document.querySelector('iframe[src^="/svEmbed"]');
- if (!iframe) {
- hideLoadingIndicator();
- console.warn("WorldGuessr iframe not found.");
- return null;
- }
- try {
- const urlParams = new URLSearchParams(iframe.src.split('?')[1]);
- const lat = parseFloat(urlParams.get('lat'));
- const long = parseFloat(urlParams.get('long'));
- if (!isNaN(lat) && !isNaN(long)) {
- hideLoadingIndicator();
- return { lat, long };
- }
- } catch (e) {
- console.error("Error parsing iframe src:", e);
- }
- hideLoadingIndicator();
- console.warn("Could not extract lat/long from iframe.");
- return null;
- };
- createLoadingIndicator();
- blockAdsIfEnabled();
- } else {
- window.extractLocationFromIframe = function() {
- console.warn("extractLocationFromIframe called on banned page. No location to extract.");
- return null;
- };
- }
- // Funktionen und Elemente initialisieren, die immer gebraucht werden
- // (unabhängig von Banned-Status für den Knopf und die Init-Nachricht)
- function initializeUI() {
- createSeeLocationButton();
- showInitializationMessage();
- }
- if (document.body) {
- initializeUI();
- } else {
- window.addEventListener('DOMContentLoaded', initializeUI);
- }
- console.log("CheatGuessr Tiny Location Button Loaded (v2.5 - InitMsg).");
- })();