您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
shows ppd and app in games and replays
// ==UserScript== // @name APP/PPD script // @namespace http://tampermonkey.net/ // @version 1.2 // @description shows ppd and app in games and replays // @author orz // @match https://*.jstris.jezevec10.com/* // @grant none // ==/UserScript== /************************** APP / PPD Script **************************/ (function() { window.addEventListener('load', function(){ var rect = holdCanvas.getBoundingClientRect(); var p = document.createElement("div"); p.id = "pace" p.style = ("color:#999;width:150px;position:absolute;top:"+(rect.top+300)+"px;left:"+(rect.left-50)+"px") p.innerHTML = ` <table style='width:100%;height:100%;table-layout:fixed;'> <tr> <th style='text-align:center' colspan="2">Efficiency Stats:</th> </tr> <tr> <td>APP</td> <td id='appEle'>0</td> </tr> <tr> <td>PPD</td> <td id='dppEle'>0</td> </tr> </table> ` document.body.appendChild(p); if(typeof trim != "function"){var trim=a=>{a=a.slice(0,-1);a=a.substr(a.indexOf("{")+1);return a}} function paces() { var appEle = document.getElementById('appEle'); var dppEle = document.getElementById('dppEle'); if (appEle && dppEle) { var app = this["gamedata"]["attack"] / this["placedBlocks"]; var dpp = 1 / (this["gamedata"]["garbageCleared"] / this["placedBlocks"]); console.log(app); console.log(dpp); appEle.innerHTML= (app*0 + 1)? app.toFixed(3):'0.000'; dppEle.innerHTML= (dpp*0 + 1)? dpp.toFixed(3):'0.000'; } } if (typeof Game != "undefined") { var queueBoxFunc = Game['prototype']['updateQueueBox'].toString() queueBoxFunc = trim(paces.toString()) + trim(queueBoxFunc); Game['prototype']["updateQueueBox"] = new Function(queueBoxFunc); } if (typeof Replayer != "undefined") { var replayerQueueBoxFunc = Replayer['prototype']['updateQueueBox'].toString(); replayerQueueBoxFunc = trim(paces.toString()) + trim(replayerQueueBoxFunc); Replayer['prototype']['updateQueueBox'] = new Function(replayerQueueBoxFunc); } }); })();