Untitled
unknown
plain_text
3 years ago
25 kB
5
Indexable
//******************* Nubs27's Smart Script for Crash ******************* // // // // If you find this script helpful please consider donating to Nubs27 or tipping on NanoGames.io: // Referral Link: https://n-luzqe.nanogames.io/ // // Donations accepted in many coin/token types. List & Addresses: // https://sites.google.com/view/nanogamescrashscripts/home/donation-addresses // // // var config = { mainTitle: { label: '*** Nubs27\'s Smart Script for Crash ***', type: 'title' }, auto: { label: '', value: 'Script', type: 'radio', options: [ { value: 'Script', label: 'Script chooses Base Bet'}, { value: 'Player', label: 'Player chooses Base Bet'} ]}, bet: { label: 'Base Bet', value: currency.minAmount, type: 'number' }, lossTitle: { label: 'Stop When ', type: 'title' }, stop: { label: 'Coins Lost >', value: 1, type: 'number' }, end: { label: 'Minutes >', value: 250, type: 'number' }, profit: { label: 'Profit >', value: 100, type: 'number' }, }; function main () { //PayOuts checked in the Stats Update const MultiplierArray = [2.5, 3.00, 5.00, 6.00, 7.00]; const LMultiplierArray = [10.00, 20.00, 50.00, 100.00]; var version = "v2.3"; var PayOutPercents = []; var PayOutConfidence = []; var Array2Filter = []; var FilteredArray = []; var ScriptHistory = []; var Trains = []; // Red Train IDs - finding gaps between & correlation between gap & duration var History = []; var RoundsPlayed = 0; var RoundsViewed = 0; var LastGameID = 1; var CurrentGameID = LastGameID + 1; var MinimumBet = currency.minAmount; var MaxBet = (currency.amount / 10); var TotalBets = 0; var CurrentMultiplier = MultiplierArray[1]; var LastMultiplier = MultiplierArray[1]; var MaxLossesEncountered = 3; var MostLost = 0; var LargestMulitplier = 2; var BaseBet = config.bet.value; var CurrentBet = BaseBet; var LastBet = BaseBet; var LastShrek = CurrentGameID; var LastTrain = 0; var Gap = 0; var AverageGap = 0; var LargestBet = [0,0]; var Enable100ID = 1000000; var LastResult = "Won"; var CoinLost = 0; var StopLossCoin = config.stop.value; var Losses = 0; var Wins = 0; var Red = 0; var Green = 0; var StartTime = new Date(); var EndTime = new Date(); var TimeDiff = (EndTime - StartTime); var StartBalance = currency.amount; var EndBalance = 0; var Profit = 0; var ATHProfit = 0; var ProfPerMin = 0; var NetProfit = 0; var DisplayGreeting = "False"; var GotHistory = "False"; var BetYet = "False"; var LoggedBetData = "False"; var GameInfoLogged = "False"; var StrategyFound = "False"; var IsPlaying = "False"; var UpdateBets = "False"; var Enable100 = "False"; var LastCrash = 0; var PrevCashOut = 0; var WonAmount = 0; var FindThisMultiplier = 1; var FindShouldHave = 2; var ThisAverage = 1; var HistorySlice = 50; var Paused = "True"; var IndexMax = PayOutConfidence[0]; var MaxIndex = 0; var GetNumber = 0; // Welcome the Player to the Script console.clear(); engine.on('GAME_STARTING', function () { if (DisplayGreeting == "False") { log.info(' Nubs27s Smart Script for Crash'); log.info(" ****************"); log.info("See Web Console for more Information (Press F12)"); console.log('%c~~~~~~~~~~~~~~~~~ Nubs27\'s Smart Script for Crash ~~~~~~~~~~~~~~~~~','color:Purple; font-weight:bold'); console.log('%cScript Start Time: ' + StartTime,'color:Purple; font-weight:200'); console.log(' %cWelcome ' , 'color:Purple; font-weight:bold'); console.log(' %cYour Starting Balance is: ' + StartBalance + ' ' + currency.currencyName, 'color:Purple; font-weight:bold'); if (config.auto.value == 'Player') { if (config.stop.value > currency.amount) { MaxBet = (currency.amount / 10); config.stop.value = currency.amount * 0.98; console.log('%c[WARNING]: Stop Loss is above your Bankroll','color:Orange; font-weight:bold'); console.log('%c[WARNING]: Stop Loss Updated to ' + config.stop.value, 'color:Orange; font-weight:bold'); } if (config.bet.value > (config.stop.value / 15000)) { log.info('[WARNING]: Script Recommends a bankroll of at least ' + (BaseBet * 15000) + '' + currency.currencyName + ' for the Base Bet you provided'); log.info('[WARNING]: Script Recommends a bankroll of at least ' + (BaseBet * 20000) + '' + currency.currencyName + ' for the Base Bet you provided'); log.info('[WARNING]: Script Recommends a bankroll of at least ' + (BaseBet * 25000) + '' + currency.currencyName + ' for the Base Bet you provided'); } console.log(' %cYou Input: ' + BaseBet + ' ' + currency.currencyName + ' as the Base Bet', 'color:Purple; font-weight:bold'); }else{ betupdate(); console.log(' %cYour Starting Base Bet is: ' + BaseBet + ' ' + currency.currencyName, 'color:Purple; font-weight:bold'); } console.log(' %cYour Stoppers are: Coin Lost > ' + config.stop.value + '; Minutes > ' + config.end.value + '; Profit > ' + config.profit.value, 'color:Purple; font-weight:bold'); console.log('%c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~','color:Purple; font-weight:bold'); if (config.stop.value > currency.amount) { MaxBet = (currency.amount / 10); config.stop.value = currency.amount * 0.95; console.log('%c[WARNING]: Stop Loss Updated to ' + config.stop.value, 'color:Orange; font-weight:bold'); } } DisplayGreeting = "True"; if (GotHistory == "False") { getnanohistory(); GotHistory = "True"; console.log(ScriptHistory); LastShrek = []; LastTrain = []; } // // // //Everything above here only runs 1 time console.log(' ----------------------------'); CurrentGameID = (LastGameID + 1); console.log('[Round ID]: ' + CurrentGameID); if (StrategyFound == "False") { strategy(); } //Checks User Parameters for Stopping Script checkstoppers(); CurrentBet = BaseBet; MaxIndex = Math.floor(Math.random() * MaxIndex); CurrentMultiplier = GetNumber; CurrentBet = ((CoinLost + BaseBet) / CurrentMultiplier - 1); checkbet(); if (BetYet == "False") { engine.bet(CurrentBet, CurrentMultiplier); console.log("[Betting] " + CurrentBet.toFixed(7) + " at " + CurrentMultiplier + "x"); log.info("[Betting] " + CurrentBet.toFixed(7) + " at " + CurrentMultiplier + "x"); } BetYet = "True"; }); function getnanohistory() { History = engine.getHistory(); for (i = 0; i < History.length; i++) { ScriptHistory.push(History.crash / 100); RoundsViewed++; } } function strategy() { // Is there a Payout with a 80% Confidence or Higher? If not, pause. findconfidence(); // Which Payout has highest confidence based upon history & math? findlargestindex(); // console.log('[Index] ' + '(' + MaxIndex + ')' + ' PayOut: ' + MultiplierArray[MaxIndex] + ' [Largest Confidence] ' + PayOutConfidence[MaxIndex]); // console.log(' PayOut ' + MultiplierArray[MaxIndex] + '; Confidence Level ' + PayOutConfidence[MaxIndex] + ' %'); GetNumber = MultiplierArray[MaxIndex]; // Randomize the PayOut randompayout(); // console.log('[Get Number] is: ' + GetNumber); checkforstreaks(); CurrentMultiplier = GetNumber; StrategyFound = "True"; // Which Payout has highest confidence based upon streakiness of rounds? } function randompayout() { if (LastResult == "Lost" && CurrentMultiplier > 1.98) { GetNumber = (CurrentMultiplier * 0.95); }else if (LastResult =="Lost") { GetNumber = (CurrentMultiplier * 1.25); } GetNumber = GetNumber * 100; GetNumber = Math.floor(Math.random() * GetNumber) + 211; GetNumber = GetNumber / 100; if (isNaN(GetNumber)) { GetNumber = Math.floor(Math.random() * 311) + 251; GetNumber = GetNumber / 100; } } function checkforstreaks() { threeafterthree(); minitrains(); prevpayouts(); htrains(); tens(); // hundred(); HistorySlice = 50; } function tens() { FindThisMultiplier = 9.99; HistorySlice = 10; historyfilter(); if (FilteredArray.length > 2) { CurrentBet = BaseBet; CurrentMultiplier = 3.11; console.log('[Bet Adjustment] PayOut +10x = ' + FilteredArray.length); } } function hundred() { FindThisMultiplier = 69; HistorySlice = 100; historyfilter(); if (Enable100 == "True" && (CurrentGameID - Enable100ID) > 25) { Enable100 = "False"; } if (Enable100 == "True" && LastResult == "Won") { Enable100 = "False"; } if (FilteredArray.length === 0) { if (Enable100 == "True") { CurrentMultiplier = 88.00; CurrentBet = ((CoinLost + (BaseBet * Losses)) / (CurrentMultiplier - 1)); console.log('Manadory run at 100x'); } } } function historyfilter() { Array2Filter = ScriptHistory.slice(0,[HistorySlice]); FilteredArray = Array2Filter.filter(function (e) { return e > FindThisMultiplier; }); } function htrains() { if (Red > 5) { CurrentMultiplier = Math.floor(Math.random() * 311) + 199; CurrentMultiplier = CurrentMultiplier / 100; CurrentBet = ((CoinLost + BaseBet) / (CurrentMultiplier - 1)); GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] Reds > 5'); } if (Red > 9) { CurrentMultiplier = Math.floor(Math.random() * 488) + 235; CurrentMultiplier = CurrentMultiplier / 100; CurrentBet = ((CoinLost + BaseBet) / (CurrentMultiplier - 1)); GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] Reds > 5'); } } function prevpayouts() { if (ScriptHistory[0] > 5.00 || ScriptHistory[1] > 5.00 || ScriptHistory[2] > 5.00) { CurrentMultiplier = Math.floor(Math.random() * 299) + 233; CurrentMultiplier = CurrentMultiplier / 100; GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] 5x in last 3 rounds'); } if (LastResult == "Won") { CurrentMultiplier = Math.floor(Math.random() * 311) + 215; CurrentMultiplier = CurrentMultiplier / 100; GetNumber = CurrentMultiplier; CurrentBet = ((CoinLost + (BaseBet * Losses)) / (CurrentMultiplier - 1)); } } function minitrains() { if (Green > 3 && LastResult == "Lost") { CurrentBet = ((CoinLost + (BaseBet * Losses)) / (CurrentMultiplier - 1)); CurrentMultiplier = 2.14; GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] Green x3 & Loss'); } if (Green > 3 && LastResult == "Won") { CurrentBet = BaseBet; CurrentMultiplier = 3.11; GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] Green x3 & Won'); } if (Red > 3 || Green > 3) { CurrentMultiplier = Math.floor(Math.random() * 311) + 199; CurrentMultiplier = CurrentMultiplier / 100; CurrentBet = ((CoinLost + (BaseBet * Losses)) / (CurrentMultiplier - 1)); GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] Red/Green x3'); } } function threeafterthree () { if (ScriptHistory[0] > 2.99 && ScriptHistory[1] > 2.99 && ScriptHistory[2] > 2.99) { if ((CurrentGameID - LastTrain) > 15 && (CurrentGameID - LastShrek > 10)) { if (LastResult == "Won") { CurrentBet = BaseBet * 2; CurrentMultiplier = 2.14; GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] 3x after 3 rounds & Won'); } if (LastResult == "Lost") { CurrentMultiplier = Math.floor(Math.random() * 288) + 211; CurrentMultiplier = CurrentMultiplier / 100; CurrentBet = ((CoinLost + (BaseBet * Losses)) / (CurrentMultiplier - 1)); GetNumber = CurrentMultiplier; console.log('[Bet Adjustment] 3x after 3 rounds & Lost'); } } } } function findconfidence() { PayOutConfidence = []; for (i = 0; i < PayOutPercents.length; i++) { if (PayOutPercents < 100) { PayOutConfidence = (100 - PayOutPercents); PayOutConfidence = Math.abs(PayOutConfidence); PayOutConfidence = (PayOutConfidence + 25); }else if (PayOutPercents == 100) { PayOutConfidence = 25; }else{ PayOutConfidence = 0; } if (i > 3) { PayOutConfidence = (PayOutConfidence - 25); } if (i > 5) { PayOutConfidence = (PayOutConfidence - 25); } if (PayOutConfidence < 0) { PayOutConfidence = 0; } } } function findlargestindex() { IndexMax = PayOutConfidence[0]; MaxIndex = 0; for (var i = 1; i < PayOutConfidence.length; i++) { if (PayOutConfidence >= IndexMax) { MaxIndex = i; IndexMax = PayOutConfidence; } } } function checkbet() { MinimumBet = currency.minAmount; BaseBet = config.bet.value; //Check bet against player bankroll --- For what parameters??? //Check bet against site bankroll - is there enough to win all we want? if (CurrentBet < BaseBet) { CurrentBet = BaseBet; } if (CurrentBet < MinimumBet) { CurrentBet = MinimumBet; } if (CurrentBet > MaxBet) { CurrentBet = MaxBet; console.log('[Bet Adjustment] Survive Losses'); } if (CurrentBet > currency.maxAmount) { CurrentBet = currency.maxAmount; MaxBet = currency.maxAmount / 5; console.log('[Bet Adjustment] Maximum Bet allowed by platform'); } if (CurrentBet > LargestBet[0]) { LargestBet[0] = CurrentBet; LargestBet[1] = CurrentMultiplier; } } engine.on('GAME_ENDED', function (data) { console.log(data); RoundsViewed++; LastCrash = data.crash; PrevCashOut = LastCrash; LastGameID = data.gameId; if (GameInfoLogged == "False") { loglastcrash(data); } updateplayer(); updatestats(); CurrentGameID = CurrentGameID.toString(); if (CurrentGameID.endsWith('0')) { console.log(version); console.log('%c~~Nov~~~~ Update Completed ~~~~2019~~','color:blue;font-weight:bold'); log.info('~~Nov~~~~ Update Completed ~~~~2019~~'); log.info(version); } if (UpdateBets == "True" && LastResult == "Won") { betupdate(); UpdateBets = "False"; } BetYet = "False"; StrategyFound = "False"; LoggedBetData = "False"; Paused = "False"; }); function loglastcrash(data) { if (PrevCashOut > LargestMulitplier) { LargestMulitplier = PrevCashOut; } if (PrevCashOut < 2.01) { Red++; Green = 0; if (Red == 6) { if (LastTrain === 0) { Trains = []; } Trains.unshift(CurrentGameID); Gap = CurrentGameID - LastTrain; AverageGap = (AverageGap + Gap) / Trains.length; console.log('Logging Round ' + CurrentGameID + ' as H Train'); console.log('Average Gap ' + AverageGap + ' between H Trains'); log.info('Logging Round ' + CurrentGameID + ' as H Train'); console.log('Gap from last H Train ' + Gap + ' rounds'); log.info('Gap from last H Train ' + Gap + ' rounds'); LastTrain = CurrentGameID; } }else{ Green++; Red = 0; if (Green == 6) { LastShrek = CurrentGameID; console.log('Logging Round ' + CurrentGameID + ' as Shrek'); log.info('Logging Round ' + CurrentGameID + ' as Shrek'); } } if (CoinLost > MostLost) { MostLost = CoinLost; } if (ScriptHistory.unshift(PrevCashOut) > 999) ScriptHistory.pop(); //Check for if round was played if (data.wager > 0) { TotalBets = TotalBets + CurrentBet; data.wager = CurrentBet; IsPlaying = "True"; winorlose(data); RoundsPlayed++; LastBet = CurrentBet; LastMultiplier = CurrentMultiplier; }else{ LastResult = "Not Played"; } } function winorlose (data) { if (data.cashedAt) { WonAmount = ((CurrentBet * CurrentMultiplier) - CoinLost - CurrentBet); Profit = Profit + WonAmount; LastResult = "Won"; Wins++; Losses = 0; if (Profit > ATHProfit) { ATHProfit = Profit; CoinLost = 0; }else{ CoinLost = ATHProfit - Profit; } log.info("[Profit] " + WonAmount); console.log('%c[Result] Round Won. ' + 'Net Profit of ' + WonAmount.toFixed(7),'color:green'); }else{ LastResult = "Lost"; Losses++; Wins = 0; CoinLost = CoinLost + CurrentBet; console.log('%c[Result] Round ' + LastResult,'color:red'); log.info('Round Lost'); } if (Losses > MaxLossesEncountered) { MaxLossesEncountered = Losses; console.log("Encountered Streak of " + Losses + " Losses Before Win"); log.info("Encountered Streak of " + Losses + " Losses Before Win"); } if (Losses > 3) { console.log('%c[Coin Lost] Cumulative Since Last Win: ' + CoinLost.toFixed(7),'color:red'); log.info('%c[Coin Lost] Cumulative Since Last Win: ' + CoinLost.toFixed(7)); } } function updatestats() { //Lists PayOuts under 10x for last 50 rounds for (i = 0; i < MultiplierArray.length; i++) { FindThisMultiplier = MultiplierArray; FindMultiplierHistory(); PayOutPercents = ThisAverage; } //Lists PayOuts 10x and over for last 100 rounds if (RoundsViewed > 100) { HistorySlice = 100; CurrentGameID = CurrentGameID.toString(); if (CurrentGameID.endsWith('0')) { console.log("In the last " + HistorySlice + " rounds there was: "); } for (i = 0; i < LMultiplierArray.length; i++) { FindThisMultiplier = LMultiplierArray; FindMultiplierHistory(); } } // console.log(PayOutPercents); } function FindMultiplierHistory() { FindThisMultiplier = (FindThisMultiplier - 0.01); Array2Filter = ScriptHistory.slice(0,[HistorySlice]); FilteredArray = Array2Filter.filter(function (e) { return e > FindThisMultiplier; }); FindThisMultiplier = (FindThisMultiplier + 0.01); DisplayTimesSeen(); findpercents(); } function DisplayTimesSeen() { FindShouldHave = (Array2Filter.length / FindThisMultiplier); FindShouldHave = (FindShouldHave * 100); FindShouldHave = Math.round(FindShouldHave); FindShouldHave = (FindShouldHave / 100); CurrentGameID = CurrentGameID.toString(); if (CurrentGameID.endsWith('0')) { console.log("PayOuts " + FindThisMultiplier + "x & Higher " + Math.round(FindShouldHave) + " times. There were " + FilteredArray.length); } } function findpercents() { ThisAverage = FilteredArray.length / Math.round(FindShouldHave); ThisAverage = (ThisAverage * 100); ThisAverage = Math.round(ThisAverage); } function updateplayer() { EndBalance = currency.amount; NetProfit = EndBalance - StartBalance; var ProfitPercent = (NetProfit / StartBalance) * 100; EndTime = new Date(); TimeDiff = ((EndTime - StartTime) / 1000 )/ 60; ProfPerMin = (Profit / TimeDiff); CurrentGameID = CurrentGameID.toString(); if (CurrentGameID.endsWith('0')) { console.log(" "); log.info(" "); console.log('%c~~~~~~~~~~ NubsScript Update ~~~~~~~~~~','color:blue;font-weight:bold'); log.info('~~~~~ NubsScript Update ~~~~~'); figuretime(); console.log("Begining Bank " + StartBalance.toFixed(7) + " Current Bank " + currency.amount.toFixed(7) + " " + currency.currencyName); log.info("Begining Bank " + StartBalance.toFixed(7) + " Current Bank " + currency.amount.toFixed(7) + " " + currency.currencyName); console.log("Current Base Bet: " + config.auto.value + " "+ BaseBet + " " + currency.currencyName); log.info("Current Base Bet: " + BaseBet + " " + currency.currencyName); console.log("Session Net Profit " + NetProfit.toFixed(7) + ' ' + currency.currencyName + " or " + ProfitPercent.toFixed(2) + "% "); log.info("Session Net Profit " + NetProfit.toFixed(7) + ' ' + currency.currencyName + " or " + ProfitPercent.toFixed(2) + "% "); console.log("Profit Per Minute " + ProfPerMin.toFixed(7) + ' ' + currency.currencyName); log.info("Profit Per Minute " + ProfPerMin.toFixed(7) + ' ' + currency.currencyName); console.log("Highest PayOut Seen: " + LargestMulitplier + "x"); log.info("Highest PayOut Seen: " + LargestMulitplier + "x"); console.log("Cumulative Amount Bet: " + TotalBets.toFixed(7) + " " + currency.currencyName); log.info("Cumulative Amount Bet: " + TotalBets.toFixed(7) + " " + currency.currencyName); console.log("Biggest Bet Placed " + LargestBet[0] + " at " + LargestBet[1] + "x"); log.info("Biggest Bet Placed " + LargestBet[0] + " at " + LargestBet[1] + "x"); console.log("Largest Loss: " + MostLost.toFixed(7) + " " + currency.currencyName + " on " + MaxLossesEncountered + " consecutive losses"); log.info("Largest Loss: " + MostLost.toFixed(7) + " " + currency.currencyName + " on " + MaxLossesEncountered + " consecutive losses"); if (Trains.length > 2) { console.log("Hilarious Train IDs:"); console.log(Trains); } console.log("In the last " + HistorySlice + " rounds there was: "); } RoundsViewed = RoundsViewed.toString(); if (RoundsViewed.endsWith('00') && config.auto.value == "Script") { UpdateBets = "True"; } } function figuretime() { // get total seconds between the times var delta = Math.abs(StartTime - EndTime) / 1000; // calculate (and subtract) whole days var days = Math.floor(delta / 86400); delta -= days * 86400; // calculate (and subtract) whole hours var hours = Math.floor(delta / 3600) % 24; delta -= hours * 3600; // calculate (and subtract) whole minutes var minutes = Math.floor(delta / 60) % 60; delta -= minutes * 60; // what's left is seconds var seconds = delta % 60; // in theory the modulus is not required if (days > 0) { console.log("Viewed " + RoundsViewed + " Rounds in " + days + " days " + hours + " hours " + minutes + " minutes"); log.info("Viewed " + RoundsViewed + " Rounds in " + days + " days " + hours + " hours " + minutes + " minutes"); }else if (hours > 0) { console.log("Viewed " + RoundsViewed + " Rounds in " + hours + " hours " + minutes + " minutes"); log.info("Viewed " + RoundsViewed + " Rounds in " + hours + " hours " + minutes + " minutes"); }else{ console.log("Viewed " + RoundsViewed + " Rounds in " + minutes + " minutes"); log.info("Viewed " + RoundsViewed + " Rounds in " + minutes + " minutes"); } } function checkstoppers() { if (TimeDiff > config.end.value && LastResult == "Won") { log.info("Stopped Due to User Parameters (Minutes)"); console.log("Stopped Due to User Parameters (Minutes)"); engine.stop(); } if (Profit > config.profit.value && LastResult == "Won") { log.info("Stopped Due to User Parameters (Profit)"); console.log("Stopped Due to User Parameters (Profit)"); engine.stop(); } if (CoinLost > StopLossCoin) { log.info("Stopping Due to User Parameters"); console.log("Stopping Due to User Parameters (Coin Lost)"); engine.stop(); } } function betupdate() { BaseBet = currency.amount / 15000; if (BaseBet < currency.minAmount) { BaseBet = currency.minAmount; console.log("Bankroll too small. Attempting script by user's command"); } config.bet.value = BaseBet; MaxBet = (currency.amount / 10); config.stop.value = currency.amount * 0.98; console.log('%c[WARNING]: Stop Loss Updated to ' + config.stop.value, 'color:Orange; font-weight:bold'); console.log('%c[WARNING]: Base Bet Updated to ' + BaseBet, 'color:Orange; font-weight:bold'); } }
Editor is loading...