Toaster Kitty Script for Crash

Toaster Kitty, A crash 游戏脚本,专为那些希望获得丰厚回报的人而设计,回报可能超过初始赌注的 50 倍。您可以设置初始支出,并可以调整损失和最低利润的设置。脚本会从那里自动执行该过程。它取自 BC.Game 论坛,并已重构以使其正常工作。

var config = {
  mainTitle: { label: "*** Nubs27's Toaster Kitty ***", type: "title" },
  payout: { label: "Exit Point Minimum", value: 88, type: "number" },
  increase: { label: "Increase Payout", value: 0.05, type: "number" },
  losses: { label: "Minimum Profit on Win", value: 0.01, type: "number" },
  stopTitle: { label: "Stop When", type: "title" },
  stop: { label: "Coins Lost >", value: 1, type: "number" },
  wins: { label: "wins =", value: 1, type: "number" },
};
function main() {
  var isPlaying = false;
  var gamesPlayed = 0;
  var currentGameID = 0;
  var lastResult = "Not Played";
  var lastCrash = 2;
  var prevCashOut = lastCrash;
  var baseBet = config.losses.value / config.payout.value;
  var currentBet = baseBet;
  var lastBet = currentBet;
  var didBet = false;
  var gameInfoLogged = false;
  var scriptHistory = [];
  var updateConsole = false;
  var currentMultiplier = config.payout.value;
  var lastMultiplier = config.payout.value - 0.05;
  var coinLost = 0;
  var wins = 0;
  var losses = 0;
  game.on("GAME_STARTING", function () {
    // set base bet and show initial data log
    if (gamesPlayed < 1) {
      log.info("     Toaster Kitty");
      log.info("     by Nubs27");
      log.info("    ****************");
      baseBet = config.losses.value / config.payout.value;
      if (!Number.isInteger(config.wins.value)) {
        log.info("***** Attention *****");
        log.info("wins = " + config.wins.value + " is NOT valid");
        log.info("Integers ONLY");
        log.info(
          "I could have the script auto round the number, but you like being funny too :)"
        );
        game.stop();
      }
    }
    checkForStops();
    // adjust current bet and multiplier
    if (gamesPlayed < 2 || lastResult === "Won") {
      currentBet = baseBet;
      currentMultiplier = config.payout.value;
      isPlaying = true;
      if (gamesPlayed < 2) {
        log.info(`Played < 2 games`);
      }
      if (lastResult === "Won") {
        log.success(`Won!`);
      }
      log.info(`Current bet: ${currentBet}`);
      log.info(`Current Multiplier: ${currentMultiplier}`);
    }
    // adjust current bet and multiplier
    if (lastResult === "Lost") {
      currentBet = (coinLost + config.losses.value) / (currentMultiplier - 1);
      currentMultiplier = lastMultiplier + config.increase.value;
      log.error(`Lost`);
      log.info(`Current bet: ${currentBet}`);
      log.info(`Current Multiplier: ${currentMultiplier}`);
    }
    // adjust current bet
    if (currentBet < currency.minAmount) {
      currentBet = currency.minAmount;
      log.info(`Current Bet < Min Bet`);
      log.info(`Current bet: ${currentBet}`);
    }
  });
  function checkForStops() {
    if (coinLost > config.stop.value) {
      log.info("Maximum Coin Loss Reached. Script Stopped");
      game.stop();
    }
    if (wins === config.wins.value) {
      log.info("Congratulations");
      log.info("wins goal reached. Script Stopped");
      game.stop();
    }
    currentMultiplier = currentMultiplier * 100;
    currentMultiplier = Math.round(currentMultiplier);
    currentMultiplier = currentMultiplier / 100;
    gamesPlayed++;
    setTimeout(placeBet, 0);
  }
  function placeBet() {
    if (!didBet) {
      game.bet(currentBet, currentMultiplier);
      isPlaying = true;
      didBet = true;
      log.info("    ***********");
    }
    gameInfoLogged = false;
  }
  game.on("GAME_ENDED", function () {
    var lastGame = game.history[0];
    var lastCrash = lastGame.crash / 100;
    currentGameID = lastGame.gameId;
    prevCashOut = lastCrash;
    lastBet = currentBet;
    lastMultiplier = currentMultiplier;
    didBet = false;
    if (!gameInfoLogged) {
      logAllInfo();
    }
  });
  function logAllInfo() {
    if (scriptHistory.push(prevCashOut) > 999) {
      scriptHistory.shift();
    }
    if (isPlaying === true && prevCashOut >= currentMultiplier) {
      var wonAmount = lastBet * currentMultiplier - coinLost;
      lastResult = "Won";
      wins++;
      losses = 0;
      coinLost = config.losses.value;
      log.info("[Game Won] " + wonAmount + " " + currencyName);
    } else if (isPlaying && prevCashOut < currentMultiplier) {
      lastResult = "Lost";
      losses++;
      coinLost = coinLost + lastBet;
    }
    currentGameID = currentGameID.toString();
    if (currentGameID.endsWith("0")) {
      updateConsole = true;
    }
    if (updateConsole) {
      log.info(
        "Amount Lost in search of this Kitty " +
          (coinLost - config.losses.value) +
          " " +
          currency.currencyName
      );
      updateConsole = false;
    }
    gameInfoLogged = true;
  }
}

让我们尝试分析它并尝试最大化其利润。

初始配置

  • 退出点最低限额(支出):88x(这是您的目标乘数。您的目标是在此乘数之前兑现。)
  • 增加支出:0.05(每次输掉,您的目标乘数都会增加这个数额。)
  • 获胜最低利润:0.01 美元(您希望确保每次获胜的最低利润为 0.01 美元。)
  • 丢失硬币 >:1(如果损失的硬币总数超过 1 美元则停止。)
  • 胜利 =:1 (1 胜后停止。)

有了这种设置,让我们继续一个真实的例子,按照脚本的建议,在亏损后应用该策略。

步骤 1:计算初始投注

  • 基本赌注的确定是为了确保获胜能够覆盖所需的最低利润。假设赔付是 88 倍,并且您希望至少获得 0.01 美元的利润: 基本投注=最低利润支出=0.0188

为了简单起见,我们将其四舍五入为 0.00011 美元作为示例。

第 2 步:开始播放

您以 0.00011 美元的赌注开始,目标是获得 88 倍的乘数。

第三步:损失后进行调整

脚本会在输钱后计算新的赌注,以确保弥补损失加上最低利润。输钱后的计算会考虑总损失的硬币和新的目标乘数。

如果最后的结果是输,脚本将使用以下公式来调整赌注:

New Bet = (Coin Lost+Minimum Profit) / (Current Multiplier−1)

让我们用实际数字来分析这些调整,并考虑初始损失。假设到目前为止损失的硬币为 0.00011 美元(第一次下注的金额),并且由于损失后的增加,我们将目标乘数调整为 88.05 倍。

步骤 4:计算第一次输后的新赌注

假设损失的总金额仍只是初始赌注(0.00011 美元),您不仅想收回这笔钱,还想确保下次获胜时的最低利润,此时增加的乘数为 88.05:

New Bet = (0.00011+0.01) / (88.05−1) 

让我们计算新的赌注:

New Bet = 0.01011 / 87.05 ≈ 0.0001161

因此,您的下一个赌注应约为 0.00012 美元(为简单起见四舍五入),目标是乘数为 88.05 倍。

第五步:继续执行策略

  • 获胜:如果下一场比赛获胜的赔率等于或高于目标乘数,则将您的赌注重置为原始基本赌注(0.00011 美元)和目标乘数(88 倍)。
  • 进一步损失:如果再次输,请重复计算过程,更新丢失的硬币总数,并再次将目标乘数调整 0.05。

精准逻辑

这一策略的关键在于,在亏损后增加投注金额,以弥补亏损金额加上最低利润,每次略微上调目标乘数,以期获得略高的回报。这在弥补亏损和实现持续(尽管利润不大)利润之间创造了一种平衡。

尽管目标是获得较大的赌注乘数,但脚本中概述的策略旨在获得适度的利润。

优化利润

为了优化配置,实现平衡策略,以实现更好的可持续性和达到更大乘数的合理机会,同时也注意风险管理,让我们调整配置:

var config = {
  mainTitle: { label: "*** Nubs27's Toaster Kitty ***", type: "title" },
  payout: { label: "Exit Point Minimum", value: 2.5, type: "number" }, // Adjusted for more achievable targets
  increase: { label: "Increase Payout", value: 0.02, type: "number" }, // Slight increase after each loss for gradual recovery
  losses: { label: "Minimum Profit on Win", value: 0.01, type: "number" }, // Keeping the minimum profit target realistic
  stopTitle: { label: "Stop When", type: "title" },
  stop: { label: "Coins Lost >", value: 0.5, type: "number" }, // Adjusted to a more cautious stop loss value
  wins: { label: "wins =", value: 3, type: "number" }, // Setting a win target for taking profits and pausing
};

调整说明

  1. 退出点最低限额(支出): 降低至 2.5x88x。这个目标更容易实现,可以更频繁地获胜,这对于涉及从损失中恢复并随着时间推移积累利润的策略至关重要。
  2. 增加支出: 调整至 0.02x, 从下 0.05x每次亏损后,这种较小的增量允许以更渐进的方式增加目标乘数。它有助于更​​有效地管理资金,因为亏损后不会过快地增加所需的赢利目标。
  3. 获胜最低利润: 仍为 $0.01,保持每次获胜时确保最低利润的目标。这确保该策略旨在实现持续的增量收益。
  4. 丢失的硬币(止损): 设置 0.5 (假设这是基于玩家总资金的合理资金份额)。这是更保守的止损设置,有助于通过防止巨额损失来管理风险。
  5. 获胜(获利回吐): 增加至 3 wins 在暂停或停止之前。这给出了一个明确的获利策略,允许收集收益并重新评估策略。

着眼于最坏情况,即每场比赛都会输,直到达到总损失限额 0.5,在达到停止条件之前,您最多可以玩 64 场游戏。此计算假设每次输掉后,赌注都会略微增加,以弥补之前的损失并确保最低利润,遵循策略的逻辑,但不根据每场比赛的结果明确重新计算赌注。


因此,确实建议调整初始配置以优化结果。当前设置虽然提供了一个简单的策略,但表明在达到止损之前可能进行的游戏量具有高风险,同时每场游戏的最大赢利相对较小。更有效地平衡赢利和输利的潜力可以带来更可持续的策略,从而可能增加游戏的乐趣和盈利能力。