Jump to content

Skele

Member
  • Posts

    300
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by Skele

  1. yeah i can change all of the settings while my script is running. I am just automating the UI functions. I believe i answered the specifics of the high and low swap in another post but i call hdg.changeToggleWin(); Which isn't accessable from the sandboxed scripting environment.
  2. i have given you all of the code Add the two methods anywhere in there out side of the other methods replace the ">3" with "> maxLossesBeforeBet" then add this line maxLossesBeforeMinBet = GetLossesBeforeMinBet(); Everywhere you set your lossStreak back to 0; add the above line right afterwards.
  3. you should make this 3 a parameter, and even better if you make that parameter able to take a range and then you randomly pick from that range. like below, this way maxLossesBeforeMinBet = GetLossesBeforeMinBet(2-3); if(loseStreak >= maxLossesBeforeMinBet) .... function GetLossesBeforeMinBet() { if(config.lossesBeforeMinBet.value.toString().indexOf('-') >= 0) { var numbers = config.lossesBeforeMinBet.value.split('-'); return GetRandomInt(Number.parseInt(numbers[0]), Number.parseInt(numbers[1])); } else { return Number.parseInt(config.lossesBeforeMinBet.value); } } // Returns a random integer between the min and max. function GetRandomInt(min, max) { var retValue = Math.floor(Math.random() * (max - min)) + min; log.info('Number of losses before pause is set to ' + retValue + ''); return retValue; }
  4. i don't know that hashdice gives you history the same way crash does so it may not be possible through using their scripting sandbox stuff. but really it shouldn't matter, on crash it had to be done this way because you didn't bet so didn't have the results from the bet. In hashdice you always have to bet so you should just be checking the result of that bet to see if you won or lost.
  5. i have but you can't do it with their sanboxed scripts.
  6. 20x - https://bc.game/sd/?sd=10IQVUB081AE4Z 30x - https://bc.game/sd/?sd=10IQW9TMT9IOLV 45x - https://bc.game/sd/?sd=10IQWESSWCPZ4J * (12$ big hit) 55x - https://bc.game/sd/?sd=10IQWGW3RJRTOZ * (12$ big hit) 60x - https://bc.game/sd/?sd=10IQX2644E5C0J 65x - https://bc.game/sd/?sd=10IQX55IWBP2XF 70x - https://bc.game/sd/?sd=10IQX7ERN2632R 90x - https://bc.game/sd/?sd=10IQX9KZH2NEAB 120x - https://bc.game/sd/?sd=10IQXD122OEVBN 200x - https://bc.game/sd/?sd=10IQXH0W5MFDAR 250x - https://bc.game/sd/?sd=10IQXJBHIBEVIR 300x - https://bc.game/sd/?sd=10IS3ALKBPWRV7 400x 450x 550x 700x 825x 900x 1000x 1200x 1500x 2000x 2500x 3000x 4000x 5000x 20x - https://bc.game/sd/?sd=10IQVUB081AE4Z 30x - https://bc.game/sd/?sd=10IQW9TMT9IOLV 45x - https://bc.game/sd/?sd=10IQWESSWCPZ4J 55x - https://bc.game/sd/?sd=10IQWGW3RJRTOZ 60x - https://bc.game/sd/?sd=10IQX2644E5C0J 65x - https://bc.game/sd/?sd=10IQX55IWBP2XF 70x - https://bc.game/sd/?sd=10IQX7ERN2632R 90x - https://bc.game/sd/?sd=10IQX9KZH2NEAB 120x - https://bc.game/sd/?sd=10IQXD122OEVBN 200x - https://bc.game/sd/?sd=10IQXH0W5MFDAR 250x - https://bc.game/sd/?sd=10IQXJBHIBEVIR https://bc.game/sd/?sd=10IS3ALKBPWRV7
  7. I have seen like high teens before. Thats why i started putting in the take a break clauses in my scripts so it will stop betting after so many losses and then wait for a win before trying again. It has helped me weather some pretty long red streaks without actually losing all my bankroll, because it ads up fast if you are doubling or tripling your bet.
  8. it sure hasn't and it most likely won't be every. I decided not to spread a lot of the client type stuff around. If i stop being lazy and actually finish packaging it as a browser extension which i can automatically update without having to force the user to update it then maybe i will release that to a limited set of people. Currently i have way too many different version in different locations, and i don't want to fix minor bugs in 6 different versions just beause i didn't wait and finish the browser extension. I have some other ideas for stuff to do with the extension and one of them is essentially extend the current sandbox style scripting to be available in a client script. I would essentially give two text areas a pregame/bet section, and a postgame/hand result section. Then i could pass in more information for people to use and documentation on what does what or contains which information for peopleto use while writing them. This is not goingto happen anytime soon though i have other projects ahead of it as well as my normal job..
  9. https://bc.game/sd/?sd=10HWYT607UUUXF https://bc.game/sd/?sd=10HX0X26J9FXUB
  10. 1. I would love tips to default to private, or at least have a way for players to change their own default settings for this one. I almost never want to send tips publicly and when i forget to change it i always end up with a ton of messages and friend invites from the beggers that plague this site, 2. I would love to see game specific chat rooms. For games like blackjack it would be nice if there was a blackjack specific as well as one just for your table, I think this would also help build the relationships between the players, i am much more likely to interact with someone i playing with and let them know well played or congradulate them on a hand etc... than i am to engage in most of the chat that goes on in like the english or global channel. 3. I would love to see more thought and some actual documentation for the scripting. Because there is no documentation it leads to a lot of people having to poke around on their own, granted this can be fun and does lead to things like switching from high to low, which i know a be done because i do it, just not in the sandboxed script. 4. I would love to see some organization and promotion of voice chatrooms like on telegram or discord (i know they are already there on discord. But currently BCs discord is like for silent people and beggers. It needs to be cleaned up so that people actually start using it without being herassed by the few persistent beggers on there. I try not to go there often but i can name at least 1 off the top of my head who begs from evertyone and has for months which i never see them get anything but damn its annoying., 5. I was reading other posts and was reminded of another thing i would like. I would like the ability to exchange valuable crypto for JB. Something reasonably fair like 100k per 1 bcd or something, But currently the only way to get JB is to win it. And for things like boosting rake back percentage or paying withdraw feels i like to use it but i run out often, and would definitely be willing to pay for it. If that isn't a possibility i would be happen if tyou made it tip able at least. That way i could at least make my own deals with other players who don't use theirs..
  11. wouldn't you just change the 99 to 990 or whatever you want the equation is 1/n *99 , so since it is starting at 1/1 that is what you would have for your starting bet, then it would go 1/2 1./3 1/4 etc... i am assuming. So following the same logical step with your equation ((1/chance)*200); with starting chance of 0.02 you get 50 x200 = 10000- and then i you added one it would step down but at some weird rate. either way just the 99 to what you want and leave chance at 1
  12. You could also just edit the text box labeled "Base bet" that shows up before you start the script. That is what they are for. Modifying the value in the config declaration is only going to change the default value. This would actually be something good to play around with, because since he isn't assigning the value inside of the main method i am unsure if modifying the input field will be picked up ever by the script or if the values that are there by default on load will stay since those are being assigned to the variables but only at the initial start. I will have to play around and report back on that timing.
  13. couple of pointers here. First are you meaning to increment your lose count by multiples? so below is the else statement in your result handler which handles the losses. If you lose count is < 19 all is well and it increments one. Are you aware that once it hits 19 it will go up by 2, every game and then once it hits 26 it goes up by 3 per game? I am not sure if that is what you intended or not but seems like maybe not which is why i point that out. { if (losecount >= 19) { losecount += (1); varix = 1.5; } if (losecount >= 26) { losecount += (1); varix = 1.66; } losecount += (1); currentBet = (previousBet * varix); chance += (1); } The second little tip has to do with when you write out your logs. I am assuming you want to write it like every 100 bets. But the way the condition is currently written it will write the first log at bet 100 and then you reset the bet number which is actually pretty useful to have. In almost all programming languages there is an operator called modulus. This operator returns to you the remainder of the function so in your case in stead of this: if (betcount >= 100) { logSummary(); betcount = 0; } you can achieve the same thing while keeping betcount accurrate by doing this instead: if (betcount % 100 == 0) { logSummary(); } its saying every time betcount/100 has a remainder of 0 then log, then you can display the actual bet count or use it for other things as well. Other than that looks pretty good.
  14. i did test it out and the answer is, its not available from the scripting sandbox they give you. But if you do all the automation just through simulating clicks and what not on the page said of things there is a handy method for toggling high and low
  15. If it was something other than crash i might agree with you, but since all we ever get to see is the hashed server seed, well i tend to believe what i have witnessed and the probably of some of the trends and the frequencies of occurrences someone make one wonder. But since every is server said and if you were given all to prove that it was hashing then you would be able to predict the results everytime. There are many statements though that while technically aren't lies they certainly aren't necessarily truths. Its funny though how person after person has encountered the exact same experience.
  16. Just so you know if you want the longer history of the game results, if you inject javascript into the main page you can get that no problem, it will only give you the last 2000 games though. You can also get what everyone else is betting that way if you want to write a script that owuld place bets following a particular user. In this same way it would not be hard to rewrite the scripts to play all from the front end like that as they do expose a way to place bests from here as well. Useing the scripting framework i imagine had two different goals in mind. First to make it easier for people who don't know how to auomate web tech in general. And second to be able to control how long and what kind of scripts are ran. I stopped sharing mine widely after realizing that they first will change the beahvior of the games after about 24-48 hours to start matching and defeating your specific strategy, etc... I saw people asking for this script to skip games or do safety rolls. The most successful scripts i have found is the first one i grab configurable random numbers in a range for (number of losses before i skip games because of a loosing streak (generally 2 or 3 games though). how many winning game to see before i bet again (i had to make this more than 1 like i originally had it because i would see after about 24 hours all of a sudden there were very long streaks of LLWLLWLLW just enough losses to get me to sit out on a game that was a win which would trigger me to start betting again. the other script that has actually done nicely for me is just betting a single game with a large bit and low payout like 25% of my bank roll at 1.1x, and doing so an random intervals, like 1 game then skip 0-10 games depending on the random roll. This last approach was the closest i would really get to ensure there was no real pattern for the system to grab and start using against me. if you want crash history you can use this command in the dev console window you can use crash.history. History in this case is a 2000 element array. If you want information on other players and their betting you can get that here crash.playersDict which is a dictionary keyed on playerid with their betting status for the upcoming game. The game or engine object that you have access to in the normal scripts, is just a subset of what is in the crash object in this case, or lbg for limbo, or hdg for hashdice.
  17. Ok finally i have the answer to the burning question on high to set the high and low from the script for hashdice. The answer happens to be we are all complete morons apparently. game.priceLevel is the high or log so game.priceLevel = 'high'; game.priceLevel='low'; or to toggle it game.priceLevel=(game.priceLevel != null && game.priceLevel == 'high') ? 'low' : 'high'; and i haven't tested this but since the game and engine object both appear to be the same as the hdg object i am betting this will also work to toggle it. game.changeToggleWin(); I have not tested the last one though everything else has been tested and confirmed.
  18. good job describing the Martingale strategy that believe it or not BC already gives you a script that implements it. they also give you one for the Martingale strategy only with payouts instead of bet increases. Simalar strategies include Labouchere, fibonacci, d'Alembert, just to name a few other famous mathematically strategies trying to minimize the risk of losing everything. There are many other minor variations from these.
  19. loads fine for me //******************* 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(); 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 game.onBet = function () { 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") { console.log("[Betting] " + CurrentBet.toFixed(7) + " at " + CurrentMultiplier + "x"); log.info("[Betting] " + CurrentBet.toFixed(7) + " at " + CurrentMultiplier + "x"); game.bet(CurrentBet, CurrentMultiplier).then(function (payout) { console.log(payout); RoundsViewed++; LastCrash = game.history[0].crash; PrevCashOut = LastCrash; LastGameID = game.history[0].gameId; if (GameInfoLogged == "False") { loglastcrash(game.history[0]); } 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"; }); } 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; } } 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'); } }
  20. Thats why i shared the diff so people could try to figure some of this out on their own. The error message is literally saying the the argument list of one of the methods is missing the closing parentheses. Looking at the changes I did which are highlighted it shouldn't be hard to figure out where I deleted you much There it should be fixed it was missing from line 161. But really people should have at least a little understanding of what these scripts are doing before using them or else you run the risk pf people doing some messed up things in them.
  21. i can why don't you look at how i am doing in the script above it. Essentually they switched from using an event broadcast style to just having you declare a delegate. So here is a quick and dirty refactor of the two methods that were important. I left most everything as is. Things i am sure are going to break. The getting of the history. They not longer give you back more than 10 games and the script uses 200 to look for trends. It has some good concept but needs some refactoring for readability and maintainability, but i love things like using the random numbers for multipliers. I swear they are using machine learning for pattern recognition so that helps., I like the idea of limiting max bet to 10% of your bank roll. I don't play trendball so i can't really speak to the actual strategy at all because i don't know. Before i post the script with fixes so it uses the newer api and events that they still support here is a quick diff of the two scripts. The changes look like more than they actually are essentially all that happened was the game ended event's contents was moved to the then delegate of the onbet method. and i fixed some other minor things that would have throw exceptions like how to get the last games history since that has changed is isn't based back after the crash. Also just fair warning this method i don't believe is going to work because engine.getHistory() if it doesn't throw an exception it will just return null from what i have seen or you may get the last 10 games only along with a warning saying this method of accessing history is deprecated and you need to start saving your own historical results or something like that. ************************************************************************** Script Starting *********************************************************************************************** //******************* 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(); 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 game.onBet = function () { 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") { console.log("[Betting] " + CurrentBet.toFixed(7) + " at " + CurrentMultiplier + "x"); log.info("[Betting] " + CurrentBet.toFixed(7) + " at " + CurrentMultiplier + "x"); game.bet(CurrentBet, CurrentMultiplier).then(function (payout) ) { console.log(payout); RoundsViewed++; LastCrash = game.history[0].crash; PrevCashOut = LastCrash; LastGameID = game.history[0].gameId; if (GameInfoLogged == "False") { loglastcrash(game.history[0]); } 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"; }; } 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; } } 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'); } } ********************************************************************* Script end ********************************************************************************************
  22. I can help you make it. because i haven't actually played hash dice that much and was looking for some sort of strategy to implement with. i will take a look and see if i can't crank it out tonight, however from looking at the API in the past i don't remember it being immediately obvious how to switch from low to high without actually having to change the value in the form before it was submitted, which since the scripts who web workers means the script doesn't have access to the UI directly. For both 1 and 2 just based on my experience with my crash scripts. You want to avoid patterns because i am fairly sure there is some sort of machine learning looking for patterns and then breaking them. If i can figure out how to switch from high to low, i would recommend that you go with like a range for high then low then back something like 1-4 then everytime it switches it will just grab a random number (you may want that range bigger) and does that many of low or high before switching. number 3 is easy to to i already do that in all my crash scripts the only problem is you pretty much have to keep a running total as the balance value doesn't get updated while the script is running except the initial when it starts. At least for crash and i don't know why but i just copied it and had a running total which worked out just fine. Also what kind of logging are you going to want.
  23. exactly with the pandemic some of us have hosted services to scale for all those working and learning remotely haha.
×
×
  • Create New...