您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Keyboard controls for Bilge Dice, including streak tracking.
当前为
// ==UserScript== // @name [GC | BETA] - Bilge Dice Streak Tracking & Keyboard Controls // @namespace https://greasyfork.org/en/users/1225524-kaitlin // @match https://www.grundos.cafe/games/bilgedice/* // @license MIT // @version 2.1 // @grant GM_getValue // @grant GM_setValue // @author Cupkait // @description Keyboard controls for Bilge Dice, including streak tracking. // ==/UserScript== const getStreakCount = () => GM_getValue("StreakCount", 0); const setStreakCount = count => GM_setValue("StreakCount", count); const updateStreakCount = () => getStreakCount(); const displayStreakCount = () => { const streakCountElement = document.createElement("div"); streakCountElement.style.paddingBottom = "5px"; streakCountElement.style.fontSize = "14px"; const gameWindow = document.getElementById("page_content"); streakCountElement.id = "streak-count-display"; streakCountElement.textContent = `Streak Count: ${updateStreakCount()}`; gameWindow.insertAdjacentElement('afterbegin', streakCountElement); }; const activeGame = document.querySelector("#bilge-dice-user-wrapper"); const gameStart = document.querySelector("form.mt-1"); function indexElements(elements, type) { if (elements) { const maxCount = Math.min(elements.length, 6); elements.forEach((element, index) => { const key = (index + 1).toString(); const label = document.createElement('label'); label.textContent = key; label.style.fontWeight = 'bold'; label.style.fontSize = '10px'; label.style.color = 'black'; label.style.background = 'EEEEEE'; label.style.marginRight = '1px'; element.parentNode.insertBefore(label, element); }); } } const notQualifiedElement = document.querySelector("#bilge-dice-score-inner > div:nth-child(1) > div > p"); const roundStatusElement = document.querySelector("#bilge-dice-inner > div.bilge-dice-wrapper-5 > div:nth-child(1) > div"); if (roundStatusElement) { const roundStatus = roundStatusElement.innerText.toLowerCase(); if (roundStatus.startsWith("you won")) { setStreakCount(getStreakCount() + 1); } else if (roundStatus.includes("you tied") || roundStatus.includes("oh no") || roundStatus.includes("you lose")) { setStreakCount(0); } displayStreakCount(); } else if (notQualifiedElement) { const notQualified = notQualifiedElement.innerText.toLowerCase(); if (notQualified.includes("you lose")) { setStreakCount(0);} } else { displayStreakCount(); } if (notQualifiedElement) { const notQualified = notQualifiedElement.innerText.toLowerCase(); if (notQualified.includes("you lose")) { setStreakCount(0); }}; if (activeGame) { indexElements(activeGame.querySelectorAll('input[type="checkbox"]'), 'dice'); document.addEventListener('keydown', event => { const key = event.key; if (key >= '1' && key <= '6') { const index = parseInt(key) - 1; const checkboxes = activeGame.querySelectorAll('input[type="checkbox"]'); if (checkboxes.length > 0 && index < checkboxes.length) { checkboxes[index].checked = !checkboxes[index].checked; checkboxes[index].dispatchEvent(new Event('change', { bubbles: true })); } } if (key === 'Enter') { const submitButton = activeGame.querySelector('input[type="submit"]'); if (submitButton) { submitButton.click(); } } }); } else if (gameStart) { indexElements(gameStart.querySelectorAll('input[type="submit"]'), 'ante'); document.addEventListener('keydown', event => { const key = event.key; if (key >= '1' && key <= '6') { const index = parseInt(key) - 1; const placeAnte = document.querySelectorAll('#page_content > div:nth-child(5) > form input[type="submit"]'); if (placeAnte.length > 0 && index < placeAnte.length) { placeAnte[index].click(); } } }); } else { document.addEventListener('keydown', event => { const key = event.key; if (key === 'Enter') { const endGame = document.querySelector('#page_content'); const submitButton = endGame.querySelector('input[type="submit"]'); if (submitButton) { submitButton.click(); } } }); }