Last active
June 24, 2017 03:29
-
-
Save larvata/6071800 to your computer and use it in GitHub Desktop.
auto script for just-dice with new feature
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name JUST-DICE | |
// @namespace http://use.i.E.your.homepage/ | |
// @version 0.1 | |
// @description enter something useful | |
// @match https://just-dice.com/* | |
// @copyright 2012+, You | |
// ==/UserScript== | |
///////// CONST ///////// | |
//var betRate=0.25; | |
var maxRiskTimes=7; | |
var riskTimes=18; | |
var resetTimes=3; | |
/////// DO NOT EDIT BELOW /////// | |
var lossesContinuesTimes,winContinuesTimes; | |
var currentBet; | |
var startBalance; | |
var lastBalance; | |
var currentBalance; | |
var rollTimer,initTimer; | |
var startBtn,stopBtn,txtThresholdBalance,minBtn,maxBtn,spanCurrentBet; | |
// 0:game started, 2:clicked, 1:rolled, 2:result | |
var currentStep; | |
var justDiceMinBet=0.00000001; | |
///////// functions //////// | |
function hasClass(element, cls) { | |
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; | |
} | |
function isNumber(n) { | |
return !isNaN(parseFloat(n)) && isFinite(n); | |
} | |
function minMyBet(){ | |
console.log("minMyBet: "+prettyFloat(justDiceMinBet)); | |
txtThresholdBalance.value=prettyFloat(calcBalance(justDiceMinBet,riskTimes)); | |
showBetValue(); | |
} | |
function maxMyBet(){ | |
console.log("maxMyBet: "+prettyFloat(currentBalance)) | |
txtThresholdBalance.value=prettyFloat(currentBalance); | |
showBetValue(); | |
} | |
function showBetValue(){ | |
var thbl=txtThresholdBalance.value; | |
if (isNumber(thbl)) { | |
currentBet=calcBet(thbl,riskTimes); | |
if (currentBet<justDiceMinBet) { | |
startBtn.disabled=true; | |
spanCurrentBet.innerText=" thresholdBalance MUST >= "+prettyFloat(justDiceMinBet); | |
} | |
else{ | |
startBtn.disabled=false; | |
spanCurrentBet.innerText=prettyFloat(currentBet); | |
} | |
} | |
else{ | |
currentBet=0; | |
spanCurrentBet.innerText=thbl + ' is not a VAILD value.'; | |
} | |
} | |
function calcBet(balance,riskTimes){ | |
var riskCount=1; | |
for (var i = 1; i <= riskTimes; i++) { | |
riskCount+=Math.pow(2,i); | |
}; | |
console.log(balance/riskCount); | |
return balance/riskCount; | |
} | |
function calcBalance(bet,riskTimes){ | |
var riskCount=1; | |
for (var i = 1; i <= riskTimes; i++) { | |
riskCount+=Math.pow(2,i); | |
}; | |
console.log(bet/riskCount); | |
return bet*riskCount; | |
} | |
function prettyFloat(value){ | |
var dashPos=value.toString().indexOf('-'); | |
if (value<1&&dashPos!=-1) { | |
var fixedLength=parseInt(value.toString().substr(dashPos+1)); | |
if (fixedLength>8) {fixedLength=8}; | |
return value.toFixed(fixedLength); | |
} | |
else{ | |
return value; | |
} | |
} | |
function balanceProtect(){ | |
if (lossesContinuesTimes>(maxRiskTimes-1)) { | |
stopGame(); | |
} | |
} | |
function roll(){ | |
// GAME STARTED | |
if (currentStep==0) { | |
// if((startBalance-currentBalance)>threshold){ | |
// stopGame(); | |
// } | |
document.getElementById('pct_bet').value=prettyFloat(currentBet); | |
currentStep=1; | |
document.getElementById('a_hi').click(); | |
} | |
// CLICKED | |
if (currentStep==1) { | |
if(hasClass(document.getElementById('a_hi'),'waiting')){ | |
currentStep=2; | |
} | |
} | |
// ROLLED | |
if (currentStep==2) { | |
if(!hasClass(document.getElementById('a_hi'),'waiting')){ | |
currentStep=3; | |
} | |
} | |
// RESULT | |
if (currentStep==3) { | |
currentBalance=document.getElementById('pct_balance').value; | |
if (currentBalance>lastBalance) { | |
winContinuesTimes+=1; | |
lossesContinuesTimes=0; | |
currentBet=calcBet(currentBalance,riskTimes); | |
resultLog('win'); | |
} | |
else if (currentBalance<lastBalance) { | |
lossesContinuesTimes+=1; | |
winContinuesTimes=0; | |
if (lossesContinuesTimes==resetTimes) { | |
currentBet=calcBet(currentBalance,riskTimes); | |
console.log("resetbet. currentBet: "+ currentBet); | |
} | |
else{ | |
currentBet*=2; | |
} | |
resultLog('losses'); | |
} | |
else{ | |
return; | |
} | |
balanceProtect(); | |
lastBalance=currentBalance; | |
currentStep=0; | |
} | |
} | |
function startGame(){ | |
console.log("Game Started.") | |
stopBtn.disabled=false; | |
rollTimer=window.setInterval(roll,200); | |
} | |
function stopGame(){ | |
console.log("maxRiskTimes stop game."); | |
window.clearInterval(rollTimer); | |
stopBtn.style.display='none'; | |
startBtn.style.display='none'; | |
} | |
function resultLog(resultStr){ | |
console.log(resultStr+'. CurrentBet: '+ prettyFloat(currentBet)); | |
} | |
function init(){ | |
// Test is just-dice fully loaded | |
if (isNumber(document.getElementById('pct_balance').value)){ | |
window.clearInterval(initTimer); | |
console.log('fully loaded'+document.getElementById('pct_balance').value); | |
} | |
else{ | |
console.log('not fully loaded return'); | |
return; | |
} | |
// Init Variables | |
startBalance=document.getElementById('pct_balance').value; | |
currentBalance=document.getElementById('pct_balance').value; | |
lastBalance=document.getElementById('pct_balance').value; | |
currentStep=0; | |
// Start BUTTON | |
startBtn=document.createElement('BUTTON'); | |
var textStartBtn=document.createTextNode('Start!'); | |
startBtn.disabled=true; | |
startBtn.appendChild(textStartBtn); | |
document.getElementById('msg').parentNode.appendChild(startBtn); | |
startBtn.addEventListener('click',startGame,false); | |
// Stop BUTTON | |
stopBtn=document.createElement('BUTTON'); | |
var textStopBtn=document.createTextNode('Stop...'); | |
stopBtn.disabled=true; | |
stopBtn.appendChild(textStopBtn); | |
document.getElementById('msg').parentNode.appendChild(stopBtn); | |
stopBtn.addEventListener('click',stopGame,false); | |
// Threshold INPUT BOX | |
txtThresholdBalance=document.createElement('INPUT'); | |
txtThresholdBalance.type='text'; | |
txtThresholdBalance.width='50px'; | |
txtThresholdBalance.onkeypress=showBetValue; | |
document.getElementById('msg').parentNode.appendChild(txtThresholdBalance); | |
// Min BUTTON | |
minBtn=document.createElement('BUTTON'); | |
var textMinBtn=document.createTextNode('Min'); | |
minBtn.appendChild(textMinBtn); | |
document.getElementById('msg').parentNode.appendChild(minBtn); | |
minBtn.addEventListener('click',minMyBet,false); | |
// Max BUTTON | |
maxBtn=document.createElement('BUTTON'); | |
var textMaxBtn=document.createTextNode('Max'); | |
maxBtn.appendChild(textMaxBtn); | |
document.getElementById('msg').parentNode.appendChild(maxBtn); | |
maxBtn.addEventListener('click',maxMyBet,false); | |
// CurrentBet SPAN | |
spanCurrentBet=document.createElement('SPAN'); | |
spanCurrentBet.text="abc"; | |
document.getElementById('msg').parentNode.appendChild(spanCurrentBet); | |
// Reset ContinuesTimes | |
lossesContinuesTimes=0; | |
winContinuesTimes=0; | |
// Default set min bet | |
minBtn.click(); | |
} | |
//////////////// start from here /////////////////// | |
initTimer=window.setInterval(init,100); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment