您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a mod menu to Cookie Clicker for additional features.
// ==UserScript== // @name Cookie Clicker Mod Menu // @version 1.0 // @description Adds a mod menu to Cookie Clicker for additional features. // @author John1632 // @license MIT // @include https://orteil.dashnet.org/cookieclicker/ // @grant none // @namespace https://greasyforks.org/users/1082028 // ==/UserScript== (function() { 'use strict'; var multipliers = [2, 5, 10, 20, 50, 100, 500, 1000]; var additionalMultipliers = [100, 500, 1000, 5000, 10000, 50000]; var modMenu = document.createElement('div'); modMenu.style.position = 'fixed'; modMenu.style.bottom = '20px'; modMenu.style.left = '20px'; modMenu.style.padding = '10px'; modMenu.style.background = '#333'; modMenu.style.border = '1px solid #fff'; modMenu.style.color = '#fff'; modMenu.style.zIndex = '9999'; var bigBox; var feature1Button = document.createElement('button'); feature1Button.textContent = 'Open'; feature1Button.style.background = '#555'; feature1Button.style.color = '#fff'; feature1Button.addEventListener('click', function() { if (bigBox) { return; } bigBox = document.createElement('div'); bigBox.style.position = 'fixed'; bigBox.style.top = '50%'; bigBox.style.left = '50%'; bigBox.style.transform = 'translate(-50%, -50%)'; bigBox.style.width = '400px'; bigBox.style.height = '200px'; bigBox.style.background = '#222'; bigBox.style.border = '1px solid #fff'; bigBox.style.zIndex = '9999'; var title = document.createElement('div'); title.textContent = 'Cookie Clicker Mod Menu'; title.style.fontFamily = 'Segoe UI Semibold'; title.style.fontSize = '16px'; title.style.textAlign = 'center'; title.style.marginTop = '20px'; title.style.color = '#fff'; bigBox.appendChild(title); var buttonsContainer = document.createElement('div'); buttonsContainer.style.display = 'flex'; buttonsContainer.style.flexWrap = 'wrap'; buttonsContainer.style.marginTop = '10px'; buttonsContainer.style.marginLeft = '10px'; for (var i = 0; i < multipliers.length; i++) { var multiplierButton = document.createElement('button'); multiplierButton.textContent = multipliers[i] + 'x'; multiplierButton.style.background = '#555'; multiplierButton.style.color = '#fff'; multiplierButton.style.marginRight = '10px'; multiplierButton.addEventListener('click', createClickHandler(multipliers[i])); buttonsContainer.appendChild(multiplierButton); } bigBox.appendChild(buttonsContainer); var additionalButtonsContainer = document.createElement('div'); additionalButtonsContainer.style.display = 'flex'; additionalButtonsContainer.style.flexWrap = 'wrap'; additionalButtonsContainer.style.marginTop = '10px'; additionalButtonsContainer.style.marginLeft = '10px'; for (var j = 0; j < additionalMultipliers.length; j++) { var additionalMultiplierButton = document.createElement('button'); additionalMultiplierButton.textContent = '+' + additionalMultipliers[j].toLocaleString(); additionalMultiplierButton.style.background = '#555'; additionalMultiplierButton.style.color = '#fff'; additionalMultiplierButton.style.marginRight = '10px'; additionalMultiplierButton.addEventListener('click', createAdditionClickHandler(additionalMultipliers[j])); additionalButtonsContainer.appendChild(additionalMultiplierButton); } bigBox.appendChild(additionalButtonsContainer); var additionalButtons = [ { label: 'All Upgrades', action: function() { Game.SetAllUpgrades(1); } }, { label: 'All Achievements', action: function() { Game.SetAllAchievs(1); } }, { label: 'Max Specials', action: function() { Game.MaxSpecials(); } } ]; var extraButtonsContainer = document.createElement('div'); extraButtonsContainer.style.display = 'flex'; extraButtonsContainer.style.flexWrap = 'wrap'; extraButtonsContainer.style.marginTop = '10px'; extraButtonsContainer.style.marginLeft = '10px'; for (var k = 0; k < additionalButtons.length; k++) { var additionalButton = document.createElement('button'); additionalButton.textContent = additionalButtons[k].label; additionalButton.style.background = '#555'; additionalButton.style.color = '#fff'; additionalButton.style.marginRight = '10px'; additionalButton.addEventListener('click', additionalButtons[k].action); extraButtonsContainer.appendChild(additionalButton); } bigBox.appendChild(extraButtonsContainer); var resetButton = document.createElement('button'); resetButton.textContent = 'RESET GAME'; resetButton.style.background = '#f00'; resetButton.style.color = '#fff'; resetButton.style.position = 'absolute'; resetButton.style.bottom = '10px'; resetButton.style.left = '50%'; resetButton.style.transform = 'translateX(-50%)'; resetButton.addEventListener('click', function() { var confirmation = confirm('Are you sure you want to reset the game?'); if (confirmation) { Game.SesameReset(); } }); bigBox.appendChild(resetButton); document.body.appendChild(bigBox); }); modMenu.appendChild(feature1Button); var feature2Button = document.createElement('button'); feature2Button.textContent = 'Close'; feature2Button.style.background = '#555'; feature2Button.style.color = '#fff'; feature2Button.style.marginLeft = '10px'; feature2Button.addEventListener('click', function() { if (!bigBox) { return; } document.body.removeChild(bigBox); bigBox = null; }); modMenu.appendChild(feature2Button); var autoClickerButton = document.createElement('button'); autoClickerButton.textContent = 'Auto-Click: OFF'; autoClickerButton.style.background = '#555'; autoClickerButton.style.color = '#fff'; autoClickerButton.style.marginLeft = '10px'; autoClickerButton.addEventListener('click', function() { if (autoClickerButton.textContent === 'Auto-Click: OFF') { startAutoClicker(); } else { stopAutoClicker(); } }); modMenu.appendChild(autoClickerButton); document.body.appendChild(modMenu); function createClickHandler(multiplier) { return function() { var cookies = Game.cookies; var newAmount = cookies * multiplier; Game.cookies = newAmount; }; } function createAdditionClickHandler(value) { return function() { Game.cookies += value; }; } var autoClickerIntervalId; function startAutoClicker() { autoClickerIntervalId = setInterval(function() { Game.ClickCookie(); }, 100); autoClickerButton.textContent = 'Auto-Click: ON'; } function stopAutoClicker() { clearInterval(autoClickerIntervalId); autoClickerIntervalId = null; autoClickerButton.textContent = 'Auto-Click: OFF'; } })();