您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
RT
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/447160/1065460/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;'> +"+dx+"</span>" } else { txt += "<span style='color: green;'> "+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<elem.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) }