Greasy Fork

Greasy Fork is available in English.

Freebitco.in - Auto Roll (no captcha) - Status Console - ADVANCED - Human Behavior - All Bonuses

1. Auto Roll 2. Status Console 3. Close ADS 4. Human Simulation 5. Multiply game 6. Lottery tickets 7. Bonus 1000% 8. Rewards RP 9. Slower in the night 10. TopDown Config - made by dany-veneno in 2018 for private use, published in 2020, constantly updated.

当前为 2020-05-31 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Freebitco.in - Auto Roll (no captcha) - Status Console - ADVANCED - Human Behavior - All Bonuses
// @description  1. Auto Roll 2. Status Console 3. Close ADS 4. Human Simulation 5. Multiply game 6. Lottery tickets 7. Bonus 1000% 8. Rewards RP 9. Slower in the night 10. TopDown Config - made by dany-veneno in 2018 for private use, published in 2020, constantly updated.
// @author       dany-veneno
// @icon         https://bit.ly/3bY0vU9
// @match        https://freebitco.in/*
// @grant        none
// @create       2018-05-27
// @lastmodified 2020-05-29
// @version      2.5.3
// @namespace    http://greasyfork.icu/users/572366
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @license      NTP
// @supportURL   https://bit.ly/3d1kW48
// @home-url     https://bit.ly/2M4BNH7
// @home-url2    https://bit.ly/2zn0b4p
// @homepageURL  http://greasyfork.icu/en/scripts/404112
// @copyright    2018-2020, dany-veneno
// @run-at       document-end

// @note         2020-05-30-V.2.5.4 Count distance from jackpot corrected (road to multiply)
// @note         2020-05-29-V.2.5.3 Night mode more sleepy && added a 2h delay in daymode
// @note         2020-05-29-V.2.5.2 Body Focus
// @note         2020-05-28-V.2.5.1 Add rate link && StatusBox texts
// @note         2020-05-28-V.2.5   Code Cleaned and optimized, all code in separate functions 
// @note         2020-05-28-V.2.2.2 Promo_Mode Flag && Bonus1000 flag
// @note         2020-05-27-V.2.2.1 Script Name
// @note         2020-05-27-V.2.2   ExecutionsNum && Script Name && Description
// @note         2020-05-27-V.2.1   First Execution fast Roll && Staus title && link to config how to
// @note         2020-05-27-V.2.0.1 Minor changes and fixes
// @note         2020-05-27-V.2.0.0 MAJOR: STATUS CONSOLE && ADS remove
// @note         2020-05-26-V.1.9.1 Outputs && default loglevel to 4
// @note         2020-05-26-V.1.9   Timings in Roll && Sleep between buying RP && Colors && fixes
// @note         2020-05-26-V.1.8   Hour format update && reduced lottery tickets number && fixes
// @note         2020-05-25-V.1.7   Added logging  && changed timings && verifying all good && faster on RPActive
// ==/UserScript==

////////////
// CONFIG //
////////////

// >>>>>>>>>>>>>> //

// *** Bonuses
var REWARDS = true; //decide if auto buy rewards bonuses, or not ***When true, it will activate RP promotions***
var BONUS1000 = true; //decide if to buy 1000% bonus or not. It costs 4600 RP.  *** When BONUS1000 = false and REWARDS = true, you'll increase RP. ***
var PROMO_MODE = true; // decide if play faster when some promo (bonus RP or 1000% is active, or not.

// *** Lottery
var LOTTERY = true; //decide if auto buy lottery tickets, or not. ***When true, It will buy lottery tickets 7% of the times ***
var LOTTERY_MAX_TICKETS = 20; // Max ticket to buy

// *** Multiply Game ** Wait for version 3.0 to activate it.
var MULTIPLY = false; //decide if play Multiply games or not ***It's a doubling technique. Play at your risk *** ***When true, it's played randomly***
var MAX_ROLLS_AT_MULTIPLY = 1000; //how many rolls in multiply.

// ** Logging
var LOGGING = 5; //0 is no messages, 5 is debug

// <<<<<<<<<<<<<< //

// System Variables //
// >>>>>>>>>>>>>>>> //
var css_reset='font-weight: reset; color:reset';
var css_bold='font-weight:bold;';
var script_output = "";
var script_output_msg_1 = "";
var script_output_msg_2 = "";
var script_output_msg_css = "";
var reward = {};
var ads_closed=0; //number of ads closed, increasing
var rolling_mode="Day"; //night, day, promo
var dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false });

var script_version = GM_info.script.version;

var totJack = getCookie("totJack");
var tot_exec = getCookie("executions");

var rand = 0;
// <<<<<<<<<<<<<<<< //

(function() {
    'use strict';
    
    if (LOGGING > 0) console.log("%c<<<<<<<<<< Script Begin >>>>>>>>>>", 'font-weight:bold; color: green');

    // Initialize the Status Panel
    panelInit();

    // Lottery function
    // It will plan to buy few lottery tickets, more less 7% of the times
    lottery();

    // Reward function
    // it will call the roll function, that call the multiply function.
    setTimeout(function(){
        rewards();
    }, 3000);


    setInterval(function(){
    // Close the reveals mode
        closePopupInterval($('.close-reveal-modal'));
        closePopupInterval($('.pushpad_deny_button'));
    }, 30000);

    //Close Ads but not always
    setTimeout(function(){
        closeRandomPopupInterval($('div.close_daily_jackpot_main_container_div'),30);
        closeRandomPopupInterval($('i.fa.fa-times-circle.close_deposit_promo_message'),40);
        closeRandomPopupInterval($('div#lambo_contest_msg a.close'),10); //lambo contest
        closeRandomPopupInterval($('div#earn_btc_msg a.close'),20);
        closeRandomPopupInterval($('div#enable_2fa_msg_alert a.close'),30);
        closeRandomPopupInterval($("[id^='hide_rp_promo']"),50);
    }, 20000)

    //Show elapsed time every 10 min.
    setInterval(function(){
        showStatus();
    }(), 60000);

    // Activate DOM Monitors
    // First, check all played numbers, even in multiply, and check if it's 8888. To have a measure when to play *jackpot*.
    $('#previous_roll').on('DOMSubtreeModified', function(){
        var rolled = $('#previous_roll').html();
        if (rolled > 0 && rolled <= 10000 && rolled != 8888){
            //if (LOGGING > 4) console.log("prevNumber rolled: "+rolled);
            totJack++;                        
            setCookie("totJack", totJack, "365");
            setCookie("prevNum", rolled, "365");
            //console.log(document.cookie);
        } else if (rolled == 8888) {
            setCookie("totJack", 0, "365");
            setCookie("prevNum", rolled, "365");
            if (LOGGING > 0) console.log("************** 8888 Jackpot! **************");
        }
    });
    
    // Give info about jackpot
    $('#multiplier_fifth_digit').on('click', function(){
        showStatus();
    });
}

)();
function panelInit () {
    // Create the Div on the page
    script_output_msg_css = "<style> #script_output {background: black; border: 2px groove #09ff00; margin-bottom: 1em;} ";
    script_output_msg_css += "#script_output .false {color: red;} #script_output .true {color: lime;} ";
    script_output_msg_css += "#script_output .script_output {color: white; font-weight:normal; font-size: 0.7em} ";
    script_output_msg_css += "#script_output_title_msg {font-size: 0.7em; color: orange; text-align: right; position:absolute; right:0; top:0} ";
    script_output_msg_css += "#script_output_title_msg span {line-height:1.2em;} ";
    script_output_msg_css += "a {text-decoration:none;} ";
    script_output_msg_css += "</style>";

    script_output = script_output_msg_css + '<div class="center free_play_bonus_box_large" id="script_output">';
    script_output += '<div style="position:relative; width: 100%"><p id="script_output_title" style="color: lime; font-weight:bold">AutoRoll Status v.'+script_version+'</p>';
    script_output += '<div id="script_output_title_msg">';
    script_output += '<span id="script_output_title_msg_executions" style="color:white;">Executions #<span id="script_output_title_executions_num" class="true bold">'+tot_exec+'</span></span><br>';
    script_output += '<span id="script_output_title_msg_ads_closed" style="color:white">Ads Closed: <span id="script_output_title_ads_closed_num" class="true bold">0</span></span><br>';
    script_output += '<span style="color:white">Mode: <span id="script_output_title_msg_mode" class="true bold">Normal</span></span></br>';
    script_output += '<span id="script_output_title_msg_roll"></span></br>';
    script_output += '</div></div>';
    script_output += '<p class="script_output" id="script_output_msg_1"></p>';
    script_output += '<p class="script_output" id="script_output_msg_2"></p>';
    script_output += '<p class="script_output" id="script_output_msg_3" style="color:grey; font-size:0.6em; font-family: console">Donations are welcome, btc address: 3FwAazZDEuy3ER4NQVp4Yqo6kDxCFntwS8 - <a href="https://bit.ly/3d1kW48" target="_blank">Config HowTo</a> - <a href="http://greasyfork.icu/en/scripts/404112-freebitco-in-auto-roll-no-captcha-status-console-advanced-human-behavior-all-bonuses/feedback" target="_blank"> Rate</a> - © daniele-veneno 2018-2020</p> </div> ';
    $('#reward_points_bonuses_main_div').prepend(script_output);
}

function rewards() {
    var points = parseInt($('.user_reward_points').text().replace(',',""));
    var bonustime = {};
    if ($("#bonus_container_free_points").length != 0) {
        bonustime.text = $('#bonus_span_free_points').text();
        bonustime.hour = parseInt(bonustime.text.split(":")[0]);
        bonustime.min = parseInt(bonustime.text.split(":")[1]);
        bonustime.sec = parseInt(bonustime.text.split(":")[2]);
        bonustime.current = bonustime.hour * 3600 + bonustime.min * 60 + bonustime.sec;
    } else bonustime.current = 0;
    
    var t=missingTime(); 
    if (LOGGING > 4) console.log("Bonus missing seconds: "+bonustime.current+" -- Reward Points avail: "+points+" -- missingTime: "+t[0]);
    if (bonustime.current !== 0) {
        if (LOGGING > 3) console.log("%cPromo RP is active!", 'color: grey');
        if(Boolean(PROMO_MODE)) 
            $("#script_output_title_msg_mode").text("Promo");
        setTimeout(function(){ freeRoll(); }, 300);
    } else {
        var t=missingTime(); 
        // Buy Bonus if missing less then 10 minutes before roll
        if (Boolean(REWARDS) && t[0]<10 && t[0] > 0) { 
           $('.rewards_link').not('.hide_menu').click();
            if (reward.points < 12) {
                if (LOGGING > 2) console.log("No enough points to buy bonus. Less then 12. Waiting for points in next rolls");
            } else if (points < 120) {
                if (LOGGING > 4) console.log("w 60");
                setTimeout(function(){ RedeemRPProduct('free_points_1')},random(2000,16000));
            } else if (points < 600) {
                if (LOGGING > 4) console.log("w 120");
                setTimeout(function(){ RedeemRPProduct('free_points_10')},random(2000,16000));
            } else if (points < 1200) {
                if (LOGGING > 4) console.log("w 600");
                setTimeout(function(){ RedeemRPProduct('free_points_50')},random(2000,16000));
            } else {
                setTimeout(function(){ RedeemRPProduct('free_points_100')},random(2000,16000));
            }

            if ($('#bonus_span_fp_bonus').length === 0)
                if (points >= 4600 && Boolean(BONUS1000) ) 
                    setTimeout(function(){ RedeemRPProduct('fp_bonus_1000')},random(15000,35000));

            //Back to the main page
            setTimeout(function(){ $('.free_play_link').not('.hide_menu').click(); }, random(1000,3000));

            // Update Status Menu
            $("#script_output_title_msg_mode").text("promo");
        } else {
            //getting colors
            var c1 = 'red'; var c2 = 'red'
            var _min = 10;
            if (Boolean(REWARDS)) c1 = 'green';
            if (t[0] < _min ) c2 = 'green';
            if (LOGGING > 3) console.log('Not buying RPBonuses: Setting Variable is: %c'+Boolean(REWARDS)+' %c -- %c and missing minutes are: %c '+t[0]+' %c(<'+_min+')', 'color:'+c1, 'color:reset; font-weight:bold', 'font-weight: reset', 'color:'+c2, 'color:reset; font-weight:bold');
        }
        // Call the freeRoll
        setTimeout(function(){ 
            freeRoll(bonustime.current); 
        }), rand(6000,30000);
    }
}

function freeRoll(bonustime_current) {
    var d = new Date();
    var h = d.getHours();
    var rand=0;
    var r=0;
    var tot_btc_winning_rolling = getCookie('tot_btc_winning_rolling');
    var tot_lottery_winning_rolling = getCookie('tot_lottery_winning_rolling');
    var tot_rp_winning_rolling = getCookie('tot_rp_winning_rolling');
    var executions = getCookie('executions');
    if (! (tot_btc_winning_rolling > 0)) tot_btc_winning_rolling = 0;
    if (! (tot_lottery_winning_rolling > 0)) tot_lottery_winning_rolling = 0;
    if (! (tot_rp_winning_rolling > 0)) tot_rp_winning_rolling = 0;
    if (! (executions > 0)) executions = 0;

    if ($('#free_play_form_button').is(':visible') && ! $('#play_without_captchas_button').is(':visible')) {
        r=random(1,100);
        $('body').focus();
        if (h <= 6 || h>=22) { //from 22 to 7am
            if (r <= 30) rand=random(3000,7200000);
            else rand=random(1000000,3600000);
            rolling_mode="Night";
        } else {
            if (r <= 10)        rand=random(9000,7200000); // xx%, long wait, more than hour
            else if (r <= 30)   rand=random(6000,1800000); // long but not longest
            else if (r <= 71)   rand=random(3000,1200000); // xx% cases medium
            else                rand=random(500,60000); // xx% cases fast roll
            rolling_mode="Day";
        }

        if (bonustime_current !== 0 && Boolean(PROMO_MODE) ) { //If promo is active, roll faster
            if (r <= 20)        rand=random(3000,360000); //one time on five it will be slower
            else                rand=random(500,600000); //then faster
            rolling_mode="Promo";
        }
        if (tot_btc_winning_rolling == 0) { 
            rand=random(1000,2000);
            if (LOGGING > 2) console.log('>>>>> First Execution, fast ROLL');
        }
        $("#script_output_title_msg_mode").text(rolling_mode);

        d.setSeconds(d.getSeconds() + rand/1000);
        var [{ value: year },,{ value: month },,{ value: day },,{ value: hour },,{ value: minute }] = dateTimeFormat .formatToParts(d);

        $('#script_output_title_msg_roll').html('<span class="bold">Roll at <span class="false">'+hour+':'+minute+'</span></span>');
        if (LOGGING > 2) console.log('++++++++++++++++++++++++++++++Will roll in '+rand/1000/60+' minutes;');
        if (LOGGING > 4) console.log('hour:'+h+'; r:'+r);
        setTimeout(function(){ $('.free_play_link').not('.hide_menu').click();}, 1800);
        setTimeout(function(){
            //Duplicate the visibility chek to avoid error when humans roll and don't refresh.
            if ($('#free_play_form_button').is(':visible') && ! $('#play_without_captchas_button').is(':visible')){
                $('body').focus();

                //Update Status on page
                $('#script_output_title_msg_roll').html('<span class="true">++ Rolling NOW!</span>'); // Status on page
                if (LOGGING > 2) console.log('++++++++++++++++++++++++++++++ROLL!');
                setTimeout(function(){
                    $('#free_play_form_button').click();
                }, random (500,3000));
                setTimeout(function(){
                    var win_btc = $('#winnings').text();
                    var win_lottery = $('#fp_lottery_tickets_won').text();
                    var win_rp = $('#fp_reward_points_won').text();
                    executions++;
                    //Update Status on page
                    $('#script_output_title_msg_roll').html('<span class="true">++ Rolled</span>'); // Status on page
                    $('#script_output_title_executions_num').text(executions);
                    setCookie('executions', executions, 365);
                    if (LOGGING > 2) console.log('%cExecution number: '+executions,'font-weight:bold; color:green');
                    if (LOGGING > 2) console.log('%cGot '+win_btc+' btc, '+win_lottery+' tickets and '+win_rp+' RP!','font-weight:bold; color:green');
                    if (win_btc > 0) {
                        tot_btc_winning_rolling = parseFloat(parseFloat(tot_btc_winning_rolling) + parseFloat(win_btc)).toFixed(8);
                        setCookie('tot_btc_winning_rolling', tot_btc_winning_rolling, 365);
                        if (LOGGING > 2) console.log('%cBTC Won totally with script %c'+tot_btc_winning_rolling,'color: gray', 'font-weight:bold');
                    } else {
                        if (LOGGING > 1) console.log(''+'%cSome error retrieving Roll Winnings. Winning btc was: '+win_btc, 'color: red');
                    }
                    if (win_lottery > 0) {
                        tot_lottery_winning_rolling = parseFloat(parseFloat(tot_lottery_winning_rolling) + parseFloat(win_lottery)).toFixed(0);
                        setCookie('tot_lottery_winning_rolling', tot_lottery_winning_rolling, 365);
                        if (LOGGING > 2) console.log('%cTickets Won with script %c'+tot_lottery_winning_rolling,'color: gray', 'font-weight:bold');
                    } else {
                        if (LOGGING > 1) console.log(''+'%cSome error retrieving Roll Winnings. Winning lottery was: '+win_btc, 'color: red');
                    }
                    if (win_rp > 0) {
                        tot_rp_winning_rolling = parseFloat(parseFloat(tot_rp_winning_rolling) + parseFloat(win_rp)).toFixed(0);
                        setCookie('tot_rp_winning_rolling', tot_rp_winning_rolling, 365);
                        if (LOGGING > 2) console.log('%cRP Won with script %c'+tot_rp_winning_rolling,'color: gray', 'font-weight:bold');
                    } else {
                        if (LOGGING > 1) console.log(''+'%cSome error retrieving Roll Winnings. Winning RP was: '+win_btc, 'color: red');
                    }

                }, 6999);
            }
            else {
                if (LOGGING > 3) console.log('Already Rolled..');
                //Update Status on page
                $('#script_output_title_msg_roll').html('<span class="false">Already Rolled</span>'); // Status on page
                setTimeout(function(){ location.reload(); }, 30000);
            }
        },rand);
        var rand1=rand+random(900000,1800000);
        rand=random(0,1000);
        if (rand < 500) {
            if (LOGGING > 2) console.log('Reload page after roll in '+rand1/1000/60+' minutes!');
            setTimeout(function(){ location.reload(); }, rand1);
        } else if (rand > 900 && Boolean(MULTIPLY) && h>=8) {
            if (LOGGING > 0) console.log('Will multiply in '+rand1/1000/60+' minutes!');
            setTimeout(function(){ multiply(); }, rand1);
        } else {
            if (LOGGING > 2) console.log('No action after roll. Rand was '+rand);
        }
    } else {
        $('#script_output_title_msg_roll').html('<span class="bold">Waiting Next Roll</span>');
        //$("#script_output_title_msg_mode").text("Normal");
        if (LOGGING > 2) console.log("No roll");
    }
}

function lottery () {
    //Plan buying lottery ticket
    if(Boolean(LOTTERY)){
        var r=random(1,100);
        var d = new Date();
        var h = d.getHours();
        if (r > 90 && h>=7) {
            rand=random(1,LOTTERY_MAX_TICKETS).toFixed(0); //Tickets to buy
            if (LOGGING > 2) console.log("Buy "+ rand + " lottery tickets in some time....");
            if(parseInt($('#balance').text().split(".")[1]) > rand) {
                $('lottery_link hide_menu').click();
                setTimeout(function(){ 
                    $('#lottery_tickets_purchase_count').val(rand);
                    setTimeout(function(){ 
                        $('#purchase_lottery_tickets_button').click();
                        if (LOGGING > 2) console.log("Bought "+ rand + " lottery tickets");
                    }, random(2000,20000));
                }, random(40000,2700000));
            }
        }
    }
}

function missingTime () {
    var min = 0; var sec = 0; var str = "";

    str = $('title').text().split(" ")[0];
    if (LOGGING > 4) console.log("%c[Debug] [missingTime] string: "+str, 'color: grey');
    if (str.length <= 7 && str.length >= 3) {
        min = str.split(':')[0]; if (min.length > 0) min = min.replace('m',''); 
        sec = str.split(':')[1]; if (sec.length > 0) sec = sec.replace('s',''); 
    } else { min = -1; sec = -1; }

    return [min,sec];
}

function random(min,max){
   return min + (max - min) * Math.random();
}

function closePopupInterval (target) {

    if (target.is(':visible')) {
        setTimeout(function(){
            if (LOGGING > 3) console.log("%cClose ADS", 'color: grey');
            target.click();
            ads_closed ++;
            $('#script_output_title_ads_closed_num').text(ads_closed);
        }, random (500,120000));
    } else {
        //if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+" "+target.attr('class'), 'color: grey');
    }
}
function closeRandomPopupInterval (target, randomness) {
    var rand = random(1,100);
    if (rand < randomness && target.is(':visible')) {
        setTimeout(function(){
            if (LOGGING > 3) console.log("%cClose Random ADS", 'color: grey');
            target.click();
            ads_closed ++;
            $('#script_output_title_ads_closed_num').text(ads_closed);
        }, random (500,120000));
    } else {
        //if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+" "+target.attr('class'), 'color: grey');
    }
}
function showStatus(){
    var t=missingTime();
    var date = new Date();

    var [{ value: month },,{ value: day },,{ value: year },,{ value: hour },,{ value: minute }] = dateTimeFormat .formatToParts(date );

    var ca='red'; var cb='red'; var cc='red'; var css='font-weight: bold; color:';
    var c1='purple'; var c2='olive';
    var c3='brown'; var c4='teal';
    if (LOGGING > 0) console.log(">>>>>>>>>>%c Status:%c ["+hour+":"+minute+"]", css_bold+'color:'+c1, css_bold);
    //Rewards and multiply infos and colors
    if (Boolean(REWARDS)) ca = 'green'; if (Boolean(MULTIPLY)) cb='green'; if (Boolean(LOTTERY)) cc='green';
    var cssa='font-weight: bold; color:'+ca;
    var cssb='font-weight: bold; color:'+cb;
    var cssc='font-weight: bold; color:'+cc;
    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);
    if (t[0] > 0 || t[1] > 0) {
        if (LOGGING > 0) console.log(">>>>>>>>>> Missing "+"%c"+t[0]+" min "+t[1]+" sec"+"%c for next roll",css_bold+"color:"+c1,css_reset);
    }
    // Free Roll total Winnings via cookie
    var tot_btc_winning_rolling = getCookie('tot_btc_winning_rolling');
    var tot_lottery_winning_rolling = getCookie('tot_lottery_winning_rolling');
    var tot_rp_winning_rolling = getCookie('tot_rp_winning_rolling');
    if (! (tot_btc_winning_rolling > 0)) tot_btc_winning_rolling = 0;
    if (! (tot_lottery_winning_rolling > 0)) tot_lottery_winning_rolling = 0;
    if (! (tot_rp_winning_rolling > 0)) tot_rp_winning_rolling = 0;

    if (LOGGING > 0) console.log(">>>>>>>>>> BTC won with script: "+"%c"+tot_btc_winning_rolling, css_bold+'color:'+c4);
    if (LOGGING > 0) console.log(">>>>>>>>>> Tickets won with script: "+"%c"+tot_lottery_winning_rolling, css_bold+'color:'+c4);
    if (LOGGING > 0) console.log(">>>>>>>>>> RP won with script: "+"%c"+tot_rp_winning_rolling, css_bold+'color:'+c4);
    if (LOGGING > 0) console.log(">>>>>>>>>> Rolls from last 8888: "+"%c"+totJack, css_bold+'color:'+c2);

    // Update Status Message OnPage
    script_output_msg_2 =  "<span class='bold'>Config: </span>";
    script_output_msg_2 += "<span class='"+Boolean(REWARDS)+"'>REWARDS </span> <> ";
    script_output_msg_2 += "<span class='"+Boolean(MULTIPLY)+"'>MULTIPLY</span> <> ";
    script_output_msg_2 += "<span class='"+Boolean(LOTTERY)+"'>LOTTERY</span> <> ";
    script_output_msg_2 += "<span class='"+Boolean(BONUS1000)+"'>BONUS1000</span>";
    script_output_msg_2 += "</br>";
    script_output_msg_2 += "<span class='bold'> Auto Roll Script Winnings:  </span> ";
    script_output_msg_2 += "<span class='true'>"+tot_btc_winning_rolling+"</span> btc; ";
    script_output_msg_2 += "<span class='true'>"+tot_lottery_winning_rolling+"</span> tickets; ";
    script_output_msg_2 += "<span class='true'>"+tot_rp_winning_rolling+"</span> RP.";
    $('#script_output_msg_2').html(script_output_msg_2);

}

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}
function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}



// Multiply, called after the free roll, sometimes.
function multiply() {
    var balance = parseInt($('#balance').text().split(".")[1]);
    var bonustime_current;
    if ($("#bonus_account_table").length != 0) {
        var bonustime_balance = $('#bonus_account_balance').text().split(" ")[0];
        var bonustime_wager_remaining = $('#bonus_account_wager').text().split(" ")[0];
        bonustime_current = 1;
    } else
        bonustime_current = 0;
    var max_lose = 0; var i=0; var j=0;
    $('.double_your_btc_link').not('.hide_menu').click();
    if ( bonustime_current == 1) {
        // Autobet at "double"
        setTimeout(function(){ $('#auto_bet_on').click(); }, random(2000,2200));
        setTimeout(function(){ $('#autobet_base_bet').val('0.00000001');  }, random(3500,7000));
        //13 rolls loosing in a row, 1 every 4096 games. Every script exec game you win ~500 sat, playing ~500 games.
        setTimeout(function(){ $('#autobet_max_bet').val('0.00004096');  }, random(3500,7000));
        setTimeout(function(){ $('#autobet_roll_count').val(MAX_ROLLS_AT_MULTIPLY);  }, random(3500,7000));
        setTimeout(function(){ $('#autobet_bet_hi').prop('checked', true); $('#autobet_bet_alternate').prop('checked', false);  }, random(3500,7000));
        setTimeout(function(){ $('#show_double_your_btc_auto_bet_on_lose').click();  }, random(7500,9000));
        setTimeout(function(){ $('#autobet_lose_increase_bet').prop('checked', true); $('#autobet_lose_return_to_base').prop('checked', false); }, random(9100,11000));
        setTimeout(function(){ $('#autobet_max_bet_stop').prop('checked', true); $('#autobet_max_bet_reset').prop('checked', false); }, random(9100,11000));
        setTimeout(function(){ $('#autobet_lose_increase_bet_percent').val('100');  }, random(9100,11000));
        setTimeout(function(){ $('#autobet_dnr').prop('checked', true); }, random(11000,12000));
        setTimeout(function(){ $('#start_autobet').click(); }, random(17100,30000));
        if (LOGGING > 2) console.log('bonus balance: '+bonustime_balance+'; wager remaining: '+bonustime_wager_remaining);
    }
    if (LOGGING > 2) console.log('total balance: '+balance);
    setTimeout(function(){ $('.free_play_link').not('.hide_menu').click(); }, random(900000,1200000));
}