Untitled

                Never    
// ==UserScript==
// @name         jstris replay mod
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  shows you what pieces to place for https://jstris.jezevec10.com/map/7721
// @author       pwn#4081
// @match        https://*.jstris.jezevec10.com/?play=6&map=7721
// @grant        none
// ==/UserScript==

(function() {
  "use strict";

  // edit this to true to make game auto restart on incorrect placement
  // note: this counts placements as incorrect if you rotate differently than the replay
  var forceCorrectPlacement = false;

  // edit these to use a different skin for the 2nd ghost
  var replayGhostSkin =
    "https://cdn.discordapp.com/attachments/556186516364328961/575003911510032426/jstrisghost_targeted.png";
  var replayGhostSkinSize = 32;

  window.addEventListener("load", function() {
    // replay data for https://jstris.jezevec10.com/map/7721
    window.rdata = JSON.parse(
      '[{"x":5,"y":18,"rot":0,"mino":0},{"x":-1,"y":17,"rot":0,"mino":1},{"x":3,"y":17,"rot":0,"mino":5},{"x":6,"y":16,"rot":0,"mino":2},{"x":4,"y":15,"rot":0,"mino":3},{"x":2,"y":16,"rot":3,"mino":6},{"x":0,"y":15,"rot":0,"mino":4},{"x":0,"y":14,"rot":0,"mino":1},{"x":-2,"y":12,"rot":1,"mino":0},{"x":3,"y":14,"rot":0,"mino":4},{"x":7,"y":14,"rot":3,"mino":5},{"x":3,"y":13,"rot":0,"mino":6},{"x":0,"y":11,"rot":1,"mino":3},{"x":7,"y":12,"rot":3,"mino":2},{"x":5,"y":12,"rot":1,"mino":4},{"x":2,"y":11,"rot":0,"mino":3},{"x":3,"y":11,"rot":1,"mino":0},{"x":2,"y":10,"rot":0,"mino":5},{"x":2,"y":8,"rot":3,"mino":6},{"x":6,"y":10,"rot":0,"mino":2},{"x":-1,"y":9,"rot":0,"mino":1},{"x":7,"y":8,"rot":3,"mino":2},{"x":4,"y":8,"rot":2,"mino":4},{"x":3,"y":7,"rot":0,"mino":6},{"x":6,"y":7,"rot":0,"mino":5},{"x":0,"y":7,"rot":0,"mino":3},{"x":4,"y":6,"rot":0,"mino":1},{"x":7,"y":16,"rot":1,"mino":0},{"x":6,"y":9,"rot":0,"mino":6},{"x":2,"y":9,"rot":0,"mino":4},{"x":7,"y":7,"rot":3,"mino":2},{"x":7,"y":16,"rot":1,"mino":0},{"x":-1,"y":14,"rot":0,"mino":1},{"x":3,"y":12,"rot":0,"mino":3},{"x":3,"y":11,"rot":0,"mino":5},{"x":-1,"y":12,"rot":0,"mino":1},{"x":6,"y":10,"rot":3,"mino":6},{"x":-1,"y":9,"rot":1,"mino":3},{"x":1,"y":10,"rot":1,"mino":2},{"x":7,"y":8,"rot":3,"mino":5},{"x":3,"y":9,"rot":0,"mino":4},{"x":7,"y":16,"rot":1,"mino":0},{"x":3,"y":11,"rot":3,"mino":5},{"x":4,"y":11,"rot":3,"mino":3},{"x":0,"y":12,"rot":1,"mino":6},{"x":3,"y":9,"rot":0,"mino":4},{"x":4,"y":12,"rot":1,"mino":0},{"x":7,"y":10,"rot":3,"mino":2},{"x":-1,"y":11,"rot":0,"mino":1},{"x":0,"y":9,"rot":2,"mino":4},{"x":6,"y":9,"rot":0,"mino":5},{"x":-1,"y":8,"rot":0,"mino":1},{"x":4,"y":8,"rot":0,"mino":3},{"x":7,"y":16,"rot":1,"mino":0},{"x":1,"y":11,"rot":1,"mino":2},{"x":3,"y":11,"rot":0,"mino":6},{"x":0,"y":10,"rot":0,"mino":5},{"x":-1,"y":8,"rot":1,"mino":2},{"x":7,"y":16,"rot":1,"mino":0},{"x":7,"y":14,"rot":3,"mino":4},{"x":5,"y":14,"rot":0,"mino":1},{"x":2,"y":13,"rot":0,"mino":6},{"x":4,"y":13,"rot":3,"mino":3},{"x":6,"y":12,"rot":0,"mino":2},{"x":4,"y":11,"rot":0,"mino":1},{"x":7,"y":10,"rot":3,"mino":5},{"x":2,"y":10,"rot":1,"mino":3},{"x":1,"y":10,"rot":3,"mino":4},{"x":7,"y":16,"rot":1,"mino":0},{"x":-1,"y":14,"rot":0,"mino":1},{"x":7,"y":12,"rot":3,"mino":2},{"x":4,"y":13,"rot":2,"mino":3},{"x":7,"y":16,"rot":1,"mino":0},{"x":5,"y":16,"rot":0,"mino":5},{"x":0,"y":16,"rot":0,"mino":4},{"x":0,"y":15,"rot":0,"mino":6},{"x":2,"y":16,"rot":0,"mino":1},{"x":4,"y":14,"rot":1,"mino":6},{"x":7,"y":16,"rot":1,"mino":0},{"x":2,"y":17,"rot":0,"mino":2},{"x":4,"y":16,"rot":0,"mino":5},{"x":0,"y":16,"rot":0,"mino":3},{"x":7,"y":16,"rot":3,"mino":4},{"x":2,"y":16,"rot":0,"mino":6},{"x":6,"y":16,"rot":1,"mino":4},{"x":4,"y":15,"rot":0,"mino":2},{"x":3,"y":14,"rot":0,"mino":5},{"x":-1,"y":16,"rot":0,"mino":1},{"x":6,"y":14,"rot":0,"mino":3},{"x":5,"y":13,"rot":0,"mino":6},{"x":0,"y":14,"rot":0,"mino":4},{"x":0,"y":13,"rot":0,"mino":6},{"x":6,"y":12,"rot":0,"mino":1},{"x":4,"y":11,"rot":2,"mino":3},{"x":2,"y":12,"rot":3,"mino":2},{"x":7,"y":16,"rot":1,"mino":0},{"x":7,"y":16,"rot":1,"mino":0},{"x":7,"y":16,"rot":0,"mino":5},{"x":0,"y":17,"rot":0,"mino":3},{"x":3,"y":18,"rot":0,"mino":0},{"x":-1,"y":17,"rot":0,"mino":1},{"x":0,"y":16,"rot":2,"mino":4},{"x":7,"y":16,"rot":2,"mino":3},{"x":3,"y":18,"rot":0,"mino":0},{"x":3,"y":18,"rot":0,"mino":0}]'
    );
    window.rdata_idx = 0;

    loadGhostSkin(replayGhostSkin, replayGhostSkinSize);

    Game.prototype.drawGhost2 = function(_x, _y, _rot, _mino, _id) {
      this.ghostSkinId = _id;
      var blockSet = this.blockSets[this.activeBlock.set],
        block = blockSet.blocks[_mino].blocks[_rot],
        blockSize = block.length;
      this.drawScale = blockSet.scale;
      for (var y = 0; y < blockSize; y++) {
        for (var x = 0; x < blockSize; x++) {
          if (block[y][x] === 1) {
            this.v.drawGhostBlock(
              _x + x * this.drawScale,
              _y + y * this.drawScale,
              blockSet.blocks[_mino].color
            );
          }
        }
      }
      this.ghostSkinId = 0;
    };

    Game.prototype.drawGhostAndCurrent = (function(drawGhostAndCurrent) {
      return function() {
        var ghost = window.rdata[window.rdata_idx];
        this.drawGhost2(ghost.x, ghost.y, ghost.rot, ghost.mino, 1);
        this.v.ctx.globalAlpha = 0.5;
        var ghost2 = window.rdata[window.rdata_idx + 1];
        this.v.ctx.globalAlpha = 0.5;
        this.drawGhost2(ghost2.x, ghost2.y, ghost2.rot, ghost2.mino, 1);
        //Remember to return and .apply arguments when proxying
        return drawGhostAndCurrent.apply(this, arguments);
      };
    })(Game.prototype.drawGhostAndCurrent);

    Game.prototype.placeBlock = (function(placeBlock) {
      return function() {
        var currentPlacement = {
          x: arguments[0],
          y: arguments[1],
          rot: this.activeBlock.rot,
          mino: this.activeBlock.id
        };
        var goal = rdata[rdata_idx];
        if (
          forceCorrectPlacement &&
          !(
            currentPlacement.x == goal.x &&
            currentPlacement.y == goal.y &&
            currentPlacement.rot == goal.rot &&
            currentPlacement.mino == goal.mino
          )
        ) {
          // this restarts in map mode
          this.GameOver();
          this.startPractice(this.selectedPmode);
        } else {
          window.rdata_idx++;
          return placeBlock.apply(this, arguments);
        }
      };
    })(Game.prototype.placeBlock);

    Game.prototype.restart = (function(restart) {
      return function() {
        window.game = this; //expose game to global context for debugging
        window.rdata_idx = 0;
        return restart.apply(this, arguments);
      };
    })(Game.prototype.restart);

    /// show total keypresses instead of kpp
    document.getElementById("aux3").innerText = "Keypress #";
    Game.prototype.getKPP = function() {
      return this.totalKeyPresses;
    };
  });
})();

Raw Text