您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Mod menu for Cookie Clicker.
- // ==UserScript==
- // @name Cookie Clicker Mod Menu
- // @namespace https://orteil.dashnet.org/cookieclicker/
- // @version 1.3Beta
- // @description Mod menu for Cookie Clicker.
- // @author DarkDeath
- // @match https://orteil.dashnet.org/cookieclicker/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=dashnet.org
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- let clickInterval;
- const style = document.createElement('style');
- style.textContent = `
- #cookie-clicker-menu {
- position: fixed;
- top: 10px;
- right: 10px;
- background-color: rgba(0, 0, 0, 0.8);
- color: white;
- border: 1px solid #ccc;
- padding: 10px;
- z-index: 1000000;
- font-family: Arial, sans-serif;
- width: 200px;
- }
- #cookie-clicker-menu h3 {
- margin: 0;
- padding-bottom: 10px;
- cursor: move;
- user-select: none;
- border-bottom: 1px solid #ccc;
- margin-bottom: 10px;
- }
- #cookie-clicker-menu button {
- display: block;
- width: 100%;
- margin-bottom: 5px;
- padding: 5px;
- background-color: #007bff;
- color: white;
- border: none;
- border-radius: 5px;
- cursor: pointer;
- transition: background-color 0.3s;
- }
- #cookie-clicker-menu button:hover {
- background-color: #0056b3;
- }
- #ruin-the-fun {
- background-color: #dc3545 !important;
- }
- #ruin-the-fun:hover {
- background-color: #c82333 !important;
- }
- .custom-window {
- position: fixed;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- background-color: rgba(0, 0, 0, 0.9);
- color: white;
- border: 1px solid #ccc;
- padding: 20px;
- z-index: 1000001;
- font-family: Arial, sans-serif;
- width: 300px;
- text-align: center;
- }
- .custom-window input {
- width: 100%;
- padding: 5px;
- margin: 10px 0;
- box-sizing: border-box;
- }
- .custom-window button {
- margin: 5px;
- padding: 5px 10px;
- background-color: #007bff;
- color: white;
- border: none;
- border-radius: 5px;
- cursor: pointer;
- }
- .custom-window button:hover {
- background-color: #0056b3;
- }
- `;
- document.head.appendChild(style);
- const menu = document.createElement('div');
- menu.id = 'cookie-clicker-menu';
- menu.innerHTML = `
- <h3>Cookie Clicker Mod Menu</h3>
- <button id="start-auto-click">Start Auto Click</button>
- <button id="stop-auto-click">Stop Auto Click</button>
- <button id="gain-lumps">Gain Lumps</button>
- <button id="buy-times">Buy All</button>
- <button id="set-cookies">Set Cookies</button>
- <button id="ruin-the-fun">Ruin The Fun</button>
- `;
- document.body.appendChild(menu);
- // Make the menu draggable
- let isDragging = false;
- let currentX;
- let currentY;
- let initialX;
- let initialY;
- let xOffset = 0;
- let yOffset = 0;
- menu.querySelector('h3').addEventListener('mousedown', dragStart);
- document.addEventListener('mousemove', drag);
- document.addEventListener('mouseup', dragEnd);
- function dragStart(e) {
- initialX = e.clientX - xOffset;
- initialY = e.clientY - yOffset;
- isDragging = true;
- }
- function drag(e) {
- if (isDragging) {
- e.preventDefault();
- currentX = e.clientX - initialX;
- currentY = e.clientY - initialY;
- xOffset = currentX;
- yOffset = currentY;
- setTranslate(currentX, currentY, menu);
- }
- }
- function dragEnd(e) {
- initialX = currentX;
- initialY = currentY;
- isDragging = false;
- }
- function setTranslate(xPos, yPos, el) {
- el.style.transform = `translate3d(${xPos}px, ${yPos}px, 0)`;
- }
- // Custom input window function
- function createInputWindow(title, placeholder, callback) {
- const inputWindow = document.createElement('div');
- inputWindow.className = 'custom-window';
- inputWindow.innerHTML = `
- <h3>${title}</h3>
- <input type="text" placeholder="${placeholder}">
- <button class="confirm">Confirm</button>
- <button class="cancel">Cancel</button>
- `;
- document.body.appendChild(inputWindow);
- const input = inputWindow.querySelector('input');
- const confirmBtn = inputWindow.querySelector('.confirm');
- const cancelBtn = inputWindow.querySelector('.cancel');
- confirmBtn.addEventListener('click', () => {
- const value = input.value;
- document.body.removeChild(inputWindow);
- callback(value);
- });
- cancelBtn.addEventListener('click', () => {
- document.body.removeChild(inputWindow);
- });
- }
- // Custom alert window function
- function createAlertWindow(message) {
- const alertWindow = document.createElement('div');
- alertWindow.className = 'custom-window';
- alertWindow.innerHTML = `
- <p>${message}</p>
- <button class="ok">OK</button>
- `;
- document.body.appendChild(alertWindow);
- const okBtn = alertWindow.querySelector('.ok');
- okBtn.addEventListener('click', () => {
- document.body.removeChild(alertWindow);
- });
- }
- // Auto-click functionality
- function autoClickCookie(interval) {
- if (typeof interval !== 'number' || interval <= 0) {
- console.error("Please provide a valid interval in milliseconds.");
- return;
- }
- if (!clickInterval) {
- clickInterval = setInterval(() => {
- Game.ClickCookie();
- }, interval);
- } else {
- createAlertWindow("Auto clicker is already running.");
- }
- }
- function stopAutoClickCookie() {
- if (clickInterval) {
- clearInterval(clickInterval);
- clickInterval = null;
- console.log("Auto clicker stopped.");
- } else {
- console.warn("Auto clicker is not currently running.");
- }
- }
- // Gain lumps functionality
- function getLumps() {
- createInputWindow("Gain Lumps", "Enter number of lumps", (lumps) => {
- if (lumps && !isNaN(Number(lumps))) {
- Game.gainLumps(Number(lumps));
- createAlertWindow(`Gained ${lumps} lumps`);
- } else {
- createAlertWindow("Please enter a valid number.");
- }
- });
- }
- // Ruin The Fun functionality
- function ruinTheFun() {
- if (confirm("Are you sure you want to ruin the fun? This action cannot be undone!")) {
- Game.RuinTheFun(1);
- createAlertWindow("The fun has been ruined!");
- }
- }
- function buyAll() {
- Game.storeBuyAll();
- createInputWindow("Buy All", "How much do you want to buy?", (times) => {
- if (times && !isNaN(Number(times))) {
- for (let i in Game.Objects) {
- Game.Objects[i].getFree(Number(times));
- }
- createAlertWindow(`Bought all objects ${times} times.`);
- } else {
- createAlertWindow("Please enter a valid number.");
- }
- });
- }
- function setCookies() {
- createInputWindow("Set Cookies", "Enter number of cookies", (cookies) => {
- if (cookies && !isNaN(Number(cookies))) {
- Game.cookies = Number(cookies);
- createAlertWindow(`Successfully set your cookies to ${cookies}`);
- } else {
- createAlertWindow("Please enter a valid number.");
- }
- });
- }
- // Event listeners for buttons
- document.getElementById('start-auto-click').addEventListener('click', () => autoClickCookie(10));
- document.getElementById('stop-auto-click').addEventListener('click', stopAutoClickCookie);
- document.getElementById('gain-lumps').addEventListener('click', getLumps);
- document.getElementById('buy-times').addEventListener('click', buyAll);
- document.getElementById('ruin-the-fun').addEventListener('click', ruinTheFun);
- document.getElementById('set-cookies').addEventListener('click', setCookies);
- console.log("Cookie Clicker mod menu added. Drag the title to move the menu.");
- })();