您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adding some basic hack features to Orteil's Cookie Clicker games
- // ==UserScript==
- // @name Cookie Clicker Minihack
- // @namespace http://tampermonkey.net/
- // @version 1.0.3
- // @description Adding some basic hack features to Orteil's Cookie Clicker games
- // @author You
- // @match *orteil.dashnet.org/cookieclicker/*
- // @grant none
- // ==/UserScript==
- setTimeout(function() {
- 'use strict';
- // variables
- const config = {
- goldenCookies: true, // autoclick all golden cookies
- hideNotes: true, // notes/notifications
- autoClickSpeed: 20, // false to disable - number to choose clicks per secound
- autoshop: 800, // number of each item you want to have before it stops buying automatically
- disableBadEffects: true, // disable all negative effects (that I know about)
- addTimeToBuffs: 60, // number of secs more time to buffs ("boosts" like "Frenzy")
- extremeBoost: true // activates the "sugar frenzy" buff with extreme boost
- };
- // disable autoshop for this hack; it will add items from the shop for free all the time anyway
- config.ultimateHack = false;
- // elements to use again, and again, and still again
- const shimmers = document.getElementById('shimmers'),
- notes = document.getElementById('notes'),
- bigCookie = document.getElementById('bigCookie'),
- upgrades = document.getElementById('upgrades'),
- shop = document.getElementById('products');
- // autoclick any golden cookies
- if (config.goldenCookies) {
- setInterval(function() {
- let goldenCookies = shimmers.childNodes;
- if (goldenCookies.length === 0) return;
- for (let i = 0; i < goldenCookies.length; i++) {
- goldenCookies[i].click();
- }
- }, 500);
- }
- // hide annoying notes/notifications located in bottom center
- if (config.hideNotes) {
- notes.style.display = 'none';
- }
- // autoclick the cookie - limit to x times every secound for preventing overload
- if (typeof config.autoClickSpeed === 'number' && config.autoClickSpeed >= 0) {
- setInterval(() => {
- bigCookie.click();
- }, 1000 / config.autoClickSpeed);
- }
- // auto upgrade
- setInterval(() => {
- const enabledEls = upgrades.childNodes;
- for (let i = 0; i < enabledEls.length; i++) {
- enabledEls[i].click();
- }
- }, 100);
- // autoshop
- if (typeof config.autoshop === 'number' && config.autoshop >= 0) {
- setInterval(function() {
- // will toggle on the "buy" if "sell" is choosen
- Game.storeBulkButton(0); // eslint-disable-line
- // choose to buy only 1 when clicking items - because this code is based on clicking the elements
- Game.storeBulkButton(2); // eslint-disable-line
- const items = shop.childNodes;
- for (let i = 1; i < items.length; i++) {
- const item = items[i];
- let amountNode = item.getElementsByClassName('content')[0].childNodes[4];
- if (amountNode.innerText*1 < config.autoshop) {
- item.click(); // click item if you can afford it, and you don't have the amount you want
- }
- }
- }, 200);
- }
- // disable bad effects
- if (config.disableBadEffects) {
- Game.SpawnWrinkler=function(){}; // eslint-disable-line
- window.Game.UpdateGrandmapocalypse=function(){};
- const badBuffs = ['clot', 'building debuff'];
- const origGainBuff = Game.gainBuff; // eslint-disable-line
- Game.gainBuff = function (type, time, ...args) { // eslint-disable-line
- if (typeof type !== 'string' || badBuffs.includes(type)) return console.log(`The "${type}"-buff got prevented from taking over your CpS`);
- else origGainBuff(type, time += parseInt(config.addTimeToBuffs), ...args);
- }
- }
- // finish the game with hack, but without the cheat achievement?
- if (config.ultimateHack && (typeof config.autoshop !== 'number' || config.autoshop === 0)) {
- setInterval(() => {
- //
- }, 500) // every 0,5 sec
- }
- if (config.extremeBoost) {
- setInterval(function() {
- Game.gainBuff('sugar frenzy', 10, 1e9); // eslint-disable-line
- }, 10*1e3 + 10);
- }
- }, 3e3); // wait 3 sec before actually running this script