您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Keyboard controls for Bilge Dice. Streak tracking tweaked so the new in-game streak is displayed during gameplay. You can now press enter to start a game with a default Ante, which is set to 10 NP unless you change it.
当前为
// ==UserScript== // @name [GC | BETA] - Bilge Dice Keyboard Controls & Tracking Enhancements // @namespace https://greatest.deepsurf.us/en/users/1225524-kaitlin // @match https://www.grundos.cafe/games/bilgedice/* // @license MIT // @version 2.2.2 // @grant GM_getValue // @grant GM_setValue // @author Cupkait // @description Keyboard controls for Bilge Dice. Streak tracking tweaked so the new in-game streak is displayed during gameplay. You can now press enter to start a game with a default Ante, which is set to 10 NP unless you change it. // ==/UserScript== const activeGame = document.querySelector("#bilge-dice-user-wrapper"); const gameStart = document.querySelector("form.mt-1"); //CHANGE BELOW TO HAVE ENTER DEFAULT TO A SPECIFIC ANTE AMOUNT //** Don't set a default higher than you've unlocked or it won't work! //1=10 NP, 2=50 NP,3=100 NP, 4=200 NP, 5=500 NP,6=1000 NP const defaultAnteIndex = 1; function indexElements(elements) { if (elements) { 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); }); } } function createPlayStreakDiv() { const playStreakDiv = document.createElement('div'); playStreakDiv.textContent = `${GM_getValue("playStreak", "N/A")}`; return playStreakDiv; } function handleCheckboxEvent(key, checkboxes) { const index = parseInt(key) - 1; if (checkboxes.length > 0 && index < checkboxes.length) { checkboxes[index].checked = !checkboxes[index].checked; checkboxes[index].dispatchEvent(new Event('change', { bubbles: true })); } } function handleEnterKeyEvent(buttonSelector) { const button = document.querySelector(buttonSelector); if (button) { button.click(); } } if (activeGame) { const pageContent = document.querySelector('#page_content'); pageContent.appendChild(createPlayStreakDiv()); indexElements(activeGame.querySelectorAll('input[type="checkbox"]')); const submitButton = document.querySelector("#bilge-dice-user-wrapper > form"); const spaceText = document.createElement('p'); spaceText.textContent = '(Press Space to Keep All)'; spaceText.style.fontSize = '10px'; spaceText.style.width = 'auto'; spaceText.style.fontWeight = 'bold'; spaceText.style.textAlign = 'center'; submitButton.insertAdjacentElement('afterend', spaceText); document.addEventListener('keydown', event => { const key = event.key; if (key >= '1' && key <= '6') { handleCheckboxEvent(key, activeGame.querySelectorAll('input[type="checkbox"]')); } if (key === ' ') { event.preventDefault(); const checkboxes = activeGame.querySelectorAll('input[type="checkbox"]'); checkboxes.forEach(checkbox => { checkbox.checked = !checkbox.checked; checkbox.dispatchEvent(new Event('change', { bubbles: true })); }); } if (key === 'Enter') { handleEnterKeyEvent('#bilge-dice-user-wrapper input[type="submit"]'); } }); } else if (gameStart) { const playStreakElement = document.querySelector("#page_content > div:nth-child(6) > p:nth-child(1)"); const playStreak = playStreakElement ? playStreakElement.textContent : null; if (playStreak) { GM_setValue("playStreak", playStreak); } const pageContent = document.querySelector('#page_content'); pageContent.appendChild(createPlayStreakDiv()); indexElements(gameStart.querySelectorAll('input[type="submit"]')); document.addEventListener('keydown', event => { const key = event.key; if (key >= '1' && key <= '6') { handleEnterKeyEvent('#page_content > div:nth-child(5) > form input[type="submit"]'); } if (key === 'Enter') { const options = gameStart.querySelectorAll('input[type="submit"]'); const selectedOption = options[defaultAnteIndex - 1]; if (selectedOption) { selectedOption.click(); } } }); } else { const pageContent = document.querySelector('#page_content'); if (pageContent) { pageContent.appendChild(createPlayStreakDiv()); } document.addEventListener('keydown', event => { if (event.key === 'Enter') { handleEnterKeyEvent('#page_content input[type="submit"]'); } }); }