您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A selector listing all easy slayer tasks is added to the slayer task window. Allows you to choose a desired task.
// ==UserScript== // @name Select Easy Slayer Task // @version 1.0.5 // @license MIT // @description A selector listing all easy slayer tasks is added to the slayer task window. Allows you to choose a desired task. // @author Tristan-Autin // @match https://*.melvoridle.com/* // @exclude https://wiki.melvoridle.com* // @namespace https://gf.qytechs.cn/en/users/929271 // ==/UserScript== function EasySlayerTaskChoice() { // Monster IDs of Easy Slayer tasks. const MONSTER_IDS = [ 37, 111, 5, 35, 38, 67, 36, 81, 71, 4, 28, 82, 0, 59, 68, 75, 8, 14, 1, 9, 70, 3, 72, 6, 12, 60, 13, 29, 10, 18, 24, 76, 20, 62, 69, ]; const MONSTER_SLAYER_IDS = [18, 20]; let ACTUAL_MONSTER_ID; let slayerText = document.getElementById("combat-slayer-task-name"); let autoReload = false; let easySlayerTaskContainer = document.createElement("div"); easySlayerTaskContainer.classList.add(...["mt-3", "mb-3", "w-100"]); let select = document.createElement("button"); let optionsContainer = document.createElement("div"); select.classList.add(...["btn", "btn-secondary", "dropdown-toggle", "w-100"]); select.setAttribute("data-toggle", "dropdown"); select.innerHTML = "Choose your task"; optionsContainer.classList.add( ...["dropdown-menu", "font-size-sm", "overflow-y-auto"] ); optionsContainer.setAttribute( "style", "max-height: 60vh;z-index: 9999; min-width: 20rem;" ); let reloadBtn = document.createElement("button"); reloadBtn.classList.add( ...["btn", "btn-secondary", "w-100", "mt-3", "d-none"] ); let enableReload = document.createElement("button"); enableReload.classList.add( ...["btn", "btn-secondary", "mt-3", "w-100", "d-none", "btn-danger"] ); enableReload.innerHTML = "Enable auto reload : false"; enableReload.addEventListener("click", () => setEnableAutoReload()); reloadBtn.innerHTML = "Reload"; reloadBtn.addEventListener("click", () => setNewEasyTask(ACTUAL_MONSTER_ID)); easySlayerTaskContainer.append( select, optionsContainer, reloadBtn, enableReload ); combatManager.slayerTask.extendContainer.appendChild(easySlayerTaskContainer); for (let i = 0; i < MONSTER_IDS.length; i++) { let MONSTER_NAME = getMonsterName(MONSTER_IDS[i]); getButton(MONSTER_IDS[i], MONSTER_NAME); } function getButton(monsterId, monsterName) { let option = document.createElement("div"); option.classList.add( ...["dropdown-item", "bank-defaultItemTab-0", "pointer-enabled", "d-flex"] ); option.addEventListener("click", () => setNewEasyTask(monsterId)); optionsContainer.appendChild(option); let img = document.createElement("img"); img.setAttribute( "src", `https://cdn.melvor.net/core/v018/${MONSTERS[monsterId].media}` ); img.classList.add(...["skill-icon-xs"]); option.appendChild(img); let p = document.createElement("p"); p.innerHTML = monsterName; p.classList.add(...["mb-0", "ml-3", "align-self-center"]); option.appendChild(p); return option; } function setEnableAutoReload() { autoReload = !autoReload; if (autoReload) { enableReload.classList.remove("btn-danger"); enableReload.classList.add(...["btn-success"]); enableReload.innerHTML = "Enable auto reload : true"; } else { enableReload.classList.remove("btn-success"); enableReload.classList.add(...["btn-danger"]); enableReload.innerHTML = "Enable auto reload : false"; } } slayerText.addEventListener( "DOMNodeInserted", function (event) { if (autoReload) { var numberOfTask = slayerText.innerHTML .replace(/^\D+/g, "") .slice(0, 2); if (numberOfTask < 5) { setNewEasyTask(ACTUAL_MONSTER_ID); } } }, false ); function setNewEasyTask(id) { ACTUAL_MONSTER_ID = id; const slayerShopItem = 5; const bankItems = bank; const isSlayerShopItemInBank = bankItems.some( (item) => item.id === slayerShopItem ); if ( id == MONSTER_SLAYER_IDS[0] || (id == MONSTER_SLAYER_IDS[1] && isSlayerShopItemInBank != true) ) { notifyPlayer( CONSTANTS.skill.Slayer, "You can't fight this monster", "danger" ); return; } else if (combatManager.slayerTask.monster.id == id) { combatManager.slayerTask.selectTask(0, false, false); while (combatManager.slayerTask.monster.id != id) { combatManager.slayerTask.selectTask(0, false, false); reloadBtn.classList.remove("d-none"); enableReload.classList.remove("d-none"); } } while (combatManager.slayerTask.monster.id != id) { combatManager.slayerTask.selectTask(0, false, false); reloadBtn.classList.remove("d-none"); enableReload.classList.remove("d-none"); } } } // Injecting the script when possible (() => { function loadScript() { // Load script after the actual Melvor game has loaded if (typeof isLoaded !== typeof undefined && isLoaded) { clearInterval(scriptLoader); const scriptElem = document.createElement("script"); scriptElem.textContent = `try {(${EasySlayerTaskChoice})();} catch (e) {console.log(e);}`; document.body.appendChild(scriptElem).parentNode.removeChild(scriptElem); } } const scriptLoader = setInterval(loadScript, 5000); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址