// ==UserScript==
// @name Freebitco.in Multiply High Profit Script 2020
// @version 1.0
// @description Play Hi-Lo Game with big winnings
// @description Please sign up using my ref link: https://freebitco.in/?r=37205548
// @description Would be happy about a donation if you don’t sign up using my link > BTC 1aq7SCxnamEjjxZpkSYbdRWMAZjZJRuPf
// @author Kelinu Zoqba
// @match https://freebitco.in/?op=home
// @match https://freebitco.in/?op=home#
// @match https://freebitco.in/
// @match https://freebitco.in/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @namespace https://greasyfork.org/users/526367
// ==/UserScript==
var gameLost=0, cLost=0, gameWin=0, cWin=0, maxBet=0;
var startValue = “0.00000100”, //????
stopPercentage = 5, maxWait = 4000, stopped = false,
stopBefore = 1;
var start_multiplier = ‘1.2’; //??
var repeatCurrent;
var a = $(“#balance”).text(),
UX = ((Number(a)-0.00025000) / 160 ).toFixed(4),
b = $(“#double_your_btc_stake”).val(),
UX2 = (Number(b*5)).toFixed(4);
UX3 = (Number(b*2)).toFixed(4);
var $loButton = $(“#double_your_btc_bet_lo_button”), $hiButton = $(“#double_your_btc_bet_hi_button”);
var $multiplier = $(‘#double_your_btc_payout_multiplier’);
var startbalance=0;
function multiply() {
repeatCurrent++; //
var n = 1;
var balance = parseFloat( $(“#balance”).text() ) || 0;
if( balance ){
if( balance <= 100.1 ){
n = 1;
}
}
//———- ??1?? ————
if( repeatCurrent == 1 ){
$(“#double_your_btc_stake”).val(‘0.00000600’);
$multiplier.val(‘1.2’);
return $hiButton;
}
// ——- ??1 ?? ———
reset();
return $loButton;
}
function getRandomWait() {
var wait = Math.floor(Math.random() * maxWait) +200; // ????
console.log(“Waiting for ” + wait + “ms before next bet.”);
a = $(“#balance”).text(),
UX = ((Number(a)-0.00025000) / 160 ).toFixed(4),
b = $(“#double_your_btc_stake”).val(),
UX2 = (Number(b*5)).toFixed(4);
UX3 = (Number(b*2)).toFixed(4);
return wait;
}
function startGame() {
startbalance = $(“#balance”).text();
console.log(“Game started!”);
reset();
$loButton.trigger(“click”);
}
function stopGame() {
console.log(“Game will stop soon! Let me finish.”);
stopped = true;
}
function reset(multiplier) {
repeatCurrent = 0;
$multiplier.val( start_multiplier );
$(“#double_your_btc_stake”).val(startValue);
}
function deexponentize(number) {
return number * 1e7;
}
function iHaveEnoughMoni() {
var balance = deexponentize(parseFloat($(“#balance”).text()));
var current = deexponentize($(“#double_your_btc_stake”).val());
return balance * 2 / 100 * current * 2 > stopPercentage / 100;
}
function stopBeforeRedirect() {
var minutes = parseInt($(“title”).text());
if (minutes < stopBefore) {
console.log(“Approaching redirect! Stop the game so we don’t get redirected while loosing.”);
stopGame();
return true;
}
return false;
}
$(“#double_your_btc_bet_lose”).unbind();
$(“#double_your_btc_bet_win”).unbind();
var balance_prev = parseFloat( $(“#balance”).text() ) || 0;
$(“#double_your_btc_bet_lose”).bind(“DOMSubtreeModified”, function(event) {
if ($(event.currentTarget).is(‘:contains(“lose”)’)) {
if($(“#double_your_btc_stake”).val() > maxBet){ maxBet = $(“#double_your_btc_stake”).val();}
gameLost = gameLost + 1;
cLost = cLost + 1;
cWin = 0;
console.clear();
console.log(‘%c???: ‘ + gameWin + ‘ ???: ‘ + gameLost, ‘color: #FF0000’);
console.log(‘%c??: ‘ + cWin + ‘ ??: ‘ + cLost, ‘color: #FF0000’);
console.log(‘%c??: ‘ +(Number($(“#balance”).text()) – Number(startbalance)).toFixed(8) , ‘color: #FF0000’);
console.log(‘%c????: ‘ + maxBet, ‘color: #FF0000’);
console.log(‘?????151??’);
console.log(‘??(?)100????’);
console.log(‘??(?)10????’);
var btn = multiply();
// ?
var balance_current = parseFloat( $(“#balance”).text() );
if( balance_prev ){
// ?????100??,?????
if( balance_prev – balance_current >= 0.01){
setTimeout(function() {
balance_prev = balance_current;
//btn.trigger(“click”);
startGame();
}, 1000 * 60 * 1440 ); // 1000??1?*60?*1?=????
}else{
setTimeout(function() {
btn.trigger(“click”);
}, getRandomWait());
}
}else{
balance_prev = balance_current;
setTimeout(function() {
btn.trigger(“click”);
}, getRandomWait());
}
// ????? end
}
});
$(“#double_your_btc_bet_win”).bind(“DOMSubtreeModified”, function(event) {
if ($(event.currentTarget).is(‘:contains(“win”)’)) {
if($(“#double_your_btc_stake”).val() > maxBet){ maxBet = $(“#double_your_btc_stake”).val();}
gameWin = gameWin + 1;
cWin = cWin + 1;
cLost = 0;
console.clear();
console.log(‘%c???: ‘ + gameWin + ‘ ???: ‘ + gameLost, ‘color: #00CC00’);
console.log(‘%c??: ‘ + cWin + ‘ ??: ‘ + cLost, ‘color: #00CC00’);
console.log(‘%c??: ‘ +(Number($(“#balance”).text()) – Number(startbalance)).toFixed(8) , ‘color: #FF0000’);
console.log(‘%c????: ‘ + maxBet, ‘color: #00CC00’);
console.log(‘?????151??’);
console.log(‘??(?)100????’);
console.log(‘??(?)10????’);
if (stopBeforeRedirect()) {
return;
}
if (iHaveEnoughMoni()) {
console.log(“You WON! But don’t be greedy. Restarting!”);
reset();
if (stopped) {
stopped = false;
return false;
}
} else {
console.log(“You WON! Betting again”);
}
// ?
var balance_current = parseFloat( $(“#balance”).text() );
if( balance_prev ){
// ?????10???,??????
if( balance_current – balance_prev >= 0.0010 ){
setTimeout(function() {
balance_prev = balance_current;
//$hiButton.trigger(“click”);
startGame();
}, 1000 * 60 * 1440 ); // 1000??1?*60?*60?=????
}else{
setTimeout(function() {
$hiButton.trigger(“click”);
}, getRandomWait());
}
}else{
balance_prev = balance_current;
setTimeout(function() {
$hiButton.trigger(“click”);
}, getRandomWait());
}
// ????? end
}
});
//———————————————————————— Сonfiguration Values ————————————————————————
const odds = [1.2, 1.5, 2, 4, 5, 8, 10, 12, 16, 24, 32, 48, 94, 452, 4750];
let oddVals = [];
let oddStat = [];
let isBetButtonClicked = false;
let rollsCount = 0;
let tableRowId = 0;
let starterBalance = 0;
let statTableExists = false;
//———————————————————————— Сonfiguration Values ————————————————————————
//———————————————————————— Additional Functions ————————————————————————
function id(id) {
return document.getElementById(id);
}
function createVariableForOdd(odd) {
let hiNum = parseInt(Math.round(10000 – (9500 / parseFloat(odd).toFixed(2))));
let loNum = parseInt(Math.round((9500 / parseFloat(odd).toFixed(2))));
oddVals[odd] = {
hiNum: hiNum,
loNum: loNum
};
oddStat[odd] = {
hiLose: 0,
hiMaxSeqLose: 0,
hiWinCount: 0,
loLose: 0,
loMaxSeqLose: 0,
loWinCount: 0
};
}
function isBetButtonDisabled(mod) {
return id(‘double_your_btc_bet_’ + mod + ‘_button’).getAttribute(‘disabled’);
}
function generateRandomString(comb, minLength, maxLength) {
let randomString = ”;
let characters = ”;
let numbers = ‘0123456789’;
let upperCaseLetters = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
let lowerCaseLetters = ‘abcdefghijklmnopqrstuvwxyz’;
let length = Math.floor(Math.random() * (maxLength – minLength + 1)) + minLength;
if (comb == ‘random’) comb = Math.floor(Math.random() * 7);
switch (comb) {
case 1:
characters = numbers;
break;
case 2:
characters = upperCaseLetters;
break;
case 3:
characters = lowerCaseLetters;
break;
case 4:
characters = numbers + upperCaseLetters;
break;
case 5:
characters = numbers + lowerCaseLetters;
break;
case 6:
characters = upperCaseLetters + lowerCaseLetters;
break;
default:
characters = numbers + upperCaseLetters + lowerCaseLetters;
}
for (let i = 0; i < length; i++) {
randomString += characters.charAt(Math.floor(Math.random() * characters.length));
}
return randomString;
}
//———————————————————————— Additional Functions ————————————————————————
//—————————————————————————— Main Code —————————————————————————–
let rollStat = {
update: function() {
let currentBalance = (Number(parseFloat(id(‘balance’).textContent)) + Number(parseFloat(id(‘bonus_account_balance’).textContent))).toFixed(8);
let profit = (currentBalance – starterBalance).toFixed(8);
rollsCount += 1;
odds.forEach(this.setVals);
if (statTableExists === false) this.setTable(currentBalance);
id(‘stat-rolls-count’).innerHTML = ‘<span style=”color:#039″>Rolls played : </span>’ + rollsCount;
id(‘stat-starter-balance’).innerHTML = ‘<span style=”color:#039″>Starter balance : </span>’ + starterBalance;
id(‘stat-current-balance’).innerHTML = ‘<span style=”color:#039″>Current balance : </span>’ + currentBalance;
id(‘stat-profit1’).innerHTML = ‘<span style=”color:#039″>Profit : </span>’ + profit;
odds.forEach(function(odd) {
tableRowId += 1;
id(‘stat-table-td-hilose’ + tableRowId).textContent = oddStat[odd].hiLose;
id(‘stat-table-td-himaxseqlose’ + tableRowId).textContent = oddStat[odd].hiMaxSeqLose;
id(‘stat-table-td-hiwincount’ + tableRowId).textContent = oddStat[odd].hiWinCount;
id(‘stat-table-td-lolose’ + tableRowId).textContent = oddStat[odd].loLose;
id(‘stat-table-td-lomaxseqlose’ + tableRowId).textContent = oddStat[odd].loMaxSeqLose;
id(‘stat-table-td-lowincount’ + tableRowId).textContent = oddStat[odd].loWinCount;
});
tableRowId = 0;
},
setVals: function(odd) {
let prevRollNum = parseInt(id(‘previous_roll’).textContent);
if (prevRollNum > oddVals[odd].hiNum) {
oddStat[odd].hiWinCount += 1;
oddStat[odd].hiLose = 0;
} else {
oddStat[odd].hiLose += 1;
if (oddStat[odd].hiLose > oddStat[odd].hiMaxSeqLose) oddStat[odd].hiMaxSeqLose += 1;
}
if (prevRollNum < oddVals[odd].loNum) {
oddStat[odd].loWinCount += 1;
oddStat[odd].loLose = 0;
} else {
oddStat[odd].loLose += 1;
if (oddStat[odd].loLose > oddStat[odd].loMaxSeqLose) oddStat[odd].loMaxSeqLose += 1;
}
},
setTable: function(currentBalance) {
let hStyle = [];
hStyle = document.getElementsByTagName(‘head’);
hStyle[0].insertAdjacentHTML(‘beforeend’,
‘ <style>#stat-table1{font-family:”Lucida Sans Unicode”,”Lucida Grande”,Sans-Serif;font-size:16px;background:none;width:868px;margin-left:auto; margin-right:auto;margin-bottom:50px;border-collapse: collapse;border:none}#stat-table1 th{font-weight:400;color:#039;text-align:center;border-bottom:2px solid #6678b1;padding:6px 8px}#stat-table1 td{border-bottom:1px solid #8c98bf;color:#669;text-align:center;padding:7px 8px}#stat-table1 tr:hover td{background:#a8c7e0}.tborder-r{border-right:2px solid #6678b1}.tborder-r1{border-right:1px solid #8c98bf}#stat-table1 .tfont-c1{color:#09f}#stat-table1 .tfont-c2{color:#000}#stat-table1 .tfont-c3{color:#c00}#stat-table1 .tfont-c4{color:#37a661}.odd11{font-weight:bold}</style> ‘);
id(‘double_your_btc_main_container_outer’).insertAdjacentHTML(‘afterend’, ‘<table style = “border:none;background:none; width:868px; text-align:center; font-weight:bold;margin-bottom:0px;font-size:14px;color:#333″><tr style=”padding:0px;height:36px;line-height:36px”><td id=”stat-rolls-count”><span style=”color:#039″>Rolls played : </span>’ + rollsCount + ‘</td><td id=”stat-starter-balance”><span style=”color:#039″>Starter balance : </span>’ + starterBalance + ‘</td><td id=”stat-current-balance”><span style=”color:#039″>Current balance : </span>’ + currentBalance + ‘</td><td id=”stat-profit1″><span style=”color:#039″>Profit : </span>’ + (currentBalance – starterBalance).toFixed(8) + ‘</td></tr></table> <table id = “stat-table1″><tr><th class=”tborder-r”>Odd</th><th>Target (HI)</th><th> Lose </th><th>Max Lose</th><th class=”tborder-r1″>Win Count</th><th>Target (LO)</th><th> Lose </th><th>Max Lose</th><th>Win Count</th></tr></table>’);
odds.forEach(function(odd) {
tableRowId += 1;
id(‘stat-table1’).insertAdjacentHTML(‘beforeend’, ‘<tr><td class=”tborder-r odd11″>’ + odd + ‘</td><td class=”tfont-c1″>’ + oddVals[odd].hiNum + ‘</td><td id=”stat-table-td-hilose’ + tableRowId + ‘” class=”tfont-c2″>0</td><td id=”stat-table-td-himaxseqlose’ + tableRowId + ‘” class=”tfont-c3″>0</td><td id=”stat-table-td-hiwincount’ + tableRowId + ‘” class=”tborder-r1 tfont-c4″>0</td><td class=”tfont-c1″>’ + oddVals[odd].loNum + ‘</td><td id=”stat-table-td-lolose’ + tableRowId + ‘” class=”tfont-c2″>0</td><td id=”stat-table-td-lomaxseqlose’ + tableRowId + ‘” class=”tfont-c3″>0</td><td id=”stat-table-td-lowincount’ + tableRowId + ‘” class=”tfont-c4″>0</td></tr>’);
});
tableRowId = 0;
statTableExists = true;
}
};
function init(mod) {
if (isBetButtonDisabled(mod) == ‘disabled’) {
isBetButtonClicked = true;
return
} else {
if (isBetButtonClicked === true) {
id(‘next_client_seed’).value = generateRandomString(‘random’, 3, 20);
rollStat.update();
isBetButtonClicked = false;
} else {
return
}
}
}
id(‘double_your_btc_bet_hi_button’).addEventListener(“DOMSubtreeModified”, function() {
init(‘hi’);
});
id(‘double_your_btc_bet_lo_button’).addEventListener(“DOMSubtreeModified”, function() {
init(‘lo’);
});
starterBalance = (Number(parseFloat(id(‘balance’).textContent)) + Number(parseFloat(id(‘bonus_account_balance’).textContent))).toFixed(8);
odds.forEach(createVariableForOdd);
rollStat.setTable(starterBalance);
//—————————————————————————— Main Code —————————————————————————–
startGame();