您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
shows replay code on reset in practice mode
- // ==UserScript==
- // @name Automatic Replay Code
- // @namespace http://tampermonkey.net/
- // @version 1.0.2
- // @description shows replay code on reset in practice mode
- // @author oki, meppydc
- // @match https://*jstris.jezevec10.com/*
- // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- //if (Game['prototype']['pmode'] == 2) {
- if (typeof trim != "function") { var trim = a => { a = a.slice(0, -1); a = a.substr(a.indexOf("{") + 1); return a } }
- if (typeof getParams != "function") { var getParams = a => { var params = a.slice(a.indexOf("(") + 1); params = params.substr(0, params.indexOf(")")).split(","); return params } }
- window.copyReplayText = function (number) {
- var copyText = document.getElementById("replay" + number);
- copyText.select();
- document.execCommand("copy");
- document.getElementById("replayButton" + number).innerHTML = "Copied!"
- setTimeout(() => {
- document.getElementById("replayButton" + number).innerHTML = "Copy"
- }, 1000);
- }
- // var replayCounter = Game['prototype'].toString()
- // replayCounter = "this['replayCounter']=1;" + trim(replayCounter)
- // Game['prototype'] = new Function(replayCounter);
- function beforeFunction() {
- //how many pieces should the replay at least have
- let piecesPlacedCutoff = 1
- if (typeof this['replayCounter'] == "undefined") {
- this['replayCounter'] = 1
- }
- this['Replay']['getData']();
- //console.log(this["Replay"].string)
- //console.log(this.GameStats.stats)
- if (!this['starting'] && this.GameStats.stats.BLOCKS.value > piecesPlacedCutoff && this['pmode'] == 2) {
- //console.log(this["replayCounter"])
- let replayHTML = "<div style='font-size:14px;'>Userscript Generated Replay <b>#" + this["replayCounter"] + "</b> </div>";
- replayHTML += '<div style="font-size:16px;">Time: <b>' + this.GameStats.stats.CLOCK.value + '</b> Blocks: <b>' + this.GameStats.stats.BLOCKS.value + '</b> Waste: <b>' + this.GameStats.stats.WASTE.value + '</b> </div>'
- replayHTML += '<textarea id=replay' + this["replayCounter"] + ' readonly style="width:75%;" onclick="this.focus();this.select()">' + this['Replay']['string'] + '</textarea>';
- replayHTML += '<button id=replayButton' + this["replayCounter"] + ' onclick=window.copyReplayText(' + this["replayCounter"] + ')>Copy</button>'
- this["Live"]['chatMajorWarning'](replayHTML);
- this["replayCounter"]++;
- //this['Replay']['uploadError'](this["Live"], 'FROM_USERSCRIPT_UWU');
- // document.querySelector("#chatInput").value = "/replay"
- // document.querySelector("#sendMsg").click()
- // document.querySelector("#stage").click()
- }
- };
- //add function to readyGo
- var readyGoFunc = Game['prototype']['startPractice'].toString()
- var params3 = getParams(readyGoFunc)
- readyGoFunc = trim(beforeFunction.toString()) + trim(readyGoFunc)
- Game['prototype']['startPractice'] = new Function(...params3, readyGoFunc);
- //}
- // window.addEventListener('load', function () {
- // var resetKey = Game['Settings']['controls'][8]
- // console.log("resetKey")
- // //console.log(resetKey)
- // window.addEventListener('keydown', (e) => {
- // if(e.keyCode === 49) {
- // document.querySelector("#chatInput").value = "/replay"
- // document.querySelector("#sendMsg").click()
- // document.querySelector("#stage").click()
- // }
- // });
- // });
- })();