您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically trade stocks
// ==UserScript== // @name CookieClicker trading bot // @namespace Violentmonkey Scripts // @match http://orteil.dashnet.org/cookieclicker/ // @match https://orteil.dashnet.org/cookieclicker/ // @match http://ozh.github.io/cookieclicker/ // @grant none // @version 1.0.8 // @author lordratte // @description Automatically trade stocks // ==/UserScript== function trader_tick() { 'use strict' let mgame = Game.Objects.Bank.minigame; let resting_values = mgame.goodsById.map(g => 10 * (g.id + 1) + Game.Objects.Bank.level - 1); function loop_goods(callback) { for (let good_id in mgame.goodsById.reverse()) { let good = mgame.goodsById[good_id]; let sell_lim = resting_values[good_id]; // price x (1 + broker_fee) <= resting_price // therefore: price <= resting_price / (1 + broker_fee) let buy_lim = sell_lim / (1 + 0.01 * (20 * Math.pow(0.95, mgame.brokers))); callback({ 'good': good, 'sell_lim': sell_lim, 'buy_lim': buy_lim }); } } loop_goods(data => { if (data.good.val >= data.sell_lim) { mgame.sellGood(data.good.id, 20); } }); loop_goods(data => { if (data.good.val < data.buy_lim) { mgame.buyGood(data.good.id, 20); } }); } window.eval(trader_tick.toString() + ";" + "(" + (function() { 'use strict'; function load_trader() { try { Game.Objects.Bank.minigame.__old_tick = Game.Objects.Bank.minigame.tick; Game.Objects.Bank.minigame.tick = function() { this.__old_tick(); trader_tick(); } Sounds['snd/cashIn.mp3'] = {readyState:1}; Sounds['snd/cashOut.mp3'] = {readyState:1}; console.log('Trader loaded'); return true; } catch { return false; } } var interval = setInterval(function() { if (Game && Game.ready && load_trader()) { clearInterval(interval); } }, 1000); }).toString() + ")()"); // vim: ts=2 sw=2 sts=2