Greasy Fork

Enhance Tool I test

RT

目前为 2022-06-28 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.cloud/scripts/447160/1065463/Enhance%20Tool%20I%20test.js

// ==UserScript==
// @name         Enhance Tool I test
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  RT
// @author       lyscop
// @match        *
// @include      *
// @grant        none
// ==/UserScript==
 
 
    // dps显示x
    var DPSx=0;
    unsafeWindow.dpsx = function dpsx(){
        var aps = document.getElementsByClassName("ant-tabs-tabpane ant-tabs-tabpane-active")[0].getElementsByTagName("p");
        if(aps.length<20){
            return;
        }
        //计算是物理还是法术
        for(var p=0; p<aps.length; p++) {
            if(aps[p].innerHTML.split(':')[0] == '物理攻击') {
                var wgs = aps[p].innerText.split(":")[1].split("-");
            }
            if(aps[p].innerHTML.split(':')[0] == '物理暴击几率') {
                var wgjl = aps[p].innerText.split(":")[1].split("%")[0];
            }
            if(aps[p].innerHTML.split(':')[0] == '物理暴击倍率') {
                var wgbl = aps[p].innerText.split(":")[1].split("%")[0];
            }
            if(aps[p].innerHTML.split(':')[0] == '法术攻击') {
                var fgs = aps[p].innerText.split(":")[1].split("-");
            }
            if(aps[p].innerHTML.split(':')[0] == '法术暴击几率') {
                var fgjl = aps[p].innerText.split(":")[1].split("%")[0];
            }
            if(aps[p].innerHTML.split(':')[0] == '法术暴击倍率') {
                var fgbl = aps[p].innerText.split(":")[1].split("%")[0];
            }
        }
        var d = 0;
        if(wgs.length==1){
            return
        }
        if(parseInt(wgs[1])>parseInt(fgs[1])){
            d = (parseInt(wgs[0])+parseInt(wgs[1]))/2*parseInt(wgjl)*parseInt(wgbl)/10000;
        } else {
            d = (parseInt(fgs[0])+parseInt(fgs[1]))/2*parseInt(fgjl)*parseInt(fgbl)/10000;
        }
        d = d.toFixed(2);
        var txt = ""+d;
        if(DPSx == d){
            return;
        }
        if(DPSx!=0){
            var dx = d-DPSx;
            dx = dx.toFixed(2);
            if(d>DPSx){
                txt += "<span style='color: red;'>&nbsp;&nbsp;+"+dx+"</span>"
            } else {
                txt += "<span style='color: green;'>&nbsp;&nbsp;"+dx+"</span>"
            }
        }
        DPSx = d;
        document.getElementById("dps").innerHTML=txt;
    }
 
    // 升级所需时间x
    function upLevelx(){
        var href = window.location.href;
        if( href.indexOf("login")>0){
            return;
        }
        dpsx();
        //console.log("upup...");
        var ps = document.getElementsByClassName("ant-tabs-tabpane ant-tabs-tabpane-active")[0].getElementsByTagName("p");
        if(ps.length<4){
            return;
        }
        var elem;
        for(var p=0; p<ps.length; p++) {
            if(ps[p].innerHTML.split(':')[0] == ' 经验') {
                elem = ps[p];
            }
        }
        var title = elem.getAttribute("title")
        if(title){
            var all = title.split("/")[1];
            var now = title.split("/")[0];
            var xl = elem.nextSibling.innerText.split(":")[1];
            xl = xl.split("/")[0];
            var txt = "";
            if(xl>0) {
                var mins = (all-now)/xl;
                if(mins>60){
                    mins = mins/60;
                    txt += mins.toFixed(2)+"小时";
                } else {
                    txt += mins.toFixed(2)+"分钟";
                }
            }
            document.getElementById("levelUp").innerHTML=txt;
        }
    }
    setInterval(upLevelx, 5000);//每分钟检查一次
    
    // 自动皮卡丘 基尔加丹 巫妖王
    function autoPKQ() {
        var HPP;
        var wsBool = false;
        var d = new Date();
        var gjmap = document.getElementById("ixxgjmap").value;
        var btns = document.getElementsByClassName("ant-btn ant-btn-primary");
        var btn = btns[btns.length-1];
        var wsEle = document.getElementsByClassName("ant-card-body")[5].getElementsByTagName("input")[7];
        var newMap = document.getElementsByClassName("carddd")[2].getElementsByClassName("ant-card-head-title")[0].innerText.split(":")[0]
        var aps = document.getElementsByClassName("ant-tabs-tabpane ant-tabs-tabpane-active")[0].getElementsByTagName("p");
        for(var p=0; p<aps.length; p++) {
            if(aps[p].innerHTML.split(':')[0] == 'HP') {
                HPP = aps[p].innerText.split(":")[1].split("/")[1];
            }
        }
        if(('0' +d.getHours().toString()).slice(-2) == '13' && ('0' +d.getMinutes().toString()).slice(-2) == '00') {
            if(HPP < 1800) return;
            console.log('打皮卡丘啦');
            for(var q=0; q<3; q++) {
                showMessage('打皮卡丘啦');
            }
            if(btn.innerText == "停止挂机"){
                btn.click();
            }
            unsafeWindow.chuansong("盟重土城回城石");

            if(wsEle.checked) {
                wsEle.click();
                wsBool = true;
            }
            ppx(95,115);
            window.setTimeout(function(){
                console.log('ok')
                var btns = document.getElementsByClassName("ant-btn ant-btn-primary");
                var btn = btns[btns.length-1];
                // 开始挂机
                btn.click();
            }, 2000);
        }

        if(('0' +d.getHours().toString()).slice(-2) == '13' && ('0' +d.getMinutes().toString()).slice(-2) == '15') {
            //console.log('打鸡蛋啦');
            for(var r=0; r<3; r++) {
                showMessage('打鸡蛋啦');
            }
            if(btn.innerText == "停止挂机"){
                btn.click();
            }
            unsafeWindow.chuansong("初始大陆回城石");
            ppx(28,28);
            window.setTimeout(function(){
                //console.log('ok')
                var btns = document.getElementsByClassName("ant-btn ant-btn-primary");
                var btn = btns[btns.length-1];
                // 开始挂机
                btn.click();
            }, 2000);

            if(wsEle.checked) {
                wsEle.click();
                wsBool = true;
            }
        }
        if(('0' +d.getHours().toString()).slice(-2) == '13' && ('0' + d.getMinutes().toString()).slice(-2) == '35') {
            //console.log('打巫妖王啦');
            for(var s=0; s<3; s++) {
                showMessage('打巫妖王啦');
            }
            if(btn.innerText == "停止挂机"){
                btn.click();
            }
            unsafeWindow.autoGo('终结之地', function(){
                var btns = document.getElementsByClassName("ant-btn ant-btn-primary");
                var btn = btns[btns.length-1];
                // 开始挂机
                btn.click();
            });
            if(wsEle.checked) {
                wsEle.click();
                wsBool = true;
            }
        }
        if(('0' +d.getHours().toString()).slice(-2) == '14' && ('0' +d.getMinutes().toString()).slice(-2) == '00') {
            gj();
            if(wsBool) {
                wsEle.click();
            }
            console.log('挂机');
        }
    }
    //setInterval(autoPKQ, 60000); //每分钟启动一次
 
    // 日志显示每小时金币、灵石数量  
    var hour1;
    var gold1;
    var stone1;
    var hour2;
    var gold2
    var stone2;
    var goldData;
    var stoneData;
    var strData="<div>";
    function getData(){
        var d = new Date();
        var nowTime = ('0' +d.getHours().toString()).slice(-2) + ':' + ('0' +d.getMinutes().toString()).slice(-2);
        var elem = document.getElementsByClassName('ant-tabs-tabpane')[0].getElementsByTagName("p");
        if(('0' +d.getMinutes().toString()).slice(-2) == '00') {
        //if(('0' +d.getSeconds().toString()).slice(-2) == '00') {
            if(!GM_getValue('gold1')) {
                hour1 = ('0' +d.getHours().toString()).slice(-2);
                //gold1 = elem[1].innerHTML.split(':')[1];
                //stone1 = elem[2].innerHTML.split(':')[1];
                for(var i=0; i<elem.length; i++) {
                    if(elem[i].innerHTML.split(':')[0] == '金币') {
                        gold1 = elem[i].innerHTML.split(':')[1];
                    }
                    if(elem[i].innerHTML.split(':')[0] == '灵石') {
                        stone1 = elem[i].innerHTML.split(':')[1];
                    }
                }
                GM_setValue('hour1', hour1);
                GM_setValue('gold1', gold1);
                GM_setValue('stone1', stone1);
                //console.log(nowTime + ' 开始')
                strData += '数据记录'
            } else {
                hour2 = ('0' +d.getHours().toString()).slice(-2);
                //gold2 = elem[1].innerHTML.split(':')[1];
                //stone2 = elem[2].innerHTML.split(':')[1];
                for(var j=0; j<elem.length; j++) {
                    if(elem[j].innerHTML.split(':')[0] == '金币') {
                        gold2 = elem[j].innerHTML.split(':')[1];
                    }
                    if(elem[j].innerHTML.split(':')[0] == '灵石') {
                        stone2 = elem[j].innerHTML.split(':')[1];
                    }
                }
                if(hour2 - GM_getValue('hour1') == 1 || hour2 - GM_getValue('hour1') == -23) {
                    goldData = gold2 - GM_getValue('gold1');
                    stoneData = stone2 - GM_getValue('stone1');
                    if(goldData < 0) {
                        goldData = 0;
                        GM_setValue('gold1', gold2);
                    }
                    if(stoneData < 0) {
                        stoneData = 0;
                        GM_setValue('stone1', stone2);
                    }
                    GM_setValue('hour1', hour2);
                    GM_setValue('gold1', gold2);
                    GM_setValue('stone1', stone2);
 
                    strData += nowTime +'<br>每小时金币 '+goldData+'<br>每小时灵石 '+ stoneData + ' / '+ stone2 + ' - '+ GM_getValue('stone1') + '<br>'
 
                } else {
                    GM_setValue('hour1', hour2);
                    GM_setValue('gold1', gold2);
                    GM_setValue('stone1', stone2);
                    //console.log(nowTime + ' 开始')
                    strData += '数据记录'
                }
            }
            strData +="</div>";
            $("#ixxlog").append(strData);
            var ele = document.getElementById('ixxlog');
            //ele.scrollTop=500
            ele.scrollTop = ele.scrollHeight;
        }
    }
    //setInterval(getEData, 60000); //每分钟启动一次
    
    // 计算效率
    var goldEff;
    var stoneEff;
    var hourEff;
    var minEff;
    var leave1;
    var leave2;
    var firstTime;
    var firstGold;
    var firstStone;
    var goldElt;
    var stoneElt;
    var resetAll = document.createElement('a');
    var goldTag = document.createElement('p');
    var stoneTag = document.createElement('p');
    var timeTag = document.createElement('p');
    function getEffDataInit() {
        var elt = document.getElementsByClassName('ant-tabs-tabpane')[0].getElementsByTagName("p");
        firstTime = Date.parse(new Date());
        for(var i=0; i<elt.length; i++) {
            if(elt[i].innerHTML.split(':')[0] == '金币') {
                goldElt = elt[i];
                //console.log(goldElt);
                firstGold = elt[i].innerHTML.split(':')[1];
            }
            if(elt[i].innerHTML.split(':')[0] == '灵石') {
                stoneElt = elt[i];
                //console.log(goldElt);
                firstStone = elt[i].innerHTML.split(':')[1];
            }
        }
        resetAll.href = '#';
        //resetAll.onclick = 'resetAllData()'
        resetAll.onclick = function(){
            resetAllData()
        };
        resetAll.innerText = ' 重置All';
        goldTag.innerText = ' 效率:0/小时';
        stoneTag.innerText = ' 效率:0/小时';
        timeTag.innerText = ' 时长:0小时 0分钟';
        elt[0].append(resetAll);
        goldElt.nextSibling.parentNode.insertBefore(goldTag, goldElt.nextSibling);
        stoneElt.nextSibling.parentNode.insertBefore(stoneTag, stoneElt.nextSibling);
        elt[0].nextSibling.parentNode.insertBefore(timeTag, elt[0].nextSibling);
        GM_setValue('firstTime', firstTime);
        GM_setValue('firstGold', firstGold);
        GM_setValue('firstStone', firstStone);
        //console.log(firstGold + firstStone)
    }
    window.setTimeout(getEffDataInit, 2000);
 
    function resetAllData() {
        var newGoldEffTag;
        var newStoneTag;
 
        var elt = document.getElementsByClassName('ant-tabs-tabpane')[0].getElementsByTagName("p");
        for(var h =0; h<elt.length; h++) {
            if(elt[h].innerHTML.split(':')[0] == '金币') {
                newGoldEffTag = elt[h].nextSibling;
            }
            if(elt[h].innerHTML.split(':')[0] == '灵石') {
                newStoneTag = elt[h].nextSibling;
            }
        }
        newGoldEffTag.innerHTML = ' 效率:0/小时';
        newStoneTag.innerHTML = ' 效率:0/小时';
        console.log('ok')
        for(var i=0; i<elt.length; i++) {
            if(elt[i].innerHTML.split(':')[0] == ' 经验') {
                elt[i].nextSibling.childNodes[1].click();
            }
        }
        clearInterval(getEffData);
        setInterval(getEffData, 60000);
    }
 
    function getEffData(){
        var href = window.location.href;
        if( href.indexOf("login")>0){
            return;
        }
        getData();
        autoPKQ();
        
        var elt = document.getElementsByClassName('ant-tabs-tabpane')[0].getElementsByTagName("p");
        var nowTime = Date.parse(new Date());
        var nowGold;
        var nowStone;
        var newGoldEffTag;
        var newStoneTag;
        var newTimeTag;
        for(var j=0; j<elt.length; j++) {
            if(elt[j].innerHTML.split(':')[0] == '金币') {
                newGoldEffTag = elt[j].nextSibling;
                nowGold = elt[j].innerHTML.split(':')[1];
            }
            if(elt[j].innerHTML.split(':')[0] == '灵石') {
                newStoneTag = elt[j].nextSibling;
                nowStone = elt[j].innerHTML.split(':')[1];
            }
        }
        goldEff = parseInt((nowGold - GM_getValue('firstGold')) / ((nowTime - GM_getValue('firstTime')) / (3600 * 1000)));
        //console.log(goldEff);
        stoneEff = parseInt((nowStone - GM_getValue('firstStone')) / ((nowTime - GM_getValue('firstTime')) / (3600 * 1000)));
        //console.log(stoneEff);
        if(goldEff < 0) {
            goldEff = 0;
            GM_setValue('firstGold', nowGold);
        }
        if(stoneEff < 0) {
            stoneEff = 0;
            GM_setValue('firstStone', nowStone);
        }
        leave1 = (nowTime - GM_getValue('firstTime')) % (24 * 3600 * 1000);
        hourEff = Math.floor(leave1 / (3600 * 1000));
        leave2 = leave1 % (3600 * 1000);
        minEff = Math.floor(leave2 / (60 * 1000)) + 1;
        //console.log(minEff)
        newGoldEffTag.innerHTML = ' 效率:' + goldEff + '/小时';
        newStoneTag.innerHTML = ' 效率:' + stoneEff + '/小时';
        elt[0].nextSibling.innerHTML = ' 时长:' + hourEff + '小时 ' + minEff + '分钟';
    }
    setInterval(getEffData, 60000); //每分钟启动一次
    
    var wrapEle = document.createElement('div');
    wrapEle.id = "wrap";
    wrapEle.setAttribute('style', '' +
                         'position:fixed;' +
                         'right:0px;' +
                         'top:0px;' +
                         'width:300px;' +//最大宽度
                         //'padding:40px;' +
                         'background-color:rgba(255,255,255,0)!important;' +
                         'z-index:2147483647!important;' +//显示最顶层
                         '');

    //document.body.appendChild(wrapEle);//元素加入body 报错无法加入
    document.documentElement.appendChild(wrapEle);//元素加入body

    function showMessage(text) {
        const wrapDiv = document.getElementById("wrap");
        var div = document.createElement('div');
        div.setAttribute('style', '' +
                         'display:none!important;' +//去掉直接显示
                         'left:0px;' +
                         'top:0px;' +
                         'margin-left:auto;' +//table块靠右显示
                         //'position:absolute!important;' +
                         'font-size:22px!important;' +
                         'overflow:auto!important;' +
                         'background-color:rgba(255,255,255,0.7)!important;' +
                         'font-family:sans-serif,Arial!important;' +
                         'font-weight:normal!important;' +
                         'text-align:left!important;' +//左对齐
                         'color:#000!important;' +
                         'padding:0.1em 0.2em!important;' +
                         'border-radius:3px!important;' +
                         'border:1px solid #ccc!important;' +
                         //'max-width:350px!important;' +
                         'max-height:1216px!important;' +
                         'z-index:2147483647!important;' +
                         '');

        div.innerHTML = text;
        div.style.display = 'table';// 换行显示结果
        let fc = wrapDiv.firstElementChild
        if (fc) {
            wrapDiv.insertBefore(div,fc)
        } else {
            wrapDiv.appendChild(div);
        }
        setTimeout(() => {
            div.parentNode.removeChild(div);
        },6000)
    }