Skip to content

Instantly share code, notes, and snippets.

@ruzli
Created February 10, 2021 16:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ruzli/79b2ed85e8598b0d5e75de3978470123 to your computer and use it in GitHub Desktop.
Save ruzli/79b2ed85e8598b0d5e75de3978470123 to your computer and use it in GitHub Desktop.
Hotkeys Implementation for Ether-Dice
var map = {};
chat = document.getElementsByClassName("form-control")[ 0 ];
function getBalance() {
var newBalance = document.querySelector("#top-bar > div > div > div.balance-container.nav-item > span:nth-child(2)").innerText;
var conBalance = String(newBalance.replace(",", "."));
return Number(conBalance);
}
var keypads_mapping = false, adaptive_playing = false, interval = 120;
var profit = 0, lastGame = "";
var lastBalance = getBalance();
console.log(`Your balance ${lastBalance}`);
onkeydown = onkeyup = async (e) => {
e = e || event;
if (document.activeElement === chat) {
return
}
checkLogic();
map[ e.key ] = e.type == 'keydown';
console.log(map[e.key], e.type)
if (map[ "h" ]) { console.log("'h' = Help on usage");
console.clear();
console.log(`h = help on documentation and usage hotkeys.\nSPACEBAR = placing manual bet\ns = skipping the bet\n1 = skipping 5 times\n2 = skipping 10 times\n3 = adaptive script logic\n~ = enable additional keymapping like 1, 2 and 3 keys\nc = decrease bet and payout amount\nv = increase bet and payout amount\nd = decrease bet amount\nf = increase bet amount by double\ne = decrease payout amount\nr = double payout amount\n- = sub payout amount\n+ = add payout amount`)
}
if (map[ "`" ] && e.type == 'keydown') {
keypads_mapping = !keypads_mapping;
console.log(`keypads_mapping: ${keypads_mapping}`);
}
if (map[ " " ] && e.type == 'keydown') { console.log("'SPACEBAR' = Manual Bet");
document.getElementsByClassName("btn btn-bet btn-block btn-lg")[ 0 ].click()
}
if (map[ "s" ] && e.type == 'keydown') { console.log("'s' = Skip");
document.getElementsByClassName("btn btn-betSkip btn-lg")[ 0 ].click()
}
if (keypads_mapping && e.type == 'keydown') {
if (map[ "1" ] && e.type == 'keydown') { console.log("'1' = Skip 5 times");
for (let i = 1; i < 6; i++) {
document.getElementsByClassName("btn btn-betSkip btn-lg")[ 0 ].click()
console.log(`Skip ${i}/5`)
await sleep(interval * 3)
}
}
if (map[ "2" ] && e.type == 'keydown') { console.log("'2' = Skip 10 times");
for (let i = 1; i < 11; i++) {
document.getElementsByClassName("btn btn-betSkip btn-lg")[ 0 ].click()
console.log(`Skip ${i}/10`)
await sleep(interval * 3)
}
}
if (map[ "3" ] && e.type == 'keydown') { console.log("'3' = Adaptive playing");
adaptive_playing = !adaptive_playing
console.log(`adaptive_playing: ${adaptive_playing}`);
}
}
if (map[ "c" ] && e.type == 'keydown') { console.log("'c' = Halve bet & payout");
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = (document.getElementsByClassName("form-control form-control-lg")[ 0 ].value - 2).toFixed(2)
if (document.getElementsByClassName("form-control form-control-lg")[ 0 ].value <= 0) {
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = 0.01;
}
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = ((document.getElementsByClassName("form-control form-control-lg")[ 1 ].value - 2) / 1).toFixed(2);
if (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value <= 1.01) {
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = 1.01;
}
}
if (map[ "v" ] && e.type == 'keydown') { console.log("'v' = Double bet & payout");
var numb = new Number(document.getElementsByClassName("form-control form-control-lg")[ 0 ].value)
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = (numb + 2).toFixed(2);
if (Number(document.getElementsByClassName("form-control form-control-lg")[ 0 ].value) >= balance) {
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = balance;
}
var numb2 = new Number(document.getElementsByClassName("form-control form-control-lg")[ 1 ].value)
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = ((numb2 + 2) / 1).toFixed(2);
if (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value >= 10000000) {
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = 10000000;
}
}
if (map[ "d" ] && e.type == 'keydown') { console.log("'d' = Halve bet");
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = (document.getElementsByClassName("form-control form-control-lg")[ 0 ].value / 2).toFixed(2)
}
if (map[ "f" ] && e.type == 'keydown') { console.log("'f' = Double bet");
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = (document.getElementsByClassName("form-control form-control-lg")[ 0 ].value * 2).toFixed(2);
if (Number(document.getElementsByClassName("form-control form-control-lg")[ 0 ].value) >= getBalance()) {
document.getElementsByClassName("form-control form-control-lg")[ 0 ].value = getBalance();
}
}
if (map[ "e" ] && e.type == 'keydown') { console.log("'e' = Decrease payout");
(document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value / 2).toFixed(2) / 1);
if (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value <= 1.01) {
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = 1.01;
}
}
if (map[ "r" ] && e.type == 'keydown') { console.log("'r' = Increase payout");
(document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value * 2).toFixed(2) / 1);
if (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value >= 10000000) {
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = 10000000;
}
}
if (map[ "-" ] && e.type == 'keydown') { console.log("'-' = Sub payout");
(document.getElementsByClassName("form-control form-control-lg")[ 1 ].value -= 1)
if (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value <= 1.01) {
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = 1.01;
}
}
if (map[ "=" ] && e.type == 'keydown') { console.log("'=' = Add payout");
payoutAdd(1);
}
var wager = document.getElementsByClassName("form-control form-control-lg")[ 0 ].value;
var target = document.getElementsByClassName("form-control form-control-lg")[ 1 ].value;
document.getElementsByClassName("form-control form-control-lg")[ 2 ].value = (wager * target - wager).toFixed(2);
checkLogic()
await sleep(interval)
}
function payoutAdd(amount){
var numbA = new Number(document.getElementsByClassName("form-control form-control-lg")[ 1 ].value);
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = ((numbA + Number(amount)) / 1).toFixed(2);
if (document.getElementsByClassName("form-control form-control-lg")[ 1 ].value >= 10000000) {
document.getElementsByClassName("form-control form-control-lg")[ 1 ].value = 10000000;
}
}
function checkLogic() {
if (getBalance() == lastBalance) {
//console.log(getBalance(), lastBalance)
return;
}
if (getBalance() > lastBalance){
lastGame = "WON";
profit += (getBalance() - lastBalance);
} else if (getBalance() < lastBalance) {
lastGame = "LOST";
profit -= -(getBalance() - lastBalance);
if (adaptive_playing) payoutAdd(1);
}
console.log(`Last game was ${lastGame} | Profit: ${profit.toFixed(2)} ethos`);
lastBalance = getBalance();
}
async function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)) }
async function sound_loop(sound_number, name) {
let sound_track = [ `cl_hihat`, `claves`, `conga1`, `cowbell`, `hi_conga`, `hightom`, `rimshot`, `snare`, `tom1`, `sc` ]
let url = `https://raw.githubusercontent.com/ruzli/misc/master/`
let format = `.wav`
let full_string = url + name + format
if (name != undefined) {
full_string = url + name + format
} else if (sound_number != undefined) {
full_string = url + sound_track[ sound_number ] + format
}
const audio = new Audio(full_string)
await audio.play();
return new Promise(resolve => audio.onended = resolve)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment