您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Auto craft system. If you only need to craft stews (for example), you can set all other parameters to 0 or 1. They simply won't be crafted if you don't have the resources.
// ==UserScript== // @name AutoCraft(EN_VERSION) // @namespace http://tampermonkey.net/ // @version 3.1415 // @description Auto craft system. If you only need to craft stews (for example), you can set all other parameters to 0 or 1. They simply won't be crafted if you don't have the resources. // @author Drik // @match https://cavegame.io/* // @grant none // ==/UserScript== (function() { 'use strict'; let menu = document.createElement('div'); menu.style = ` position: fixed; top: 10px; left: 10px; background: rgba(0,0,0,0.8); color: white; padding: 10px; border-radius: 5px; z-index: 10000; font-family: Arial, sans-serif; `; menu.innerHTML = ` <label for="craftDoorsCount">Craft Doors:</label> <input type="number" id="craftDoorsCount" min="1" value="1" style="width: 50px; margin-right: 10px;"> <br> <label for="craftBarriersCount">Craft Barriers:</label> <input type="number" id="craftBarriersCount" min="1" value="1" style="width: 50px; margin-right: 10px;"> <br> <label for="craftGeneratorsCount">Craft Gold Generators:</label> <input type="number" id="craftGeneratorsCount" min="1" value="1" style="width: 50px; margin-right: 10px;"> <br> <label for="craftArrowsCount">Craft Arrows:</label> <input type="number" id="craftArrowsCount" min="1" value="1" style="width: 50px; margin-right: 10px;"> <br> <label for="craftStewsCount">Craft Stews:</label> <input type="number" id="craftStewsCount" min="1" value="1" style="width: 50px; margin-right: 10px;"> <br> <button id="startCrafting">Craft</button> `; document.body.appendChild(menu); menu.querySelectorAll('input[type="number"]').forEach(input => { input.addEventListener('input', function() { this.value = this.value.replace(/[^0-9]/g, ''); }); }); document.getElementById('startCrafting').onclick = () => { let doorsCount = parseInt(document.getElementById('craftDoorsCount').value); let barriersCount = parseInt(document.getElementById('craftBarriersCount').value); let generatorsCount = parseInt(document.getElementById('craftGeneratorsCount').value); let arrowsCount = parseInt(document.getElementById('craftArrowsCount').value); let stewsCount = parseInt(document.getElementById('craftStewsCount').value); let craftButtons = { doors: document.querySelector("div.inventory.overlay-inventory[data-type='vault-door']"), barriers: document.querySelector("div.inventory.overlay-inventory[data-type='barrier']"), generators: document.querySelector("div.inventory.overlay-inventory[data-type='gold-generator']"), arrows: document.querySelector("div.inventory.overlay-inventory[data-type='arrow']"), stews: document.querySelector("div.inventory.overlay-inventory[data-type='stew']") }; if (doorsCount > 0 && !craftButtons.doors) { alert('Craft button for doors not found!'); return; } if (barriersCount > 0 && !craftButtons.barriers) { alert('Craft button for barriers not found!'); return; } if (generatorsCount > 0 && !craftButtons.generators) { alert('Craft button for gold generators not found!'); return; } if (arrowsCount > 0 && !craftButtons.arrows) { alert('Craft button for arrows not found!'); return; } if (stewsCount > 0 && !craftButtons.stews) { alert('Craft button for stews not found!'); return; } for (let i = 0; i < doorsCount; i++) { craftButtons.doors && craftButtons.doors.click(); } for (let i = 0; i < barriersCount; i++) { craftButtons.barriers && craftButtons.barriers.click(); } for (let i = 0; i < generatorsCount; i++) { craftButtons.generators && craftButtons.generators.click(); } for (let i = 0; i < arrowsCount; i++) { craftButtons.arrows && craftButtons.arrows.click(); } for (let i = 0; i < stewsCount; i++) { craftButtons.stews && craftButtons.stews.click(); } }; document.addEventListener('keydown', (e) => { if (e.key === 'F9') { menu.style.display = (menu.style.display === 'none') ? 'block' : 'none'; } }); })();