您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automates some stuff in Melvor
// ==UserScript== // @name dang's Melvor bot // @namespace https://gf.qytechs.cn/en/users/143358-dang // @version 1.2 // @description Automates some stuff in Melvor // @author dang // @match https://melvoridle.com/* // @includes https://melvoridle.com/* // @grant none // ==/UserScript== /* Config */ const autoLootMinLoot = 2; const autoGearSwitchSets = ['attack', 'magic', 'ranged']; const autoGearSwitchIgnoredEnemies = ['Pegasus']; const autoMineRocks = [0, 1, 10]; const intervalIds = {}; /* AutoLoot */ const $lootTextDiv = $('#combat-loot-text'); function doTheLoot() { const lootNumber = $lootTextDiv.text().match(/\((\d+) \//); if (lootNumber && parseInt(lootNumber[1]) >= autoLootMinLoot) { $('#combat-loot .btn-success').click(); } } function startAutoLoot() { const autoLootObserver = new MutationObserver((_mutations, _observer) => { doTheLoot(); }); doTheLoot(); autoLootObserver.observe($lootTextDiv[0], { childList: true }) } /* AutoGearSwitch */ const $enemyAttackTypeImg = $('#combat-enemy-attack-type'); function gearSwitch() { for (let i = 0; i < autoGearSwitchSets.length; i++) { if ( autoGearSwitchIgnoredEnemies.indexOf($('#combat-enemy-name').text()) === -1 && $enemyAttackTypeImg.attr('src').match(autoGearSwitchSets[i]) ) { setEquipmentSet(i); } } } function startAutoGearSwitch() { const enemyAttackTypeObserver = new MutationObserver((_mutations, _observer) => { gearSwitch(); }); gearSwitch(); enemyAttackTypeObserver.observe($enemyAttackTypeImg[0], { attributes: true }); } /* AutoMine */ const autoMineObserver = new MutationObserver(checkRockAndSwitch); const $eyecon = $('<span id="dang-auto-mine-current-ore" class="far fa-eye" style="position: absolute;"></span>'); let rockNumber = autoMineRocks[0]; let $rockImg; function checkRockAndSwitch(_mutationsList, _observer) { $rockImg = $('#mining-ore-img-' + rockNumber); if ($rockImg.attr('src').match(/rock_empty/)) { autoMineObserver.disconnect(); switchRock(); mineRock(rockNumber, true); startAutoMine(); } } function switchRock() { for (let i = 0; i < autoMineRocks.length; i++) { rockNumber = autoMineRocks[i]; $rockImg = $('#mining-ore-img-' + rockNumber); if (!$rockImg.attr('src').match(/rock_empty/)) { break; } } } function startAutoMine() { checkRockAndSwitch(); $('#mining-ore-' + rockNumber + ' .block-content-full').prepend($eyecon); autoMineObserver.observe($rockImg[0], { attributes: true }); } function tryStart(fnStart, fnValidation) { if (intervalIds[fnStart.name]) { clearInterval(intervalIds[fnStart.name]); } intervalIds[fnStart.name] = setInterval(() => { if (fnValidation()) { clearInterval(intervalIds[fnStart.name]); delete intervalIds[fnStart.name]; fnStart(); } }, 1000); } tryStart(startAutoLoot, () => { return $lootTextDiv.text().match(/\((\d+) \//); }); tryStart(startAutoGearSwitch, () => { return $('.combat-enemy-img').length; }); tryStart(startAutoMine, () => { return $('#mining-ore-img-' + rockNumber).length; });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址