Toaster Kitty, а 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 (Кожного разу, коли ви програєте, ви збільшуєте цільовий множник на цю суму.)
- Мінімальний прибуток на Win: $0,01 (Ви хочете забезпечити мінімальний прибуток $0,01 за кожну перемогу.)
- Втрачені монети >: 1 (Зупинити, якщо загальна сума втрачених монет перевищує $1.)
- Перемоги =: 1 (Зупинка після 1 перемоги.)
Враховуючи цю установку, давайте продовжимо реальний приклад, застосовуючи стратегію після програшу, як пропонує сценарій.
Крок 1: Розрахуйте початкову ставку
- Базова ставка визначається таким чином, щоб виграш покривав мінімальний бажаний прибуток. Враховуючи, що виплата становить 88x, і ви хочете прибуток принаймні $0,01:
Для спрощення давайте округлимо це до 0,00011 доларів США для нашого прикладу.
Крок 2: Почніть грати
Ви починаєте зі ставки в розмірі $0,00011 з метою отримати множник 88x.
Крок 3: Налаштуйтеся після втрати
Скрипт розраховує нову ставку після програшу, щоб забезпечити покриття програшів плюс мінімальний прибуток. Розрахунок після програшу враховує загальну кількість втрачених монет і новий цільовий множник.
Якщо останній результат був програшним, сценарій використовує таку формулу для коригування ставки:
New Bet = (Coin Lost+Minimum Profit) / (Current Multiplier−1)
Давайте розберемо, як виглядають ці коригування з реальними числами, враховуючи початкові втрати. Припустимо, що втрачена на даний момент монета становить 0,00011 $ (сума першої ставки), і ми коригуємо наш цільовий множник до 88,05x через збільшення після програшу.
Крок 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,05x.
Крок 5: Продовження стратегії
- Перемога: Якщо наступна гра виграє на рівні або вище цільового множника, скиньте свою ставку до вихідної базової ставки ($0,00011) і цільового множника (88x).
- Подальші втрати: Якщо ви знову програєте, повторіть процес обчислення з оновленими підсумками для втрачених монет і знову відкоригуйте цільовий множник на 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 };
Пояснення коригувань
- Мінімальний бал виходу (виплата): Знижений до
2.5x
від88x
. Ця ціль більш досяжна, що дозволяє частіше отримувати виграші, що має вирішальне значення для стратегії, яка передбачає відновлення після втрат і накопичення прибутку з часом. - Збільшити виплату: З поправкою на
0.02x
, вниз від0.05x
. Цей менший приріст після кожної втрати дозволяє більш поступовий підхід до збільшення цільового множника. Це допомагає ефективніше керувати банкроллом, не надто швидко збільшуючи необхідну ціль виграшу після програшу. - Мінімальний прибуток від виграшу: Залишається на
$0.01
, дотримуючись цілі забезпечення мінімального прибутку з кожним виграшем. Це гарантує, що стратегія націлена на послідовні додаткові прибутки. - Втрачені монети (стоп-лосс): Встановлений в
0.5
(припускаючи, що це розумна частина банкролу гравця на основі його загальних коштів). Це більш консервативне налаштування стоп-лосс, яке допомагає керувати ризиком, запобігаючи великим втратам. - Перемоги (отримання прибутку): Збільшено до
3 wins
перед паузою або зупинкою. Це дає чітку стратегію фіксації прибутку, що дозволяє збирати прибутки та переглядати стратегію.
Зосереджуючись на найгіршому сценарії, коли кожна гра призводить до програшу, доки не буде досягнуто загального ліміту програшу в 0,5, ви потенційно можете зіграти до 64 ігор, перш ніж досягти умови зупинки. Цей розрахунок передбачає, що після кожного програшу ставка трохи збільшується, намагаючись покрити попередні програші та забезпечити мінімальний прибуток, дотримуючись логіки стратегії, але без явного перерахунку ставки на основі результату кожної гри.
Отже, налаштування початкової конфігурації справді рекомендовано для оптимізації результатів. Поточні налаштування, хоч і забезпечують просту стратегію, вказують на високий ризик для можливої кількості гри до досягнення стоп-лоссу, поряд із відносно скромним максимальним виграшем за гру. Більш ефективне збалансування потенціалу виграшів і програшів може призвести до більш стійкої стратегії, потенційно підвищуючи як задоволення, так і прибутковість гри.