Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

// ==UserScript==

// @name Hi-Lo Multiply Strategy - Martingale based/Customisable/Low-


High profit-risk settings/
// @version 1.2
// @description Play Hi-Lo with fixed target profit - Easily customisable
strategies - Low/High/Super-High profit/risk presets included
// @description Toggle strategy by selecting stake values below, default
target is 0.00000048 first 4 rolls, 42 streak lose
// @description Can lose up to 40-50 times (depending on bet strat)
consecutively in one game before losing - Probability of loss per game (0.81^40 =
0.013% to 0.81^50 = 0.0026%)
// @description Please sign up using my ref link if not already:
https://freebitco.in/?r=529225
// @description I'm a poor student so a donation is greatly appreciated when
you make money with the script! -> BTC 18hYAkW64ndoPUWFXVv9MoRK5A414xwCPe
// @author rorg314
// @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/583382
// ==/UserScript==

//Variables
var start_multiplier = '3';
var repeatCurrent = 0;
var stopped = false;
var startbalance=0;
var maxWait = 99;
var stopBefore = 1;
var startValue = 0.00000001;
var succg = 0;
var failg = 0;
var rollsmax = 0;

//Button triggers
var $loButton = $("#double_your_btc_bet_lo_button"), $hiButton = $
("#double_your_btc_bet_hi_button");
var $multiplier = $('#double_your_btc_payout_multiplier');

//----------//----------//----------//----------// STAKE
VALUES //----------//----------//----------//----------//
//Several presets given below, see also the stratergy calculator linked in
description //
//WARNING NON EXPONENTIAL NUMBERS - MUST BE CONVERTED TO BTC (1 = 0.00000001 btc)

var number = [1,2,2,3,5,6,8,11,17,26]; var npnumber=7; // DEFAULT MED// -


0.00000020 profit on first 7 rolls / 44 roll lose
//var number = [2,2,3,3,4,4,5,6,8,10,12,15,19,24,30,37]; var npnumber=7; //DEFAULT
LOW//Profit 0.00000005 on first 7 rolls / 50 roll lose

//Some other strats


//var number =
[10,10,10,10,11,13,17,21,26,33,2,2,3,3,4,4,5,6,8,10,12,15,19,24,30,37]; var
npnumber=2; //Profit 0.00000040 first 2 roll / 44 roll lose
//var number =
[22,28,28,28,28,34,43,53,67,83,104,2,2,3,3,4,4,5,6,8,10,12,15,19,24,30,37]; var
npnumber=3; // 0.000000088 profit first 3 rolls / 40 lose streak // HIGHER RISK
//var number = [5,7,8,8,8,10,12,15,19,24,30,37,46]; var npnumber=4; // Profit
0.00000020 first 4 / 48 lose streak

//Super high profit strats - USE AT YOUR OWN RISK


//var number =
[130,162,203,203,203,226,282,353,441,551,689,861,1077,1346,1682,2103,2629,3286,4107
,5134,6418,8022,10028,12535,15668,19585,24482,30602,38253,47816,59770,74712,93390,1
16738]; var npnumber = 4; ~0.00000500 profit first 4; 34 streak lose (~0.1% chance
of lose per game) - Profit incredibly fast 0.001 btc in ~100 games, but probability
of loss high! I have won 0.02 in one streak and then promptly lost 0.01 it with two
34+ roll streaks in quick sucsession so it's not foolproof
//var number =
[56,70,88,110,137,137,150,188,235,293,367,458,573,716,895,1119,1399,1748,2185,2732,
3415,4268,5335,6669,8336,10420,13025,16282,20352,25440,31800,39750,49688,62110,7763
7,97046,121308]; var npnumber = 6; 0.00000250 first 6, 37 lose streak //both of
these high risk so use at your own risk!! Profit extremely fast and setup to lose
after 0.005 btc spend
//var number =
[31,38,48,60,60,60,75,94,117,146,183,229,286,357,447,558,698,872,1090,1363,1704,213
0,2662,3328,4160,5200,6500,8125,10156,12695,15869,19836,24795,30994,38742,48428,605
35,75668,94585,118232]; var npnumber = 5; //Profit 0.000001000 first 5, 40 streak
lose

var stake = 0.00000001;


var maxTries = number.length;
//

//----------//----------//----------//----------//
FUNCTIONS //----------//----------//----------//----------//

//Multiply function ---------------------

function multiply() {
//Stake index
repeatCurrent++;
if (repeatCurrent > rollsmax){rollsmax = repeatCurrent} //Count highest
number of rolls played so far
if (repeatCurrent > maxTries){reset(); return $lobutton;} //reset if reach
end of stakes with no win - LOSE MONEY
//Set stake value based on repeat number (convert # to btc 1 = 0.00000001
btc)
stake = (number[repeatCurrent-1])*0.00000001;
$("#double_your_btc_stake").val(stake.toFixed(8));
$multiplier.val('3');
return $hiButton;
} //multiply end -----------------------

//Get random wait


function getRandomWait() {
var wait = Math.floor(Math.random() * maxWait) +200; return wait;
}

//Start, Stop and Reset functions


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;
}

//Stop before freeroll timer end


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;
}

//Generate random string for client seed


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;

//Get html element id


function id(id) {
return document.getElementById(id);
}

//Check if bet button clicked


function isBetButtonDisabled(mod) {
return id('double_your_btc_bet_' + mod + '_button').getAttribute('disabled');
}

//----------//----------//----------//----------// BET TRIGGERING


SYSTEM //----------//----------//----------//----------//
//Buttons
$("#double_your_btc_bet_lose").unbind();
$("#double_your_btc_bet_win").unbind();
//Store previous balance
var balance_prev = parseFloat( $("#balance").text() ) || 0;

//Checking if win/lost
$("#double_your_btc_bet_lose").bind("DOMSubtreeModified", function(event) {
if ($(event.currentTarget).is(':contains("lose")')) {
//Previous bet was lost
//Call multiply fn using variable, after random wait
var btn = multiply();
setTimeout(function() {btn.trigger("click");}, getRandomWait());
}
});

$("#double_your_btc_bet_win").bind("DOMSubtreeModified", function(event) {
if ($(event.currentTarget).is(':contains("win")')) {
//Previous bet was won
//Stop if near reload
if (stopBeforeRedirect()) {
return;
}
//Count games won max profit
if (repeatCurrent > npnumber){failg++;}
else{succg++;}
//Reload page if rolled close to max
if(rollsmax > (maxTries-2)){window.location.reload(); reset();
startGame(); };

//Reset and start game again


reset(); var btn = multiply();
setTimeout(function() {btn.trigger("click");}, getRandomWait());
}
});

//-----------------//----------------//-----------------// STAT
UPDATE //----------------//-----------------//----------------//
//Stat config values//
let isBetButtonClicked = false;
let rollsCount = 0;
let starterBalance = 0;
let statTableExists = false;

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;

//Stat values
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;
id('stat-profit2').innerHTML = '<span style="color:#039"># Max :
</span>' + succg; //number of games with high profit
id('stat-profit3').innerHTML = '<span style="color:#039"># Min :
</span>' + failg; //number with min profit
id('stat-rollsmax').innerHTML = '<span style="color:#039">Highest roll
#: </span>' + rollsmax + '/' + maxTries; //Most rolls played in one game
},

setTable: function(currentBalance){

let hStyle = [];


hStyle = document.getElementsByTagName('head');
//Display values under multiply game

id('double_your_btc_main_container_outer').insertAdjacentHTML('afterend',
'<table style = "border:none;background:none; width:968px; 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-profit2"><span style="color:#039"># won max : </span>' + succg + '</td><td
id="stat-profit3"><span style="color:#039"># won min : </span>' + failg + '</td><td
id="stat-rollsmax"><span style="color:#039">Most lost : </span>' + rollsmax +'/'+
maxTries + '</td><td id="stat-profit1"><span style="color:#039">Profit : </span>' +
(currentBalance - starterBalance).toFixed(8) );
statTableExists = true;
}
};

//Check button clicked and change seed - update rollstats


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);

rollStat.setTable(starterBalance);

//----------------//----------------//
START //--------------//----------------//---------------//----------------//------
------------------------------------------

startGame();

You might also like