So,
// ==UserScript==
// @name [Link] Zoom hack
// @author Murka
// @description Allows to change zoom of the game using mouse wheels
// @icon [Link]
// @version 0.7
// @match *://[Link]/*
// @match *://*.[Link]/*
// @run-at document-start
// @grant none
// @license MIT
// @namespace [Link]
// ==/UserScript==
/* jshint esversion:6 */
/*
Author: Murka
Github: [Link]
Discord: [Link]
Greasyfork: [Link]
MooMooForge: [Link]
*/
(function() {
"use strict";
const log = [Link];
function linker(value) {
const hook = {
0: value,
toString: (radix) => hook[0].toString(radix),
valueOf: () => hook[0].valueOf(),
get length() {
return hook[0].length;
};
return hook;
function createHook(target, prop, callback) {
const symbol = Symbol(prop);
[Link](target, prop, {
get() { return this[symbol]; },
set(value) { callback(this, symbol, value); },
configurable: true
})
createHook(window, "config", function(that, symbol, value) {
if (typeof value === "object" && [Link]("maxScreenHeight")) {
delete [Link];
[Link](window, "config", {
value: value,
configurable: false,
writeable: false
})
}
})
// Bypass checkTrusted, so it will just return a callback
createHook([Link], "checkTrusted", function(that, symbol, value) {
delete [Link];
[Link] = (callback) => callback;
})
// You can change to your own scale factor
const scale = {
width: 192,
height: 108
};
// Intercept when assigning value to maxScreenHeight, then add our hooks to it
createHook([Link], "maxScreenHeight", function(that, symbol, value) {
delete [Link];
[Link] = linker(1920 + [Link] * 3);
[Link] = linker(1080 + [Link] * 3);
})
let wheels = 0;
[Link]("wheel", function(event) {
const { maxScreenWidth, maxScreenHeight } = [Link] || {};
if ([Link] !== "gameCanvas") return;
// Used to create a small gap, so users could easily find the default scale
if (maxScreenWidth[0] === 1920 && maxScreenHeight[0] === 1080) wheels += 1;
if (wheels % 5 !== 0) return;
const { width, height } = scale;
maxScreenWidth[0] = [Link](width, maxScreenWidth[0] + ([Link] > 0 ? -width : width));
maxScreenHeight[0] = [Link](height, maxScreenHeight[0] + ([Link] > 0 ? -height :
height));
[Link](new Event("resize"));
})
})();