Melvor Idle - Queue End Fight

Adds a button to the combat interface to leave combat after defeating the current enemy or dungeon.

当前为 2022-04-30 提交的版本,查看 最新版本

// ==UserScript==
// @name        Melvor Idle - Queue End Fight
// @namespace   http://tampermonkey.net/
// @version     0.12
// @description Adds a button to the combat interface to leave combat after defeating the current enemy or dungeon.
// @author      Seil#1780
// @license     MIT
// @match       https://*.melvoridle.com/*
// @exclude     https://wiki.melvoridle.com/*
// @exclude     https://*.wiki.melvoridle.com/*
// @icon        https://www.google.com/s2/favicons?sz=64&domain=melvoridle.com
// @grant       none
// ==/UserScript==

function queueEndFight() {
    var runQueued = false;
    var _oldOnEnemyDeath = combatManager.onEnemyDeath;
 
    let queueRunButton = '<button type="button" id="queueRunButton" class="btn btn-sm btn-warning m-1 w-100">Queue Leave Encounter</button>';
 
    let combatButtons = document.querySelector("#combat-enemy-options").parentNode;
 
    combatButtons.children[0].className = "col-4";
    combatButtons.children[1].className = "col-4";
    combatButtons.children[1].insertAdjacentHTML("afterend", '<div class="col-4"></div>');
    combatButtons.children[2].innerHTML += queueRunButton

    document.getElementById("queueRunButton").addEventListener("click", toggleQueue);

    function toggleQueue() {
        if(runQueued) {
            document.getElementById("queueRunButton").className = "btn btn-sm btn-warning m-1 w-100";
            runQueued = false;
        } else {
            document.getElementById("queueRunButton").className = "btn btn-sm btn-danger m-1 w-100";
            runQueued = true;
        }
    }

    combatManager.onEnemyDeath = function onEnemyDeath() {
        var encounterCompleted = false;
        var dungeonCompleted = this.dungeonProgress+1==this.areaData.monsters.length;
 
        _oldOnEnemyDeath.apply(this);
        if(runQueued) {
            if(this.areaData.type==="Dungeon"&&!dungeonCompleted) {
                encounterCompleted = false;
            } else {
                encounterCompleted = true;
                this.stopCombat();
                toggleQueue();
            }
        }
 
        return encounterCompleted;
    }
}

(() => {
    function loadScript() {
        if (typeof confirmedLoaded !== typeof undefined && confirmedLoaded) {
            clearInterval(scriptLoader);
 
            const scriptElem = document.createElement("script");
            scriptElem.textContent = `try {(${queueEndFight})();} catch (e) {console.log(e);}`;
            document.body.appendChild(scriptElem).parentNode.removeChild(scriptElem);
        }
    }
    const scriptLoader = setInterval(loadScript, 200);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址