Untitled


SUBMITTED BY: antoineh1

DATE: May 8, 2016, 10:02 p.m.

FORMAT: Text only

SIZE: 24.5 kB

HITS: 3681

  1. ////////////Chrome/Safari -> CSGODOUBLE -> INSPECT -> CONSOLE -> PASTE -> SET VALUES -> ENTER /////////////
  2. //
  3. // The Stat Tracking add-on allows users to see in detail exactly what and how their
  4. // bot is doing, even if they leave the bot by itself. It tracks Net Change in
  5. // balance, current and highest losing streaks, how many and in detail what kind of
  6. // losing streaks the bot encounters. This allows the user to see exactly where their
  7. // bot is losing and can help to find the right settings for them.
  8. //
  9. // If you would like to enable time stamps for your logs, open up the Chrome
  10. // console, and in the upper right, click on the “. . .” and go to settings.
  11. // Scroll down a bit and look for the enable time stamps option.
  12. ////////////CONFIG///////////
  13. // PLEASE NOTE: If both maxBetAmountBeforeReset and failsafeDenominator are set to be a number that isn't 0 the program won't work!
  14. //
  15. // SET THESE VARIABLES!
  16. //
  17. // Set this to your min bet
  18. var initialBetAmount = 10;
  19. ///// SETTING FOR RAINBOW PROTECTION
  20. var anti_rainbow = 1; // Enabled(1) or Disabled(0)
  21. var howm_rainbows = 2; // After how many rainbows bet to one color
  22. var many_rainbows = 2; // How many bets on one color after rainbow
  23. ///// FAIL SAFE
  24. // SIMPLE
  25. // Max Bet Amount Before Reset Mode // This mode allows you to set a max bet amount before the bot resets to min bet
  26. // SET THIS to your maximum bet amount before reset! Set this value to 0 to use fail safe denominator mode
  27. var maxBetAmountBeforeReset = 0;
  28. // ADVANCED
  29. // Fail safe Denominator Mode // This mode uses balance/failsafeDenominator
  30. // set this variable to 0 if you wanna use the other mode!
  31. var failsafeDenominator = 2.1;
  32. // ^^ The max bet is the balance divided by this variable’s number. So at 2, the bot will not make a bet that is more than half your starting balance. At 3 it’s a third, etc. Set it to 1 to let it bet your entire balance. (Note: This does not mean that it will keep you from losing half of your balance exactly, but rather will keep you from placing a bet that is more than half)
  33. // The color the bot chooses as the first bet
  34. var betColor = 'red';
  35. // ONLY TOUCH THESE IS YOU KNOW EXACTLY WHAT THEY ARE
  36. // OTHERWISE IGNORE IT
  37. var scalingBetMode = 0;
  38. var scalingBetPercentDenominator = 1000;
  39. // LOGGING SYSTEM //
  40. /*
  41. debugout.js
  42. by @inorganik
  43. */
  44. // save all the console.logs to a file
  45. function debugout() {
  46. var self = this;
  47. // OPTIONS
  48. self.realTimeLoggingOn = true; // log in real time (forwards to console.log)
  49. self.useTimestamps = false; // insert a timestamp in front of each log
  50. self.useLocalStorage = false; // store the output using window.localStorage() and continuously add to the same log each session
  51. self.recordLogs = true; // set to false after you're done debugging to avoid the log eating up memory
  52. self.autoTrim = true; // to avoid the log eating up potentially endless memory
  53. self.maxLines = 14; // if autoTrim is true, this many most recent lines are saved
  54. self.tailNumLines = 100; // how many lines tail() will retrieve
  55. self.logFilename = 'csgodouble-log.txt'; // filename of log downloaded with downloadLog()
  56. // vars
  57. self.depth = 0;
  58. self.parentSizes = [0];
  59. self.currentResult = '';
  60. self.startTime = new Date();
  61. self.output = '';
  62. this.version = function() { return '0.5.0' }
  63. /*
  64. USER METHODS
  65. */
  66. this.getLog = function() {
  67. var retrievalTime = new Date();
  68. // if recording is off, so dev knows why they don't have any logs
  69. if (!self.recordLogs) {
  70. self.log('[debugout.js] log recording is off.');
  71. }
  72. // if using local storage, get values
  73. if (self.useLocalStorage) {
  74. var saved = window.localStorage.getItem('debugout.js');
  75. if (saved) {
  76. saved = JSON.parse(saved);
  77. self.startTime = new Date(saved.startTime);
  78. self.output = saved.log;
  79. retrievalTime = new Date(saved.lastLog);
  80. }
  81. }
  82. return self.output
  83. + '\n---- Log retrieved: '+retrievalTime+' ----\n'
  84. + self.formatSessionDuration(self.startTime, retrievalTime);
  85. }
  86. // accepts optional number or uses the default for number of lines
  87. this.tail = function(numLines) {
  88. var numLines = numLines || self.tailLines;
  89. return self.trimLog(self.getLog(), numLines);
  90. }
  91. // accepts a string to search for
  92. this.search = function(string) {
  93. var lines = self.output.split('\n');
  94. var rgx = new RegExp(string);
  95. var matched = [];
  96. // can't use a simple Array.prototype.filter() here
  97. // because we need to add the line number
  98. for (var i = 0; i < lines.length; i++) {
  99. var addr = '['+i+'] ';
  100. if (lines[i].match(rgx)) {
  101. matched.push(addr + lines[i]);
  102. }
  103. }
  104. var result = matched.join('\n');
  105. if (result.length == 0) result = 'Nothing found for "'+string+'".';
  106. return result
  107. }
  108. // accepts the starting line and how many lines after the starting line you want
  109. this.getSlice = function(lineNumber, numLines) {
  110. var lines = self.output.split('\n');
  111. var segment = lines.slice(lineNumber, lineNumber + numLines);
  112. return segment.join('\n');
  113. }
  114. // immediately downloads the log - for desktop browser use
  115. this.downloadLog = function() {
  116. var file = "data:text/plain;charset=utf-8,";
  117. var logFile = self.getLog();
  118. var encoded = encodeURIComponent(logFile);
  119. file += encoded;
  120. var a = document.createElement('a');
  121. a.href = file;
  122. a.target = '_blank';
  123. a.download = self.logFilename;
  124. document.body.appendChild(a);
  125. a.click();
  126. a.remove();
  127. }
  128. // records a log
  129. this.log = function(obj) {
  130. // log in real time
  131. if (self.realTimeLoggingOn) console.log(obj);
  132. // record log
  133. var type = self.determineType(obj);
  134. if (type != null && self.recordLogs) {
  135. var addition = self.formatType(type, obj);
  136. // timestamp, formatted for brevity
  137. if (self.useTimestamps) {
  138. var logTime = new Date();
  139. self.output += self.formatTimestamp(logTime);
  140. }
  141. self.output += addition+'\n';
  142. if (self.autoTrim) self.output = self.trimLog(self.output, self.maxLines);
  143. // local storage
  144. if (self.useLocalStorage) {
  145. var last = new Date();
  146. var saveObject = {
  147. startTime: self.startTime,
  148. log: self.output,
  149. lastLog: last
  150. }
  151. saveObject = JSON.stringify(saveObject);
  152. window.localStorage.setItem('debugout.js', saveObject);
  153. }
  154. }
  155. self.depth = 0;
  156. self.parentSizes = [0];
  157. self.currentResult = '';
  158. }
  159. /*
  160. METHODS FOR CONSTRUCTING THE LOG
  161. */
  162. // like typeof but classifies objects of type 'object'
  163. // kept separate from formatType() so you can use at your convenience!
  164. this.determineType = function(object) {
  165. if (object != null) {
  166. var typeResult;
  167. var type = typeof object;
  168. if (type == 'object') {
  169. var len = object.length;
  170. if (len == null) {
  171. if (typeof object.getTime == 'function') {
  172. typeResult = 'Date';
  173. }
  174. else if (typeof object.test == 'function') {
  175. typeResult = 'RegExp';
  176. }
  177. else {
  178. typeResult = 'Object';
  179. }
  180. } else {
  181. typeResult = 'Array';
  182. }
  183. } else {
  184. typeResult = type;
  185. }
  186. return typeResult;
  187. } else {
  188. return null;
  189. }
  190. }
  191. // format type accordingly, recursively if necessary
  192. this.formatType = function(type, obj) {
  193. switch(type) {
  194. case 'Object' :
  195. self.currentResult += '{\n';
  196. self.depth++;
  197. self.parentSizes.push(self.objectSize(obj));
  198. var i = 0;
  199. for (var prop in obj) {
  200. self.currentResult += self.indentsForDepth(self.depth);
  201. self.currentResult += prop + ': ';
  202. var subtype = self.determineType(obj[prop]);
  203. var subresult = self.formatType(subtype, obj[prop]);
  204. if (subresult) {
  205. self.currentResult += subresult;
  206. if (i != self.parentSizes[self.depth]-1) self.currentResult += ',';
  207. self.currentResult += '\n';
  208. } else {
  209. if (i != self.parentSizes[self.depth]-1) self.currentResult += ',';
  210. self.currentResult += '\n';
  211. }
  212. i++;
  213. }
  214. self.depth--;
  215. self.parentSizes.pop();
  216. self.currentResult += self.indentsForDepth(self.depth);
  217. self.currentResult += '}';
  218. if (self.depth == 0) return self.currentResult;
  219. break;
  220. case 'Array' :
  221. self.currentResult += '[';
  222. self.depth++;
  223. self.parentSizes.push(obj.length);
  224. for (var i = 0; i < obj.length; i++) {
  225. var subtype = self.determineType(obj[i]);
  226. if (subtype == 'Object' || subtype == 'Array') self.currentResult += '\n' + self.indentsForDepth(self.depth);
  227. var subresult = self.formatType(subtype, obj[i]);
  228. if (subresult) {
  229. self.currentResult += subresult;
  230. if (i != self.parentSizes[self.depth]-1) self.currentResult += ', ';
  231. if (subtype == 'Array') self.currentResult += '\n';
  232. } else {
  233. if (i != self.parentSizes[self.depth]-1) self.currentResult += ', ';
  234. if (subtype != 'Object') self.currentResult += '\n';
  235. else if (i == self.parentSizes[self.depth]-1) self.currentResult += '\n';
  236. }
  237. }
  238. self.depth--;
  239. self.parentSizes.pop();
  240. self.currentResult += ']';
  241. if (self.depth == 0) return self.currentResult;
  242. break;
  243. case 'function' :
  244. obj += '';
  245. var lines = obj.split('\n');
  246. for (var i = 0; i < lines.length; i++) {
  247. if (lines[i].match(/\}/)) self.depth--;
  248. self.currentResult += self.indentsForDepth(self.depth);
  249. if (lines[i].match(/\{/)) self.depth++;
  250. self.currentResult += lines[i] + '\n';
  251. }
  252. return self.currentResult;
  253. break;
  254. case 'RegExp' :
  255. return '/'+obj.source+'/';
  256. break;
  257. case 'Date' :
  258. case 'string' :
  259. if (self.depth > 0 || obj.length == 0) {
  260. return '"'+obj+'"';
  261. } else {
  262. return obj;
  263. }
  264. case 'boolean' :
  265. if (obj) return 'true';
  266. else return 'false';
  267. case 'number' :
  268. return obj+'';
  269. break;
  270. }
  271. }
  272. this.indentsForDepth = function(depth) {
  273. var str = '';
  274. for (var i = 0; i < depth; i++) {
  275. str += '\t';
  276. }
  277. return str;
  278. }
  279. this.trimLog = function(log, maxLines) {
  280. var lines = log.split('\n');
  281. if (lines.length > maxLines) {
  282. lines = lines.slice(lines.length - maxLines);
  283. }
  284. return lines.join('\n');
  285. }
  286. this.lines = function() {
  287. return self.output.split('\n').length;
  288. }
  289. // calculate testing time
  290. this.formatSessionDuration = function(startTime, endTime) {
  291. var msec = endTime - startTime;
  292. var hh = Math.floor(msec / 1000 / 60 / 60);
  293. var hrs = ('0' + hh).slice(-2);
  294. msec -= hh * 1000 * 60 * 60;
  295. var mm = Math.floor(msec / 1000 / 60);
  296. var mins = ('0' + mm).slice(-2);
  297. msec -= mm * 1000 * 60;
  298. var ss = Math.floor(msec / 1000);
  299. var secs = ('0' + ss).slice(-2);
  300. msec -= ss * 1000;
  301. return '---- Session duration: '+hrs+':'+mins+':'+secs+' ----'
  302. }
  303. this.formatTimestamp = function(timestamp) {
  304. var year = timestamp.getFullYear();
  305. var date = timestamp.getDate();
  306. var month = ('0' + (timestamp.getMonth() +1)).slice(-2);
  307. var hrs = Number(timestamp.getHours());
  308. var mins = ('0' + timestamp.getMinutes()).slice(-2);
  309. var secs = ('0' + timestamp.getSeconds()).slice(-2);
  310. return '['+ year + '-' + month + '-' + date + ' ' + hrs + ':' + mins + ':'+secs + ']: ';
  311. }
  312. this.objectSize = function(obj) {
  313. var size = 0, key;
  314. for (key in obj) {
  315. if (obj.hasOwnProperty(key)) size++;
  316. }
  317. return size;
  318. }
  319. /*
  320. START/RESUME LOG
  321. */
  322. if (self.useLocalStorage) {
  323. var saved = window.localStorage.getItem('debugout.js');
  324. if (saved) {
  325. saved = JSON.parse(saved);
  326. self.output = saved.log;
  327. var start = new Date(saved.startTime);
  328. var end = new Date(saved.lastLog);
  329. self.output += '\n---- Session end: '+saved.lastLog+' ----\n';
  330. self.output += self.formatSessionDuration(start, end);
  331. self.output += '\n\n';
  332. }
  333. }
  334. self.output += '---- Session started: '+self.startTime+' ----\n\n';
  335. }
  336. var bugout = new debugout();
  337. // jQUERY BUTTON //
  338. var navbar = $('.navbar-header');
  339. var navbarHtml = navbar.html();
  340. navbar.html('<button style="margin-top: 15px" onClick="bugout.downloadLog();">Download Log</button>'+navbarHtml);
  341. //////////////////////////////
  342. //DON'T TOUCH NOTHING BELOW THIS LINE
  343. var rainbow_bet = 0;
  344. var bets_rainbow = 0;
  345. var num_rainbow = 0;
  346. var bets_won = 0;
  347. var bets_lost = 0;
  348. var bets_all = 0;
  349. var highestLossStreak = 0;
  350. var currentLossStreak = 0;
  351. var startingBalance = 0;
  352. var initialBalance = 0;
  353. var mode = '1'; // Don't touch
  354. var currentBetAmount = 0
  355. var startvar = 0;
  356. //LOSS-STREAK COUNTERS
  357. var lossStreak1 = 0;
  358. var lossStreak2 = 0;
  359. var lossStreak3 = 0;
  360. var lossStreak4 = 0;
  361. var lossStreak5 = 0;
  362. var lossStreak6 = 0;
  363. var lossStreak7 = 0;
  364. var lossStreak8 = 0;
  365. var lossStreak9 = 0;
  366. var lossStreak10 = 0;
  367. var lossStreak11 = 0;
  368. var lossStreak12 = 0;
  369. function lossStreakCounter() {
  370. if (currentLossStreak == 1) {
  371. lossStreak1++
  372. }
  373. if (currentLossStreak == 2) {
  374. lossStreak2++
  375. }
  376. if (currentLossStreak == 3) {
  377. lossStreak3++
  378. }
  379. if (currentLossStreak == 4) {
  380. lossStreak4++
  381. }
  382. if (currentLossStreak == 5) {
  383. lossStreak5++
  384. }
  385. if (currentLossStreak == 6) {
  386. lossStreak6++
  387. }
  388. if (currentLossStreak == 7) {
  389. lossStreak7++
  390. }
  391. if (currentLossStreak == 8) {
  392. lossStreak8++
  393. }
  394. if (currentLossStreak == 9) {
  395. lossStreak9++
  396. }
  397. if (currentLossStreak == 10) {
  398. lossStreak10++
  399. }
  400. if (currentLossStreak == 11) {
  401. lossStreak11++
  402. }
  403. if (currentLossStreak == 12) {
  404. lossStreak12++
  405. }
  406. }
  407. function tick()
  408. {
  409. var a=getStatus();if(a!==lastStatus&&"unknown"!==a){switch(a){case"waiting":bet();break;case"rolled":rolled()}lastStatus=a,printInfo()
  410. }
  411. }function checkBalance()
  412. {
  413. return getBalance()<currentBetAmount?(console.warn("BANKRUPT! Not enough balance for next bet, aborting."),clearInterval(refreshIntervalId),!1):!0
  414. }
  415. function printBet()
  416. {
  417. var b="Placed "+currentBetAmount+" on "+betColor;bugout.log(b)
  418. }
  419. function printInfo()
  420. {
  421. var a="Last roll result: "+(null===wonLastRoll()?"-":wonLastRoll()?"won":"lost")+"\nCurrent Loss Streak: "+currentLossStreak+"\nHighest Loss Streak: "+highestLossStreak+"\nCurrent bet amount: "+currentBetAmount+"\nInitial bet amount: "+(initialBetAmount)+"\nStarting Balance: "+startingBalance+"\nNet Change: "+(getBalance()-startingBalance)+"\nRainbows: "+num_rainbow+"\nTotal Rainbow Bets: "+rainbow_bet+"\nBets Won: "+bets_won+"\nBets Loss: "+bets_lost+"\nTotal Bets: "+bets_all+"\nStreaks: |1:"+lossStreak1+"|2:"+lossStreak2+"|3:"+lossStreak3+"|4:"+lossStreak4+"|5:"+lossStreak5+"|6:"+lossStreak6+"|7:"+lossStreak7+"|8:"+lossStreak8+"|9:"+lossStreak9+"|10:"+lossStreak10+"|11:"+lossStreak11+"|12:"+lossStreak12+"|";bugout.log(a)
  422. }
  423. function rolled()
  424. {
  425. return"1"===mode?void one():(one(),void currentRollNumber++)
  426. }
  427. function one()
  428. {
  429. bets_all = bets_all+1
  430. if(num_rainbow>=howm_rainbows && anti_rainbow==1)
  431. {
  432. bets_rainbow=bets_rainbow+1
  433. bet_rainbow()
  434. }
  435. else
  436. {
  437. bets_rainbow=0
  438. wonLastRoll()?bet_won():bet_lost()
  439. }
  440. }
  441. function bet_rainbow()
  442. {
  443. if(bets_rainbow==many_rainbows)
  444. {
  445. num_rainbow=0
  446. }
  447. rainbow_bet=rainbow_bet+1
  448. wonLastRoll()?rainbow_won():rainbow_lost()
  449. }
  450. function rainbow_won()
  451. {
  452. bets_won=bets_won+1
  453. if(lastBetColor=="red")
  454. {
  455. betColor='black'
  456. }
  457. else
  458. {
  459. betColor='red'
  460. }
  461. currentLossStreak = 0;
  462. }
  463. function rainbow_lost()
  464. {
  465. bets_lost=bets_lost+1
  466. if(lastBetColor=="red")
  467. {
  468. betColor='red'
  469. }
  470. else(lastBetColor=="black")
  471. {
  472. BetColor="black"
  473. }
  474. currentLossStreak += 1;
  475. if (currentLossStreak > highestLossStreak) {
  476. highestLossStreak = currentLossStreak;
  477. }
  478. lossStreakCounter();
  479. }
  480. function bet_won()
  481. {
  482. bets_won=bets_won+1
  483. num_rainbow=0
  484. if(lastBetColor=="red")
  485. {
  486. betColor='red'
  487. }
  488. else(lastBetColor=="black")
  489. {
  490. BetColor="black"
  491. }
  492. currentLossStreak = 0;
  493. }
  494. function bet_lost()
  495. {
  496. bets_lost=bets_lost+1
  497. num_rainbow=num_rainbow+1
  498. if(lastBetColor=="red")
  499. {
  500. betColor='black'
  501. }
  502. else
  503. {
  504. betColor='red'
  505. }
  506. currentLossStreak += 1;
  507. if (currentLossStreak > highestLossStreak) {
  508. highestLossStreak = currentLossStreak;
  509. }
  510. lossStreakCounter();
  511. }
  512. function bet()
  513. {
  514. if(startingBalance == 0) { startingBalance = getBalance() }
  515. if (getBalance() < initialBetAmount) { console.warn("You don't have enough credits to bet that amount!") }
  516. if (getBalance() == 0) { console.warn("You have 0 credits! Deposit credits to use the bot.") }
  517. if (failsafeDenominator != 0 && maxBetAmountBeforeReset != 0) {
  518. console.warn("You have both options set! Please set either failsafeDenominator or maxBetAmountBeforeReset to 0.")
  519. } else {
  520. if(scalingBetMode == 1 && startvar == 1) {
  521. initialBetAmount = Math.floor(getBalance()/scalingBetPercentDenominator)
  522. currentBetAmount=wonLastRoll()?(Math.floor(getBalance()/scalingBetPercentDenominator)):2*currentBetAmount
  523. if (currentBetAmount >= (initialBalance/failsafeDenominator) && failsafeDenominator != 0) {
  524. currentBetAmount = Math.floor(getBalance()/scalingBetPercentDenominator)
  525. initialBalance = getBalance()
  526. console.warn("Maximum bet limit reached! New initial balance set to ", initialBalance)
  527. }
  528. if (currentBetAmount >= maxBetAmountBeforeReset && maxBetAmountBeforeReset != 0) {
  529. currentBetAmount = Math.floor(getBalance()/scalingBetPercentDenominator)
  530. initialBalance = getBalance()
  531. console.warn("Maximum bet limit reached! New initial balance set to ", initialBalance)
  532. }
  533. }
  534. if(scalingBetMode == 0 && startvar == 1) {
  535. currentBetAmount=wonLastRoll()?(initialBetAmount):2*currentBetAmount
  536. if (currentBetAmount >= (initialBalance/failsafeDenominator) && failsafeDenominator != 0) {
  537. currentBetAmount = Math.floor(initialBetAmount)
  538. initialBalance = getBalance()
  539. console.warn("Maximum bet limit reached! New initial balance set to ", initialBalance)
  540. }
  541. if (currentBetAmount >= maxBetAmountBeforeReset && maxBetAmountBeforeReset != 0) {
  542. currentBetAmount = Math.floor(initialBetAmount)
  543. initialBalance = getBalance()
  544. console.warn("Maximum bet limit reached! New initial balance set to ", initialBalance)
  545. }
  546. }
  547. }
  548. if (scalingBetMode == 0 && startvar == 0) {
  549. currentBetAmount = initialBetAmount
  550. startvar = 1
  551. }
  552. checkBalance()&&(setBetAmount(currentBetAmount),setTimeout(placeBet,50))
  553. }
  554. function setBetAmount(a)
  555. {
  556. $betAmountInput.val(a)
  557. }
  558. function placeBet()
  559. {
  560. return"red"===betColor?($redButton.click(),void(lastBetColor="red")):($blackButton.click(),void(lastBetColor="black"))
  561. }
  562. function getStatus()
  563. {
  564. var a=$statusBar.text();if(hasSubString(a,"Rolling in"))return"waiting";if(hasSubString(a,"***ROLLING***"))return"rolling";if(hasSubString(a,"rolled")){var b=parseInt(a.split("rolled")[1]);return lastRollColor=getColor(b),"rolled"}return"unknown"
  565. }
  566. function getBalance()
  567. {
  568. return parseInt($balance.text())
  569. }
  570. function hasSubString(a,b)
  571. {
  572. return a.indexOf(b)>-1
  573. }
  574. function getColor(a)
  575. {
  576. return 0==a?"green":a>=1&&7>=a?"red":"black"
  577. }
  578. function lossStreakCounter() {
  579. if (currentLossStreak == 1) {
  580. lossStreak1++
  581. }
  582. if (currentLossStreak == 2) {
  583. lossStreak2++
  584. }
  585. if (currentLossStreak == 3) {
  586. lossStreak3++
  587. }
  588. if (currentLossStreak == 4) {
  589. lossStreak4++
  590. }
  591. if (currentLossStreak == 5) {
  592. lossStreak5++
  593. }
  594. if (currentLossStreak == 6) {
  595. lossStreak6++
  596. }
  597. if (currentLossStreak == 7) {
  598. lossStreak7++
  599. }
  600. if (currentLossStreak == 8) {
  601. lossStreak8++
  602. }
  603. if (currentLossStreak == 9) {
  604. lossStreak9++
  605. }
  606. if (currentLossStreak == 10) {
  607. lossStreak10++
  608. }
  609. if (currentLossStreak == 11) {
  610. lossStreak11++
  611. }
  612. if (currentLossStreak == 12) {
  613. lossStreak12++
  614. }
  615. }
  616. function wonLastRoll()
  617. {
  618. return lastBetColor?lastRollColor===lastBetColor:null
  619. }
  620. var currentBetAmount=initialBetAmount,currentRollNumber=1,lastStatus,lastBetColor,lastRollColor,$balance=$("#balance"),$betAmountInput=$("#betAmount"),$statusBar=$(".progress #banner"),$redButton=$("#panel1-7 .betButton"),$blackButton=$("#panel8-14 .betButton"),refreshIntervalId=setInterval(tick,500);
  621. setInterval(function() { if (!WS) { chat('alert', 'Reconnecting...'); connect(); } }, 10000);

comments powered by Disqus