Advertisement
madcatzano

Untitled

Apr 16th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 54.26 KB | None | 0 0
  1. /*
  2. * MadCatz (CSGODOUBLE.COM BOT)
  3. * Creation Date: 14.01.2016
  4. */
  5.  
  6.  
  7. WS.onclose = function(event){
  8. WS = null;
  9. chat("italic","Connection lost...");
  10. chat("error", "But not today!");
  11. connect();
  12. };
  13.  
  14. function onMessage(msg){
  15. try{
  16. var m = JSON.parse(msg.data);
  17. if (typeof m.roll != 'undefined') {
  18. console.log(new Array(24 + 1).join('\n'));
  19. if(m.roll==0) {
  20. document.getElementById("getbal").innerHTML = " [Rolling a "+m.roll+"(green)...]";
  21. $(".rollCounter").append("<p style='color:#449d44'> "+m.roll+" Green</p>");
  22. console.log('%c '+m.roll+' (Green) ', 'background: green; color: white');
  23. } else if(m.roll>=1 && m.roll <= 7)
  24. {
  25. document.getElementById("getbal").innerHTML = " [Rolling a "+m.roll+"(red)...]";
  26. $(".rollCounter").append("<p style='color:#c9302c'> "+m.roll+" Red</p>");
  27. console.log('%c '+m.roll+' (Red) ', 'background: #FF0000; color: white');
  28. } else {
  29. document.getElementById("getbal").innerHTML = " [Rolling a "+m.roll+"(black)...]";
  30. console.log('%c '+m.roll+' (Black) ', 'background: #000000; color: #bada55');
  31. $(".rollCounter").append("<p style='color:#FFFFFF;'> "+m.roll+" Black</p>");
  32. }
  33. var rC = $(".rollCounter");
  34. rC.scrollTop = rC.scrollHeight;
  35. } else {
  36. document.getElementById("getbal").innerHTML = " [Waiting...]";
  37. }
  38.  
  39.  
  40. if(m.type=="preroll"){
  41. $("#counter").finish();
  42. $("#banner").html("Confirming "+m.totalbets+"/"+(m.totalbets+m.inprog)+" total bets...");
  43. $("#panel0-0 .total").countTo(m.sums[0]);
  44. $("#panel1-7 .total").countTo(m.sums[1]);
  45. $("#panel8-14 .total").countTo(m.sums[2]);
  46. try{
  47. tinysort("#panel1-7 .betlist>li",{data:"amount",order:"desc"});
  48. }catch(e){}
  49. try{
  50. tinysort("#panel8-14 .betlist>li",{data:"amount",order:"desc"});
  51. }catch(e){}
  52. try{
  53. tinysort("#panel0-0 .betlist>li",{data:"amount",order:"desc"});
  54. }catch(e){}
  55. }else if(m.type=="roll"){
  56. $(".betButton").prop("disabled",true);
  57. $("#counter").finish();
  58. $("#banner").html("***ROLLING***");
  59. ROUND = m.rollid;
  60. showbets = false;
  61. spin(m);
  62. }else if(m.type=="chat"){
  63. chat("player",m.msg,m.name,m.icon,m.user,m.rank,m.lang,m.hide);
  64. }else if(m.type=="hello"){
  65. cd(m.count);
  66. USER = m.user;
  67. RANK = m.rank;
  68. $("#balance").countTo(m.balance);
  69. var last = 0;
  70. for(var i=0;i<m.rolls.length;i++){
  71. addHist(m.rolls[i].roll,m.rolls[i].rollid);
  72. last = m.rolls[i].roll;
  73. ROUND = m.rolls[i].rollid;
  74. }
  75. snapRender(last,m.last_wobble);
  76. MAX_BET = m.maxbet;
  77. chat("alert","## Min bet: "+m.minbet+" coin/s");
  78. chat("alert","## Max bet: "+formatNum(MAX_BET)+" coins");
  79. chat("alert","## Max bets per roll: "+m.br);
  80. chat("alert","## Roll countdown: "+m.accept+" sec");
  81. chat("alert","## Chat: "+m.chat+" sec cooldown ("+m.chatb+"+ total bet)");
  82. }else if(m.type=="bet"){
  83. if(showbets){
  84. addBet(m.bet);
  85. $("#panel0-0 .total").countTo(m.sums[0]);
  86. $("#panel1-7 .total").countTo(m.sums[1]);
  87. $("#panel8-14 .total").countTo(m.sums[2]);
  88. }
  89. }else if(m.type=="betconfirm"){
  90. $("#panel"+m.bet.lower+"-"+m.bet.upper+" .mytotal").countTo(m.bet.amount);
  91. $("#balance").countTo(m.balance,{"color":true});
  92. $(".betButton").prop("disabled",false);
  93. chat("alert","Bet #"+m.bet.betid+" confirmed "+m.mybr+"/"+m.br+" ("+(m.exec/1000)+" sec) ");
  94. }else if(m.type=="error"){
  95. chat("error",m.error);
  96. if(m.enable){
  97. $(".betButton").prop("disabled", false);
  98. }
  99. }else if(m.type=="alert"){
  100. chat("alert",m.alert);
  101. if(m.maxbet){
  102. MAX_BET = m.maxbet;
  103. }
  104. if(!isNaN(m.balance)){
  105. console.log("setting balance = %s",m.balance);
  106. $("#balance").countTo(m.balance,{"color":true});
  107. }
  108. }else if(m.type=="logins"){
  109. $("#isonline").html(m.count);
  110. }else if(m.type=="balance"){
  111. $("#balance").fadeOut(100).html(todongersb(m.balance)).fadeIn(100);
  112. }
  113. }catch(e){
  114. console.log("Error: "+msg.data+" "+e);
  115. }
  116. }
  117. WS.onmessage = onMessage;
  118.  
  119.  
  120. //http://www.danstools.com/javascript-obfuscate/index.php
  121. //http://www.textfixer.com/html/compress-html-compression.php
  122. //1 round = 50 seconds
  123. //rounds per day = 1728
  124. //expected wins per day = 806
  125.  
  126. //START [Inserting UI]
  127. $("#mainpage").prepend('<style scoped> @import url(https://fonts.googleapis.com/css?family=Ubuntu:300); table { font-family: "Ubuntu", sans-serif; background-color: #404040; color: #0d0d0d; } #header { background-color: #262626; color: #ff0066; } label { font-weight: normal; } .odds { font-weight: normal; color: #00ffcc; } input[type=text] { border-radius: 5px; border: 1px solid rgba(0, 0, 0, .25); color: #808080; background-color: #262626; } input[type=text]:focus { background-color: #1a1a1a; color: #ffcc00; } #footer { color: #b3b3b3; } #one { color: #e74c3c; } #two { color: #e67e22; } #three { color: #f1c40f; } #four { color: #1abc9c; } #five { color: #2ecc71; } #six { color: #3498db; } #seven { color: #9b59b6; } #eight { color: #e74c3c; } #nine { color: #e67e22; } #ten { color: #f1c40f; } #eleven { color: #1abc9c; } input[type=button] { background-color: #262626; border-color: #1a1a1a; } #startButton { color: #2ecc71; } #stopButton { color: #e74c3c; } #red { width: 33.33%; color: #c12e2a; } #green { width: 33.33%; color: #419641; } #black { width: 33.33%; color: #666; }</style><hr><table border="1" style="width: 100%;"> <tr id="header"> <td> <input type="radio" name="system" value="nightengale" id="nightengaleRadioBtn" checked="checked"> <label for="nightengaleRadioBtn">Nightengale</label> </td> <td> <input type="radio" name="system" value="laboucher" id="labouchereRadioBtn"> <label for="labouchereRadioBtn">Labouchère</label> </td> <td class="rollCounterTop"><p>Last rolls</p></td></tr> <tr> <td> <table> <tr> <td> <label for="nightengaleDefaultBetInput">Default Bet: </label> <input type="text" id="nightengaleDefaultBetInput"> </td> </tr> <tr> <td> <label for="nightengaleProfitOver24HoursInput">Profit over 24 hours: </label> <input type="text" id="nightengaleProfitOver24HoursInput"> </td> </tr> <tr> <td>Odds of losing <span id="nightengaleOddsOfLosingXTimesInARowX" class="odds">X</span> Times in a row: <span id="nightengaleOddsOfLosingXTimesInARow" class="odds">YY%</span></td> </tr> <tr> <td>Odds of losing in 1 day: <span id="nightengaleOddsOfLosingIn1Day" class="odds">XX%</span></td> </tr> <tr> <td>Percentage of money as default bet: <span id="nightengalePercentageOfMoneyAsDefaultBet" class="odds">XX%</span></td> </tr> <tr> <td> <input type="checkbox" id="nightengaleAntiBankruptcyCheckbox"> <label type="text" for="nightengaleAntiBankruptcyCheckbox">Anti-Bankruptcy</label> </td> </tr> <tr> <td> <input type="checkbox" id="nightengaleAntiDoubleGreenCheckbox"> <label type="text" for="nightengaleAntiDoubleGreenCheckbox">Anti-Double Green</label> skip <input type="text" id="nightengaleAntiDoubleGreenInput"> rolls </td> </tr> <tr> <td> <input type="checkbox" id="nightengaleAntiLoseallCheckbox"> <label type="text" for="nightengaleAntiLoseallCheckbox">Anti-Loseall after</label> <input type="text" id="nightengaleAntiLoseallInput"> losses </td> </tr> <tr> <td> <input type="checkbox" id="nightengaleStopAfterXGamesCheckbox"> <label for="nightengaleStopAfterXGamesCheckbox">Stop after <input type="text" id="nightengaleStopAfterXGamesInput"> games</label> </td> </tr> <tr> <td> <input type="checkbox" id="nightengaleStopAfterReachingXCheckbox"> <label for="nightengaleStopAfterReachingXCheckbox">Stop after reaching <input type="text" id="nightengaleStopAfterReachingXInput"> </label> </td> </tr> <tr> <td> <input type="checkbox" id="nightengaleBetOnGreenCheckbox"> <label for="nightengaleBetOnGreenCheckbox">Side bet on green. Bet = <input type="text" id="nightengaleBetOnGreenInput"> </label> </td> </tr> </table> </td> <td> <table> <tr> <td> <label for="labouchereGoalInput">Goal:</label> <input type="text" id="labouchereGoalInput" disabled> </td> </tr> <tr> <td> <label for="labouchereLines">Lines:</label> <input type="text" id="labouchereLines" disabled> </td> </tr> <tr> <td> Predicted Bets required: <span id="laboucherePredictedBets" class="odds">XX</span> </tr> </table> </td> <td rowspan="6" style="vertical-align:top;"><div style="position: relative; height: auto;"> <div class="rollCounter" style="width:100%; max-height: 414px; overflow-y: auto;"> </div></div></td> </tr> <tr> <td> <input type="checkbox" id="trainProtectionCheckbox" checked="checked"> <label for="trainProtectionCheckbox">Train Protection</label> <input type="checkbox" id="rainbowProtectionCheckbox"> <label for="rainbowProtectionCheckbox">Rainbow Protection</label> <br> <input type="checkbox" id="rrbbProtectionCheckbox"> <label for="rrbbProtectionCheckbox">RRBBRR Protection</label> <input type="checkbox" id="rrbProtectionCheckbox"> <label for="rrbProtectionCheckbox">RRBRR Protection</label> </td> <td> <input style="width:50%;" type="button" value="Start" id="startButton"><input style="width:50%;" type="button" value="Stop" id="stopButton"> </td> </tr> <tr> <td> <input type="checkbox" id="simulationModeCheckbox"> <label for="simulationModeCheckbox">Simulation Mode</label> <input type="checkbox" id="manualModeCheckbox"> <label for="manualModeCheckbox">Manual (Sim) Mode</label> </td> <td> <label for="simulationMoneyInput">Simulation Money:</label> <input type="text" id="simulationMoneyInput"> </td> </tr> <tr> <td> <label for="simulateBetAmt">Simulate Bet:</label> <input type="text" id="simulateBetAmt"> </td> <td> <input type="button" id="red" value="Red"><input type="button" id="green" value="Green"><input type="button" id="black" value="Black"> </td> </tr> <tr id="footer"> <td id="logo"> </td> <td style="text-align:center;">Run Time: <b><span id="runtime"></span></b></td> </tr> </table><hr>');
  128. //var UI = document.createElement('div');
  129. //UI.innerHTML = UI_html;
  130.  
  131. //var insertBefore = document.getElementsByClassName("progress")[0];
  132. //insertBefore.parentNode.insertBefore(UI, insertBefore);
  133. //END [Inserting UI]
  134.  
  135. //START [DEFINING VARIABLES]
  136. var statusBanner = document.getElementById("banner");
  137. //var thirdLastRoll = document.getElementById("past").childNodes[7];
  138. //var secondLastRoll = document.getElementById("past").childNodes[8];
  139. //var lastRoll = document.getElementById("past").childNodes[9];
  140. var redBetButton = document.getElementsByClassName("betButton")[0];
  141. var greenBetButton = document.getElementsByClassName("betButton")[1];
  142. var blackBetButton = document.getElementsByClassName("betButton")[2];
  143. var betAmountInput = document.getElementById("betAmount");
  144. var balanceSpan = document.getElementById("balance");
  145.  
  146. var simulationModeCheckbox = document.getElementById("simulationModeCheckbox");
  147. var simulationMoneyInput = document.getElementById("simulationMoneyInput");
  148. var startButton = document.getElementById("startButton");
  149. var stopButton = document.getElementById("stopButton");
  150. var trainProtectionCheckbox = document.getElementById("trainProtectionCheckbox");
  151. var rainbowProtectionCheckbox = document.getElementById("rainbowProtectionCheckbox");
  152. var runtimeSpan = document.getElementById("runtime");
  153. var nightengaleRadioBtn = document.getElementById("nightengaleRadioBtn");
  154. var labouchereRadioBtn = document.getElementById("labouchereRadioBtn");
  155. var nightengaleDefaultBetInput = document.getElementById("nightengaleDefaultBetInput");
  156. var nightengaleProfitOver24HoursInput = document.getElementById("nightengaleProfitOver24HoursInput");
  157. var nightengaleAntiBankruptcyCheckbox = document.getElementById("nightengaleAntiBankruptcyCheckbox");
  158. var nightengaleStopAfterXGamesCheckbox = document.getElementById("nightengaleStopAfterXGamesCheckbox");
  159. var nightengaleStopAfterXGamesInput = document.getElementById("nightengaleStopAfterXGamesInput");
  160. var nightengaleStopAfterReachingXCheckbox = document.getElementById("nightengaleStopAfterReachingXCheckbox");
  161. var nightengaleStopAfterReachingXInput = document.getElementById("nightengaleStopAfterReachingXInput");
  162. var nightengaleOddsOfLosingXTimesInARow = document.getElementById("nightengaleOddsOfLosingXTimesInARow");
  163. var nightengaleOddsOfLosingIn1Day = document.getElementById("nightengaleOddsOfLosingIn1Day");
  164. var nightengaleOddsOfLosingXTimesInARowX = document.getElementById("nightengaleOddsOfLosingXTimesInARowX");
  165. var nightengalePercentageOfMoneyAsDefaultBet = document.getElementById("nightengalePercentageOfMoneyAsDefaultBet");
  166. var labouchereGoalInput = document.getElementById("labouchereGoalInput");
  167. var labouchereLines = document.getElementById("labouchereLines");
  168. var laboucherePredictedBets = document.getElementById("laboucherePredictedBets");
  169. var nightengaleAntiLoseallCheckbox = document.getElementById("nightengaleAntiLoseallCheckbox");
  170. var nightengaleAntiLoseallInput = document.getElementById("nightengaleAntiLoseallInput");
  171. var nightengaleAntiDoubleGreenCheckbox = document.getElementById("nightengaleAntiDoubleGreenCheckbox");
  172. var nightengaleAntiDoubleGreenInput = document.getElementById("nightengaleAntiDoubleGreenInput");
  173. var nightengaleBetOnGreenCheckbox = document.getElementById("nightengaleBetOnGreenCheckbox");
  174. var nightengaleBetOnGreenInput = document.getElementById("nightengaleBetOnGreenInput");
  175. var rrbbProtectionCheckbox = document.getElementById("rrbbProtectionCheckbox");
  176. var rrbProtectionCheckbox = document.getElementById("rrbProtectionCheckbox");
  177.  
  178. var manualModeCheckbox = document.getElementById("manualModeCheckbox");
  179. var simulateBetAmt = document.getElementById("simulateBetAmt");
  180. var red = document.getElementById("red");
  181. var green = document.getElementById("green");
  182. var black = document.getElementById("black");
  183.  
  184. var running = false;
  185. var simulationMode = false;
  186. var simulationMoney = 0;
  187. var simulationMoneyStart = 0;
  188. var status = 0;
  189. var fullStatus = '';
  190. var runtime = 0;
  191. var mode = 0; //0=martingale,1=reverseLabouchere
  192. var betOnThisRound = false;
  193. var checkedIfWon = false;
  194. var rolled = false;
  195. var startBalance = 0;
  196. var betsWon = 0;
  197. var betsLost = 0;
  198. var manualMode = false;
  199.  
  200. var currBetAmount = 0;
  201. var currBetColor = ' ';
  202.  
  203. ///////////////////////////
  204. var lstreak = 0;
  205. var wstreak = 0;
  206. var currstreak = 0;
  207. var maxlose = 0;
  208. var maxlosestreak = 0;
  209. var maxwin = 0;
  210. var maxwinstreak = 0;
  211. var winorlosestreak = "no bet yet";
  212. var resultcolor = "n/a";
  213. ///////////////////////////
  214.  
  215. var currBetGreenAmount = 0;
  216. var lastBetGreenAmount = 0;
  217. var betOnGreenEnabled = false;
  218.  
  219. var lastBetAmount = 0;
  220. var wonLastBet = false;
  221. var antiLoseAllCounter = 0;
  222. var antiLoseAllEnabled = false;
  223. var antiDoubleGreenEnabled = false;
  224. var antiDoubleGreenCounter = -1;
  225. var skipBet = false;
  226.  
  227. //martingale system variables
  228. var antiBankruptcy = false;
  229.  
  230. //reverse labouchere system variables
  231. var goal = 0;
  232. var numLines = 0;
  233. var lines = [];
  234.  
  235. //END [DEFINING VARIABLES]
  236.  
  237. //AUTO RECONNECT
  238. console.log('%c[MadCatz] Auto-Reconnect Initialized!', 'color:green');
  239. setInterval(function() {
  240. if (!WS) {
  241. console.log('Reconnecting...');
  242. connect();
  243. }
  244. }, 5000);
  245. //END
  246.  
  247. //START [DEFINE LISTENERS]
  248. nightengaleAntiDoubleGreenCheckbox.onclick = function() {
  249. if (!antiDoubleGreenEnabled) {
  250. antiDoubleGreenEnabled = true;
  251. console.log("%c[MadCatz] Anti-Double Green enabled!", "color:green");
  252. } else {
  253. betOnGreenEnabled = false;
  254. console.log("%c[MadCatz] Anti-Double Green disabled!", "color:red");
  255. }
  256. };
  257.  
  258. nightengaleBetOnGreenCheckbox.onclick = function() {
  259. if (!betOnGreenEnabled) {
  260. betOnGreenEnabled = true;
  261. console.log("%c[MadCatz] Bet on Green enabled!", "color:green");
  262. } else {
  263. betOnGreenEnabled = false;
  264. console.log("%c[MadCatz] Bet on Green disabled!", "color:red");
  265. }
  266. };
  267.  
  268. nightengaleAntiLoseallCheckbox.onclick = function() {
  269. if (!antiLoseAllEnabled) {
  270. antiLoseAllEnabled = true;
  271. console.log("%c[MadCatz] Anti-Lose all enabled!", "color:green");
  272. } else {
  273. antiLoseAllEnabled = false;
  274. console.log("%c[MadCatz] Anti-Lose all disabled!", "color:red");
  275. }
  276. };
  277.  
  278. startButton.onclick = function() {
  279. //check if all needed fields are filled in
  280. var passedTest = true;
  281. if (mode == 0 && !manualMode) { //nightengale mode specific tests
  282. if (nightengaleDefaultBetInput.value == '' || nightengaleDefaultBetInput.value <= 0)
  283. passedTest = false;
  284.  
  285. if (nightengaleProfitOver24HoursInput.value == '' || nightengaleProfitOver24HoursInput.value <= 0)
  286. passedTest = false;
  287.  
  288. if (nightengaleStopAfterXGamesCheckbox.checked && (nightengaleStopAfterXGamesInput.value == '' || nightengaleStopAfterXGamesInput.value <= 0))
  289. passedTest = false;
  290.  
  291. if (nightengaleStopAfterReachingXCheckbox.checked && (nightengaleStopAfterReachingXInput.value == '' || nightengaleStopAfterReachingXInput.value <= 0))
  292. passedTest = false;
  293. }
  294.  
  295. if (mode == 1 && !manualMode) { //labouchere mode specific tests
  296. if (labouchereGoalInput.value == '' || labouchereGoalInput.value <= 0)
  297. passedTest = false;
  298. if (labouchereLines.value == '' || labouchereLines.value <= 0)
  299. passedTest = false;
  300. }
  301.  
  302. //standard tests
  303. if (simulationModeCheckbox.checked && (simulationMoneyInput.value == '' || simulationMoneyInput.value <= 0))
  304. passedTest = false;
  305.  
  306. if (!running && passedTest) {
  307. simulationModeCheckbox.disabled = true;
  308. manualModeCheckbox.disabled = true;
  309. simulationMoneyInput.disabled = true;
  310. console.log("%c[MadCatz] STARTED", "color:green");
  311. running = true;
  312.  
  313. labouchereRadioBtn.disabled = true;
  314. labouchereLines.disabled = true;
  315. labouchereGoalInput.disabled = true;
  316.  
  317. nightengaleRadioBtn.disabled = true;
  318. nightengaleDefaultBetInput.disabled = true;
  319. nightengaleProfitOver24HoursInput.disabled = true;
  320. nightengaleAntiBankruptcyCheckbox.disabled = true;
  321. nightengaleStopAfterXGamesCheckbox.disabled = true;
  322. nightengaleStopAfterXGamesInput.disabled = true;
  323. nightengaleStopAfterReachingXCheckbox.disabled = true;
  324. nightengaleStopAfterReachingXInput.disabled = true;
  325. nightengaleAntiLoseallCheckbox.disabled = true;
  326. nightengaleAntiLoseallInput.disabled = true;
  327. nightengaleAntiDoubleGreenInput.disabled = true;
  328. nightengaleAntiDoubleGreenCheckbox.disabled = true;
  329. nightengaleBetOnGreenCheckbox.disabled = true;
  330. nightengaleBetOnGreenInput.disabled = true;
  331.  
  332. trainProtectionCheckbox.disabled = true;
  333. rainbowProtectionCheckbox.disabled = true;
  334. rrbbProtectionCheckbox.disabled = true;
  335. rrbProtectionCheckbox.disabled = true;
  336.  
  337. if (mode == 1) { //set up lines array
  338. goal = parseInt(labouchereGoalInput.value);
  339. numLines = parseInt(labouchereLines.value);
  340.  
  341. for (i = 0; i < numLines; i++)
  342. lines[i] = goal / numLines;
  343. }
  344.  
  345. if (simulationMode) {
  346. simulationMoney = parseInt(simulationMoneyInput.value);
  347. simulationMoneyStart = simulationMoney;
  348. } else {
  349. startBalance = getBalance();
  350. }
  351. } else if (!passedTest) {
  352. alert("Please fill in all required fields for the settings you have chosen");
  353. } else
  354. console.log("%c[MadCatz] I'm already running you tart", "color:green");
  355. };
  356.  
  357. stopButton.onclick = function() {
  358. if (running) {
  359. simulationModeCheckbox.disabled = false;
  360. simulationMoneyInput.disabled = false;
  361. manualModeCheckbox.disabled = false;
  362. console.log("%c[MadCatz] STOPPED", "color:red");
  363. running = false;
  364.  
  365. nightengaleRadioBtn.disabled = false;
  366. labouchereRadioBtn.disabled = false;
  367.  
  368. if (mode == 1) {
  369.  
  370. labouchereLines.disabled = false;
  371. labouchereGoalInput.disabled = false;
  372. } else {
  373.  
  374. nightengaleDefaultBetInput.disabled = false;
  375. nightengaleProfitOver24HoursInput.disabled = false;
  376. nightengaleAntiBankruptcyCheckbox.disabled = false;
  377. nightengaleStopAfterXGamesCheckbox.disabled = false;
  378. nightengaleStopAfterXGamesInput.disabled = false;
  379. nightengaleStopAfterReachingXCheckbox.disabled = false;
  380. nightengaleStopAfterReachingXInput.disabled = false;
  381. nightengaleAntiLoseallCheckbox.disabled = false;
  382. nightengaleAntiLoseallInput.disabled = false;
  383. nightengaleAntiDoubleGreenInput.disabled = false;
  384. nightengaleAntiDoubleGreenCheckbox.disabled = false;
  385. nightengaleBetOnGreenCheckbox.disabled = false;
  386. nightengaleBetOnGreenInput.disabled = false;
  387. }
  388.  
  389. trainProtectionCheckbox.disabled = false;
  390. rainbowProtectionCheckbox.disabled = false;
  391. rrbbProtectionCheckbox.disabled = false;
  392. rrbProtectionCheckbox.disabled = false;
  393.  
  394. running = false;
  395. simulationMoney = 0;
  396. simulationMoneyStart = 0;
  397. status = 0;
  398. fullStatus = '';
  399. runtime = 0;
  400. betOnThisRound = false;
  401. checkedIfWon = false;
  402. rolled = false;
  403. lastBetAmount = 0;
  404. currBetAmount = 0;
  405. currBetColor = ' ';
  406. betsWon = 0;
  407. betsLost = 0;
  408. lines = [];
  409. wonLastBet = true;
  410.  
  411. //////////////////////////////////////
  412. currstreak = 0;
  413. maxwin = 0;
  414. maxlose = 0;
  415. maxlosestreak = 0;
  416. maxwinstreak = 0;
  417. winorlosestreak = "no bet yet";
  418. //////////////////////////////////////
  419.  
  420. } else
  421. console.log("%c[MadCatz] I'm already stopped you tart", "color:red");
  422. };
  423.  
  424. nightengaleRadioBtn.onclick = function() {
  425. console.log("%c[MadCatz] Nightengale mode selected", "color:green;");
  426. mode = 0;
  427.  
  428. labouchereLines.disabled = true;
  429. labouchereGoalInput.disabled = true;
  430.  
  431. nightengaleDefaultBetInput.disabled = false;
  432. nightengaleProfitOver24HoursInput.disabled = false;
  433. nightengaleAntiBankruptcyCheckbox.disabled = false;
  434. nightengaleStopAfterXGamesCheckbox.disabled = false;
  435. nightengaleStopAfterXGamesInput.disabled = false;
  436. nightengaleStopAfterReachingXCheckbox.disabled = false;
  437. nightengaleStopAfterReachingXInput.disabled = false;
  438. nightengaleAntiLoseallCheckbox.disabled = false;
  439. nightengaleAntiLoseallInput.disabled = false;
  440. nightengaleAntiDoubleGreenInput.disabled = false;
  441. nightengaleAntiDoubleGreenCheckbox.disabled = false;
  442. nightengaleBetOnGreenCheckbox.disabled = false;
  443. nightengaleBetOnGreenInput.disabled = false;
  444. }
  445.  
  446. labouchereRadioBtn.onclick = function() {
  447. console.log("%c[MadCatz] Labouchere mode selected", "color:green;");
  448. mode = 1;
  449.  
  450. labouchereLines.disabled = false;
  451. labouchereGoalInput.disabled = false;
  452.  
  453. nightengaleDefaultBetInput.disabled = true;
  454. nightengaleProfitOver24HoursInput.disabled = true;
  455. nightengaleAntiBankruptcyCheckbox.disabled = true;
  456. nightengaleStopAfterXGamesCheckbox.disabled = true;
  457. nightengaleStopAfterXGamesInput.disabled = true;
  458. nightengaleStopAfterReachingXCheckbox.disabled = true;
  459. nightengaleStopAfterReachingXInput.disabled = true;
  460. nightengaleAntiLoseallCheckbox.disabled = true;
  461. nightengaleAntiLoseallInput.disabled = true;
  462. nightengaleAntiDoubleGreenInput.disabled = true;
  463. nightengaleAntiDoubleGreenCheckbox.disabled = true;
  464. nightengaleBetOnGreenCheckbox.disabled = true;
  465. nightengaleBetOnGreenInput.disabled = true;
  466. }
  467.  
  468. nightengaleAntiBankruptcyCheckbox.onclick = function() {
  469. if (nightengaleAntiBankruptcyCheckbox.checked) {
  470. antiBankruptcy = true;
  471. console.log("%c[MadCatz] Anti-Bankruptcy Mode Toggled On", "color:green;");
  472. } else {
  473. antiBankruptcy = false;
  474. console.log("%c[MadCatz] Anti-Bankruptcy Mode Toggled Off", "color:red;");
  475. }
  476. }
  477.  
  478. manualModeCheckbox.onclick = function() {
  479. if (manualModeCheckbox.checked) {
  480. nightengaleRadioBtn.disabled = true;
  481. labouchereRadioBtn.disabled = true;
  482. manualMode = true;
  483. console.log("%c[MadCatz] Manual Mode Toggled On", "color:green;");
  484. } else {
  485. nightengaleRadioBtn.disabled = false;
  486. labouchereRadioBtn.disabled = false;
  487. manualMode = false;
  488. console.log("%c[MadCatz] Manual Mode Toggled Off", "color:red;");
  489. }
  490.  
  491.  
  492. }
  493.  
  494. simulationModeCheckbox.onclick = function() {
  495. if (simulationModeCheckbox.checked) {
  496. simulationMode = true;
  497. console.log("%c[MadCatz] Simulation Mode Toggled On", "color:green;");
  498.  
  499. if (nightengaleDefaultBetInput.value != null && simulationMoneyInput.value != null) {
  500. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  501. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  502. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  503. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / simulationMoneyInput.value) * 100).toFixed(4) + "%";
  504. }
  505. } else {
  506. simulationMode = false;
  507. console.log("%c[MadCatz] Simulation Mode Toggled Off", "color:red;");
  508.  
  509. if (nightengaleDefaultBetInput.value != null) {
  510. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  511. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  512. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  513. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / getBalance()) * 100).toFixed(4) + "%";
  514. }
  515. }
  516. }
  517.  
  518. nightengaleDefaultBetInput.oninput = function() {
  519. nightengaleProfitOver24HoursInput.value = 806 * nightengaleDefaultBetInput.value;
  520. if (simulationMode) {
  521. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  522. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  523. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  524. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / simulationMoneyInput.value) * 100).toFixed(4) + "%";
  525. } else {
  526. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  527. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  528. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  529. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / getBalance()) * 100).toFixed(4) + "%";
  530. }
  531. }
  532.  
  533. nightengaleProfitOver24HoursInput.oninput = function() {
  534. nightengaleDefaultBetInput.value = Math.floor(nightengaleProfitOver24HoursInput.value / 806);
  535. if (simulationMode) {
  536. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  537. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  538. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  539. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / simulationMoneyInput.value) * 100).toFixed(4) + "%";
  540. } else {
  541. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  542. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  543. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  544. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / getBalance()) * 100).toFixed(4) + "%";
  545. }
  546. };
  547.  
  548. simulationMoneyInput.oninput = function() {
  549. if (nightengaleDefaultBetInput.value != null) {
  550. if (simulationMode) {
  551. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  552. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  553. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((simulationMoneyInput.value / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  554. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / simulationMoneyInput.value) * 100).toFixed(4) + "%";
  555. } else {
  556. nightengaleOddsOfLosingXTimesInARowX.innerHTML = Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2));
  557. nightengaleOddsOfLosingXTimesInARow.innerHTML = (Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2))) * 100).toFixed(3) + "%";
  558. nightengaleOddsOfLosingIn1Day.innerHTML = (((Math.pow((7 / 15), Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)))) * (1728 - Math.floor(Math.log((getBalance() / nightengaleDefaultBetInput.value) + 1) / Math.log(2)) + 1)) * 100).toFixed(3) + "%";
  559. nightengalePercentageOfMoneyAsDefaultBet.innerHTML = ((nightengaleDefaultBetInput.value / getBalance()) * 100).toFixed(4) + "%";
  560. }
  561. };
  562. }
  563.  
  564. labouchereGoalInput.oninput = function() {
  565. if (labouchereLines.value != '' && labouchereLines.value > 0)
  566. laboucherePredictedBets.innerHTML = Math.ceil(parseInt(labouchereGoalInput.value) / ((7 / 15) * labouchereLines.value));
  567. };
  568.  
  569. labouchereLines.oninput = function() {
  570. if (labouchereGoalInput.value != '' && labouchereGoalInput.value > 0)
  571. laboucherePredictedBets.innerHTML = Math.ceil(parseInt(labouchereGoalInput.value) / ((7 / 15) * labouchereLines.value));
  572. }
  573.  
  574. red.onclick = function() {
  575. if (status == 2 && !betOnThisRound) {
  576. currBetAmount = parseInt(simulateBetAmt.value);
  577. currBetColor = 'r';
  578. console.log("%c[MadCatz] Total Money: " + simulationMoney + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Net Change: " + toSignedInt(simulationMoney - simulationMoneyStart) + " // Simulated Bet of " + currBetAmount + " credits on color " + currBetColor, "color:purple;");
  579. betOnThisRound = true;
  580. } else {
  581. if (betOnThisRound)
  582. console.log("%c[MadCatz] You already bet on this round...", "color:red;");
  583. else
  584. console.log("%c[MadCatz] Betting for this round is closed...", "color:red;");
  585. }
  586. }
  587.  
  588. green.onclick = function() {
  589. if (status == 2) {
  590. if (!betOnThisRound) {
  591. currBetAmount = parseInt(simulateBetAmt.value);
  592. currBetColor = 'g';
  593. console.log("%c[MadCatz] Total Money: " + simulationMoney + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Net Change: " + toSignedInt(simulationMoney - simulationMoneyStart) + " // Simulated Bet of " + currBetAmount + " credits on color " + currBetColor, "color:purple;");
  594. betOnThisRound = true;
  595. } else {
  596. console.log("%c[MadCatz] You already bet on this round...", "color:red;");
  597. }
  598. } else {
  599. console.log("%c[MadCatz] Betting for this round is closed...", "color:red;");
  600. }
  601. };
  602.  
  603. black.onclick = function() {
  604. if (status == 2) {
  605. if (!betOnThisRound) {
  606. currBetAmount = parseInt(simulateBetAmt.value);
  607. currBetColor = 'b';
  608. console.log("%c[MadCatz] Total Money: " + simulationMoney + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Net Change: " + toSignedInt(simulationMoney - simulationMoneyStart) + " // Simulated Bet of " + currBetAmount + " credits on color " + currBetColor, "color:purple;");
  609. betOnThisRound = true;
  610. } else {
  611. console.log("%c[MadCatz] You already bet on this round...", "color:red;");
  612. }
  613. } else {
  614. console.log("%c[MadCatz] Betting for this round is closed...", "color:red;");
  615. }
  616. };
  617. //END [DEFINE LISTENERS]
  618.  
  619. //START [DEFINING FUNCTIONS]
  620. function checkStatus() {
  621. //STATUSES
  622. // 1 // Rolling // ***ROLLING***
  623. // 2 // Betting // Rolling in XX.XX...
  624. // 3 // Rolled // CSGODouble rolled 3!
  625. // 4 // Confirming // Confirming 625/625 total bets
  626. return statusBanner.innerHTML;
  627. }
  628.  
  629. function getBalance() {
  630. return balanceSpan.innerHTML;
  631. }
  632.  
  633. function secondsToHHMMSS(d) {
  634. d = Number(d);
  635. var h = Math.floor(d / 3600);
  636. var m = Math.floor(d % 3600 / 60);
  637. var s = Math.floor(d % 3600 % 60);
  638.  
  639. return ((h > 0 ? h + ":" + (m < 10 ? "0" : "") : "") + m + ":" + (s < 10 ? "0" : "") + s);
  640. }
  641.  
  642. /*function sleep() {
  643. var ms = Math.floor((Math.random() * 100) + 1);
  644. ms += Math.floor((Math.random() * 100) + 1);
  645. ms += Math.floor((Math.random() * 100) + 1);
  646. ms *= 100;
  647.  
  648. return (new Promise(function(resolve, reject) {
  649. setTimeout(function() {
  650. resolve();
  651. }, ms);
  652. }));
  653. }*/
  654.  
  655. function sleep(x) {
  656. return (new Promise(function(resolve, reject) {
  657. setTimeout(function() {
  658. resolve();
  659. }, x);
  660. }));
  661. }
  662.  
  663.  
  664. function bet(amount, rgb) {
  665. switch (rgb) {
  666. case 'r':
  667. sleep(10000).then(function() {
  668. betAmountInput.value = amount;
  669. redBetButton.click();
  670. });
  671. break;
  672. case 'g':
  673. sleep(5000).then(function() {
  674. betAmountInput.value = amount;
  675. greenBetButton.click();
  676. });
  677. break;
  678. case 'b':
  679. sleep(10000).then(function() {
  680. betAmountInput.value = amount;
  681. blackBetButton.click();
  682. });
  683. break;
  684. }
  685. }
  686.  
  687.  
  688. function getColorFromNumber(number) {
  689. if (number == 0)
  690. return 'g';
  691. else if (number >= 1 && number <= 7)
  692. return 'r';
  693. else if (number >= 8 && number <= 14)
  694. return 'b';
  695. }
  696.  
  697. function toSignedInt(number) {
  698. if (number > 0)
  699. return "+" + number;
  700.  
  701. return number
  702. }
  703.  
  704. function calculateNewDefaultBet(defaultBet, moneyStart, money) {
  705. return Math.floor((defaultBet / moneyStart) * money);
  706. }
  707. //END [DEFINING FUNCTIONS]
  708.  
  709. //START [MAIN LOOP]
  710. setInterval(function() {
  711. runtimeSpan.innerHTML = secondsToHHMMSS(++runtime);
  712.  
  713. if (running) {
  714. fullStatus = checkStatus()
  715. switch (fullStatus.substring(0, 2)) {
  716. case "**":
  717. rolled = true;
  718. status = 1;
  719. break;
  720.  
  721. case "Ro":
  722. if (betOnThisRound && rolled) {
  723. betOnThisRound = false;
  724. checkedIfWon = false;
  725. rolled = false;
  726. }
  727. status = 2;
  728. break;
  729.  
  730. case "CS":
  731. status = 3;
  732. break;
  733.  
  734. case "Co":
  735. status = 4;
  736. break;
  737.  
  738. default:
  739. status = 0;
  740. break;
  741. }
  742. //if (status == 2)
  743. // console.log("%c[MadCatz] Website Status: " + status + " // Rolling in XX.XX...", "color:orange;");
  744. //else
  745. // console.log("%c[MadCatz] Website Status: " + status + " // " + checkStatus(), "color:orange;");
  746.  
  747. if (!betOnThisRound && status == 2) {
  748. skipBet = false;
  749. //decide which color to bet on
  750. if (!manualMode) {
  751. if (getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) != 'g') currBetColor = getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML);
  752. else
  753. currBetColor = 'r';
  754.  
  755. if (trainProtectionCheckbox.checked) {
  756. if ((getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'r' && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'r') || (getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'b' && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'b')) {
  757. console.log("%c[MadCatz] Train Detected!", "color:blue;");
  758. currBetColor = getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML);
  759. }
  760. }
  761.  
  762. if (rainbowProtectionCheckbox.checked) {
  763. if ((getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML) == 'b' && (getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'r') && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'b') || (getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML) == 'r' && (getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'b') && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'r')) {
  764. console.log("%c[MadCatz] Rainbow Detected!", "color:blue;");
  765. currBetColor = getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML);
  766. }
  767. }
  768. if (rrbbProtectionCheckbox.checked) {
  769. if ((getColorFromNumber(document.getElementById("past").childNodes[6].innerHTML) == 'b' && getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML) == 'b' && getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'r' && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'r') || (getColorFromNumber(document.getElementById("past").childNodes[6].innerHTML) == 'r' && getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML) == 'r' && getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'b' && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'b')) {
  770. console.log("%c[MadCatz] RRBB Pattern Detected!", "color:blue;");
  771. currBetColor = getColorFromNumber(document.getElementById("past").childNodes[6].innerHTML);
  772. }
  773. }
  774. if (rrbProtectionCheckbox.checked) {
  775. if ((getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML) == 'b' && getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'b' && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'r') || (getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML) == 'r' && getColorFromNumber(document.getElementById("past").childNodes[8].innerHTML) == 'r' && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'b')) {
  776. console.log("%c[MadCatz] RRB Pattern Detected!", "color:blue;");
  777. currBetColor = getColorFromNumber(document.getElementById("past").childNodes[7].innerHTML);
  778. }
  779. }
  780. }
  781.  
  782. if (mode == 0 && !manualMode) { //Martingale System
  783. if (nightengaleStopAfterXGamesCheckbox.checked && (betsWon + betsLost) == parseInt(nightengaleStopAfterXGamesInput.value)) {
  784. stopButton.click();
  785. console.log("%c[MadCatz] Nightengale: Stop after " + nightengaleStopAfterXGamesInput.value + " reached! Stopping...: ", "color:purple");
  786. }
  787.  
  788. if (nightengaleStopAfterReachingXCheckbox.checked && ((!simulationMode && ((getBalance() - startBalance) == parseInt(nightengaleStopAfterReachingXInput.value))) || (simulationMode && ((simulationMoney - simulationMoneyStart) == parseInt(nightengaleStopAfterReachingXInput.value))))) {
  789. stopButton.click();
  790. console.log("%c[MadCatz] Nightengale: Stop after attaining " + nightengaleStopAfterReachingXInput.value + " reached! Stopping...: ", "color:purple");
  791. }
  792.  
  793. //decide the amount to bet
  794. if (antiDoubleGreenCounter == 0)
  795. antiDoubleGreenCounter = -1;
  796.  
  797. if (!betOnThisRound && wonLastBet) {
  798. currBetAmount = parseInt(nightengaleDefaultBetInput.value);
  799. if (betOnGreenEnabled)
  800. currBetGreenAmount = parseInt(nightengaleBetOnGreenInput.value);
  801. antiLoseAllCounter = 0;
  802.  
  803. } else if (antiDoubleGreenCounter == -1 && !betOnThisRound && antiDoubleGreenEnabled && getColorFromNumber(document.getElementById("past").childNodes[9].innerHTML) == 'g') {
  804. antiDoubleGreenCounter = parseInt(nightengaleAntiDoubleGreenInput.value);
  805. console.log("%c[MadCatz] Skipping the next " + antiDoubleGreenCounter + " bets!", "color:green");
  806. skipBet = true;
  807. betOnThisRound = true;
  808. antiDoubleGreenCounter -= 1;
  809. } else if (!betOnThisRound && antiDoubleGreenCounter >= 0) {
  810. if (antiDoubleGreenCounter == 1) {
  811. console.log("%c[MadCatz] Last bet skip!", "color:green");
  812. antiDoubleGreenCounter = -1;
  813. skipBet = true;
  814. betOnThisRound = true;
  815. } else if (!skipBet && !betOnThisRound) {
  816. console.log("%c[MadCatz] Skipping the next " + antiDoubleGreenCounter + " bets", "color:green");
  817. betOnThisRound = true;
  818. skipBet = true;
  819. antiDoubleGreenCounter -= 1;
  820. }
  821. } else {
  822. antiLoseAllCounter++;
  823. if (antiBankruptcy && ((simulationMode && (lastBetAmount * 2 > simulationMoney)) || (!simulationMode && (lastBetAmount * 2 > getBalance())))) {
  824. console.log("%c[MadCatz] Anti-Bankruptcy triggered!", "color:blue;");
  825.  
  826. if (simulationMode) {
  827. nightengaleDefaultBetInput.value = calculateNewDefaultBet(nightengaleDefaultBetInput.value, simulationMoneyStart, simulationMoney);
  828. console.log("%c[MadCatz] Anti-Bankruptcy calculated new default bet: " + nightengaleDefaultBetInput.value, "color:blue;");
  829. } else {
  830. nightengaleDefaultBetInput.value = calculateNewDefaultBet(nightengaleDefaultBetInput.value, startBalance, getBalance());
  831. console.log("%c[MadCatz] Anti-Bankruptcy calculated new default bet: " + nightengaleDefaultBetInput.value, "color:blue;");
  832. }
  833.  
  834. currBetAmount = parseInt(nightengaleDefaultBetInput.value);
  835. if (betOnGreenEnabled)
  836. currGreenBetAmount = parseInt(nightengaleBetOnGreenInput.value);
  837. wonLastBet = true;
  838. } else {
  839. if (antiLoseAllCounter >= parseInt(nightengaleAntiLoseallInput.value)) {
  840. antiLoseAllCounter = 0;
  841. console.log("%c[MadCatz] Anti-Lose all triggered!", "color:green");
  842. currBetAmount = parseInt(nightengaleDefaultBetInput.value);
  843. if (betOnGreenEnabled)
  844. currGreenBetAmount = parseInt(nightengaleBetOnGreenInput.value);
  845. } else {
  846. currBetAmount = lastBetAmount * 2;
  847. if (betOnGreenEnabled)
  848. currBetGreenAmount = lastBetGreenAmount * 2;
  849. }
  850. }
  851.  
  852. }
  853. }
  854. } else if (mode == 1 && !manualMode) { //labouchere system
  855. if (simulationMode) {
  856. if ((simulationMoney - simulationMoneyStart) == goal) {
  857. stopButton.click();
  858. console.log("%c[MadCatz] Labouchere goal reached! Stopping...: ", "color:purple");
  859. }
  860. } else {
  861. if ((getBalance() - startBalance) == goal) {
  862. stopButton.click();
  863. console.log("%c[MadCatz] Labouchere goal reached! Stopping...: ", "color:purple");
  864. }
  865. }
  866.  
  867. if (wonLastBet && (betsWon + betsLost) > 0) {
  868. lines.splice((lines.length - 1), 1);
  869. lines.splice(0, 1);
  870. } else if (!wonLastBet && (betsWon + betsLost) > 0) {
  871. lines.push(lastBetAmount);
  872. }
  873.  
  874. if (lines.length > 1)
  875. currBetAmount = (lines[0] + lines[lines.length - 1]);
  876. else
  877. currBetAmount = lines[0];
  878.  
  879. console.log("%c[MadCatz] Lines: " + lines, "color:blue");
  880. }
  881.  
  882. //bet
  883. if (!skipBet) {
  884.  
  885. //////////////////////////////////////////////////////
  886. if (currBetColor == 'r') {
  887. resultcolor = "RED";
  888. } else if (currBetColor == 'b') {
  889. resultcolor = "BLACK";
  890. } else if (currBetColor == 'g') {
  891. resultcolor = "GREEN";
  892. }
  893. //////////////////////////////////////////////////////
  894.  
  895. if (!simulationMode && !betOnThisRound) {
  896. betOnThisRound = true;
  897. lastBetAmount = currBetAmount;
  898. lastBetGreenAmount = currBetGreenAmount;
  899.  
  900.  
  901. //bet on green part
  902. if (betOnGreenEnabled) {
  903. console.log("%c[MadCatz] Total Money: " + getBalance() + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Net Change: " + toSignedInt(getBalance() - startBalance) + " // Bet of " + currBetGreenAmount + " credits on GREEN", "color:purple;");
  904. bet(currBetGreenAmount, 'g');
  905. }
  906.  
  907.  
  908.  
  909.  
  910. console.log("%cTotal Money: " + getBalance() + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Max WinStreak: " + maxwinstreak + " // Max LoseStreak: " + maxlosestreak + " // Net Change: " + toSignedInt(getBalance() - startBalance) + " // Bet " + currBetAmount + " on " + resultcolor + " // Current " + winorlosestreak + ": " + currstreak, "color:purple;");
  911. bet(currBetAmount, currBetColor);
  912. } else if (simulationMode && !manualMode && !betOnThisRound) {
  913. betOnThisRound = true;
  914. lastBetAmount = currBetAmount;
  915. lastBetGreenAmount = currBetGreenAmount;
  916.  
  917. console.log("%cTotal Money: " + simulationMoney + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Max WinStreak: " + maxwinstreak + " // Max LoseStreak: " + maxlosestreak + " // Net Change: " + toSignedInt(simulationMoney - simulationMoneyStart) + " // Simulated Bet " + currBetAmount + " on " + resultcolor + " // Current " + winorlosestreak + ": " + currstreak, "color:purple;");
  918. //console.log("%c[MadCatz] Total Money: " + simulationMoney, "color:purple;");
  919. //console.log("%cTotal Bets: " + (betsWon + betsLost), "color:purple;");
  920. //console.log("%cWins: " + betsWon + " Losses: " + betsLost, "color:purple;");
  921. //console.log("%cNet Change: " + toSignedInt(simulationMoney - simulationMoneyStart), "color:purple;");
  922. //console.log("%cSimulated Bet of " + currBetAmount, "color:purple;");
  923. //console.log("%cMax WinStreak: " + maxwinstreak, "color:purple;");
  924. //console.log("%cMax LoseStreak: " + maxlosestreak, "color:purple;");
  925. //console.log("%cCurrent "+ winorlosestreak +": " + currstreak, "color:purple;");
  926. //console.log("%cBet on color " + currBetColor, "color:purple;");
  927. if (betOnGreenEnabled)
  928. console.log("%c[MadCatz] Total Money: " + simulationMoney + " // Total Bets: " + (betsWon + betsLost) + " // Wins: " + betsWon + " Losses: " + betsLost + " // Net Change: " + toSignedInt(simulationMoney - simulationMoneyStart) + " // Simulated Bet of " + currBetGreenAmount + " credits on GREEN", "color:purple;");
  929. }
  930.  
  931. if (!checkedIfWon && betOnThisRound && status == 3) {
  932. if ((betOnGreenEnabled && getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1)) == 'g') || currBetColor == getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1))) {
  933. wonLastBet = true;
  934.  
  935. //////////////////////////////////////////
  936. wstreak = 1;
  937. currstreak++;
  938. maxlose = 0;
  939. maxwin++;
  940. if (maxwin > maxwinstreak) {
  941. maxwinstreak++;
  942. }
  943. if (lstreak > 0) {
  944. currstreak = 1;
  945. }
  946. lstreak = 0;
  947. winorlosestreak = "Winstreak";
  948. //////////////////////////////////////////
  949.  
  950. betsWon++;
  951. console.log("%c[MadCatz] Won Last Bet! :D", "color:green;");
  952. if (simulationMode) {
  953. if (betOnGreenEnabled && getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1)) == 'g')
  954. simulationMoney += currBetGreenAmount * 14;
  955. else if (betOnGreenEnabled && getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1)) != 'g')
  956. simulationMoney -= currBetGreenAmount;
  957.  
  958. if (currBetColor != 'g') {
  959. if (currBetColor == getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1)))
  960. simulationMoney += currBetAmount;
  961. } else {
  962. if (!(currBetColor == getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1))))
  963. simulationMoney += 14 * currBetAmount;
  964. }
  965. }
  966. } else {
  967. wonLastBet = false;
  968.  
  969. //////////////////////////////////////////
  970. lstreak = 1;
  971. currstreak++;
  972. maxwin = 0;
  973. maxlose++;
  974. if (maxlose > maxlosestreak) {
  975. maxlosestreak++;
  976. }
  977. if (wstreak > 0) {
  978. currstreak = 1;
  979. }
  980. wstreak = 0;
  981. winorlosestreak = "Losestreak";
  982. //////////////////////////////////////////
  983.  
  984. betsLost++;
  985. console.log("%c[MadCatz] Lost Last Bet! :(", "color:red;");
  986. if (simulationMode) {
  987. if (betOnGreenEnabled && getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1)) != 'g')
  988. simulationMoney -= currBetGreenAmount;
  989. else if (betOnGreenEnabled && getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1)) == 'g')
  990. simulationMoney += currBetGreenAmount * 14;
  991.  
  992. if (!(currBetColor == getColorFromNumber(checkStatus().substring(18, checkStatus().length - 1))))
  993. simulationMoney -= currBetAmount;
  994. }
  995. }
  996.  
  997. checkedIfWon = true;
  998. }
  999. } else if (!betOnThisRound && skipBet) {
  1000. console.log("%c[MadCatz] Skipping bet! :)", "color:green");
  1001. }
  1002. }
  1003. }, 1000);
  1004. //END [MAIN LOOP]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement