Greasy Fork

CookieClicker trading bot

Automatically trade stocks

当前为 2022-11-21 提交的版本,查看 最新版本

// ==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.5
// @author      lordratte
// @description  Automatically trade stocks
// ==/UserScript==

function trader_tick() {
  let mgame = Game.Objects.Bank.minigame;
  let resting_values = mgame.goodsById.map(g=>10*(g.id+1) + Game.Objects.Bank.level - 1);

  for (good_id in mgame.goodsById) {
    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)));


    if (good.val < buy_lim) {
      mgame.buyGood(good_id, 20);
    }

    if (good.val >= sell_lim) {
      mgame.sellGood(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();
        }
        console.log('Trader loaded');
        return true;
      } catch {
        return false;
      }
    }

    var interval = setInterval(function() {
        if(Game && Game.ready && load_trader()) {
          clearInterval(interval);
        }
    }, 1000);
}).toString() + ")()");