Toaster Kitty Script for Crash

Toaster Kitty, A crash scenariusz gry, jest przeznaczony dla tych, którzy chcą uzyskać znaczną nagrodę, potencjalnie ponad 50-krotność początkowego zakładu. Ustawiasz swoją początkową wypłatę i możesz dostosować ustawienia strat i minimalnego zysku. Stamtąd skrypt automatyzuje proces. Zostało wzięte z BC.Game forai został przebudowany, aby działał.

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;
  }
}

Spróbujmy to przeanalizować i spróbować zmaksymalizować zysk.

Konfiguracja wstępna

  • Minimalny punkt wyjścia (wypłata): 88x (To jest Twój docelowy mnożnik. Twoim celem jest wypłata przed tym mnożnikiem.)
  • Zwiększ wypłatę: 0,05 (Za każdym razem, gdy przegrasz, zwiększasz docelowy mnożnik o tę kwotę.)
  • Minimalny zysk przy wygranej: 0,01 $ (Chcesz zapewnić minimalny zysk w wysokości 0,01 $ za każdą wygraną.)
  • Zagubione monety >: 1 (Zatrzymaj, jeśli łączna liczba utraconych monet przekracza 1 USD.)
  • Wygrywa =: 1 (Zatrzymaj po 1 zwycięstwie.)

Biorąc pod uwagę tę konfigurację, przejdźmy do prawdziwego przykładu, stosując strategię po stracie, jak sugeruje scenariusz.

Krok 1: Oblicz zakład początkowy

  • Zakład podstawowy jest ustalany w taki sposób, aby wygrana pokryła wymagany minimalny zysk. Biorąc pod uwagę, że wypłata wynosi 88x, a chcesz zyskać co najmniej 0,01 USD: Zakład podstawowy=Minimalna wypłata zysku=0.0188

Dla uproszczenia zaokrąglimy to do 0,00011 USD w naszym przykładzie.

Krok 2: Zacznij grać

Zaczynasz od zakładu o wartości 0,00011 $, którego celem jest uzyskanie mnożnika 88x.

Krok 3: Dostosuj się po stracie

Skrypt oblicza nowy zakład po przegranej, aby zapewnić pokrycie strat plus minimalny zysk. Obliczenia po stracie uwzględniają całkowitą liczbę straconych monet i nowy docelowy mnożnik.

Jeśli ostatnim wynikiem była przegrana, skrypt do dostosowania zakładu użyje poniższej formuły:

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

Przeanalizujmy, jak te korekty wyglądają w liczbach rzeczywistych, biorąc pod uwagę początkową stratę. Zakładając, że dotychczas przegrana moneta wynosi 0,00011 $ (kwota pierwszego zakładu) i dostosowujemy nasz docelowy mnożnik do 88,05x ze względu na wzrost po stracie.

Krok 4: Obliczanie nowego zakładu po pierwszej przegranej

Zakładając, że całkowita stracona moneta to nadal tylko początkowy zakład (0,00011 USD) i chcesz nie tylko odzyskać tę kwotę, ale także zapewnić minimalny zysk przy następnej wygranej, przy zwiększonym mnożniku wynoszącym obecnie 88,05:

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

Obliczmy nowy zakład:

New Bet = 0.01011 / 87.05 ≈ 0.0001161

Zatem Twój następny zakład powinien wynosić około 0,00012 USD (zaokrąglając dla uproszczenia), mając na celu mnożnik wynoszący 88,05x.

Krok 5: Kontynuacja strategii

  • Zwycięski: Jeśli następna gra wygra na poziomie lub powyżej docelowego mnożnika, zresetuj swój zakład do pierwotnego zakładu podstawowego (0,00011 $) i docelowego mnożnika (88x).
  • Dalsze straty: Jeśli ponownie przegrasz, powtórz proces obliczeń ze zaktualizowanymi sumami straconych monet i ponownie dostosuj docelowy mnożnik o 0,05.

Dokładna logika

Strategia ta polega na zwiększeniu zakładu po przegranej na tyle, aby pokryć przegraną kwotę plus minimalny zysk, za każdym razem nieznacznie dostosowując docelowy mnożnik w górę, aby dążyć do nieco wyższych zwrotów. Tworzy to równowagę między odrabianiem strat a osiąganiem stałych, choć niewielkich zysków.

Pomimo ukierunkowania zakładu na duży mnożnik, strategia przedstawiona w scenariuszu ma na celu umiarkowany zysk.

Optymalizuj zysk

Aby zoptymalizować konfigurację pod kątem zrównoważonej strategii, której celem jest lepsza trwałość i rozsądna szansa na osiągnięcie większych mnożników, pamiętając jednocześnie o zarządzaniu ryzykiem, dostosujmy konfigurację:

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
};

Wyjaśnienie korekt

  1. Minimalny punkt wyjścia (wypłata): Obniżono do 2.5x z 88x. Cel ten jest bardziej osiągalny, pozwala na częstsze zwycięstwa, co jest kluczowe w przypadku strategii polegającej na odrabianiu strat i gromadzeniu zysków w czasie.
  2. Zwiększ wypłatę: Dostosowany do 0.02x, w dół od 0.05x. Ten mniejszy przyrost po każdej stracie pozwala na bardziej stopniowe podejście do zwiększania docelowego mnożnika. Pomaga w skuteczniejszym zarządzaniu bankrollem, nie zwiększając zbyt szybko wymaganego celu wygranej po porażce.
  3. Minimalny zysk przy wygranej: Pozostaje o godz $0.01, utrzymując cel, jakim jest zapewnienie minimalnego zysku przy każdej wygranej. Dzięki temu strategia ma na celu osiągnięcie stałych, przyrostowych zysków.
  4. Stracone monety (Stop Loss): Ustawić 0.5 (zakładając, że jest to rozsądna część bankrolla gracza w oparciu o jego całkowite środki). Jest to bardziej konserwatywne ustawienie stop-loss, które pomaga zarządzać ryzykiem, zapobiegając dużym stratom.
  5. Wygrane (realizacja zysków): Wzrosła do 3 wins przed zatrzymaniem lub zatrzymaniem. Daje to jasną strategię realizacji zysków, pozwalającą na gromadzenie zysków i ponowną ocenę strategii.

Koncentrując się na najgorszym scenariuszu, w którym każda gra kończy się przegraną, aż do osiągnięcia całkowitego limitu strat wynoszącego 0,5, możesz potencjalnie rozegrać do 64 gier, zanim osiągniesz warunek zatrzymania. W obliczeniach tych zakłada się, że po każdej przegranej zakład jest nieznacznie zwiększany, aby pokryć poprzednie straty i zapewnić minimalny zysk, zgodnie z logiką strategii, ale bez wyraźnego przeliczania zakładu na podstawie wyniku każdej gry.


Dlatego rzeczywiście zaleca się dostosowanie początkowej konfiguracji w celu optymalizacji wyników. Obecna konfiguracja, choć zapewnia prostą strategię, wskazuje na wysokie ryzyko dotyczące możliwej ilości gry przed osiągnięciem stop-loss, przy stosunkowo niewielkiej maksymalnej wygranej na grę. Skuteczniejsze równoważenie potencjału zwycięstw i porażek może prowadzić do bardziej zrównoważonej strategii, potencjalnie zwiększając zarówno przyjemność, jak i rentowność gry.