Answers all games on PurposeGames in record Time (with adjustable slider)
// ==UserScript== // @name PurposeGames Hack // @namespace http://tampermonkey.net/ // @version 0.1 // @description Answers all games on PurposeGames in record Time (with adjustable slider) // @author longkidkoolstar // @match https://www.purposegames.com/* // @icon https://th.bing.com/th/id/R.201395eef044c88cd80bb137b6638932?rik=4SVeP8xG%2bGt2Tg&pid=ImgRaw&r=0 // @license none // @grant none // ==/UserScript== (function() { 'use strict'; let previousValue = document.querySelector('#question-box').getAttribute('data-text'); // Function to simulate click function simulateClick(element) { const clickEvent = new MouseEvent("click", { bubbles: true, cancelable: true, view: window }); element.dispatchEvent(clickEvent); } // Function to display the unit circle, the number to click, and the element function displayInfo() { const dots = document.querySelectorAll('.dot'); dots.forEach(dot => { console.log(`Dot at (${dot.getAttribute('data-x')}, ${dot.getAttribute('data-y')}) represents ${dot.getAttribute('data-text')}`, dot); }); const targetAngle = document.querySelector('#question-box').getAttribute('data-text'); console.log(`Number to click: ${targetAngle}`); if (targetAngle !== previousValue) { solveUnitCircle(); previousValue = targetAngle; } } // Main function to find and click the correct dot function solveUnitCircle() { const targetAngle = document.querySelector('#question-box').getAttribute('data-text'); const dots = document.querySelectorAll('.dot'); dots.forEach(dot => { if(dot.getAttribute('data-text') === targetAngle) { simulateClick(dot); } }); } // Create GUI slider and popup function createSliderAndPopup() { const slider = document.createElement('input'); slider.type = 'range'; slider.min = '1'; slider.max = '100'; slider.value = localStorage.getItem('sliderValue') || '10'; // Retrieve saved value or use default slider.style.position = 'fixed'; slider.style.left = '0'; slider.style.bottom = '0'; document.body.appendChild(slider); // Popup for displaying the current slider value var popup = document.createElement('div'); popup.classList.add('slider-popup'); popup.style.position = 'fixed'; popup.style.backgroundColor = 'rgba(0, 0, 0, 0.8)'; popup.style.color = 'white'; popup.style.padding = '5px 10px'; popup.style.borderRadius = '5px'; popup.style.zIndex = '9999'; popup.style.display = 'none'; // Initially hidden document.body.appendChild(popup); let intervalId; slider.oninput = function() { clearInterval(intervalId); const intervalTime = 1000 / this.value; // Calculate interval time based on slider value intervalId = setInterval(solveUnitCircle, intervalTime); localStorage.setItem('sliderValue', this.value); // Save slider value to localStorage // Show the popup with the current slider value popup.innerText = 'Speed: ' + this.value; popup.style.display = 'block'; // Calculate slider position and adjust popup position var sliderRect = slider.getBoundingClientRect(); var popupX = sliderRect.left + ((slider.value - slider.min) / (slider.max - slider.min)) * sliderRect.width - popup.clientWidth / 2; var popupY = sliderRect.top - popup.clientHeight - 10; popup.style.left = popupX + 'px'; popup.style.top = popupY + 'px'; // Start a timer to hide the popup after a certain duration (e.g., 2 seconds) setTimeout(function() { popup.style.display = 'none'; }, 2000); }; // Show popup when mouse hovers over the slider slider.onmouseover = function() { popup.style.display = 'block'; }; // Hide popup when mouse leaves the slider slider.onmouseout = function() { popup.style.display = 'none'; }; } createSliderAndPopup(); //setInterval(displayInfo, 1000); })();