idlepoe小助手

idlepoe小助手,走起!!!

当前为 2023-10-10 提交的版本,查看 最新版本

// ==UserScript==
// @name         idlepoe小助手
// @namespace
// @version      0.3
// @description  idlepoe小助手,走起!!!
// @author       iuv@喝水
// @match        *://*.idlepoe.com/*
// @match        *://idlepoe.com/*
// @match        *://poe.faith.wang/*
// @icon         https://www.google.com/s2/favicons?domain=idlepoe.com
// @grant        unsafeWindow
// @license      MIT
// @namespace https://idlepoe.com
// ==/UserScript==

(function() {
    'use strict';
    //装备数组
    var ES = {"头部":3,"胸甲":4,"腰带":5,"手套":6,"鞋子":7,"项链":8,"戒指":910,"饰品":11}
    var PSL = 0;
    var AUTO_DEL_STATUS=0;// 自动删除启动状态
    var ROLL_STATUS=0;// 自动改造启用状态
    var BACKPACK_ES; // 缓存查找背包装备数据
    var BACKPACK_INDEX; // 查找背包索引
    var BACKPACK_KEY; // 缓存查找背包装备关键字
    var BACKPACK_STATUS = 0; //查找背包状态
    // 同步显示装备属性bug版本
    /*setInterval(function(){
        let ps = document.getElementsByClassName("stats");
        if(ps && ps.length>0){
            //console.log(ps.length+":"+PSL);
            if(ps.length>PSL){
                //清空准备区属性层
                for(let i=1;i<12;i++){
                    hideProperty(i);
                }
                ps = document.getElementsByClassName("stats");
                PSL=ps.length;
                let type = ps[ps.length-1].getElementsByClassName("property")[0].innerHTML;
                let e = ES[type];
                //console.log(type+":"+e);
                if(e){
                    if(e==910){
                        showProperty(9);
                        showProperty(10);
                    }else{
                        showProperty(e);
                    }
                }else{
                    showProperty(1);
                    showProperty(2);
                }
            }else if(ps.length<PSL){
                //console.log("clr");
                PSL=0;
                //清空准备区属性层
                for(let i=1;i<12;i++){
                    hideProperty(i);
                }
            }
        }
    },100);*/
    function showProperty(i){
        let em = document.querySelector("#rc-tabs-0-panel-0 > div.group-pane > div:nth-child("+i+") > div.equipment-container");
        if(em){
            em.dispatchEvent(new Event("mouseenter"));
        }
    }
    function hideProperty(i){
        let em = document.querySelector("#rc-tabs-0-panel-0 > div.group-pane > div:nth-child("+i+") > div.equipment-container");
        if(em){
            em.dispatchEvent(new Event("mouseleave"));
        }
    }
    // 设置id对应显示内容
    function setTxt(id, txt){
        document.getElementById(id).innerText = txt;
    }
    // 批量自动删除装备
    unsafeWindow.autoDelete = function autoDelete(status){
        if(status){
            if(AUTO_DEL_STATUS){
                AUTO_DEL_STATUS = 0;
                setTxt("autoDelete", "自动删除");
            } else {
                AUTO_DEL_STATUS = status;
                setTxt("autoDelete", "停止删除");
            }
        }
        if(AUTO_DEL_STATUS){
            document.getElementsByClassName("toolbox")[0].getElementsByTagName("button")[1].dispatchEvent(new Event("mouseenter"));
            let lis = document.getElementsByTagName("li");
            lis[lis.length-1].dispatchEvent(new Event("click"));
            setTimeout(function(){
                let btns = document.getElementsByTagName("button");
                btns[btns.length-1].dispatchEvent(new Event("click"));
            },200);
            setTimeout(autoDelete, 1200);
        }
    }
    // roll属性
    function check(){
        let t = document.getElementsByClassName("stats")[0].innerHTML;
        t=t.substr(t.lastIndexOf("separator"))
        console.log(t);
        let rolltxt = document.getElementById("rolltxt").value;
        let rolltxts = rolltxt.split(",");
        if(rolltxt && checkAll(rolltxts, t)){
            roll();
        } else {
            roll(1);//停止
        }
    }
    function checkAll(rolltxts, t){
        for(let i=0;i<rolltxts.length;i++){
            if(t.indexOf(rolltxts[i])>=0){
                return 0;
            }
        }
        return 1;
    }
    unsafeWindow.roll = function roll(status){
        if(status){
            let txts = ["自动改造","停止改造"];
            ROLL_STATUS = (ROLL_STATUS+1)%2;
            setTxt("rollbtn",txts[ROLL_STATUS]);
        }
        if(ROLL_STATUS){
            document.getElementsByClassName("actions")[0].getElementsByTagName("button")[7].dispatchEvent(new Event("click"));
            setTimeout(check, 1000);
        }
    }
    unsafeWindow.stopRoll = function stopRoll(){
        document.getElementsByClassName("actions")[0].getElementsByTagName("button")[7].dispatchEvent(new Event("click"));
        setTimeout(check, 1000);
    }
    // 搜索本页面装备属性
    unsafeWindow.search = function search(){
        BACKPACK_STATUS = 0;
        BACKPACK_ES = document.getElementsByClassName("backpack")[0].querySelectorAll("div.equip-name");
        BACKPACK_KEY = document.getElementById("rolltxt").value;
        BACKPACK_INDEX = 0;
        nextSearch();
    }
    unsafeWindow.nextSearch = function nextSearch(){
        if(BACKPACK_STATUS){
            return;
        }
        if(BACKPACK_INDEX>0){
            BACKPACK_ES[BACKPACK_INDEX-1].parentElement.dispatchEvent(new Event("mouseleave"));
        }
        if(BACKPACK_INDEX>=BACKPACK_ES.length){
            let np = document.getElementsByClassName("ant-pagination-next")[0];
            if(np.outerHTML.indexOf("aria-disabled=\"false\"")>0){
                np.dispatchEvent(new Event("click"));
                setTimeout(search, 1000);
                return;
            } else {
                return;
            }
        }
        BACKPACK_ES[BACKPACK_INDEX++].parentElement.dispatchEvent(new Event("mouseenter"));
        setTimeout(checkSearch, 300);
    }
    unsafeWindow.stopSearch = function stopSearch(){
        BACKPACK_STATUS = 1;
    }
    function checkSearch(){
        let txts = document.getElementsByClassName("stats")
        let txt = txts[txts.length-1].innerText;
        txt = txt.substr(txt.indexOf("需求"));
        console.log(txt);
        let keys = BACKPACK_KEY.split(",");
        for(let i=0;i<keys.length;i++){
            if(txt.indexOf(keys[i])<0){
                setTimeout(nextSearch,100);
                return;
            }
        }
    }
    // init
    setTimeout(function(){
        console.log("init...");
        let html = "<div style='position: absolute;top: 10px;left: 10px;z-index:99999'><button id='autoDelete' onclick='window.autoDelete(1)'>自动删除</button>";
        html+="属性关键字:<input style='width:100px' id='rolltxt' /><button id='rollbtn' onclick='roll(1)'>自动改造</button>";
        html+="<button id='searchBtn' onclick='window.search()'>查找背包</button><button id='nextSearchBtn' onclick='window.nextSearch()'>下一个</button>";
        html+="<button id='stopSearchBtn' onclick='window.stopSearch()'>停止查找</button>";
        html+="</div>";
        //let appHtml = document.getElementById("app").innerHTML;
        //document.getElementById("app").innerHTML = html+appHtml;
        let p = document.createElement("div");
        p.innerHTML = html;
        document.getElementById("app").appendChild(p);
    },3000);

})();

QingJ © 2025

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