Created
February 10, 2021 16:38
-
-
Save ruzli/79b2ed85e8598b0d5e75de3978470123 to your computer and use it in GitHub Desktop.
Hotkeys Implementation for Ether-Dice
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
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